diff --git a/.gitignore b/.gitignore index af4b3af..7f250c9 100644 --- a/.gitignore +++ b/.gitignore @@ -41,3 +41,6 @@ testem.log .DS_Store Thumbs.db .vs/ + +# Test files +test-*.xlsx diff --git a/README.md b/README.md index 7715638..9dd2fd3 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,59 @@ This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 13.3.5. +## User Guide + +### How to Use the Sorteo Application + +This application allows you to conduct a raffle (sorteo) for two companies: **Consultatio** and **Nordelta**, using a single set of prizes. + +#### Step 1: Prepare Your Files + +You need two Excel files (.xlsx or .xls): + +**1. Participants File (Participantes)** +- Required columns: + - **Nombre**: First name + - **Apellido**: Last name + - **DNI**: ID number + - **Empresa**: Company name (must contain "Consultatio" or "Nordelta") + - **¿Participa del torneo?** or **¿Participa en Sorteo?**: Participation status (accepts: True, 1, Si, Yes, or their lowercase variants) + - **¿Asistió?**: Attendance status (accepts: True, 1, Si, Yes, or their lowercase variants) + +- The column names are flexible and can appear in any order +- Only participants with both "Participa" and "Asistió" marked as true will be included +- Participants are automatically separated by company + +**2. Prizes File (Premios)** +- Required columns: + - **Premio**: Prize name + - **Cantidad**: Quantity (number) + +- The same prizes will be used for both companies +- Each company will have its own independent raffle for the same set of prizes + +#### Step 2: Load Files + +1. Click the **"Cargar"** button next to **PARTICIPANTES** +2. Select your participants Excel file +3. Review the loaded participants (shown separated by company) +4. Click the **"Cargar"** button next to **PREMIOS** +5. Select your prizes Excel file +6. Review the loaded prizes + +#### Step 3: Start the Raffle + +1. Once both files are loaded, the **"PREPARAR SORTEO"** button will become enabled +2. Click **"PREPARAR SORTEO"** to initialize the raffle +3. Click **"Iniciar"** to begin the drawing +4. The system will automatically assign prizes to winners from both companies + +#### Step 4: View Results + +- Results are displayed in two columns, one for each company +- Each column shows the prize and the winner +- Results appear progressively as the raffle proceeds + ## Development server Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The application will automatically reload if you change any of the source files. @@ -12,7 +65,7 @@ Run `ng generate component component-name` to generate a new component. You can ## Build -Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. +Run `ng build` to build the project. The build artifacts will be stored in the `docs/` directory. ## Running unit tests @@ -25,4 +78,3 @@ Run `ng e2e` to execute the end-to-end tests via a platform of your choice. To u ## Further help To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page. -s diff --git a/TESTING.md b/TESTING.md new file mode 100644 index 0000000..970b302 --- /dev/null +++ b/TESTING.md @@ -0,0 +1,105 @@ +# Testing Guide for Excel Upload Feature + +## What Changed + +### Previous System (Before) +- Required 4 separate .txt files: + - Participants for Consultatio + - Prizes for Consultatio + - Participants for Nordelta + - Prizes for Nordelta +- Manual format: one item per line +- Separate upload per company + +### New System (After) +- Requires only 2 .xlsx files: + - One participants file (contains both companies) + - One prizes file (same prizes for both companies) +- Excel format with flexible columns +- Single upload per file type + +## Testing Steps + +### 1. Prepare Test Files + +**Participants Excel (participantes.xlsx)** +Required columns (can be in any order): +- Nombre +- Apellido +- DNI +- Empresa (must contain "Consultatio" or "Nordelta") +- ¿Participa del torneo? (or ¿Participa en Sorteo?) - accepts: True, 1, Si, Yes +- ¿Asistió? - accepts: True, 1, Si, Yes + +Example rows: +``` +| Nombre | Apellido | DNI | Empresa | ¿Participa del torneo? | ¿Asistió? | +|--------|----------|-----|---------|------------------------|-----------| +| Juan | Pérez | 123 | Consultatio | Si | 1 | +| María | García | 456 | Nordelta | Yes | True | +``` + +**Prizes Excel (premios.xlsx)** +Required columns: +- Premio (prize name) +- Cantidad (quantity as number) + +Example rows: +``` +| Premio | Cantidad | +|--------|----------| +| Monopatín | 1 | +| Set de cucharas | 2 | +``` + +### 2. Test the Application + +1. Open the application in a browser +2. Click "Cargar" next to PARTICIPANTES +3. Select the participants Excel file +4. Verify: + - Success message appears + - Participants are shown separated by company + - Count matches expected numbers +5. Click "Cargar" next to PREMIOS +6. Select the prizes Excel file +7. Verify: + - Success message appears + - Prizes are listed with quantities +8. Click "PREPARAR SORTEO" (should be enabled now) +9. Click "Iniciar" to begin the raffle +10. Verify: + - Countdown proceeds + - Results appear for both companies + - Winners are assigned correctly + +### 3. Edge Cases to Test + +- **Empty files**: Should show error +- **Missing columns**: Should show error with clear message +- **Wrong file format**: Should show error (only .xlsx/.xls accepted) +- **Participants with Participa=No**: Should be filtered out +- **Participants with Asistió=No**: Should be filtered out +- **More prizes than participants**: Should show warning +- **Duplicate participants**: Should be deduplicated by DNI + +## Expected Behavior + +### Valid Input +- Example files provided in issue work correctly +- Consultatio: 4 participants (from evento_515.xlsx) +- Nordelta: 6 participants (from evento_515.xlsx) +- Prizes: 4 types, 5 total (from Excel Modelo.xlsx) +- Both companies use the same prize pool + +### Filtering Logic +- Only participants with BOTH "Participa" = true AND "Asistió" = true +- Truthy values accepted: True, 1, si, SI, Si, yes, YES, Yes +- Case-insensitive matching for company names + +### Results Display +- Two columns showing winners +- Left column: Consultatio winners +- Right column: Nordelta winners +- Each showing: Prize | Winner name +- Results appear progressively during raffle diff --git a/docs/3rdpartylicenses.txt b/docs/3rdpartylicenses.txt new file mode 100644 index 0000000..460dff8 --- /dev/null +++ b/docs/3rdpartylicenses.txt @@ -0,0 +1,660 @@ +@angular/animations +MIT +The MIT License + +Copyright (c) 2010-2024 Google LLC. https://angular.dev/license + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +@angular/cdk +MIT +The MIT License + +Copyright (c) 2024 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 +The MIT License + +Copyright (c) 2010-2024 Google LLC. https://angular.dev/license + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +@angular/core +MIT +The MIT License + +Copyright (c) 2010-2024 Google LLC. https://angular.dev/license + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +@angular/forms +MIT +The MIT License + +Copyright (c) 2010-2024 Google LLC. https://angular.dev/license + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +@angular/material +MIT +The MIT License + +Copyright (c) 2024 Google LLC. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +@angular/platform-browser +MIT +The MIT License + +Copyright (c) 2010-2024 Google LLC. https://angular.dev/license + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +lodash +MIT +Copyright OpenJS Foundation and other contributors + +Based on Underscore.js, copyright Jeremy Ashkenas, +DocumentCloud and Investigative Reporters & Editors + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/lodash/lodash + +The following license applies to all parts of this software except as +documented below: + +==== + +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. + +==== + +Copyright and related rights for sample code are waived via CC0. Sample +code is defined as all source code displayed within the prose of the +documentation. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +Files located in the node_modules and vendor directories are externally +maintained libraries used by this software which have their own +licenses; we recommend you read them, as their terms may differ from the +terms above. + + +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. + + + +xlsx +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) 2012-present SheetJS LLC + + 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. + + +zone.js +MIT +The MIT License + +Copyright (c) 2010-2024 Google LLC. https://angular.io/license + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/docs/LatinxText-Bold.otf b/docs/LatinxText-Bold.c79057f6c73ab6a8.otf similarity index 100% rename from docs/LatinxText-Bold.otf rename to docs/LatinxText-Bold.c79057f6c73ab6a8.otf diff --git a/docs/LatinxText-Regular.otf b/docs/LatinxText-Regular.9d80ef7021a2f431.otf similarity index 100% rename from docs/LatinxText-Regular.otf rename to docs/LatinxText-Regular.9d80ef7021a2f431.otf diff --git a/docs/index.html b/docs/index.html deleted file mode 100644 index ea802d2..0000000 --- a/docs/index.html +++ /dev/null @@ -1,17 +0,0 @@ - - - - - ¡Sorteo de Fin de Año! - - - - - - - - - - - - diff --git a/docs/main.96fc8209518e0e4d.js b/docs/main.96fc8209518e0e4d.js new file mode 100644 index 0000000..95ebed9 --- /dev/null +++ b/docs/main.96fc8209518e0e4d.js @@ -0,0 +1 @@ +(self.webpackChunksorteo_wen=self.webpackChunksorteo_wen||[]).push([[792],{292:(Rs,$l,zp)=>{"use strict";function Wl(e,n){return Object.is(e,n)}let N=null,mu=!1,Gl=1;const bo=Symbol("SIGNAL");function Je(e){const n=N;return N=e,n}const ma={version:0,lastCleanEpoch:0,dirty:!1,producerNode:void 0,producerLastReadVersion:void 0,producerIndexOfThis:void 0,nextProducerIndex:0,liveConsumerNode:void 0,liveConsumerIndexOfThis:void 0,consumerAllowSignalWrites:!1,consumerIsAlwaysLive:!1,producerMustRecompute:()=>!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{}};function Xo(e){if(mu)throw new Error("");if(null===N)return;N.consumerOnSignalRead(e);const n=N.nextProducerIndex++;_a(N),ne.nextProducerIndex;)e.producerNode.pop(),e.producerLastReadVersion.pop(),e.producerIndexOfThis.pop()}}function ro(e){_a(e);for(let n=0;n0}function _a(e){e.producerNode??=[],e.producerIndexOfThis??=[],e.producerLastReadVersion??=[]}function yf(e){e.liveConsumerNode??=[],e.liveConsumerIndexOfThis??=[]}function W_(e){return void 0!==e.producerNode}const Gp=Symbol("UNSET"),qp=Symbol("COMPUTING"),_u=Symbol("ERRORED"),tw={...ma,value:Gp,dirty:!0,error:null,equal:Wl,producerMustRecompute:e=>e.value===Gp||e.value===qp,producerRecomputeValue(e){if(e.value===qp)throw new Error("Detected cycle in computations.");const n=e.value;e.value=qp;const t=Yo(e);let r;try{r=e.computation()}catch(i){r=_u,e.error=i}finally{vf(e,t)}n!==Gp&&n!==_u&&r!==_u&&e.equal(n,r)?e.value=n:(e.value=r,e.version++)}};let va=function nw(){throw new Error};function Ns(){va()}let Ka=null;function G_(e,n){gu()||Ns(),e.equal(e.value,n)||(e.value=n,function vu(e){e.version++,function $_(){Gl++}(),Ya(e),Ka?.()}(e))}const iw={...ma,equal:Wl,value:void 0};function Pt(e){return"function"==typeof e}function io(e){const t=e(r=>{Error.call(r),r.stack=(new Error).stack});return t.prototype=Object.create(Error.prototype),t.prototype.constructor=t,t}const Za=io(e=>function(t){e(this),this.message=t?`${t.length} errors occurred during unsubscription:\n${t.map((r,i)=>`${i+1}) ${r.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=t});function bf(e,n){if(e){const t=e.indexOf(n);0<=t&&e.splice(t,1)}}class an{constructor(n){this.initialTeardown=n,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let n;if(!this.closed){this.closed=!0;const{_parentage:t}=this;if(t)if(this._parentage=null,Array.isArray(t))for(const o of t)o.remove(this);else t.remove(this);const{initialTeardown:r}=this;if(Pt(r))try{r()}catch(o){n=o instanceof Za?o.errors:[o]}const{_finalizers:i}=this;if(i){this._finalizers=null;for(const o of i)try{Xl(o)}catch(s){n=n??[],s instanceof Za?n=[...n,...s.errors]:n.push(s)}}if(n)throw new Za(n)}}add(n){var t;if(n&&n!==this)if(this.closed)Xl(n);else{if(n instanceof an){if(n.closed||n._hasParent(this))return;n._addParent(this)}(this._finalizers=null!==(t=this._finalizers)&&void 0!==t?t:[]).push(n)}}_hasParent(n){const{_parentage:t}=this;return t===n||Array.isArray(t)&&t.includes(n)}_addParent(n){const{_parentage:t}=this;this._parentage=Array.isArray(t)?(t.push(n),t):t?[t,n]:n}_removeParent(n){const{_parentage:t}=this;t===n?this._parentage=null:Array.isArray(t)&&bf(t,n)}remove(n){const{_finalizers:t}=this;t&&bf(t,n),n instanceof an&&n._removeParent(this)}}an.EMPTY=(()=>{const e=new an;return e.closed=!0,e})();const Zp=an.EMPTY;function q_(e){return e instanceof an||e&&"closed"in e&&Pt(e.remove)&&Pt(e.add)&&Pt(e.unsubscribe)}function Xl(e){Pt(e)?e():e.unsubscribe()}const Tr={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},ya={setTimeout(e,n,...t){const{delegate:r}=ya;return r?.setTimeout?r.setTimeout(e,n,...t):setTimeout(e,n,...t)},clearTimeout(e){const{delegate:n}=ya;return(n?.clearTimeout||clearTimeout)(e)},delegate:void 0};function xu(e){ya.setTimeout(()=>{const{onUnhandledError:n}=Tr;if(!n)throw e;n(e)})}function Qp(){}const bu=xa("C",void 0,void 0);function xa(e,n,t){return{kind:e,value:n,error:t}}let Ps=null;function Yl(e){if(Tr.useDeprecatedSynchronousErrorHandling){const n=!Ps;if(n&&(Ps={errorThrown:!1,error:null}),e(),n){const{errorThrown:t,error:r}=Ps;if(Ps=null,t)throw r}}else e()}class Eu extends an{constructor(n){super(),this.isStopped=!1,n?(this.destination=n,q_(n)&&n.add(this)):this.destination=aw}static create(n,t,r){return new Qa(n,t,r)}next(n){this.isStopped?nm(function wu(e){return xa("N",e,void 0)}(n),this):this._next(n)}error(n){this.isStopped?nm(function ow(e){return xa("E",void 0,e)}(n),this):(this.isStopped=!0,this._error(n))}complete(){this.isStopped?nm(bu,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(n){this.destination.next(n)}_error(n){try{this.destination.error(n)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}}const em=Function.prototype.bind;function Cu(e,n){return em.call(e,n)}class tm{constructor(n){this.partialObserver=n}next(n){const{partialObserver:t}=this;if(t.next)try{t.next(n)}catch(r){Kl(r)}}error(n){const{partialObserver:t}=this;if(t.error)try{t.error(n)}catch(r){Kl(r)}else Kl(n)}complete(){const{partialObserver:n}=this;if(n.complete)try{n.complete()}catch(t){Kl(t)}}}class Qa extends Eu{constructor(n,t,r){let i;if(super(),Pt(n)||!n)i={next:n??void 0,error:t??void 0,complete:r??void 0};else{let o;this&&Tr.useDeprecatedNextContext?(o=Object.create(n),o.unsubscribe=()=>this.unsubscribe(),i={next:n.next&&Cu(n.next,o),error:n.error&&Cu(n.error,o),complete:n.complete&&Cu(n.complete,o)}):i=n}this.destination=new tm(i)}}function Kl(e){Tr.useDeprecatedSynchronousErrorHandling?function Jp(e){Tr.useDeprecatedSynchronousErrorHandling&&Ps&&(Ps.errorThrown=!0,Ps.error=e)}(e):xu(e)}function nm(e,n){const{onStoppedNotification:t}=Tr;t&&ya.setTimeout(()=>t(e,n))}const aw={closed:!0,next:Qp,error:function sw(e){throw e},complete:Qp},wf="function"==typeof Symbol&&Symbol.observable||"@@observable";function Ja(e){return e}let Ln=(()=>{class e{constructor(t){t&&(this._subscribe=t)}lift(t){const r=new e;return r.source=this,r.operator=t,r}subscribe(t,r,i){const o=function lw(e){return e&&e instanceof Eu||function K_(e){return e&&Pt(e.next)&&Pt(e.error)&&Pt(e.complete)}(e)&&q_(e)}(t)?t:new Qa(t,r,i);return Yl(()=>{const{operator:s,source:a}=this;o.add(s?s.call(o,a):a?this._subscribe(o):this._trySubscribe(o))}),o}_trySubscribe(t){try{return this._subscribe(t)}catch(r){t.error(r)}}forEach(t,r){return new(r=Y_(r))((i,o)=>{const s=new Qa({next:a=>{try{t(a)}catch(l){o(l),s.unsubscribe()}},error:o,complete:i});this.subscribe(s)})}_subscribe(t){var r;return null===(r=this.source)||void 0===r?void 0:r.subscribe(t)}[wf](){return this}pipe(...t){return function X_(e){return 0===e.length?Ja:1===e.length?e[0]:function(t){return e.reduce((r,i)=>i(r),t)}}(t)(this)}toPromise(t){return new(t=Y_(t))((r,i)=>{let o;this.subscribe(s=>o=s,s=>i(s),()=>r(o))})}}return e.create=n=>new e(n),e})();function Y_(e){var n;return null!==(n=e??Tr.Promise)&&void 0!==n?n:Promise}const cw=io(e=>function(){e(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});let Rt=(()=>{class e extends Ln{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(t){const r=new Ef(this,this);return r.operator=t,r}_throwIfClosed(){if(this.closed)throw new cw}next(t){Yl(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(const r of this.currentObservers)r.next(t)}})}error(t){Yl(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=t;const{observers:r}=this;for(;r.length;)r.shift().error(t)}})}complete(){Yl(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;const{observers:t}=this;for(;t.length;)t.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var t;return(null===(t=this.observers)||void 0===t?void 0:t.length)>0}_trySubscribe(t){return this._throwIfClosed(),super._trySubscribe(t)}_subscribe(t){return this._throwIfClosed(),this._checkFinalizedStatuses(t),this._innerSubscribe(t)}_innerSubscribe(t){const{hasError:r,isStopped:i,observers:o}=this;return r||i?Zp:(this.currentObservers=null,o.push(t),new an(()=>{this.currentObservers=null,bf(o,t)}))}_checkFinalizedStatuses(t){const{hasError:r,thrownError:i,isStopped:o}=this;r?t.error(i):o&&t.complete()}asObservable(){const t=new Ln;return t.source=this,t}}return e.create=(n,t)=>new Ef(n,t),e})();class Ef extends Rt{constructor(n,t){super(),this.destination=n,this.source=t}next(n){var t,r;null===(r=null===(t=this.destination)||void 0===t?void 0:t.next)||void 0===r||r.call(t,n)}error(n){var t,r;null===(r=null===(t=this.destination)||void 0===t?void 0:t.error)||void 0===r||r.call(t,n)}complete(){var n,t;null===(t=null===(n=this.destination)||void 0===n?void 0:n.complete)||void 0===t||t.call(n)}_subscribe(n){var t,r;return null!==(r=null===(t=this.source)||void 0===t?void 0:t.subscribe(n))&&void 0!==r?r:Zp}}class Z_ extends Rt{constructor(n){super(),this._value=n}get value(){return this.getValue()}_subscribe(n){const t=super._subscribe(n);return!t.closed&&n.next(this._value),t}getValue(){const{hasError:n,thrownError:t,_value:r}=this;if(n)throw t;return this._throwIfClosed(),r}next(n){super.next(this._value=n)}}function Br(e){return n=>{if(function rm(e){return Pt(e?.lift)}(n))return n.lift(function(t){try{return e(t,this)}catch(r){this.error(r)}});throw new TypeError("Unable to lift unknown Observable type")}}function Dr(e,n,t,r,i){return new uw(e,n,t,r,i)}class uw extends Eu{constructor(n,t,r,i,o,s){super(n),this.onFinalize=o,this.shouldUnsubscribe=s,this._next=t?function(a){try{t(a)}catch(l){n.error(l)}}:super._next,this._error=i?function(a){try{i(a)}catch(l){n.error(l)}finally{this.unsubscribe()}}:super._error,this._complete=r?function(){try{r()}catch(a){n.error(a)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var n;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){const{closed:t}=this;super.unsubscribe(),!t&&(null===(n=this.onFinalize)||void 0===n||n.call(this))}}}function Vr(e,n){return Br((t,r)=>{let i=0;t.subscribe(Dr(r,o=>{r.next(e.call(n,o,i++))}))})}const Q_="https://g.co/ng/security#xss";class se extends Error{constructor(n,t){super(function Zl(e,n){return`NG0${Math.abs(e)}${n?": "+n:""}`}(n,t)),this.code=n}}function Ls(e){return{toString:e}.toString()}const dn=globalThis;function Xt(e){for(let n in e)if(e[n]===Xt)return n;throw Error("Could not find renamed property on target object.")}function hw(e,n){for(const t in n)n.hasOwnProperty(t)&&!e.hasOwnProperty(t)&&(e[t]=n[t])}function rr(e){if("string"==typeof e)return e;if(Array.isArray(e))return"["+e.map(rr).join(", ")+"]";if(null==e)return""+e;if(e.overriddenName)return`${e.overriddenName}`;if(e.name)return`${e.name}`;const n=e.toString();if(null==n)return""+n;const t=n.indexOf("\n");return-1===t?n:n.substring(0,t)}function om(e,n){return null==e||""===e?null===n?"":n:null==n||""===n?e:e+" "+n}const tv=Xt({__forward_ref__:Xt});function en(e){return e.__forward_ref__=en,e.toString=function(){return rr(this())},e}function et(e){return function Cf(e){return"function"==typeof e&&e.hasOwnProperty(tv)&&e.__forward_ref__===en}(e)?e():e}function Be(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function Yt(e){return{providers:e.providers||[],imports:e.imports||[]}}function Tf(e){return ov(e,Df)||ov(e,sv)}function ov(e,n){return e.hasOwnProperty(n)?e[n]:null}function nc(e){return e&&(e.hasOwnProperty(lm)||e.hasOwnProperty(Ew))?e[lm]:null}const Df=Xt({\u0275prov:Xt}),lm=Xt({\u0275inj:Xt}),sv=Xt({ngInjectableDef:Xt}),Ew=Xt({ngInjectorDef:Xt});class xe{constructor(n,t){this._desc=n,this.ngMetadataName="InjectionToken",this.\u0275prov=void 0,"number"==typeof t?this.__NG_ELEMENT_ID__=t:void 0!==t&&(this.\u0275prov=Be({token:this,providedIn:t.providedIn||"root",factory:t.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}}function ir(e){return e&&!!e.\u0275providers}const rc=Xt({\u0275cmp:Xt}),el=Xt({\u0275dir:Xt}),Sf=Xt({\u0275pipe:Xt}),If=Xt({\u0275mod:Xt}),Yn=Xt({\u0275fac:Xt}),ic=Xt({__NG_ELEMENT_ID__:Xt}),dm=Xt({__NG_ENV_ID__:Xt});function lt(e){return"string"==typeof e?e:null==e?"":String(e)}function fm(e,n){throw new se(-201,!1)}var Tt=function(e){return e[e.Default=0]="Default",e[e.Host=1]="Host",e[e.Self=2]="Self",e[e.SkipSelf=4]="SkipSelf",e[e.Optional=8]="Optional",e}(Tt||{});let Zo;function Su(){return Zo}function Ur(e){const n=Zo;return Zo=e,n}function mn(e,n,t){const r=Tf(e);return r&&"root"==r.providedIn?void 0===r.value?r.value=r.factory():r.value:t&Tt.Optional?null:void 0!==n?n:void fm()}const Iu={},Au="__NG_DI_FLAG__",Af="ngTempTokenPath",Iw=/\n/gm,ku="__source";let Eo;function Us(e){const n=Eo;return Eo=e,n}function dv(e,n=Tt.Default){if(void 0===Eo)throw new se(-203,!1);return null===Eo?mn(e,void 0,n):Eo.get(e,n&Tt.Optional?null:void 0,n)}function ce(e,n=Tt.Default){return(Su()||dv)(et(e),n)}function De(e,n=Tt.Default){return ce(e,Mf(n))}function Mf(e){return typeof e>"u"||"number"==typeof e?e:(e.optional&&8)|(e.host&&1)|(e.self&&2)|(e.skipSelf&&4)}function Mu(e){const n=[];for(let t=0;tArray.isArray(t)?oc(t,n):n(t))}function il(e,n,t){n>=e.length?e.push(t):e.splice(n,0,t)}function Ff(e,n){return n>=e.length-1?e.pop():e.splice(n,1)[0]}function Pi(e,n,t){let r=sc(e,n);return r>=0?e[1|r]=t:(r=~r,function Hs(e,n,t,r){let i=e.length;if(i==n)e.push(t,r);else if(1===i)e.push(r,e[0]),e[0]=t;else{for(i--,e.push(e[i-1],e[i]);i>n;)e[i]=e[i-2],i--;e[n]=t,e[n+1]=r}}(e,r,n,t)),r}function mm(e,n){const t=sc(e,n);if(t>=0)return e[1|t]}function sc(e,n){return function so(e,n,t){let r=0,i=e.length>>t;for(;i!==r;){const o=r+(i-r>>1),s=e[o<n?i=o:r=o+1}return~(i<n){s=o-1;break}}}for(;o-1){let o;for(;++io?"":i[f+1].toLowerCase(),2&r&&u!==h){if(Hr(r))return!1;s=!0}}}}else{if(!s&&!Hr(r)&&!Hr(l))return!1;if(s&&Hr(l))continue;s=!1,r=l|1&r}}return Hr(r)||s}function Hr(e){return!(1&e)}function Lf(e,n,t,r){if(null===n)return-1;let i=0;if(r||!t){let o=!1;for(;i-1)for(t++;t0?'="'+a+'"':"")+"]"}else 8&r?i+="."+s:4&r&&(i+=" "+s);else""!==i&&!Hr(s)&&(n+=gv(o,i),i=""),r=s,o=o||!Hr(r);t++}return""!==i&&(n+=gv(o,i)),n}function An(e){return Ls(()=>{const n=vv(e),t={...n,decls:e.decls,vars:e.vars,template:e.template,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,onPush:e.changeDetection===ol.OnPush,directiveDefs:null,pipeDefs:null,dependencies:n.standalone&&e.dependencies||null,getStandaloneInjector:null,signals:e.signals??!1,data:e.data||{},encapsulation:e.encapsulation||W.Emulated,styles:e.styles||Lt,_:null,schemas:e.schemas||null,tView:null,id:""};yv(t);const r=e.dependencies;return t.directiveDefs=sl(r,!1),t.pipeDefs=sl(r,!0),t.id=function vm(e){let n=0;const t=[e.selectors,e.ngContentSelectors,e.hostVars,e.hostAttrs,e.consts,e.vars,e.decls,e.encapsulation,e.standalone,e.signals,e.exportAs,JSON.stringify(e.inputs),JSON.stringify(e.outputs),Object.getOwnPropertyNames(e.type.prototype),!!e.contentQueries,!!e.viewQuery].join("|");for(const i of t)n=Math.imul(31,n)+i.charCodeAt(0)|0;return n+=2147483648,"c"+n}(t),t})}function Uf(e){return yt(e)||kn(e)}function _v(e){return null!==e}function Wt(e){return Ls(()=>({type:e.type,bootstrap:e.bootstrap||Lt,declarations:e.declarations||Lt,imports:e.imports||Lt,exports:e.exports||Lt,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null}))}function _m(e,n){if(null==e)return Co;const t={};for(const r in e)if(e.hasOwnProperty(r)){const i=e[r];let o,s,a=ae.None;Array.isArray(i)?(a=i[0],o=i[1],s=i[2]??o):(o=i,s=i),n?(t[o]=a!==ae.None?[r,a]:r,n[o]=s):t[o]=r}return t}function Ze(e){return Ls(()=>{const n=vv(e);return yv(n),n})}function yt(e){return e[rc]||null}function kn(e){return e[el]||null}function Mn(e){return e[Sf]||null}function vv(e){const n={};return{type:e.type,providersResolver:null,factory:null,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:n,inputTransforms:null,inputConfig:e.inputs||Co,exportAs:e.exportAs||null,standalone:!0===e.standalone,signals:!0===e.signals,selectors:e.selectors||Lt,viewQuery:e.viewQuery||null,features:e.features||null,setInput:null,findHostDirectiveDefs:null,hostDirectives:null,inputs:_m(e.inputs,n),outputs:_m(e.outputs),debugInfo:null}}function yv(e){e.features?.forEach(n=>n(e))}function sl(e,n){if(!e)return null;const t=n?Mn:Uf;return()=>("function"==typeof e?e():e).map(r=>t(r)).filter(_v)}function xv(...e){return{\u0275providers:ym(0,e),\u0275fromNgModule:!0}}function ym(e,...n){const t=[],r=new Set;let i;const o=s=>{t.push(s)};return oc(n,s=>{const a=s;Bn(a,o,[],r)&&(i||=[],i.push(a))}),void 0!==i&&bv(i,o),t}function bv(e,n){for(let t=0;t{n(o,r)})}}function Bn(e,n,t,r){if(!(e=et(e)))return!1;let i=null,o=nc(e);const s=!o&&yt(e);if(o||s){if(s&&!s.standalone)return!1;i=e}else{const l=e.ngModule;if(o=nc(l),!o)return!1;i=l}const a=r.has(i);if(s){if(a)return!1;if(r.add(i),s.dependencies){const l="function"==typeof s.dependencies?s.dependencies():s.dependencies;for(const u of l)Bn(u,n,t,r)}}else{if(!o)return!1;{if(null!=o.imports&&!a){let u;r.add(i);try{oc(o.imports,f=>{Bn(f,n,t,r)&&(u||=[],u.push(f))})}finally{}void 0!==u&&bv(u,n)}if(!a){const u=rl(i)||(()=>new i);n({provide:i,useFactory:u,deps:Lt},i),n({provide:gm,useValue:i,multi:!0},i),n({provide:js,useValue:()=>ce(i),multi:!0},i)}const l=o.providers;if(null!=l&&!a){const u=e;xm(l,f=>{n(f,u)})}}}return i!==e&&void 0!==e.providers}function xm(e,n){for(let t of e)ir(t)&&(t=t.\u0275providers),Array.isArray(t)?xm(t,n):n(t)}const Vw=Xt({provide:String,useValue:Xt});function jf(e){return null!==e&&"object"==typeof e&&Vw in e}function To(e){return"function"==typeof e}const ba=new xe(""),wa={},Lu={};let ac;function zs(){return void 0===ac&&(ac=new Of),ac}class Li{}class lc extends Li{get destroyed(){return this._destroyed}constructor(n,t,r,i){super(),this.parent=t,this.source=r,this.scopes=i,this.records=new Map,this._ngOnDestroyHooks=new Set,this._onDestroyHooks=[],this._destroyed=!1,uc(n,s=>this.processProvider(s)),this.records.set(pv,es(void 0,this)),i.has("environment")&&this.records.set(Li,es(void 0,this));const o=this.records.get(ba);null!=o&&"string"==typeof o.value&&this.scopes.add(o.value),this.injectorDefTypes=new Set(this.get(gm,Lt,Tt.Self))}destroy(){this.assertNotDestroyed(),this._destroyed=!0;const n=Je(null);try{for(const r of this._ngOnDestroyHooks)r.ngOnDestroy();const t=this._onDestroyHooks;this._onDestroyHooks=[];for(const r of t)r()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),Je(n)}}onDestroy(n){return this.assertNotDestroyed(),this._onDestroyHooks.push(n),()=>this.removeOnDestroy(n)}runInContext(n){this.assertNotDestroyed();const t=Us(this),r=Ur(void 0);try{return n()}finally{Us(t),Ur(r)}}get(n,t=Iu,r=Tt.Default){if(this.assertNotDestroyed(),n.hasOwnProperty(dm))return n[dm](this);r=Mf(r);const o=Us(this),s=Ur(void 0);try{if(!(r&Tt.SkipSelf)){let l=this.records.get(n);if(void 0===l){const u=function cc(e){return"function"==typeof e||"object"==typeof e&&e instanceof xe}(n)&&Tf(n);l=u&&this.injectableDefInScope(u)?es(wm(n),wa):null,this.records.set(n,l)}if(null!=l)return this.hydrate(n,l)}return(r&Tt.Self?zs():this.parent).get(n,t=r&Tt.Optional&&t===Iu?null:t)}catch(a){if("NullInjectorError"===a.name){if((a[Af]=a[Af]||[]).unshift(rr(n)),o)throw a;return function fv(e,n,t,r){const i=e[Af];throw n[ku]&&i.unshift(n[ku]),e.message=function Ni(e,n,t,r=null){e=e&&"\n"===e.charAt(0)&&"\u0275"==e.charAt(1)?e.slice(2):e;let i=rr(n);if(Array.isArray(n))i=n.map(rr).join(" -> ");else if("object"==typeof n){let o=[];for(let s in n)if(n.hasOwnProperty(s)){let a=n[s];o.push(s+":"+("string"==typeof a?JSON.stringify(a):rr(a)))}i=`{${o.join(", ")}}`}return`${t}${r?"("+r+")":""}[${i}]: ${e.replace(Iw,"\n ")}`}("\n"+e.message,i,t,r),e.ngTokenPath=i,e[Af]=null,e}(a,n,"R3InjectorError",this.source)}throw a}finally{Ur(s),Us(o)}}resolveInjectorInitializers(){const n=Je(null),t=Us(this),r=Ur(void 0);try{const o=this.get(js,Lt,Tt.Self);for(const s of o)s()}finally{Us(t),Ur(r),Je(n)}}toString(){const n=[],t=this.records;for(const r of t.keys())n.push(rr(r));return`R3Injector[${n.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new se(205,!1)}processProvider(n){let t=To(n=et(n))?n:et(n&&n.provide);const r=function Hw(e){return jf(e)?es(void 0,e.useValue):es(Bu(e),wa)}(n);if(!To(n)&&!0===n.multi){let i=this.records.get(t);i||(i=es(void 0,wa,!0),i.factory=()=>Mu(i.multi),this.records.set(t,i)),t=n,i.multi.push(n)}this.records.set(t,r)}hydrate(n,t){const r=Je(null);try{return t.value===wa&&(t.value=Lu,t.value=t.factory()),"object"==typeof t.value&&t.value&&function D(e){return null!==e&&"object"==typeof e&&"function"==typeof e.ngOnDestroy}(t.value)&&this._ngOnDestroyHooks.add(t.value),t.value}finally{Je(r)}}injectableDefInScope(n){if(!n.providedIn)return!1;const t=et(n.providedIn);return"string"==typeof t?"any"===t||this.scopes.has(t):this.injectorDefTypes.has(t)}removeOnDestroy(n){const t=this._onDestroyHooks.indexOf(n);-1!==t&&this._onDestroyHooks.splice(t,1)}}function wm(e){const n=Tf(e),t=null!==n?n.factory:rl(e);if(null!==t)return t;if(e instanceof xe)throw new se(204,!1);if(e instanceof Function)return function Uw(e){if(e.length>0)throw new se(204,!1);const t=function ww(e){return e&&(e[Df]||e[sv])||null}(e);return null!==t?()=>t.factory(e):()=>new e}(e);throw new se(204,!1)}function Bu(e,n,t){let r;if(To(e)){const i=et(e);return rl(i)||wm(i)}if(jf(e))r=()=>et(e.useValue);else if(function zf(e){return!(!e||!e.useFactory)}(e))r=()=>e.useFactory(...Mu(e.deps||[]));else if(function wv(e){return!(!e||!e.useExisting)}(e))r=()=>ce(et(e.useExisting));else{const i=et(e&&(e.useClass||e.provide));if(!function Ev(e){return!!e.deps}(e))return rl(i)||wm(i);r=()=>new i(...Mu(e.deps))}return r}function es(e,n,t=!1){return{factory:e,value:n,multi:t?[]:void 0}}function uc(e,n){for(const t of e)Array.isArray(t)?uc(t,n):t&&ir(t)?uc(t.\u0275providers,n):n(t)}function Dt(){return void 0!==Su()||null!=function Aw(){return Eo}()}function Em(e){if(!Dt())throw new se(-203,!1)}const En=0,Te=1,Ge=2,Kn=3,Do=4,Fn=5,Qr=6,fc=7,At=8,Zn=9,ts=10,st=11,Uu=12,Tv=13,ll=14,gn=15,cl=16,hc=17,So=18,ns=19,Hu=20,Ea=21,ju=22,co=23,je=25,zu=1,zn=7,ul=9,Vn=10;var Ca=function(e){return e[e.None=0]="None",e[e.HasTransplantedViews=2]="HasTransplantedViews",e}(Ca||{});function fn(e){return Array.isArray(e)&&"object"==typeof e[zu]}function Ir(e){return Array.isArray(e)&&!0===e[zu]}function Tm(e){return!!(4&e.flags)}function rs(e){return e.componentOffset>-1}function Wf(e){return!(1&~e.flags)}function uo(e){return!!e.template}function $n(e){return!!(512&e[Ge])}class Qw{constructor(n,t,r){this.previousValue=n,this.currentValue=t,this.firstChange=r}isFirstChange(){return this.firstChange}}function Mv(e,n,t,r){null!==n?n.applyValueToInputSignal(n,r):e[t]=r}function Kf(e){return e.type.prototype.ngOnChanges&&(e.setInput=Dm),Jw}function Jw(){const e=Im(this),n=e?.current;if(n){const t=e.previous;if(t===Co)e.previous=n;else for(let r in n)t[r]=n[r];e.current=null,this.ngOnChanges(n)}}function Dm(e,n,t,r,i){const o=this.declaredInputs[r],s=Im(e)||function Fv(e,n){return e[Sm]=n}(e,{previous:Co,current:null}),a=s.current||(s.current={}),l=s.previous,u=l[o];a[o]=new Qw(u&&u.currentValue,t,l===Co),Mv(e,n,i,t)}const Sm="__ngSimpleChanges__";function Im(e){return e[Sm]||null}const Ao=function(e,n,t){};function Ot(e){for(;Array.isArray(e);)e=e[En];return e}function dl(e,n){return Ot(n[e])}function zr(e,n){return Ot(n[e.index])}function $u(e,n){return e.data[n]}function nt(e,n){const t=n[e];return fn(t)?t:t[En]}function Fm(e){return!(128&~e[Ge])}function Bi(e,n){return null==n?null:e[n]}function Ov(e){e[hc]=0}function Nv(e){1024&e[Ge]||(e[Ge]|=1024,Fm(e)&&_c(e))}function Zf(e){return!!(9216&e[Ge]||e[co]?.dirty)}function gc(e){e[ts].changeDetectionScheduler?.notify(8),64&e[Ge]&&(e[Ge]|=1024),Zf(e)&&_c(e)}function _c(e){e[ts].changeDetectionScheduler?.notify(0);let n=Wn(e);for(;null!==n&&!(8192&n[Ge])&&(n[Ge]|=8192,Fm(n));)n=Wn(n)}function Gu(e,n){if(!(256&~e[Ge]))throw new se(911,!1);null===e[Ea]&&(e[Ea]=[]),e[Ea].push(n)}function Wn(e){const n=e[Kn];return Ir(n)?n[Kn]:n}const qe={lFrame:$v(null),bindingsEnabled:!0,skipHydrationRootTNode:null};let qu=!1;function eh(){return qe.bindingsEnabled}function pi(){return null!==qe.skipHydrationRootTNode}function oe(){return qe.lFrame.lView}function xt(){return qe.lFrame.tView}function ho(e){return qe.lFrame.contextLView=e,e[At]}function Ui(e){return qe.lFrame.contextLView=null,e}function Gt(){let e=Vv();for(;null!==e&&64===e.type;)e=e.parent;return e}function Vv(){return qe.lFrame.currentTNode}function po(e,n){const t=qe.lFrame;t.currentTNode=e,t.isParent=n}function $r(){return qe.lFrame.isParent}function mo(){qe.lFrame.isParent=!1}function Lm(){return qu}function Bm(e){qu=e}function Jr(){const e=qe.lFrame;let n=e.bindingRootIndex;return-1===n&&(n=e.bindingRootIndex=e.tView.bindingStartIndex),n}function ei(){return qe.lFrame.bindingIndex++}function qs(e){const n=qe.lFrame,t=n.bindingIndex;return n.bindingIndex=n.bindingIndex+e,t}function th(e,n){const t=qe.lFrame;t.bindingIndex=t.bindingRootIndex=e,xc(n)}function xc(e){qe.lFrame.currentDirectiveIndex=e}function Xu(e){const n=qe.lFrame.currentDirectiveIndex;return-1===n?null:e[n]}function bc(){return qe.lFrame.currentQueryIndex}function nh(e){qe.lFrame.currentQueryIndex=e}function zv(e){const n=e[Te];return 2===n.type?n.declTNode:1===n.type?e[Fn]:null}function Yu(e,n,t){if(t&Tt.SkipSelf){let i=n,o=e;for(;!(i=i.parent,null!==i||t&Tt.Host||(i=zv(o),null===i||(o=o[ll],10&i.type))););if(null===i)return!1;n=i,e=o}const r=qe.lFrame=ih();return r.currentTNode=n,r.lView=e,!0}function rh(e){const n=ih(),t=e[Te];qe.lFrame=n,n.currentTNode=t.firstChild,n.lView=e,n.tView=t,n.contextLView=e,n.bindingIndex=t.bindingStartIndex,n.inI18n=!1}function ih(){const e=qe.lFrame,n=null===e?null:e.child;return null===n?$v(e):n}function $v(e){const n={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null,inI18n:!1};return null!==e&&(e.child=n),n}function Um(){const e=qe.lFrame;return qe.lFrame=e.parent,e.currentTNode=null,e.lView=null,e}const ss=Um;function oh(){const e=Um();e.isParent=!0,e.tView=null,e.selectedIndex=-1,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function Ar(){return qe.lFrame.selectedIndex}function Da(e){qe.lFrame.selectedIndex=e}function hn(){const e=qe.lFrame;return $u(e.tView,e.selectedIndex)}let Ku=!0;function as(){return Ku}function $e(e){Ku=e}function wc(e,n){for(let t=n.directiveStart,r=n.directiveEnd;t=r)break}else n[l]<0&&(e[hc]+=65536),(a>14>16&&(3&e[Ge])===n&&(e[Ge]+=16384,kr(a,o)):kr(a,o)}const Ec=-1;class Cc{constructor(n,t,r){this.factory=n,this.resolving=!1,this.canSeeViewProviders=t,this.injectImpl=r}}const $m={};class Ks{constructor(n,t){this.injector=n,this.parentInjector=t}get(n,t,r){r=Mf(r);const i=this.injector.get(n,$m,r);return i!==$m||t===$m?i:this.parentInjector.get(n,t,r)}}function Wm(e){return e!==Ec}function Qu(e){return 32767&e}function Tc(e,n){let t=function Ju(e){return e>>16}(e),r=n;for(;t>0;)r=r[ll],t--;return r}let Gm=!0;function uh(e){const n=Gm;return Gm=e,n}const Yv=255,qm=5;let Kv=0;const cs={};function ed(e,n){const t=dh(e,n);if(-1!==t)return t;const r=n[Te];r.firstCreatePass&&(e.injectorIndex=n.length,pl(r.data,e),pl(n,null),pl(r.blueprint,null));const i=td(e,n),o=e.injectorIndex;if(Wm(i)){const s=Qu(i),a=Tc(i,n),l=a[Te].data;for(let u=0;u<8;u++)n[o+u]=a[s+u]|l[s+u]}return n[o+8]=i,o}function pl(e,n){e.push(0,0,0,0,0,0,0,0,n)}function dh(e,n){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null===n[e.injectorIndex+8]?-1:e.injectorIndex}function td(e,n){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;let t=0,r=null,i=n;for(;null!==i;){if(r=Zm(i),null===r)return Ec;if(t++,i=i[ll],-1!==r.injectorIndex)return r.injectorIndex|t<<16}return Ec}function fh(e,n,t){!function Xm(e,n,t){let r;"string"==typeof t?r=t.charCodeAt(0)||0:t.hasOwnProperty(ic)&&(r=t[ic]),null==r&&(r=t[ic]=Kv++);const i=r&Yv;n.data[e+(i>>qm)]|=1<=0?n&Yv:uE:n}(t);if("function"==typeof o){if(!Yu(n,e,r))return r&Tt.Host?Ym(i,0,r):ko(n,t,r,i);try{let s;if(s=o(r),null!=s||r&Tt.Optional)return s;fm()}finally{ss()}}else if("number"==typeof o){let s=null,a=dh(e,n),l=Ec,u=r&Tt.Host?n[gn][Fn]:null;for((-1===a||r&Tt.SkipSelf)&&(l=-1===a?td(e,n):n[a+8],l!==Ec&&ey(r,!1)?(s=n[Te],a=Qu(l),n=Tc(l,n)):a=-1);-1!==a;){const f=n[Te];if(Jv(o,a,f.data)){const h=Qv(a,n,t,s,r,u);if(h!==cs)return h}l=n[a+8],l!==Ec&&ey(r,n[Te].data[a+8]===u)&&Jv(o,a,n)?(s=f,a=Qu(l),n=Tc(l,n)):a=-1}}return i}function Qv(e,n,t,r,i,o){const s=n[Te],a=s.data[e+8],f=ph(a,s,t,null==r?rs(a)&&Gm:r!=s&&!!(3&a.type),i&Tt.Host&&o===a);return null!==f?ml(n,s,f,a):cs}function ph(e,n,t,r,i){const o=e.providerIndexes,s=n.data,a=1048575&o,l=e.directiveStart,f=o>>20,m=i?a+f:e.directiveEnd;for(let g=r?a:a+f;g=l&&v.type===t)return g}if(i){const g=s[l];if(g&&uo(g)&&g.type===t)return l}return null}function ml(e,n,t,r){let i=e[t];const o=n.data;if(function sE(e){return e instanceof Cc}(i)){const s=i;s.resolving&&function Oi(e,n){throw n&&n.join(" > "),new se(-200,e)}(function Ut(e){return"function"==typeof e?e.name||e.toString():"object"==typeof e&&null!=e&&"function"==typeof e.type?e.type.name||e.type.toString():lt(e)}(o[t]));const a=uh(s.canSeeViewProviders);s.resolving=!0;const u=s.injectImpl?Ur(s.injectImpl):null;Yu(e,r,Tt.Default);try{i=e[t]=s.factory(void 0,o,e,r),n.firstCreatePass&&t>=r.directiveStart&&function ah(e,n,t){const{ngOnChanges:r,ngOnInit:i,ngDoCheck:o}=n.type.prototype;if(r){const s=Kf(n);(t.preOrderHooks??=[]).push(e,s),(t.preOrderCheckHooks??=[]).push(e,s)}i&&(t.preOrderHooks??=[]).push(0-e,i),o&&((t.preOrderHooks??=[]).push(e,o),(t.preOrderCheckHooks??=[]).push(e,o))}(t,o[t],n)}finally{null!==u&&Ur(u),uh(a),s.resolving=!1,ss()}}return i}function Jv(e,n,t){return!!(t[n+(e>>qm)]&1<ce(pv)})}static{this.__NG_ELEMENT_ID__=-1}}new xe("").__NG_ELEMENT_ID__=e=>{const n=Gt();if(null===n)throw new se(204,!1);if(2&n.type)return n.value;if(e&Tt.Optional)return null;throw new se(204,!1)};function e0(e){return e.ngOriginalError}const ly=!0;let rd=(()=>{class e{static{this.__NG_ELEMENT_ID__=xE}static{this.__NG_ENV_ID__=t=>t}}return e})();class yE extends rd{constructor(n){super(),this._lView=n}onDestroy(n){return Gu(this._lView,n),()=>function Qf(e,n){if(null===e[Ea])return;const t=e[Ea].indexOf(n);-1!==t&&e[Ea].splice(t,1)}(this._lView,n)}}function xE(){return new yE(oe())}let Ia=(()=>{class e{constructor(){this.taskId=0,this.pendingTasks=new Set,this.hasPendingTasks=new Z_(!1)}get _hasPendingTasks(){return this.hasPendingTasks.value}add(){this._hasPendingTasks||this.hasPendingTasks.next(!0);const t=this.taskId++;return this.pendingTasks.add(t),t}remove(t){this.pendingTasks.delete(t),0===this.pendingTasks.size&&this._hasPendingTasks&&this.hasPendingTasks.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this._hasPendingTasks&&this.hasPendingTasks.next(!1)}static{this.\u0275prov=Be({token:e,providedIn:"root",factory:()=>new e})}}return e})();const Cn=class bE extends Rt{constructor(n=!1){super(),this.destroyRef=void 0,this.pendingTasks=void 0,this.__isAsync=n,Dt()&&(this.destroyRef=De(rd,{optional:!0})??void 0,this.pendingTasks=De(Ia,{optional:!0})??void 0)}emit(n){const t=Je(null);try{super.next(n)}finally{Je(t)}}subscribe(n,t,r){let i=n,o=t||(()=>null),s=r;if(n&&"object"==typeof n){const l=n;i=l.next?.bind(l),o=l.error?.bind(l),s=l.complete?.bind(l)}this.__isAsync&&(o=this.wrapInTimeout(o),i&&(i=this.wrapInTimeout(i)),s&&(s=this.wrapInTimeout(s)));const a=super.subscribe({next:i,error:o,complete:s});return n instanceof an&&n.add(a),a}wrapInTimeout(n){return t=>{const r=this.pendingTasks?.add();setTimeout(()=>{n(t),void 0!==r&&this.pendingTasks?.remove(r)})}}};function mh(...e){}function cy(e){let n,t;function r(){e=mh;try{void 0!==t&&"function"==typeof cancelAnimationFrame&&cancelAnimationFrame(t),void 0!==n&&clearTimeout(n)}catch{}}return n=setTimeout(()=>{e(),r()}),"function"==typeof requestAnimationFrame&&(t=requestAnimationFrame(()=>{e(),r()})),()=>r()}function uy(e){return queueMicrotask(()=>e()),()=>{e=mh}}const t0="isAngularZone",gh=t0+"_ID";let wE=0;class ct{constructor(n){this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Cn(!1),this.onMicrotaskEmpty=new Cn(!1),this.onStable=new Cn(!1),this.onError=new Cn(!1);const{enableLongStackTrace:t=!1,shouldCoalesceEventChangeDetection:r=!1,shouldCoalesceRunChangeDetection:i=!1,scheduleInRootZone:o=ly}=n;if(typeof Zone>"u")throw new se(908,!1);Zone.assertZonePatched();const s=this;s._nesting=0,s._outer=s._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(s._inner=s._inner.fork(new Zone.TaskTrackingZoneSpec)),t&&Zone.longStackTraceZoneSpec&&(s._inner=s._inner.fork(Zone.longStackTraceZoneSpec)),s.shouldCoalesceEventChangeDetection=!i&&r,s.shouldCoalesceRunChangeDetection=i,s.callbackScheduled=!1,s.scheduleInRootZone=o,function CE(e){const n=()=>{!function dy(e){function n(){cy(()=>{e.callbackScheduled=!1,n0(e),e.isCheckStableRunning=!0,id(e),e.isCheckStableRunning=!1})}e.isCheckStableRunning||e.callbackScheduled||(e.callbackScheduled=!0,e.scheduleInRootZone?Zone.root.run(()=>{n()}):e._outer.run(()=>{n()}),n0(e))}(e)},t=wE++;e._inner=e._inner.fork({name:"angular",properties:{[t0]:!0,[gh]:t,[gh+t]:!0},onInvokeTask:(r,i,o,s,a,l)=>{if(function TE(e){return py(e,"__ignore_ng_zone__")}(l))return r.invokeTask(o,s,a,l);try{return fy(e),r.invokeTask(o,s,a,l)}finally{(e.shouldCoalesceEventChangeDetection&&"eventTask"===s.type||e.shouldCoalesceRunChangeDetection)&&n(),hy(e)}},onInvoke:(r,i,o,s,a,l,u)=>{try{return fy(e),r.invoke(o,s,a,l,u)}finally{e.shouldCoalesceRunChangeDetection&&!e.callbackScheduled&&!function DE(e){return py(e,"__scheduler_tick__")}(l)&&n(),hy(e)}},onHasTask:(r,i,o,s)=>{r.hasTask(o,s),i===o&&("microTask"==s.change?(e._hasPendingMicrotasks=s.microTask,n0(e),id(e)):"macroTask"==s.change&&(e.hasPendingMacrotasks=s.macroTask))},onHandleError:(r,i,o,s)=>(r.handleError(o,s),e.runOutsideAngular(()=>e.onError.emit(s)),!1)})}(s)}static isInAngularZone(){return typeof Zone<"u"&&!0===Zone.current.get(t0)}static assertInAngularZone(){if(!ct.isInAngularZone())throw new se(909,!1)}static assertNotInAngularZone(){if(ct.isInAngularZone())throw new se(909,!1)}run(n,t,r){return this._inner.run(n,t,r)}runTask(n,t,r,i){const o=this._inner,s=o.scheduleEventTask("NgZoneEvent: "+i,n,EE,mh,mh);try{return o.runTask(s,t,r)}finally{o.cancelTask(s)}}runGuarded(n,t,r){return this._inner.runGuarded(n,t,r)}runOutsideAngular(n){return this._outer.run(n)}}const EE={};function id(e){if(0==e._nesting&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular(()=>e.onStable.emit(null))}finally{e.isStable=!0}}}function n0(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||(e.shouldCoalesceEventChangeDetection||e.shouldCoalesceRunChangeDetection)&&!0===e.callbackScheduled)}function fy(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function hy(e){e._nesting--,id(e)}class r0{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Cn,this.onMicrotaskEmpty=new Cn,this.onStable=new Cn,this.onError=new Cn}run(n,t,r){return n.apply(t,r)}runGuarded(n,t,r){return n.apply(t,r)}runOutsideAngular(n){return n()}runTask(n,t,r,i){return n.apply(t,r)}}function py(e,n){return!(!Array.isArray(e)||1!==e.length)&&!0===e[0]?.data?.[n]}class ji{constructor(){this._console=console}handleError(n){const t=this._findOriginalError(n);this._console.error("ERROR",n),t&&this._console.error("ORIGINAL ERROR",t)}_findOriginalError(n){let t=n&&e0(n);for(;t&&e0(t);)t=e0(t);return t||null}}const _h=new xe("",{providedIn:"root",factory:()=>{const e=De(ct),n=De(ji);return t=>e.runOutsideAngular(()=>n.handleError(t))}});function SE(){return Ic(Gt(),oe())}function Ic(e,n){return new _n(zr(e,n))}let _n=(()=>{class e{constructor(t){this.nativeElement=t}static{this.__NG_ELEMENT_ID__=SE}}return e})();function _y(e){return e instanceof _n?e.nativeElement:e}function IE(){return this._results[Symbol.iterator]()}class Ac{get changes(){return this._changes??=new Cn}constructor(n=!1){this._emitDistinctChangesOnly=n,this.dirty=!0,this._onDirty=void 0,this._results=[],this._changesDetected=!1,this._changes=void 0,this.length=0,this.first=void 0,this.last=void 0;const t=Ac.prototype;t[Symbol.iterator]||(t[Symbol.iterator]=IE)}get(n){return this._results[n]}map(n){return this._results.map(n)}filter(n){return this._results.filter(n)}find(n){return this._results.find(n)}reduce(n,t){return this._results.reduce(n,t)}forEach(n){this._results.forEach(n)}some(n){return this._results.some(n)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(n,t){this.dirty=!1;const r=function di(e){return e.flat(Number.POSITIVE_INFINITY)}(n);(this._changesDetected=!function Fw(e,n,t){if(e.length!==n.length)return!1;for(let r=0;r_i}),_i="ng",Hn=new xe(""),Zs=new xe("",{providedIn:"platform",factory:()=>"unknown"}),Qs=new xe(""),m0=new xe("",{providedIn:"root",factory:()=>function it(){if(void 0!==p0)return p0;if(typeof document<"u")return document;throw new se(210,!1)}().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null});let hd=()=>null;function _0(e,n,t=!1){return hd(e,n,t)}const Vy=new xe("",{providedIn:"root",factory:()=>!1});let Mh;function Aa(e){return function E0(){if(void 0===Mh&&(Mh=null,dn.trustedTypes))try{Mh=dn.trustedTypes.createPolicy("angular",{createHTML:e=>e,createScript:e=>e,createScriptURL:e=>e})}catch{}return Mh}()?.createHTML(e)||e}class bl{constructor(n){this.changingThisBreaksApplicationSecurity=n}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${Q_})`}}class YE extends bl{getTypeName(){return"HTML"}}class zy extends bl{getTypeName(){return"Style"}}class KE extends bl{getTypeName(){return"Script"}}class ZE extends bl{getTypeName(){return"URL"}}class QE extends bl{getTypeName(){return"ResourceURL"}}function vi(e){return e instanceof bl?e.changingThisBreaksApplicationSecurity:e}function us(e,n){const t=function JE(e){return e instanceof bl&&e.getTypeName()||null}(e);if(null!=t&&t!==n){if("ResourceURL"===t&&"URL"===n)return!0;throw new Error(`Required a safe ${n}, got a ${t} (see ${Q_})`)}return t===n}class rC{constructor(n){this.inertDocumentHelper=n}getInertBodyElement(n){n=""+n;try{const t=(new window.DOMParser).parseFromString(Aa(n),"text/html").body;return null===t?this.inertDocumentHelper.getInertBodyElement(n):(t.firstChild?.remove(),t)}catch{return null}}}class Lc{constructor(n){this.defaultDoc=n,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert")}getInertBodyElement(n){const t=this.inertDocument.createElement("template");return t.innerHTML=Aa(n),t}}const oC=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;function Rh(e){return(e=String(e)).match(oC)?e:"unsafe:"+e}function ea(e){const n={};for(const t of e.split(","))n[t]=!0;return n}function md(...e){const n={};for(const t of e)for(const r in t)t.hasOwnProperty(r)&&(n[r]=!0);return n}const D0=ea("area,br,col,hr,img,wbr"),S0=ea("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),qy=ea("rp,rt"),I0=md(D0,md(S0,ea("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")),md(qy,ea("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")),md(qy,S0)),A0=ea("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),Xy=md(A0,ea("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,srcset,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),ea("aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,aria-colspan,aria-controls,aria-current,aria-describedby,aria-details,aria-disabled,aria-dropeffect,aria-errormessage,aria-expanded,aria-flowto,aria-grabbed,aria-haspopup,aria-hidden,aria-invalid,aria-keyshortcuts,aria-label,aria-labelledby,aria-level,aria-live,aria-modal,aria-multiline,aria-multiselectable,aria-orientation,aria-owns,aria-placeholder,aria-posinset,aria-pressed,aria-readonly,aria-relevant,aria-required,aria-roledescription,aria-rowcount,aria-rowindex,aria-rowspan,aria-selected,aria-setsize,aria-sort,aria-valuemax,aria-valuemin,aria-valuenow,aria-valuetext")),sC=ea("script,style,template");class aC{constructor(){this.sanitizedSomething=!1,this.buf=[]}sanitizeChildren(n){let t=n.firstChild,r=!0,i=[];for(;t;)if(t.nodeType===Node.ELEMENT_NODE?r=this.startElement(t):t.nodeType===Node.TEXT_NODE?this.chars(t.nodeValue):this.sanitizedSomething=!0,r&&t.firstChild)i.push(t),t=uC(t);else for(;t;){t.nodeType===Node.ELEMENT_NODE&&this.endElement(t);let o=cC(t);if(o){t=o;break}t=i.pop()}return this.buf.join("")}startElement(n){const t=Yy(n).toLowerCase();if(!I0.hasOwnProperty(t))return this.sanitizedSomething=!0,!sC.hasOwnProperty(t);this.buf.push("<"),this.buf.push(t);const r=n.attributes;for(let i=0;i"),!0}endElement(n){const t=Yy(n).toLowerCase();I0.hasOwnProperty(t)&&!D0.hasOwnProperty(t)&&(this.buf.push(""))}chars(n){this.buf.push(Zy(n))}}function cC(e){const n=e.nextSibling;if(n&&e!==n.previousSibling)throw Ky(n);return n}function uC(e){const n=e.firstChild;if(n&&function lC(e,n){return(e.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_CONTAINED_BY)!==Node.DOCUMENT_POSITION_CONTAINED_BY}(e,n))throw Ky(n);return n}function Yy(e){const n=e.nodeName;return"string"==typeof n?n:"FORM"}function Ky(e){return new Error(`Failed to sanitize html because the element is clobbered: ${e.outerHTML}`)}const dC=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,fC=/([^\#-~ |!])/g;function Zy(e){return e.replace(/&/g,"&").replace(dC,function(n){return"&#"+(1024*(n.charCodeAt(0)-55296)+(n.charCodeAt(1)-56320)+65536)+";"}).replace(fC,function(n){return"&#"+n.charCodeAt(0)+";"}).replace(//g,">")}let Oh;function Qy(e,n){let t=null;try{Oh=Oh||function Gy(e){const n=new Lc(e);return function iC(){try{return!!(new window.DOMParser).parseFromString(Aa(""),"text/html")}catch{return!1}}()?new rC(n):n}(e);let r=n?String(n):"";t=Oh.getInertBodyElement(r);let i=5,o=r;do{if(0===i)throw new Error("Failed to sanitize html because the input is unstable");i--,r=o,o=t.innerHTML,t=Oh.getInertBodyElement(r)}while(r!==o);return Aa((new aC).sanitizeChildren(k0(t)||t))}finally{if(t){const r=k0(t)||t;for(;r.firstChild;)r.firstChild.remove()}}}function k0(e){return"content"in e&&function hC(e){return e.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===e.nodeName}(e)?e.content:null}var Mr=function(e){return e[e.NONE=0]="NONE",e[e.HTML=1]="HTML",e[e.STYLE=2]="STYLE",e[e.SCRIPT=3]="SCRIPT",e[e.URL=4]="URL",e[e.RESOURCE_URL=5]="RESOURCE_URL",e}(Mr||{});function Wi(e){return"browser"===(e??De(Un)).get(Zs)}var c=function(e){return e[e.Important=1]="Important",e[e.DashCase=2]="DashCase",e}(c||{});let d;function p(e,n){return d(e,n)}function E(e,n,t,r,i){if(null!=r){let o,s=!1;Ir(r)?o=r:fn(r)&&(s=!0,r=r[En]);const a=Ot(r);0===e&&null!==t?null==i?ds(n,t,a):Fr(n,t,a,i||null,!0):1===e&&null!==t?Fr(n,t,a,i||null,!0):2===e?function H0(e,n,t){e.removeChild(null,n,t)}(n,a,s):3===e&&n.destroyNode(a),null!=o&&function Z6(e,n,t,r,i){const o=t[zn];o!==Ot(t)&&E(n,e,r,o,i);for(let a=Vn;a0&&(e[t-1][Do]=r[Do]);const o=Ff(e,Vn+n);!function me(e,n){be(e,n),n[En]=null,n[Fn]=null}(r[Te],r);const s=o[So];null!==s&&s.detachView(o[Te]),r[Kn]=null,r[Do]=null,r[Ge]&=-129}return r}function bt(e,n){if(!(256&n[Ge])){const t=n[st];t.destroyNode&&ux(e,n,t,3,null,null),function Le(e){let n=e[Uu];if(!n)return St(e[Te],e);for(;n;){let t=null;if(fn(n))t=n[Uu];else{const r=n[Vn];r&&(t=r)}if(!t){for(;n&&!n[Do]&&n!==e;)fn(n)&&St(n[Te],n),n=n[Kn];null===n&&(n=e),fn(n)&&St(n[Te],n),t=n&&n[Do]}n=t}}(n)}}function St(e,n){if(256&n[Ge])return;const t=Je(null);try{n[Ge]&=-129,n[Ge]|=256,n[co]&&ga(n[co]),function ni(e,n){let t;if(null!=e&&null!=(t=e.destroyHooks))for(let r=0;r=0?r[s]():r[-s].unsubscribe(),o+=2}else t[o].call(r[t[o+1]]);null!==r&&(n[fc]=null);const i=n[Ea];if(null!==i){n[Ea]=null;for(let o=0;o-1){const{encapsulation:o}=e.data[r.directiveStart+i];if(o===W.None||o===W.Emulated)return null}return zr(r,t)}}(e,n.parent,t)}function Fr(e,n,t,r,i){e.insertBefore(n,t,r,i)}function ds(e,n,t){e.appendChild(n,t)}function U0(e,n,t,r,i){null!==r?Fr(e,n,t,r,i):ds(e,n,t)}function kC(e,n){return e.parentNode(n)}function Qk(e,n,t){return eM(e,n,t)}let MC,eM=function Jk(e,n,t){return 40&e.type?zr(e,t):null};function cx(e,n,t,r){const i=ri(e,r,n),o=n[st],a=Qk(r.parent||n[Fn],r,n);if(null!=i)if(Array.isArray(t))for(let l=0;lje&&aM(e,n,je,!1),Ao(s?2:0,i),t(r,i)}finally{Da(o),Ao(s?3:1,i)}}function NC(e,n,t){if(Tm(n)){const r=Je(null);try{const o=n.directiveEnd;for(let s=n.directiveStart;snull;function hM(e,n,t,r,i){for(let o in n){if(!n.hasOwnProperty(o))continue;const s=n[o];if(void 0===s)continue;r??={};let a,l=ae.None;Array.isArray(s)?(a=s[0],l=s[1]):a=s;let u=o;if(null!==i){if(!i.hasOwnProperty(o))continue;u=i[o]}0===e?pM(r,t,u,a,l):pM(r,t,u,a)}return r}function pM(e,n,t,r,i){let o;e.hasOwnProperty(t)?(o=e[t]).push(n,r):o=e[t]=[n,r],void 0!==i&&o.push(i)}function go(e,n,t,r,i,o,s,a){const l=zr(n,t);let f,u=n.inputs;!a&&null!=u&&(f=u[r])?(zC(e,t,f,r,i),rs(n)&&function d5(e,n){const t=nt(n,e);16&t[Ge]||(t[Ge]|=64)}(t,n.index)):3&n.type&&(r=function u5(e){return"class"===e?"className":"for"===e?"htmlFor":"formaction"===e?"formAction":"innerHtml"===e?"innerHTML":"readonly"===e?"readOnly":"tabindex"===e?"tabIndex":e}(r),i=null!=s?s(i,n.value||"",r):i,o.setProperty(l,r,i))}function VC(e,n,t,r){if(eh()){const i=null===r?null:{"":-1},o=function _5(e,n){const t=e.directiveRegistry;let r=null,i=null;if(t)for(let o=0;o0;){const t=e[--n];if("number"==typeof t&&t<0)return t}return 0})(s)!=a&&s.push(a),s.push(t,r,o)}}(e,n,r,j0(e,t,i.hostVars,mt),i)}function ka(e,n,t,r,i,o){const s=zr(e,n);!function HC(e,n,t,r,i,o,s){if(null==o)e.removeAttribute(n,i,t);else{const a=null==s?lt(o):s(o,r||"",i);e.setAttribute(n,i,a,t)}}(n[st],s,o,e.value,t,r,i)}function E5(e,n,t,r,i,o){const s=o[n];if(null!==s)for(let a=0;a0&&(t[i-1][Do]=n),r{_c(e.lView)},consumerOnSignalRead(){this.lView[co]=this}},R5={...ma,consumerIsAlwaysLive:!0,consumerMarkedDirty:e=>{let n=Wn(e.lView);for(;n&&!TM(n[Te]);)n=Wn(n);n&&Nv(n)},consumerOnSignalRead(){this.lView[co]=this}};function TM(e){return 2!==e.type}const O5=100;function px(e,n=!0,t=0){const r=e[ts],i=r.rendererFactory;i.begin?.();try{!function N5(e,n){const t=Lm();try{Bm(!0),GC(e,n);let r=0;for(;Zf(e);){if(r===O5)throw new se(103,!1);r++,GC(e,1)}}finally{Bm(t)}}(e,t)}catch(s){throw n&&hx(e,s),s}finally{i.end?.(),r.inlineEffectRunner?.flush()}}function P5(e,n,t,r){const i=n[Ge];if(!(256&~i))return;n[ts].inlineEffectRunner?.flush(),rh(n);let a=!0,l=null,u=null;TM(e)?(u=function I5(e){return e[co]??function A5(e){const n=CM.pop()??Object.create(M5);return n.lView=e,n}(e)}(n),l=Yo(u)):null===function $p(){return N}()?(a=!1,u=function F5(e){const n=e[co]??Object.create(R5);return n.lView=e,n}(n),l=Yo(u)):n[co]&&(ga(n[co]),n[co]=null);try{Ov(n),function hl(e){return qe.lFrame.bindingIndex=e}(e.bindingStartIndex),null!==t&&uM(e,n,t,2,r);const f=!(3&~i);if(f){const g=e.preOrderCheckHooks;null!==g&&ls(n,g,null)}else{const g=e.preOrderHooks;null!==g&&lh(n,g,0,null),Zu(n,0)}if(function L5(e){for(let n=ad(e);null!==n;n=ld(n)){if(!(n[Ge]&Ca.HasTransplantedViews))continue;const t=n[ul];for(let r=0;r-1&&(Ke(n,r),Ff(t,r))}this._attachedToViewContainer=!1}bt(this._lView[Te],this._lView)}onDestroy(n){Gu(this._lView,n)}markForCheck(){$0(this._cdRefInjectingView||this._lView,4)}detach(){this._lView[Ge]&=-129}reattach(){gc(this._lView),this._lView[Ge]|=128}detectChanges(){this._lView[Ge]|=1024,px(this._lView,this.notifyErrorHandler)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new se(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null;const n=$n(this._lView),t=this._lView[cl];null!==t&&!n&>(t,this._lView),be(this._lView[Te],this._lView)}attachToAppRef(n){if(this._attachedToViewContainer)throw new se(902,!1);this._appRef=n;const t=$n(this._lView),r=this._lView[cl];null!==r&&!t&&rt(r,this._lView),gc(this._lView)}}let Ma=(()=>{class e{static{this.__NG_ELEMENT_ID__=H5}}return e})();const V5=Ma,U5=class extends V5{constructor(n,t,r){super(),this._declarationLView=n,this._declarationTContainer=t,this.elementRef=r}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(n,t){return this.createEmbeddedViewImpl(n,t)}createEmbeddedViewImpl(n,t,r){const i=Lh(this._declarationLView,this._declarationTContainer,n,{embeddedViewInjector:t,dehydratedView:r});return new W0(i)}};function H5(){return mx(Gt(),oe())}function mx(e,n){return 4&e.type?new U5(n,e,Ic(e,n)):null}let KM=()=>null;function xd(e,n){return KM(e,n)}class Uh{}const J0=new xe("",{providedIn:"root",factory:()=>!1}),ZM=new xe(""),rT=new xe("");class RU{}class QM{}class NU{resolveComponentFactory(n){throw function OU(e){const n=Error(`No component factory found for ${rr(e)}.`);return n.ngComponent=e,n}(n)}}class Hh{static{this.NULL=new NU}}class bx{}let Vc=(()=>{class e{constructor(){this.destroyNode=null}static{this.__NG_ELEMENT_ID__=()=>function PU(){const e=oe(),t=nt(Gt().index,e);return(fn(t)?t:e)[st]}()}}return e})(),LU=(()=>{class e{static{this.\u0275prov=Be({token:e,providedIn:"root",factory:()=>null})}}return e})();function Ex(e,n,t){let r=t?e.styles:null,i=t?e.classes:null,o=0;if(null!==n)for(let s=0;s0&&oM(e,t,o.join(" "))}}(m,U,v,r),void 0!==t&&function qU(e,n,t){const r=e.projection=[];for(let i=0;i{class e{static{this.__NG_ELEMENT_ID__=YU}}return e})();function YU(){return sF(Gt(),oe())}const KU=fs,iF=class extends KU{constructor(n,t,r){super(),this._lContainer=n,this._hostTNode=t,this._hostLView=r}get element(){return Ic(this._hostTNode,this._hostLView)}get injector(){return new sr(this._hostTNode,this._hostLView)}get parentInjector(){const n=td(this._hostTNode,this._hostLView);if(Wm(n)){const t=Tc(n,this._hostLView),r=Qu(n);return new sr(t[Te].data[r+8],t)}return new sr(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(n){const t=oF(this._lContainer);return null!==t&&t[n]||null}get length(){return this._lContainer.length-Vn}createEmbeddedView(n,t,r){let i,o;"number"==typeof r?i=r:null!=r&&(i=r.index,o=r.injector);const s=xd(this._lContainer,n.ssrId),a=n.createEmbeddedViewImpl(t||{},o,s);return this.insertImpl(a,i,vd(this._hostTNode,s)),a}createComponent(n,t,r,i,o){const s=n&&!function Vu(e){return"function"==typeof e}(n);let a;if(s)a=t;else{const v=t||{};a=v.index,r=v.injector,i=v.projectableNodes,o=v.environmentInjector||v.ngModuleRef}const l=s?n:new ng(yt(n)),u=r||this.parentInjector;if(!o&&null==l.ngModule){const _=(s?u:this.parentInjector).get(Li,null);_&&(o=_)}const f=yt(l.componentType??{}),h=xd(this._lContainer,f?.id??null),g=l.create(u,i,h?.firstChild??null,o);return this.insertImpl(g.hostView,a,vd(this._hostTNode,h)),g}insert(n,t){return this.insertImpl(n,t,!0)}insertImpl(n,t,r){const i=n._lView;if(function Wu(e){return Ir(e[Kn])}(i)){const a=this.indexOf(n);if(-1!==a)this.detach(a);else{const l=i[Kn],u=new iF(l,l[Fn],l[Kn]);u.detach(u.indexOf(n))}}const o=this._adjustIndex(t),s=this._lContainer;return Bh(s,i,o,r),n.attachToViewContainerRef(),il(sT(s),o,n),n}move(n,t){return this.insert(n,t)}indexOf(n){const t=oF(this._lContainer);return null!==t?t.indexOf(n):-1}remove(n){const t=this._adjustIndex(n,-1),r=Ke(this._lContainer,t);r&&(Ff(sT(this._lContainer),t),bt(r[Te],r))}detach(n){const t=this._adjustIndex(n,-1),r=Ke(this._lContainer,t);return r&&null!=Ff(sT(this._lContainer),t)?new W0(r):null}_adjustIndex(n,t=0){return n??this.length+t}};function oF(e){return e[8]}function sT(e){return e[8]||(e[8]=[])}function sF(e,n){let t;const r=n[e.index];return Ir(r)?t=r:(t=_M(r,n,null,e),n[e.index]=t,fx(n,t)),aF(t,n,e,r),new iF(t,e,n)}let aF=function cF(e,n,t,r){if(e[zn])return;let i;i=8&t.type?Ot(r):function ZU(e,n){const t=e[st],r=t.createComment(""),i=zr(n,e);return Fr(t,kC(t,i),r,function Y6(e,n){return e.nextSibling(n)}(t,i),!1),r}(n,t),e[zn]=i},aT=()=>!1;class lT{constructor(n){this.queryList=n,this.matches=null}clone(){return new lT(this.queryList)}setDirty(){this.queryList.setDirty()}}class cT{constructor(n=[]){this.queries=n}createEmbeddedView(n){const t=n.queries;if(null!==t){const r=null!==n.contentQueries?n.contentQueries[0]:t.length,i=[];for(let o=0;on.trim())}(n):n}}class uT{constructor(n=[]){this.queries=n}elementStart(n,t){for(let r=0;r0)r.push(s[a/2]);else{const u=o[a+1],f=n[-l];for(let h=Vn;h(Xo(n),n.value);return t[bo]=n,t}(e),r=t[bo];return n?.equal&&(r.equal=n.equal),t.set=i=>G_(r,i),t.update=i=>function ql(e,n){gu()||Ns(),G_(e,n(e.value))}(r,i),t.asReadonly=vF.bind(t),t}function vF(){const e=this[bo];if(void 0===e.readonlyFn){const n=()=>this();n[bo]=e,e.readonlyFn=n}return e.readonlyFn}function zt(e){let n=function kF(e){return Object.getPrototypeOf(e.prototype).constructor}(e.type),t=!0;const r=[e];for(;n;){let i;if(uo(e))i=n.\u0275cmp||n.\u0275dir;else{if(n.\u0275cmp)throw new se(903,!1);i=n.\u0275dir}if(i){if(t){r.push(i);const s=e;s.inputs=Dx(e.inputs),s.inputTransforms=Dx(e.inputTransforms),s.declaredInputs=Dx(e.declaredInputs),s.outputs=Dx(e.outputs);const a=i.hostBindings;a&&xH(e,a);const l=i.viewQuery,u=i.contentQueries;if(l&&vH(e,l),u&&yH(e,u),gH(e,i),hw(e.outputs,i.outputs),uo(i)&&i.data.animation){const f=e.data;f.animation=(f.animation||[]).concat(i.data.animation)}}const o=i.features;if(o)for(let s=0;s=0;r--){const i=e[r];i.hostVars=n+=i.hostVars,i.hostAttrs=In(i.hostAttrs,t=In(t,i.hostAttrs))}}(r)}function gH(e,n){for(const t in n.inputs){if(!n.inputs.hasOwnProperty(t)||e.inputs.hasOwnProperty(t))continue;const r=n.inputs[t];if(void 0!==r&&(e.inputs[t]=r,e.declaredInputs[t]=n.declaredInputs[t],null!==n.inputTransforms)){const i=Array.isArray(r)?r[0]:r;if(!n.inputTransforms.hasOwnProperty(i))continue;e.inputTransforms??={},e.inputTransforms[i]=n.inputTransforms[i]}}}function Dx(e){return e===Co?{}:e===Lt?[]:e}function vH(e,n){const t=e.viewQuery;e.viewQuery=t?(r,i)=>{n(r,i),t(r,i)}:n}function yH(e,n){const t=e.contentQueries;e.contentQueries=t?(r,i,o)=>{n(r,i,o),t(r,i,o)}:n}function xH(e,n){const t=e.hostBindings;e.hostBindings=t?(r,i)=>{n(r,i),t(r,i)}:n}function zh(e){const n=e.inputConfig,t={};for(const r in n)if(n.hasOwnProperty(r)){const i=n[r];Array.isArray(i)&&i[3]&&(t[r]=i[3])}e.inputTransforms=t}class Ed{}class DH{}class _T extends Ed{constructor(n,t,r,i=!0){super(),this.ngModuleType=n,this._parent=t,this._bootstrapComponents=[],this.destroyCbs=[],this.componentFactoryResolver=new nF(this);const o=function jr(e,n){const t=e[If]||null;if(!t&&!0===n)throw new Error(`Type ${rr(e)} does not have '\u0275mod' property.`);return t}(n);this._bootstrapComponents=function $i(e){return e instanceof Function?e():e}(o.bootstrap),this._r3Injector=oy(n,t,[{provide:Ed,useValue:this},{provide:Hh,useValue:this.componentFactoryResolver},...r],rr(n),new Set(["environment"])),i&&this.resolveInjectorInitializers()}resolveInjectorInitializers(){this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(this.ngModuleType)}get injector(){return this._r3Injector}destroy(){const n=this._r3Injector;!n.destroyed&&n.destroy(),this.destroyCbs.forEach(t=>t()),this.destroyCbs=null}onDestroy(n){this.destroyCbs.push(n)}}class vT extends DH{constructor(n){super(),this.moduleType=n}create(n){return new _T(this.moduleType,n,[])}}class NF extends Ed{constructor(n){super(),this.componentFactoryResolver=new nF(this),this.instance=null;const t=new lc([...n.providers,{provide:Ed,useValue:this},{provide:Hh,useValue:this.componentFactoryResolver}],n.parent||zs(),n.debugName,new Set(["environment"]));this.injector=t,n.runEnvironmentInitializers&&t.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(n){this.injector.onDestroy(n)}}function Fa(e,n,t){return e[n]=t}function lr(e,n,t){return!Object.is(e[n],t)&&(e[n]=t,!0)}function og(e,n,t,r,i,o,s,a,l,u){const f=t+je,h=n.firstCreatePass?function RH(e,n,t,r,i,o,s,a,l){const u=n.consts,f=_d(n,e,4,s||null,a||null);VC(n,t,f,Bi(u,l)),wc(n,f);const h=f.tView=BC(2,f,r,i,o,n.directiveRegistry,n.pipeRegistry,null,n.schemas,u,null);return null!==n.queries&&(n.queries.template(n,f),h.queries=n.queries.embeddedTView(f)),f}(f,n,e,r,i,o,s,a,l):n.data[f];po(h,!1);const m=LF(n,e,h,t);as()&&cx(n,e,m,h),Gr(m,e);const g=_M(m,e,m,h);return e[f]=g,fx(e,g),function lF(e,n,t){return aT(e,n,t)}(g,h,e),Wf(h)&&PC(n,e,h),null!=l&&LC(e,h,u),h}function ps(e,n,t,r,i,o,s,a){const l=oe(),u=xt();return og(l,u,e,n,t,r,i,Bi(u.consts,o),s,a),ps}let LF=function BF(e,n,t,r){return $e(!0),n[st].createComment("")};var Gh=function(e){return e[e.EarlyRead=0]="EarlyRead",e[e.Write=1]="Write",e[e.MixedReadWrite=2]="MixedReadWrite",e[e.Read=3]="Read",e}(Gh||{});let $F=(()=>{class e{constructor(){this.impl=null}execute(){this.impl?.execute()}static{this.\u0275prov=Be({token:e,providedIn:"root",factory:()=>new e})}}return e})();class lg{constructor(){this.ngZone=De(ct),this.scheduler=De(Uh),this.errorHandler=De(ji,{optional:!0}),this.sequences=new Set,this.deferredRegistrations=new Set,this.executing=!1}static{this.PHASES=[Gh.EarlyRead,Gh.Write,Gh.MixedReadWrite,Gh.Read]}execute(){this.executing=!0;for(const n of lg.PHASES)for(const t of this.sequences)if(!t.erroredOrDestroyed&&t.hooks[n])try{t.pipelinedValue=this.ngZone.runOutsideAngular(()=>t.hooks[n](t.pipelinedValue))}catch(r){t.erroredOrDestroyed=!0,this.errorHandler?.handleError(r)}this.executing=!1;for(const n of this.sequences)n.afterRun(),n.once&&(this.sequences.delete(n),n.destroy());for(const n of this.deferredRegistrations)this.sequences.add(n);this.deferredRegistrations.size>0&&this.scheduler.notify(7),this.deferredRegistrations.clear()}register(n){this.executing?this.deferredRegistrations.add(n):(this.sequences.add(n),this.scheduler.notify(6))}unregister(n){this.executing&&this.sequences.has(n)?(n.erroredOrDestroyed=!0,n.pipelinedValue=void 0,n.once=!0):(this.sequences.delete(n),this.deferredRegistrations.delete(n))}static{this.\u0275prov=Be({token:lg,providedIn:"root",factory:()=>new lg})}}class LH{constructor(n,t,r,i){this.impl=n,this.hooks=t,this.once=r,this.erroredOrDestroyed=!1,this.pipelinedValue=void 0,this.unregisterOnDestroy=i?.onDestroy(()=>this.destroy())}afterRun(){this.erroredOrDestroyed=!1,this.pipelinedValue=void 0}destroy(){this.impl.unregister(this),this.unregisterOnDestroy?.()}}function qh(e,n){!n?.injector&&Em();const t=n?.injector??De(Un);return Wi(t)?(qi("NgAfterNextRender"),GF(e,t,n,!0)):qF}function GF(e,n,t,r){const i=n.get($F);i.impl??=n.get(lg);const o=t?.phase??Gh.MixedReadWrite,s=!0!==t?.manualCleanup?n.get(rd):null,a=new LH(i.impl,function BH(e,n){if(e instanceof Function){const t=[void 0,void 0,void 0,void 0];return t[n]=e,t}return[e.earlyRead,e.write,e.mixedReadWrite,e.read]}(e,o),r,s);return i.impl.register(a),a}const qF={destroy(){}};function yi(e,n,t,r){const i=oe();return lr(i,ei(),n)&&(xt(),ka(hn(),i,e,n,t,r)),yi}function ep(e,n,t,r){return lr(e,ei(),t)?n+lt(t)+r:mt}function Ox(e,n){return e<<17|n<<2}function jc(e){return e>>17&32767}function kT(e){return 2|e}function Dd(e){return(131068&e)>>2}function MT(e,n){return-131069&e|n<<2}function FT(e){return 1|e}function x2(e,n,t,r){const i=e[t+1],o=null===n;let s=r?jc(i):Dd(i),a=!1;for(;0!==s&&(!1===a||o);){const u=e[s+1];x9(e[s],n)&&(a=!0,e[s+1]=r?FT(u):kT(u)),s=r?jc(u):Dd(u)}a&&(e[t+1]=r?kT(i):FT(i))}function x9(e,n){return null===e||null==n||(Array.isArray(e)?e[1]:e)===n||!(!Array.isArray(e)||"string"!=typeof n)&&sc(e,n)>=0}const Rr={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function b2(e){return e.substring(Rr.key,Rr.keyEnd)}function w2(e,n){const t=Rr.textEnd;return t===n?-1:(n=Rr.keyEnd=function C9(e,n,t){for(;n32;)n++;return n}(e,Rr.key=n,t),lp(e,n,t))}function lp(e,n,t){for(;n=0;t=w2(n,t))Pi(e,b2(n),!0)}function I2(e,n){return n>=e.expandoStartIndex}function A2(e,n,t,r){const i=e.data;if(null===i[t+1]){const o=i[Ar()],s=I2(e,t);R2(o,r)&&null===n&&!s&&(n=!1),n=function I9(e,n,t,r){const i=Xu(e);let o=r?n.residualClasses:n.residualStyles;if(null===i)0===(r?n.classBindings:n.styleBindings)&&(t=ug(t=OT(null,e,n,t,r),n.attrs,r),o=null);else{const s=n.directiveStylingLast;if(-1===s||e[s]!==i)if(t=OT(i,e,n,t,r),null===o){let l=function A9(e,n,t){const r=t?n.classBindings:n.styleBindings;if(0!==Dd(r))return e[jc(r)]}(e,n,r);void 0!==l&&Array.isArray(l)&&(l=OT(null,e,n,l[1],r),l=ug(l,n.attrs,r),function k9(e,n,t,r){e[jc(t?n.classBindings:n.styleBindings)]=r}(e,n,r,l))}else o=function M9(e,n,t){let r;const i=n.directiveEnd;for(let o=1+n.directiveStylingLast;o0)&&(u=!0)):f=t,i)if(0!==l){const m=jc(e[a+1]);e[r+1]=Ox(m,a),0!==m&&(e[m+1]=MT(e[m+1],r)),e[a+1]=function g9(e,n){return 131071&e|n<<17}(e[a+1],r)}else e[r+1]=Ox(a,0),0!==a&&(e[a+1]=MT(e[a+1],r)),a=r;else e[r+1]=Ox(l,0),0===a?a=r:e[l+1]=MT(e[l+1],r),l=r;u&&(e[r+1]=kT(e[r+1])),x2(e,f,r,!0),x2(e,f,r,!1),function y9(e,n,t,r,i){const o=i?e.residualClasses:e.residualStyles;null!=o&&"string"==typeof n&&sc(o,n)>=0&&(t[r+1]=FT(t[r+1]))}(n,f,e,r,o),s=Ox(a,l),o?n.classBindings=s:n.styleBindings=s}(i,o,n,t,s,r)}}function OT(e,n,t,r,i){let o=null;const s=t.directiveEnd;let a=t.directiveStylingLast;for(-1===a?a=t.directiveStart:a++;a0;){const l=e[i],u=Array.isArray(l),f=u?l[1]:l,h=null===f;let m=t[i+1];m===mt&&(m=h?Lt:void 0);let g=h?mm(m,r):f===r?m:void 0;if(u&&!Nx(g)&&(g=mm(l,r)),Nx(g)&&(a=g,s))return a;const v=e[i+1];i=s?jc(v):Dd(v)}if(null!==n){let l=o?n.residualClasses:n.residualStyles;null!=l&&(a=mm(l,r))}return a}function Nx(e){return void 0!==e}function R2(e,n){return!!(e.flags&(n?8:16))}class G9{destroy(n){}updateValue(n,t){}swap(n,t){const r=Math.min(n,t),i=Math.max(n,t),o=this.detach(i);if(i-r>1){const s=this.detach(r);this.attach(r,o),this.attach(i,s)}else this.attach(r,o)}move(n,t){this.attach(t,this.detach(n))}}function NT(e,n,t,r,i){return e===t&&Object.is(n,r)?1:Object.is(i(e,n),i(t,r))?-1:0}function PT(e,n,t,r){return!(void 0===n||!n.has(r)||(e.attach(t,n.get(r)),n.delete(r),0))}function O2(e,n,t,r,i){if(PT(e,n,r,t(r,i)))e.updateValue(r,i);else{const o=e.create(r,i);e.attach(r,o)}}function N2(e,n,t,r){const i=new Set;for(let o=n;o<=t;o++)i.add(r(o,e.at(o)));return i}class P2{constructor(){this.kvMap=new Map,this._vMap=void 0}has(n){return this.kvMap.has(n)}delete(n){if(!this.has(n))return!1;const t=this.kvMap.get(n);return void 0!==this._vMap&&this._vMap.has(t)?(this.kvMap.set(n,this._vMap.get(t)),this._vMap.delete(t)):this.kvMap.delete(n),!0}get(n){return this.kvMap.get(n)}set(n,t){if(this.kvMap.has(n)){let r=this.kvMap.get(n);void 0===this._vMap&&(this._vMap=new Map);const i=this._vMap;for(;i.has(r);)r=i.get(r);i.set(r,t)}else this.kvMap.set(n,t)}forEach(n){for(let[t,r]of this.kvMap)if(n(r,t),void 0!==this._vMap){const i=this._vMap;for(;i.has(r);)r=i.get(r),n(r,t)}}}function ii(e,n){qi("NgControlFlow");const t=oe(),r=ei(),i=t[r]!==mt?t[r]:-1,o=-1!==i?Px(t,je+i):void 0;if(lr(t,r,e)){const a=Je(null);try{if(void 0!==o&&WC(o,0),-1!==e){const l=je+e,u=Px(t,l),f=BT(t[Te],l),h=xd(u,f.tView.ssrId);Bh(u,Lh(t,f,n,{dehydratedView:h}),0,vd(f,h))}}finally{Je(a)}}else if(void 0!==o){const a=wM(o,0);void 0!==a&&(a[At]=n)}}class X9{constructor(n,t,r){this.lContainer=n,this.$implicit=t,this.$index=r}get $count(){return this.lContainer.length-Vn}}function LT(e,n){return n}class K9{constructor(n,t,r){this.hasEmptyBlock=n,this.trackByFn=t,this.liveCollection=r}}function dg(e,n,t,r,i,o,s,a,l,u,f,h,m){qi("NgControlFlow");const g=oe(),v=xt(),_=void 0!==l,x=oe(),b=a?s.bind(x[gn][At]):s,w=new K9(_,b);x[je+e]=w,og(g,v,e+1,n,t,r,i,Bi(v.consts,o)),_&&og(g,v,e+2,l,u,f,h,Bi(v.consts,m))}class Z9 extends G9{constructor(n,t,r){super(),this.lContainer=n,this.hostLView=t,this.templateTNode=r,this.operationsCounter=void 0,this.needsIndexUpdate=!1}get length(){return this.lContainer.length-Vn}at(n){return this.getLView(n)[At].$implicit}attach(n,t){const r=t[Qr];this.needsIndexUpdate||=n!==this.length,Bh(this.lContainer,t,n,vd(this.templateTNode,r))}detach(n){return this.needsIndexUpdate||=n!==this.length-1,function Q9(e,n){return Ke(e,n)}(this.lContainer,n)}create(n,t){const r=xd(this.lContainer,this.templateTNode.tView.ssrId),i=Lh(this.hostLView,this.templateTNode,new X9(this.lContainer,t,n),{dehydratedView:r});return this.operationsCounter?.recordCreate(),i}destroy(n){bt(n[Te],n),this.operationsCounter?.recordDestroy()}updateValue(n,t){this.getLView(n)[At].$implicit=t}reset(){this.needsIndexUpdate=!1,this.operationsCounter?.reset()}updateIndexes(){if(this.needsIndexUpdate)for(let n=0;n{e.destroy(l)})}(l,e,o.trackByFn),l.updateIndexes(),o.hasEmptyBlock){const u=ei(),f=0===l.length;if(lr(r,u,f)){const h=t+2,m=Px(r,h);if(f){const g=BT(i,h),v=xd(m,g.tView.ssrId);Bh(m,Lh(r,g,void 0,{dehydratedView:v}),0,vd(g,v))}else WC(m,0)}}}finally{Je(n)}}function Px(e,n){return e[n]}function BT(e,n){return $u(e,n)}function Xe(e,n,t,r){const i=oe(),o=xt(),s=je+e,a=i[st],l=o.firstCreatePass?function ej(e,n,t,r,i,o){const s=n.consts,l=_d(n,e,2,r,Bi(s,i));return VC(n,t,l,Bi(s,o)),null!==l.attrs&&Ex(l,l.attrs,!1),null!==l.mergedAttrs&&Ex(l,l.mergedAttrs,!0),null!==n.queries&&n.queries.elementStart(n,l),l}(s,o,i,n,t,r):o.data[s],u=L2(o,i,l,a,n,e);i[s]=u;const f=Wf(l);return po(l,!0),sM(a,u,l),!function $h(e){return!(32&~e.flags)}(l)&&as()&&cx(o,i,u,l),0===function Rm(){return qe.lFrame.elementDepthCount}()&&Gr(u,i),function Pv(){qe.lFrame.elementDepthCount++}(),f&&(PC(o,i,l),NC(o,l,i)),null!==r&&LC(i,l),Xe}function Ye(){let e=Gt();$r()?mo():(e=e.parent,po(e,!1));const n=e;(function rE(e){return qe.skipHydrationRootTNode===e})(n)&&function Nm(){qe.skipHydrationRootTNode=null}(),function Om(){qe.lFrame.elementDepthCount--}();const t=xt();return t.firstCreatePass&&(wc(t,e),Tm(e)&&t.queries.elementEnd(e)),null!=n.classesWithoutHost&&function lE(e){return!!(8&e.flags)}(n)&&RT(t,n,oe(),n.classesWithoutHost,!0),null!=n.stylesWithoutHost&&function Ys(e){return!!(16&e.flags)}(n)&&RT(t,n,oe(),n.stylesWithoutHost,!1),Ye}function dr(e,n,t,r){return Xe(e,n,t,r),Ye(),dr}let L2=(e,n,t,r,i,o)=>($e(!0),X(r,i,function sh(){return qe.lFrame.currentNamespace}()));function El(){return oe()}function HT(e,n,t){const r=oe();if(lr(r,ei(),n)){const o=xt(),s=hn();go(o,s,r,e,n,bM(Xu(o.data),s,r),t,!0)}return HT}const Lx="en-US";let z2=Lx,aR=(e,n,t)=>{};function yn(e,n,t,r){const i=oe(),o=xt(),s=Gt();return WT(o,i,i[st],s,e,n,r),yn}function $T(e,n){const t=Gt(),r=oe(),i=xt();return WT(i,r,bM(Xu(i.data),t,r),t,e,n),$T}function WT(e,n,t,r,i,o,s){const a=Wf(r),u=e.firstCreatePass&&xM(e),f=n[At],h=yM(n);let m=!0;if(3&r.type||s){const _=zr(r,n),x=s?s(_):_,b=h.length,w=s?O=>s(Ot(O[r.index])):r.index;let C=null;if(!s&&a&&(C=function Kj(e,n,t,r){const i=e.cleanup;if(null!=i)for(let o=0;ol?a[l]:null}"string"==typeof s&&(o+=2)}return null}(e,n,i,r.index)),null!==C)(C.__ngLastListenerFn__||C).__ngNextListenerFn__=o,C.__ngLastListenerFn__=o,m=!1;else{o=uR(r,n,f,o),aR(_,i,o);const O=t.listen(x,i,o);h.push(o,O),u&&u.push(i,w,b,b+1)}}else o=uR(r,n,f,o);const g=r.outputs;let v;if(m&&null!==g&&(v=g[i])){const _=v.length;if(_)for(let x=0;x<_;x+=2){const z=n[v[x]][v[x+1]].subscribe(o),U=h.length;h.push(o,z),u&&u.push(i,r.index,U,-(U+1))}}}function cR(e,n,t,r){const i=Je(null);try{return Ao(6,n,t),!1!==t(r)}catch(o){return hx(e,o),!1}finally{Ao(7,n,t),Je(i)}}function uR(e,n,t,r){return function i(o){if(o===Function)return r;$0(e.componentOffset>-1?nt(e.index,n):n,5);let a=cR(n,t,r,o),l=i.__ngNextListenerFn__;for(;l;)a=cR(n,t,l,o)&&a,l=l.__ngNextListenerFn__;return a}}function oi(e=1){return function Wv(e){return(qe.lFrame.contextLView=function Vi(e,n){for(;e>0;)n=n[ll],e--;return n}(e,qe.lFrame.contextLView))[At]}(e)}function Zj(e,n){let t=null;const r=function Kt(e){const n=e.attrs;if(null!=n){const t=n.indexOf(5);if(!(1&t))return n[t+1]}return null}(e);for(let i=0;i($e(!0),function S(e,n){return e.createText(n)}(n[st],r));function ms(e){return Tl("",e,""),ms}function Tl(e,n,t){const r=oe(),i=ep(r,e,n,t);return i!==mt&&function wl(e,n,t){const r=dl(n,e);!function L(e,n,t){e.setValue(n,t)}(e[st],r,t)}(r,Ar(),i),Tl}function YT(e,n,t,r,i){if(e=et(e),Array.isArray(e))for(let o=0;o>20;if(To(e)||!e.multi){const g=new Cc(u,i,te),v=ZT(l,n,i?f:f+m,h);-1===v?(fh(ed(a,s),o,l),KT(o,e,n.length),n.push(l),a.directiveStart++,a.directiveEnd++,i&&(a.providerIndexes+=1048576),t.push(g),s.push(g)):(t[v]=g,s[v]=g)}else{const g=ZT(l,n,f+m,h),v=ZT(l,n,f,f+m),x=v>=0&&t[v];if(i&&!x||!i&&!(g>=0&&t[g])){fh(ed(a,s),o,l);const b=function y7(e,n,t,r,i){const o=new Cc(e,t,te);return o.multi=[],o.index=n,o.componentProviders=0,jR(o,i,r&&!t),o}(i?v7:_7,t.length,i,r,u);!i&&x&&(t[v].providerFactory=b),KT(o,e,n.length,0),n.push(l),a.directiveStart++,a.directiveEnd++,i&&(a.providerIndexes+=1048576),t.push(b),s.push(b)}else KT(o,e,g>-1?g:v,jR(t[i?v:g],u,!i&&r));!i&&r&&x&&t[v].componentProviders++}}}function KT(e,n,t,r){const i=To(n),o=function bm(e){return!!e.useClass}(n);if(i||o){const l=(o?et(n.useClass):n).prototype.ngOnDestroy;if(l){const u=e.destroyHooks||(e.destroyHooks=[]);if(!i&&n.multi){const f=u.indexOf(t);-1===f?u.push(t,[r,l]):u[f+1].push(r,l)}else u.push(t,l)}}}function jR(e,n,t){return t&&e.componentProviders++,e.multi.push(n)-1}function ZT(e,n,t,r){for(let i=t;i{t.providersResolver=(r,i)=>function g7(e,n,t){const r=xt();if(r.firstCreatePass){const i=uo(e);YT(t,r.data,r.blueprint,i,!0),YT(n,r.data,r.blueprint,i,!1)}}(r,i?i(e):e,n)}}let x7=(()=>{class e{constructor(t){this._injector=t,this.cachedInjectors=new Map}getOrCreateStandaloneInjector(t){if(!t.standalone)return null;if(!this.cachedInjectors.has(t)){const r=ym(0,t.type),i=r.length>0?function PF(e,n,t=null){return new NF({providers:e,parent:n,debugName:t,runEnvironmentInitializers:!0}).injector}([r],this._injector,`Standalone[${t.type.name}]`):null;this.cachedInjectors.set(t,i)}return this.cachedInjectors.get(t)}ngOnDestroy(){try{for(const t of this.cachedInjectors.values())null!==t&&t.destroy()}finally{this.cachedInjectors.clear()}}static{this.\u0275prov=Be({token:e,providedIn:"environment",factory:()=>new e(ce(Li))})}}return e})();function Dl(e){qi("NgStandalone"),e.getStandaloneInjector=n=>n.get(x7).getOrCreateStandaloneInjector(e)}function zc(e,n,t,r){return function qR(e,n,t,r,i,o){const s=n+t;return lr(e,s,i)?Fa(e,s+1,o?r.call(o,i):r(i)):xg(e,s+1)}(oe(),Jr(),e,n,t,r)}function GR(e,n,t,r,i){return function XR(e,n,t,r,i,o,s){const a=n+t;return function Cd(e,n,t,r){const i=lr(e,n,t);return lr(e,n+1,r)||i}(e,a,i,o)?Fa(e,a+2,s?r.call(s,i,o):r(i,o)):xg(e,a+2)}(oe(),Jr(),e,n,t,r,i)}function xg(e,n){const t=e[n];return t===mt?void 0:t}const _O=new xe(""),Wx=new xe("");let sD,iD=(()=>{class e{constructor(t,r,i){this._ngZone=t,this.registry=r,this._isZoneStable=!0,this._callbacks=[],this.taskTrackingZone=null,sD||(function Fz(e){sD=e}(i),i.addToWindow(r)),this._watchAngularEvents(),t.run(()=>{this.taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{ct.assertNotInAngularZone(),queueMicrotask(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}isStable(){return this._isZoneStable&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())queueMicrotask(()=>{for(;0!==this._callbacks.length;){let t=this._callbacks.pop();clearTimeout(t.timeoutId),t.doneCb()}});else{let t=this.getPendingTasks();this._callbacks=this._callbacks.filter(r=>!r.updateCb||!r.updateCb(t)||(clearTimeout(r.timeoutId),!1))}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(t=>({source:t.source,creationLocation:t.creationLocation,data:t.data})):[]}addCallback(t,r,i){let o=-1;r&&r>0&&(o=setTimeout(()=>{this._callbacks=this._callbacks.filter(s=>s.timeoutId!==o),t()},r)),this._callbacks.push({doneCb:t,timeoutId:o,updateCb:i})}whenStable(t,r,i){if(i&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(t,r,i),this._runCallbacksIfReady()}registerApplication(t){this.registry.registerApplication(t,this)}unregisterApplication(t){this.registry.unregisterApplication(t)}findProviders(t,r,i){return[]}static{this.\u0275fac=function(r){return new(r||e)(ce(ct),ce(oD),ce(Wx))}}static{this.\u0275prov=Be({token:e,factory:e.\u0275fac})}}return e})(),oD=(()=>{class e{constructor(){this._applications=new Map}registerApplication(t,r){this._applications.set(t,r)}unregisterApplication(t){this._applications.delete(t)}unregisterAllApplications(){this._applications.clear()}getTestability(t){return this._applications.get(t)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(t,r=!0){return sD?.findTestabilityInTree(this,t,r)??null}static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275prov=Be({token:e,factory:e.\u0275fac,providedIn:"platform"})}}return e})();function Gx(e){return!!e&&"function"==typeof e.then}function vO(e){return!!e&&"function"==typeof e.subscribe}const Rz=new xe("");let yO=(()=>{class e{constructor(){this.initialized=!1,this.done=!1,this.donePromise=new Promise((t,r)=>{this.resolve=t,this.reject=r}),this.appInits=De(Rz,{optional:!0})??[]}runInitializers(){if(this.initialized)return;const t=[];for(const i of this.appInits){const o=i();if(Gx(o))t.push(o);else if(vO(o)){const s=new Promise((a,l)=>{o.subscribe({complete:a,error:l})});t.push(s)}}const r=()=>{this.done=!0,this.resolve()};Promise.all(t).then(()=>{r()}).catch(i=>{this.reject(i)}),0===t.length&&r(),this.initialized=!0}static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275prov=Be({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})();const aD=new xe("");function bO(e,n){return Array.isArray(n)?n.reduce(bO,e):{...e,...n}}let Pa=(()=>{class e{constructor(){this._bootstrapListeners=[],this._runningTick=!1,this._destroyed=!1,this._destroyListeners=[],this._views=[],this.internalErrorHandler=De(_h),this.afterRenderManager=De($F),this.zonelessEnabled=De(J0),this.dirtyFlags=0,this.deferredDirtyFlags=0,this.externalTestViews=new Set,this.beforeRender=new Rt,this.afterTick=new Rt,this.componentTypes=[],this.components=[],this.isStable=De(Ia).hasPendingTasks.pipe(Vr(t=>!t)),this._injector=De(Li)}get allViews(){return[...this.externalTestViews.keys(),...this._views]}get destroyed(){return this._destroyed}whenStable(){let t;return new Promise(r=>{t=this.isStable.subscribe({next:i=>{i&&r()}})}).finally(()=>{t.unsubscribe()})}get injector(){return this._injector}bootstrap(t,r){const i=t instanceof QM;if(!this._injector.get(yO).done)throw!i&&function Jo(e){const n=yt(e)||kn(e)||Mn(e);return null!==n&&n.standalone}(t),new se(405,!1);let s;s=i?t:this._injector.get(Hh).resolveComponentFactory(t),this.componentTypes.push(s.componentType);const a=function Oz(e){return e.isBoundToModule}(s)?void 0:this._injector.get(Ed),u=s.create(Un.NULL,[],r||s.selector,a),f=u.location.nativeElement,h=u.injector.get(_O,null);return h?.registerApplication(f),u.onDestroy(()=>{this.detachView(u.hostView),qx(this.components,u),h?.unregisterApplication(f)}),this._loadComponent(u),u}tick(){this.zonelessEnabled||(this.dirtyFlags|=1),this._tick()}_tick(){if(this._runningTick)throw new se(101,!1);const t=Je(null);try{this._runningTick=!0,this.synchronize()}catch(r){this.internalErrorHandler(r)}finally{this._runningTick=!1,Je(t),this.afterTick.next()}}synchronize(){let t=null;this._injector.destroyed||(t=this._injector.get(bx,null,{optional:!0})),this.dirtyFlags|=this.deferredDirtyFlags,this.deferredDirtyFlags=0;let r=0;for(;0!==this.dirtyFlags&&r++<10;)this.synchronizeOnce(t)}synchronizeOnce(t){if(this.dirtyFlags|=this.deferredDirtyFlags,this.deferredDirtyFlags=0,7&this.dirtyFlags){const r=!!(1&this.dirtyFlags);this.dirtyFlags&=-8,this.dirtyFlags|=8,this.beforeRender.next(r);for(let{_lView:i,notifyErrorHandler:o}of this._views)Lz(i,o,r,this.zonelessEnabled);if(this.dirtyFlags&=-5,this.syncDirtyFlagsWithViews(),7&this.dirtyFlags)return}else t?.begin?.(),t?.end?.();8&this.dirtyFlags&&(this.dirtyFlags&=-9,this.afterRenderManager.execute()),this.syncDirtyFlagsWithViews()}syncDirtyFlagsWithViews(){this.allViews.some(({_lView:t})=>Zf(t))?this.dirtyFlags|=2:this.dirtyFlags&=-8}attachView(t){const r=t;this._views.push(r),r.attachToAppRef(this)}detachView(t){const r=t;qx(this._views,r),r.detachFromAppRef()}_loadComponent(t){this.attachView(t.hostView),this.tick(),this.components.push(t);const r=this._injector.get(aD,[]);[...this._bootstrapListeners,...r].forEach(i=>i(t))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(t=>t()),this._views.slice().forEach(t=>t.destroy())}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(t){return this._destroyListeners.push(t),()=>qx(this._destroyListeners,t)}destroy(){if(this._destroyed)throw new se(406,!1);const t=this._injector;t.destroy&&!t.destroyed&&t.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275prov=Be({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})();function qx(e,n){const t=e.indexOf(n);t>-1&&e.splice(t,1)}function Lz(e,n,t,r){(t||Zf(e))&&px(e,n,t&&!r?0:1)}let Hz=(()=>{class e{constructor(){this.zone=De(ct),this.changeDetectionScheduler=De(Uh),this.applicationRef=De(Pa)}initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.changeDetectionScheduler.runningTick||this.zone.run(()=>{this.applicationRef.tick()})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275prov=Be({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})();function lD({ngZoneFactory:e,ignoreChangesOutsideZone:n,scheduleInRootZone:t}){return e??=()=>new ct({...cD(),scheduleInRootZone:t}),[{provide:ct,useFactory:e},{provide:js,multi:!0,useFactory:()=>{const r=De(Hz,{optional:!0});return()=>r.initialize()}},{provide:js,multi:!0,useFactory:()=>{const r=De(zz);return()=>{r.initialize()}}},!0===n?{provide:ZM,useValue:!0}:[],{provide:rT,useValue:t??ly}]}function cD(e){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:e?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:e?.runCoalescing??!1}}let zz=(()=>{class e{constructor(){this.subscription=new an,this.initialized=!1,this.zone=De(ct),this.pendingTasks=De(Ia)}initialize(){if(this.initialized)return;this.initialized=!0;let t=null;!this.zone.isStable&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(t=this.pendingTasks.add()),this.zone.runOutsideAngular(()=>{this.subscription.add(this.zone.onStable.subscribe(()=>{ct.assertNotInAngularZone(),queueMicrotask(()=>{null!==t&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(this.pendingTasks.remove(t),t=null)})}))}),this.subscription.add(this.zone.onUnstable.subscribe(()=>{ct.assertInAngularZone(),t??=this.pendingTasks.add()}))}ngOnDestroy(){this.subscription.unsubscribe()}static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275prov=Be({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})(),Cg=(()=>{class e{constructor(){this.appRef=De(Pa),this.taskService=De(Ia),this.ngZone=De(ct),this.zonelessEnabled=De(J0),this.disableScheduling=De(ZM,{optional:!0})??!1,this.zoneIsDefined=typeof Zone<"u"&&!!Zone.root.run,this.schedulerTickApplyArgs=[{data:{__scheduler_tick__:!0}}],this.subscriptions=new an,this.angularZoneId=this.zoneIsDefined?this.ngZone._inner?.get(gh):null,this.scheduleInRootZone=!this.zonelessEnabled&&this.zoneIsDefined&&(De(rT,{optional:!0})??!1),this.cancelScheduledCallback=null,this.useMicrotaskScheduler=!1,this.runningTick=!1,this.pendingRenderTaskId=null,this.subscriptions.add(this.appRef.afterTick.subscribe(()=>{this.runningTick||this.cleanup()})),this.subscriptions.add(this.ngZone.onUnstable.subscribe(()=>{this.runningTick||this.cleanup()})),this.disableScheduling||=!this.zonelessEnabled&&(this.ngZone instanceof r0||!this.zoneIsDefined)}notify(t){if(!this.zonelessEnabled&&5===t)return;switch(t){case 0:this.appRef.dirtyFlags|=2;break;case 3:case 2:case 4:case 5:case 1:this.appRef.dirtyFlags|=4;break;case 7:this.appRef.deferredDirtyFlags|=8;break;default:this.appRef.dirtyFlags|=8}if(!this.shouldScheduleTick())return;const r=this.useMicrotaskScheduler?uy:cy;this.pendingRenderTaskId=this.taskService.add(),this.cancelScheduledCallback=this.scheduleInRootZone?Zone.root.run(()=>r(()=>this.tick())):this.ngZone.runOutsideAngular(()=>r(()=>this.tick()))}shouldScheduleTick(){return!(this.disableScheduling||null!==this.pendingRenderTaskId||this.runningTick||this.appRef._runningTick||!this.zonelessEnabled&&this.zoneIsDefined&&Zone.current.get(gh+this.angularZoneId))}tick(){if(this.runningTick||this.appRef.destroyed)return;!this.zonelessEnabled&&7&this.appRef.dirtyFlags&&(this.appRef.dirtyFlags|=1);const t=this.taskService.add();try{this.ngZone.run(()=>{this.runningTick=!0,this.appRef._tick()},void 0,this.schedulerTickApplyArgs)}catch(r){throw this.taskService.remove(t),r}finally{this.cleanup()}this.useMicrotaskScheduler=!0,uy(()=>{this.useMicrotaskScheduler=!1,this.taskService.remove(t)})}ngOnDestroy(){this.subscriptions.unsubscribe(),this.cleanup()}cleanup(){if(this.runningTick=!1,this.cancelScheduledCallback?.(),this.cancelScheduledCallback=null,null!==this.pendingRenderTaskId){const t=this.pendingRenderTaskId;this.pendingRenderTaskId=null,this.taskService.remove(t)}}static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275prov=Be({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})();const Sl=new xe("",{providedIn:"root",factory:()=>De(Sl,Tt.Optional|Tt.SkipSelf)||function $z(){return typeof $localize<"u"&&$localize.locale||Lx}()}),Yx=new xe("");function Kx(e){return!e.moduleRef}let IO=(()=>{class e{constructor(t){this._injector=t,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(t,r){const i=r?.scheduleInRootZone,s=r?.ignoreChangesOutsideZone,a=[lD({ngZoneFactory:()=>function my(e="zone.js",n){return"noop"===e?new r0:"zone.js"===e?new ct(n):e}(r?.ngZone,{...cD({eventCoalescing:r?.ngZoneEventCoalescing,runCoalescing:r?.ngZoneRunCoalescing}),scheduleInRootZone:i}),ignoreChangesOutsideZone:s}),{provide:Uh,useExisting:Cg}],l=function IH(e,n,t){return new _T(e,n,t,!1)}(t.moduleType,this.injector,a);return function SO(e){const n=Kx(e)?e.r3Injector:e.moduleRef.injector,t=n.get(ct);return t.run(()=>{Kx(e)?e.r3Injector.resolveInjectorInitializers():e.moduleRef.resolveInjectorInitializers();const r=n.get(ji,null);let i;if(t.runOutsideAngular(()=>{i=t.onError.subscribe({next:o=>{r.handleError(o)}})}),Kx(e)){const o=()=>n.destroy(),s=e.platformInjector.get(Yx);s.add(o),n.onDestroy(()=>{i.unsubscribe(),s.delete(o)})}else{const o=()=>e.moduleRef.destroy(),s=e.platformInjector.get(Yx);s.add(o),e.moduleRef.onDestroy(()=>{qx(e.allPlatformModules,e.moduleRef),i.unsubscribe(),s.delete(o)})}return function Pz(e,n,t){try{const r=t();return Gx(r)?r.catch(i=>{throw n.runOutsideAngular(()=>e.handleError(i)),i}):r}catch(r){throw n.runOutsideAngular(()=>e.handleError(r)),r}}(r,t,()=>{const o=n.get(yO);return o.runInitializers(),o.donePromise.then(()=>{if(function fj(e){"string"==typeof e&&(z2=e.toLowerCase().replace(/_/g,"-"))}(n.get(Sl,Lx)||Lx),Kx(e)){const a=n.get(Pa);return void 0!==e.rootComponent&&a.bootstrap(e.rootComponent),a}return function Kz(e,n){const t=e.injector.get(Pa);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach(r=>t.bootstrap(r));else{if(!e.instance.ngDoBootstrap)throw new se(-403,!1);e.instance.ngDoBootstrap(t)}n.push(e)}(e.moduleRef,e.allPlatformModules),e.moduleRef})})})}({moduleRef:l,allPlatformModules:this._modules,platformInjector:this.injector})}bootstrapModule(t,r=[]){const i=bO({},r);return function Uz(e,n,t){const r=new vT(t);return Promise.resolve(r)}(0,0,t).then(o=>this.bootstrapModuleFactory(o,i))}onDestroy(t){this._destroyListeners.push(t)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new se(404,!1);this._modules.slice().forEach(r=>r.destroy()),this._destroyListeners.forEach(r=>r());const t=this._injector.get(Yx,null);t&&(t.forEach(r=>r()),t.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}static{this.\u0275fac=function(r){return new(r||e)(ce(Un))}}static{this.\u0275prov=Be({token:e,factory:e.\u0275fac,providedIn:"platform"})}}return e})(),$c=null;const AO=new xe("");function kO(e,n,t=[]){const r=`Platform: ${n}`,i=new xe(r);return(o=[])=>{let s=dD();if(!s||s.injector.get(AO,!1)){const a=[...t,...o,{provide:i,useValue:!0}];e?e(a):function Zz(e){if($c&&!$c.get(AO,!1))throw new se(400,!1);(function xO(){!function rw(e){va=e}(()=>{throw new se(600,!1)})})(),$c=e;const n=e.get(IO);(function FO(e){e.get(Hn,null)?.forEach(t=>t())})(e)}(function MO(e=[],n){return Un.create({name:n,providers:[{provide:ba,useValue:"platform"},{provide:Yx,useValue:new Set([()=>$c=null])},...e]})}(a,r))}return function Qz(){const n=dD();if(!n)throw new se(401,!1);return n}()}}function dD(){return $c?.get(IO)??null}let Il=(()=>{class e{static{this.__NG_ELEMENT_ID__=e$}}return e})();function e$(e){return function t$(e,n,t){if(rs(e)&&!t){const r=nt(e.index,n);return new W0(r,r)}return 175&e.type?new W0(n[gn],n):null}(Gt(),oe(),!(16&~e))}const h$=kO(null,"core",[]);let p$=(()=>{class e{constructor(t){}static{this.\u0275fac=function(r){return new(r||e)(ce(Pa))}}static{this.\u0275mod=Wt({type:e})}static{this.\u0275inj=Yt({})}}return e})();function Nr(e){return"boolean"==typeof e?e:null!=e&&"false"!==e}function Ig(e,n){qi("NgSignals");const t=function ew(e){const n=Object.create(tw);n.computation=e;const t=()=>{if(Xa(n),Xo(n),n.value===_u)throw n.error;return n.value};return t[bo]=n,t}(e);return n?.equal&&(t[bo].equal=n.equal),t}function oa(e){const n=Je(null);try{return e()}finally{Je(n)}}let fN=null;function Wc(){return fN}class Z${}const Vt=new xe("");let hN=(()=>{class e{historyGo(t){throw new Error("")}static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275prov=Be({token:e,factory:()=>De(Q$),providedIn:"platform"})}}return e})(),Q$=(()=>{class e extends hN{constructor(){super(),this._doc=De(Vt),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return Wc().getBaseHref(this._doc)}onPopState(t){const r=Wc().getGlobalEventTarget(this._doc,"window");return r.addEventListener("popstate",t,!1),()=>r.removeEventListener("popstate",t)}onHashChange(t){const r=Wc().getGlobalEventTarget(this._doc,"window");return r.addEventListener("hashchange",t,!1),()=>r.removeEventListener("hashchange",t)}get href(){return this._location.href}get protocol(){return this._location.protocol}get hostname(){return this._location.hostname}get port(){return this._location.port}get pathname(){return this._location.pathname}get search(){return this._location.search}get hash(){return this._location.hash}set pathname(t){this._location.pathname=t}pushState(t,r,i){this._history.pushState(t,r,i)}replaceState(t,r,i){this._history.replaceState(t,r,i)}forward(){this._history.forward()}back(){this._history.back()}historyGo(t=0){this._history.go(t)}getState(){return this._history.state}static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275prov=Be({token:e,factory:()=>new e,providedIn:"platform"})}}return e})();function pN(e,n){if(0==e.length)return n;if(0==n.length)return e;let t=0;return e.endsWith("/")&&t++,n.startsWith("/")&&t++,2==t?e+n.substring(1):1==t?e+n:e+"/"+n}function mN(e){const n=e.match(/#|\?|$/),t=n&&n.index||e.length;return e.slice(0,t-("/"===e[t-1]?1:0))+e.slice(t)}function Ad(e){return e&&"?"!==e[0]?"?"+e:e}let yD=(()=>{class e{historyGo(t){throw new Error("")}static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275prov=Be({token:e,factory:()=>De(eW),providedIn:"root"})}}return e})();const J$=new xe("");let eW=(()=>{class e extends yD{constructor(t,r){super(),this._platformLocation=t,this._removeListenerFns=[],this._baseHref=r??this._platformLocation.getBaseHrefFromDOM()??De(Vt).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(t){this._removeListenerFns.push(this._platformLocation.onPopState(t),this._platformLocation.onHashChange(t))}getBaseHref(){return this._baseHref}prepareExternalUrl(t){return pN(this._baseHref,t)}path(t=!1){const r=this._platformLocation.pathname+Ad(this._platformLocation.search),i=this._platformLocation.hash;return i&&t?`${r}${i}`:r}pushState(t,r,i,o){const s=this.prepareExternalUrl(i+Ad(o));this._platformLocation.pushState(t,r,s)}replaceState(t,r,i,o){const s=this.prepareExternalUrl(i+Ad(o));this._platformLocation.replaceState(t,r,s)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(t=0){this._platformLocation.historyGo?.(t)}static{this.\u0275fac=function(r){return new(r||e)(ce(hN),ce(J$,8))}}static{this.\u0275prov=Be({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})(),gN=(()=>{class e{constructor(t){this._subject=new Cn,this._urlChangeListeners=[],this._urlChangeSubscription=null,this._locationStrategy=t;const r=this._locationStrategy.getBaseHref();this._basePath=function rW(e){if(new RegExp("^(https?:)?//").test(e)){const[,t]=e.split(/\/\/[^\/]+/);return t}return e}(mN(_N(r))),this._locationStrategy.onPopState(i=>{this._subject.emit({url:this.path(!0),pop:!0,state:i.state,type:i.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(t=!1){return this.normalize(this._locationStrategy.path(t))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(t,r=""){return this.path()==this.normalize(t+Ad(r))}normalize(t){return e.stripTrailingSlash(function nW(e,n){if(!e||!n.startsWith(e))return n;const t=n.substring(e.length);return""===t||["/",";","?","#"].includes(t[0])?t:n}(this._basePath,_N(t)))}prepareExternalUrl(t){return t&&"/"!==t[0]&&(t="/"+t),this._locationStrategy.prepareExternalUrl(t)}go(t,r="",i=null){this._locationStrategy.pushState(i,"",t,r),this._notifyUrlChangeListeners(this.prepareExternalUrl(t+Ad(r)),i)}replaceState(t,r="",i=null){this._locationStrategy.replaceState(i,"",t,r),this._notifyUrlChangeListeners(this.prepareExternalUrl(t+Ad(r)),i)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(t=0){this._locationStrategy.historyGo?.(t)}onUrlChange(t){return this._urlChangeListeners.push(t),this._urlChangeSubscription??=this.subscribe(r=>{this._notifyUrlChangeListeners(r.url,r.state)}),()=>{const r=this._urlChangeListeners.indexOf(t);this._urlChangeListeners.splice(r,1),0===this._urlChangeListeners.length&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(t="",r){this._urlChangeListeners.forEach(i=>i(t,r))}subscribe(t,r,i){return this._subject.subscribe({next:t,error:r,complete:i})}static{this.normalizeQueryParams=Ad}static{this.joinWithSlash=pN}static{this.stripTrailingSlash=mN}static{this.\u0275fac=function(r){return new(r||e)(ce(yD))}}static{this.\u0275prov=Be({token:e,factory:()=>function tW(){return new gN(ce(yD))}(),providedIn:"root"})}}return e})();function _N(e){return e.replace(/\/index.html$/,"")}function DN(e,n){n=encodeURIComponent(n);for(const t of e.split(";")){const r=t.indexOf("="),[i,o]=-1==r?[t,""]:[t.slice(0,r),t.slice(r+1)];if(i.trim()===n)return decodeURIComponent(o)}return null}const AD=/\s+/,SN=[];let mp=(()=>{class e{constructor(t,r){this._ngEl=t,this._renderer=r,this.initialClasses=SN,this.stateMap=new Map}set klass(t){this.initialClasses=null!=t?t.trim().split(AD):SN}set ngClass(t){this.rawClass="string"==typeof t?t.trim().split(AD):t}ngDoCheck(){for(const r of this.initialClasses)this._updateState(r,!0);const t=this.rawClass;if(Array.isArray(t)||t instanceof Set)for(const r of t)this._updateState(r,!0);else if(null!=t)for(const r of Object.keys(t))this._updateState(r,!!t[r]);this._applyStateDiff()}_updateState(t,r){const i=this.stateMap.get(t);void 0!==i?(i.enabled!==r&&(i.changed=!0,i.enabled=r),i.touched=!0):this.stateMap.set(t,{enabled:r,changed:!0,touched:!0})}_applyStateDiff(){for(const t of this.stateMap){const r=t[0],i=t[1];i.changed?(this._toggleClass(r,i.enabled),i.changed=!1):i.touched||(i.enabled&&this._toggleClass(r,!1),this.stateMap.delete(r)),i.touched=!1}}_toggleClass(t,r){(t=t.trim()).length>0&&t.split(AD).forEach(i=>{r?this._renderer.addClass(this._ngEl.nativeElement,i):this._renderer.removeClass(this._ngEl.nativeElement,i)})}static{this.\u0275fac=function(r){return new(r||e)(te(_n),te(Vc))}}static{this.\u0275dir=Ze({type:e,selectors:[["","ngClass",""]],inputs:{klass:[0,"class","klass"],ngClass:"ngClass"},standalone:!0})}}return e})(),OD=(()=>{class e{static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275mod=Wt({type:e})}static{this.\u0275inj=Yt({})}}return e})();const RN="browser";function ON(e){return"server"===e}class NN{}class GG extends Z${constructor(){super(...arguments),this.supportsDOMEvents=!0}}class BD extends GG{static makeCurrent(){!function K$(e){fN??=e}(new BD)}onAndCancel(n,t,r){return n.addEventListener(t,r),()=>{n.removeEventListener(t,r)}}dispatchEvent(n,t){n.dispatchEvent(t)}remove(n){n.remove()}createElement(n,t){return(t=t||this.getDefaultDocument()).createElement(n)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(n){return n.nodeType===Node.ELEMENT_NODE}isShadowRoot(n){return n instanceof DocumentFragment}getGlobalEventTarget(n,t){return"window"===t?window:"document"===t?n:"body"===t?n.body:null}getBaseHref(n){const t=function qG(){return Fg=Fg||document.querySelector("base"),Fg?Fg.getAttribute("href"):null}();return null==t?null:function XG(e){return new URL(e,document.baseURI).pathname}(t)}resetBaseElement(){Fg=null}getUserAgent(){return window.navigator.userAgent}getCookie(n){return DN(document.cookie,n)}}let Fg=null,KG=(()=>{class e{build(){return new XMLHttpRequest}static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275prov=Be({token:e,factory:e.\u0275fac})}}return e})();const VD=new xe("");let GN=(()=>{class e{constructor(t,r){this._zone=r,this._eventNameToPlugin=new Map,t.forEach(i=>{i.manager=this}),this._plugins=t.slice().reverse()}addEventListener(t,r,i){return this._findPluginFor(r).addEventListener(t,r,i)}getZone(){return this._zone}_findPluginFor(t){let r=this._eventNameToPlugin.get(t);if(r)return r;if(r=this._plugins.find(o=>o.supports(t)),!r)throw new se(5101,!1);return this._eventNameToPlugin.set(t,r),r}static{this.\u0275fac=function(r){return new(r||e)(ce(VD),ce(ct))}}static{this.\u0275prov=Be({token:e,factory:e.\u0275fac})}}return e})();class qN{constructor(n){this._doc=n}}const UD="ng-app-id";let XN=(()=>{class e{constructor(t,r,i,o={}){this.doc=t,this.appId=r,this.nonce=i,this.platformId=o,this.styleRef=new Map,this.hostNodes=new Set,this.styleNodesInDOM=this.collectServerRenderedStyles(),this.platformIsServer=ON(o),this.resetHostNodes()}addStyles(t){for(const r of t)1===this.changeUsageCount(r,1)&&this.onStyleAdded(r)}removeStyles(t){for(const r of t)this.changeUsageCount(r,-1)<=0&&this.onStyleRemoved(r)}ngOnDestroy(){const t=this.styleNodesInDOM;t&&(t.forEach(r=>r.remove()),t.clear());for(const r of this.getAllStyles())this.onStyleRemoved(r);this.resetHostNodes()}addHost(t){this.hostNodes.add(t);for(const r of this.getAllStyles())this.addStyleToHost(t,r)}removeHost(t){this.hostNodes.delete(t)}getAllStyles(){return this.styleRef.keys()}onStyleAdded(t){for(const r of this.hostNodes)this.addStyleToHost(r,t)}onStyleRemoved(t){const r=this.styleRef;r.get(t)?.elements?.forEach(i=>i.remove()),r.delete(t)}collectServerRenderedStyles(){const t=this.doc.head?.querySelectorAll(`style[${UD}="${this.appId}"]`);if(t?.length){const r=new Map;return t.forEach(i=>{null!=i.textContent&&r.set(i.textContent,i)}),r}return null}changeUsageCount(t,r){const i=this.styleRef;if(i.has(t)){const o=i.get(t);return o.usage+=r,o.usage}return i.set(t,{usage:r,elements:[]}),r}getStyleElement(t,r){const i=this.styleNodesInDOM,o=i?.get(r);if(o?.parentNode===t)return i.delete(r),o.removeAttribute(UD),o;{const s=this.doc.createElement("style");return this.nonce&&s.setAttribute("nonce",this.nonce),s.textContent=r,this.platformIsServer&&s.setAttribute(UD,this.appId),t.appendChild(s),s}}addStyleToHost(t,r){const i=this.getStyleElement(t,r),o=this.styleRef,s=o.get(r)?.elements;s?s.push(i):o.set(r,{elements:[i],usage:1})}resetHostNodes(){const t=this.hostNodes;t.clear(),t.add(this.doc.head)}static{this.\u0275fac=function(r){return new(r||e)(ce(Vt),ce(vl),ce(m0,8),ce(Zs))}}static{this.\u0275prov=Be({token:e,factory:e.\u0275fac})}}return e})();const HD={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/Math/MathML"},jD=/%COMP%/g,eq=new xe("",{providedIn:"root",factory:()=>!0});function KN(e,n){return n.map(t=>t.replace(jD,e))}let zD=(()=>{class e{constructor(t,r,i,o,s,a,l,u=null){this.eventManager=t,this.sharedStylesHost=r,this.appId=i,this.removeStylesOnCompDestroy=o,this.doc=s,this.platformId=a,this.ngZone=l,this.nonce=u,this.rendererByCompId=new Map,this.platformIsServer=ON(a),this.defaultRenderer=new $D(t,s,l,this.platformIsServer)}createRenderer(t,r){if(!t||!r)return this.defaultRenderer;this.platformIsServer&&r.encapsulation===W.ShadowDom&&(r={...r,encapsulation:W.Emulated});const i=this.getOrCreateRenderer(t,r);return i instanceof QN?i.applyToHost(t):i instanceof WD&&i.applyStyles(),i}getOrCreateRenderer(t,r){const i=this.rendererByCompId;let o=i.get(r.id);if(!o){const s=this.doc,a=this.ngZone,l=this.eventManager,u=this.sharedStylesHost,f=this.removeStylesOnCompDestroy,h=this.platformIsServer;switch(r.encapsulation){case W.Emulated:o=new QN(l,u,r,this.appId,f,s,a,h);break;case W.ShadowDom:return new iq(l,u,t,r,s,a,this.nonce,h);default:o=new WD(l,u,r,f,s,a,h)}i.set(r.id,o)}return o}ngOnDestroy(){this.rendererByCompId.clear()}static{this.\u0275fac=function(r){return new(r||e)(ce(GN),ce(XN),ce(vl),ce(eq),ce(Vt),ce(Zs),ce(ct),ce(m0))}}static{this.\u0275prov=Be({token:e,factory:e.\u0275fac})}}return e})();class $D{constructor(n,t,r,i){this.eventManager=n,this.doc=t,this.ngZone=r,this.platformIsServer=i,this.data=Object.create(null),this.throwOnSyntheticProps=!0,this.destroyNode=null}destroy(){}createElement(n,t){return t?this.doc.createElementNS(HD[t]||t,n):this.doc.createElement(n)}createComment(n){return this.doc.createComment(n)}createText(n){return this.doc.createTextNode(n)}appendChild(n,t){(ZN(n)?n.content:n).appendChild(t)}insertBefore(n,t,r){n&&(ZN(n)?n.content:n).insertBefore(t,r)}removeChild(n,t){t.remove()}selectRootElement(n,t){let r="string"==typeof n?this.doc.querySelector(n):n;if(!r)throw new se(-5104,!1);return t||(r.textContent=""),r}parentNode(n){return n.parentNode}nextSibling(n){return n.nextSibling}setAttribute(n,t,r,i){if(i){t=i+":"+t;const o=HD[i];o?n.setAttributeNS(o,t,r):n.setAttribute(t,r)}else n.setAttribute(t,r)}removeAttribute(n,t,r){if(r){const i=HD[r];i?n.removeAttributeNS(i,t):n.removeAttribute(`${r}:${t}`)}else n.removeAttribute(t)}addClass(n,t){n.classList.add(t)}removeClass(n,t){n.classList.remove(t)}setStyle(n,t,r,i){i&(c.DashCase|c.Important)?n.style.setProperty(t,r,i&c.Important?"important":""):n.style[t]=r}removeStyle(n,t,r){r&c.DashCase?n.style.removeProperty(t):n.style[t]=""}setProperty(n,t,r){null!=n&&(n[t]=r)}setValue(n,t){n.nodeValue=t}listen(n,t,r){if("string"==typeof n&&!(n=Wc().getGlobalEventTarget(this.doc,n)))throw new Error(`Unsupported event target ${n} for event ${t}`);return this.eventManager.addEventListener(n,t,this.decoratePreventDefault(r))}decoratePreventDefault(n){return t=>{if("__ngUnwrap__"===t)return n;!1===(this.platformIsServer?this.ngZone.runGuarded(()=>n(t)):n(t))&&t.preventDefault()}}}function ZN(e){return"TEMPLATE"===e.tagName&&void 0!==e.content}class iq extends $D{constructor(n,t,r,i,o,s,a,l){super(n,o,s,l),this.sharedStylesHost=t,this.hostEl=r,this.shadowRoot=r.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const u=KN(i.id,i.styles);for(const f of u){const h=document.createElement("style");a&&h.setAttribute("nonce",a),h.textContent=f,this.shadowRoot.appendChild(h)}}nodeOrShadowRoot(n){return n===this.hostEl?this.shadowRoot:n}appendChild(n,t){return super.appendChild(this.nodeOrShadowRoot(n),t)}insertBefore(n,t,r){return super.insertBefore(this.nodeOrShadowRoot(n),t,r)}removeChild(n,t){return super.removeChild(null,t)}parentNode(n){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(n)))}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}}class WD extends $D{constructor(n,t,r,i,o,s,a,l){super(n,o,s,a),this.sharedStylesHost=t,this.removeStylesOnCompDestroy=i,this.styles=l?KN(l,r.styles):r.styles}applyStyles(){this.sharedStylesHost.addStyles(this.styles)}destroy(){this.removeStylesOnCompDestroy&&this.sharedStylesHost.removeStyles(this.styles)}}class QN extends WD{constructor(n,t,r,i,o,s,a,l){const u=i+"-"+r.id;super(n,t,r,o,s,a,l,u),this.contentAttr=function tq(e){return"_ngcontent-%COMP%".replace(jD,e)}(u),this.hostAttr=function nq(e){return"_nghost-%COMP%".replace(jD,e)}(u)}applyToHost(n){this.applyStyles(),this.setAttribute(n,this.hostAttr,"")}createElement(n,t){const r=super.createElement(n,t);return super.setAttribute(r,this.contentAttr,""),r}}let oq=(()=>{class e extends qN{constructor(t){super(t)}supports(t){return!0}addEventListener(t,r,i){return t.addEventListener(r,i,!1),()=>this.removeEventListener(t,r,i)}removeEventListener(t,r,i){return t.removeEventListener(r,i)}static{this.\u0275fac=function(r){return new(r||e)(ce(Vt))}}static{this.\u0275prov=Be({token:e,factory:e.\u0275fac})}}return e})();const JN=["alt","control","meta","shift"],sq={"\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"},aq={alt:e=>e.altKey,control:e=>e.ctrlKey,meta:e=>e.metaKey,shift:e=>e.shiftKey};let lq=(()=>{class e extends qN{constructor(t){super(t)}supports(t){return null!=e.parseEventName(t)}addEventListener(t,r,i){const o=e.parseEventName(r),s=e.eventCallback(o.fullKey,i,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Wc().onAndCancel(t,o.domEventName,s))}static parseEventName(t){const r=t.toLowerCase().split("."),i=r.shift();if(0===r.length||"keydown"!==i&&"keyup"!==i)return null;const o=e._normalizeKey(r.pop());let s="",a=r.indexOf("code");if(a>-1&&(r.splice(a,1),s="code."),JN.forEach(u=>{const f=r.indexOf(u);f>-1&&(r.splice(f,1),s+=u+".")}),s+=o,0!=r.length||0===o.length)return null;const l={};return l.domEventName=i,l.fullKey=s,l}static matchEventFullKeyCode(t,r){let i=sq[t.key]||t.key,o="";return r.indexOf("code.")>-1&&(i=t.code,o="code."),!(null==i||!i)&&(i=i.toLowerCase()," "===i?i="space":"."===i&&(i="dot"),JN.forEach(s=>{s!==i&&(0,aq[s])(t)&&(o+=s+".")}),o+=i,o===r)}static eventCallback(t,r,i){return o=>{e.matchEventFullKeyCode(o,t)&&i.runGuarded(()=>r(o))}}static _normalizeKey(t){return"esc"===t?"escape":t}static{this.\u0275fac=function(r){return new(r||e)(ce(Vt))}}static{this.\u0275prov=Be({token:e,factory:e.\u0275fac})}}return e})();const fq=kO(h$,"browser",[{provide:Zs,useValue:RN},{provide:Hn,useValue:function cq(){BD.makeCurrent()},multi:!0},{provide:Vt,useFactory:function dq(){return function _l(e){p0=e}(document),document},deps:[]}]),hq=new xe(""),nP=[{provide:Wx,useClass:class YG{addToWindow(n){dn.getAngularTestability=(r,i=!0)=>{const o=n.findTestabilityInTree(r,i);if(null==o)throw new se(5103,!1);return o},dn.getAllAngularTestabilities=()=>n.getAllTestabilities(),dn.getAllAngularRootElements=()=>n.getAllRootElements(),dn.frameworkStabilizers||(dn.frameworkStabilizers=[]),dn.frameworkStabilizers.push(r=>{const i=dn.getAllAngularTestabilities();let o=i.length;const s=function(){o--,0==o&&r()};i.forEach(a=>{a.whenStable(s)})})}findTestabilityInTree(n,t,r){return null==t?null:n.getTestability(t)??(r?Wc().isShadowRoot(t)?this.findTestabilityInTree(n,t.host,!0):this.findTestabilityInTree(n,t.parentElement,!0):null)}},deps:[]},{provide:_O,useClass:iD,deps:[ct,oD,Wx]},{provide:iD,useClass:iD,deps:[ct,oD,Wx]}],rP=[{provide:ba,useValue:"root"},{provide:ji,useFactory:function uq(){return new ji},deps:[]},{provide:VD,useClass:oq,multi:!0,deps:[Vt,ct,Zs]},{provide:VD,useClass:lq,multi:!0,deps:[Vt]},zD,XN,GN,{provide:bx,useExisting:zD},{provide:NN,useClass:KG,deps:[]},[]];let GD,iP=(()=>{class e{constructor(t){}static withServerTransition(t){return{ngModule:e,providers:[{provide:vl,useValue:t.appId}]}}static{this.\u0275fac=function(r){return new(r||e)(ce(hq,12))}}static{this.\u0275mod=Wt({type:e})}static{this.\u0275inj=Yt({providers:[...rP,...nP],imports:[OD,p$]})}}return e})(),xb=(()=>{class e{static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275prov=Be({token:e,factory:function(r){let i=null;return i=r?new(r||e):ce(_q),i},providedIn:"root"})}}return e})(),_q=(()=>{class e extends xb{constructor(t){super(),this._doc=t}sanitize(t,r){if(null==r)return null;switch(t){case Mr.NONE:return r;case Mr.HTML:return us(r,"HTML")?vi(r):Qy(this._doc,String(r)).toString();case Mr.STYLE:return us(r,"Style")?vi(r):r;case Mr.SCRIPT:if(us(r,"Script"))return vi(r);throw new se(5200,!1);case Mr.URL:return us(r,"URL")?vi(r):Rh(String(r));case Mr.RESOURCE_URL:if(us(r,"ResourceURL"))return vi(r);throw new se(5201,!1);default:throw new se(5202,!1)}}bypassSecurityTrustHtml(t){return function eC(e){return new YE(e)}(t)}bypassSecurityTrustStyle(t){return function $y(e){return new zy(e)}(t)}bypassSecurityTrustScript(t){return function Wy(e){return new KE(e)}(t)}bypassSecurityTrustUrl(t){return function tC(e){return new ZE(e)}(t)}bypassSecurityTrustResourceUrl(t){return function nC(e){return new QE(e)}(t)}static{this.\u0275fac=function(r){return new(r||e)(ce(Vt))}}static{this.\u0275prov=Be({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})();try{GD=typeof Intl<"u"&&Intl.v8BreakIterator}catch{GD=!1}let Rg,Md,qD,xi=(()=>{class e{constructor(t){this._platformId=t,this.isBrowser=this._platformId?function _G(e){return e===RN}(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&&!GD)&&typeof CSS<"u"&&!this.EDGE&&!this.TRIDENT,this.WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT,this.IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window),this.FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent),this.ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT,this.SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT}static{this.\u0275fac=function(r){return new(r||e)(ce(Zs))}}static{this.\u0275prov=Be({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})();function vp(e){return function vq(){if(null==Rg&&typeof window<"u")try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:()=>Rg=!0}))}finally{Rg=Rg||!1}return Rg}()?e:!!e.capture}function yq(){if(null==Md){if("object"!=typeof document||!document||"function"!=typeof Element||!Element)return Md=!1,Md;if("scrollBehavior"in document.documentElement.style)Md=!0;else{const e=Element.prototype.scrollTo;Md=!!e&&!/\{\s*\[native code\]\s*\}/.test(e.toString())}}return Md}function Ml(e){return e.composedPath?e.composedPath()[0]:e.target}function XD(){return typeof __karma__<"u"&&!!__karma__||typeof jasmine<"u"&&!!jasmine||typeof jest<"u"&&!!jest||typeof Mocha<"u"&&!!Mocha}function hP(e){return e&&Pt(e.schedule)}function KD(e){return e[e.length-1]}function pP(e){return Pt(KD(e))?e.pop():void 0}function Ng(e){return hP(KD(e))?e.pop():void 0}function Gc(e){return this instanceof Gc?(this.v=e,this):new Gc(e)}function vP(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=function eS(e){var n="function"==typeof Symbol&&Symbol.iterator,t=n&&e[n],r=0;if(t)return t.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(n?"Object is not iterable.":"Symbol.iterator is not defined.")}(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(o){t[o]=e[o]&&function(s){return new Promise(function(a,l){!function i(o,s,a,l){Promise.resolve(l).then(function(u){o({value:u,done:a})},s)}(a,l,(s=e[o](s)).done,s.value)})}}}"function"==typeof SuppressedError&&SuppressedError;const tS=e=>e&&"number"==typeof e.length&&"function"!=typeof e;function yP(e){return Pt(e?.then)}function xP(e){return Pt(e[wf])}function bP(e){return Symbol.asyncIterator&&Pt(e?.[Symbol.asyncIterator])}function wP(e){return new TypeError(`You provided ${null!==e&&"object"==typeof e?"an invalid object":`'${e}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`)}const EP=function aX(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}();function CP(e){return Pt(e?.[EP])}function TP(e){return function _P(e,n,t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var i,r=t.apply(e,n||[]),o=[];return i={},a("next"),a("throw"),a("return",function s(g){return function(v){return Promise.resolve(v).then(g,h)}}),i[Symbol.asyncIterator]=function(){return this},i;function a(g,v){r[g]&&(i[g]=function(_){return new Promise(function(x,b){o.push([g,_,x,b])>1||l(g,_)})},v&&(i[g]=v(i[g])))}function l(g,v){try{!function u(g){g.value instanceof Gc?Promise.resolve(g.value.v).then(f,h):m(o[0][2],g)}(r[g](v))}catch(_){m(o[0][3],_)}}function f(g){l("next",g)}function h(g){l("throw",g)}function m(g,v){g(v),o.shift(),o.length&&l(o[0][0],o[0][1])}}(this,arguments,function*(){const t=e.getReader();try{for(;;){const{value:r,done:i}=yield Gc(t.read());if(i)return yield Gc(void 0);yield yield Gc(r)}}finally{t.releaseLock()}})}function DP(e){return Pt(e?.getReader)}function Po(e){if(e instanceof Ln)return e;if(null!=e){if(xP(e))return function lX(e){return new Ln(n=>{const t=e[wf]();if(Pt(t.subscribe))return t.subscribe(n);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}(e);if(tS(e))return function cX(e){return new Ln(n=>{for(let t=0;t{e.then(t=>{n.closed||(n.next(t),n.complete())},t=>n.error(t)).then(null,xu)})}(e);if(bP(e))return SP(e);if(CP(e))return function dX(e){return new Ln(n=>{for(const t of e)if(n.next(t),n.closed)return;n.complete()})}(e);if(DP(e))return function fX(e){return SP(TP(e))}(e)}throw wP(e)}function SP(e){return new Ln(n=>{(function hX(e,n){var t,r,i,o;return function mP(e,n,t,r){return new(t||(t=Promise))(function(o,s){function a(f){try{u(r.next(f))}catch(h){s(h)}}function l(f){try{u(r.throw(f))}catch(h){s(h)}}function u(f){f.done?o(f.value):function i(o){return o instanceof t?o:new t(function(s){s(o)})}(f.value).then(a,l)}u((r=r.apply(e,n||[])).next())})}(this,void 0,void 0,function*(){try{for(t=vP(e);!(r=yield t.next()).done;)if(n.next(r.value),n.closed)return}catch(s){i={error:s}}finally{try{r&&!r.done&&(o=t.return)&&(yield o.call(t))}finally{if(i)throw i.error}}n.complete()})})(e,n).catch(t=>n.error(t))})}function Fl(e,n,t,r=0,i=!1){const o=n.schedule(function(){t(),i?e.add(this.schedule(null,r)):this.unsubscribe()},r);if(e.add(o),!i)return o}function IP(e,n=0){return Br((t,r)=>{t.subscribe(Dr(r,i=>Fl(r,e,()=>r.next(i),n),()=>Fl(r,e,()=>r.complete(),n),i=>Fl(r,e,()=>r.error(i),n)))})}function AP(e,n=0){return Br((t,r)=>{r.add(e.schedule(()=>t.subscribe(r),n))})}function kP(e,n){if(!e)throw new Error("Iterable cannot be null");return new Ln(t=>{Fl(t,n,()=>{const r=e[Symbol.asyncIterator]();Fl(t,n,()=>{r.next().then(i=>{i.done?t.complete():t.next(i.value)})},0,!0)})})}function Fd(e,n){return n?function yX(e,n){if(null!=e){if(xP(e))return function pX(e,n){return Po(e).pipe(AP(n),IP(n))}(e,n);if(tS(e))return function gX(e,n){return new Ln(t=>{let r=0;return n.schedule(function(){r===e.length?t.complete():(t.next(e[r++]),t.closed||this.schedule())})})}(e,n);if(yP(e))return function mX(e,n){return Po(e).pipe(AP(n),IP(n))}(e,n);if(bP(e))return kP(e,n);if(CP(e))return function _X(e,n){return new Ln(t=>{let r;return Fl(t,n,()=>{r=e[EP](),Fl(t,n,()=>{let i,o;try{({value:i,done:o}=r.next())}catch(s){return void t.error(s)}o?t.complete():t.next(i)},0,!0)}),()=>Pt(r?.return)&&r.return()})}(e,n);if(DP(e))return function vX(e,n){return kP(TP(e),n)}(e,n)}throw wP(e)}(e,n):Po(e)}function vs(...e){return Fd(e,Ng(e))}function Eb(e,n,t){const r=Pt(e)||n||t?{next:e,error:n,complete:t}:e;return r?Br((i,o)=>{var s;null===(s=r.subscribe)||void 0===s||s.call(r);let a=!0;i.subscribe(Dr(o,l=>{var u;null===(u=r.next)||void 0===u||u.call(r,l),o.next(l)},()=>{var l;a=!1,null===(l=r.complete)||void 0===l||l.call(r),o.complete()},l=>{var u;a=!1,null===(u=r.error)||void 0===u||u.call(r,l),o.error(l)},()=>{var l,u;a&&(null===(l=r.unsubscribe)||void 0===l||l.call(r)),null===(u=r.finalize)||void 0===u||u.call(r)}))}):Ja}class xX extends an{constructor(n,t){super()}schedule(n,t=0){return this}}const Cb={setInterval(e,n,...t){const{delegate:r}=Cb;return r?.setInterval?r.setInterval(e,n,...t):setInterval(e,n,...t)},clearInterval(e){const{delegate:n}=Cb;return(n?.clearInterval||clearInterval)(e)},delegate:void 0};class nS extends xX{constructor(n,t){super(n,t),this.scheduler=n,this.work=t,this.pending=!1}schedule(n,t=0){var r;if(this.closed)return this;this.state=n;const i=this.id,o=this.scheduler;return null!=i&&(this.id=this.recycleAsyncId(o,i,t)),this.pending=!0,this.delay=t,this.id=null!==(r=this.id)&&void 0!==r?r:this.requestAsyncId(o,this.id,t),this}requestAsyncId(n,t,r=0){return Cb.setInterval(n.flush.bind(n,this),r)}recycleAsyncId(n,t,r=0){if(null!=r&&this.delay===r&&!1===this.pending)return t;null!=t&&Cb.clearInterval(t)}execute(n,t){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;const r=this._execute(n,t);if(r)return r;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))}_execute(n,t){let i,r=!1;try{this.work(n)}catch(o){r=!0,i=o||new Error("Scheduled action threw falsy error")}if(r)return this.unsubscribe(),i}unsubscribe(){if(!this.closed){const{id:n,scheduler:t}=this,{actions:r}=t;this.work=this.state=this.scheduler=null,this.pending=!1,bf(r,this),null!=n&&(this.id=this.recycleAsyncId(t,n,null)),this.delay=null,super.unsubscribe()}}}const MP={now:()=>(MP.delegate||Date).now(),delegate:void 0};class Pg{constructor(n,t=Pg.now){this.schedulerActionCtor=n,this.now=t}schedule(n,t=0,r){return new this.schedulerActionCtor(this,n).schedule(r,t)}}Pg.now=MP.now;class rS extends Pg{constructor(n,t=Pg.now){super(n,t),this.actions=[],this._active=!1}flush(n){const{actions:t}=this;if(this._active)return void t.push(n);let r;this._active=!0;do{if(r=n.execute(n.state,n.delay))break}while(n=t.shift());if(this._active=!1,r){for(;n=t.shift();)n.unsubscribe();throw r}}}const iS=new rS(nS),bX=iS;function Lg(e,n){return Br((t,r)=>{let i=0;t.subscribe(Dr(r,o=>e.call(n,o,i++)&&r.next(o)))})}const oS=new Ln(e=>e.complete());function Tb(e){return e<=0?()=>oS:Br((n,t)=>{let r=0;n.subscribe(Dr(t,i=>{++r<=e&&(t.next(i),e<=r&&t.complete())}))})}function RP(e){return Lg((n,t)=>e<=t)}function CX(e,n){return e===n}function la(e){return Br((n,t)=>{Po(e).subscribe(Dr(t,()=>t.complete(),Qp)),!t.closed&&n.subscribe(t)})}let TX=(()=>{class e{create(t){return typeof MutationObserver>"u"?null:new MutationObserver(t)}static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275prov=Be({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})(),NP=(()=>{class e{static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275mod=Wt({type:e})}static{this.\u0275inj=Yt({providers:[TX]})}}return e})();function PP(e){return null!=e&&"false"!=`${e}`}function LP(e,n=0){return function DX(e){return!isNaN(parseFloat(e))&&!isNaN(Number(e))}(e)?Number(e):2===arguments.length?n:0}function Db(e){return Array.isArray(e)?e:[e]}function vr(e){return null==e?"":"string"==typeof e?e:`${e}px`}function yp(e){return e instanceof _n?e.nativeElement:e}const{isArray:SX}=Array,{getPrototypeOf:IX,prototype:AX,keys:kX}=Object;function BP(e){if(1===e.length){const n=e[0];if(SX(n))return{args:n,keys:null};if(function MX(e){return e&&"object"==typeof e&&IX(e)===AX}(n)){const t=kX(n);return{args:t.map(r=>n[r]),keys:t}}}return{args:e,keys:null}}const{isArray:FX}=Array;function sS(e){return Vr(n=>function RX(e,n){return FX(n)?e(...n):e(n)}(e,n))}function VP(e,n){return e.reduce((t,r,i)=>(t[r]=n[i],t),{})}function UP(e,n,t){e?Fl(t,e,n):n()}function Bg(e,n,t=1/0){return Pt(n)?Bg((r,i)=>Vr((o,s)=>n(r,o,i,s))(Po(e(r,i))),t):("number"==typeof n&&(t=n),Br((r,i)=>function PX(e,n,t,r,i,o,s,a){const l=[];let u=0,f=0,h=!1;const m=()=>{h&&!l.length&&!u&&n.complete()},g=_=>u{o&&n.next(_),u++;let x=!1;Po(t(_,f++)).subscribe(Dr(n,b=>{i?.(b),o?g(b):n.next(b)},()=>{x=!0},void 0,()=>{if(x)try{for(u--;l.length&&uv(b)):v(b)}m()}catch(b){n.error(b)}}))};return e.subscribe(Dr(n,g,()=>{h=!0,m()})),()=>{a?.()}}(r,i,e,t)))}function HP(e=1/0){return Bg(Ja,e)}function aS(...e){return function LX(){return HP(1)}()(Fd(e,Ng(e)))}function BX(...e){const n=Ng(e);return Br((t,r)=>{(n?aS(e,t,n):aS(e,t)).subscribe(r)})}const jP=new Set;let Rd,VX=(()=>{class e{constructor(t,r){this._platform=t,this._nonce=r,this._matchMedia=this._platform.isBrowser&&window.matchMedia?window.matchMedia.bind(window):HX}matchMedia(t){return(this._platform.WEBKIT||this._platform.BLINK)&&function UX(e,n){if(!jP.has(e))try{Rd||(Rd=document.createElement("style"),n&&Rd.setAttribute("nonce",n),Rd.setAttribute("type","text/css"),document.head.appendChild(Rd)),Rd.sheet&&(Rd.sheet.insertRule(`@media ${e} {body{ }}`,0),jP.add(e))}catch(t){console.error(t)}}(t,this._nonce),this._matchMedia(t)}static{this.\u0275fac=function(r){return new(r||e)(ce(xi),ce(m0,8))}}static{this.\u0275prov=Be({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})();function HX(e){return{matches:"all"===e||""===e,media:e,addListener:()=>{},removeListener:()=>{}}}let zP=(()=>{class e{constructor(t,r){this._mediaMatcher=t,this._zone=r,this._queries=new Map,this._destroySubject=new Rt}ngOnDestroy(){this._destroySubject.next(),this._destroySubject.complete()}isMatched(t){return $P(Db(t)).some(i=>this._registerQuery(i).mql.matches)}observe(t){let o=function OX(...e){const n=Ng(e),t=pP(e),{args:r,keys:i}=BP(e);if(0===r.length)return Fd([],n);const o=new Ln(function NX(e,n,t=Ja){return r=>{UP(n,()=>{const{length:i}=e,o=new Array(i);let s=i,a=i;for(let l=0;l{const u=Fd(e[l],n);let f=!1;u.subscribe(Dr(r,h=>{o[l]=h,f||(f=!0,a--),a||r.next(t(o.slice()))},()=>{--s||r.complete()}))},r)},r)}}(r,n,i?s=>VP(i,s):Ja));return t?o.pipe(sS(t)):o}($P(Db(t)).map(s=>this._registerQuery(s).observable));return o=aS(o.pipe(Tb(1)),o.pipe(RP(1),function FP(e,n=iS){return Br((t,r)=>{let i=null,o=null,s=null;const a=()=>{if(i){i.unsubscribe(),i=null;const u=o;o=null,r.next(u)}};function l(){const u=s+e,f=n.now();if(f{o=u,s=n.now(),i||(i=n.schedule(l,e),r.add(i))},()=>{a(),r.complete()},void 0,()=>{o=i=null}))})}(0))),o.pipe(Vr(s=>{const a={matches:!1,breakpoints:{}};return s.forEach(({matches:l,query:u})=>{a.matches=a.matches||l,a.breakpoints[u]=l}),a}))}_registerQuery(t){if(this._queries.has(t))return this._queries.get(t);const r=this._mediaMatcher.matchMedia(t),o={observable:new Ln(s=>{const a=l=>this._zone.run(()=>s.next(l));return r.addListener(a),()=>{r.removeListener(a)}}).pipe(BX(r),Vr(({matches:s})=>({query:t,matches:s})),la(this._destroySubject)),mql:r};return this._queries.set(t,o),o}static{this.\u0275fac=function(r){return new(r||e)(ce(VX),ce(ct))}}static{this.\u0275prov=Be({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})();function $P(e){return e.map(n=>n.split(",")).reduce((n,t)=>n.concat(t)).map(n=>n.trim())}function Sb(e,n){return e.getAttribute(n)?.match(/\S+/g)??[]}const GP="cdk-describedby-message",Ib="cdk-describedby-host";let lS=0,WX=(()=>{class e{constructor(t,r){this._platform=r,this._messageRegistry=new Map,this._messagesContainer=null,this._id=""+lS++,this._document=t,this._id=De(vl)+"-"+lS++}describe(t,r,i){if(!this._canBeDescribed(t,r))return;const o=cS(r,i);"string"!=typeof r?(qP(r,this._id),this._messageRegistry.set(o,{messageElement:r,referenceCount:0})):this._messageRegistry.has(o)||this._createMessageElement(r,i),this._isElementDescribedByMessage(t,o)||this._addMessageReference(t,o)}removeDescription(t,r,i){if(!r||!this._isElementNode(t))return;const o=cS(r,i);if(this._isElementDescribedByMessage(t,o)&&this._removeMessageReference(t,o),"string"==typeof r){const s=this._messageRegistry.get(o);s&&0===s.referenceCount&&this._deleteMessageElement(o)}0===this._messagesContainer?.childNodes.length&&(this._messagesContainer.remove(),this._messagesContainer=null)}ngOnDestroy(){const t=this._document.querySelectorAll(`[${Ib}="${this._id}"]`);for(let r=0;r0!=i.indexOf(GP));t.setAttribute("aria-describedby",r.join(" "))}_addMessageReference(t,r){const i=this._messageRegistry.get(r);(function zX(e,n,t){const r=Sb(e,n);t=t.trim(),!r.some(i=>i.trim()===t)&&(r.push(t),e.setAttribute(n,r.join(" ")))})(t,"aria-describedby",i.messageElement.id),t.setAttribute(Ib,this._id),i.referenceCount++}_removeMessageReference(t,r){const i=this._messageRegistry.get(r);i.referenceCount--,function $X(e,n,t){const r=Sb(e,n);t=t.trim();const i=r.filter(o=>o!==t);i.length?e.setAttribute(n,i.join(" ")):e.removeAttribute(n)}(t,"aria-describedby",i.messageElement.id),t.removeAttribute(Ib)}_isElementDescribedByMessage(t,r){const i=Sb(t,"aria-describedby"),o=this._messageRegistry.get(r),s=o&&o.messageElement.id;return!!s&&-1!=i.indexOf(s)}_canBeDescribed(t,r){if(!this._isElementNode(t))return!1;if(r&&"object"==typeof r)return!0;const i=null==r?"":`${r}`.trim(),o=t.getAttribute("aria-label");return!(!i||o&&o.trim()===i)}_isElementNode(t){return t.nodeType===this._document.ELEMENT_NODE}static{this.\u0275fac=function(r){return new(r||e)(ce(Vt),ce(xi))}}static{this.\u0275prov=Be({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})();function cS(e,n){return"string"==typeof e?`${n||""}/${e}`:e}function qP(e,n){e.id||(e.id=`${GP}-${n}-${lS++}`)}function QP(e){return 0===e.buttons||0===e.detail}function JP(e){const n=e.touches&&e.touches[0]||e.changedTouches&&e.changedTouches[0];return!(!n||-1!==n.identifier||null!=n.radiusX&&1!==n.radiusX||null!=n.radiusY&&1!==n.radiusY)}const rY=new xe("cdk-input-modality-detector-options"),iY={ignoreKeys:[18,17,224,91,16]},xp=vp({passive:!0,capture:!0});let oY=(()=>{class e{get mostRecentModality(){return this._modality.value}constructor(t,r,i,o){this._platform=t,this._mostRecentTarget=null,this._modality=new Z_(null),this._lastTouchMs=0,this._onKeydown=s=>{this._options?.ignoreKeys?.some(a=>a===s.keyCode)||(this._modality.next("keyboard"),this._mostRecentTarget=Ml(s))},this._onMousedown=s=>{Date.now()-this._lastTouchMs<650||(this._modality.next(QP(s)?"keyboard":"mouse"),this._mostRecentTarget=Ml(s))},this._onTouchstart=s=>{JP(s)?this._modality.next("keyboard"):(this._lastTouchMs=Date.now(),this._modality.next("touch"),this._mostRecentTarget=Ml(s))},this._options={...iY,...o},this.modalityDetected=this._modality.pipe(RP(1)),this.modalityChanged=this.modalityDetected.pipe(function EX(e,n=Ja){return e=e??CX,Br((t,r)=>{let i,o=!0;t.subscribe(Dr(r,s=>{const a=n(s);(o||!e(i,a))&&(o=!1,i=a,r.next(s))}))})}()),t.isBrowser&&r.runOutsideAngular(()=>{i.addEventListener("keydown",this._onKeydown,xp),i.addEventListener("mousedown",this._onMousedown,xp),i.addEventListener("touchstart",this._onTouchstart,xp)})}ngOnDestroy(){this._modality.complete(),this._platform.isBrowser&&(document.removeEventListener("keydown",this._onKeydown,xp),document.removeEventListener("mousedown",this._onMousedown,xp),document.removeEventListener("touchstart",this._onTouchstart,xp))}static{this.\u0275fac=function(r){return new(r||e)(ce(xi),ce(ct),ce(Vt),ce(rY,8))}}static{this.\u0275prov=Be({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})();const sY=new xe("liveAnnouncerElement",{providedIn:"root",factory:function aY(){return null}}),lY=new xe("LIVE_ANNOUNCER_DEFAULT_OPTIONS");let cY=0,uY=(()=>{class e{constructor(t,r,i,o){this._ngZone=r,this._defaultOptions=o,this._document=i,this._liveElement=t||this._createLiveElement()}announce(t,...r){const i=this._defaultOptions;let o,s;return 1===r.length&&"number"==typeof r[0]?s=r[0]:[o,s]=r,this.clear(),clearTimeout(this._previousTimeout),o||(o=i&&i.politeness?i.politeness:"polite"),null==s&&i&&(s=i.duration),this._liveElement.setAttribute("aria-live",o),this._liveElement.id&&this._exposeAnnouncerToModals(this._liveElement.id),this._ngZone.runOutsideAngular(()=>(this._currentPromise||(this._currentPromise=new Promise(a=>this._currentResolve=a)),clearTimeout(this._previousTimeout),this._previousTimeout=setTimeout(()=>{this._liveElement.textContent=t,"number"==typeof s&&(this._previousTimeout=setTimeout(()=>this.clear(),s)),this._currentResolve?.(),this._currentPromise=this._currentResolve=void 0},100),this._currentPromise))}clear(){this._liveElement&&(this._liveElement.textContent="")}ngOnDestroy(){clearTimeout(this._previousTimeout),this._liveElement?.remove(),this._liveElement=null,this._currentResolve?.(),this._currentPromise=this._currentResolve=void 0}_createLiveElement(){const t="cdk-live-announcer-element",r=this._document.getElementsByClassName(t),i=this._document.createElement("div");for(let o=0;o .cdk-overlay-container [aria-modal="true"]');for(let i=0;i{class e{constructor(t,r,i,o,s){this._ngZone=t,this._platform=r,this._inputModalityDetector=i,this._origin=null,this._windowFocused=!1,this._originFromTouchInteraction=!1,this._elementInfo=new Map,this._monitoredElementCount=0,this._rootNodeFocusListenerCount=new Map,this._windowFocusListener=()=>{this._windowFocused=!0,this._windowFocusTimeoutId=window.setTimeout(()=>this._windowFocused=!1)},this._stopInputModalityDetector=new Rt,this._rootNodeFocusAndBlurListener=a=>{for(let u=Ml(a);u;u=u.parentElement)"focus"===a.type?this._onFocus(a,u):this._onBlur(a,u)},this._document=o,this._detectionMode=s?.detectionMode||Ab.IMMEDIATE}monitor(t,r=!1){const i=yp(t);if(!this._platform.isBrowser||1!==i.nodeType)return vs();const o=function bq(e){if(function xq(){if(null==qD){const e=typeof document<"u"?document.head:null;qD=!(!e||!e.createShadowRoot&&!e.attachShadow)}return qD}()){const n=e.getRootNode?e.getRootNode():null;if(typeof ShadowRoot<"u"&&ShadowRoot&&n instanceof ShadowRoot)return n}return null}(i)||this._getDocument(),s=this._elementInfo.get(i);if(s)return r&&(s.checkChildren=!0),s.subject;const a={checkChildren:r,subject:new Rt,rootNode:o};return this._elementInfo.set(i,a),this._registerGlobalListeners(a),a.subject}stopMonitoring(t){const r=yp(t),i=this._elementInfo.get(r);i&&(i.subject.complete(),this._setClasses(r),this._elementInfo.delete(r),this._removeGlobalListeners(i))}focusVia(t,r,i){const o=yp(t);o===this._getDocument().activeElement?this._getClosestElementsInfo(o).forEach(([a,l])=>this._originChanged(a,r,l)):(this._setOrigin(r),"function"==typeof o.focus&&o.focus(i))}ngOnDestroy(){this._elementInfo.forEach((t,r)=>this.stopMonitoring(r))}_getDocument(){return this._document||document}_getWindow(){return this._getDocument().defaultView||window}_getFocusOrigin(t){return this._origin?this._originFromTouchInteraction?this._shouldBeAttributedToTouch(t)?"touch":"program":this._origin:this._windowFocused&&this._lastFocusOrigin?this._lastFocusOrigin:t&&this._isLastInteractionFromInputLabel(t)?"mouse":"program"}_shouldBeAttributedToTouch(t){return this._detectionMode===Ab.EVENTUAL||!!t?.contains(this._inputModalityDetector._mostRecentTarget)}_setClasses(t,r){t.classList.toggle("cdk-focused",!!r),t.classList.toggle("cdk-touch-focused","touch"===r),t.classList.toggle("cdk-keyboard-focused","keyboard"===r),t.classList.toggle("cdk-mouse-focused","mouse"===r),t.classList.toggle("cdk-program-focused","program"===r)}_setOrigin(t,r=!1){this._ngZone.runOutsideAngular(()=>{this._origin=t,this._originFromTouchInteraction="touch"===t&&r,this._detectionMode===Ab.IMMEDIATE&&(clearTimeout(this._originTimeoutId),this._originTimeoutId=setTimeout(()=>this._origin=null,this._originFromTouchInteraction?650:1))})}_onFocus(t,r){const i=this._elementInfo.get(r),o=Ml(t);!i||!i.checkChildren&&r!==o||this._originChanged(r,this._getFocusOrigin(o),i)}_onBlur(t,r){const i=this._elementInfo.get(r);!i||i.checkChildren&&t.relatedTarget instanceof Node&&r.contains(t.relatedTarget)||(this._setClasses(r),this._emitOrigin(i,null))}_emitOrigin(t,r){t.subject.observers.length&&this._ngZone.run(()=>t.subject.next(r))}_registerGlobalListeners(t){if(!this._platform.isBrowser)return;const r=t.rootNode,i=this._rootNodeFocusListenerCount.get(r)||0;i||this._ngZone.runOutsideAngular(()=>{r.addEventListener("focus",this._rootNodeFocusAndBlurListener,kb),r.addEventListener("blur",this._rootNodeFocusAndBlurListener,kb)}),this._rootNodeFocusListenerCount.set(r,i+1),1==++this._monitoredElementCount&&(this._ngZone.runOutsideAngular(()=>{this._getWindow().addEventListener("focus",this._windowFocusListener)}),this._inputModalityDetector.modalityDetected.pipe(la(this._stopInputModalityDetector)).subscribe(o=>{this._setOrigin(o,!0)}))}_removeGlobalListeners(t){const r=t.rootNode;if(this._rootNodeFocusListenerCount.has(r)){const i=this._rootNodeFocusListenerCount.get(r);i>1?this._rootNodeFocusListenerCount.set(r,i-1):(r.removeEventListener("focus",this._rootNodeFocusAndBlurListener,kb),r.removeEventListener("blur",this._rootNodeFocusAndBlurListener,kb),this._rootNodeFocusListenerCount.delete(r))}--this._monitoredElementCount||(this._getWindow().removeEventListener("focus",this._windowFocusListener),this._stopInputModalityDetector.next(),clearTimeout(this._windowFocusTimeoutId),clearTimeout(this._originTimeoutId))}_originChanged(t,r,i){this._setClasses(t,r),this._emitOrigin(i,r),this._lastFocusOrigin=r}_getClosestElementsInfo(t){const r=[];return this._elementInfo.forEach((i,o)=>{(o===t||i.checkChildren&&o.contains(t))&&r.push([o,i])}),r}_isLastInteractionFromInputLabel(t){const{_mostRecentTarget:r,mostRecentModality:i}=this._inputModalityDetector;if("mouse"!==i||!r||r===t||"INPUT"!==t.nodeName&&"TEXTAREA"!==t.nodeName||t.disabled)return!1;const o=t.labels;if(o)for(let s=0;s{class e{constructor(t,r){this._platform=t,this._document=r,this._breakpointSubscription=De(zP).observe("(forced-colors: active)").subscribe(()=>{this._hasCheckedHighContrastMode&&(this._hasCheckedHighContrastMode=!1,this._applyBodyHighContrastModeCssClasses())})}getHighContrastMode(){if(!this._platform.isBrowser)return Od.NONE;const t=this._document.createElement("div");t.style.backgroundColor="rgb(1,2,3)",t.style.position="absolute",this._document.body.appendChild(t);const r=this._document.defaultView||window,i=r&&r.getComputedStyle?r.getComputedStyle(t):null,o=(i&&i.backgroundColor||"").replace(/ /g,"");switch(t.remove(),o){case"rgb(0,0,0)":case"rgb(45,50,54)":case"rgb(32,32,32)":return Od.WHITE_ON_BLACK;case"rgb(255,255,255)":case"rgb(255,250,239)":return Od.BLACK_ON_WHITE}return Od.NONE}ngOnDestroy(){this._breakpointSubscription.unsubscribe()}_applyBodyHighContrastModeCssClasses(){if(!this._hasCheckedHighContrastMode&&this._platform.isBrowser&&this._document.body){const t=this._document.body.classList;t.remove(dS,tL,nL),this._hasCheckedHighContrastMode=!0;const r=this.getHighContrastMode();r===Od.BLACK_ON_WHITE?t.add(dS,tL):r===Od.WHITE_ON_BLACK&&t.add(dS,nL)}}static{this.\u0275fac=function(r){return new(r||e)(ce(xi),ce(Vt))}}static{this.\u0275prov=Be({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})(),fY=(()=>{class e{constructor(t){t._applyBodyHighContrastModeCssClasses()}static{this.\u0275fac=function(r){return new(r||e)(ce(rL))}}static{this.\u0275mod=Wt({type:e})}static{this.\u0275inj=Yt({imports:[NP]})}}return e})();const hY=new xe("cdk-dir-doc",{providedIn:"root",factory:function pY(){return De(Vt)}}),mY=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;let fS=(()=>{class e{constructor(t){this.value="ltr",this.change=new Cn,t&&(this.value=function gY(e){const n=e?.toLowerCase()||"";return"auto"===n&&typeof navigator<"u"&&navigator?.language?mY.test(navigator.language)?"rtl":"ltr":"rtl"===n?"rtl":"ltr"}((t.body?t.body.dir:null)||(t.documentElement?t.documentElement.dir:null)||"ltr"))}ngOnDestroy(){this.change.complete()}static{this.\u0275fac=function(r){return new(r||e)(ce(hY,8))}}static{this.\u0275prov=Be({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})(),Vg=(()=>{class e{static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275mod=Wt({type:e})}static{this.\u0275inj=Yt({})}}return e})();const vY=new xe("mat-sanity-checks",{providedIn:"root",factory:function _Y(){return!0}});let bi=(()=>{class e{constructor(t,r,i){this._sanityChecks=r,this._document=i,this._hasDoneGlobalChecks=!1,t._applyBodyHighContrastModeCssClasses(),this._hasDoneGlobalChecks||(this._hasDoneGlobalChecks=!0)}_checkIsEnabled(t){return!XD()&&("boolean"==typeof this._sanityChecks?this._sanityChecks:!!this._sanityChecks[t])}static{this.\u0275fac=function(r){return new(r||e)(ce(rL),ce(vY,8),ce(Vt))}}static{this.\u0275mod=Wt({type:e})}static{this.\u0275inj=Yt({imports:[Vg,Vg]})}}return e})();var ys=function(e){return e[e.FADING_IN=0]="FADING_IN",e[e.VISIBLE=1]="VISIBLE",e[e.FADING_OUT=2]="FADING_OUT",e[e.HIDDEN=3]="HIDDEN",e}(ys||{});class TY{constructor(n,t,r,i=!1){this._renderer=n,this.element=t,this.config=r,this._animationForciblyDisabledThroughCss=i,this.state=ys.HIDDEN}fadeOut(){this._renderer.fadeOutRipple(this)}}const sL=vp({passive:!0,capture:!0});class DY{constructor(){this._events=new Map,this._delegateEventHandler=n=>{const t=Ml(n);t&&this._events.get(n.type)?.forEach((r,i)=>{(i===t||i.contains(t))&&r.forEach(o=>o.handleEvent(n))})}}addHandler(n,t,r,i){const o=this._events.get(t);if(o){const s=o.get(r);s?s.add(i):o.set(r,new Set([i]))}else this._events.set(t,new Map([[r,new Set([i])]])),n.runOutsideAngular(()=>{document.addEventListener(t,this._delegateEventHandler,sL)})}removeHandler(n,t,r){const i=this._events.get(n);if(!i)return;const o=i.get(t);o&&(o.delete(r),0===o.size&&i.delete(t),0===i.size&&(this._events.delete(n),document.removeEventListener(n,this._delegateEventHandler,sL)))}}const aL={enterDuration:225,exitDuration:150},lL=vp({passive:!0,capture:!0}),cL=["mousedown","touchstart"],uL=["mouseup","mouseleave","touchend","touchcancel"];class Mb{static{this._eventManager=new DY}constructor(n,t,r,i){this._target=n,this._ngZone=t,this._platform=i,this._isPointerDown=!1,this._activeRipples=new Map,this._pointerUpEventsRegistered=!1,i.isBrowser&&(this._containerElement=yp(r))}fadeInRipple(n,t,r={}){const i=this._containerRect=this._containerRect||this._containerElement.getBoundingClientRect(),o={...aL,...r.animation};r.centered&&(n=i.left+i.width/2,t=i.top+i.height/2);const s=r.radius||function IY(e,n,t){const r=Math.max(Math.abs(e-t.left),Math.abs(e-t.right)),i=Math.max(Math.abs(n-t.top),Math.abs(n-t.bottom));return Math.sqrt(r*r+i*i)}(n,t,i),a=n-i.left,l=t-i.top,u=o.enterDuration,f=document.createElement("div");f.classList.add("mat-ripple-element"),f.style.left=a-s+"px",f.style.top=l-s+"px",f.style.height=2*s+"px",f.style.width=2*s+"px",null!=r.color&&(f.style.backgroundColor=r.color),f.style.transitionDuration=`${u}ms`,this._containerElement.appendChild(f);const h=window.getComputedStyle(f),g=h.transitionDuration,v="none"===h.transitionProperty||"0s"===g||"0s, 0s"===g||0===i.width&&0===i.height,_=new TY(this,f,r,v);f.style.transform="scale3d(1, 1, 1)",_.state=ys.FADING_IN,r.persistent||(this._mostRecentTransientRipple=_);let x=null;return!v&&(u||o.exitDuration)&&this._ngZone.runOutsideAngular(()=>{const b=()=>{x&&(x.fallbackTimer=null),clearTimeout(C),this._finishRippleTransition(_)},w=()=>this._destroyRipple(_),C=setTimeout(w,u+100);f.addEventListener("transitionend",b),f.addEventListener("transitioncancel",w),x={onTransitionEnd:b,onTransitionCancel:w,fallbackTimer:C}}),this._activeRipples.set(_,x),(v||!u)&&this._finishRippleTransition(_),_}fadeOutRipple(n){if(n.state===ys.FADING_OUT||n.state===ys.HIDDEN)return;const t=n.element,r={...aL,...n.config.animation};t.style.transitionDuration=`${r.exitDuration}ms`,t.style.opacity="0",n.state=ys.FADING_OUT,(n._animationForciblyDisabledThroughCss||!r.exitDuration)&&this._finishRippleTransition(n)}fadeOutAll(){this._getActiveRipples().forEach(n=>n.fadeOut())}fadeOutAllNonPersistent(){this._getActiveRipples().forEach(n=>{n.config.persistent||n.fadeOut()})}setupTriggerEvents(n){const t=yp(n);!this._platform.isBrowser||!t||t===this._triggerElement||(this._removeTriggerEvents(),this._triggerElement=t,cL.forEach(r=>{Mb._eventManager.addHandler(this._ngZone,r,t,this)}))}handleEvent(n){"mousedown"===n.type?this._onMousedown(n):"touchstart"===n.type?this._onTouchStart(n):this._onPointerUp(),this._pointerUpEventsRegistered||(this._ngZone.runOutsideAngular(()=>{uL.forEach(t=>{this._triggerElement.addEventListener(t,this,lL)})}),this._pointerUpEventsRegistered=!0)}_finishRippleTransition(n){n.state===ys.FADING_IN?this._startFadeOutTransition(n):n.state===ys.FADING_OUT&&this._destroyRipple(n)}_startFadeOutTransition(n){const t=n===this._mostRecentTransientRipple,{persistent:r}=n.config;n.state=ys.VISIBLE,!r&&(!t||!this._isPointerDown)&&n.fadeOut()}_destroyRipple(n){const t=this._activeRipples.get(n)??null;this._activeRipples.delete(n),this._activeRipples.size||(this._containerRect=null),n===this._mostRecentTransientRipple&&(this._mostRecentTransientRipple=null),n.state=ys.HIDDEN,null!==t&&(n.element.removeEventListener("transitionend",t.onTransitionEnd),n.element.removeEventListener("transitioncancel",t.onTransitionCancel),null!==t.fallbackTimer&&clearTimeout(t.fallbackTimer)),n.element.remove()}_onMousedown(n){const t=QP(n),r=this._lastTouchStartEvent&&Date.now(){!n.config.persistent&&(n.state===ys.VISIBLE||n.config.terminateOnPointerUp&&n.state===ys.FADING_IN)&&n.fadeOut()}))}_getActiveRipples(){return Array.from(this._activeRipples.keys())}_removeTriggerEvents(){const n=this._triggerElement;n&&(cL.forEach(t=>Mb._eventManager.removeHandler(t,n,this)),this._pointerUpEventsRegistered&&(uL.forEach(t=>n.removeEventListener(t,this,lL)),this._pointerUpEventsRegistered=!1))}}const dL=new xe("mat-ripple-global-options");let fL=(()=>{class e{get disabled(){return this._disabled}set disabled(t){t&&this.fadeOutAllNonPersistent(),this._disabled=t,this._setupTriggerEventsIfEnabled()}get trigger(){return this._trigger||this._elementRef.nativeElement}set trigger(t){this._trigger=t,this._setupTriggerEventsIfEnabled()}constructor(t,r,i,o,s){this._elementRef=t,this._animationMode=s,this.radius=0,this._disabled=!1,this._isInitialized=!1,this._globalOptions=o||{},this._rippleRenderer=new Mb(this,r,t,i)}ngOnInit(){this._isInitialized=!0,this._setupTriggerEventsIfEnabled()}ngOnDestroy(){this._rippleRenderer._removeTriggerEvents()}fadeOutAll(){this._rippleRenderer.fadeOutAll()}fadeOutAllNonPersistent(){this._rippleRenderer.fadeOutAllNonPersistent()}get rippleConfig(){return{centered:this.centered,radius:this.radius,color:this.color,animation:{...this._globalOptions.animation,..."NoopAnimations"===this._animationMode?{enterDuration:0,exitDuration:0}:{},...this.animation},terminateOnPointerUp:this._globalOptions.terminateOnPointerUp}}get rippleDisabled(){return this.disabled||!!this._globalOptions.disabled}_setupTriggerEventsIfEnabled(){!this.disabled&&this._isInitialized&&this._rippleRenderer.setupTriggerEvents(this.trigger)}launch(t,r=0,i){return"number"==typeof t?this._rippleRenderer.fadeInRipple(t,r,{...this.rippleConfig,...i}):this._rippleRenderer.fadeInRipple(0,0,{...this.rippleConfig,...t})}static{this.\u0275fac=function(r){return new(r||e)(te(_n),te(ct),te(xi),te(dL,8),te(Qs,8))}}static{this.\u0275dir=Ze({type:e,selectors:[["","mat-ripple",""],["","matRipple",""]],hostAttrs:[1,"mat-ripple"],hostVars:2,hostBindings:function(r,i){2&r&&Xi("mat-ripple-unbounded",i.unbounded)},inputs:{color:[0,"matRippleColor","color"],unbounded:[0,"matRippleUnbounded","unbounded"],centered:[0,"matRippleCentered","centered"],radius:[0,"matRippleRadius","radius"],animation:[0,"matRippleAnimation","animation"],disabled:[0,"matRippleDisabled","disabled"],trigger:[0,"matRippleTrigger","trigger"]},exportAs:["matRipple"],standalone:!0})}}return e})(),hL=(()=>{class e{static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275mod=Wt({type:e})}static{this.\u0275inj=Yt({imports:[bi,bi]})}}return e})(),AY=(()=>{class e{constructor(t){this._animationMode=t,this.state="unchecked",this.disabled=!1,this.appearance="full"}static{this.\u0275fac=function(r){return new(r||e)(te(Qs,8))}}static{this.\u0275cmp=An({type:e,selectors:[["mat-pseudo-checkbox"]],hostAttrs:[1,"mat-pseudo-checkbox"],hostVars:12,hostBindings:function(r,i){2&r&&Xi("mat-pseudo-checkbox-indeterminate","indeterminate"===i.state)("mat-pseudo-checkbox-checked","checked"===i.state)("mat-pseudo-checkbox-disabled",i.disabled)("mat-pseudo-checkbox-minimal","minimal"===i.appearance)("mat-pseudo-checkbox-full","full"===i.appearance)("_mat-animation-noopable","NoopAnimations"===i._animationMode)},inputs:{state:"state",disabled:"disabled",appearance:"appearance"},standalone:!0,features:[Dl],decls:0,vars:0,template:function(r,i){},styles:['.mat-pseudo-checkbox{border-radius:2px;cursor:pointer;display:inline-block;vertical-align:middle;box-sizing:border-box;position:relative;flex-shrink:0;transition:border-color 90ms cubic-bezier(0, 0, 0.2, 0.1),background-color 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox::after{position:absolute;opacity:0;content:"";border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox._mat-animation-noopable{transition:none !important;animation:none !important}.mat-pseudo-checkbox._mat-animation-noopable::after{transition:none}.mat-pseudo-checkbox-disabled{cursor:default}.mat-pseudo-checkbox-indeterminate::after{left:1px;opacity:1;border-radius:2px}.mat-pseudo-checkbox-checked::after{left:1px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1;box-sizing:content-box}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked::after,.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate::after{color:var(--mat-minimal-pseudo-checkbox-selected-checkmark-color, var(--mat-app-primary))}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled::after,.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled::after{color:var(--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color)}.mat-pseudo-checkbox-full{border-color:var(--mat-full-pseudo-checkbox-unselected-icon-color, var(--mat-app-on-surface-variant));border-width:2px;border-style:solid}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-disabled{border-color:var(--mat-full-pseudo-checkbox-disabled-unselected-icon-color)}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate{background-color:var(--mat-full-pseudo-checkbox-selected-icon-color, var(--mat-app-primary));border-color:rgba(0,0,0,0)}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked::after,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate::after{color:var(--mat-full-pseudo-checkbox-selected-checkmark-color, var(--mat-app-on-primary))}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background-color:var(--mat-full-pseudo-checkbox-disabled-selected-icon-color)}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled::after,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled::after{color:var(--mat-full-pseudo-checkbox-disabled-selected-checkmark-color, var(--mat-app-surface))}.mat-pseudo-checkbox{width:18px;height:18px}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked::after{width:14px;height:6px;transform-origin:center;top:-4.2426406871px;left:0;bottom:0;right:0;margin:auto}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate::after{top:8px;width:16px}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked::after{width:10px;height:4px;transform-origin:center;top:-2.8284271247px;left:0;bottom:0;right:0;margin:auto}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate::after{top:6px;width:12px}'],encapsulation:2,changeDetection:0})}}return e})();const pL={capture:!0},mL=["focus","mousedown","mouseenter","touchstart"],hS="mat-ripple-loader-uninitialized",pS="mat-ripple-loader-class-name",gL="mat-ripple-loader-centered",Fb="mat-ripple-loader-disabled";let kY=(()=>{class e{constructor(){this._document=De(Vt,{optional:!0}),this._animationMode=De(Qs,{optional:!0}),this._globalRippleOptions=De(dL,{optional:!0}),this._platform=De(xi),this._ngZone=De(ct),this._hosts=new Map,this._onInteraction=t=>{const r=Ml(t);if(r instanceof HTMLElement){const i=r.closest(`[${hS}="${this._globalRippleOptions?.namespace??""}"]`);i&&this._createRipple(i)}},this._ngZone.runOutsideAngular(()=>{for(const t of mL)this._document?.addEventListener(t,this._onInteraction,pL)})}ngOnDestroy(){const t=this._hosts.keys();for(const r of t)this.destroyRipple(r);for(const r of mL)this._document?.removeEventListener(r,this._onInteraction,pL)}configureRipple(t,r){t.setAttribute(hS,this._globalRippleOptions?.namespace??""),(r.className||!t.hasAttribute(pS))&&t.setAttribute(pS,r.className||""),r.centered&&t.setAttribute(gL,""),r.disabled&&t.setAttribute(Fb,"")}getRipple(t){return this._hosts.get(t)||this._createRipple(t)}setDisabled(t,r){const i=this._hosts.get(t);i?i.disabled=r:r?t.setAttribute(Fb,""):t.removeAttribute(Fb)}_createRipple(t){if(!this._document)return;const r=this._hosts.get(t);if(r)return r;t.querySelector(".mat-ripple")?.remove();const i=this._document.createElement("span");i.classList.add("mat-ripple",t.getAttribute(pS)),t.append(i);const o=new fL(new _n(i),this._ngZone,this._platform,this._globalRippleOptions?this._globalRippleOptions:void 0,this._animationMode?this._animationMode:void 0);return o._isInitialized=!0,o.trigger=t,o.centered=t.hasAttribute(gL),o.disabled=t.hasAttribute(Fb),this.attachRipple(t,o),o}attachRipple(t,r){t.removeAttribute(hS),this._hosts.set(t,r)}destroyRipple(t){const r=this._hosts.get(t);r&&(r.ngOnDestroy(),this._hosts.delete(t))}static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275prov=Be({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})();function _L(...e){const n=pP(e),{args:t,keys:r}=BP(e),i=new Ln(o=>{const{length:s}=t;if(!s)return void o.complete();const a=new Array(s);let l=s,u=s;for(let f=0;f{h||(h=!0,u--),a[f]=m},()=>l--,void 0,()=>{(!l||!h)&&(u||o.next(r?VP(r,a):a),o.complete())}))}});return n?i.pipe(sS(n)):i}function vL(e){return Br((n,t)=>{let o,r=null,i=!1;r=n.subscribe(Dr(t,void 0,void 0,s=>{o=Po(e(s,vL(e)(n))),r?(r.unsubscribe(),r=null,o.subscribe(t)):i=!0})),i&&(r.unsubscribe(),r=null,o.subscribe(t))})}function mS(e){return Br((n,t)=>{try{n.subscribe(t)}finally{t.add(e)}})}function gS(e,n,...t){if(!0===n)return void e();if(!1===n)return;const r=new Qa({next:()=>{r.unsubscribe(),e()}});return n(...t).subscribe(r)}function yL(e,n,t,r,i,o,s){try{var a=e[o](s),l=a.value}catch(u){return void t(u)}a.done?n(l):Promise.resolve(l).then(r,i)}function Nd(e){return function(){var n=this,t=arguments;return new Promise(function(r,i){var o=e.apply(n,t);function s(l){yL(o,r,i,s,a,"next",l)}function a(l){yL(o,r,i,s,a,"throw",l)}s(void 0)})}}class Rb{}class Ob{}class xs{constructor(n){this.normalizedNames=new Map,this.lazyUpdate=null,n?"string"==typeof n?this.lazyInit=()=>{this.headers=new Map,n.split("\n").forEach(t=>{const r=t.indexOf(":");if(r>0){const i=t.slice(0,r),o=i.toLowerCase(),s=t.slice(r+1).trim();this.maybeSetNormalizedName(i,o),this.headers.has(o)?this.headers.get(o).push(s):this.headers.set(o,[s])}})}:typeof Headers<"u"&&n instanceof Headers?(this.headers=new Map,n.forEach((t,r)=>{this.setHeaderEntries(r,t)})):this.lazyInit=()=>{this.headers=new Map,Object.entries(n).forEach(([t,r])=>{this.setHeaderEntries(t,r)})}:this.headers=new Map}has(n){return this.init(),this.headers.has(n.toLowerCase())}get(n){this.init();const t=this.headers.get(n.toLowerCase());return t&&t.length>0?t[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(n){return this.init(),this.headers.get(n.toLowerCase())||null}append(n,t){return this.clone({name:n,value:t,op:"a"})}set(n,t){return this.clone({name:n,value:t,op:"s"})}delete(n,t){return this.clone({name:n,value:t,op:"d"})}maybeSetNormalizedName(n,t){this.normalizedNames.has(t)||this.normalizedNames.set(t,n)}init(){this.lazyInit&&(this.lazyInit instanceof xs?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(n=>this.applyUpdate(n)),this.lazyUpdate=null))}copyFrom(n){n.init(),Array.from(n.headers.keys()).forEach(t=>{this.headers.set(t,n.headers.get(t)),this.normalizedNames.set(t,n.normalizedNames.get(t))})}clone(n){const t=new xs;return t.lazyInit=this.lazyInit&&this.lazyInit instanceof xs?this.lazyInit:this,t.lazyUpdate=(this.lazyUpdate||[]).concat([n]),t}applyUpdate(n){const t=n.name.toLowerCase();switch(n.op){case"a":case"s":let r=n.value;if("string"==typeof r&&(r=[r]),0===r.length)return;this.maybeSetNormalizedName(n.name,t);const i=("a"===n.op?this.headers.get(t):void 0)||[];i.push(...r),this.headers.set(t,i);break;case"d":const o=n.value;if(o){let s=this.headers.get(t);if(!s)return;s=s.filter(a=>-1===o.indexOf(a)),0===s.length?(this.headers.delete(t),this.normalizedNames.delete(t)):this.headers.set(t,s)}else this.headers.delete(t),this.normalizedNames.delete(t)}}setHeaderEntries(n,t){const r=(Array.isArray(t)?t:[t]).map(o=>o.toString()),i=n.toLowerCase();this.headers.set(i,r),this.maybeSetNormalizedName(n,i)}forEach(n){this.init(),Array.from(this.normalizedNames.keys()).forEach(t=>n(this.normalizedNames.get(t),this.headers.get(t)))}}class NY{encodeKey(n){return xL(n)}encodeValue(n){return xL(n)}decodeKey(n){return decodeURIComponent(n)}decodeValue(n){return decodeURIComponent(n)}}const LY=/%(\d[a-f0-9])/gi,BY={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function xL(e){return encodeURIComponent(e).replace(LY,(n,t)=>BY[t]??n)}function Nb(e){return`${e}`}class qc{constructor(n={}){if(this.updates=null,this.cloneFrom=null,this.encoder=n.encoder||new NY,n.fromString){if(n.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function PY(e,n){const t=new Map;return e.length>0&&e.replace(/^\?/,"").split("&").forEach(i=>{const o=i.indexOf("="),[s,a]=-1==o?[n.decodeKey(i),""]:[n.decodeKey(i.slice(0,o)),n.decodeValue(i.slice(o+1))],l=t.get(s)||[];l.push(a),t.set(s,l)}),t}(n.fromString,this.encoder)}else n.fromObject?(this.map=new Map,Object.keys(n.fromObject).forEach(t=>{const r=n.fromObject[t],i=Array.isArray(r)?r.map(Nb):[Nb(r)];this.map.set(t,i)})):this.map=null}has(n){return this.init(),this.map.has(n)}get(n){this.init();const t=this.map.get(n);return t?t[0]:null}getAll(n){return this.init(),this.map.get(n)||null}keys(){return this.init(),Array.from(this.map.keys())}append(n,t){return this.clone({param:n,value:t,op:"a"})}appendAll(n){const t=[];return Object.keys(n).forEach(r=>{const i=n[r];Array.isArray(i)?i.forEach(o=>{t.push({param:r,value:o,op:"a"})}):t.push({param:r,value:i,op:"a"})}),this.clone(t)}set(n,t){return this.clone({param:n,value:t,op:"s"})}delete(n,t){return this.clone({param:n,value:t,op:"d"})}toString(){return this.init(),this.keys().map(n=>{const t=this.encoder.encodeKey(n);return this.map.get(n).map(r=>t+"="+this.encoder.encodeValue(r)).join("&")}).filter(n=>""!==n).join("&")}clone(n){const t=new qc({encoder:this.encoder});return t.cloneFrom=this.cloneFrom||this,t.updates=(this.updates||[]).concat(n),t}init(){null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(n=>this.map.set(n,this.cloneFrom.map.get(n))),this.updates.forEach(n=>{switch(n.op){case"a":case"s":const t=("a"===n.op?this.map.get(n.param):void 0)||[];t.push(Nb(n.value)),this.map.set(n.param,t);break;case"d":if(void 0===n.value){this.map.delete(n.param);break}{let r=this.map.get(n.param)||[];const i=r.indexOf(Nb(n.value));-1!==i&&r.splice(i,1),r.length>0?this.map.set(n.param,r):this.map.delete(n.param)}}}),this.cloneFrom=this.updates=null)}}class VY{constructor(){this.map=new Map}set(n,t){return this.map.set(n,t),this}get(n){return this.map.has(n)||this.map.set(n,n.defaultValue()),this.map.get(n)}delete(n){return this.map.delete(n),this}has(n){return this.map.has(n)}keys(){return this.map.keys()}}function bL(e){return typeof ArrayBuffer<"u"&&e instanceof ArrayBuffer}function wL(e){return typeof Blob<"u"&&e instanceof Blob}function EL(e){return typeof FormData<"u"&&e instanceof FormData}class Hg{constructor(n,t,r,i){let o;if(this.url=t,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=n.toUpperCase(),function UY(e){switch(e){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||i?(this.body=void 0!==r?r:null,o=i):o=r,o&&(this.reportProgress=!!o.reportProgress,this.withCredentials=!!o.withCredentials,o.responseType&&(this.responseType=o.responseType),o.headers&&(this.headers=o.headers),o.context&&(this.context=o.context),o.params&&(this.params=o.params),this.transferCache=o.transferCache),this.headers??=new xs,this.context??=new VY,this.params){const s=this.params.toString();if(0===s.length)this.urlWithParams=t;else{const a=t.indexOf("?");this.urlWithParams=t+(-1===a?"?":am.set(g,n.setHeaders[g]),u)),n.setParams&&(f=Object.keys(n.setParams).reduce((m,g)=>m.set(g,n.setParams[g]),f)),new Hg(t,r,s,{params:f,headers:u,context:h,reportProgress:l,responseType:i,withCredentials:a,transferCache:o})}}var Xc=function(e){return e[e.Sent=0]="Sent",e[e.UploadProgress=1]="UploadProgress",e[e.ResponseHeader=2]="ResponseHeader",e[e.DownloadProgress=3]="DownloadProgress",e[e.Response=4]="Response",e[e.User=5]="User",e}(Xc||{});class _S{constructor(n,t=200,r="OK"){this.headers=n.headers||new xs,this.status=void 0!==n.status?n.status:t,this.statusText=n.statusText||r,this.url=n.url||null,this.ok=this.status>=200&&this.status<300}}class Pb extends _S{constructor(n={}){super(n),this.type=Xc.ResponseHeader}clone(n={}){return new Pb({headers:n.headers||this.headers,status:void 0!==n.status?n.status:this.status,statusText:n.statusText||this.statusText,url:n.url||this.url||void 0})}}class Pd extends _S{constructor(n={}){super(n),this.type=Xc.Response,this.body=void 0!==n.body?n.body:null}clone(n={}){return new Pd({body:void 0!==n.body?n.body:this.body,headers:n.headers||this.headers,status:void 0!==n.status?n.status:this.status,statusText:n.statusText||this.statusText,url:n.url||this.url||void 0})}}class bp extends _S{constructor(n){super(n,0,"Unknown Error"),this.name="HttpErrorResponse",this.ok=!1,this.message=this.status>=200&&this.status<300?`Http failure during parsing for ${n.url||"(unknown url)"}`:`Http failure response for ${n.url||"(unknown url)"}: ${n.status} ${n.statusText}`,this.error=n.error||null}}function vS(e,n){return{body:n,headers:e.headers,context:e.context,observe:e.observe,params:e.params,reportProgress:e.reportProgress,responseType:e.responseType,withCredentials:e.withCredentials,transferCache:e.transferCache}}let yS=(()=>{class e{constructor(t){this.handler=t}request(t,r,i={}){let o;if(t instanceof Hg)o=t;else{let l,u;l=i.headers instanceof xs?i.headers:new xs(i.headers),i.params&&(u=i.params instanceof qc?i.params:new qc({fromObject:i.params})),o=new Hg(t,r,void 0!==i.body?i.body:null,{headers:l,context:i.context,params:u,reportProgress:i.reportProgress,responseType:i.responseType||"json",withCredentials:i.withCredentials,transferCache:i.transferCache})}const s=vs(o).pipe(function RY(e,n){return Pt(n)?Bg(e,n,1):Bg(e,1)}(l=>this.handler.handle(l)));if(t instanceof Hg||"events"===i.observe)return s;const a=s.pipe(Lg(l=>l instanceof Pd));switch(i.observe||"body"){case"body":switch(o.responseType){case"arraybuffer":return a.pipe(Vr(l=>{if(null!==l.body&&!(l.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return l.body}));case"blob":return a.pipe(Vr(l=>{if(null!==l.body&&!(l.body instanceof Blob))throw new Error("Response is not a Blob.");return l.body}));case"text":return a.pipe(Vr(l=>{if(null!==l.body&&"string"!=typeof l.body)throw new Error("Response is not a string.");return l.body}));default:return a.pipe(Vr(l=>l.body))}case"response":return a;default:throw new Error(`Unreachable: unhandled observe type ${i.observe}}`)}}delete(t,r={}){return this.request("DELETE",t,r)}get(t,r={}){return this.request("GET",t,r)}head(t,r={}){return this.request("HEAD",t,r)}jsonp(t,r){return this.request("JSONP",t,{params:(new qc).append(r,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(t,r={}){return this.request("OPTIONS",t,r)}patch(t,r,i={}){return this.request("PATCH",t,vS(i,r))}post(t,r,i={}){return this.request("POST",t,vS(i,r))}put(t,r,i={}){return this.request("PUT",t,vS(i,r))}static{this.\u0275fac=function(r){return new(r||e)(ce(Rb))}}static{this.\u0275prov=Be({token:e,factory:e.\u0275fac})}}return e})();const $Y=/^\)\]\}',?\n/;function TL(e){if(e.url)return e.url;const n="X-Request-URL".toLocaleLowerCase();return e.headers.get(n)}let xS=(()=>{class e{constructor(){this.fetchImpl=De(GY,{optional:!0})?.fetch??((...t)=>globalThis.fetch(...t)),this.ngZone=De(ct)}handle(t){return new Ln(r=>{const i=new AbortController;return this.doRequest(t,i.signal,r).then(bS,o=>r.error(new bp({error:o}))),()=>i.abort()})}doRequest(t,r,i){var o=this;return Nd(function*(){const s=o.createRequestInit(t);let a;try{const v=o.ngZone.runOutsideAngular(()=>o.fetchImpl(t.urlWithParams,{signal:r,...s}));(function qY(e){e.then(bS,bS)})(v),i.next({type:Xc.Sent}),a=yield v}catch(v){return void i.error(new bp({error:v,status:v.status??0,statusText:v.statusText,url:t.urlWithParams,headers:v.headers}))}const l=new xs(a.headers),u=a.statusText,f=TL(a)??t.urlWithParams;let h=a.status,m=null;if(t.reportProgress&&i.next(new Pb({headers:l,status:h,statusText:u,url:f})),a.body){const v=a.headers.get("content-length"),_=[],x=a.body.getReader();let w,C,b=0;const O=typeof Zone<"u"&&Zone.current;yield o.ngZone.runOutsideAngular(Nd(function*(){for(;;){const{done:U,value:A}=yield x.read();if(U)break;if(_.push(A),b+=A.length,t.reportProgress){C="text"===t.responseType?(C??"")+(w??=new TextDecoder).decode(A,{stream:!0}):void 0;const q=()=>i.next({type:Xc.DownloadProgress,total:v?+v:void 0,loaded:b,partialText:C});O?O.run(q):q()}}}));const z=o.concatChunks(_,b);try{const U=a.headers.get("Content-Type")??"";m=o.parseBody(t,z,U)}catch(U){return void i.error(new bp({error:U,headers:new xs(a.headers),status:a.status,statusText:a.statusText,url:TL(a)??t.urlWithParams}))}}0===h&&(h=m?200:0),h>=200&&h<300?(i.next(new Pd({body:m,headers:l,status:h,statusText:u,url:f})),i.complete()):i.error(new bp({error:m,headers:l,status:h,statusText:u,url:f}))})()}parseBody(t,r,i){switch(t.responseType){case"json":const o=(new TextDecoder).decode(r).replace($Y,"");return""===o?null:JSON.parse(o);case"text":return(new TextDecoder).decode(r);case"blob":return new Blob([r],{type:i});case"arraybuffer":return r.buffer}}createRequestInit(t){const r={},i=t.withCredentials?"include":void 0;if(t.headers.forEach((o,s)=>r[o]=s.join(",")),t.headers.has("Accept")||(r.Accept="application/json, text/plain, */*"),!t.headers.has("Content-Type")){const o=t.detectContentTypeHeader();null!==o&&(r["Content-Type"]=o)}return{body:t.serializeBody(),method:t.method,headers:r,credentials:i}}concatChunks(t,r){const i=new Uint8Array(r);let o=0;for(const s of t)i.set(s,o),o+=s.length;return i}static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275prov=Be({token:e,factory:e.\u0275fac})}}return e})();class GY{}function bS(){}function DL(e,n){return n(e)}function XY(e,n){return(t,r)=>n.intercept(t,{handle:i=>e(i,r)})}const KY=new xe(""),jg=new xe(""),SL=new xe(""),IL=new xe("",{providedIn:"root",factory:()=>!0});function ZY(){let e=null;return(n,t)=>{null===e&&(e=(De(KY,{optional:!0})??[]).reduceRight(XY,DL));const r=De(Ia);if(De(IL)){const o=r.add();return e(n,t).pipe(mS(()=>r.remove(o)))}return e(n,t)}}let AL=(()=>{class e extends Rb{constructor(t,r){super(),this.backend=t,this.injector=r,this.chain=null,this.pendingTasks=De(Ia),this.contributeToStability=De(IL)}handle(t){if(null===this.chain){const r=Array.from(new Set([...this.injector.get(jg),...this.injector.get(SL,[])]));this.chain=r.reduceRight((i,o)=>function YY(e,n,t){return(r,i)=>function ao(e,n){e instanceof lc&&e.assertNotDestroyed();const r=Us(e),i=Ur(void 0);try{return n()}finally{Us(r),Ur(i)}}(t,()=>n(r,o=>e(o,i)))}(i,o,this.injector),DL)}if(this.contributeToStability){const r=this.pendingTasks.add();return this.chain(t,i=>this.backend.handle(i)).pipe(mS(()=>this.pendingTasks.remove(r)))}return this.chain(t,r=>this.backend.handle(r))}static{this.\u0275fac=function(r){return new(r||e)(ce(Ob),ce(Li))}}static{this.\u0275prov=Be({token:e,factory:e.\u0275fac})}}return e})();const nK=/^\)\]\}',?\n/;let ML=(()=>{class e{constructor(t){this.xhrFactory=t}handle(t){if("JSONP"===t.method)throw new se(-2800,!1);const r=this.xhrFactory;return(r.\u0275loadImpl?Fd(r.\u0275loadImpl()):vs(null)).pipe(function OY(e,n){return Br((t,r)=>{let i=null,o=0,s=!1;const a=()=>s&&!i&&r.complete();t.subscribe(Dr(r,l=>{i?.unsubscribe();let u=0;const f=o++;Po(e(l,f)).subscribe(i=Dr(r,h=>r.next(n?n(l,h,f,u++):h),()=>{i=null,a()}))},()=>{s=!0,a()}))})}(()=>new Ln(o=>{const s=r.build();if(s.open(t.method,t.urlWithParams),t.withCredentials&&(s.withCredentials=!0),t.headers.forEach((_,x)=>s.setRequestHeader(_,x.join(","))),t.headers.has("Accept")||s.setRequestHeader("Accept","application/json, text/plain, */*"),!t.headers.has("Content-Type")){const _=t.detectContentTypeHeader();null!==_&&s.setRequestHeader("Content-Type",_)}if(t.responseType){const _=t.responseType.toLowerCase();s.responseType="json"!==_?_:"text"}const a=t.serializeBody();let l=null;const u=()=>{if(null!==l)return l;const _=s.statusText||"OK",x=new xs(s.getAllResponseHeaders()),b=function rK(e){return"responseURL"in e&&e.responseURL?e.responseURL:/^X-Request-URL:/m.test(e.getAllResponseHeaders())?e.getResponseHeader("X-Request-URL"):null}(s)||t.url;return l=new Pb({headers:x,status:s.status,statusText:_,url:b}),l},f=()=>{let{headers:_,status:x,statusText:b,url:w}=u(),C=null;204!==x&&(C=typeof s.response>"u"?s.responseText:s.response),0===x&&(x=C?200:0);let O=x>=200&&x<300;if("json"===t.responseType&&"string"==typeof C){const z=C;C=C.replace(nK,"");try{C=""!==C?JSON.parse(C):null}catch(U){C=z,O&&(O=!1,C={error:U,text:C})}}O?(o.next(new Pd({body:C,headers:_,status:x,statusText:b,url:w||void 0})),o.complete()):o.error(new bp({error:C,headers:_,status:x,statusText:b,url:w||void 0}))},h=_=>{const{url:x}=u(),b=new bp({error:_,status:s.status||0,statusText:s.statusText||"Unknown Error",url:x||void 0});o.error(b)};let m=!1;const g=_=>{m||(o.next(u()),m=!0);let x={type:Xc.DownloadProgress,loaded:_.loaded};_.lengthComputable&&(x.total=_.total),"text"===t.responseType&&s.responseText&&(x.partialText=s.responseText),o.next(x)},v=_=>{let x={type:Xc.UploadProgress,loaded:_.loaded};_.lengthComputable&&(x.total=_.total),o.next(x)};return s.addEventListener("load",f),s.addEventListener("error",h),s.addEventListener("timeout",h),s.addEventListener("abort",h),t.reportProgress&&(s.addEventListener("progress",g),null!==a&&s.upload&&s.upload.addEventListener("progress",v)),s.send(a),o.next({type:Xc.Sent}),()=>{s.removeEventListener("error",h),s.removeEventListener("abort",h),s.removeEventListener("load",f),s.removeEventListener("timeout",h),t.reportProgress&&(s.removeEventListener("progress",g),null!==a&&s.upload&&s.upload.removeEventListener("progress",v)),s.readyState!==s.DONE&&s.abort()}})))}static{this.\u0275fac=function(r){return new(r||e)(ce(NN))}}static{this.\u0275prov=Be({token:e,factory:e.\u0275fac})}}return e})();const wS=new xe(""),FL=new xe("",{providedIn:"root",factory:()=>"XSRF-TOKEN"}),RL=new xe("",{providedIn:"root",factory:()=>"X-XSRF-TOKEN"});class OL{}let sK=(()=>{class e{constructor(t,r,i){this.doc=t,this.platform=r,this.cookieName=i,this.lastCookieString="",this.lastToken=null,this.parseCount=0}getToken(){if("server"===this.platform)return null;const t=this.doc.cookie||"";return t!==this.lastCookieString&&(this.parseCount++,this.lastToken=DN(t,this.cookieName),this.lastCookieString=t),this.lastToken}static{this.\u0275fac=function(r){return new(r||e)(ce(Vt),ce(Zs),ce(FL))}}static{this.\u0275prov=Be({token:e,factory:e.\u0275fac})}}return e})();function aK(e,n){const t=e.url.toLowerCase();if(!De(wS)||"GET"===e.method||"HEAD"===e.method||t.startsWith("http://")||t.startsWith("https://"))return n(e);const r=De(OL).getToken(),i=De(RL);return null!=r&&!e.headers.has(i)&&(e=e.clone({headers:e.headers.set(i,r)})),n(e)}var Yc=function(e){return e[e.Interceptors=0]="Interceptors",e[e.LegacyInterceptors=1]="LegacyInterceptors",e[e.CustomXsrfConfiguration=2]="CustomXsrfConfiguration",e[e.NoXsrfProtection=3]="NoXsrfProtection",e[e.JsonpSupport=4]="JsonpSupport",e[e.RequestsMadeViaParent=5]="RequestsMadeViaParent",e[e.Fetch=6]="Fetch",e}(Yc||{});function Ld(e,n){return{\u0275kind:e,\u0275providers:n}}function lK(...e){const n=[yS,ML,AL,{provide:Rb,useExisting:AL},{provide:Ob,useFactory:()=>De(xS,{optional:!0})??De(ML)},{provide:jg,useValue:aK,multi:!0},{provide:wS,useValue:!0},{provide:OL,useClass:sK}];for(const t of e)n.push(...t.\u0275providers);return function Pu(e){return{\u0275providers:e}}(n)}const NL=new xe("");let uK=(()=>{class e{static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275mod=Wt({type:e})}static{this.\u0275inj=Yt({providers:[lK(Ld(Yc.LegacyInterceptors,[{provide:NL,useFactory:ZY},{provide:jg,useExisting:NL,multi:!0}]))]})}}return e})();const yK=["*"];let Bb;function zg(e){return function xK(){if(void 0===Bb&&(Bb=null,typeof window<"u")){const e=window;void 0!==e.trustedTypes&&(Bb=e.trustedTypes.createPolicy("angular#components",{createHTML:n=>n}))}return Bb}()?.createHTML(e)||e}function zL(e){return Error(`Unable to find icon with the name "${e}"`)}function $L(e){return Error(`The URL provided to MatIconRegistry was not trusted as a resource URL via Angular's DomSanitizer. Attempted URL was "${e}".`)}function WL(e){return Error(`The literal provided to MatIconRegistry was not trusted as safe HTML by Angular's DomSanitizer. Attempted literal was "${e}".`)}class Bd{constructor(n,t,r){this.url=n,this.svgText=t,this.options=r}}let $g=(()=>{class e{constructor(t,r,i,o){this._httpClient=t,this._sanitizer=r,this._errorHandler=o,this._svgIconConfigs=new Map,this._iconSetConfigs=new Map,this._cachedIconsByUrl=new Map,this._inProgressUrlFetches=new Map,this._fontCssClassesByAlias=new Map,this._resolvers=[],this._defaultFontSetClass=["material-icons","mat-ligature-font"],this._document=i}addSvgIcon(t,r,i){return this.addSvgIconInNamespace("",t,r,i)}addSvgIconLiteral(t,r,i){return this.addSvgIconLiteralInNamespace("",t,r,i)}addSvgIconInNamespace(t,r,i,o){return this._addSvgIconConfig(t,r,new Bd(i,null,o))}addSvgIconResolver(t){return this._resolvers.push(t),this}addSvgIconLiteralInNamespace(t,r,i,o){const s=this._sanitizer.sanitize(Mr.HTML,i);if(!s)throw WL(i);const a=zg(s);return this._addSvgIconConfig(t,r,new Bd("",a,o))}addSvgIconSet(t,r){return this.addSvgIconSetInNamespace("",t,r)}addSvgIconSetLiteral(t,r){return this.addSvgIconSetLiteralInNamespace("",t,r)}addSvgIconSetInNamespace(t,r,i){return this._addSvgIconSetConfig(t,new Bd(r,null,i))}addSvgIconSetLiteralInNamespace(t,r,i){const o=this._sanitizer.sanitize(Mr.HTML,r);if(!o)throw WL(r);const s=zg(o);return this._addSvgIconSetConfig(t,new Bd("",s,i))}registerFontClassAlias(t,r=t){return this._fontCssClassesByAlias.set(t,r),this}classNameForFontAlias(t){return this._fontCssClassesByAlias.get(t)||t}setDefaultFontSetClass(...t){return this._defaultFontSetClass=t,this}getDefaultFontSetClass(){return this._defaultFontSetClass}getSvgIconFromUrl(t){const r=this._sanitizer.sanitize(Mr.RESOURCE_URL,t);if(!r)throw $L(t);const i=this._cachedIconsByUrl.get(r);return i?vs(Vb(i)):this._loadSvgIconFromConfig(new Bd(t,null)).pipe(Eb(o=>this._cachedIconsByUrl.set(r,o)),Vr(o=>Vb(o)))}getNamedSvgIcon(t,r=""){const i=GL(r,t);let o=this._svgIconConfigs.get(i);if(o)return this._getSvgFromConfig(o);if(o=this._getIconConfigFromResolvers(r,t),o)return this._svgIconConfigs.set(i,o),this._getSvgFromConfig(o);const s=this._iconSetConfigs.get(r);return s?this._getSvgFromIconSetConfigs(t,s):function MY(e,n){const t=Pt(e)?e:()=>e,r=i=>i.error(t());return new Ln(n?i=>n.schedule(r,0,i):r)}(zL(i))}ngOnDestroy(){this._resolvers=[],this._svgIconConfigs.clear(),this._iconSetConfigs.clear(),this._cachedIconsByUrl.clear()}_getSvgFromConfig(t){return t.svgText?vs(Vb(this._svgElementFromConfig(t))):this._loadSvgIconFromConfig(t).pipe(Vr(r=>Vb(r)))}_getSvgFromIconSetConfigs(t,r){const i=this._extractIconWithNameFromAnySet(t,r);return i?vs(i):_L(r.filter(s=>!s.svgText).map(s=>this._loadSvgIconSetFromConfig(s).pipe(vL(a=>{const u=`Loading icon set URL: ${this._sanitizer.sanitize(Mr.RESOURCE_URL,s.url)} failed: ${a.message}`;return this._errorHandler.handleError(new Error(u)),vs(null)})))).pipe(Vr(()=>{const s=this._extractIconWithNameFromAnySet(t,r);if(!s)throw zL(t);return s}))}_extractIconWithNameFromAnySet(t,r){for(let i=r.length-1;i>=0;i--){const o=r[i];if(o.svgText&&o.svgText.toString().indexOf(t)>-1){const s=this._svgElementFromConfig(o),a=this._extractSvgIconFromSet(s,t,o.options);if(a)return a}}return null}_loadSvgIconFromConfig(t){return this._fetchIcon(t).pipe(Eb(r=>t.svgText=r),Vr(()=>this._svgElementFromConfig(t)))}_loadSvgIconSetFromConfig(t){return t.svgText?vs(null):this._fetchIcon(t).pipe(Eb(r=>t.svgText=r))}_extractSvgIconFromSet(t,r,i){const o=t.querySelector(`[id="${r}"]`);if(!o)return null;const s=o.cloneNode(!0);if(s.removeAttribute("id"),"svg"===s.nodeName.toLowerCase())return this._setSvgAttributes(s,i);if("symbol"===s.nodeName.toLowerCase())return this._setSvgAttributes(this._toSvgElement(s),i);const a=this._svgElementFromString(zg(""));return a.appendChild(s),this._setSvgAttributes(a,i)}_svgElementFromString(t){const r=this._document.createElement("DIV");r.innerHTML=t;const i=r.querySelector("svg");if(!i)throw Error(" tag not found");return i}_toSvgElement(t){const r=this._svgElementFromString(zg("")),i=t.attributes;for(let o=0;ozg(u)),mS(()=>this._inProgressUrlFetches.delete(s)),function FY(e={}){const{connector:n=()=>new Rt,resetOnError:t=!0,resetOnComplete:r=!0,resetOnRefCountZero:i=!0}=e;return o=>{let s,a,l,u=0,f=!1,h=!1;const m=()=>{a?.unsubscribe(),a=void 0},g=()=>{m(),s=l=void 0,f=h=!1},v=()=>{const _=s;g(),_?.unsubscribe()};return Br((_,x)=>{u++,!h&&!f&&m();const b=l=l??n();x.add(()=>{u--,0===u&&!h&&!f&&(a=gS(v,i))}),b.subscribe(x),!s&&u>0&&(s=new Qa({next:w=>b.next(w),error:w=>{h=!0,m(),a=gS(g,t,w),b.error(w)},complete:()=>{f=!0,m(),a=gS(g,r),b.complete()}}),Po(_).subscribe(s))})(o)}}());return this._inProgressUrlFetches.set(s,l),l}_addSvgIconConfig(t,r,i){return this._svgIconConfigs.set(GL(t,r),i),this}_addSvgIconSetConfig(t,r){const i=this._iconSetConfigs.get(t);return i?i.push(r):this._iconSetConfigs.set(t,[r]),this}_svgElementFromConfig(t){if(!t.svgElement){const r=this._svgElementFromString(t.svgText);this._setSvgAttributes(r,t.options),t.svgElement=r}return t.svgElement}_getIconConfigFromResolvers(t,r){for(let i=0;in?n.pathname+n.search:""}}}),qL=["clip-path","color-profile","src","cursor","fill","filter","marker","marker-start","marker-mid","marker-end","mask","stroke"],SK=qL.map(e=>`[${e}]`).join(", "),IK=/^url\(['"]?#(.*?)['"]?\)$/;let Ub=(()=>{class e{get color(){return this._color||this._defaultColor}set color(t){this._color=t}get svgIcon(){return this._svgIcon}set svgIcon(t){t!==this._svgIcon&&(t?this._updateSvgIcon(t):this._svgIcon&&this._clearSvgElement(),this._svgIcon=t)}get fontSet(){return this._fontSet}set fontSet(t){const r=this._cleanupFontValue(t);r!==this._fontSet&&(this._fontSet=r,this._updateFontIconClasses())}get fontIcon(){return this._fontIcon}set fontIcon(t){const r=this._cleanupFontValue(t);r!==this._fontIcon&&(this._fontIcon=r,this._updateFontIconClasses())}constructor(t,r,i,o,s,a){this._elementRef=t,this._iconRegistry=r,this._location=o,this._errorHandler=s,this.inline=!1,this._previousFontSetClass=[],this._currentIconFetch=an.EMPTY,a&&(a.color&&(this.color=this._defaultColor=a.color),a.fontSet&&(this.fontSet=a.fontSet)),i||t.nativeElement.setAttribute("aria-hidden","true")}_splitIconName(t){if(!t)return["",""];const r=t.split(":");switch(r.length){case 1:return["",r[0]];case 2:return r;default:throw Error(`Invalid icon name: "${t}"`)}}ngOnInit(){this._updateFontIconClasses()}ngAfterViewChecked(){const t=this._elementsWithExternalReferences;if(t&&t.size){const r=this._location.getPathname();r!==this._previousPath&&(this._previousPath=r,this._prependPathToReferences(r))}}ngOnDestroy(){this._currentIconFetch.unsubscribe(),this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear()}_usingFontIcon(){return!this.svgIcon}_setSvgElement(t){this._clearSvgElement();const r=this._location.getPathname();this._previousPath=r,this._cacheChildrenWithExternalReferences(t),this._prependPathToReferences(r),this._elementRef.nativeElement.appendChild(t)}_clearSvgElement(){const t=this._elementRef.nativeElement;let r=t.childNodes.length;for(this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear();r--;){const i=t.childNodes[r];(1!==i.nodeType||"svg"===i.nodeName.toLowerCase())&&i.remove()}}_updateFontIconClasses(){if(!this._usingFontIcon())return;const t=this._elementRef.nativeElement,r=(this.fontSet?this._iconRegistry.classNameForFontAlias(this.fontSet).split(/ +/):this._iconRegistry.getDefaultFontSetClass()).filter(i=>i.length>0);this._previousFontSetClass.forEach(i=>t.classList.remove(i)),r.forEach(i=>t.classList.add(i)),this._previousFontSetClass=r,this.fontIcon!==this._previousFontIconClass&&!r.includes("mat-ligature-font")&&(this._previousFontIconClass&&t.classList.remove(this._previousFontIconClass),this.fontIcon&&t.classList.add(this.fontIcon),this._previousFontIconClass=this.fontIcon)}_cleanupFontValue(t){return"string"==typeof t?t.trim().split(" ")[0]:t}_prependPathToReferences(t){const r=this._elementsWithExternalReferences;r&&r.forEach((i,o)=>{i.forEach(s=>{o.setAttribute(s.name,`url('${t}#${s.value}')`)})})}_cacheChildrenWithExternalReferences(t){const r=t.querySelectorAll(SK),i=this._elementsWithExternalReferences=this._elementsWithExternalReferences||new Map;for(let o=0;o{const a=r[o],l=a.getAttribute(s),u=l?l.match(IK):null;if(u){let f=i.get(a);f||(f=[],i.set(a,f)),f.push({name:s,value:u[1]})}})}_updateSvgIcon(t){if(this._svgNamespace=null,this._svgName=null,this._currentIconFetch.unsubscribe(),t){const[r,i]=this._splitIconName(t);r&&(this._svgNamespace=r),i&&(this._svgName=i),this._currentIconFetch=this._iconRegistry.getNamedSvgIcon(i,r).pipe(Tb(1)).subscribe(o=>this._setSvgElement(o),o=>{this._errorHandler.handleError(new Error(`Error retrieving icon ${r}:${i}! ${o.message}`))})}}static{this.\u0275fac=function(r){return new(r||e)(te(_n),te($g),gl("aria-hidden"),te(TK),te(ji),te(CK,8))}}static{this.\u0275cmp=An({type:e,selectors:[["mat-icon"]],hostAttrs:["role","img",1,"mat-icon","notranslate"],hostVars:10,hostBindings:function(r,i){2&r&&(yi("data-mat-icon-type",i._usingFontIcon()?"font":"svg")("data-mat-icon-name",i._svgName||i.fontIcon)("data-mat-icon-namespace",i._svgNamespace||i.fontSet)("fontIcon",i._usingFontIcon()?i.fontIcon:null),cp(i.color?"mat-"+i.color:""),Xi("mat-icon-inline",i.inline)("mat-icon-no-color","primary"!==i.color&&"accent"!==i.color&&"warn"!==i.color))},inputs:{color:"color",inline:[2,"inline","inline",Nr],svgIcon:"svgIcon",fontSet:"fontSet",fontIcon:"fontIcon"},exportAs:["matIcon"],standalone:!0,features:[zh,Dl],ngContentSelectors:yK,decls:1,vars:0,template:function(r,i){1&r&&(vg(),Cl(0))},styles:["mat-icon,mat-icon.mat-primary,mat-icon.mat-accent,mat-icon.mat-warn{color:var(--mat-icon-color)}.mat-icon{-webkit-user-select:none;user-select:none;background-repeat:no-repeat;display:inline-block;fill:currentColor;height:24px;width:24px;overflow:hidden}.mat-icon.mat-icon-inline{font-size:inherit;height:inherit;line-height:inherit;width:inherit}.mat-icon.mat-ligature-font[fontIcon]::before{content:attr(fontIcon)}[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}"],encapsulation:2,changeDetection:0})}}return e})(),AK=(()=>{class e{static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275mod=Wt({type:e})}static{this.\u0275inj=Yt({imports:[bi,bi]})}}return e})(),XL=(()=>{class e{constructor(t,r){this.matIconRegistry=t,this.domSanitizer=r}init(){this.matIconRegistry.addSvgIcon("novitLogo",this.domSanitizer.bypassSecurityTrustResourceUrl("assets/icons/logo-azul.svg")),this.matIconRegistry.addSvgIcon("novitLogoBlanco",this.domSanitizer.bypassSecurityTrustResourceUrl("assets/icons/logo-blanco.svg")),this.matIconRegistry.addSvgIcon("consultatioLogo",this.domSanitizer.bypassSecurityTrustResourceUrl("assets/icons/consultatio-logo-grisOsc.svg")),this.matIconRegistry.addSvgIcon("nordeltaLogo",this.domSanitizer.bypassSecurityTrustResourceUrl("assets/icons/nordelta-grisOsc.svg"))}static{this.\u0275fac=function(r){return new(r||e)(ce($g),ce(xb))}}static{this.\u0275prov=Be({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})();const ca=new xe("");function Kc(e){return null==e||("string"==typeof e||Array.isArray(e))&&0===e.length}function ZL(e){return null!=e&&"number"==typeof e.length}const OK=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[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])?)*$/;class wp{static min(n){return function QL(e){return n=>{if(Kc(n.value)||Kc(e))return null;const t=parseFloat(n.value);return!isNaN(t)&&t{if(Kc(n.value)||Kc(e))return null;const t=parseFloat(n.value);return!isNaN(t)&&t>e?{max:{max:e,actual:n.value}}:null}}(n)}static required(n){return function e4(e){return Kc(e.value)?{required:!0}:null}(n)}static requiredTrue(n){return function t4(e){return!0===e.value?null:{required:!0}}(n)}static email(n){return function n4(e){return Kc(e.value)||OK.test(e.value)?null:{email:!0}}(n)}static minLength(n){return function r4(e){return n=>Kc(n.value)||!ZL(n.value)?null:n.value.lengthZL(n.value)&&n.value.length>e?{maxlength:{requiredLength:e,actualLength:n.value.length}}:null}(n)}static pattern(n){return function s4(e){if(!e)return Hb;let n,t;return"string"==typeof e?(t="","^"!==e.charAt(0)&&(t+="^"),t+=e,"$"!==e.charAt(e.length-1)&&(t+="$"),n=new RegExp(t)):(t=e.toString(),n=e),r=>{if(Kc(r.value))return null;const i=r.value;return n.test(i)?null:{pattern:{requiredPattern:t,actualValue:i}}}}(n)}static nullValidator(n){return null}static compose(n){return f4(n)}static composeAsync(n){return h4(n)}}function Hb(e){return null}function a4(e){return null!=e}function l4(e){return Gx(e)?Fd(e):e}function c4(e){let n={};return e.forEach(t=>{n=null!=t?{...n,...t}:n}),0===Object.keys(n).length?null:n}function u4(e,n){return n.map(t=>t(e))}function d4(e){return e.map(n=>function NK(e){return!e.validate}(n)?n:t=>n.validate(t))}function f4(e){if(!e)return null;const n=e.filter(a4);return 0==n.length?null:function(t){return c4(u4(t,n))}}function h4(e){if(!e)return null;const n=e.filter(a4);return 0==n.length?null:function(t){return _L(u4(t,n).map(l4)).pipe(Vr(c4))}}function DS(e){return e?Array.isArray(e)?e:[e]:[]}function jb(e,n){return Array.isArray(e)?e.includes(n):e===n}function _4(e,n){const t=DS(n);return DS(e).forEach(i=>{jb(t,i)||t.push(i)}),t}function v4(e,n){return DS(n).filter(t=>!jb(e,t))}const Wg="VALID",$b="INVALID",Ep="PENDING",Gg="DISABLED";class Cp{}class w4 extends Cp{constructor(n,t){super(),this.value=n,this.source=t}}class AS extends Cp{constructor(n,t){super(),this.pristine=n,this.source=t}}class kS extends Cp{constructor(n,t){super(),this.touched=n,this.source=t}}class Wb extends Cp{constructor(n,t){super(),this.status=n,this.source=t}}function MS(e){return(Gb(e)?e.validators:e)||null}function FS(e,n){return(Gb(n)?n.asyncValidators:e)||null}function Gb(e){return null!=e&&!Array.isArray(e)&&"object"==typeof e}class RS{constructor(n,t){this._pendingDirty=!1,this._hasOwnPendingAsyncValidator=null,this._pendingTouched=!1,this._onCollectionChange=()=>{},this._parent=null,this._status=Ig(()=>this.statusReactive()),this.statusReactive=wd(void 0),this._pristine=Ig(()=>this.pristineReactive()),this.pristineReactive=wd(!0),this._touched=Ig(()=>this.touchedReactive()),this.touchedReactive=wd(!1),this._events=new Rt,this.events=this._events.asObservable(),this._onDisabledChange=[],this._assignValidators(n),this._assignAsyncValidators(t)}get validator(){return this._composedValidatorFn}set validator(n){this._rawValidators=this._composedValidatorFn=n}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(n){this._rawAsyncValidators=this._composedAsyncValidatorFn=n}get parent(){return this._parent}get status(){return oa(this.statusReactive)}set status(n){oa(()=>this.statusReactive.set(n))}get valid(){return this.status===Wg}get invalid(){return this.status===$b}get pending(){return this.status==Ep}get disabled(){return this.status===Gg}get enabled(){return this.status!==Gg}get pristine(){return oa(this.pristineReactive)}set pristine(n){oa(()=>this.pristineReactive.set(n))}get dirty(){return!this.pristine}get touched(){return oa(this.touchedReactive)}set touched(n){oa(()=>this.touchedReactive.set(n))}get untouched(){return!this.touched}get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(n){this._assignValidators(n)}setAsyncValidators(n){this._assignAsyncValidators(n)}addValidators(n){this.setValidators(_4(n,this._rawValidators))}addAsyncValidators(n){this.setAsyncValidators(_4(n,this._rawAsyncValidators))}removeValidators(n){this.setValidators(v4(n,this._rawValidators))}removeAsyncValidators(n){this.setAsyncValidators(v4(n,this._rawAsyncValidators))}hasValidator(n){return jb(this._rawValidators,n)}hasAsyncValidator(n){return jb(this._rawAsyncValidators,n)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(n={}){const t=!1===this.touched;this.touched=!0;const r=n.sourceControl??this;this._parent&&!n.onlySelf&&this._parent.markAsTouched({...n,sourceControl:r}),t&&!1!==n.emitEvent&&this._events.next(new kS(!0,r))}markAllAsTouched(n={}){this.markAsTouched({onlySelf:!0,emitEvent:n.emitEvent,sourceControl:this}),this._forEachChild(t=>t.markAllAsTouched(n))}markAsUntouched(n={}){const t=!0===this.touched;this.touched=!1,this._pendingTouched=!1;const r=n.sourceControl??this;this._forEachChild(i=>{i.markAsUntouched({onlySelf:!0,emitEvent:n.emitEvent,sourceControl:r})}),this._parent&&!n.onlySelf&&this._parent._updateTouched(n,r),t&&!1!==n.emitEvent&&this._events.next(new kS(!1,r))}markAsDirty(n={}){const t=!0===this.pristine;this.pristine=!1;const r=n.sourceControl??this;this._parent&&!n.onlySelf&&this._parent.markAsDirty({...n,sourceControl:r}),t&&!1!==n.emitEvent&&this._events.next(new AS(!1,r))}markAsPristine(n={}){const t=!1===this.pristine;this.pristine=!0,this._pendingDirty=!1;const r=n.sourceControl??this;this._forEachChild(i=>{i.markAsPristine({onlySelf:!0,emitEvent:n.emitEvent})}),this._parent&&!n.onlySelf&&this._parent._updatePristine(n,r),t&&!1!==n.emitEvent&&this._events.next(new AS(!0,r))}markAsPending(n={}){this.status=Ep;const t=n.sourceControl??this;!1!==n.emitEvent&&(this._events.next(new Wb(this.status,t)),this.statusChanges.emit(this.status)),this._parent&&!n.onlySelf&&this._parent.markAsPending({...n,sourceControl:t})}disable(n={}){const t=this._parentMarkedDirty(n.onlySelf);this.status=Gg,this.errors=null,this._forEachChild(i=>{i.disable({...n,onlySelf:!0})}),this._updateValue();const r=n.sourceControl??this;!1!==n.emitEvent&&(this._events.next(new w4(this.value,r)),this._events.next(new Wb(this.status,r)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors({...n,skipPristineCheck:t},this),this._onDisabledChange.forEach(i=>i(!0))}enable(n={}){const t=this._parentMarkedDirty(n.onlySelf);this.status=Wg,this._forEachChild(r=>{r.enable({...n,onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:n.emitEvent}),this._updateAncestors({...n,skipPristineCheck:t},this),this._onDisabledChange.forEach(r=>r(!1))}_updateAncestors(n,t){this._parent&&!n.onlySelf&&(this._parent.updateValueAndValidity(n),n.skipPristineCheck||this._parent._updatePristine({},t),this._parent._updateTouched({},t))}setParent(n){this._parent=n}getRawValue(){return this.value}updateValueAndValidity(n={}){if(this._setInitialStatus(),this._updateValue(),this.enabled){const r=this._cancelExistingSubscription();this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===Wg||this.status===Ep)&&this._runAsyncValidator(r,n.emitEvent)}const t=n.sourceControl??this;!1!==n.emitEvent&&(this._events.next(new w4(this.value,t)),this._events.next(new Wb(this.status,t)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!n.onlySelf&&this._parent.updateValueAndValidity({...n,sourceControl:t})}_updateTreeValidity(n={emitEvent:!0}){this._forEachChild(t=>t._updateTreeValidity(n)),this.updateValueAndValidity({onlySelf:!0,emitEvent:n.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?Gg:Wg}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(n,t){if(this.asyncValidator){this.status=Ep,this._hasOwnPendingAsyncValidator={emitEvent:!1!==t};const r=l4(this.asyncValidator(this));this._asyncValidationSubscription=r.subscribe(i=>{this._hasOwnPendingAsyncValidator=null,this.setErrors(i,{emitEvent:t,shouldHaveEmitted:n})})}}_cancelExistingSubscription(){if(this._asyncValidationSubscription){this._asyncValidationSubscription.unsubscribe();const n=this._hasOwnPendingAsyncValidator?.emitEvent??!1;return this._hasOwnPendingAsyncValidator=null,n}return!1}setErrors(n,t={}){this.errors=n,this._updateControlsErrors(!1!==t.emitEvent,this,t.shouldHaveEmitted)}get(n){let t=n;return null==t||(Array.isArray(t)||(t=t.split(".")),0===t.length)?null:t.reduce((r,i)=>r&&r._find(i),this)}getError(n,t){const r=t?this.get(t):this;return r&&r.errors?r.errors[n]:null}hasError(n,t){return!!this.getError(n,t)}get root(){let n=this;for(;n._parent;)n=n._parent;return n}_updateControlsErrors(n,t,r){this.status=this._calculateStatus(),n&&this.statusChanges.emit(this.status),(n||r)&&this._events.next(new Wb(this.status,t)),this._parent&&this._parent._updateControlsErrors(n,t,r)}_initObservables(){this.valueChanges=new Cn,this.statusChanges=new Cn}_calculateStatus(){return this._allControlsDisabled()?Gg:this.errors?$b:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(Ep)?Ep:this._anyControlsHaveStatus($b)?$b:Wg}_anyControlsHaveStatus(n){return this._anyControls(t=>t.status===n)}_anyControlsDirty(){return this._anyControls(n=>n.dirty)}_anyControlsTouched(){return this._anyControls(n=>n.touched)}_updatePristine(n,t){const r=!this._anyControlsDirty(),i=this.pristine!==r;this.pristine=r,this._parent&&!n.onlySelf&&this._parent._updatePristine(n,t),i&&this._events.next(new AS(this.pristine,t))}_updateTouched(n={},t){this.touched=this._anyControlsTouched(),this._events.next(new kS(this.touched,t)),this._parent&&!n.onlySelf&&this._parent._updateTouched(n,t)}_registerOnCollectionChange(n){this._onCollectionChange=n}_setUpdateStrategy(n){Gb(n)&&null!=n.updateOn&&(this._updateOn=n.updateOn)}_parentMarkedDirty(n){return!n&&!(!this._parent||!this._parent.dirty)&&!this._parent._anyControlsDirty()}_find(n){return null}_assignValidators(n){this._rawValidators=Array.isArray(n)?n.slice():n,this._composedValidatorFn=function $K(e){return Array.isArray(e)?function CS(e){return null!=e?f4(d4(e)):null}(e):e||null}(this._rawValidators)}_assignAsyncValidators(n){this._rawAsyncValidators=Array.isArray(n)?n.slice():n,this._composedAsyncValidatorFn=function WK(e){return Array.isArray(e)?function TS(e){return null!=e?h4(d4(e)):null}(e):e||null}(this._rawAsyncValidators)}}const GK=class qb extends RS{constructor(n,t,r){super(MS(t),FS(r,t)),this.controls=n,this._initObservables(),this._setUpdateStrategy(t),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}registerControl(n,t){return this.controls[n]?this.controls[n]:(this.controls[n]=t,t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange),t)}addControl(n,t,r={}){this.registerControl(n,t),this.updateValueAndValidity({emitEvent:r.emitEvent}),this._onCollectionChange()}removeControl(n,t={}){this.controls[n]&&this.controls[n]._registerOnCollectionChange(()=>{}),delete this.controls[n],this.updateValueAndValidity({emitEvent:t.emitEvent}),this._onCollectionChange()}setControl(n,t,r={}){this.controls[n]&&this.controls[n]._registerOnCollectionChange(()=>{}),delete this.controls[n],t&&this.registerControl(n,t),this.updateValueAndValidity({emitEvent:r.emitEvent}),this._onCollectionChange()}contains(n){return this.controls.hasOwnProperty(n)&&this.controls[n].enabled}setValue(n,t={}){(function C4(e,n,t){e._forEachChild((r,i)=>{if(void 0===t[i])throw new se(1002,"")})})(this,0,n),Object.keys(n).forEach(r=>{(function E4(e,n,t){const r=e.controls;if(!(n?Object.keys(r):r).length)throw new se(1e3,"");if(!r[t])throw new se(1001,"")})(this,!0,r),this.controls[r].setValue(n[r],{onlySelf:!0,emitEvent:t.emitEvent})}),this.updateValueAndValidity(t)}patchValue(n,t={}){null!=n&&(Object.keys(n).forEach(r=>{const i=this.controls[r];i&&i.patchValue(n[r],{onlySelf:!0,emitEvent:t.emitEvent})}),this.updateValueAndValidity(t))}reset(n={},t={}){this._forEachChild((r,i)=>{r.reset(n?n[i]:null,{onlySelf:!0,emitEvent:t.emitEvent})}),this._updatePristine(t,this),this._updateTouched(t,this),this.updateValueAndValidity(t)}getRawValue(){return this._reduceChildren({},(n,t,r)=>(n[r]=t.getRawValue(),n))}_syncPendingControls(){let n=this._reduceChildren(!1,(t,r)=>!!r._syncPendingControls()||t);return n&&this.updateValueAndValidity({onlySelf:!0}),n}_forEachChild(n){Object.keys(this.controls).forEach(t=>{const r=this.controls[t];r&&n(r,t)})}_setUpControls(){this._forEachChild(n=>{n.setParent(this),n._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(n){for(const[t,r]of Object.entries(this.controls))if(this.contains(t)&&n(r))return!0;return!1}_reduceValue(){return this._reduceChildren({},(t,r,i)=>((r.enabled||this.disabled)&&(t[i]=r.value),t))}_reduceChildren(n,t){let r=n;return this._forEachChild((i,o)=>{r=t(r,i,o)}),r}_allControlsDisabled(){for(const n of Object.keys(this.controls))if(this.controls[n].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(n){return this.controls.hasOwnProperty(n)?this.controls[n]:null}},Ud=new xe("CallSetDisabledState",{providedIn:"root",factory:()=>qg}),qg="always";function I4(e,n){const t=e.indexOf(n);t>-1&&e.splice(t,1)}function A4(e){return"object"==typeof e&&null!==e&&2===Object.keys(e).length&&"value"in e&&"disabled"in e}Promise.resolve();const Tp=class extends RS{constructor(n=null,t,r){super(MS(t),FS(r,t)),this.defaultValue=null,this._onChange=[],this._pendingChange=!1,this._applyFormState(n),this._setUpdateStrategy(t),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),Gb(t)&&(t.nonNullable||t.initialValueIsDefault)&&(this.defaultValue=A4(n)?n.value:n)}setValue(n,t={}){this.value=this._pendingValue=n,this._onChange.length&&!1!==t.emitModelToViewChange&&this._onChange.forEach(r=>r(this.value,!1!==t.emitViewToModelChange)),this.updateValueAndValidity(t)}patchValue(n,t={}){this.setValue(n,t)}reset(n=this.defaultValue,t={}){this._applyFormState(n),this.markAsPristine(t),this.markAsUntouched(t),this.setValue(this.value,t),this._pendingChange=!1}_updateValue(){}_anyControls(n){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(n){this._onChange.push(n)}_unregisterOnChange(n){I4(this._onChange,n)}registerOnDisabledChange(n){this._onDisabledChange.push(n)}_unregisterOnDisabledChange(n){I4(this._onDisabledChange,n)}_forEachChild(n){}_syncPendingControls(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))}_applyFormState(n){A4(n)?(this.value=this._pendingValue=n.value,n.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=n}};Promise.resolve();const US=new xe("");let Z4=(()=>{class e{static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275mod=Wt({type:e})}static{this.\u0275inj=Yt({})}}return e})(),MZ=(()=>{class e{static withConfig(t){return{ngModule:e,providers:[{provide:Ud,useValue:t.callSetDisabledState??qg}]}}static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275mod=Wt({type:e})}static{this.\u0275inj=Yt({imports:[Z4]})}}return e})(),FZ=(()=>{class e{static withConfig(t){return{ngModule:e,providers:[{provide:US,useValue:t.warnOnNgModelWithFormControl??"always"},{provide:Ud,useValue:t.callSetDisabledState??qg}]}}static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275mod=Wt({type:e})}static{this.\u0275inj=Yt({imports:[Z4]})}}return e})();var ut=function(e){return e[e.State=0]="State",e[e.Transition=1]="Transition",e[e.Sequence=2]="Sequence",e[e.Group=3]="Group",e[e.Animate=4]="Animate",e[e.Keyframes=5]="Keyframes",e[e.Style=6]="Style",e[e.Trigger=7]="Trigger",e[e.Reference=8]="Reference",e[e.AnimateChild=9]="AnimateChild",e[e.AnimateRef=10]="AnimateRef",e[e.Query=11]="Query",e[e.Stagger=12]="Stagger",e}(ut||{});const Rl="*";function Kg(e,n){return{type:ut.Trigger,name:e,definitions:n,options:{}}}function jd(e,n=null){return{type:ut.Animate,styles:n,timings:e}}function vo(e){return{type:ut.Style,styles:e,offset:null}}function Zg(e,n,t){return{type:ut.State,name:e,styles:n,options:t}}function OZ(e){return{type:ut.Keyframes,steps:e}}function zd(e,n,t=null){return{type:ut.Transition,expr:e,animation:n,options:t}}class Qg{constructor(n=0,t=0){this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._originalOnDoneFns=[],this._originalOnStartFns=[],this._started=!1,this._destroyed=!1,this._finished=!1,this._position=0,this.parentPlayer=null,this.totalTime=n+t}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(n=>n()),this._onDoneFns=[])}onStart(n){this._originalOnStartFns.push(n),this._onStartFns.push(n)}onDone(n){this._originalOnDoneFns.push(n),this._onDoneFns.push(n)}onDestroy(n){this._onDestroyFns.push(n)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){queueMicrotask(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(n=>n()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(n=>n()),this._onDestroyFns=[])}reset(){this._started=!1,this._finished=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}setPosition(n){this._position=this.totalTime?n*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(n){const t="start"==n?this._onStartFns:this._onDoneFns;t.forEach(r=>r()),t.length=0}}class Q4{constructor(n){this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this._onDestroyFns=[],this.parentPlayer=null,this.totalTime=0,this.players=n;let t=0,r=0,i=0;const o=this.players.length;0==o?queueMicrotask(()=>this._onFinish()):this.players.forEach(s=>{s.onDone(()=>{++t==o&&this._onFinish()}),s.onDestroy(()=>{++r==o&&this._onDestroy()}),s.onStart(()=>{++i==o&&this._onStart()})}),this.totalTime=this.players.reduce((s,a)=>Math.max(s,a.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(n=>n()),this._onDoneFns=[])}init(){this.players.forEach(n=>n.init())}onStart(n){this._onStartFns.push(n)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(n=>n()),this._onStartFns=[])}onDone(n){this._onDoneFns.push(n)}onDestroy(n){this._onDestroyFns.push(n)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(n=>n.play())}pause(){this.players.forEach(n=>n.pause())}restart(){this.players.forEach(n=>n.restart())}finish(){this._onFinish(),this.players.forEach(n=>n.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(n=>n.destroy()),this._onDestroyFns.forEach(n=>n()),this._onDestroyFns=[])}reset(){this.players.forEach(n=>n.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(n){const t=n*this.totalTime;this.players.forEach(r=>{const i=r.totalTime?Math.min(1,t/r.totalTime):1;r.setPosition(i)})}getPosition(){const n=this.players.reduce((t,r)=>null===t||r.totalTime>t.totalTime?r:t,null);return null!=n?n.getPosition():0}beforeDestroy(){this.players.forEach(n=>{n.beforeDestroy&&n.beforeDestroy()})}triggerCallback(n){const t="start"==n?this._onStartFns:this._onDoneFns;t.forEach(r=>r()),t.length=0}}function J4(e){return new se(3e3,!1)}function Jc(e){switch(e.length){case 0:return new Qg;case 1:return e[0];default:return new Q4(e)}}function e3(e,n,t=new Map,r=new Map){const i=[],o=[];let s=-1,a=null;if(n.forEach(l=>{const u=l.get("offset"),f=u==s,h=f&&a||new Map;l.forEach((m,g)=>{let v=g,_=m;if("offset"!==g)switch(v=e.normalizePropertyName(v,i),_){case"!":_=t.get(g);break;case Rl:_=r.get(g);break;default:_=e.normalizeStyleValue(g,v,_,i)}h.set(v,_)}),f||o.push(h),a=h,s=u}),i.length)throw function aQ(){return new se(3502,!1)}();return o}function XS(e,n,t,r){switch(n){case"start":e.onStart(()=>r(t&&YS(t,"start",e)));break;case"done":e.onDone(()=>r(t&&YS(t,"done",e)));break;case"destroy":e.onDestroy(()=>r(t&&YS(t,"destroy",e)))}}function YS(e,n,t){const o=KS(e.element,e.triggerName,e.fromState,e.toState,n||e.phaseName,t.totalTime??e.totalTime,!!t.disabled),s=e._data;return null!=s&&(o._data=s),o}function KS(e,n,t,r,i="",o=0,s){return{element:e,triggerName:n,fromState:t,toState:r,phaseName:i,totalTime:o,disabled:!!s}}function Lo(e,n,t){let r=e.get(n);return r||e.set(n,r=t),r}function t3(e){const n=e.indexOf(":");return[e.substring(1,n),e.slice(n+1)]}const yQ=typeof document>"u"?null:document.documentElement;function ZS(e){const n=e.parentNode||e.host||null;return n===yQ?null:n}let $d=null,n3=!1;function r3(e,n){for(;n;){if(n===e)return!0;n=ZS(n)}return!1}function o3(e,n,t){if(t)return Array.from(e.querySelectorAll(n));const r=e.querySelector(n);return r?[r]:[]}let QS=(()=>{class e{validateStyleProperty(t){return function bQ(e){$d||($d=function wQ(){return typeof document<"u"?document.body:null}()||{},n3=!!$d.style&&"WebkitAppearance"in $d.style);let n=!0;return $d.style&&!function xQ(e){return"ebkit"==e.substring(1,6)}(e)&&(n=e in $d.style,!n&&n3&&(n="Webkit"+e.charAt(0).toUpperCase()+e.slice(1)in $d.style)),n}(t)}containsElement(t,r){return r3(t,r)}getParentElement(t){return ZS(t)}query(t,r,i){return o3(t,r,i)}computeStyle(t,r,i){return i||""}animate(t,r,i,o,s,a=[],l){return new Qg(i,o)}static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275prov=Be({token:e,factory:e.\u0275fac})}}return e})();class JS{static{this.NOOP=new QS}}class eI{}const CQ=1e3,tI="ng-enter",Qb="ng-leave",Jb="ng-trigger",e1=".ng-trigger",a3="ng-animating",nI=".ng-animating";function Ol(e){if("number"==typeof e)return e;const n=e.match(/^(-?[\.\d]+)(m?s)/);return!n||n.length<2?0:rI(parseFloat(n[1]),n[2])}function rI(e,n){return"s"===n?e*CQ:e}function t1(e,n,t){return e.hasOwnProperty("duration")?e:function DQ(e,n,t){let i,o=0,s="";if("string"==typeof e){const a=e.match(/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i);if(null===a)return n.push(J4()),{duration:0,delay:0,easing:""};i=rI(parseFloat(a[1]),a[2]);const l=a[3];null!=l&&(o=rI(parseFloat(l),a[4]));const u=a[5];u&&(s=u)}else i=e;if(!t){let a=!1,l=n.length;i<0&&(n.push(function VZ(){return new se(3100,!1)}()),a=!0),o<0&&(n.push(function UZ(){return new se(3101,!1)}()),a=!0),a&&n.splice(l,0,J4())}return{duration:i,delay:o,easing:s}}(e,n,t)}function La(e,n,t){n.forEach((r,i)=>{const o=oI(i);t&&!t.has(i)&&t.set(i,e.style[o]),e.style[o]=r})}function Wd(e,n){n.forEach((t,r)=>{const i=oI(r);e.style[i]=""})}function Jg(e){return Array.isArray(e)?1==e.length?e[0]:function RZ(e,n=null){return{type:ut.Sequence,steps:e,options:n}}(e):e}const iI=new RegExp("{{\\s*(.+?)\\s*}}","g");function c3(e){let n=[];if("string"==typeof e){let t;for(;t=iI.exec(e);)n.push(t[1]);iI.lastIndex=0}return n}function e_(e,n,t){const r=`${e}`,i=r.replace(iI,(o,s)=>{let a=n[s];return null==a&&(t.push(function jZ(){return new se(3003,!1)}()),a=""),a.toString()});return i==r?e:i}const AQ=/-+([a-z0-9])/g;function oI(e){return e.replace(AQ,(...n)=>n[1].toUpperCase())}function Bo(e,n,t){switch(n.type){case ut.Trigger:return e.visitTrigger(n,t);case ut.State:return e.visitState(n,t);case ut.Transition:return e.visitTransition(n,t);case ut.Sequence:return e.visitSequence(n,t);case ut.Group:return e.visitGroup(n,t);case ut.Animate:return e.visitAnimate(n,t);case ut.Keyframes:return e.visitKeyframes(n,t);case ut.Style:return e.visitStyle(n,t);case ut.Reference:return e.visitReference(n,t);case ut.AnimateChild:return e.visitAnimateChild(n,t);case ut.AnimateRef:return e.visitAnimateRef(n,t);case ut.Query:return e.visitQuery(n,t);case ut.Stagger:return e.visitStagger(n,t);default:throw function zZ(){return new se(3004,!1)}()}}function sI(e,n){return window.getComputedStyle(e)[n]}const FQ=new Set(["width","height","minWidth","minHeight","maxWidth","maxHeight","left","top","bottom","right","fontSize","outlineWidth","outlineOffset","paddingTop","paddingLeft","paddingBottom","paddingRight","marginTop","marginLeft","marginBottom","marginRight","borderRadius","borderWidth","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","textIndent","perspective"]);class u3 extends eI{normalizePropertyName(n,t){return oI(n)}normalizeStyleValue(n,t,r,i){let o="";const s=r.toString().trim();if(FQ.has(t)&&0!==r&&"0"!==r)if("number"==typeof r)o="px";else{const a=r.match(/^[+-]?[\d\.]+([a-z]*)$/);a&&0==a[1].length&&i.push(function $Z(){return new se(3005,!1)}())}return s+o}}const n1="*";const r1=new Set(["true","1"]),o1=new Set(["false","0"]);function d3(e,n){const t=r1.has(e)||o1.has(e),r=r1.has(n)||o1.has(n);return(i,o)=>{let s=e==n1||e==i,a=n==n1||n==o;return!s&&t&&"boolean"==typeof i&&(s=i?r1.has(e):o1.has(e)),!a&&r&&"boolean"==typeof o&&(a=o?r1.has(n):o1.has(n)),s&&a}}const PQ=new RegExp("s*:selfs*,?","g");function aI(e,n,t,r){return new LQ(e).build(n,t,r)}class LQ{constructor(n){this._driver=n}build(n,t,r){const i=new UQ(t);return this._resetContextStyleTimingState(i),Bo(this,Jg(n),i)}_resetContextStyleTimingState(n){n.currentQuerySelector="",n.collectedStyles=new Map,n.collectedStyles.set("",new Map),n.currentTime=0}visitTrigger(n,t){let r=t.queryCount=0,i=t.depCount=0;const o=[],s=[];return"@"==n.name.charAt(0)&&t.errors.push(function WZ(){return new se(3006,!1)}()),n.definitions.forEach(a=>{if(this._resetContextStyleTimingState(t),a.type==ut.State){const l=a,u=l.name;u.toString().split(/\s*,\s*/).forEach(f=>{l.name=f,o.push(this.visitState(l,t))}),l.name=u}else if(a.type==ut.Transition){const l=this.visitTransition(a,t);r+=l.queryCount,i+=l.depCount,s.push(l)}else t.errors.push(function GZ(){return new se(3007,!1)}())}),{type:ut.Trigger,name:n.name,states:o,transitions:s,queryCount:r,depCount:i,options:null}}visitState(n,t){const r=this.visitStyle(n.styles,t),i=n.options&&n.options.params||null;if(r.containsDynamicStyles){const o=new Set,s=i||{};r.styles.forEach(a=>{a instanceof Map&&a.forEach(l=>{c3(l).forEach(u=>{s.hasOwnProperty(u)||o.add(u)})})}),o.size&&t.errors.push(function qZ(){return new se(3008,!1)}(0,o.values()))}return{type:ut.State,name:n.name,style:r,options:i?{params:i}:null}}visitTransition(n,t){t.queryCount=0,t.depCount=0;const r=Bo(this,Jg(n.animation),t),i=function RQ(e,n){const t=[];return"string"==typeof e?e.split(/\s*,\s*/).forEach(r=>function OQ(e,n,t){if(":"==e[0]){const l=function NQ(e,n){switch(e){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(t,r)=>parseFloat(r)>parseFloat(t);case":decrement":return(t,r)=>parseFloat(r) *"}}(e,t);if("function"==typeof l)return void n.push(l);e=l}const r=e.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(null==r||r.length<4)return t.push(function nQ(){return new se(3015,!1)}()),n;const i=r[1],o=r[2],s=r[3];n.push(d3(i,s)),"<"==o[0]&&(i!=n1||s!=n1)&&n.push(d3(s,i))}(r,t,n)):t.push(e),t}(n.expr,t.errors);return{type:ut.Transition,matchers:i,animation:r,queryCount:t.queryCount,depCount:t.depCount,options:Gd(n.options)}}visitSequence(n,t){return{type:ut.Sequence,steps:n.steps.map(r=>Bo(this,r,t)),options:Gd(n.options)}}visitGroup(n,t){const r=t.currentTime;let i=0;const o=n.steps.map(s=>{t.currentTime=r;const a=Bo(this,s,t);return i=Math.max(i,t.currentTime),a});return t.currentTime=i,{type:ut.Group,steps:o,options:Gd(n.options)}}visitAnimate(n,t){const r=function jQ(e,n){if(e.hasOwnProperty("duration"))return e;if("number"==typeof e)return lI(t1(e,n).duration,0,"");const t=e;if(t.split(/\s+/).some(o=>"{"==o.charAt(0)&&"{"==o.charAt(1))){const o=lI(0,0,"");return o.dynamic=!0,o.strValue=t,o}const i=t1(t,n);return lI(i.duration,i.delay,i.easing)}(n.timings,t.errors);t.currentAnimateTimings=r;let i,o=n.styles?n.styles:vo({});if(o.type==ut.Keyframes)i=this.visitKeyframes(o,t);else{let s=n.styles,a=!1;if(!s){a=!0;const u={};r.easing&&(u.easing=r.easing),s=vo(u)}t.currentTime+=r.duration+r.delay;const l=this.visitStyle(s,t);l.isEmptyStep=a,i=l}return t.currentAnimateTimings=null,{type:ut.Animate,timings:r,style:i,options:null}}visitStyle(n,t){const r=this._makeStyleAst(n,t);return this._validateStyleAst(r,t),r}_makeStyleAst(n,t){const r=[],i=Array.isArray(n.styles)?n.styles:[n.styles];for(let a of i)"string"==typeof a?a===Rl?r.push(a):t.errors.push(new se(3002,!1)):r.push(new Map(Object.entries(a)));let o=!1,s=null;return r.forEach(a=>{if(a instanceof Map&&(a.has("easing")&&(s=a.get("easing"),a.delete("easing")),!o))for(let l of a.values())if(l.toString().indexOf("{{")>=0){o=!0;break}}),{type:ut.Style,styles:r,easing:s,offset:n.offset,containsDynamicStyles:o,options:null}}_validateStyleAst(n,t){const r=t.currentAnimateTimings;let i=t.currentTime,o=t.currentTime;r&&o>0&&(o-=r.duration+r.delay),n.styles.forEach(s=>{"string"!=typeof s&&s.forEach((a,l)=>{const u=t.collectedStyles.get(t.currentQuerySelector),f=u.get(l);let h=!0;f&&(o!=i&&o>=f.startTime&&i<=f.endTime&&(t.errors.push(function YZ(){return new se(3010,!1)}()),h=!1),o=f.startTime),h&&u.set(l,{startTime:o,endTime:i}),t.options&&function IQ(e,n,t){const r=n.params||{},i=c3(e);i.length&&i.forEach(o=>{r.hasOwnProperty(o)||t.push(function HZ(){return new se(3001,!1)}())})}(a,t.options,t.errors)})})}visitKeyframes(n,t){const r={type:ut.Keyframes,styles:[],options:null};if(!t.currentAnimateTimings)return t.errors.push(function KZ(){return new se(3011,!1)}()),r;let o=0;const s=[];let a=!1,l=!1,u=0;const f=n.steps.map(b=>{const w=this._makeStyleAst(b,t);let C=null!=w.offset?w.offset:function HQ(e){if("string"==typeof e)return null;let n=null;if(Array.isArray(e))e.forEach(t=>{if(t instanceof Map&&t.has("offset")){const r=t;n=parseFloat(r.get("offset")),r.delete("offset")}});else if(e instanceof Map&&e.has("offset")){const t=e;n=parseFloat(t.get("offset")),t.delete("offset")}return n}(w.styles),O=0;return null!=C&&(o++,O=w.offset=C),l=l||O<0||O>1,a=a||O0&&o{const C=m>0?w==g?1:m*w:s[w],O=C*x;t.currentTime=v+_.delay+O,_.duration=O,this._validateStyleAst(b,t),b.offset=C,r.styles.push(b)}),r}visitReference(n,t){return{type:ut.Reference,animation:Bo(this,Jg(n.animation),t),options:Gd(n.options)}}visitAnimateChild(n,t){return t.depCount++,{type:ut.AnimateChild,options:Gd(n.options)}}visitAnimateRef(n,t){return{type:ut.AnimateRef,animation:this.visitReference(n.animation,t),options:Gd(n.options)}}visitQuery(n,t){const r=t.currentQuerySelector,i=n.options||{};t.queryCount++,t.currentQuery=n;const[o,s]=function BQ(e){const n=!!e.split(/\s*,\s*/).find(t=>":self"==t);return n&&(e=e.replace(PQ,"")),e=e.replace(/@\*/g,e1).replace(/@\w+/g,t=>e1+"-"+t.slice(1)).replace(/:animating/g,nI),[e,n]}(n.selector);t.currentQuerySelector=r.length?r+" "+o:o,Lo(t.collectedStyles,t.currentQuerySelector,new Map);const a=Bo(this,Jg(n.animation),t);return t.currentQuery=null,t.currentQuerySelector=r,{type:ut.Query,selector:o,limit:i.limit||0,optional:!!i.optional,includeSelf:s,animation:a,originalSelector:n.selector,options:Gd(n.options)}}visitStagger(n,t){t.currentQuery||t.errors.push(function eQ(){return new se(3013,!1)}());const r="full"===n.timings?{duration:0,delay:0,easing:"full"}:t1(n.timings,t.errors,!0);return{type:ut.Stagger,animation:Bo(this,Jg(n.animation),t),timings:r,options:null}}}class UQ{constructor(n){this.errors=n,this.queryCount=0,this.depCount=0,this.currentTransition=null,this.currentQuery=null,this.currentQuerySelector=null,this.currentAnimateTimings=null,this.currentTime=0,this.collectedStyles=new Map,this.options=null,this.unsupportedCSSPropertiesFound=new Set}}function Gd(e){return e?(e={...e}).params&&(e.params=function VQ(e){return e?{...e}:null}(e.params)):e={},e}function lI(e,n,t){return{duration:e,delay:n,easing:t}}function cI(e,n,t,r,i,o,s=null,a=!1){return{type:1,element:e,keyframes:n,preStyleProps:t,postStyleProps:r,duration:i,delay:o,totalTime:i+o,easing:s,subTimeline:a}}class s1{constructor(){this._map=new Map}get(n){return this._map.get(n)||[]}append(n,t){let r=this._map.get(n);r||this._map.set(n,r=[]),r.push(...t)}has(n){return this._map.has(n)}clear(){this._map.clear()}}const WQ=new RegExp(":enter","g"),qQ=new RegExp(":leave","g");function uI(e,n,t,r,i,o=new Map,s=new Map,a,l,u=[]){return(new XQ).buildKeyframes(e,n,t,r,i,o,s,a,l,u)}class XQ{buildKeyframes(n,t,r,i,o,s,a,l,u,f=[]){u=u||new s1;const h=new dI(n,t,u,i,o,f,[]);h.options=l;const m=l.delay?Ol(l.delay):0;h.currentTimeline.delayNextStep(m),h.currentTimeline.setStyles([s],null,h.errors,l),Bo(this,r,h);const g=h.timelines.filter(v=>v.containsAnimation());if(g.length&&a.size){let v;for(let _=g.length-1;_>=0;_--){const x=g[_];if(x.element===t){v=x;break}}v&&!v.allowOnlyTimelineStyles()&&v.setStyles([a],null,h.errors,l)}return g.length?g.map(v=>v.buildKeyframes()):[cI(t,[],[],[],0,m,"",!1)]}visitTrigger(n,t){}visitState(n,t){}visitTransition(n,t){}visitAnimateChild(n,t){const r=t.subInstructions.get(t.element);if(r){const i=t.createSubContext(n.options),o=t.currentTimeline.currentTime,s=this._visitSubInstructions(r,i,i.options);o!=s&&t.transformIntoNewTimeline(s)}t.previousNode=n}visitAnimateRef(n,t){const r=t.createSubContext(n.options);r.transformIntoNewTimeline(),this._applyAnimationRefDelays([n.options,n.animation.options],t,r),this.visitReference(n.animation,r),t.transformIntoNewTimeline(r.currentTimeline.currentTime),t.previousNode=n}_applyAnimationRefDelays(n,t,r){for(const i of n){const o=i?.delay;if(o){const s="number"==typeof o?o:Ol(e_(o,i?.params??{},t.errors));r.delayNextStep(s)}}}_visitSubInstructions(n,t,r){let o=t.currentTimeline.currentTime;const s=null!=r.duration?Ol(r.duration):null,a=null!=r.delay?Ol(r.delay):null;return 0!==s&&n.forEach(l=>{const u=t.appendInstructionToTimeline(l,s,a);o=Math.max(o,u.duration+u.delay)}),o}visitReference(n,t){t.updateOptions(n.options,!0),Bo(this,n.animation,t),t.previousNode=n}visitSequence(n,t){const r=t.subContextCount;let i=t;const o=n.options;if(o&&(o.params||o.delay)&&(i=t.createSubContext(o),i.transformIntoNewTimeline(),null!=o.delay)){i.previousNode.type==ut.Style&&(i.currentTimeline.snapshotCurrentStyles(),i.previousNode=a1);const s=Ol(o.delay);i.delayNextStep(s)}n.steps.length&&(n.steps.forEach(s=>Bo(this,s,i)),i.currentTimeline.applyStylesToKeyframe(),i.subContextCount>r&&i.transformIntoNewTimeline()),t.previousNode=n}visitGroup(n,t){const r=[];let i=t.currentTimeline.currentTime;const o=n.options&&n.options.delay?Ol(n.options.delay):0;n.steps.forEach(s=>{const a=t.createSubContext(n.options);o&&a.delayNextStep(o),Bo(this,s,a),i=Math.max(i,a.currentTimeline.currentTime),r.push(a.currentTimeline)}),r.forEach(s=>t.currentTimeline.mergeTimelineCollectedStyles(s)),t.transformIntoNewTimeline(i),t.previousNode=n}_visitTiming(n,t){if(n.dynamic){const r=n.strValue;return t1(t.params?e_(r,t.params,t.errors):r,t.errors)}return{duration:n.duration,delay:n.delay,easing:n.easing}}visitAnimate(n,t){const r=t.currentAnimateTimings=this._visitTiming(n.timings,t),i=t.currentTimeline;r.delay&&(t.incrementTime(r.delay),i.snapshotCurrentStyles());const o=n.style;o.type==ut.Keyframes?this.visitKeyframes(o,t):(t.incrementTime(r.duration),this.visitStyle(o,t),i.applyStylesToKeyframe()),t.currentAnimateTimings=null,t.previousNode=n}visitStyle(n,t){const r=t.currentTimeline,i=t.currentAnimateTimings;!i&&r.hasCurrentStyleProperties()&&r.forwardFrame();const o=i&&i.easing||n.easing;n.isEmptyStep?r.applyEmptyStep(o):r.setStyles(n.styles,o,t.errors,t.options),t.previousNode=n}visitKeyframes(n,t){const r=t.currentAnimateTimings,i=t.currentTimeline.duration,o=r.duration,a=t.createSubContext().currentTimeline;a.easing=r.easing,n.styles.forEach(l=>{a.forwardTime((l.offset||0)*o),a.setStyles(l.styles,l.easing,t.errors,t.options),a.applyStylesToKeyframe()}),t.currentTimeline.mergeTimelineCollectedStyles(a),t.transformIntoNewTimeline(i+o),t.previousNode=n}visitQuery(n,t){const r=t.currentTimeline.currentTime,i=n.options||{},o=i.delay?Ol(i.delay):0;o&&(t.previousNode.type===ut.Style||0==r&&t.currentTimeline.hasCurrentStyleProperties())&&(t.currentTimeline.snapshotCurrentStyles(),t.previousNode=a1);let s=r;const a=t.invokeQuery(n.selector,n.originalSelector,n.limit,n.includeSelf,!!i.optional,t.errors);t.currentQueryTotal=a.length;let l=null;a.forEach((u,f)=>{t.currentQueryIndex=f;const h=t.createSubContext(n.options,u);o&&h.delayNextStep(o),u===t.element&&(l=h.currentTimeline),Bo(this,n.animation,h),h.currentTimeline.applyStylesToKeyframe(),s=Math.max(s,h.currentTimeline.currentTime)}),t.currentQueryIndex=0,t.currentQueryTotal=0,t.transformIntoNewTimeline(s),l&&(t.currentTimeline.mergeTimelineCollectedStyles(l),t.currentTimeline.snapshotCurrentStyles()),t.previousNode=n}visitStagger(n,t){const r=t.parentContext,i=t.currentTimeline,o=n.timings,s=Math.abs(o.duration),a=s*(t.currentQueryTotal-1);let l=s*t.currentQueryIndex;switch(o.duration<0?"reverse":o.easing){case"reverse":l=a-l;break;case"full":l=r.currentStaggerTime}const f=t.currentTimeline;l&&f.delayNextStep(l);const h=f.currentTime;Bo(this,n.animation,t),t.previousNode=n,r.currentStaggerTime=i.currentTime-h+(i.startTime-r.currentTimeline.startTime)}}const a1={};class dI{constructor(n,t,r,i,o,s,a,l){this._driver=n,this.element=t,this.subInstructions=r,this._enterClassName=i,this._leaveClassName=o,this.errors=s,this.timelines=a,this.parentContext=null,this.currentAnimateTimings=null,this.previousNode=a1,this.subContextCount=0,this.options={},this.currentQueryIndex=0,this.currentQueryTotal=0,this.currentStaggerTime=0,this.currentTimeline=l||new l1(this._driver,t,0),a.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(n,t){if(!n)return;const r=n;let i=this.options;null!=r.duration&&(i.duration=Ol(r.duration)),null!=r.delay&&(i.delay=Ol(r.delay));const o=r.params;if(o){let s=i.params;s||(s=this.options.params={}),Object.keys(o).forEach(a=>{(!t||!s.hasOwnProperty(a))&&(s[a]=e_(o[a],s,this.errors))})}}_copyOptions(){const n={};if(this.options){const t=this.options.params;if(t){const r=n.params={};Object.keys(t).forEach(i=>{r[i]=t[i]})}}return n}createSubContext(n=null,t,r){const i=t||this.element,o=new dI(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(n),o.currentQueryIndex=this.currentQueryIndex,o.currentQueryTotal=this.currentQueryTotal,o.parentContext=this,this.subContextCount++,o}transformIntoNewTimeline(n){return this.previousNode=a1,this.currentTimeline=this.currentTimeline.fork(this.element,n),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(n,t,r){const i={duration:t??n.duration,delay:this.currentTimeline.currentTime+(r??0)+n.delay,easing:""},o=new YQ(this._driver,n.element,n.keyframes,n.preStyleProps,n.postStyleProps,i,n.stretchStartingKeyframe);return this.timelines.push(o),i}incrementTime(n){this.currentTimeline.forwardTime(this.currentTimeline.duration+n)}delayNextStep(n){n>0&&this.currentTimeline.delayNextStep(n)}invokeQuery(n,t,r,i,o,s){let a=[];if(i&&a.push(this.element),n.length>0){n=(n=n.replace(WQ,"."+this._enterClassName)).replace(qQ,"."+this._leaveClassName);let u=this._driver.query(this.element,n,1!=r);0!==r&&(u=r<0?u.slice(u.length+r,u.length):u.slice(0,r)),a.push(...u)}return!o&&0==a.length&&s.push(function tQ(){return new se(3014,!1)}()),a}}class l1{constructor(n,t,r,i){this._driver=n,this.element=t,this.startTime=r,this._elementTimelineStylesLookup=i,this.duration=0,this.easing=null,this._previousKeyframe=new Map,this._currentKeyframe=new Map,this._keyframes=new Map,this._styleSummary=new Map,this._localTimelineStyles=new Map,this._pendingStyles=new Map,this._backFill=new Map,this._currentEmptyStepKeyframe=null,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(t),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(t,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.hasCurrentStyleProperties();default:return!0}}hasCurrentStyleProperties(){return this._currentKeyframe.size>0}get currentTime(){return this.startTime+this.duration}delayNextStep(n){const t=1===this._keyframes.size&&this._pendingStyles.size;this.duration||t?(this.forwardTime(this.currentTime+n),t&&this.snapshotCurrentStyles()):this.startTime+=n}fork(n,t){return this.applyStylesToKeyframe(),new l1(this._driver,n,t||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=new Map,this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=1,this._loadKeyframe()}forwardTime(n){this.applyStylesToKeyframe(),this.duration=n,this._loadKeyframe()}_updateStyle(n,t){this._localTimelineStyles.set(n,t),this._globalTimelineStyles.set(n,t),this._styleSummary.set(n,{time:this.currentTime,value:t})}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(n){n&&this._previousKeyframe.set("easing",n);for(let[t,r]of this._globalTimelineStyles)this._backFill.set(t,r||Rl),this._currentKeyframe.set(t,Rl);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(n,t,r,i){t&&this._previousKeyframe.set("easing",t);const o=i&&i.params||{},s=function KQ(e,n){const t=new Map;let r;return e.forEach(i=>{if("*"===i){r??=n.keys();for(let o of r)t.set(o,Rl)}else for(let[o,s]of i)t.set(o,s)}),t}(n,this._globalTimelineStyles);for(let[a,l]of s){const u=e_(l,o,r);this._pendingStyles.set(a,u),this._localTimelineStyles.has(a)||this._backFill.set(a,this._globalTimelineStyles.get(a)??Rl),this._updateStyle(a,u)}}applyStylesToKeyframe(){0!=this._pendingStyles.size&&(this._pendingStyles.forEach((n,t)=>{this._currentKeyframe.set(t,n)}),this._pendingStyles.clear(),this._localTimelineStyles.forEach((n,t)=>{this._currentKeyframe.has(t)||this._currentKeyframe.set(t,n)}))}snapshotCurrentStyles(){for(let[n,t]of this._localTimelineStyles)this._pendingStyles.set(n,t),this._updateStyle(n,t)}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){const n=[];for(let t in this._currentKeyframe)n.push(t);return n}mergeTimelineCollectedStyles(n){n._styleSummary.forEach((t,r)=>{const i=this._styleSummary.get(r);(!i||t.time>i.time)&&this._updateStyle(r,t.value)})}buildKeyframes(){this.applyStylesToKeyframe();const n=new Set,t=new Set,r=1===this._keyframes.size&&0===this.duration;let i=[];this._keyframes.forEach((a,l)=>{const u=new Map([...this._backFill,...a]);u.forEach((f,h)=>{"!"===f?n.add(h):f===Rl&&t.add(h)}),r||u.set("offset",l/this.duration),i.push(u)});const o=[...n.values()],s=[...t.values()];if(r){const a=i[0],l=new Map(a);a.set("offset",0),l.set("offset",1),i=[a,l]}return cI(this.element,i,o,s,this.duration,this.startTime,this.easing,!1)}}class YQ extends l1{constructor(n,t,r,i,o,s,a=!1){super(n,t,s.delay),this.keyframes=r,this.preStyleProps=i,this.postStyleProps=o,this._stretchStartingKeyframe=a,this.timings={duration:s.duration,delay:s.delay,easing:s.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let n=this.keyframes,{delay:t,duration:r,easing:i}=this.timings;if(this._stretchStartingKeyframe&&t){const o=[],s=r+t,a=t/s,l=new Map(n[0]);l.set("offset",0),o.push(l);const u=new Map(n[0]);u.set("offset",p3(a)),o.push(u);const f=n.length-1;for(let h=1;h<=f;h++){let m=new Map(n[h]);const g=m.get("offset");m.set("offset",p3((t+g*r)/s)),o.push(m)}r=s,t=0,i="",n=o}return cI(this.element,n,this.preStyleProps,this.postStyleProps,r,t,i,!0)}}function p3(e,n=3){const t=Math.pow(10,n-1);return Math.round(e*t)/t}function m3(e,n,t,r,i,o,s,a,l,u,f,h,m){return{type:0,element:e,triggerName:n,isRemovalTransition:i,fromState:t,fromStyles:o,toState:r,toStyles:s,timelines:a,queriedElements:l,preStyleProps:u,postStyleProps:f,totalTime:h,errors:m}}const fI={};class g3{constructor(n,t,r){this._triggerName=n,this.ast=t,this._stateStyles=r}match(n,t,r,i){return function ZQ(e,n,t,r,i){return e.some(o=>o(n,t,r,i))}(this.ast.matchers,n,t,r,i)}buildStyles(n,t,r){let i=this._stateStyles.get("*");return void 0!==n&&(i=this._stateStyles.get(n?.toString())||i),i?i.buildStyles(t,r):new Map}build(n,t,r,i,o,s,a,l,u,f){const h=[],m=this.ast.options&&this.ast.options.params||fI,v=this.buildStyles(r,a&&a.params||fI,h),_=l&&l.params||fI,x=this.buildStyles(i,_,h),b=new Set,w=new Map,C=new Map,O="void"===i,z={params:_3(_,m),delay:this.ast.options?.delay},U=f?[]:uI(n,t,this.ast.animation,o,s,v,x,z,u,h);let A=0;return U.forEach(q=>{A=Math.max(q.duration+q.delay,A)}),h.length?m3(t,this._triggerName,r,i,O,v,x,[],[],w,C,A,h):(U.forEach(q=>{const G=q.element,ee=Lo(w,G,new Set);q.preStyleProps.forEach(Y=>ee.add(Y));const ie=Lo(C,G,new Set);q.postStyleProps.forEach(Y=>ie.add(Y)),G!==t&&b.add(G)}),m3(t,this._triggerName,r,i,O,v,x,U,[...b.values()],w,C,A))}}function _3(e,n){const t={...n};return Object.entries(e).forEach(([r,i])=>{null!=i&&(t[r]=i)}),t}class QQ{constructor(n,t,r){this.styles=n,this.defaultParams=t,this.normalizer=r}buildStyles(n,t){const r=new Map,i=_3(n,this.defaultParams);return this.styles.styles.forEach(o=>{"string"!=typeof o&&o.forEach((s,a)=>{s&&(s=e_(s,i,t));const l=this.normalizer.normalizePropertyName(a,t);s=this.normalizer.normalizeStyleValue(a,l,s,t),r.set(a,s)})}),r}}class eJ{constructor(n,t,r){this.name=n,this.ast=t,this._normalizer=r,this.transitionFactories=[],this.states=new Map,t.states.forEach(i=>{this.states.set(i.name,new QQ(i.style,i.options&&i.options.params||{},r))}),v3(this.states,"true","1"),v3(this.states,"false","0"),t.transitions.forEach(i=>{this.transitionFactories.push(new g3(n,i,this.states))}),this.fallbackTransition=function tJ(e,n){return new g3(e,{type:ut.Transition,animation:{type:ut.Sequence,steps:[],options:null},matchers:[(s,a)=>!0],options:null,queryCount:0,depCount:0},n)}(n,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(n,t,r,i){return this.transitionFactories.find(s=>s.match(n,t,r,i))||null}matchStyles(n,t,r){return this.fallbackTransition.buildStyles(n,t,r)}}function v3(e,n,t){e.has(n)?e.has(t)||e.set(t,e.get(n)):e.has(t)&&e.set(n,e.get(t))}const nJ=new s1;class rJ{constructor(n,t,r){this.bodyNode=n,this._driver=t,this._normalizer=r,this._animations=new Map,this._playersById=new Map,this.players=[]}register(n,t){const r=[],o=aI(this._driver,t,r,[]);if(r.length)throw function lQ(){return new se(3503,!1)}();this._animations.set(n,o)}_buildPlayer(n,t,r){const i=n.element,o=e3(this._normalizer,n.keyframes,t,r);return this._driver.animate(i,o,n.duration,n.delay,n.easing,[],!0)}create(n,t,r={}){const i=[],o=this._animations.get(n);let s;const a=new Map;if(o?(s=uI(this._driver,t,o,tI,Qb,new Map,new Map,r,nJ,i),s.forEach(f=>{const h=Lo(a,f.element,new Map);f.postStyleProps.forEach(m=>h.set(m,null))})):(i.push(function cQ(){return new se(3300,!1)}()),s=[]),i.length)throw function uQ(){return new se(3504,!1)}();a.forEach((f,h)=>{f.forEach((m,g)=>{f.set(g,this._driver.computeStyle(h,g,Rl))})});const u=Jc(s.map(f=>{const h=a.get(f.element);return this._buildPlayer(f,new Map,h)}));return this._playersById.set(n,u),u.onDestroy(()=>this.destroy(n)),this.players.push(u),u}destroy(n){const t=this._getPlayer(n);t.destroy(),this._playersById.delete(n);const r=this.players.indexOf(t);r>=0&&this.players.splice(r,1)}_getPlayer(n){const t=this._playersById.get(n);if(!t)throw function dQ(){return new se(3301,!1)}();return t}listen(n,t,r,i){const o=KS(t,"","","");return XS(this._getPlayer(n),r,o,i),()=>{}}command(n,t,r,i){if("register"==r)return void this.register(n,i[0]);if("create"==r)return void this.create(n,t,i[0]||{});const o=this._getPlayer(n);switch(r){case"play":o.play();break;case"pause":o.pause();break;case"reset":o.reset();break;case"restart":o.restart();break;case"finish":o.finish();break;case"init":o.init();break;case"setPosition":o.setPosition(parseFloat(i[0]));break;case"destroy":this.destroy(n)}}}const y3="ng-animate-queued",hI="ng-animate-disabled",lJ=[],x3={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},cJ={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},ua="__ng_removed";class pI{get params(){return this.options.params}constructor(n,t=""){this.namespaceId=t;const r=n&&n.hasOwnProperty("value");if(this.value=function hJ(e){return e??null}(r?n.value:n),r){const{value:o,...s}=n;this.options=s}else this.options={};this.options.params||(this.options.params={})}absorbOptions(n){const t=n.params;if(t){const r=this.options.params;Object.keys(t).forEach(i=>{null==r[i]&&(r[i]=t[i])})}}}const t_="void",mI=new pI(t_);class uJ{constructor(n,t,r){this.id=n,this.hostElement=t,this._engine=r,this.players=[],this._triggers=new Map,this._queue=[],this._elementListeners=new Map,this._hostClassName="ng-tns-"+n,bs(t,this._hostClassName)}listen(n,t,r,i){if(!this._triggers.has(t))throw function fQ(){return new se(3302,!1)}();if(null==r||0==r.length)throw function hQ(){return new se(3303,!1)}();if(!function pJ(e){return"start"==e||"done"==e}(r))throw function pQ(){return new se(3400,!1)}();const o=Lo(this._elementListeners,n,[]),s={name:t,phase:r,callback:i};o.push(s);const a=Lo(this._engine.statesByElement,n,new Map);return a.has(t)||(bs(n,Jb),bs(n,Jb+"-"+t),a.set(t,mI)),()=>{this._engine.afterFlush(()=>{const l=o.indexOf(s);l>=0&&o.splice(l,1),this._triggers.has(t)||a.delete(t)})}}register(n,t){return!this._triggers.has(n)&&(this._triggers.set(n,t),!0)}_getTrigger(n){const t=this._triggers.get(n);if(!t)throw function mQ(){return new se(3401,!1)}();return t}trigger(n,t,r,i=!0){const o=this._getTrigger(t),s=new gI(this.id,t,n);let a=this._engine.statesByElement.get(n);a||(bs(n,Jb),bs(n,Jb+"-"+t),this._engine.statesByElement.set(n,a=new Map));let l=a.get(t);const u=new pI(r,this.id);if(!(r&&r.hasOwnProperty("value"))&&l&&u.absorbOptions(l.options),a.set(t,u),l||(l=mI),u.value!==t_&&l.value===u.value){if(!function _J(e,n){const t=Object.keys(e),r=Object.keys(n);if(t.length!=r.length)return!1;for(let i=0;i{Wd(n,x),La(n,b)})}return}const m=Lo(this._engine.playersByElement,n,[]);m.forEach(_=>{_.namespaceId==this.id&&_.triggerName==t&&_.queued&&_.destroy()});let g=o.matchTransition(l.value,u.value,n,u.params),v=!1;if(!g){if(!i)return;g=o.fallbackTransition,v=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:n,triggerName:t,transition:g,fromState:l,toState:u,player:s,isFallbackTransition:v}),v||(bs(n,y3),s.onStart(()=>{Dp(n,y3)})),s.onDone(()=>{let _=this.players.indexOf(s);_>=0&&this.players.splice(_,1);const x=this._engine.playersByElement.get(n);if(x){let b=x.indexOf(s);b>=0&&x.splice(b,1)}}),this.players.push(s),m.push(s),s}deregister(n){this._triggers.delete(n),this._engine.statesByElement.forEach(t=>t.delete(n)),this._elementListeners.forEach((t,r)=>{this._elementListeners.set(r,t.filter(i=>i.name!=n))})}clearElementCache(n){this._engine.statesByElement.delete(n),this._elementListeners.delete(n);const t=this._engine.playersByElement.get(n);t&&(t.forEach(r=>r.destroy()),this._engine.playersByElement.delete(n))}_signalRemovalForInnerTriggers(n,t){const r=this._engine.driver.query(n,e1,!0);r.forEach(i=>{if(i[ua])return;const o=this._engine.fetchNamespacesByElement(i);o.size?o.forEach(s=>s.triggerLeaveAnimation(i,t,!1,!0)):this.clearElementCache(i)}),this._engine.afterFlushAnimationsDone(()=>r.forEach(i=>this.clearElementCache(i)))}triggerLeaveAnimation(n,t,r,i){const o=this._engine.statesByElement.get(n),s=new Map;if(o){const a=[];if(o.forEach((l,u)=>{if(s.set(u,l.value),this._triggers.has(u)){const f=this.trigger(n,u,t_,i);f&&a.push(f)}}),a.length)return this._engine.markElementAsRemoved(this.id,n,!0,t,s),r&&Jc(a).onDone(()=>this._engine.processLeaveNode(n)),!0}return!1}prepareLeaveAnimationListeners(n){const t=this._elementListeners.get(n),r=this._engine.statesByElement.get(n);if(t&&r){const i=new Set;t.forEach(o=>{const s=o.name;if(i.has(s))return;i.add(s);const l=this._triggers.get(s).fallbackTransition,u=r.get(s)||mI,f=new pI(t_),h=new gI(this.id,s,n);this._engine.totalQueuedPlayers++,this._queue.push({element:n,triggerName:s,transition:l,fromState:u,toState:f,player:h,isFallbackTransition:!0})})}}removeNode(n,t){const r=this._engine;if(n.childElementCount&&this._signalRemovalForInnerTriggers(n,t),this.triggerLeaveAnimation(n,t,!0))return;let i=!1;if(r.totalAnimations){const o=r.players.length?r.playersByQueriedElement.get(n):[];if(o&&o.length)i=!0;else{let s=n;for(;s=s.parentNode;)if(r.statesByElement.get(s)){i=!0;break}}}if(this.prepareLeaveAnimationListeners(n),i)r.markElementAsRemoved(this.id,n,!1,t);else{const o=n[ua];(!o||o===x3)&&(r.afterFlush(()=>this.clearElementCache(n)),r.destroyInnerAnimations(n),r._onRemovalComplete(n,t))}}insertNode(n,t){bs(n,this._hostClassName)}drainQueuedTransitions(n){const t=[];return this._queue.forEach(r=>{const i=r.player;if(i.destroyed)return;const o=r.element,s=this._elementListeners.get(o);s&&s.forEach(a=>{if(a.name==r.triggerName){const l=KS(o,r.triggerName,r.fromState.value,r.toState.value);l._data=n,XS(r.player,a.phase,l,a.callback)}}),i.markedForDestroy?this._engine.afterFlush(()=>{i.destroy()}):t.push(r)}),this._queue=[],t.sort((r,i)=>{const o=r.transition.ast.depCount,s=i.transition.ast.depCount;return 0==o||0==s?o-s:this._engine.driver.containsElement(r.element,i.element)?1:-1})}destroy(n){this.players.forEach(t=>t.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,n)}}class dJ{_onRemovalComplete(n,t){this.onRemovalComplete(n,t)}constructor(n,t,r){this.bodyNode=n,this.driver=t,this._normalizer=r,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=(i,o)=>{}}get queuedPlayers(){const n=[];return this._namespaceList.forEach(t=>{t.players.forEach(r=>{r.queued&&n.push(r)})}),n}createNamespace(n,t){const r=new uJ(n,t,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,t)?this._balanceNamespaceList(r,t):(this.newHostElements.set(t,r),this.collectEnterElement(t)),this._namespaceLookup[n]=r}_balanceNamespaceList(n,t){const r=this._namespaceList,i=this.namespacesByHostElement;if(r.length-1>=0){let s=!1,a=this.driver.getParentElement(t);for(;a;){const l=i.get(a);if(l){const u=r.indexOf(l);r.splice(u+1,0,n),s=!0;break}a=this.driver.getParentElement(a)}s||r.unshift(n)}else r.push(n);return i.set(t,n),n}register(n,t){let r=this._namespaceLookup[n];return r||(r=this.createNamespace(n,t)),r}registerTrigger(n,t,r){let i=this._namespaceLookup[n];i&&i.register(t,r)&&this.totalAnimations++}destroy(n,t){n&&(this.afterFlush(()=>{}),this.afterFlushAnimationsDone(()=>{const r=this._fetchNamespace(n);this.namespacesByHostElement.delete(r.hostElement);const i=this._namespaceList.indexOf(r);i>=0&&this._namespaceList.splice(i,1),r.destroy(t),delete this._namespaceLookup[n]}))}_fetchNamespace(n){return this._namespaceLookup[n]}fetchNamespacesByElement(n){const t=new Set,r=this.statesByElement.get(n);if(r)for(let i of r.values())if(i.namespaceId){const o=this._fetchNamespace(i.namespaceId);o&&t.add(o)}return t}trigger(n,t,r,i){if(c1(t)){const o=this._fetchNamespace(n);if(o)return o.trigger(t,r,i),!0}return!1}insertNode(n,t,r,i){if(!c1(t))return;const o=t[ua];if(o&&o.setForRemoval){o.setForRemoval=!1,o.setForMove=!0;const s=this.collectedLeaveElements.indexOf(t);s>=0&&this.collectedLeaveElements.splice(s,1)}if(n){const s=this._fetchNamespace(n);s&&s.insertNode(t,r)}i&&this.collectEnterElement(t)}collectEnterElement(n){this.collectedEnterElements.push(n)}markElementAsDisabled(n,t){t?this.disabledNodes.has(n)||(this.disabledNodes.add(n),bs(n,hI)):this.disabledNodes.has(n)&&(this.disabledNodes.delete(n),Dp(n,hI))}removeNode(n,t,r){if(c1(t)){const i=n?this._fetchNamespace(n):null;i?i.removeNode(t,r):this.markElementAsRemoved(n,t,!1,r);const o=this.namespacesByHostElement.get(t);o&&o.id!==n&&o.removeNode(t,r)}else this._onRemovalComplete(t,r)}markElementAsRemoved(n,t,r,i,o){this.collectedLeaveElements.push(t),t[ua]={namespaceId:n,setForRemoval:i,hasAnimation:r,removedBeforeQueried:!1,previousTriggersValues:o}}listen(n,t,r,i,o){return c1(t)?this._fetchNamespace(n).listen(t,r,i,o):()=>{}}_buildInstruction(n,t,r,i,o){return n.transition.build(this.driver,n.element,n.fromState.value,n.toState.value,r,i,n.fromState.options,n.toState.options,t,o)}destroyInnerAnimations(n){let t=this.driver.query(n,e1,!0);t.forEach(r=>this.destroyActiveAnimationsForElement(r)),0!=this.playersByQueriedElement.size&&(t=this.driver.query(n,nI,!0),t.forEach(r=>this.finishActiveQueriedAnimationOnElement(r)))}destroyActiveAnimationsForElement(n){const t=this.playersByElement.get(n);t&&t.forEach(r=>{r.queued?r.markedForDestroy=!0:r.destroy()})}finishActiveQueriedAnimationOnElement(n){const t=this.playersByQueriedElement.get(n);t&&t.forEach(r=>r.finish())}whenRenderingDone(){return new Promise(n=>{if(this.players.length)return Jc(this.players).onDone(()=>n());n()})}processLeaveNode(n){const t=n[ua];if(t&&t.setForRemoval){if(n[ua]=x3,t.namespaceId){this.destroyInnerAnimations(n);const r=this._fetchNamespace(t.namespaceId);r&&r.clearElementCache(n)}this._onRemovalComplete(n,t.setForRemoval)}n.classList?.contains(hI)&&this.markElementAsDisabled(n,!1),this.driver.query(n,".ng-animate-disabled",!0).forEach(r=>{this.markElementAsDisabled(r,!1)})}flush(n=-1){let t=[];if(this.newHostElements.size&&(this.newHostElements.forEach((r,i)=>this._balanceNamespaceList(r,i)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let r=0;rr()),this._flushFns=[],this._whenQuietFns.length){const r=this._whenQuietFns;this._whenQuietFns=[],t.length?Jc(t).onDone(()=>{r.forEach(i=>i())}):r.forEach(i=>i())}}reportError(n){throw function gQ(){return new se(3402,!1)}()}_flushAnimations(n,t){const r=new s1,i=[],o=new Map,s=[],a=new Map,l=new Map,u=new Map,f=new Set;this.disabledNodes.forEach(he=>{f.add(he);const pe=this.driver.query(he,".ng-animate-queued",!0);for(let ke=0;ke{const ke=tI+_++;v.set(pe,ke),he.forEach(ve=>bs(ve,ke))});const x=[],b=new Set,w=new Set;for(let he=0;heb.add(ve)):w.add(pe))}const C=new Map,O=E3(m,Array.from(b));O.forEach((he,pe)=>{const ke=Qb+_++;C.set(pe,ke),he.forEach(ve=>bs(ve,ke))}),n.push(()=>{g.forEach((he,pe)=>{const ke=v.get(pe);he.forEach(ve=>Dp(ve,ke))}),O.forEach((he,pe)=>{const ke=C.get(pe);he.forEach(ve=>Dp(ve,ke))}),x.forEach(he=>{this.processLeaveNode(he)})});const z=[],U=[];for(let he=this._namespaceList.length-1;he>=0;he--)this._namespaceList[he].drainQueuedTransitions(t).forEach(ke=>{const ve=ke.player,Ne=ke.element;if(z.push(ve),this.collectedEnterElements.length){const Ee=Ne[ua];if(Ee&&Ee.setForMove){if(Ee.previousTriggersValues&&Ee.previousTriggersValues.has(ke.triggerName)){const Ce=Ee.previousTriggersValues.get(ke.triggerName),we=this.statesByElement.get(ke.element);if(we&&we.has(ke.triggerName)){const _e=we.get(ke.triggerName);_e.value=Ce,we.set(ke.triggerName,_e)}}return void ve.destroy()}}const de=!h||!this.driver.containsElement(h,Ne),P=C.get(Ne),K=v.get(Ne),V=this._buildInstruction(ke,r,K,P,de);if(V.errors&&V.errors.length)return void U.push(V);if(de)return ve.onStart(()=>Wd(Ne,V.fromStyles)),ve.onDestroy(()=>La(Ne,V.toStyles)),void i.push(ve);if(ke.isFallbackTransition)return ve.onStart(()=>Wd(Ne,V.fromStyles)),ve.onDestroy(()=>La(Ne,V.toStyles)),void i.push(ve);const H=[];V.timelines.forEach(Ee=>{Ee.stretchStartingKeyframe=!0,this.disabledNodes.has(Ee.element)||H.push(Ee)}),V.timelines=H,r.append(Ne,V.timelines),s.push({instruction:V,player:ve,element:Ne}),V.queriedElements.forEach(Ee=>Lo(a,Ee,[]).push(ve)),V.preStyleProps.forEach((Ee,Ce)=>{if(Ee.size){let we=l.get(Ce);we||l.set(Ce,we=new Set),Ee.forEach((_e,pt)=>we.add(pt))}}),V.postStyleProps.forEach((Ee,Ce)=>{let we=u.get(Ce);we||u.set(Ce,we=new Set),Ee.forEach((_e,pt)=>we.add(pt))})});if(U.length){const he=[];U.forEach(pe=>{he.push(function _Q(){return new se(3505,!1)}())}),z.forEach(pe=>pe.destroy()),this.reportError(he)}const A=new Map,q=new Map;s.forEach(he=>{const pe=he.element;r.has(pe)&&(q.set(pe,pe),this._beforeAnimationBuild(he.player.namespaceId,he.instruction,A))}),i.forEach(he=>{const pe=he.element;this._getPreviousPlayers(pe,!1,he.namespaceId,he.triggerName,null).forEach(ve=>{Lo(A,pe,[]).push(ve),ve.destroy()})});const G=x.filter(he=>T3(he,l,u)),ee=new Map;w3(ee,this.driver,w,u,Rl).forEach(he=>{T3(he,l,u)&&G.push(he)});const Y=new Map;g.forEach((he,pe)=>{w3(Y,this.driver,new Set(he),l,"!")}),G.forEach(he=>{const pe=ee.get(he),ke=Y.get(he);ee.set(he,new Map([...pe?.entries()??[],...ke?.entries()??[]]))});const Ie=[],Ue=[],Ae={};s.forEach(he=>{const{element:pe,player:ke,instruction:ve}=he;if(r.has(pe)){if(f.has(pe))return ke.onDestroy(()=>La(pe,ve.toStyles)),ke.disabled=!0,ke.overrideTotalTime(ve.totalTime),void i.push(ke);let Ne=Ae;if(q.size>1){let P=pe;const K=[];for(;P=P.parentNode;){const V=q.get(P);if(V){Ne=V;break}K.push(P)}K.forEach(V=>q.set(V,Ne))}const de=this._buildAnimation(ke.namespaceId,ve,A,o,Y,ee);if(ke.setRealPlayer(de),Ne===Ae)Ie.push(ke);else{const P=this.playersByElement.get(Ne);P&&P.length&&(ke.parentPlayer=Jc(P)),i.push(ke)}}else Wd(pe,ve.fromStyles),ke.onDestroy(()=>La(pe,ve.toStyles)),Ue.push(ke),f.has(pe)&&i.push(ke)}),Ue.forEach(he=>{const pe=o.get(he.element);if(pe&&pe.length){const ke=Jc(pe);he.setRealPlayer(ke)}}),i.forEach(he=>{he.parentPlayer?he.syncPlayerEvents(he.parentPlayer):he.destroy()});for(let he=0;he!de.destroyed);Ne.length?mJ(this,pe,Ne):this.processLeaveNode(pe)}return x.length=0,Ie.forEach(he=>{this.players.push(he),he.onDone(()=>{he.destroy();const pe=this.players.indexOf(he);this.players.splice(pe,1)}),he.play()}),Ie}afterFlush(n){this._flushFns.push(n)}afterFlushAnimationsDone(n){this._whenQuietFns.push(n)}_getPreviousPlayers(n,t,r,i,o){let s=[];if(t){const a=this.playersByQueriedElement.get(n);a&&(s=a)}else{const a=this.playersByElement.get(n);if(a){const l=!o||o==t_;a.forEach(u=>{u.queued||!l&&u.triggerName!=i||s.push(u)})}}return(r||i)&&(s=s.filter(a=>!(r&&r!=a.namespaceId||i&&i!=a.triggerName))),s}_beforeAnimationBuild(n,t,r){const o=t.element,s=t.isRemovalTransition?void 0:n,a=t.isRemovalTransition?void 0:t.triggerName;for(const l of t.timelines){const u=l.element,f=u!==o,h=Lo(r,u,[]);this._getPreviousPlayers(u,f,s,a,t.toState).forEach(g=>{const v=g.getRealPlayer();v.beforeDestroy&&v.beforeDestroy(),g.destroy(),h.push(g)})}Wd(o,t.fromStyles)}_buildAnimation(n,t,r,i,o,s){const a=t.triggerName,l=t.element,u=[],f=new Set,h=new Set,m=t.timelines.map(v=>{const _=v.element;f.add(_);const x=_[ua];if(x&&x.removedBeforeQueried)return new Qg(v.duration,v.delay);const b=_!==l,w=function gJ(e){const n=[];return C3(e,n),n}((r.get(_)||lJ).map(A=>A.getRealPlayer())).filter(A=>!!A.element&&A.element===_),C=o.get(_),O=s.get(_),z=e3(this._normalizer,v.keyframes,C,O),U=this._buildPlayer(v,z,w);if(v.subTimeline&&i&&h.add(_),b){const A=new gI(n,a,_);A.setRealPlayer(U),u.push(A)}return U});u.forEach(v=>{Lo(this.playersByQueriedElement,v.element,[]).push(v),v.onDone(()=>function fJ(e,n,t){let r=e.get(n);if(r){if(r.length){const i=r.indexOf(t);r.splice(i,1)}0==r.length&&e.delete(n)}return r}(this.playersByQueriedElement,v.element,v))}),f.forEach(v=>bs(v,a3));const g=Jc(m);return g.onDestroy(()=>{f.forEach(v=>Dp(v,a3)),La(l,t.toStyles)}),h.forEach(v=>{Lo(i,v,[]).push(g)}),g}_buildPlayer(n,t,r){return t.length>0?this.driver.animate(n.element,t,n.duration,n.delay,n.easing,r):new Qg(n.duration,n.delay)}}class gI{constructor(n,t,r){this.namespaceId=n,this.triggerName=t,this.element=r,this._player=new Qg,this._containsRealPlayer=!1,this._queuedCallbacks=new Map,this.destroyed=!1,this.parentPlayer=null,this.markedForDestroy=!1,this.disabled=!1,this.queued=!0,this.totalTime=0}setRealPlayer(n){this._containsRealPlayer||(this._player=n,this._queuedCallbacks.forEach((t,r)=>{t.forEach(i=>XS(n,r,void 0,i))}),this._queuedCallbacks.clear(),this._containsRealPlayer=!0,this.overrideTotalTime(n.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(n){this.totalTime=n}syncPlayerEvents(n){const t=this._player;t.triggerCallback&&n.onStart(()=>t.triggerCallback("start")),n.onDone(()=>this.finish()),n.onDestroy(()=>this.destroy())}_queueEvent(n,t){Lo(this._queuedCallbacks,n,[]).push(t)}onDone(n){this.queued&&this._queueEvent("done",n),this._player.onDone(n)}onStart(n){this.queued&&this._queueEvent("start",n),this._player.onStart(n)}onDestroy(n){this.queued&&this._queueEvent("destroy",n),this._player.onDestroy(n)}init(){this._player.init()}hasStarted(){return!this.queued&&this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(n){this.queued||this._player.setPosition(n)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(n){const t=this._player;t.triggerCallback&&t.triggerCallback(n)}}function c1(e){return e&&1===e.nodeType}function b3(e,n){const t=e.style.display;return e.style.display=n??"none",t}function w3(e,n,t,r,i){const o=[];t.forEach(l=>o.push(b3(l)));const s=[];r.forEach((l,u)=>{const f=new Map;l.forEach(h=>{const m=n.computeStyle(u,h,i);f.set(h,m),(!m||0==m.length)&&(u[ua]=cJ,s.push(u))}),e.set(u,f)});let a=0;return t.forEach(l=>b3(l,o[a++])),s}function E3(e,n){const t=new Map;if(e.forEach(a=>t.set(a,[])),0==n.length)return t;const i=new Set(n),o=new Map;function s(a){if(!a)return 1;let l=o.get(a);if(l)return l;const u=a.parentNode;return l=t.has(u)?u:i.has(u)?1:s(u),o.set(a,l),l}return n.forEach(a=>{const l=s(a);1!==l&&t.get(l).push(a)}),t}function bs(e,n){e.classList?.add(n)}function Dp(e,n){e.classList?.remove(n)}function mJ(e,n,t){Jc(t).onDone(()=>e.processLeaveNode(n))}function C3(e,n){for(let t=0;ti.add(o)):n.set(e,r),t.delete(e),!0}class n_{constructor(n,t,r){this._driver=t,this._normalizer=r,this._triggerCache={},this.onRemovalComplete=(i,o)=>{},this._transitionEngine=new dJ(n.body,t,r),this._timelineEngine=new rJ(n.body,t,r),this._transitionEngine.onRemovalComplete=(i,o)=>this.onRemovalComplete(i,o)}registerTrigger(n,t,r,i,o){const s=n+"-"+i;let a=this._triggerCache[s];if(!a){const l=[],f=aI(this._driver,o,l,[]);if(l.length)throw function sQ(){return new se(3404,!1)}();a=function JQ(e,n,t){return new eJ(e,n,t)}(i,f,this._normalizer),this._triggerCache[s]=a}this._transitionEngine.registerTrigger(t,i,a)}register(n,t){this._transitionEngine.register(n,t)}destroy(n,t){this._transitionEngine.destroy(n,t)}onInsert(n,t,r,i){this._transitionEngine.insertNode(n,t,r,i)}onRemove(n,t,r){this._transitionEngine.removeNode(n,t,r)}disableAnimations(n,t){this._transitionEngine.markElementAsDisabled(n,t)}process(n,t,r,i){if("@"==r.charAt(0)){const[o,s]=t3(r);this._timelineEngine.command(o,t,s,i)}else this._transitionEngine.trigger(n,t,r,i)}listen(n,t,r,i,o){if("@"==r.charAt(0)){const[s,a]=t3(r);return this._timelineEngine.listen(s,t,a,o)}return this._transitionEngine.listen(n,t,r,i,o)}flush(n=-1){this._transitionEngine.flush(n)}get players(){return[...this._transitionEngine.players,...this._timelineEngine.players]}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}afterFlushAnimationsDone(n){this._transitionEngine.afterFlushAnimationsDone(n)}}class r_{static{this.initialStylesByElement=new WeakMap}constructor(n,t,r){this._element=n,this._startStyles=t,this._endStyles=r,this._state=0;let i=r_.initialStylesByElement.get(n);i||r_.initialStylesByElement.set(n,i=new Map),this._initialStyles=i}start(){this._state<1&&(this._startStyles&&La(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(La(this._element,this._initialStyles),this._endStyles&&(La(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(r_.initialStylesByElement.delete(this._element),this._startStyles&&(Wd(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(Wd(this._element,this._endStyles),this._endStyles=null),La(this._element,this._initialStyles),this._state=3)}}function _I(e){let n=null;return e.forEach((t,r)=>{(function yJ(e){return"display"===e||"position"===e})(r)&&(n=n||new Map,n.set(r,t))}),n}class D3{constructor(n,t,r,i){this.element=n,this.keyframes=t,this.options=r,this._specialStyles=i,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._initialized=!1,this._finished=!1,this._started=!1,this._destroyed=!1,this._originalOnDoneFns=[],this._originalOnStartFns=[],this.time=0,this.parentPlayer=null,this.currentSnapshot=new Map,this._duration=r.duration,this._delay=r.delay||0,this.time=this._duration+this._delay}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(n=>n()),this._onDoneFns=[])}init(){this._buildPlayer(),this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return;this._initialized=!0;const n=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,n,this.options),this._finalKeyframe=n.length?n[n.length-1]:new Map;const t=()=>this._onFinish();this.domPlayer.addEventListener("finish",t),this.onDestroy(()=>{this.domPlayer.removeEventListener("finish",t)})}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}_convertKeyframesToObject(n){const t=[];return n.forEach(r=>{t.push(Object.fromEntries(r))}),t}_triggerWebAnimation(n,t,r){return n.animate(this._convertKeyframesToObject(t),r)}onStart(n){this._originalOnStartFns.push(n),this._onStartFns.push(n)}onDone(n){this._originalOnDoneFns.push(n),this._onDoneFns.push(n)}onDestroy(n){this._onDestroyFns.push(n)}play(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(n=>n()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),this.domPlayer.play()}pause(){this.init(),this.domPlayer.pause()}finish(){this.init(),this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish()}reset(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}_resetDomPlayerState(){this.domPlayer&&this.domPlayer.cancel()}restart(){this.reset(),this.play()}hasStarted(){return this._started}destroy(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(n=>n()),this._onDestroyFns=[])}setPosition(n){void 0===this.domPlayer&&this.init(),this.domPlayer.currentTime=n*this.time}getPosition(){return+(this.domPlayer.currentTime??0)/this.time}get totalTime(){return this._delay+this._duration}beforeDestroy(){const n=new Map;this.hasStarted()&&this._finalKeyframe.forEach((r,i)=>{"offset"!==i&&n.set(i,this._finished?r:sI(this.element,i))}),this.currentSnapshot=n}triggerCallback(n){const t="start"===n?this._onStartFns:this._onDoneFns;t.forEach(r=>r()),t.length=0}}class S3{validateStyleProperty(n){return!0}validateAnimatableStyleProperty(n){return!0}containsElement(n,t){return r3(n,t)}getParentElement(n){return ZS(n)}query(n,t,r){return o3(n,t,r)}computeStyle(n,t,r){return sI(n,t)}animate(n,t,r,i,o,s=[]){const l={duration:r,delay:i,fill:0==i?"both":"forwards"};o&&(l.easing=o);const u=new Map,f=s.filter(g=>g instanceof D3);(function kQ(e,n){return 0===e||0===n})(r,i)&&f.forEach(g=>{g.currentSnapshot.forEach((v,_)=>u.set(_,v))});let h=function SQ(e){return e.length?e[0]instanceof Map?e:e.map(n=>new Map(Object.entries(n))):[]}(t).map(g=>new Map(g));h=function MQ(e,n,t){if(t.size&&n.length){let r=n[0],i=[];if(t.forEach((o,s)=>{r.has(s)||i.push(s),r.set(s,o)}),i.length)for(let o=1;os.set(a,sI(e,a)))}}return n}(n,h,u);const m=function vJ(e,n){let t=null,r=null;return Array.isArray(n)&&n.length?(t=_I(n[0]),n.length>1&&(r=_I(n[n.length-1]))):n instanceof Map&&(t=_I(n)),t||r?new r_(e,t,r):null}(n,h);return new D3(n,h,l,m)}}const I3="@.disabled";class A3{constructor(n,t,r,i){this.namespaceId=n,this.delegate=t,this.engine=r,this._onDestroy=i,this.\u0275type=0}get data(){return this.delegate.data}destroyNode(n){this.delegate.destroyNode?.(n)}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.engine.afterFlushAnimationsDone(()=>{queueMicrotask(()=>{this.delegate.destroy()})}),this._onDestroy?.()}createElement(n,t){return this.delegate.createElement(n,t)}createComment(n){return this.delegate.createComment(n)}createText(n){return this.delegate.createText(n)}appendChild(n,t){this.delegate.appendChild(n,t),this.engine.onInsert(this.namespaceId,t,n,!1)}insertBefore(n,t,r,i=!0){this.delegate.insertBefore(n,t,r),this.engine.onInsert(this.namespaceId,t,n,i)}removeChild(n,t,r){this.parentNode(t)&&this.engine.onRemove(this.namespaceId,t,this.delegate)}selectRootElement(n,t){return this.delegate.selectRootElement(n,t)}parentNode(n){return this.delegate.parentNode(n)}nextSibling(n){return this.delegate.nextSibling(n)}setAttribute(n,t,r,i){this.delegate.setAttribute(n,t,r,i)}removeAttribute(n,t,r){this.delegate.removeAttribute(n,t,r)}addClass(n,t){this.delegate.addClass(n,t)}removeClass(n,t){this.delegate.removeClass(n,t)}setStyle(n,t,r,i){this.delegate.setStyle(n,t,r,i)}removeStyle(n,t,r){this.delegate.removeStyle(n,t,r)}setProperty(n,t,r){"@"==t.charAt(0)&&t==I3?this.disableAnimations(n,!!r):this.delegate.setProperty(n,t,r)}setValue(n,t){this.delegate.setValue(n,t)}listen(n,t,r){return this.delegate.listen(n,t,r)}disableAnimations(n,t){this.engine.disableAnimations(n,t)}}class xJ extends A3{constructor(n,t,r,i,o){super(t,r,i,o),this.factory=n,this.namespaceId=t}setProperty(n,t,r){"@"==t.charAt(0)?"."==t.charAt(1)&&t==I3?this.disableAnimations(n,r=void 0===r||!!r):this.engine.process(this.namespaceId,n,t.slice(1),r):this.delegate.setProperty(n,t,r)}listen(n,t,r){if("@"==t.charAt(0)){const i=function bJ(e){switch(e){case"body":return document.body;case"document":return document;case"window":return window;default:return e}}(n);let o=t.slice(1),s="";return"@"!=o.charAt(0)&&([o,s]=function wJ(e){const n=e.indexOf(".");return[e.substring(0,n),e.slice(n+1)]}(o)),this.engine.listen(this.namespaceId,i,o,s,a=>{this.factory.scheduleListenerCallback(a._data||-1,r,a)})}return this.delegate.listen(n,t,r)}}class EJ{constructor(n,t,r){this.delegate=n,this.engine=t,this._zone=r,this._currentId=0,this._microtaskId=1,this._animationCallbacksBuffer=[],this._rendererCache=new Map,this._cdRecurDepth=0,t.onRemovalComplete=(i,o)=>{o?.removeChild(null,i)}}createRenderer(n,t){const i=this.delegate.createRenderer(n,t);if(!n||!t?.data?.animation){const u=this._rendererCache;let f=u.get(i);return f||(f=new A3("",i,this.engine,()=>u.delete(i)),u.set(i,f)),f}const o=t.id,s=t.id+"-"+this._currentId;this._currentId++,this.engine.register(s,n);const a=u=>{Array.isArray(u)?u.forEach(a):this.engine.registerTrigger(o,s,n,u.name,u)};return t.data.animation.forEach(a),new xJ(this,s,i,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){queueMicrotask(()=>{this._microtaskId++})}scheduleListenerCallback(n,t,r){if(n>=0&&nt(r));const i=this._animationCallbacksBuffer;0==i.length&&queueMicrotask(()=>{this._zone.run(()=>{i.forEach(o=>{const[s,a]=o;s(a)}),this._animationCallbacksBuffer=[]})}),i.push([t,r])}end(){this._cdRecurDepth--,0==this._cdRecurDepth&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}}const k3=[{provide:eI,useFactory:function TJ(){return new u3}},{provide:n_,useClass:(()=>{class e extends n_{constructor(t,r,i){super(t,r,i)}ngOnDestroy(){this.flush()}static{this.\u0275fac=function(r){return new(r||e)(ce(Vt),ce(JS),ce(eI))}}static{this.\u0275prov=Be({token:e,factory:e.\u0275fac})}}return e})()},{provide:bx,useFactory:function DJ(e,n,t){return new EJ(e,n,t)},deps:[zD,n_,ct]}],vI=[{provide:JS,useFactory:()=>new S3},{provide:Qs,useValue:"BrowserAnimations"},...k3],M3=[{provide:JS,useClass:QS},{provide:Qs,useValue:"NoopAnimations"},...k3];let SJ=(()=>{class e{static withConfig(t){return{ngModule:e,providers:t.disableAnimations?M3:vI}}static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275mod=Wt({type:e})}static{this.\u0275inj=Yt({providers:vI,imports:[iP]})}}return e})();const IJ=["mat-button",""],F3=[[["",8,"material-icons",3,"iconPositionEnd",""],["mat-icon",3,"iconPositionEnd",""],["","matButtonIcon","",3,"iconPositionEnd",""]],"*",[["","iconPositionEnd","",8,"material-icons"],["mat-icon","iconPositionEnd",""],["","matButtonIcon","","iconPositionEnd",""]]],R3=[".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])","*",".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"],AJ=["mat-fab",""],kJ=new xe("MAT_BUTTON_CONFIG"),MJ=[{attribute:"mat-button",mdcClasses:["mdc-button","mat-mdc-button"]},{attribute:"mat-flat-button",mdcClasses:["mdc-button","mdc-button--unelevated","mat-mdc-unelevated-button"]},{attribute:"mat-raised-button",mdcClasses:["mdc-button","mdc-button--raised","mat-mdc-raised-button"]},{attribute:"mat-stroked-button",mdcClasses:["mdc-button","mdc-button--outlined","mat-mdc-outlined-button"]},{attribute:"mat-fab",mdcClasses:["mdc-fab","mat-mdc-fab-base","mat-mdc-fab"]},{attribute:"mat-mini-fab",mdcClasses:["mdc-fab","mat-mdc-fab-base","mdc-fab--mini","mat-mdc-mini-fab"]},{attribute:"mat-icon-button",mdcClasses:["mdc-icon-button","mat-mdc-icon-button"]}];let O3=(()=>{class e{get ripple(){return this._rippleLoader?.getRipple(this._elementRef.nativeElement)}set ripple(t){this._rippleLoader?.attachRipple(this._elementRef.nativeElement,t)}get disableRipple(){return this._disableRipple}set disableRipple(t){this._disableRipple=t,this._updateRippleDisabled()}get disabled(){return this._disabled}set disabled(t){this._disabled=t,this._updateRippleDisabled()}constructor(t,r,i,o){this._elementRef=t,this._platform=r,this._ngZone=i,this._animationMode=o,this._focusMonitor=De(uS),this._rippleLoader=De(kY),this._isFab=!1,this._disableRipple=!1,this._disabled=!1;const s=De(kJ,{optional:!0}),a=t.nativeElement,l=a.classList;this.disabledInteractive=s?.disabledInteractive??!1,this.color=s?.color??null,this._rippleLoader?.configureRipple(a,{className:"mat-mdc-button-ripple"});for(const{attribute:u,mdcClasses:f}of MJ)a.hasAttribute(u)&&l.add(...f)}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._rippleLoader?.destroyRipple(this._elementRef.nativeElement)}focus(t="program",r){t?this._focusMonitor.focusVia(this._elementRef.nativeElement,t,r):this._elementRef.nativeElement.focus(r)}_getAriaDisabled(){return null!=this.ariaDisabled?this.ariaDisabled:!(!this.disabled||!this.disabledInteractive)||null}_getDisabledAttribute(){return!(this.disabledInteractive||!this.disabled)||null}_updateRippleDisabled(){this._rippleLoader?.setDisabled(this._elementRef.nativeElement,this.disableRipple||this.disabled)}static{this.\u0275fac=function(r){!function lM(){throw new Error("invalid")}()}}static{this.\u0275dir=Ze({type:e,inputs:{color:"color",disableRipple:[2,"disableRipple","disableRipple",Nr],disabled:[2,"disabled","disabled",Nr],ariaDisabled:[2,"aria-disabled","ariaDisabled",Nr],disabledInteractive:[2,"disabledInteractive","disabledInteractive",Nr]},features:[zh]})}}return e})(),yI=(()=>{class e extends O3{constructor(t,r,i,o){super(t,r,i,o)}static{this.\u0275fac=function(r){return new(r||e)(te(_n),te(xi),te(ct),te(Qs,8))}}static{this.\u0275cmp=An({type:e,selectors:[["button","mat-button",""],["button","mat-raised-button",""],["button","mat-flat-button",""],["button","mat-stroked-button",""]],hostVars:14,hostBindings:function(r,i){2&r&&(yi("disabled",i._getDisabledAttribute())("aria-disabled",i._getAriaDisabled()),cp(i.color?"mat-"+i.color:""),Xi("mat-mdc-button-disabled",i.disabled)("mat-mdc-button-disabled-interactive",i.disabledInteractive)("_mat-animation-noopable","NoopAnimations"===i._animationMode)("mat-unthemed",!i.color)("mat-mdc-button-base",!0))},exportAs:["matButton"],standalone:!0,features:[zt,Dl],attrs:IJ,ngContentSelectors:R3,decls:7,vars:4,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-mdc-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(r,i){1&r&&(vg(F3),dr(0,"span",0),Cl(1),Xe(2,"span",1),Cl(3,1),Ye(),Cl(4,2),dr(5,"span",2)(6,"span",3)),2&r&&Xi("mdc-button__ripple",!i._isFab)("mdc-fab__ripple",i._isFab)},styles:['.mat-mdc-button-base{text-decoration:none}.mdc-button{-webkit-user-select:none;user-select:none;position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:64px;border:none;outline:none;line-height:inherit;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:rgba(0,0,0,0);padding:0 8px}.mdc-button::-moz-focus-inner{padding:0;border:0}.mdc-button:active{outline:none}.mdc-button:hover{cursor:pointer}.mdc-button:disabled{cursor:default;pointer-events:none}.mdc-button[hidden]{display:none}.mdc-button .mdc-button__label{position:relative}.mat-mdc-button{padding:0 var(--mat-text-button-horizontal-padding, 8px);height:var(--mdc-text-button-container-height);font-family:var(--mdc-text-button-label-text-font, var(--mat-app-label-large-font));font-size:var(--mdc-text-button-label-text-size, var(--mat-app-label-large-size));letter-spacing:var(--mdc-text-button-label-text-tracking, var(--mat-app-label-large-tracking));text-transform:var(--mdc-text-button-label-text-transform);font-weight:var(--mdc-text-button-label-text-weight, var(--mat-app-label-large-weight))}.mat-mdc-button:has(.material-icons,mat-icon,[matButtonIcon]){padding:0 var(--mat-text-button-with-icon-horizontal-padding, 8px)}.mat-mdc-button>.mat-icon{margin-right:var(--mat-text-button-icon-spacing, 8px);margin-left:var(--mat-text-button-icon-offset, 0)}[dir=rtl] .mat-mdc-button>.mat-icon{margin-right:var(--mat-text-button-icon-offset, 0);margin-left:var(--mat-text-button-icon-spacing, 8px)}.mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-text-button-icon-offset, 0);margin-left:var(--mat-text-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-text-button-icon-spacing, 8px);margin-left:var(--mat-text-button-icon-offset, 0)}.mat-mdc-button .mat-ripple-element{background-color:var(--mat-text-button-ripple-color)}.mat-mdc-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-text-button-state-layer-color, var(--mat-app-primary))}.mat-mdc-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-text-button-disabled-state-layer-color, var(--mat-app-on-surface-variant))}.mat-mdc-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-hover-state-layer-opacity, var(--mat-app-hover-state-layer-opacity))}.mat-mdc-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-focus-state-layer-opacity, var(--mat-app-focus-state-layer-opacity))}.mat-mdc-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-pressed-state-layer-opacity, var(--mat-app-pressed-state-layer-opacity))}.mat-mdc-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-text-button-touch-target-display)}.mat-mdc-button,.mat-mdc-button .mdc-button__ripple{border-radius:var(--mdc-text-button-container-shape, var(--mat-app-corner-full))}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color, var(--mat-app-primary))}.mat-mdc-button[disabled],.mat-mdc-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-text-button-disabled-label-text-color)}.mat-mdc-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-unelevated-button{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 var(--mat-filled-button-horizontal-padding, 16px);height:var(--mdc-filled-button-container-height);font-family:var(--mdc-filled-button-label-text-font, var(--mat-app-label-large-font));font-size:var(--mdc-filled-button-label-text-size, var(--mat-app-label-large-size));letter-spacing:var(--mdc-filled-button-label-text-tracking, var(--mat-app-label-large-tracking));text-transform:var(--mdc-filled-button-label-text-transform);font-weight:var(--mdc-filled-button-label-text-weight, var(--mat-app-label-large-weight))}.mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-filled-button-icon-spacing, 8px);margin-left:var(--mat-filled-button-icon-offset, -4px)}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-filled-button-icon-offset, -4px);margin-left:var(--mat-filled-button-icon-spacing, 8px)}.mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-filled-button-icon-offset, -4px);margin-left:var(--mat-filled-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-filled-button-icon-spacing, 8px);margin-left:var(--mat-filled-button-icon-offset, -4px)}.mat-mdc-unelevated-button .mat-ripple-element{background-color:var(--mat-filled-button-ripple-color)}.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-filled-button-state-layer-color, var(--mat-app-on-primary))}.mat-mdc-unelevated-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-filled-button-disabled-state-layer-color, var(--mat-app-on-surface-variant))}.mat-mdc-unelevated-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-hover-state-layer-opacity, var(--mat-app-hover-state-layer-opacity))}.mat-mdc-unelevated-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-focus-state-layer-opacity, var(--mat-app-focus-state-layer-opacity))}.mat-mdc-unelevated-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-pressed-state-layer-opacity, var(--mat-app-pressed-state-layer-opacity))}.mat-mdc-unelevated-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-filled-button-touch-target-display)}.mat-mdc-unelevated-button:not(:disabled){color:var(--mdc-filled-button-label-text-color, var(--mat-app-on-primary));background-color:var(--mdc-filled-button-container-color, var(--mat-app-primary))}.mat-mdc-unelevated-button,.mat-mdc-unelevated-button .mdc-button__ripple{border-radius:var(--mdc-filled-button-container-shape, var(--mat-app-corner-full))}.mat-mdc-unelevated-button[disabled],.mat-mdc-unelevated-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-filled-button-disabled-label-text-color);background-color:var(--mdc-filled-button-disabled-container-color)}.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-raised-button{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 var(--mat-protected-button-horizontal-padding, 16px);box-shadow:var(--mdc-protected-button-container-elevation-shadow, var(--mat-app-level1));height:var(--mdc-protected-button-container-height);font-family:var(--mdc-protected-button-label-text-font, var(--mat-app-label-large-font));font-size:var(--mdc-protected-button-label-text-size, var(--mat-app-label-large-size));letter-spacing:var(--mdc-protected-button-label-text-tracking, var(--mat-app-label-large-tracking));text-transform:var(--mdc-protected-button-label-text-transform);font-weight:var(--mdc-protected-button-label-text-weight, var(--mat-app-label-large-weight))}.mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-protected-button-icon-spacing, 8px);margin-left:var(--mat-protected-button-icon-offset, -4px)}[dir=rtl] .mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-protected-button-icon-offset, -4px);margin-left:var(--mat-protected-button-icon-spacing, 8px)}.mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-protected-button-icon-offset, -4px);margin-left:var(--mat-protected-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-protected-button-icon-spacing, 8px);margin-left:var(--mat-protected-button-icon-offset, -4px)}.mat-mdc-raised-button .mat-ripple-element{background-color:var(--mat-protected-button-ripple-color)}.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-protected-button-state-layer-color, var(--mat-app-primary))}.mat-mdc-raised-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-protected-button-disabled-state-layer-color, var(--mat-app-on-surface-variant))}.mat-mdc-raised-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-hover-state-layer-opacity, var(--mat-app-hover-state-layer-opacity))}.mat-mdc-raised-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-focus-state-layer-opacity, var(--mat-app-focus-state-layer-opacity))}.mat-mdc-raised-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-pressed-state-layer-opacity, var(--mat-app-pressed-state-layer-opacity))}.mat-mdc-raised-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-protected-button-touch-target-display)}.mat-mdc-raised-button:not(:disabled){color:var(--mdc-protected-button-label-text-color, var(--mat-app-primary));background-color:var(--mdc-protected-button-container-color, var(--mat-app-surface))}.mat-mdc-raised-button,.mat-mdc-raised-button .mdc-button__ripple{border-radius:var(--mdc-protected-button-container-shape, var(--mat-app-corner-full))}.mat-mdc-raised-button:hover{box-shadow:var(--mdc-protected-button-hover-container-elevation-shadow, var(--mat-app-level2))}.mat-mdc-raised-button:focus{box-shadow:var(--mdc-protected-button-focus-container-elevation-shadow, var(--mat-app-level1))}.mat-mdc-raised-button:active,.mat-mdc-raised-button:focus:active{box-shadow:var(--mdc-protected-button-pressed-container-elevation-shadow, var(--mat-app-level1))}.mat-mdc-raised-button[disabled],.mat-mdc-raised-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-protected-button-disabled-label-text-color);background-color:var(--mdc-protected-button-disabled-container-color)}.mat-mdc-raised-button[disabled].mat-mdc-button-disabled,.mat-mdc-raised-button.mat-mdc-button-disabled.mat-mdc-button-disabled{box-shadow:var(--mdc-protected-button-disabled-container-elevation-shadow, var(--mat-app-level0))}.mat-mdc-raised-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-outlined-button{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 var(--mat-outlined-button-horizontal-padding, 15px);height:var(--mdc-outlined-button-container-height);font-family:var(--mdc-outlined-button-label-text-font, var(--mat-app-label-large-font));font-size:var(--mdc-outlined-button-label-text-size, var(--mat-app-label-large-size));letter-spacing:var(--mdc-outlined-button-label-text-tracking, var(--mat-app-label-large-tracking));text-transform:var(--mdc-outlined-button-label-text-transform);font-weight:var(--mdc-outlined-button-label-text-weight, var(--mat-app-label-large-weight));border-radius:var(--mdc-outlined-button-container-shape, var(--mat-app-corner-full));border-width:var(--mdc-outlined-button-outline-width)}.mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-outlined-button-icon-spacing, 8px);margin-left:var(--mat-outlined-button-icon-offset, -4px)}[dir=rtl] .mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-outlined-button-icon-offset, -4px);margin-left:var(--mat-outlined-button-icon-spacing, 8px)}.mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-outlined-button-icon-offset, -4px);margin-left:var(--mat-outlined-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-outlined-button-icon-spacing, 8px);margin-left:var(--mat-outlined-button-icon-offset, -4px)}.mat-mdc-outlined-button .mat-ripple-element{background-color:var(--mat-outlined-button-ripple-color)}.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-outlined-button-state-layer-color, var(--mat-app-primary))}.mat-mdc-outlined-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-outlined-button-disabled-state-layer-color, var(--mat-app-on-surface-variant))}.mat-mdc-outlined-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-hover-state-layer-opacity, var(--mat-app-hover-state-layer-opacity))}.mat-mdc-outlined-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-focus-state-layer-opacity, var(--mat-app-focus-state-layer-opacity))}.mat-mdc-outlined-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-pressed-state-layer-opacity, var(--mat-app-pressed-state-layer-opacity))}.mat-mdc-outlined-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-outlined-button-touch-target-display)}.mat-mdc-outlined-button:not(:disabled){color:var(--mdc-outlined-button-label-text-color, var(--mat-app-primary));border-color:var(--mdc-outlined-button-outline-color, var(--mat-app-outline))}.mat-mdc-outlined-button[disabled],.mat-mdc-outlined-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-outlined-button-disabled-label-text-color);border-color:var(--mdc-outlined-button-disabled-outline-color)}.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-outlined-button .mdc-button__ripple{border-width:var(--mdc-outlined-button-outline-width);border-style:solid;border-color:rgba(0,0,0,0)}.mat-mdc-button,.mat-mdc-unelevated-button,.mat-mdc-raised-button,.mat-mdc-outlined-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}.mat-mdc-button .mdc-button__label,.mat-mdc-button .mat-icon,.mat-mdc-unelevated-button .mdc-button__label,.mat-mdc-unelevated-button .mat-icon,.mat-mdc-raised-button .mdc-button__label,.mat-mdc-raised-button .mat-icon,.mat-mdc-outlined-button .mdc-button__label,.mat-mdc-outlined-button .mat-icon{z-index:1;position:relative}.mat-mdc-button .mat-mdc-focus-indicator,.mat-mdc-unelevated-button .mat-mdc-focus-indicator,.mat-mdc-raised-button .mat-mdc-focus-indicator,.mat-mdc-outlined-button .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-unelevated-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-raised-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-outlined-button:focus .mat-mdc-focus-indicator::before{content:""}.mat-mdc-button._mat-animation-noopable,.mat-mdc-unelevated-button._mat-animation-noopable,.mat-mdc-raised-button._mat-animation-noopable,.mat-mdc-outlined-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon,.mat-mdc-raised-button>.mat-icon,.mat-mdc-outlined-button>.mat-icon{display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem}.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px}.mat-mdc-unelevated-button .mat-mdc-focus-indicator::before,.mat-mdc-raised-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-mdc-outlined-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 3px)*-1)}',".cdk-high-contrast-active .mat-mdc-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-unelevated-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-raised-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-outlined-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-icon-button{outline:solid 1px}"],encapsulation:2,changeDetection:0})}}return e})();const FJ=new xe("mat-mdc-fab-default-options",{providedIn:"root",factory:N3});function N3(){return{color:"accent"}}const P3=N3();let RJ=(()=>{class e extends O3{constructor(t,r,i,o,s){super(t,r,i,o),this._options=s,this._isFab=!0,this._options=this._options||P3,this.color=this._options.color||P3.color}static{this.\u0275fac=function(r){return new(r||e)(te(_n),te(xi),te(ct),te(Qs,8),te(FJ,8))}}static{this.\u0275cmp=An({type:e,selectors:[["button","mat-fab",""]],hostVars:18,hostBindings:function(r,i){2&r&&(yi("disabled",i._getDisabledAttribute())("aria-disabled",i._getAriaDisabled()),cp(i.color?"mat-"+i.color:""),Xi("mat-mdc-button-disabled",i.disabled)("mat-mdc-button-disabled-interactive",i.disabledInteractive)("_mat-animation-noopable","NoopAnimations"===i._animationMode)("mat-unthemed",!i.color)("mat-mdc-button-base",!0)("mdc-fab--extended",i.extended)("mat-mdc-extended-fab",i.extended))},inputs:{extended:[2,"extended","extended",Nr]},exportAs:["matButton"],standalone:!0,features:[zh,zt,Dl],attrs:AJ,ngContentSelectors:R3,decls:7,vars:4,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-mdc-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(r,i){1&r&&(vg(F3),dr(0,"span",0),Cl(1),Xe(2,"span",1),Cl(3,1),Ye(),Cl(4,2),dr(5,"span",2)(6,"span",3)),2&r&&Xi("mdc-button__ripple",!i._isFab)("mdc-fab__ripple",i._isFab)},styles:['.mat-mdc-fab-base{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;user-select:none;position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:56px;height:56px;padding:0;border:none;fill:currentColor;text-decoration:none;cursor:pointer;-moz-appearance:none;-webkit-appearance:none;overflow:visible;transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1),opacity 15ms linear 30ms,transform 270ms 0ms cubic-bezier(0, 0, 0.2, 1);flex-shrink:0}.mat-mdc-fab-base .mat-mdc-button-ripple,.mat-mdc-fab-base .mat-mdc-button-persistent-ripple,.mat-mdc-fab-base .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-fab-base .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-fab-base .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}.mat-mdc-fab-base .mdc-button__label,.mat-mdc-fab-base .mat-icon{z-index:1;position:relative}.mat-mdc-fab-base .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-fab-base:focus .mat-mdc-focus-indicator::before{content:""}.mat-mdc-fab-base._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-fab-base::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}.mat-mdc-fab-base[hidden]{display:none}.mat-mdc-fab-base::-moz-focus-inner{padding:0;border:0}.mat-mdc-fab-base:active,.mat-mdc-fab-base:focus{outline:none}.mat-mdc-fab-base:hover{cursor:pointer}.mat-mdc-fab-base>svg{width:100%}.mat-mdc-fab-base .mat-icon,.mat-mdc-fab-base .material-icons{transition:transform 180ms 90ms cubic-bezier(0, 0, 0.2, 1);fill:currentColor;will-change:transform}.mat-mdc-fab-base .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-mdc-fab-base[disabled],.mat-mdc-fab-base.mat-mdc-button-disabled{cursor:default;pointer-events:none}.mat-mdc-fab-base[disabled],.mat-mdc-fab-base[disabled]:focus,.mat-mdc-fab-base.mat-mdc-button-disabled,.mat-mdc-fab-base.mat-mdc-button-disabled:focus{box-shadow:none}.mat-mdc-fab-base.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-fab{background-color:var(--mdc-fab-container-color, var(--mat-app-primary-container));border-radius:var(--mdc-fab-container-shape, var(--mat-app-corner-large));color:var(--mat-fab-foreground-color, var(--mat-app-on-primary-container, inherit));box-shadow:var(--mdc-fab-container-elevation-shadow, var(--mat-app-level3))}.mat-mdc-fab .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-fab-touch-target-display)}.mat-mdc-fab .mat-ripple-element{background-color:var(--mat-fab-ripple-color)}.mat-mdc-fab .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-state-layer-color, var(--mat-app-on-primary-container))}.mat-mdc-fab.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-disabled-state-layer-color)}.mat-mdc-fab:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-hover-state-layer-opacity, var(--mat-app-hover-state-layer-opacity))}.mat-mdc-fab.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-fab.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-fab.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-focus-state-layer-opacity, var(--mat-app-focus-state-layer-opacity))}.mat-mdc-fab:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-pressed-state-layer-opacity, var(--mat-app-pressed-state-layer-opacity))}.mat-mdc-fab:hover{box-shadow:var(--mdc-fab-hover-container-elevation-shadow, var(--mat-app-level4))}.mat-mdc-fab:focus{box-shadow:var(--mdc-fab-focus-container-elevation-shadow, var(--mat-app-level3))}.mat-mdc-fab:active,.mat-mdc-fab:focus:active{box-shadow:var(--mdc-fab-pressed-container-elevation-shadow, var(--mat-app-level3))}.mat-mdc-fab[disabled],.mat-mdc-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-fab-disabled-state-foreground-color);background-color:var(--mat-fab-disabled-state-container-color)}.mat-mdc-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-mini-fab{width:40px;height:40px;background-color:var(--mdc-fab-small-container-color, var(--mat-app-primary-container));border-radius:var(--mdc-fab-small-container-shape, var(--mat-app-corner-medium));color:var(--mat-fab-small-foreground-color, var(--mat-app-on-primary-container, inherit));box-shadow:var(--mdc-fab-small-container-elevation-shadow, var(--mat-app-level3))}.mat-mdc-mini-fab .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-fab-small-touch-target-display)}.mat-mdc-mini-fab .mat-ripple-element{background-color:var(--mat-fab-small-ripple-color)}.mat-mdc-mini-fab .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-small-state-layer-color, var(--mat-app-on-primary-container))}.mat-mdc-mini-fab.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-small-disabled-state-layer-color)}.mat-mdc-mini-fab:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-hover-state-layer-opacity, var(--mat-app-hover-state-layer-opacity))}.mat-mdc-mini-fab.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-focus-state-layer-opacity, var(--mat-app-focus-state-layer-opacity))}.mat-mdc-mini-fab:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-pressed-state-layer-opacity, var(--mat-app-pressed-state-layer-opacity))}.mat-mdc-mini-fab:hover{box-shadow:var(--mdc-fab-small-hover-container-elevation-shadow, var(--mat-app-level4))}.mat-mdc-mini-fab:focus{box-shadow:var(--mdc-fab-small-focus-container-elevation-shadow, var(--mat-app-level3))}.mat-mdc-mini-fab:active,.mat-mdc-mini-fab:focus:active{box-shadow:var(--mdc-fab-small-pressed-container-elevation-shadow, var(--mat-app-level3))}.mat-mdc-mini-fab[disabled],.mat-mdc-mini-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-fab-small-disabled-state-foreground-color);background-color:var(--mat-fab-small-disabled-state-container-color)}.mat-mdc-mini-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-extended-fab{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;border-radius:24px;padding-left:20px;padding-right:20px;width:auto;max-width:100%;line-height:normal;box-shadow:var(--mdc-extended-fab-container-elevation-shadow, var(--mat-app-level3));height:var(--mdc-extended-fab-container-height);border-radius:var(--mdc-extended-fab-container-shape, var(--mat-app-corner-large));font-family:var(--mdc-extended-fab-label-text-font, var(--mat-app-label-large-font));font-size:var(--mdc-extended-fab-label-text-size, var(--mat-app-label-large-size));font-weight:var(--mdc-extended-fab-label-text-weight, var(--mat-app-label-large-weight));letter-spacing:var(--mdc-extended-fab-label-text-tracking, var(--mat-app-label-large-tracking))}.mat-mdc-extended-fab:hover{box-shadow:var(--mdc-extended-fab-hover-container-elevation-shadow, var(--mat-app-level4))}.mat-mdc-extended-fab:focus{box-shadow:var(--mdc-extended-fab-focus-container-elevation-shadow, var(--mat-app-level3))}.mat-mdc-extended-fab:active,.mat-mdc-extended-fab:focus:active{box-shadow:var(--mdc-extended-fab-pressed-container-elevation-shadow, var(--mat-app-level3))}.mat-mdc-extended-fab[disabled],.mat-mdc-extended-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none}.mat-mdc-extended-fab[disabled],.mat-mdc-extended-fab[disabled]:focus,.mat-mdc-extended-fab.mat-mdc-button-disabled,.mat-mdc-extended-fab.mat-mdc-button-disabled:focus{box-shadow:none}.mat-mdc-extended-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.material-icons,.mat-mdc-extended-fab>.mat-icon,.mat-mdc-extended-fab>.material-icons{margin-left:-8px;margin-right:12px}.mat-mdc-extended-fab .mdc-button__label+.mat-icon,.mat-mdc-extended-fab .mdc-button__label+.material-icons,[dir=rtl] .mat-mdc-extended-fab>.mat-icon,[dir=rtl] .mat-mdc-extended-fab>.material-icons{margin-left:12px;margin-right:-8px}.mat-mdc-extended-fab .mat-mdc-button-touch-target{width:100%}'],encapsulation:2,changeDetection:0})}}return e})(),L3=(()=>{class e{static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275mod=Wt({type:e})}static{this.\u0275inj=Yt({imports:[bi,hL,bi]})}}return e})(),OJ=(()=>{class e{static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275mod=Wt({type:e})}static{this.\u0275inj=Yt({})}}return e})(),B3=(()=>{class e{static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275mod=Wt({type:e})}static{this.\u0275inj=Yt({imports:[bi,OD,NP,bi]})}}return e})(),HJ=(()=>{class e{static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275mod=Wt({type:e})}static{this.\u0275inj=Yt({imports:[bi,B3,B3,OJ,bi]})}}return e})();class zJ{get selected(){return this._selected||(this._selected=Array.from(this._selection.values())),this._selected}constructor(n=!1,t,r=!0,i){this._multiple=n,this._emitChanges=r,this.compareWith=i,this._selection=new Set,this._deselectedToEmit=[],this._selectedToEmit=[],this.changed=new Rt,t&&t.length&&(n?t.forEach(o=>this._markSelected(o)):this._markSelected(t[0]),this._selectedToEmit.length=0)}select(...n){this._verifyValueAssignment(n),n.forEach(r=>this._markSelected(r));const t=this._hasQueuedChanges();return this._emitChangeEvent(),t}deselect(...n){this._verifyValueAssignment(n),n.forEach(r=>this._unmarkSelected(r));const t=this._hasQueuedChanges();return this._emitChangeEvent(),t}setSelection(...n){this._verifyValueAssignment(n);const t=this.selected,r=new Set(n);n.forEach(o=>this._markSelected(o)),t.filter(o=>!r.has(this._getConcreteValue(o,r))).forEach(o=>this._unmarkSelected(o));const i=this._hasQueuedChanges();return this._emitChangeEvent(),i}toggle(n){return this.isSelected(n)?this.deselect(n):this.select(n)}clear(n=!0){this._unmarkAll();const t=this._hasQueuedChanges();return n&&this._emitChangeEvent(),t}isSelected(n){return this._selection.has(this._getConcreteValue(n))}isEmpty(){return 0===this._selection.size}hasValue(){return!this.isEmpty()}sort(n){this._multiple&&this.selected&&this._selected.sort(n)}isMultipleSelection(){return this._multiple}_emitChangeEvent(){this._selected=null,(this._selectedToEmit.length||this._deselectedToEmit.length)&&(this.changed.next({source:this,added:this._selectedToEmit,removed:this._deselectedToEmit}),this._deselectedToEmit=[],this._selectedToEmit=[])}_markSelected(n){n=this._getConcreteValue(n),this.isSelected(n)||(this._multiple||this._unmarkAll(),this.isSelected(n)||this._selection.add(n),this._emitChanges&&this._selectedToEmit.push(n))}_unmarkSelected(n){n=this._getConcreteValue(n),this.isSelected(n)&&(this._selection.delete(n),this._emitChanges&&this._deselectedToEmit.push(n))}_unmarkAll(){this.isEmpty()||this._selection.forEach(n=>this._unmarkSelected(n))}_verifyValueAssignment(n){}_hasQueuedChanges(){return!(!this._deselectedToEmit.length&&!this._selectedToEmit.length)}_getConcreteValue(n,t){if(this.compareWith){t=t??this._selection;for(let r of t)if(this.compareWith(n,r))return r;return n}return n}}const $J=["button"],WJ=["*"];function GJ(e,n){1&e&&dr(0,"mat-pseudo-checkbox",3),2&e&&Gn("disabled",oi().disabled)}function qJ(e,n){1&e&&dr(0,"mat-pseudo-checkbox",3),2&e&&Gn("disabled",oi().disabled)}const V3=new xe("MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS",{providedIn:"root",factory:function XJ(){return{hideSingleSelectionIndicator:!1,hideMultipleSelectionIndicator:!1,disabledInteractive:!1}}}),U3=new xe("MatButtonToggleGroup"),YJ={provide:ca,useExisting:en(()=>z3),multi:!0};let H3=0;class j3{constructor(n,t){this.source=n,this.value=t}}let z3=(()=>{class e{get name(){return this._name}set name(t){this._name=t,this._markButtonsForCheck()}get value(){const t=this._selectionModel?this._selectionModel.selected:[];return this.multiple?t.map(r=>r.value):t[0]?t[0].value:void 0}set value(t){this._setSelectionByValue(t),this.valueChange.emit(this.value)}get selected(){const t=this._selectionModel?this._selectionModel.selected:[];return this.multiple?t:t[0]||null}get multiple(){return this._multiple}set multiple(t){this._multiple=t,this._markButtonsForCheck()}get disabled(){return this._disabled}set disabled(t){this._disabled=t,this._markButtonsForCheck()}get disabledInteractive(){return this._disabledInteractive}set disabledInteractive(t){this._disabledInteractive=t,this._markButtonsForCheck()}get dir(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}get hideSingleSelectionIndicator(){return this._hideSingleSelectionIndicator}set hideSingleSelectionIndicator(t){this._hideSingleSelectionIndicator=t,this._markButtonsForCheck()}get hideMultipleSelectionIndicator(){return this._hideMultipleSelectionIndicator}set hideMultipleSelectionIndicator(t){this._hideMultipleSelectionIndicator=t,this._markButtonsForCheck()}constructor(t,r,i){this._changeDetector=t,this._dir=i,this._multiple=!1,this._disabled=!1,this._disabledInteractive=!1,this._controlValueAccessorChangeFn=()=>{},this._onTouched=()=>{},this._name="mat-button-toggle-group-"+H3++,this.valueChange=new Cn,this.change=new Cn,this.appearance=r&&r.appearance?r.appearance:"standard",this.hideSingleSelectionIndicator=r?.hideSingleSelectionIndicator??!1,this.hideMultipleSelectionIndicator=r?.hideMultipleSelectionIndicator??!1}ngOnInit(){this._selectionModel=new zJ(this.multiple,void 0,!1)}ngAfterContentInit(){this._selectionModel.select(...this._buttonToggles.filter(t=>t.checked)),this.multiple||this._initializeTabIndex()}writeValue(t){this.value=t,this._changeDetector.markForCheck()}registerOnChange(t){this._controlValueAccessorChangeFn=t}registerOnTouched(t){this._onTouched=t}setDisabledState(t){this.disabled=t}_keydown(t){if(this.multiple||this.disabled)return;const i=t.target.id,o=this._buttonToggles.toArray().findIndex(a=>a.buttonId===i);let s=null;switch(t.keyCode){case 32:case 13:s=this._buttonToggles.get(o)||null;break;case 38:s=this._getNextButton(o,-1);break;case 37:s=this._getNextButton(o,"ltr"===this.dir?-1:1);break;case 40:s=this._getNextButton(o,1);break;case 39:s=this._getNextButton(o,"ltr"===this.dir?1:-1);break;default:return}s&&(t.preventDefault(),s._onButtonClick(),s.focus())}_emitChangeEvent(t){const r=new j3(t,this.value);this._rawValue=r.value,this._controlValueAccessorChangeFn(r.value),this.change.emit(r)}_syncButtonToggle(t,r,i=!1,o=!1){!this.multiple&&this.selected&&!t.checked&&(this.selected.checked=!1),this._selectionModel?r?this._selectionModel.select(t):this._selectionModel.deselect(t):o=!0,o?Promise.resolve().then(()=>this._updateModelValue(t,i)):this._updateModelValue(t,i)}_isSelected(t){return this._selectionModel&&this._selectionModel.isSelected(t)}_isPrechecked(t){return!(typeof this._rawValue>"u")&&(this.multiple&&Array.isArray(this._rawValue)?this._rawValue.some(r=>null!=t.value&&r===t.value):t.value===this._rawValue)}_initializeTabIndex(){if(this._buttonToggles.forEach(t=>{t.tabIndex=-1}),this.selected)this.selected.tabIndex=0;else for(let t=0;tthis._selectValue(r))):(this._clearSelection(),this._selectValue(t)))}_clearSelection(){this._selectionModel.clear(),this._buttonToggles.forEach(t=>{t.checked=!1,this.multiple||(t.tabIndex=-1)})}_selectValue(t){const r=this._buttonToggles.find(i=>null!=i.value&&i.value===t);r&&(r.checked=!0,this._selectionModel.select(r),this.multiple||(r.tabIndex=0))}_updateModelValue(t,r){r&&this._emitChangeEvent(t),this.valueChange.emit(this.value)}_markButtonsForCheck(){this._buttonToggles?.forEach(t=>t._markForCheck())}static{this.\u0275fac=function(r){return new(r||e)(te(Il),te(V3,8),te(fS,8))}}static{this.\u0275dir=Ze({type:e,selectors:[["mat-button-toggle-group"]],contentQueries:function(r,i,o){if(1&r&&yR(o,xI,5),2&r){let s;ra(s=ia())&&(i._buttonToggles=s)}},hostAttrs:[1,"mat-button-toggle-group"],hostVars:6,hostBindings:function(r,i){1&r&&yn("keydown",function(s){return i._keydown(s)}),2&r&&(yi("role",i.multiple?"group":"radiogroup")("aria-disabled",i.disabled),Xi("mat-button-toggle-vertical",i.vertical)("mat-button-toggle-group-appearance-standard","standard"===i.appearance))},inputs:{appearance:"appearance",name:"name",vertical:[2,"vertical","vertical",Nr],value:"value",multiple:[2,"multiple","multiple",Nr],disabled:[2,"disabled","disabled",Nr],disabledInteractive:[2,"disabledInteractive","disabledInteractive",Nr],hideSingleSelectionIndicator:[2,"hideSingleSelectionIndicator","hideSingleSelectionIndicator",Nr],hideMultipleSelectionIndicator:[2,"hideMultipleSelectionIndicator","hideMultipleSelectionIndicator",Nr]},outputs:{valueChange:"valueChange",change:"change"},exportAs:["matButtonToggleGroup"],standalone:!0,features:[Rn([YJ,{provide:U3,useExisting:e}]),zh]})}}return e})(),xI=(()=>{class e{get buttonId(){return`${this.id}-button`}get tabIndex(){return this._tabIndex}set tabIndex(t){this._tabIndex=t,this._markForCheck()}get appearance(){return this.buttonToggleGroup?this.buttonToggleGroup.appearance:this._appearance}set appearance(t){this._appearance=t}get checked(){return this.buttonToggleGroup?this.buttonToggleGroup._isSelected(this):this._checked}set checked(t){t!==this._checked&&(this._checked=t,this.buttonToggleGroup&&this.buttonToggleGroup._syncButtonToggle(this,this._checked),this._changeDetectorRef.markForCheck())}get disabled(){return this._disabled||this.buttonToggleGroup&&this.buttonToggleGroup.disabled}set disabled(t){this._disabled=t}get disabledInteractive(){return this._disabledInteractive||null!==this.buttonToggleGroup&&this.buttonToggleGroup.disabledInteractive}set disabledInteractive(t){this._disabledInteractive=t}constructor(t,r,i,o,s,a){this._changeDetectorRef=r,this._elementRef=i,this._focusMonitor=o,this._checked=!1,this.ariaLabelledby=null,this._disabled=!1,this.change=new Cn;const l=Number(s);this.tabIndex=l||0===l?l:null,this.buttonToggleGroup=t,this.appearance=a&&a.appearance?a.appearance:"standard",this.disabledInteractive=a?.disabledInteractive??!1}ngOnInit(){const t=this.buttonToggleGroup;this.id=this.id||"mat-button-toggle-"+H3++,t&&(t._isPrechecked(this)?this.checked=!0:t._isSelected(this)!==this._checked&&t._syncButtonToggle(this,this._checked))}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){const t=this.buttonToggleGroup;this._focusMonitor.stopMonitoring(this._elementRef),t&&t._isSelected(this)&&t._syncButtonToggle(this,!1,!1,!0)}focus(t){this._buttonElement.nativeElement.focus(t)}_onButtonClick(){if(this.disabled)return;const t=!!this.isSingleSelector()||!this._checked;if(t!==this._checked&&(this._checked=t,this.buttonToggleGroup&&(this.buttonToggleGroup._syncButtonToggle(this,this._checked,!0),this.buttonToggleGroup._onTouched())),this.isSingleSelector()){const r=this.buttonToggleGroup._buttonToggles.find(i=>0===i.tabIndex);r&&(r.tabIndex=-1),this.tabIndex=0}this.change.emit(new j3(this,this.value))}_markForCheck(){this._changeDetectorRef.markForCheck()}_getButtonName(){return this.isSingleSelector()?this.buttonToggleGroup.name:this.name||null}isSingleSelector(){return this.buttonToggleGroup&&!this.buttonToggleGroup.multiple}static{this.\u0275fac=function(r){return new(r||e)(te(U3,8),te(Il),te(_n),te(uS),gl("tabindex"),te(V3,8))}}static{this.\u0275cmp=An({type:e,selectors:[["mat-button-toggle"]],viewQuery:function(r,i){if(1&r&&Na($J,5),2&r){let o;ra(o=ia())&&(i._buttonElement=o.first)}},hostAttrs:["role","presentation",1,"mat-button-toggle"],hostVars:14,hostBindings:function(r,i){1&r&&yn("focus",function(){return i.focus()}),2&r&&(yi("aria-label",null)("aria-labelledby",null)("id",i.id)("name",null),Xi("mat-button-toggle-standalone",!i.buttonToggleGroup)("mat-button-toggle-checked",i.checked)("mat-button-toggle-disabled",i.disabled)("mat-button-toggle-disabled-interactive",i.disabledInteractive)("mat-button-toggle-appearance-standard","standard"===i.appearance))},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],id:"id",name:"name",value:"value",tabIndex:"tabIndex",disableRipple:[2,"disableRipple","disableRipple",Nr],appearance:"appearance",checked:[2,"checked","checked",Nr],disabled:[2,"disabled","disabled",Nr],disabledInteractive:[2,"disabledInteractive","disabledInteractive",Nr]},outputs:{change:"change"},exportAs:["matButtonToggle"],standalone:!0,features:[zh,Dl],ngContentSelectors:WJ,decls:8,vars:14,consts:[["button",""],["type","button",1,"mat-button-toggle-button","mat-focus-indicator",3,"click","id","disabled"],[1,"mat-button-toggle-label-content"],["state","checked","aria-hidden","true","appearance","minimal",1,"mat-mdc-option-pseudo-checkbox",3,"disabled"],[1,"mat-button-toggle-focus-overlay"],["matRipple","",1,"mat-button-toggle-ripple",3,"matRippleTrigger","matRippleDisabled"]],template:function(r,i){if(1&r){const o=El();vg(),Xe(0,"button",1,0),yn("click",function(){return ho(o),Ui(i._onButtonClick())}),Xe(2,"span",2),ps(3,GJ,1,1,"mat-pseudo-checkbox",3)(4,qJ,1,1,"mat-pseudo-checkbox",3),Cl(5),Ye()(),dr(6,"span",4)(7,"span",5)}if(2&r){const o=yg(1);Gn("id",i.buttonId)("disabled",i.disabled&&!i.disabledInteractive||null),yi("role",i.isSingleSelector()?"radio":"button")("tabindex",i.disabled&&!i.disabledInteractive?-1:i.tabIndex)("aria-pressed",i.isSingleSelector()?null:i.checked)("aria-checked",i.isSingleSelector()?i.checked:null)("name",i._getButtonName())("aria-label",i.ariaLabel)("aria-labelledby",i.ariaLabelledby)("aria-disabled",i.disabled&&i.disabledInteractive?"true":null),at(3),ii(i.buttonToggleGroup&&i.checked&&!i.buttonToggleGroup.multiple&&!i.buttonToggleGroup.hideSingleSelectionIndicator?3:-1),at(),ii(i.buttonToggleGroup&&i.checked&&i.buttonToggleGroup.multiple&&!i.buttonToggleGroup.hideMultipleSelectionIndicator?4:-1),at(3),Gn("matRippleTrigger",o)("matRippleDisabled",i.disableRipple||i.disabled)}},dependencies:[fL,AY],styles:[".mat-button-toggle-standalone,.mat-button-toggle-group{position:relative;display:inline-flex;flex-direction:row;white-space:nowrap;overflow:hidden;-webkit-tap-highlight-color:rgba(0,0,0,0);transform:translateZ(0);border-radius:var(--mat-legacy-button-toggle-shape)}.mat-button-toggle-standalone:not([class*=mat-elevation-z]),.mat-button-toggle-group:not([class*=mat-elevation-z]){box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)}.cdk-high-contrast-active .mat-button-toggle-standalone,.cdk-high-contrast-active .mat-button-toggle-group{outline:solid 1px}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{border-radius:var(--mat-standard-button-toggle-shape, var(--mat-app-corner-full));border:solid 1px var(--mat-standard-button-toggle-divider-color, var(--mat-app-outline))}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard .mat-pseudo-checkbox,.mat-button-toggle-group-appearance-standard .mat-pseudo-checkbox{--mat-minimal-pseudo-checkbox-selected-checkmark-color: var(--mat-standard-button-toggle-selected-state-text-color, var(--mat-app-on-secondary-container))}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard:not([class*=mat-elevation-z]),.mat-button-toggle-group-appearance-standard:not([class*=mat-elevation-z]){box-shadow:none}.cdk-high-contrast-active .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.cdk-high-contrast-active .mat-button-toggle-group-appearance-standard{outline:0}.mat-button-toggle-vertical{flex-direction:column}.mat-button-toggle-vertical .mat-button-toggle-label-content{display:block}.mat-button-toggle{white-space:nowrap;position:relative;color:var(--mat-legacy-button-toggle-text-color);font-family:var(--mat-legacy-button-toggle-label-text-font);font-size:var(--mat-legacy-button-toggle-label-text-size);line-height:var(--mat-legacy-button-toggle-label-text-line-height);font-weight:var(--mat-legacy-button-toggle-label-text-weight);letter-spacing:var(--mat-legacy-button-toggle-label-text-tracking);--mat-minimal-pseudo-checkbox-selected-checkmark-color: var(--mat-legacy-button-toggle-selected-state-text-color)}.mat-button-toggle.cdk-keyboard-focused .mat-button-toggle-focus-overlay{opacity:var(--mat-legacy-button-toggle-focus-state-layer-opacity)}.mat-button-toggle .mat-icon svg{vertical-align:top}.mat-button-toggle .mat-pseudo-checkbox{margin-right:12px}[dir=rtl] .mat-button-toggle .mat-pseudo-checkbox{margin-right:0;margin-left:12px}.mat-button-toggle-checked{color:var(--mat-legacy-button-toggle-selected-state-text-color);background-color:var(--mat-legacy-button-toggle-selected-state-background-color)}.mat-button-toggle-disabled{pointer-events:none;color:var(--mat-legacy-button-toggle-disabled-state-text-color);background-color:var(--mat-legacy-button-toggle-disabled-state-background-color);--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: var(--mat-legacy-button-toggle-disabled-state-text-color)}.mat-button-toggle-disabled.mat-button-toggle-checked{background-color:var(--mat-legacy-button-toggle-disabled-selected-state-background-color)}.mat-button-toggle-disabled-interactive{pointer-events:auto}.mat-button-toggle-appearance-standard{color:var(--mat-standard-button-toggle-text-color, var(--mat-app-on-surface));background-color:var(--mat-standard-button-toggle-background-color);font-family:var(--mat-standard-button-toggle-label-text-font, var(--mat-app-label-large-font));font-size:var(--mat-standard-button-toggle-label-text-size, var(--mat-app-label-large-size));line-height:var(--mat-standard-button-toggle-label-text-line-height, var(--mat-app-label-large-line-height));font-weight:var(--mat-standard-button-toggle-label-text-weight, var(--mat-app-label-large-weight));letter-spacing:var(--mat-standard-button-toggle-label-text-tracking, var(--mat-app-label-large-tracking))}.mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:solid 1px var(--mat-standard-button-toggle-divider-color, var(--mat-app-outline))}[dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:none;border-right:solid 1px var(--mat-standard-button-toggle-divider-color, var(--mat-app-outline))}.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:none;border-right:none;border-top:solid 1px var(--mat-standard-button-toggle-divider-color, var(--mat-app-outline))}.mat-button-toggle-appearance-standard.mat-button-toggle-checked{color:var(--mat-standard-button-toggle-selected-state-text-color, var(--mat-app-on-secondary-container));background-color:var(--mat-standard-button-toggle-selected-state-background-color, var(--mat-app-secondary-container))}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled{color:var(--mat-standard-button-toggle-disabled-state-text-color);background-color:var(--mat-standard-button-toggle-disabled-state-background-color)}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled .mat-pseudo-checkbox{--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: var(--mat-standard-button-toggle-disabled-selected-state-text-color)}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled.mat-button-toggle-checked{color:var(--mat-standard-button-toggle-disabled-selected-state-text-color);background-color:var(--mat-standard-button-toggle-disabled-selected-state-background-color)}.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{background-color:var(--mat-standard-button-toggle-state-layer-color, var(--mat-app-on-surface))}.mat-button-toggle-appearance-standard:hover .mat-button-toggle-focus-overlay{opacity:var(--mat-standard-button-toggle-hover-state-layer-opacity, var(--mat-app-hover-state-layer-opacity))}.mat-button-toggle-appearance-standard.cdk-keyboard-focused .mat-button-toggle-focus-overlay{opacity:var(--mat-standard-button-toggle-focus-state-layer-opacity, var(--mat-app-focus-state-layer-opacity))}@media(hover: none){.mat-button-toggle-appearance-standard:hover .mat-button-toggle-focus-overlay{display:none}}.mat-button-toggle-label-content{-webkit-user-select:none;user-select:none;display:inline-block;padding:0 16px;line-height:var(--mat-legacy-button-toggle-height);position:relative}.mat-button-toggle-appearance-standard .mat-button-toggle-label-content{padding:0 12px;line-height:var(--mat-standard-button-toggle-height)}.mat-button-toggle-label-content>*{vertical-align:middle}.mat-button-toggle-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:inherit;pointer-events:none;opacity:0;background-color:var(--mat-legacy-button-toggle-state-layer-color)}.cdk-high-contrast-active .mat-button-toggle-checked .mat-button-toggle-focus-overlay{border-bottom:solid 500px;opacity:.5;height:0}.cdk-high-contrast-active .mat-button-toggle-checked:hover .mat-button-toggle-focus-overlay{opacity:.6}.cdk-high-contrast-active .mat-button-toggle-checked.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{border-bottom:solid 500px}.mat-button-toggle .mat-button-toggle-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-button-toggle-button{border:0;background:none;color:inherit;padding:0;margin:0;font:inherit;outline:none;width:100%;cursor:pointer}.mat-button-toggle-disabled .mat-button-toggle-button{cursor:default}.mat-button-toggle-button::-moz-focus-inner{border:0}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard{--mat-focus-indicator-border-radius:var(--mat-standard-button-toggle-shape, var(--mat-app-corner-full))}.mat-button-toggle-group-appearance-standard .mat-button-toggle:last-of-type .mat-button-toggle-button::before{border-top-right-radius:var(--mat-standard-button-toggle-shape, var(--mat-app-corner-full));border-bottom-right-radius:var(--mat-standard-button-toggle-shape, var(--mat-app-corner-full))}.mat-button-toggle-group-appearance-standard .mat-button-toggle:first-of-type .mat-button-toggle-button::before{border-top-left-radius:var(--mat-standard-button-toggle-shape, var(--mat-app-corner-full));border-bottom-left-radius:var(--mat-standard-button-toggle-shape, var(--mat-app-corner-full))}"],encapsulation:2,changeDetection:0})}}return e})(),KJ=(()=>{class e{static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275mod=Wt({type:e})}static{this.\u0275inj=Yt({imports:[bi,hL,xI,bi]})}}return e})();class bI{attach(n){return this._attachedHost=n,n.attach(this)}detach(){let n=this._attachedHost;null!=n&&(this._attachedHost=null,n.detach())}get isAttached(){return null!=this._attachedHost}setAttachedHost(n){this._attachedHost=n}}class d1 extends bI{constructor(n,t,r,i,o){super(),this.component=n,this.viewContainerRef=t,this.injector=r,this.componentFactoryResolver=i,this.projectableNodes=o}}class $3 extends bI{constructor(n,t,r,i){super(),this.templateRef=n,this.viewContainerRef=t,this.context=r,this.injector=i}get origin(){return this.templateRef.elementRef}attach(n,t=this.context){return this.context=t,super.attach(n)}detach(){return this.context=void 0,super.detach()}}class ZJ extends bI{constructor(n){super(),this.element=n instanceof _n?n.nativeElement:n}}class wI{constructor(){this._isDisposed=!1,this.attachDomPortal=null}hasAttached(){return!!this._attachedPortal}attach(n){return n instanceof d1?(this._attachedPortal=n,this.attachComponentPortal(n)):n instanceof $3?(this._attachedPortal=n,this.attachTemplatePortal(n)):this.attachDomPortal&&n instanceof ZJ?(this._attachedPortal=n,this.attachDomPortal(n)):void 0}detach(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()}dispose(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0}setDisposeFn(n){this._disposeFn=n}_invokeDisposeFn(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)}}class QJ extends wI{constructor(n,t,r,i,o){super(),this.outletElement=n,this._componentFactoryResolver=t,this._appRef=r,this._defaultInjector=i,this.attachDomPortal=s=>{const a=s.element,l=this._document.createComment("dom-portal");a.parentNode.insertBefore(l,a),this.outletElement.appendChild(a),this._attachedPortal=s,super.setDisposeFn(()=>{l.parentNode&&l.parentNode.replaceChild(a,l)})},this._document=o}attachComponentPortal(n){const r=(n.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(n.component);let i;return n.viewContainerRef?(i=n.viewContainerRef.createComponent(r,n.viewContainerRef.length,n.injector||n.viewContainerRef.injector,n.projectableNodes||void 0),this.setDisposeFn(()=>i.destroy())):(i=r.create(n.injector||this._defaultInjector||Un.NULL),this._appRef.attachView(i.hostView),this.setDisposeFn(()=>{this._appRef.viewCount>0&&this._appRef.detachView(i.hostView),i.destroy()})),this.outletElement.appendChild(this._getComponentRootNode(i)),this._attachedPortal=n,i}attachTemplatePortal(n){let t=n.viewContainerRef,r=t.createEmbeddedView(n.templateRef,n.context,{injector:n.injector});return r.rootNodes.forEach(i=>this.outletElement.appendChild(i)),r.detectChanges(),this.setDisposeFn(()=>{let i=t.indexOf(r);-1!==i&&t.remove(i)}),this._attachedPortal=n,r}dispose(){super.dispose(),this.outletElement.remove()}_getComponentRootNode(n){return n.hostView.rootNodes[0]}}let W3=(()=>{class e extends wI{constructor(t,r,i){super(),this._componentFactoryResolver=t,this._viewContainerRef=r,this._isInitialized=!1,this.attached=new Cn,this.attachDomPortal=o=>{const s=o.element,a=this._document.createComment("dom-portal");o.setAttachedHost(this),s.parentNode.insertBefore(a,s),this._getRootNode().appendChild(s),this._attachedPortal=o,super.setDisposeFn(()=>{a.parentNode&&a.parentNode.replaceChild(s,a)})},this._document=i}get portal(){return this._attachedPortal}set portal(t){this.hasAttached()&&!t&&!this._isInitialized||(this.hasAttached()&&super.detach(),t&&super.attach(t),this._attachedPortal=t||null)}get attachedRef(){return this._attachedRef}ngOnInit(){this._isInitialized=!0}ngOnDestroy(){super.dispose(),this._attachedRef=this._attachedPortal=null}attachComponentPortal(t){t.setAttachedHost(this);const r=null!=t.viewContainerRef?t.viewContainerRef:this._viewContainerRef,o=(t.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(t.component),s=r.createComponent(o,r.length,t.injector||r.injector,t.projectableNodes||void 0);return r!==this._viewContainerRef&&this._getRootNode().appendChild(s.hostView.rootNodes[0]),super.setDisposeFn(()=>s.destroy()),this._attachedPortal=t,this._attachedRef=s,this.attached.emit(s),s}attachTemplatePortal(t){t.setAttachedHost(this);const r=this._viewContainerRef.createEmbeddedView(t.templateRef,t.context,{injector:t.injector});return super.setDisposeFn(()=>this._viewContainerRef.clear()),this._attachedPortal=t,this._attachedRef=r,this.attached.emit(r),r}_getRootNode(){const t=this._viewContainerRef.element.nativeElement;return t.nodeType===t.ELEMENT_NODE?t:t.parentNode}static{this.\u0275fac=function(r){return new(r||e)(te(Hh),te(fs),te(Vt))}}static{this.\u0275dir=Ze({type:e,selectors:[["","cdkPortalOutlet",""]],inputs:{portal:[0,"cdkPortalOutlet","portal"]},outputs:{attached:"attached"},exportAs:["cdkPortalOutlet"],standalone:!0,features:[zt]})}}return e})(),G3=(()=>{class e{static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275mod=Wt({type:e})}static{this.\u0275inj=Yt({})}}return e})();const JJ=["addListener","removeListener"],eee=["addEventListener","removeEventListener"],tee=["on","off"];function EI(e,n,t,r){if(Pt(t)&&(r=t,t=void 0),r)return EI(e,n,t).pipe(sS(r));const[i,o]=function iee(e){return Pt(e.addEventListener)&&Pt(e.removeEventListener)}(e)?eee.map(s=>a=>e[s](n,a,t)):function nee(e){return Pt(e.addListener)&&Pt(e.removeListener)}(e)?JJ.map(q3(e,n)):function ree(e){return Pt(e.on)&&Pt(e.off)}(e)?tee.map(q3(e,n)):[];if(!i&&tS(e))return Bg(s=>EI(s,n,t))(Po(e));if(!i)throw new TypeError("Invalid event target");return new Ln(s=>{const a=(...l)=>s.next(1o(a)})}function q3(e,n){return t=>r=>e[t](n,r)}const i_={schedule(e){let n=requestAnimationFrame,t=cancelAnimationFrame;const{delegate:r}=i_;r&&(n=r.requestAnimationFrame,t=r.cancelAnimationFrame);const i=n(o=>{t=void 0,e(o)});return new an(()=>t?.(i))},requestAnimationFrame(...e){const{delegate:n}=i_;return(n?.requestAnimationFrame||requestAnimationFrame)(...e)},cancelAnimationFrame(...e){const{delegate:n}=i_;return(n?.cancelAnimationFrame||cancelAnimationFrame)(...e)},delegate:void 0};new class see extends rS{flush(n){this._active=!0;const t=this._scheduled;this._scheduled=void 0;const{actions:r}=this;let i;n=n||r.shift();do{if(i=n.execute(n.state,n.delay))break}while((n=r[0])&&n.id===t&&r.shift());if(this._active=!1,i){for(;(n=r[0])&&n.id===t&&r.shift();)n.unsubscribe();throw i}}}(class oee extends nS{constructor(n,t){super(n,t),this.scheduler=n,this.work=t}requestAsyncId(n,t,r=0){return null!==r&&r>0?super.requestAsyncId(n,t,r):(n.actions.push(this),n._scheduled||(n._scheduled=i_.requestAnimationFrame(()=>n.flush(void 0))))}recycleAsyncId(n,t,r=0){var i;if(null!=r?r>0:this.delay>0)return super.recycleAsyncId(n,t,r);const{actions:o}=n;null!=t&&(null===(i=o[o.length-1])||void 0===i?void 0:i.id)!==t&&(i_.cancelAnimationFrame(t),n._scheduled=void 0)}});let CI,lee=1;const f1={};function X3(e){return e in f1&&(delete f1[e],!0)}const cee={setImmediate(e){const n=lee++;return f1[n]=!0,CI||(CI=Promise.resolve()),CI.then(()=>X3(n)&&e()),n},clearImmediate(e){X3(e)}},{setImmediate:uee,clearImmediate:dee}=cee,h1={setImmediate(...e){const{delegate:n}=h1;return(n?.setImmediate||uee)(...e)},clearImmediate(e){const{delegate:n}=h1;return(n?.clearImmediate||dee)(e)},delegate:void 0};new class hee extends rS{flush(n){this._active=!0;const t=this._scheduled;this._scheduled=void 0;const{actions:r}=this;let i;n=n||r.shift();do{if(i=n.execute(n.state,n.delay))break}while((n=r[0])&&n.id===t&&r.shift());if(this._active=!1,i){for(;(n=r[0])&&n.id===t&&r.shift();)n.unsubscribe();throw i}}}(class fee extends nS{constructor(n,t){super(n,t),this.scheduler=n,this.work=t}requestAsyncId(n,t,r=0){return null!==r&&r>0?super.requestAsyncId(n,t,r):(n.actions.push(this),n._scheduled||(n._scheduled=h1.setImmediate(n.flush.bind(n,void 0))))}recycleAsyncId(n,t,r=0){var i;if(null!=r?r>0:this.delay>0)return super.recycleAsyncId(n,t,r);const{actions:o}=n;null!=t&&(null===(i=o[o.length-1])||void 0===i?void 0:i.id)!==t&&(h1.clearImmediate(t),n._scheduled=void 0)}});function Y3(e,n=iS){return function mee(e){return Br((n,t)=>{let r=!1,i=null,o=null,s=!1;const a=()=>{if(o?.unsubscribe(),o=null,r){r=!1;const u=i;i=null,t.next(u)}s&&t.complete()},l=()=>{o=null,s&&t.complete()};n.subscribe(Dr(t,u=>{r=!0,i=u,o||Po(e(u)).subscribe(o=Dr(t,a,l))},()=>{s=!0,(!r||!o||o.closed)&&t.complete()}))})}(()=>function _ee(e=0,n,t=bX){let r=-1;return null!=n&&(hP(n)?t=n:r=n),new Ln(i=>{let o=function gee(e){return e instanceof Date&&!isNaN(e)}(e)?+e-t.now():e;o<0&&(o=0);let s=0;return t.schedule(function(){i.closed||(i.next(s++),0<=r?this.schedule(void 0,r):i.complete())},o)})}(e,n))}let K3=(()=>{class e{constructor(t,r,i){this._ngZone=t,this._platform=r,this._scrolled=new Rt,this._globalSubscription=null,this._scrolledCount=0,this.scrollContainers=new Map,this._document=i}register(t){this.scrollContainers.has(t)||this.scrollContainers.set(t,t.elementScrolled().subscribe(()=>this._scrolled.next(t)))}deregister(t){const r=this.scrollContainers.get(t);r&&(r.unsubscribe(),this.scrollContainers.delete(t))}scrolled(t=20){return this._platform.isBrowser?new Ln(r=>{this._globalSubscription||this._addGlobalListener();const i=t>0?this._scrolled.pipe(Y3(t)).subscribe(r):this._scrolled.subscribe(r);return this._scrolledCount++,()=>{i.unsubscribe(),this._scrolledCount--,this._scrolledCount||this._removeGlobalListener()}}):vs()}ngOnDestroy(){this._removeGlobalListener(),this.scrollContainers.forEach((t,r)=>this.deregister(r)),this._scrolled.complete()}ancestorScrolled(t,r){const i=this.getAncestorScrollContainers(t);return this.scrolled(r).pipe(Lg(o=>!o||i.indexOf(o)>-1))}getAncestorScrollContainers(t){const r=[];return this.scrollContainers.forEach((i,o)=>{this._scrollableContainsElement(o,t)&&r.push(o)}),r}_getWindow(){return this._document.defaultView||window}_scrollableContainsElement(t,r){let i=yp(r),o=t.getElementRef().nativeElement;do{if(i==o)return!0}while(i=i.parentElement);return!1}_addGlobalListener(){this._globalSubscription=this._ngZone.runOutsideAngular(()=>EI(this._getWindow().document,"scroll").subscribe(()=>this._scrolled.next()))}_removeGlobalListener(){this._globalSubscription&&(this._globalSubscription.unsubscribe(),this._globalSubscription=null)}static{this.\u0275fac=function(r){return new(r||e)(ce(ct),ce(xi),ce(Vt,8))}}static{this.\u0275prov=Be({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})(),Z3=(()=>{class e{constructor(t,r,i){this._platform=t,this._change=new Rt,this._changeListener=o=>{this._change.next(o)},this._document=i,r.runOutsideAngular(()=>{if(t.isBrowser){const o=this._getWindow();o.addEventListener("resize",this._changeListener),o.addEventListener("orientationchange",this._changeListener)}this.change().subscribe(()=>this._viewportSize=null)})}ngOnDestroy(){if(this._platform.isBrowser){const t=this._getWindow();t.removeEventListener("resize",this._changeListener),t.removeEventListener("orientationchange",this._changeListener)}this._change.complete()}getViewportSize(){this._viewportSize||this._updateViewportSize();const t={width:this._viewportSize.width,height:this._viewportSize.height};return this._platform.isBrowser||(this._viewportSize=null),t}getViewportRect(){const t=this.getViewportScrollPosition(),{width:r,height:i}=this.getViewportSize();return{top:t.top,left:t.left,bottom:t.top+i,right:t.left+r,height:i,width:r}}getViewportScrollPosition(){if(!this._platform.isBrowser)return{top:0,left:0};const t=this._document,r=this._getWindow(),i=t.documentElement,o=i.getBoundingClientRect();return{top:-o.top||t.body.scrollTop||r.scrollY||i.scrollTop||0,left:-o.left||t.body.scrollLeft||r.scrollX||i.scrollLeft||0}}change(t=20){return t>0?this._change.pipe(Y3(t)):this._change}_getWindow(){return this._document.defaultView||window}_updateViewportSize(){const t=this._getWindow();this._viewportSize=this._platform.isBrowser?{width:t.innerWidth,height:t.innerHeight}:{width:0,height:0}}static{this.\u0275fac=function(r){return new(r||e)(ce(xi),ce(ct),ce(Vt,8))}}static{this.\u0275prov=Be({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})(),TI=(()=>{class e{static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275mod=Wt({type:e})}static{this.\u0275inj=Yt({})}}return e})(),Q3=(()=>{class e{static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275mod=Wt({type:e})}static{this.\u0275inj=Yt({imports:[Vg,TI,Vg,TI]})}}return e})();const J3=yq();class bee{constructor(n,t){this._viewportRuler=n,this._previousHTMLStyles={top:"",left:""},this._isEnabled=!1,this._document=t}attach(){}enable(){if(this._canBeEnabled()){const n=this._document.documentElement;this._previousScrollPosition=this._viewportRuler.getViewportScrollPosition(),this._previousHTMLStyles.left=n.style.left||"",this._previousHTMLStyles.top=n.style.top||"",n.style.left=vr(-this._previousScrollPosition.left),n.style.top=vr(-this._previousScrollPosition.top),n.classList.add("cdk-global-scrollblock"),this._isEnabled=!0}}disable(){if(this._isEnabled){const n=this._document.documentElement,r=n.style,i=this._document.body.style,o=r.scrollBehavior||"",s=i.scrollBehavior||"";this._isEnabled=!1,r.left=this._previousHTMLStyles.left,r.top=this._previousHTMLStyles.top,n.classList.remove("cdk-global-scrollblock"),J3&&(r.scrollBehavior=i.scrollBehavior="auto"),window.scroll(this._previousScrollPosition.left,this._previousScrollPosition.top),J3&&(r.scrollBehavior=o,i.scrollBehavior=s)}}_canBeEnabled(){if(this._document.documentElement.classList.contains("cdk-global-scrollblock")||this._isEnabled)return!1;const t=this._document.body,r=this._viewportRuler.getViewportSize();return t.scrollHeight>r.height||t.scrollWidth>r.width}}class wee{constructor(n,t,r,i){this._scrollDispatcher=n,this._ngZone=t,this._viewportRuler=r,this._config=i,this._scrollSubscription=null,this._detach=()=>{this.disable(),this._overlayRef.hasAttached()&&this._ngZone.run(()=>this._overlayRef.detach())}}attach(n){this._overlayRef=n}enable(){if(this._scrollSubscription)return;const n=this._scrollDispatcher.scrolled(0).pipe(Lg(t=>!t||!this._overlayRef.overlayElement.contains(t.getElementRef().nativeElement)));this._config&&this._config.threshold&&this._config.threshold>1?(this._initialScrollPosition=this._viewportRuler.getViewportScrollPosition().top,this._scrollSubscription=n.subscribe(()=>{const t=this._viewportRuler.getViewportScrollPosition().top;Math.abs(t-this._initialScrollPosition)>this._config.threshold?this._detach():this._overlayRef.updatePosition()})):this._scrollSubscription=n.subscribe(this._detach)}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}class eB{enable(){}disable(){}attach(){}}function DI(e,n){return n.some(t=>e.bottomt.bottom||e.rightt.right)}function tB(e,n){return n.some(t=>e.topt.bottom||e.leftt.right)}class Eee{constructor(n,t,r,i){this._scrollDispatcher=n,this._viewportRuler=t,this._ngZone=r,this._config=i,this._scrollSubscription=null}attach(n){this._overlayRef=n}enable(){this._scrollSubscription||(this._scrollSubscription=this._scrollDispatcher.scrolled(this._config?this._config.scrollThrottle:0).subscribe(()=>{if(this._overlayRef.updatePosition(),this._config&&this._config.autoClose){const t=this._overlayRef.overlayElement.getBoundingClientRect(),{width:r,height:i}=this._viewportRuler.getViewportSize();DI(t,[{width:r,height:i,bottom:i,right:r,top:0,left:0}])&&(this.disable(),this._ngZone.run(()=>this._overlayRef.detach()))}}))}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}let Cee=(()=>{class e{constructor(t,r,i,o){this._scrollDispatcher=t,this._viewportRuler=r,this._ngZone=i,this.noop=()=>new eB,this.close=s=>new wee(this._scrollDispatcher,this._ngZone,this._viewportRuler,s),this.block=()=>new bee(this._viewportRuler,this._document),this.reposition=s=>new Eee(this._scrollDispatcher,this._viewportRuler,this._ngZone,s),this._document=o}static{this.\u0275fac=function(r){return new(r||e)(ce(K3),ce(Z3),ce(ct),ce(Vt))}}static{this.\u0275prov=Be({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})();class nB{constructor(n){if(this.scrollStrategy=new eB,this.panelClass="",this.hasBackdrop=!1,this.backdropClass="cdk-overlay-dark-backdrop",this.disposeOnNavigation=!1,n){const t=Object.keys(n);for(const r of t)void 0!==n[r]&&(this[r]=n[r])}}}class Tee{constructor(n,t){this.connectionPair=n,this.scrollableViewProperties=t}}let rB=(()=>{class e{constructor(t){this._attachedOverlays=[],this._document=t}ngOnDestroy(){this.detach()}add(t){this.remove(t),this._attachedOverlays.push(t)}remove(t){const r=this._attachedOverlays.indexOf(t);r>-1&&this._attachedOverlays.splice(r,1),0===this._attachedOverlays.length&&this.detach()}static{this.\u0275fac=function(r){return new(r||e)(ce(Vt))}}static{this.\u0275prov=Be({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})(),Dee=(()=>{class e extends rB{constructor(t,r){super(t),this._ngZone=r,this._keydownListener=i=>{const o=this._attachedOverlays;for(let s=o.length-1;s>-1;s--)if(o[s]._keydownEvents.observers.length>0){const a=o[s]._keydownEvents;this._ngZone?this._ngZone.run(()=>a.next(i)):a.next(i);break}}}add(t){super.add(t),this._isAttached||(this._ngZone?this._ngZone.runOutsideAngular(()=>this._document.body.addEventListener("keydown",this._keydownListener)):this._document.body.addEventListener("keydown",this._keydownListener),this._isAttached=!0)}detach(){this._isAttached&&(this._document.body.removeEventListener("keydown",this._keydownListener),this._isAttached=!1)}static{this.\u0275fac=function(r){return new(r||e)(ce(Vt),ce(ct,8))}}static{this.\u0275prov=Be({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})(),See=(()=>{class e extends rB{constructor(t,r,i){super(t),this._platform=r,this._ngZone=i,this._cursorStyleIsSet=!1,this._pointerDownListener=o=>{this._pointerDownEventTarget=Ml(o)},this._clickListener=o=>{const s=Ml(o),a="click"===o.type&&this._pointerDownEventTarget?this._pointerDownEventTarget:s;this._pointerDownEventTarget=null;const l=this._attachedOverlays.slice();for(let u=l.length-1;u>-1;u--){const f=l[u];if(f._outsidePointerEvents.observers.length<1||!f.hasAttached())continue;if(iB(f.overlayElement,s)||iB(f.overlayElement,a))break;const h=f._outsidePointerEvents;this._ngZone?this._ngZone.run(()=>h.next(o)):h.next(o)}}}add(t){if(super.add(t),!this._isAttached){const r=this._document.body;this._ngZone?this._ngZone.runOutsideAngular(()=>this._addEventListeners(r)):this._addEventListeners(r),this._platform.IOS&&!this._cursorStyleIsSet&&(this._cursorOriginalValue=r.style.cursor,r.style.cursor="pointer",this._cursorStyleIsSet=!0),this._isAttached=!0}}detach(){if(this._isAttached){const t=this._document.body;t.removeEventListener("pointerdown",this._pointerDownListener,!0),t.removeEventListener("click",this._clickListener,!0),t.removeEventListener("auxclick",this._clickListener,!0),t.removeEventListener("contextmenu",this._clickListener,!0),this._platform.IOS&&this._cursorStyleIsSet&&(t.style.cursor=this._cursorOriginalValue,this._cursorStyleIsSet=!1),this._isAttached=!1}}_addEventListeners(t){t.addEventListener("pointerdown",this._pointerDownListener,!0),t.addEventListener("click",this._clickListener,!0),t.addEventListener("auxclick",this._clickListener,!0),t.addEventListener("contextmenu",this._clickListener,!0)}static{this.\u0275fac=function(r){return new(r||e)(ce(Vt),ce(xi),ce(ct,8))}}static{this.\u0275prov=Be({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})();function iB(e,n){const t=typeof ShadowRoot<"u"&&ShadowRoot;let r=n;for(;r;){if(r===e)return!0;r=t&&r instanceof ShadowRoot?r.host:r.parentNode}return!1}let oB=(()=>{class e{constructor(t,r){this._platform=r,this._document=t}ngOnDestroy(){this._containerElement?.remove()}getContainerElement(){return this._containerElement||this._createContainer(),this._containerElement}_createContainer(){const t="cdk-overlay-container";if(this._platform.isBrowser||XD()){const i=this._document.querySelectorAll(`.${t}[platform="server"], .${t}[platform="test"]`);for(let o=0;othis._backdropClick.next(m),this._backdropTransitionendHandler=m=>{this._disposeBackdrop(m.target)},this._keydownEvents=new Rt,this._outsidePointerEvents=new Rt,this._renders=new Rt,i.scrollStrategy&&(this._scrollStrategy=i.scrollStrategy,this._scrollStrategy.attach(this)),this._positionStrategy=i.positionStrategy,this._afterRenderRef=oa(()=>function WF(e,n){!n?.injector&&Em();const t=n?.injector??De(Un);return Wi(t)?(qi("NgAfterRender"),GF(e,t,n,!1)):qF}(()=>{this._renders.next()},{injector:this._injector}))}get overlayElement(){return this._pane}get backdropElement(){return this._backdropElement}get hostElement(){return this._host}attach(n){!this._host.parentElement&&this._previousHostParent&&this._previousHostParent.appendChild(this._host);const t=this._portalOutlet.attach(n);return this._positionStrategy&&this._positionStrategy.attach(this),this._updateStackingOrder(),this._updateElementSize(),this._updateElementDirection(),this._scrollStrategy&&this._scrollStrategy.enable(),this._afterNextRenderRef?.destroy(),this._afterNextRenderRef=qh(()=>{this.hasAttached()&&this.updatePosition()},{injector:this._injector}),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._locationChanges=this._location.subscribe(()=>this.dispose())),this._outsideClickDispatcher.add(this),"function"==typeof t?.onDestroy&&t.onDestroy(()=>{this.hasAttached()&&this._ngZone.runOutsideAngular(()=>Promise.resolve().then(()=>this.detach()))}),t}detach(){if(!this.hasAttached())return;this.detachBackdrop(),this._togglePointerEvents(!1),this._positionStrategy&&this._positionStrategy.detach&&this._positionStrategy.detach(),this._scrollStrategy&&this._scrollStrategy.disable();const n=this._portalOutlet.detach();return this._detachments.next(),this._keyboardDispatcher.remove(this),this._detachContentWhenEmpty(),this._locationChanges.unsubscribe(),this._outsideClickDispatcher.remove(this),n}dispose(){const n=this.hasAttached();this._positionStrategy&&this._positionStrategy.dispose(),this._disposeScrollStrategy(),this._disposeBackdrop(this._backdropElement),this._locationChanges.unsubscribe(),this._keyboardDispatcher.remove(this),this._portalOutlet.dispose(),this._attachments.complete(),this._backdropClick.complete(),this._keydownEvents.complete(),this._outsidePointerEvents.complete(),this._outsideClickDispatcher.remove(this),this._host?.remove(),this._afterNextRenderRef?.destroy(),this._previousHostParent=this._pane=this._host=null,n&&this._detachments.next(),this._detachments.complete(),this._afterRenderRef.destroy(),this._renders.complete()}hasAttached(){return this._portalOutlet.hasAttached()}backdropClick(){return this._backdropClick}attachments(){return this._attachments}detachments(){return this._detachments}keydownEvents(){return this._keydownEvents}outsidePointerEvents(){return this._outsidePointerEvents}getConfig(){return this._config}updatePosition(){this._positionStrategy&&this._positionStrategy.apply()}updatePositionStrategy(n){n!==this._positionStrategy&&(this._positionStrategy&&this._positionStrategy.dispose(),this._positionStrategy=n,this.hasAttached()&&(n.attach(this),this.updatePosition()))}updateSize(n){this._config={...this._config,...n},this._updateElementSize()}setDirection(n){this._config={...this._config,direction:n},this._updateElementDirection()}addPanelClass(n){this._pane&&this._toggleClasses(this._pane,n,!0)}removePanelClass(n){this._pane&&this._toggleClasses(this._pane,n,!1)}getDirection(){const n=this._config.direction;return n?"string"==typeof n?n:n.value:"ltr"}updateScrollStrategy(n){n!==this._scrollStrategy&&(this._disposeScrollStrategy(),this._scrollStrategy=n,this.hasAttached()&&(n.attach(this),n.enable()))}_updateElementDirection(){this._host.setAttribute("dir",this.getDirection())}_updateElementSize(){if(!this._pane)return;const n=this._pane.style;n.width=vr(this._config.width),n.height=vr(this._config.height),n.minWidth=vr(this._config.minWidth),n.minHeight=vr(this._config.minHeight),n.maxWidth=vr(this._config.maxWidth),n.maxHeight=vr(this._config.maxHeight)}_togglePointerEvents(n){this._pane.style.pointerEvents=n?"":"none"}_attachBackdrop(){const n="cdk-overlay-backdrop-showing";this._backdropElement=this._document.createElement("div"),this._backdropElement.classList.add("cdk-overlay-backdrop"),this._animationsDisabled&&this._backdropElement.classList.add("cdk-overlay-backdrop-noop-animation"),this._config.backdropClass&&this._toggleClasses(this._backdropElement,this._config.backdropClass,!0),this._host.parentElement.insertBefore(this._backdropElement,this._host),this._backdropElement.addEventListener("click",this._backdropClickHandler),!this._animationsDisabled&&typeof requestAnimationFrame<"u"?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>{this._backdropElement&&this._backdropElement.classList.add(n)})}):this._backdropElement.classList.add(n)}_updateStackingOrder(){this._host.nextSibling&&this._host.parentNode.appendChild(this._host)}detachBackdrop(){const n=this._backdropElement;if(n){if(this._animationsDisabled)return void this._disposeBackdrop(n);n.classList.remove("cdk-overlay-backdrop-showing"),this._ngZone.runOutsideAngular(()=>{n.addEventListener("transitionend",this._backdropTransitionendHandler)}),n.style.pointerEvents="none",this._backdropTimeout=this._ngZone.runOutsideAngular(()=>setTimeout(()=>{this._disposeBackdrop(n)},500))}}_toggleClasses(n,t,r){const i=Db(t||[]).filter(o=>!!o);i.length&&(r?n.classList.add(...i):n.classList.remove(...i))}_detachContentWhenEmpty(){this._ngZone.runOutsideAngular(()=>{const n=this._renders.pipe(la(function xee(...e){const n=Ng(e),t=function Vq(e,n){return"number"==typeof KD(e)?e.pop():n}(e,1/0),r=e;return r.length?1===r.length?Po(r[0]):HP(t)(Fd(r,n)):oS}(this._attachments,this._detachments))).subscribe(()=>{(!this._pane||!this._host||0===this._pane.children.length)&&(this._pane&&this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!1),this._host&&this._host.parentElement&&(this._previousHostParent=this._host.parentElement,this._host.remove()),n.unsubscribe())})})}_disposeScrollStrategy(){const n=this._scrollStrategy;n&&(n.disable(),n.detach&&n.detach())}_disposeBackdrop(n){n&&(n.removeEventListener("click",this._backdropClickHandler),n.removeEventListener("transitionend",this._backdropTransitionendHandler),n.remove(),this._backdropElement===n&&(this._backdropElement=null)),this._backdropTimeout&&(clearTimeout(this._backdropTimeout),this._backdropTimeout=void 0)}}const sB="cdk-overlay-connected-position-bounding-box",Aee=/([A-Za-z%]+)$/;class kee{get positions(){return this._preferredPositions}constructor(n,t,r,i,o){this._viewportRuler=t,this._document=r,this._platform=i,this._overlayContainer=o,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 Rt,this._resizeSubscription=an.EMPTY,this._offsetX=0,this._offsetY=0,this._appliedPanelClasses=[],this.positionChanges=this._positionChanges,this.setOrigin(n)}attach(n){this._validatePositions(),n.hostElement.classList.add(sB),this._overlayRef=n,this._boundingBox=n.hostElement,this._pane=n.overlayElement,this._isDisposed=!1,this._isInitialRender=!0,this._lastPosition=null,this._resizeSubscription.unsubscribe(),this._resizeSubscription=this._viewportRuler.change().subscribe(()=>{this._isInitialRender=!0,this.apply()})}apply(){if(this._isDisposed||!this._platform.isBrowser)return;if(!this._isInitialRender&&this._positionLocked&&this._lastPosition)return void this.reapplyLastPosition();this._clearPanelClasses(),this._resetOverlayElementStyles(),this._resetBoundingBoxStyles(),this._viewportRect=this._getNarrowedViewportRect(),this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();const n=this._originRect,t=this._overlayRect,r=this._viewportRect,i=this._containerRect,o=[];let s;for(let a of this._preferredPositions){let l=this._getOriginPoint(n,i,a),u=this._getOverlayPoint(l,t,a),f=this._getOverlayFit(u,t,r,a);if(f.isCompletelyWithinViewport)return this._isPushed=!1,void this._applyPosition(a,l);this._canFitWithFlexibleDimensions(f,u,r)?o.push({position:a,origin:l,overlayRect:t,boundingBoxRect:this._calculateBoundingBoxRect(l,a)}):(!s||s.overlayFit.visibleAreal&&(l=f,a=u)}return this._isPushed=!1,void this._applyPosition(a.position,a.origin)}if(this._canPush)return this._isPushed=!0,void this._applyPosition(s.position,s.originPoint);this._applyPosition(s.position,s.originPoint)}detach(){this._clearPanelClasses(),this._lastPosition=null,this._previousPushAmount=null,this._resizeSubscription.unsubscribe()}dispose(){this._isDisposed||(this._boundingBox&&qd(this._boundingBox.style,{top:"",left:"",right:"",bottom:"",height:"",width:"",alignItems:"",justifyContent:""}),this._pane&&this._resetOverlayElementStyles(),this._overlayRef&&this._overlayRef.hostElement.classList.remove(sB),this.detach(),this._positionChanges.complete(),this._overlayRef=this._boundingBox=null,this._isDisposed=!0)}reapplyLastPosition(){if(this._isDisposed||!this._platform.isBrowser)return;const n=this._lastPosition;if(n){this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._viewportRect=this._getNarrowedViewportRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();const t=this._getOriginPoint(this._originRect,this._containerRect,n);this._applyPosition(n,t)}else this.apply()}withScrollableContainers(n){return this._scrollables=n,this}withPositions(n){return this._preferredPositions=n,-1===n.indexOf(this._lastPosition)&&(this._lastPosition=null),this._validatePositions(),this}withViewportMargin(n){return this._viewportMargin=n,this}withFlexibleDimensions(n=!0){return this._hasFlexibleDimensions=n,this}withGrowAfterOpen(n=!0){return this._growAfterOpen=n,this}withPush(n=!0){return this._canPush=n,this}withLockedPosition(n=!0){return this._positionLocked=n,this}setOrigin(n){return this._origin=n,this}withDefaultOffsetX(n){return this._offsetX=n,this}withDefaultOffsetY(n){return this._offsetY=n,this}withTransformOriginOn(n){return this._transformOriginSelector=n,this}_getOriginPoint(n,t,r){let i,o;if("center"==r.originX)i=n.left+n.width/2;else{const s=this._isRtl()?n.right:n.left,a=this._isRtl()?n.left:n.right;i="start"==r.originX?s:a}return t.left<0&&(i-=t.left),o="center"==r.originY?n.top+n.height/2:"top"==r.originY?n.top:n.bottom,t.top<0&&(o-=t.top),{x:i,y:o}}_getOverlayPoint(n,t,r){let i,o;return i="center"==r.overlayX?-t.width/2:"start"===r.overlayX?this._isRtl()?-t.width:0:this._isRtl()?0:-t.width,o="center"==r.overlayY?-t.height/2:"top"==r.overlayY?0:-t.height,{x:n.x+i,y:n.y+o}}_getOverlayFit(n,t,r,i){const o=lB(t);let{x:s,y:a}=n,l=this._getOffset(i,"x"),u=this._getOffset(i,"y");l&&(s+=l),u&&(a+=u);let m=0-a,g=a+o.height-r.height,v=this._subtractOverflows(o.width,0-s,s+o.width-r.width),_=this._subtractOverflows(o.height,m,g),x=v*_;return{visibleArea:x,isCompletelyWithinViewport:o.width*o.height===x,fitsInViewportVertically:_===o.height,fitsInViewportHorizontally:v==o.width}}_canFitWithFlexibleDimensions(n,t,r){if(this._hasFlexibleDimensions){const i=r.bottom-t.y,o=r.right-t.x,s=aB(this._overlayRef.getConfig().minHeight),a=aB(this._overlayRef.getConfig().minWidth);return(n.fitsInViewportVertically||null!=s&&s<=i)&&(n.fitsInViewportHorizontally||null!=a&&a<=o)}return!1}_pushOverlayOnScreen(n,t,r){if(this._previousPushAmount&&this._positionLocked)return{x:n.x+this._previousPushAmount.x,y:n.y+this._previousPushAmount.y};const i=lB(t),o=this._viewportRect,s=Math.max(n.x+i.width-o.width,0),a=Math.max(n.y+i.height-o.height,0),l=Math.max(o.top-r.top-n.y,0),u=Math.max(o.left-r.left-n.x,0);let f=0,h=0;return f=i.width<=o.width?u||-s:n.xv&&!this._isInitialRender&&!this._growAfterOpen&&(s=n.y-v/2)}if("end"===t.overlayX&&!i||"start"===t.overlayX&&i)m=r.width-n.x+2*this._viewportMargin,f=n.x-this._viewportMargin;else if("start"===t.overlayX&&!i||"end"===t.overlayX&&i)h=n.x,f=r.right-n.x;else{const g=Math.min(r.right-n.x+r.left,n.x),v=this._lastBoundingBoxSize.width;f=2*g,h=n.x-g,f>v&&!this._isInitialRender&&!this._growAfterOpen&&(h=n.x-v/2)}return{top:s,left:h,bottom:a,right:m,width:f,height:o}}_setBoundingBoxStyles(n,t){const r=this._calculateBoundingBoxRect(n,t);!this._isInitialRender&&!this._growAfterOpen&&(r.height=Math.min(r.height,this._lastBoundingBoxSize.height),r.width=Math.min(r.width,this._lastBoundingBoxSize.width));const i={};if(this._hasExactPosition())i.top=i.left="0",i.bottom=i.right=i.maxHeight=i.maxWidth="",i.width=i.height="100%";else{const o=this._overlayRef.getConfig().maxHeight,s=this._overlayRef.getConfig().maxWidth;i.height=vr(r.height),i.top=vr(r.top),i.bottom=vr(r.bottom),i.width=vr(r.width),i.left=vr(r.left),i.right=vr(r.right),i.alignItems="center"===t.overlayX?"center":"end"===t.overlayX?"flex-end":"flex-start",i.justifyContent="center"===t.overlayY?"center":"bottom"===t.overlayY?"flex-end":"flex-start",o&&(i.maxHeight=vr(o)),s&&(i.maxWidth=vr(s))}this._lastBoundingBoxSize=r,qd(this._boundingBox.style,i)}_resetBoundingBoxStyles(){qd(this._boundingBox.style,{top:"0",left:"0",right:"0",bottom:"0",height:"",width:"",alignItems:"",justifyContent:""})}_resetOverlayElementStyles(){qd(this._pane.style,{top:"",left:"",bottom:"",right:"",position:"",transform:""})}_setOverlayElementStyles(n,t){const r={},i=this._hasExactPosition(),o=this._hasFlexibleDimensions,s=this._overlayRef.getConfig();if(i){const f=this._viewportRuler.getViewportScrollPosition();qd(r,this._getExactOverlayY(t,n,f)),qd(r,this._getExactOverlayX(t,n,f))}else r.position="static";let a="",l=this._getOffset(t,"x"),u=this._getOffset(t,"y");l&&(a+=`translateX(${l}px) `),u&&(a+=`translateY(${u}px)`),r.transform=a.trim(),s.maxHeight&&(i?r.maxHeight=vr(s.maxHeight):o&&(r.maxHeight="")),s.maxWidth&&(i?r.maxWidth=vr(s.maxWidth):o&&(r.maxWidth="")),qd(this._pane.style,r)}_getExactOverlayY(n,t,r){let i={top:"",bottom:""},o=this._getOverlayPoint(t,this._overlayRect,n);return this._isPushed&&(o=this._pushOverlayOnScreen(o,this._overlayRect,r)),"bottom"===n.overlayY?i.bottom=this._document.documentElement.clientHeight-(o.y+this._overlayRect.height)+"px":i.top=vr(o.y),i}_getExactOverlayX(n,t,r){let s,i={left:"",right:""},o=this._getOverlayPoint(t,this._overlayRect,n);return this._isPushed&&(o=this._pushOverlayOnScreen(o,this._overlayRect,r)),s=this._isRtl()?"end"===n.overlayX?"left":"right":"end"===n.overlayX?"right":"left","right"===s?i.right=this._document.documentElement.clientWidth-(o.x+this._overlayRect.width)+"px":i.left=vr(o.x),i}_getScrollVisibility(){const n=this._getOriginRect(),t=this._pane.getBoundingClientRect(),r=this._scrollables.map(i=>i.getElementRef().nativeElement.getBoundingClientRect());return{isOriginClipped:tB(n,r),isOriginOutsideView:DI(n,r),isOverlayClipped:tB(t,r),isOverlayOutsideView:DI(t,r)}}_subtractOverflows(n,...t){return t.reduce((r,i)=>r-Math.max(i,0),n)}_getNarrowedViewportRect(){const n=this._document.documentElement.clientWidth,t=this._document.documentElement.clientHeight,r=this._viewportRuler.getViewportScrollPosition();return{top:r.top+this._viewportMargin,left:r.left+this._viewportMargin,right:r.left+n-this._viewportMargin,bottom:r.top+t-this._viewportMargin,width:n-2*this._viewportMargin,height:t-2*this._viewportMargin}}_isRtl(){return"rtl"===this._overlayRef.getDirection()}_hasExactPosition(){return!this._hasFlexibleDimensions||this._isPushed}_getOffset(n,t){return"x"===t?null==n.offsetX?this._offsetX:n.offsetX:null==n.offsetY?this._offsetY:n.offsetY}_validatePositions(){}_addPanelClasses(n){this._pane&&Db(n).forEach(t=>{""!==t&&-1===this._appliedPanelClasses.indexOf(t)&&(this._appliedPanelClasses.push(t),this._pane.classList.add(t))})}_clearPanelClasses(){this._pane&&(this._appliedPanelClasses.forEach(n=>{this._pane.classList.remove(n)}),this._appliedPanelClasses=[])}_getOriginRect(){const n=this._origin;if(n instanceof _n)return n.nativeElement.getBoundingClientRect();if(n instanceof Element)return n.getBoundingClientRect();const t=n.width||0,r=n.height||0;return{top:n.y,bottom:n.y+r,left:n.x,right:n.x+t,height:r,width:t}}}function qd(e,n){for(let t in n)n.hasOwnProperty(t)&&(e[t]=n[t]);return e}function aB(e){if("number"!=typeof e&&null!=e){const[n,t]=e.split(Aee);return t&&"px"!==t?null:parseFloat(n)}return e||null}function lB(e){return{top:Math.floor(e.top),right:Math.floor(e.right),bottom:Math.floor(e.bottom),left:Math.floor(e.left),width:Math.floor(e.width),height:Math.floor(e.height)}}const cB="cdk-global-overlay-wrapper";class Fee{constructor(){this._cssPosition="static",this._topOffset="",this._bottomOffset="",this._alignItems="",this._xPosition="",this._xOffset="",this._width="",this._height="",this._isDisposed=!1}attach(n){const t=n.getConfig();this._overlayRef=n,this._width&&!t.width&&n.updateSize({width:this._width}),this._height&&!t.height&&n.updateSize({height:this._height}),n.hostElement.classList.add(cB),this._isDisposed=!1}top(n=""){return this._bottomOffset="",this._topOffset=n,this._alignItems="flex-start",this}left(n=""){return this._xOffset=n,this._xPosition="left",this}bottom(n=""){return this._topOffset="",this._bottomOffset=n,this._alignItems="flex-end",this}right(n=""){return this._xOffset=n,this._xPosition="right",this}start(n=""){return this._xOffset=n,this._xPosition="start",this}end(n=""){return this._xOffset=n,this._xPosition="end",this}width(n=""){return this._overlayRef?this._overlayRef.updateSize({width:n}):this._width=n,this}height(n=""){return this._overlayRef?this._overlayRef.updateSize({height:n}):this._height=n,this}centerHorizontally(n=""){return this.left(n),this._xPosition="center",this}centerVertically(n=""){return this.top(n),this._alignItems="center",this}apply(){if(!this._overlayRef||!this._overlayRef.hasAttached())return;const n=this._overlayRef.overlayElement.style,t=this._overlayRef.hostElement.style,r=this._overlayRef.getConfig(),{width:i,height:o,maxWidth:s,maxHeight:a}=r,l=!("100%"!==i&&"100vw"!==i||s&&"100%"!==s&&"100vw"!==s),u=!("100%"!==o&&"100vh"!==o||a&&"100%"!==a&&"100vh"!==a),f=this._xPosition,h=this._xOffset,m="rtl"===this._overlayRef.getConfig().direction;let g="",v="",_="";l?_="flex-start":"center"===f?(_="center",m?v=h:g=h):m?"left"===f||"end"===f?(_="flex-end",g=h):("right"===f||"start"===f)&&(_="flex-start",v=h):"left"===f||"start"===f?(_="flex-start",g=h):("right"===f||"end"===f)&&(_="flex-end",v=h),n.position=this._cssPosition,n.marginLeft=l?"0":g,n.marginTop=u?"0":this._topOffset,n.marginBottom=this._bottomOffset,n.marginRight=l?"0":v,t.justifyContent=_,t.alignItems=u?"flex-start":this._alignItems}dispose(){if(this._isDisposed||!this._overlayRef)return;const n=this._overlayRef.overlayElement.style,t=this._overlayRef.hostElement,r=t.style;t.classList.remove(cB),r.justifyContent=r.alignItems=n.marginTop=n.marginBottom=n.marginLeft=n.marginRight=n.position="",this._overlayRef=null,this._isDisposed=!0}}let Ree=(()=>{class e{constructor(t,r,i,o){this._viewportRuler=t,this._document=r,this._platform=i,this._overlayContainer=o}global(){return new Fee}flexibleConnectedTo(t){return new kee(t,this._viewportRuler,this._document,this._platform,this._overlayContainer)}static{this.\u0275fac=function(r){return new(r||e)(ce(Z3),ce(Vt),ce(xi),ce(oB))}}static{this.\u0275prov=Be({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})(),Oee=0,Xd=(()=>{class e{constructor(t,r,i,o,s,a,l,u,f,h,m,g){this.scrollStrategies=t,this._overlayContainer=r,this._componentFactoryResolver=i,this._positionBuilder=o,this._keyboardDispatcher=s,this._injector=a,this._ngZone=l,this._document=u,this._directionality=f,this._location=h,this._outsideClickDispatcher=m,this._animationsModuleType=g}create(t){const r=this._createHostElement(),i=this._createPaneElement(r),o=this._createPortalOutlet(i),s=new nB(t);return s.direction=s.direction||this._directionality.value,new Iee(o,r,i,s,this._ngZone,this._keyboardDispatcher,this._document,this._location,this._outsideClickDispatcher,"NoopAnimations"===this._animationsModuleType,this._injector.get(Li))}position(){return this._positionBuilder}_createPaneElement(t){const r=this._document.createElement("div");return r.id="cdk-overlay-"+Oee++,r.classList.add("cdk-overlay-pane"),t.appendChild(r),r}_createHostElement(){const t=this._document.createElement("div");return this._overlayContainer.getContainerElement().appendChild(t),t}_createPortalOutlet(t){return this._appRef||(this._appRef=this._injector.get(Pa)),new QJ(t,this._componentFactoryResolver,this._appRef,this._injector,this._document)}static{this.\u0275fac=function(r){return new(r||e)(ce(Cee),ce(oB),ce(Hh),ce(Ree),ce(Dee),ce(Un),ce(ct),ce(Vt),ce(fS),ce(gN),ce(See),ce(Qs,8))}}static{this.\u0275prov=Be({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})();const Lee={provide:new xe("cdk-connected-overlay-scroll-strategy",{providedIn:"root",factory:()=>{const e=De(Xd);return()=>e.scrollStrategies.reposition()}}),deps:[Xd],useFactory:function Pee(e){return()=>e.scrollStrategies.reposition()}};let uB=(()=>{class e{static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275mod=Wt({type:e})}static{this.\u0275inj=Yt({providers:[Xd,Lee],imports:[Vg,G3,Q3,Q3]})}}return e})();function Bee(e,n){if(1&e){const t=El();Xe(0,"div",1)(1,"button",2),yn("click",function(){return ho(t),Ui(oi().action())}),Zt(2),Ye()()}if(2&e){const t=oi();at(2),Tl(" ",t.data.action," ")}}const Vee=["label"];function Uee(e,n){}const Hee=Math.pow(2,31)-1;class p1{constructor(n,t){this._overlayRef=t,this._afterDismissed=new Rt,this._afterOpened=new Rt,this._onAction=new Rt,this._dismissedByAction=!1,this.containerInstance=n,n._onExit.subscribe(()=>this._finishDismiss())}dismiss(){this._afterDismissed.closed||this.containerInstance.exit(),clearTimeout(this._durationTimeoutId)}dismissWithAction(){this._onAction.closed||(this._dismissedByAction=!0,this._onAction.next(),this._onAction.complete(),this.dismiss()),clearTimeout(this._durationTimeoutId)}closeWithAction(){this.dismissWithAction()}_dismissAfter(n){this._durationTimeoutId=setTimeout(()=>this.dismiss(),Math.min(n,Hee))}_open(){this._afterOpened.closed||(this._afterOpened.next(),this._afterOpened.complete())}_finishDismiss(){this._overlayRef.dispose(),this._onAction.closed||this._onAction.complete(),this._afterDismissed.next({dismissedByAction:this._dismissedByAction}),this._afterDismissed.complete(),this._dismissedByAction=!1}afterDismissed(){return this._afterDismissed}afterOpened(){return this.containerInstance._onEnter}onAction(){return this._onAction}}const SI=new xe("MatSnackBarData");class m1{constructor(){this.politeness="assertive",this.announcementMessage="",this.duration=0,this.data=null,this.horizontalPosition="center",this.verticalPosition="bottom"}}let dB=(()=>{class e{static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275dir=Ze({type:e,selectors:[["","matSnackBarLabel",""]],hostAttrs:[1,"mat-mdc-snack-bar-label","mdc-snackbar__label"],standalone:!0})}}return e})(),fB=(()=>{class e{static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275dir=Ze({type:e,selectors:[["","matSnackBarActions",""]],hostAttrs:[1,"mat-mdc-snack-bar-actions","mdc-snackbar__actions"],standalone:!0})}}return e})(),hB=(()=>{class e{static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275dir=Ze({type:e,selectors:[["","matSnackBarAction",""]],hostAttrs:[1,"mat-mdc-snack-bar-action","mdc-snackbar__action"],standalone:!0})}}return e})(),pB=(()=>{class e{constructor(t,r){this.snackBarRef=t,this.data=r}action(){this.snackBarRef.dismissWithAction()}get hasAction(){return!!this.data.action}static{this.\u0275fac=function(r){return new(r||e)(te(p1),te(SI))}}static{this.\u0275cmp=An({type:e,selectors:[["simple-snack-bar"]],hostAttrs:[1,"mat-mdc-simple-snack-bar"],exportAs:["matSnackBar"],standalone:!0,features:[Dl],decls:3,vars:2,consts:[["matSnackBarLabel",""],["matSnackBarActions",""],["mat-button","","matSnackBarAction","",3,"click"]],template:function(r,i){1&r&&(Xe(0,"div",0),Zt(1),Ye(),ps(2,Bee,3,1,"div",1)),2&r&&(at(),Tl(" ",i.data.message,"\n"),at(),ii(i.hasAction?2:-1))},dependencies:[yI,dB,fB,hB],styles:[".mat-mdc-simple-snack-bar{display:flex}"],encapsulation:2,changeDetection:0})}}return e})();const jee={snackBarState:Kg("state",[Zg("void, hidden",vo({transform:"scale(0.8)",opacity:0})),Zg("visible",vo({transform:"scale(1)",opacity:1})),zd("* => visible",jd("150ms cubic-bezier(0, 0, 0.2, 1)")),zd("* => void, * => hidden",jd("75ms cubic-bezier(0.4, 0.0, 1, 1)",vo({opacity:0})))])};let zee=0,mB=(()=>{class e extends wI{constructor(t,r,i,o,s){super(),this._ngZone=t,this._elementRef=r,this._changeDetectorRef=i,this._platform=o,this.snackBarConfig=s,this._document=De(Vt),this._trackedModals=new Set,this._announceDelay=150,this._destroyed=!1,this._onAnnounce=new Rt,this._onExit=new Rt,this._onEnter=new Rt,this._animationState="void",this._liveElementId="mat-snack-bar-container-live-"+zee++,this.attachDomPortal=a=>{this._assertNotAttached();const l=this._portalOutlet.attachDomPortal(a);return this._afterPortalAttached(),l},this._live="assertive"!==s.politeness||s.announcementMessage?"off"===s.politeness?"off":"polite":"assertive",this._platform.FIREFOX&&("polite"===this._live&&(this._role="status"),"assertive"===this._live&&(this._role="alert"))}attachComponentPortal(t){this._assertNotAttached();const r=this._portalOutlet.attachComponentPortal(t);return this._afterPortalAttached(),r}attachTemplatePortal(t){this._assertNotAttached();const r=this._portalOutlet.attachTemplatePortal(t);return this._afterPortalAttached(),r}onAnimationEnd(t){const{fromState:r,toState:i}=t;if(("void"===i&&"void"!==r||"hidden"===i)&&this._completeExit(),"visible"===i){const o=this._onEnter;this._ngZone.run(()=>{o.next(),o.complete()})}}enter(){this._destroyed||(this._animationState="visible",this._changeDetectorRef.markForCheck(),this._changeDetectorRef.detectChanges(),this._screenReaderAnnounce())}exit(){return this._ngZone.run(()=>{this._animationState="hidden",this._changeDetectorRef.markForCheck(),this._elementRef.nativeElement.setAttribute("mat-exit",""),clearTimeout(this._announceTimeoutId)}),this._onExit}ngOnDestroy(){this._destroyed=!0,this._clearFromModals(),this._completeExit()}_completeExit(){queueMicrotask(()=>{this._onExit.next(),this._onExit.complete()})}_afterPortalAttached(){const t=this._elementRef.nativeElement,r=this.snackBarConfig.panelClass;r&&(Array.isArray(r)?r.forEach(s=>t.classList.add(s)):t.classList.add(r)),this._exposeToModals();const i=this._label.nativeElement,o="mdc-snackbar__label";i.classList.toggle(o,!i.querySelector(`.${o}`))}_exposeToModals(){const t=this._liveElementId,r=this._document.querySelectorAll('body > .cdk-overlay-container [aria-modal="true"]');for(let i=0;i{const r=t.getAttribute("aria-owns");if(r){const i=r.replace(this._liveElementId,"").trim();i.length>0?t.setAttribute("aria-owns",i):t.removeAttribute("aria-owns")}}),this._trackedModals.clear()}_assertNotAttached(){this._portalOutlet.hasAttached()}_screenReaderAnnounce(){this._announceTimeoutId||this._ngZone.runOutsideAngular(()=>{this._announceTimeoutId=setTimeout(()=>{const t=this._elementRef.nativeElement.querySelector("[aria-hidden]"),r=this._elementRef.nativeElement.querySelector("[aria-live]");if(t&&r){let i=null;this._platform.isBrowser&&document.activeElement instanceof HTMLElement&&t.contains(document.activeElement)&&(i=document.activeElement),t.removeAttribute("aria-hidden"),r.appendChild(t),i?.focus(),this._onAnnounce.next(),this._onAnnounce.complete()}},this._announceDelay)})}static{this.\u0275fac=function(r){return new(r||e)(te(ct),te(_n),te(Il),te(xi),te(m1))}}static{this.\u0275cmp=An({type:e,selectors:[["mat-snack-bar-container"]],viewQuery:function(r,i){if(1&r&&(Na(W3,7),Na(Vee,7)),2&r){let o;ra(o=ia())&&(i._portalOutlet=o.first),ra(o=ia())&&(i._label=o.first)}},hostAttrs:[1,"mdc-snackbar","mat-mdc-snack-bar-container"],hostVars:1,hostBindings:function(r,i){1&r&&$T("@state.done",function(s){return i.onAnimationEnd(s)}),2&r&&HT("@state",i._animationState)},standalone:!0,features:[zt,Dl],decls:6,vars:3,consts:[["label",""],[1,"mdc-snackbar__surface","mat-mdc-snackbar-surface"],[1,"mat-mdc-snack-bar-label"],["aria-hidden","true"],["cdkPortalOutlet",""]],template:function(r,i){1&r&&(Xe(0,"div",1)(1,"div",2,0)(3,"div",3),ps(4,Uee,0,0,"ng-template",4),Ye(),dr(5,"div"),Ye()()),2&r&&(at(5),yi("aria-live",i._live)("role",i._role)("id",i._liveElementId))},dependencies:[W3],styles:[".mat-mdc-snack-bar-container{display:flex;align-items:center;justify-content:center;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0);margin:8px}.mat-mdc-snack-bar-handset .mat-mdc-snack-bar-container{width:100vw}.mat-mdc-snackbar-surface{box-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);display:flex;align-items:center;justify-content:flex-start;box-sizing:border-box;padding-left:0;padding-right:8px}[dir=rtl] .mat-mdc-snackbar-surface{padding-right:0;padding-left:8px}.mat-mdc-snack-bar-container .mat-mdc-snackbar-surface{min-width:344px;max-width:672px}.mat-mdc-snack-bar-handset .mat-mdc-snackbar-surface{width:100%;min-width:0}.cdk-high-contrast-active .mat-mdc-snackbar-surface{outline:solid 1px}.mat-mdc-snack-bar-container .mat-mdc-snackbar-surface{color:var(--mdc-snackbar-supporting-text-color, var(--mat-app-inverse-on-surface));border-radius:var(--mdc-snackbar-container-shape, var(--mat-app-corner-extra-small));background-color:var(--mdc-snackbar-container-color, var(--mat-app-inverse-surface))}.mdc-snackbar__label{width:100%;flex-grow:1;box-sizing:border-box;margin:0;padding:14px 8px 14px 16px}[dir=rtl] .mdc-snackbar__label{padding-left:8px;padding-right:16px}.mat-mdc-snack-bar-container .mdc-snackbar__label{font-family:var(--mdc-snackbar-supporting-text-font, var(--mat-app-body-medium-font));font-size:var(--mdc-snackbar-supporting-text-size, var(--mat-app-body-medium-size));font-weight:var(--mdc-snackbar-supporting-text-weight, var(--mat-app-body-medium-weight));line-height:var(--mdc-snackbar-supporting-text-line-height, var(--mat-app-body-medium-line-height))}.mat-mdc-snack-bar-actions{display:flex;flex-shrink:0;align-items:center;box-sizing:border-box}.mat-mdc-snack-bar-handset,.mat-mdc-snack-bar-container,.mat-mdc-snack-bar-label{flex:1 1 auto}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled){--mat-text-button-state-layer-color:currentColor;--mat-text-button-ripple-color:currentColor}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled).mat-unthemed{color:var(--mat-snack-bar-button-color, var(--mat-app-inverse-primary))}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled) .mat-ripple-element{opacity:.1}"],encapsulation:2,data:{animation:[jee.snackBarState]}})}}return e})();const Wee=new xe("mat-snack-bar-default-options",{providedIn:"root",factory:function $ee(){return new m1}});let gB=(()=>{class e{get _openedSnackBarRef(){const t=this._parentSnackBar;return t?t._openedSnackBarRef:this._snackBarRefAtThisLevel}set _openedSnackBarRef(t){this._parentSnackBar?this._parentSnackBar._openedSnackBarRef=t:this._snackBarRefAtThisLevel=t}constructor(t,r,i,o,s,a){this._overlay=t,this._live=r,this._injector=i,this._breakpointObserver=o,this._parentSnackBar=s,this._defaultConfig=a,this._snackBarRefAtThisLevel=null,this.simpleSnackBarComponent=pB,this.snackBarContainerComponent=mB,this.handsetCssClass="mat-mdc-snack-bar-handset"}openFromComponent(t,r){return this._attach(t,r)}openFromTemplate(t,r){return this._attach(t,r)}open(t,r="",i){const o={...this._defaultConfig,...i};return o.data={message:t,action:r},o.announcementMessage===t&&(o.announcementMessage=void 0),this.openFromComponent(this.simpleSnackBarComponent,o)}dismiss(){this._openedSnackBarRef&&this._openedSnackBarRef.dismiss()}ngOnDestroy(){this._snackBarRefAtThisLevel&&this._snackBarRefAtThisLevel.dismiss()}_attachSnackBarContainer(t,r){const o=Un.create({parent:r&&r.viewContainerRef&&r.viewContainerRef.injector||this._injector,providers:[{provide:m1,useValue:r}]}),s=new d1(this.snackBarContainerComponent,r.viewContainerRef,o),a=t.attach(s);return a.instance.snackBarConfig=r,a.instance}_attach(t,r){const i={...new m1,...this._defaultConfig,...r},o=this._createOverlay(i),s=this._attachSnackBarContainer(o,i),a=new p1(s,o);if(t instanceof Ma){const l=new $3(t,null,{$implicit:i.data,snackBarRef:a});a.instance=s.attachTemplatePortal(l)}else{const l=this._createInjector(i,a),u=new d1(t,void 0,l),f=s.attachComponentPortal(u);a.instance=f.instance}return this._breakpointObserver.observe("(max-width: 599.98px) and (orientation: portrait)").pipe(la(o.detachments())).subscribe(l=>{o.overlayElement.classList.toggle(this.handsetCssClass,l.matches)}),i.announcementMessage&&s._onAnnounce.subscribe(()=>{this._live.announce(i.announcementMessage,i.politeness)}),this._animateSnackBar(a,i),this._openedSnackBarRef=a,this._openedSnackBarRef}_animateSnackBar(t,r){t.afterDismissed().subscribe(()=>{this._openedSnackBarRef==t&&(this._openedSnackBarRef=null),r.announcementMessage&&this._live.clear()}),this._openedSnackBarRef?(this._openedSnackBarRef.afterDismissed().subscribe(()=>{t.containerInstance.enter()}),this._openedSnackBarRef.dismiss()):t.containerInstance.enter(),r.duration&&r.duration>0&&t.afterOpened().subscribe(()=>t._dismissAfter(r.duration))}_createOverlay(t){const r=new nB;r.direction=t.direction;let i=this._overlay.position().global();const o="rtl"===t.direction,s="left"===t.horizontalPosition||"start"===t.horizontalPosition&&!o||"end"===t.horizontalPosition&&o,a=!s&&"center"!==t.horizontalPosition;return s?i.left("0"):a?i.right("0"):i.centerHorizontally(),"top"===t.verticalPosition?i.top("0"):i.bottom("0"),r.positionStrategy=i,this._overlay.create(r)}_createInjector(t,r){return Un.create({parent:t&&t.viewContainerRef&&t.viewContainerRef.injector||this._injector,providers:[{provide:p1,useValue:r},{provide:SI,useValue:t.data}]})}static{this.\u0275fac=function(r){return new(r||e)(ce(Xd),ce(uY),ce(Un),ce(zP),ce(e,12),ce(Wee))}}static{this.\u0275prov=Be({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})(),Gee=(()=>{class e{static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275mod=Wt({type:e})}static{this.\u0275inj=Yt({providers:[gB],imports:[uB,G3,L3,bi,pB,bi]})}}return e})();const qee=["tooltip"],vB=new xe("mat-tooltip-scroll-strategy",{providedIn:"root",factory:()=>{const e=De(Xd);return()=>e.scrollStrategies.reposition({scrollThrottle:20})}}),Yee={provide:vB,deps:[Xd],useFactory:function Xee(e){return()=>e.scrollStrategies.reposition({scrollThrottle:20})}},Zee=new xe("mat-tooltip-default-options",{providedIn:"root",factory:function Kee(){return{showDelay:0,hideDelay:0,touchendHideDelay:1500}}}),yB="tooltip-panel",xB=vp({passive:!0});let nte=(()=>{class e{get position(){return this._position}set position(t){t!==this._position&&(this._position=t,this._overlayRef&&(this._updatePosition(this._overlayRef),this._tooltipInstance?.show(0),this._overlayRef.updatePosition()))}get positionAtOrigin(){return this._positionAtOrigin}set positionAtOrigin(t){this._positionAtOrigin=PP(t),this._detach(),this._overlayRef=null}get disabled(){return this._disabled}set disabled(t){const r=PP(t);this._disabled!==r&&(this._disabled=r,r?this.hide(0):this._setupPointerEnterEventsIfNeeded(),this._syncAriaDescription(this.message))}get showDelay(){return this._showDelay}set showDelay(t){this._showDelay=LP(t)}get hideDelay(){return this._hideDelay}set hideDelay(t){this._hideDelay=LP(t),this._tooltipInstance&&(this._tooltipInstance._mouseLeaveHideDelay=this._hideDelay)}get message(){return this._message}set message(t){const r=this._message;this._message=null!=t?String(t).trim():"",!this._message&&this._isTooltipVisible()?this.hide(0):(this._setupPointerEnterEventsIfNeeded(),this._updateTooltipMessage()),this._syncAriaDescription(r)}get tooltipClass(){return this._tooltipClass}set tooltipClass(t){this._tooltipClass=t,this._tooltipInstance&&this._setTooltipClass(this._tooltipClass)}constructor(t,r,i,o,s,a,l,u,f,h,m,g){this._overlay=t,this._elementRef=r,this._scrollDispatcher=i,this._viewContainerRef=o,this._ngZone=s,this._platform=a,this._ariaDescriber=l,this._focusMonitor=u,this._dir=h,this._defaultOptions=m,this._position="below",this._positionAtOrigin=!1,this._disabled=!1,this._viewInitialized=!1,this._pointerExitEventsInitialized=!1,this._tooltipComponent=rte,this._viewportMargin=8,this._cssClassPrefix="mat-mdc",this.touchGestures="auto",this._message="",this._passiveListeners=[],this._touchstartTimeout=null,this._destroyed=new Rt,this._injector=De(Un),this._scrollStrategy=f,this._document=g,m&&(this._showDelay=m.showDelay,this._hideDelay=m.hideDelay,m.position&&(this.position=m.position),m.positionAtOrigin&&(this.positionAtOrigin=m.positionAtOrigin),m.touchGestures&&(this.touchGestures=m.touchGestures),m.tooltipClass&&(this.tooltipClass=m.tooltipClass)),h.change.pipe(la(this._destroyed)).subscribe(()=>{this._overlayRef&&this._updatePosition(this._overlayRef)}),this._viewportMargin=8}ngAfterViewInit(){this._viewInitialized=!0,this._setupPointerEnterEventsIfNeeded(),this._focusMonitor.monitor(this._elementRef).pipe(la(this._destroyed)).subscribe(t=>{t?"keyboard"===t&&this._ngZone.run(()=>this.show()):this._ngZone.run(()=>this.hide(0))})}ngOnDestroy(){const t=this._elementRef.nativeElement;this._touchstartTimeout&&clearTimeout(this._touchstartTimeout),this._overlayRef&&(this._overlayRef.dispose(),this._tooltipInstance=null),this._passiveListeners.forEach(([r,i])=>{t.removeEventListener(r,i,xB)}),this._passiveListeners.length=0,this._destroyed.next(),this._destroyed.complete(),this._ariaDescriber.removeDescription(t,this.message,"tooltip"),this._focusMonitor.stopMonitoring(t)}show(t=this.showDelay,r){if(this.disabled||!this.message||this._isTooltipVisible())return void this._tooltipInstance?._cancelPendingAnimations();const i=this._createOverlay(r);this._detach(),this._portal=this._portal||new d1(this._tooltipComponent,this._viewContainerRef);const o=this._tooltipInstance=i.attach(this._portal).instance;o._triggerElement=this._elementRef.nativeElement,o._mouseLeaveHideDelay=this._hideDelay,o.afterHidden().pipe(la(this._destroyed)).subscribe(()=>this._detach()),this._setTooltipClass(this._tooltipClass),this._updateTooltipMessage(),o.show(t)}hide(t=this.hideDelay){const r=this._tooltipInstance;r&&(r.isVisible()?r.hide(t):(r._cancelPendingAnimations(),this._detach()))}toggle(t){this._isTooltipVisible()?this.hide():this.show(void 0,t)}_isTooltipVisible(){return!!this._tooltipInstance&&this._tooltipInstance.isVisible()}_createOverlay(t){if(this._overlayRef){const o=this._overlayRef.getConfig().positionStrategy;if((!this.positionAtOrigin||!t)&&o._origin instanceof _n)return this._overlayRef;this._detach()}const r=this._scrollDispatcher.getAncestorScrollContainers(this._elementRef),i=this._overlay.position().flexibleConnectedTo(this.positionAtOrigin&&t||this._elementRef).withTransformOriginOn(`.${this._cssClassPrefix}-tooltip`).withFlexibleDimensions(!1).withViewportMargin(this._viewportMargin).withScrollableContainers(r);return i.positionChanges.pipe(la(this._destroyed)).subscribe(o=>{this._updateCurrentPositionClass(o.connectionPair),this._tooltipInstance&&o.scrollableViewProperties.isOverlayClipped&&this._tooltipInstance.isVisible()&&this._ngZone.run(()=>this.hide(0))}),this._overlayRef=this._overlay.create({direction:this._dir,positionStrategy:i,panelClass:`${this._cssClassPrefix}-${yB}`,scrollStrategy:this._scrollStrategy()}),this._updatePosition(this._overlayRef),this._overlayRef.detachments().pipe(la(this._destroyed)).subscribe(()=>this._detach()),this._overlayRef.outsidePointerEvents().pipe(la(this._destroyed)).subscribe(()=>this._tooltipInstance?._handleBodyInteraction()),this._overlayRef.keydownEvents().pipe(la(this._destroyed)).subscribe(o=>{this._isTooltipVisible()&&27===o.keyCode&&!function fP(e,...n){return n.length?n.some(t=>e[t]):e.altKey||e.shiftKey||e.ctrlKey||e.metaKey}(o)&&(o.preventDefault(),o.stopPropagation(),this._ngZone.run(()=>this.hide(0)))}),this._defaultOptions?.disableTooltipInteractivity&&this._overlayRef.addPanelClass(`${this._cssClassPrefix}-tooltip-panel-non-interactive`),this._overlayRef}_detach(){this._overlayRef&&this._overlayRef.hasAttached()&&this._overlayRef.detach(),this._tooltipInstance=null}_updatePosition(t){const r=t.getConfig().positionStrategy,i=this._getOrigin(),o=this._getOverlayPosition();r.withPositions([this._addOffset({...i.main,...o.main}),this._addOffset({...i.fallback,...o.fallback})])}_addOffset(t){const i=!this._dir||"ltr"==this._dir.value;return"top"===t.originY?t.offsetY=-8:"bottom"===t.originY?t.offsetY=8:"start"===t.originX?t.offsetX=i?-8:8:"end"===t.originX&&(t.offsetX=i?8:-8),t}_getOrigin(){const t=!this._dir||"ltr"==this._dir.value,r=this.position;let i;"above"==r||"below"==r?i={originX:"center",originY:"above"==r?"top":"bottom"}:"before"==r||"left"==r&&t||"right"==r&&!t?i={originX:"start",originY:"center"}:("after"==r||"right"==r&&t||"left"==r&&!t)&&(i={originX:"end",originY:"center"});const{x:o,y:s}=this._invertPosition(i.originX,i.originY);return{main:i,fallback:{originX:o,originY:s}}}_getOverlayPosition(){const t=!this._dir||"ltr"==this._dir.value,r=this.position;let i;"above"==r?i={overlayX:"center",overlayY:"bottom"}:"below"==r?i={overlayX:"center",overlayY:"top"}:"before"==r||"left"==r&&t||"right"==r&&!t?i={overlayX:"end",overlayY:"center"}:("after"==r||"right"==r&&t||"left"==r&&!t)&&(i={overlayX:"start",overlayY:"center"});const{x:o,y:s}=this._invertPosition(i.overlayX,i.overlayY);return{main:i,fallback:{overlayX:o,overlayY:s}}}_updateTooltipMessage(){this._tooltipInstance&&(this._tooltipInstance.message=this.message,this._tooltipInstance._markForCheck(),qh(()=>{this._tooltipInstance&&this._overlayRef.updatePosition()},{injector:this._injector}))}_setTooltipClass(t){this._tooltipInstance&&(this._tooltipInstance.tooltipClass=t,this._tooltipInstance._markForCheck())}_invertPosition(t,r){return"above"===this.position||"below"===this.position?"top"===r?r="bottom":"bottom"===r&&(r="top"):"end"===t?t="start":"start"===t&&(t="end"),{x:t,y:r}}_updateCurrentPositionClass(t){const{overlayY:r,originX:i,originY:o}=t;let s;if(s="center"===r?this._dir&&"rtl"===this._dir.value?"end"===i?"left":"right":"start"===i?"left":"right":"bottom"===r&&"top"===o?"above":"below",s!==this._currentPosition){const a=this._overlayRef;if(a){const l=`${this._cssClassPrefix}-${yB}-`;a.removePanelClass(l+this._currentPosition),a.addPanelClass(l+s)}this._currentPosition=s}}_setupPointerEnterEventsIfNeeded(){this._disabled||!this.message||!this._viewInitialized||this._passiveListeners.length||(this._platformSupportsMouseEvents()?this._passiveListeners.push(["mouseenter",t=>{let r;this._setupPointerExitEventsIfNeeded(),void 0!==t.x&&void 0!==t.y&&(r=t),this.show(void 0,r)}]):"off"!==this.touchGestures&&(this._disableNativeGesturesIfNecessary(),this._passiveListeners.push(["touchstart",t=>{const r=t.targetTouches?.[0],i=r?{x:r.clientX,y:r.clientY}:void 0;this._setupPointerExitEventsIfNeeded(),this._touchstartTimeout&&clearTimeout(this._touchstartTimeout),this._touchstartTimeout=setTimeout(()=>{this._touchstartTimeout=null,this.show(void 0,i)},this._defaultOptions.touchLongPressShowDelay??500)}])),this._addListeners(this._passiveListeners))}_setupPointerExitEventsIfNeeded(){if(this._pointerExitEventsInitialized)return;this._pointerExitEventsInitialized=!0;const t=[];if(this._platformSupportsMouseEvents())t.push(["mouseleave",r=>{const i=r.relatedTarget;(!i||!this._overlayRef?.overlayElement.contains(i))&&this.hide()}],["wheel",r=>this._wheelListener(r)]);else if("off"!==this.touchGestures){this._disableNativeGesturesIfNecessary();const r=()=>{this._touchstartTimeout&&clearTimeout(this._touchstartTimeout),this.hide(this._defaultOptions.touchendHideDelay)};t.push(["touchend",r],["touchcancel",r])}this._addListeners(t),this._passiveListeners.push(...t)}_addListeners(t){t.forEach(([r,i])=>{this._elementRef.nativeElement.addEventListener(r,i,xB)})}_platformSupportsMouseEvents(){return!this._platform.IOS&&!this._platform.ANDROID}_wheelListener(t){if(this._isTooltipVisible()){const r=this._document.elementFromPoint(t.clientX,t.clientY),i=this._elementRef.nativeElement;r!==i&&!i.contains(r)&&this.hide()}}_disableNativeGesturesIfNecessary(){const t=this.touchGestures;if("off"!==t){const r=this._elementRef.nativeElement,i=r.style;("on"===t||"INPUT"!==r.nodeName&&"TEXTAREA"!==r.nodeName)&&(i.userSelect=i.msUserSelect=i.webkitUserSelect=i.MozUserSelect="none"),("on"===t||!r.draggable)&&(i.webkitUserDrag="none"),i.touchAction="none",i.webkitTapHighlightColor="transparent"}}_syncAriaDescription(t){this._ariaDescriptionPending||(this._ariaDescriptionPending=!0,this._ariaDescriber.removeDescription(this._elementRef.nativeElement,t,"tooltip"),this._ngZone.runOutsideAngular(()=>{Promise.resolve().then(()=>{this._ariaDescriptionPending=!1,this.message&&!this.disabled&&this._ariaDescriber.describe(this._elementRef.nativeElement,this.message,"tooltip")})}))}static{this.\u0275fac=function(r){return new(r||e)(te(Xd),te(_n),te(K3),te(fs),te(ct),te(xi),te(WX),te(uS),te(vB),te(fS),te(Zee,8),te(Vt))}}static{this.\u0275dir=Ze({type:e,selectors:[["","matTooltip",""]],hostAttrs:[1,"mat-mdc-tooltip-trigger"],hostVars:2,hostBindings:function(r,i){2&r&&Xi("mat-mdc-tooltip-disabled",i.disabled)},inputs:{position:[0,"matTooltipPosition","position"],positionAtOrigin:[0,"matTooltipPositionAtOrigin","positionAtOrigin"],disabled:[0,"matTooltipDisabled","disabled"],showDelay:[0,"matTooltipShowDelay","showDelay"],hideDelay:[0,"matTooltipHideDelay","hideDelay"],touchGestures:[0,"matTooltipTouchGestures","touchGestures"],message:[0,"matTooltip","message"],tooltipClass:[0,"matTooltipClass","tooltipClass"]},exportAs:["matTooltip"],standalone:!0})}}return e})(),rte=(()=>{class e{constructor(t,r,i){this._changeDetectorRef=t,this._elementRef=r,this._isMultiline=!1,this._closeOnInteraction=!1,this._isVisible=!1,this._onHide=new Rt,this._showAnimation="mat-mdc-tooltip-show",this._hideAnimation="mat-mdc-tooltip-hide",this._animationsDisabled="NoopAnimations"===i}show(t){null!=this._hideTimeoutId&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=setTimeout(()=>{this._toggleVisibility(!0),this._showTimeoutId=void 0},t)}hide(t){null!=this._showTimeoutId&&clearTimeout(this._showTimeoutId),this._hideTimeoutId=setTimeout(()=>{this._toggleVisibility(!1),this._hideTimeoutId=void 0},t)}afterHidden(){return this._onHide}isVisible(){return this._isVisible}ngOnDestroy(){this._cancelPendingAnimations(),this._onHide.complete(),this._triggerElement=null}_handleBodyInteraction(){this._closeOnInteraction&&this.hide(0)}_markForCheck(){this._changeDetectorRef.markForCheck()}_handleMouseLeave({relatedTarget:t}){(!t||!this._triggerElement.contains(t))&&(this.isVisible()?this.hide(this._mouseLeaveHideDelay):this._finalizeAnimation(!1))}_onShow(){this._isMultiline=this._isTooltipMultiline(),this._markForCheck()}_isTooltipMultiline(){const t=this._elementRef.nativeElement.getBoundingClientRect();return t.height>24&&t.width>=200}_handleAnimationEnd({animationName:t}){(t===this._showAnimation||t===this._hideAnimation)&&this._finalizeAnimation(t===this._showAnimation)}_cancelPendingAnimations(){null!=this._showTimeoutId&&clearTimeout(this._showTimeoutId),null!=this._hideTimeoutId&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=this._hideTimeoutId=void 0}_finalizeAnimation(t){t?this._closeOnInteraction=!0:this.isVisible()||this._onHide.next()}_toggleVisibility(t){const r=this._tooltip.nativeElement,i=this._showAnimation,o=this._hideAnimation;if(r.classList.remove(t?o:i),r.classList.add(t?i:o),this._isVisible!==t&&(this._isVisible=t,this._changeDetectorRef.markForCheck()),t&&!this._animationsDisabled&&"function"==typeof getComputedStyle){const s=getComputedStyle(r);("0s"===s.getPropertyValue("animation-duration")||"none"===s.getPropertyValue("animation-name"))&&(this._animationsDisabled=!0)}t&&this._onShow(),this._animationsDisabled&&(r.classList.add("_mat-animation-noopable"),this._finalizeAnimation(t))}static{this.\u0275fac=function(r){return new(r||e)(te(Il),te(_n),te(Qs,8))}}static{this.\u0275cmp=An({type:e,selectors:[["mat-tooltip-component"]],viewQuery:function(r,i){if(1&r&&Na(qee,7),2&r){let o;ra(o=ia())&&(i._tooltip=o.first)}},hostAttrs:["aria-hidden","true"],hostBindings:function(r,i){1&r&&yn("mouseleave",function(s){return i._handleMouseLeave(s)})},standalone:!0,features:[Dl],decls:4,vars:4,consts:[["tooltip",""],[1,"mdc-tooltip","mat-mdc-tooltip",3,"animationend","ngClass"],[1,"mat-mdc-tooltip-surface","mdc-tooltip__surface"]],template:function(r,i){if(1&r){const o=El();Xe(0,"div",1,0),yn("animationend",function(a){return ho(o),Ui(i._handleAnimationEnd(a))}),Xe(2,"div",2),Zt(3),Ye()()}2&r&&(Xi("mdc-tooltip--multiline",i._isMultiline),Gn("ngClass",i.tooltipClass),at(3),ms(i.message))},dependencies:[mp],styles:['.mat-mdc-tooltip{position:relative;transform:scale(0);display:inline-flex}.mat-mdc-tooltip::before{content:"";top:0;right:0;bottom:0;left:0;z-index:-1;position:absolute}.mat-mdc-tooltip-panel-below .mat-mdc-tooltip::before{top:-8px}.mat-mdc-tooltip-panel-above .mat-mdc-tooltip::before{bottom:-8px}.mat-mdc-tooltip-panel-right .mat-mdc-tooltip::before{left:-8px}.mat-mdc-tooltip-panel-left .mat-mdc-tooltip::before{right:-8px}.mat-mdc-tooltip._mat-animation-noopable{animation:none;transform:scale(1)}.mat-mdc-tooltip-surface{word-break:normal;overflow-wrap:anywhere;padding:4px 8px;min-width:40px;max-width:200px;min-height:24px;max-height:40vh;box-sizing:border-box;overflow:hidden;text-align:center;will-change:transform,opacity;background-color:var(--mdc-plain-tooltip-container-color, var(--mat-app-inverse-surface));color:var(--mdc-plain-tooltip-supporting-text-color, var(--mat-app-inverse-on-surface));border-radius:var(--mdc-plain-tooltip-container-shape, var(--mat-app-corner-extra-small));font-family:var(--mdc-plain-tooltip-supporting-text-font, var(--mat-app-body-small-font));font-size:var(--mdc-plain-tooltip-supporting-text-size, var(--mat-app-body-small-size));font-weight:var(--mdc-plain-tooltip-supporting-text-weight, var(--mat-app-body-small-weight));line-height:var(--mdc-plain-tooltip-supporting-text-line-height, var(--mat-app-body-small-line-height));letter-spacing:var(--mdc-plain-tooltip-supporting-text-tracking, var(--mat-app-body-small-tracking))}.mat-mdc-tooltip-surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}.mdc-tooltip--multiline .mat-mdc-tooltip-surface{text-align:left}[dir=rtl] .mdc-tooltip--multiline .mat-mdc-tooltip-surface{text-align:right}.mat-mdc-tooltip-panel.mat-mdc-tooltip-panel-non-interactive{pointer-events:none}@keyframes mat-mdc-tooltip-show{0%{opacity:0;transform:scale(0.8)}100%{opacity:1;transform:scale(1)}}@keyframes mat-mdc-tooltip-hide{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(0.8)}}.mat-mdc-tooltip-show{animation:mat-mdc-tooltip-show 150ms cubic-bezier(0, 0, 0.2, 1) forwards}.mat-mdc-tooltip-hide{animation:mat-mdc-tooltip-hide 75ms cubic-bezier(0.4, 0, 1, 1) forwards}'],encapsulation:2,changeDetection:0})}}return e})(),ite=(()=>{class e{static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275mod=Wt({type:e})}static{this.\u0275inj=Yt({providers:[Yee],imports:[fY,OD,uB,bi,bi,TI]})}}return e})();const ote=["headBar"],ste=["version2023"];function ate(e,n){if(1&e){const t=El();Xe(0,"mat-button-toggle-group",8,2),yn("change",function(){ho(t);const i=yg(1);return Ui(oi().changeVersionDisplaying(i.value))}),Xe(2,"mat-button-toggle",9),Zt(3,"2023"),Ye()()}if(2&e){const t=oi();Gn("value",t.displayVersion),at(2),Gn("value",t.version._2023)}}var g1=function(e){return e[e._2023=0]="_2023",e}(g1||{});let bB=(()=>{class e{constructor(t){this.svgService=t,this.showVersionControl=!1,this.displayVersion=g1._2023,this.version=g1,this.status={start:!1,finish:!1},this.svgService.init()}resetearSorteo(){this.displayVersion===g1._2023&&this.version2023.resetearSorteo()}changeVersionDisplaying(t){this.headBar.resetearSorteo(!0),this.displayVersion=t}static{this.\u0275fac=function(r){return new(r||e)(te(XL))}}static{this.\u0275cmp=An({type:e,selectors:[["app-root"]],viewQuery:function(r,i){if(1&r&&(Na(ote,5),Na(ste,5)),2&r){let o;ra(o=ia())&&(i.headBar=o.first),ra(o=ia())&&(i.version2023=o.first)}},decls:7,vars:4,consts:[["headBar",""],["version2023",""],["toggleGroup","matButtonToggleGroup"],["id","app"],[3,"fireResetearSorteo","displayVersion","status"],["id","toggleVersion",3,"value"],["id","appBody"],[1,"fullWidth","fullHeight","centerContainer",3,"status"],["id","toggleVersion",3,"change","value"],[3,"value"]],template:function(r,i){if(1&r){const o=El();Xe(0,"div",3)(1,"app-head-bar",4,0),yn("fireResetearSorteo",function(){return ho(o),Ui(i.resetearSorteo())}),Ye(),ps(3,ate,4,2,"mat-button-toggle-group",5),Xe(4,"div",6),dr(5,"app-version2023",7,1),Ye()()}2&r&&(at(),Gn("displayVersion",i.displayVersion)("status",i.status),at(2),ii(i.showVersionControl?3:-1),at(2),Gn("status",i.status))},styles:["app-head-bar[_ngcontent-%COMP%]{background:#0a0089}#app[_ngcontent-%COMP%]{width:100%;height:100%;background:#0a0089;display:flex;flex-direction:column;overflow-y:auto}#app[_ngcontent-%COMP%] #appBody[_ngcontent-%COMP%]{height:-webkit-fill-available;background-color:#fff;display:flex;align-items:center;flex-direction:column;width:inherit}#app[_ngcontent-%COMP%] #toggleVersion[_ngcontent-%COMP%]{position:absolute;top:6em;left:1em}.hidden[_ngcontent-%COMP%]{display:none}.fullWidth[_ngcontent-%COMP%]{width:-webkit-fill-available}.fullHeight[_ngcontent-%COMP%]{height:-webkit-fill-available!important}.centerContainer[_ngcontent-%COMP%]{display:flex;justify-content:center}"]})}}return e})();const lte=e=>({clickable:e});let cte=(()=>{class e{constructor(){this.fireResetearSorteo=new Cn,this.currentYear=(new Date).getFullYear()}ngOnInit(){}resetearSorteo(t=!1){(this.status.finish||t)&&(this.status.finish=!1,this.status.start=!1,this.fireResetearSorteo.emit())}getVersion(){return"2023"}static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275cmp=An({type:e,selectors:[["app-head-bar"]],inputs:{displayVersion:"displayVersion",status:"status"},outputs:{fireResetearSorteo:"fireResetearSorteo"},decls:5,vars:4,consts:[["id","headBar"],[1,"sorteo",3,"click","ngClass"],[2,"display","flex","align-items","center"],["id","iconGroup"]],template:function(r,i){1&r&&(Xe(0,"div",0)(1,"h1",1),yn("click",function(){return i.resetearSorteo()}),Zt(2),Ye(),Xe(3,"div",2),dr(4,"div",3),Ye()()),2&r&&(at(),Gn("ngClass",zc(2,lte,i.status.finish)),at(),Tl("Sorteo ",i.currentYear,""))},dependencies:[mp],styles:["#headBar[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;color:#fff;margin:0 150px;background-color:#0a0089}#headBar[_ngcontent-%COMP%] .sorteo[_ngcontent-%COMP%]{font-family:LatinxText-Bold}#headBar[_ngcontent-%COMP%] #iconGroup[_ngcontent-%COMP%]{display:flex;align-items:center;position:relative;right:-140px}#headBar[_ngcontent-%COMP%] #iconGroup[_ngcontent-%COMP%] .svgIcon[_ngcontent-%COMP%]{width:340px;height:100%}#headBar[_ngcontent-%COMP%] #iconGroup[_ngcontent-%COMP%] .svgIcon.scndIcon[_ngcontent-%COMP%]{width:300px;height:100%}#headBar[_ngcontent-%COMP%] .separator[_ngcontent-%COMP%]{width:1px;height:43px;margin:0 19px;opacity:.36;background-color:#979797}#headBar[_ngcontent-%COMP%] .clickable[_ngcontent-%COMP%]{cursor:pointer}"]})}}return e})();var ute=zp(376),Vo=1200,Yd=1252,dte=[874,932,936,949,950,1250,1251,1252,1253,1254,1255,1256,1257,1258,1e4],II={0:1252,1:65001,2:65001,77:1e4,128:932,129:949,130:1361,134:936,136:950,161:1253,162:1254,163:1258,177:1255,178:1256,186:1257,204:1251,222:874,238:1250,255:1252,69:6969},_1=function(e){-1!=dte.indexOf(e)&&(Yd=II[0]=e)},ws=function(e){Vo=e,_1(e)};function v1(){ws(1200),function fte(){_1(1252)}()}function y1(e){for(var n=[],t=0,r=e.length;t>1;++t)n[t]=String.fromCharCode(e.charCodeAt(2*t+1)+(e.charCodeAt(2*t)<<8));return n.join("")}var jt,Sp=function(e){var n=e.charCodeAt(0),t=e.charCodeAt(1);return 255==n&&254==t?function hte(e){for(var n=[],t=0;t>1;++t)n[t]=String.fromCharCode(e.charCodeAt(2*t)+(e.charCodeAt(2*t+1)<<8));return n.join("")}(e.slice(2)):254==n&&255==t?wB(e.slice(2)):65279==n?e.slice(1):e},s_=function(n){return String.fromCharCode(n)},AI=function(n){return String.fromCharCode(n)},Qn=null,tu="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";function l_(e){for(var n="",t=0,r=0,i=0,o=0,s=0,a=0,l=0,u=0;u>2,s=(3&t)<<4|(r=e.charCodeAt(u++))>>4,a=(15&r)<<2|(i=e.charCodeAt(u++))>>6,l=63&i,isNaN(r)?a=l=64:isNaN(i)&&(l=64),n+=tu.charAt(o)+tu.charAt(s)+tu.charAt(a)+tu.charAt(l);return n}function Uo(e){var n="",o=0,s=0,a=0,l=0;e=e.replace(/[^\w\+\/\=]/g,"");for(var u=0;u>4),64!==(a=tu.indexOf(e.charAt(u++)))&&(n+=String.fromCharCode((15&s)<<4|a>>2)),64!==(l=tu.indexOf(e.charAt(u++)))&&(n+=String.fromCharCode((3&a)<<6|l));return n}var It=function(){return typeof Buffer<"u"&&typeof process<"u"&&typeof process.versions<"u"&&!!process.versions.node}(),Nl=function(){if(typeof Buffer<"u"){var e=!Buffer.from;if(!e)try{Buffer.from("foo","utf8")}catch{e=!0}return e?function(n,t){return t?new Buffer(n,t):new Buffer(n)}:Buffer.from.bind(Buffer)}return function(){}}();function nu(e){return It?Buffer.alloc?Buffer.alloc(e):new Buffer(e):typeof Uint8Array<"u"?new Uint8Array(e):new Array(e)}function EB(e){return It?Buffer.allocUnsafe?Buffer.allocUnsafe(e):new Buffer(e):typeof Uint8Array<"u"?new Uint8Array(e):new Array(e)}var Ho=function(n){return It?Nl(n,"binary"):n.split("").map(function(t){return 255&t.charCodeAt(0)})};function ru(e){if(Array.isArray(e))return e.map(function(r){return String.fromCharCode(r)}).join("");for(var n=[],t=0;t"u")throw new Error("Unsupported");if(e instanceof ArrayBuffer)return kI(new Uint8Array(e));for(var n=new Array(e.length),t=0;t=0;)n+=e.charAt(t--);return n}function da(e,n){var t=""+e;return t.length>=n?t:er("0",n-t.length)+t}function MI(e,n){var t=""+e;return t.length>=n?t:er(" ",n-t.length)+t}function x1(e,n){var t=""+e;return t.length>=n?t:t+er(" ",n-t.length)}var CB=Math.pow(2,32);function Ap(e,n){return e>CB||e<-CB?function gte(e,n){var t=""+Math.round(e);return t.length>=n?t:er("0",n-t.length)+t}(e,n):function _te(e,n){var t=""+e;return t.length>=n?t:er("0",n-t.length)+t}(Math.round(e),n)}function b1(e,n){return e.length>=7+(n=n||0)&&103==(32|e.charCodeAt(n))&&101==(32|e.charCodeAt(n+1))&&110==(32|e.charCodeAt(n+2))&&101==(32|e.charCodeAt(n+3))&&114==(32|e.charCodeAt(n+4))&&97==(32|e.charCodeAt(n+5))&&108==(32|e.charCodeAt(n+6))}var TB=[["Sun","Sunday"],["Mon","Monday"],["Tue","Tuesday"],["Wed","Wednesday"],["Thu","Thursday"],["Fri","Friday"],["Sat","Saturday"]],FI=[["J","Jan","January"],["F","Feb","February"],["M","Mar","March"],["A","Apr","April"],["M","May","May"],["J","Jun","June"],["J","Jul","July"],["A","Aug","August"],["S","Sep","September"],["O","Oct","October"],["N","Nov","November"],["D","Dec","December"]],ot={0:"General",1:"0",2:"0.00",3:"#,##0",4:"#,##0.00",9:"0%",10:"0.00%",11:"0.00E+00",12:"# ?/?",13:"# ??/??",14:"m/d/yy",15:"d-mmm-yy",16:"d-mmm",17:"mmm-yy",18:"h:mm AM/PM",19:"h:mm:ss AM/PM",20:"h:mm",21:"h:mm:ss",22:"m/d/yy h:mm",37:"#,##0 ;(#,##0)",38:"#,##0 ;[Red](#,##0)",39:"#,##0.00;(#,##0.00)",40:"#,##0.00;[Red](#,##0.00)",45:"mm:ss",46:"[h]:mm:ss",47:"mmss.0",48:"##0.0E+0",49:"@",56:'"\u4e0a\u5348/\u4e0b\u5348 "hh"\u6642"mm"\u5206"ss"\u79d2 "'},DB={5:37,6:38,7:39,8:40,23:0,24:0,25:0,26:0,27:14,28:14,29:14,30:14,31:14,50:14,51:14,52:14,53:14,54:14,55:14,56:14,57:14,58:14,59:1,60:2,61:3,62:4,67:9,68:10,69:12,70:13,71:14,72:14,73:15,74:16,75:17,76:20,77:21,78:22,79:45,80:46,81:47,82:0},yte={5:'"$"#,##0_);\\("$"#,##0\\)',63:'"$"#,##0_);\\("$"#,##0\\)',6:'"$"#,##0_);[Red]\\("$"#,##0\\)',64:'"$"#,##0_);[Red]\\("$"#,##0\\)',7:'"$"#,##0.00_);\\("$"#,##0.00\\)',65:'"$"#,##0.00_);\\("$"#,##0.00\\)',8:'"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',66:'"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',41:'_(* #,##0_);_(* \\(#,##0\\);_(* "-"_);_(@_)',42:'_("$"* #,##0_);_("$"* \\(#,##0\\);_("$"* "-"_);_(@_)',43:'_(* #,##0.00_);_(* \\(#,##0.00\\);_(* "-"??_);_(@_)',44:'_("$"* #,##0.00_);_("$"* \\(#,##0.00\\);_("$"* "-"??_);_(@_)'};function w1(e,n,t){for(var r=e<0?-1:1,i=e*r,o=0,s=1,a=0,l=1,u=0,f=0,h=Math.floor(i);un&&(u>n?(f=l,a=o):(f=u,a=s)),!t)return[0,r*a,f];var m=Math.floor(r*a/f);return[m,r*a-m*f,f]}function iu(e,n,t){if(e>2958465||e<0)return null;var r=0|e,i=Math.floor(86400*(e-r)),o=0,s=[],a={D:r,T:i,u:86400*(e-r)-i,y:0,m:0,d:0,H:0,M:0,S:0,q:0};if(Math.abs(a.u)<1e-6&&(a.u=0),n&&n.date1904&&(r+=1462),a.u>.9999&&(a.u=0,86400==++i&&(a.T=i=0,++r,++a.D)),60===r)s=t?[1317,10,29]:[1900,2,29],o=3;else if(0===r)s=t?[1317,8,29]:[1900,1,0],o=6;else{r>60&&--r;var l=new Date(1900,0,1);l.setDate(l.getDate()+r-1),s=[l.getFullYear(),l.getMonth()+1,l.getDate()],o=l.getDay(),r<60&&(o=(o+6)%7),t&&(o=function Tte(e,n){n[0]-=581;var t=e.getDay();return e<60&&(t=(t+6)%7),t}(l,s))}return a.y=s[0],a.m=s[1],a.d=s[2],a.S=i%60,i=Math.floor(i/60),a.M=i%60,i=Math.floor(i/60),a.H=i,a.q=o,a}var SB=new Date(1899,11,31,0,0,0),xte=SB.getTime(),bte=new Date(1900,2,1,0,0,0);function IB(e,n){var t=e.getTime();return n?t-=1262304e5:e>=bte&&(t+=864e5),(t-(xte+6e4*(e.getTimezoneOffset()-SB.getTimezoneOffset())))/864e5}function RI(e){return-1==e.indexOf(".")?e:e.replace(/(?:\.0*|(\.\d*[1-9])0+)$/,"$1")}function d_(e){var t,n=Math.floor(Math.log(Math.abs(e))*Math.LOG10E);return t=n>=-4&&n<=-1?e.toPrecision(10+n):Math.abs(n)<=9?function Ete(e){var n=e<0?12:11,t=RI(e.toFixed(12));return t.length<=n||(t=e.toPrecision(10)).length<=n?t:e.toExponential(5)}(e):10===n?e.toFixed(10).substr(0,12):function Cte(e){var n=RI(e.toFixed(11));return n.length>(e<0?12:11)||"0"===n||"-0"===n?e.toPrecision(6):n}(e),RI(function wte(e){return-1==e.indexOf("E")?e:e.replace(/(?:\.0*|(\.\d*[1-9])0+)[Ee]/,"$1E").replace(/(E[+-])(\d)$/,"$10$2")}(t.toUpperCase()))}function Kd(e,n){switch(typeof e){case"string":return e;case"boolean":return e?"TRUE":"FALSE";case"number":return(0|e)===e?e.toString(10):d_(e);case"undefined":return"";case"object":if(null==e)return"";if(e instanceof Date)return jo(14,IB(e,n&&n.date1904),n)}throw new Error("unsupported value in General format: "+e)}function Dte(e,n,t,r){var l,i="",o=0,s=0,a=t.y,u=0;switch(e){case 98:a=t.y+543;case 121:switch(n.length){case 1:case 2:l=a%100,u=2;break;default:l=a%1e4,u=4}break;case 109:switch(n.length){case 1:case 2:l=t.m,u=n.length;break;case 3:return FI[t.m-1][1];case 5:return FI[t.m-1][0];default:return FI[t.m-1][2]}break;case 100:switch(n.length){case 1:case 2:l=t.d,u=n.length;break;case 3:return TB[t.q][0];default:return TB[t.q][1]}break;case 104:switch(n.length){case 1:case 2:l=1+(t.H+11)%12,u=n.length;break;default:throw"bad hour format: "+n}break;case 72:switch(n.length){case 1:case 2:l=t.H,u=n.length;break;default:throw"bad hour format: "+n}break;case 77:switch(n.length){case 1:case 2:l=t.M,u=n.length;break;default:throw"bad minute format: "+n}break;case 115:if("s"!=n&&"ss"!=n&&".0"!=n&&".00"!=n&&".000"!=n)throw"bad second format: "+n;return 0!==t.u||"s"!=n&&"ss"!=n?(s=r>=2?3===r?1e3:100:1===r?10:1,(o=Math.round(s*(t.S+t.u)))>=60*s&&(o=0),"s"===n?0===o?"0":""+o/s:(i=da(o,2+r),"ss"===n?i.substr(0,2):"."+i.substr(2,n.length-1))):da(t.S,n.length);case 90:switch(n){case"[h]":case"[hh]":l=24*t.D+t.H;break;case"[m]":case"[mm]":l=60*(24*t.D+t.H)+t.M;break;case"[s]":case"[ss]":l=60*(60*(24*t.D+t.H)+t.M)+Math.round(t.S+t.u);break;default:throw"bad abstime format: "+n}u=3===n.length?1:2;break;case 101:l=a,u=1}return u>0?da(l,u):""}function ou(e){if(e.length<=3)return e;for(var t=e.length%3,r=e.substr(0,t);t!=e.length;t+=3)r+=(r.length>0?",":"")+e.substr(t,3);return r}var AB=/%/g;function kB(e,n){var t,r=e.indexOf("E")-e.indexOf(".")-1;if(e.match(/^#+0.0E\+0$/)){if(0==n)return"0.0E+0";if(n<0)return"-"+kB(e,-n);var i=e.indexOf(".");-1===i&&(i=e.indexOf("E"));var o=Math.floor(Math.log(n)*Math.LOG10E)%i;if(o<0&&(o+=i),-1===(t=(n/Math.pow(10,o)).toPrecision(r+1+(i+o)%i)).indexOf("e")){var s=Math.floor(Math.log(n)*Math.LOG10E);for(-1===t.indexOf(".")?t=t.charAt(0)+"."+t.substr(1)+"E+"+(s-t.length+o):t+="E+"+(s-o);"0."===t.substr(0,2);)t=(t=t.charAt(0)+t.substr(2,i)+"."+t.substr(2+i)).replace(/^0+([1-9])/,"$1").replace(/^0+\./,"0.");t=t.replace(/\+-/,"-")}t=t.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/,function(a,l,u,f){return l+u+f.substr(0,(i+o)%i)+"."+f.substr(o)+"E"})}else t=n.toExponential(r);return e.match(/E\+00$/)&&t.match(/e[+-]\d$/)&&(t=t.substr(0,t.length-1)+"0"+t.charAt(t.length-1)),e.match(/E\-/)&&t.match(/e\+/)&&(t=t.replace(/e\+/,"e")),t.replace("e","E")}var MB=/# (\?+)( ?)\/( ?)(\d+)/,FB=/^#*0*\.([0#]+)/,RB=/\).*[0#]/,OB=/\(###\) ###\\?-####/;function Ji(e){for(var t,n="",r=0;r!=e.length;++r)switch(t=e.charCodeAt(r)){case 35:break;case 63:n+=" ";break;case 48:n+="0";break;default:n+=String.fromCharCode(t)}return n}function NB(e,n){var t=Math.pow(10,n);return""+Math.round(e*t)/t}function PB(e,n){var t=e-Math.floor(e),r=Math.pow(10,n);return n<(""+Math.round(t*r)).length?0:Math.round(t*r)}function Es(e,n,t){if(40===e.charCodeAt(0)&&!n.match(RB)){var r=n.replace(/\( */,"").replace(/ \)/,"").replace(/\)/,"");return t>=0?Es("n",r,t):"("+Es("n",r,-t)+")"}if(44===n.charCodeAt(n.length-1))return function Ite(e,n,t){for(var r=n.length-1;44===n.charCodeAt(r-1);)--r;return Pl(e,n.substr(0,r),t/Math.pow(10,3*(n.length-r)))}(e,n,t);if(-1!==n.indexOf("%"))return function Ste(e,n,t){var r=n.replace(AB,""),i=n.length-r.length;return Pl(e,r,t*Math.pow(10,2*i))+er("%",i)}(e,n,t);if(-1!==n.indexOf("E"))return kB(n,t);if(36===n.charCodeAt(0))return"$"+Es(e,n.substr(" "==n.charAt(1)?2:1),t);var i,o,s,a,l=Math.abs(t),u=t<0?"-":"";if(n.match(/^00+$/))return u+Ap(l,n.length);if(n.match(/^[#?]+$/))return"0"===(i=Ap(t,0))&&(i=""),i.length>n.length?i:Ji(n.substr(0,n.length-i.length))+i;if(o=n.match(MB))return function Ate(e,n,t){var r=parseInt(e[4],10),i=Math.round(n*r),o=Math.floor(i/r),s=i-o*r,a=r;return t+(0===o?"":""+o)+" "+(0===s?er(" ",e[1].length+1+e[4].length):MI(s,e[1].length)+e[2]+"/"+e[3]+da(a,e[4].length))}(o,l,u);if(n.match(/^#+0+$/))return u+Ap(l,n.length-n.indexOf("0"));if(o=n.match(FB))return i=NB(t,o[1].length).replace(/^([^\.]+)$/,"$1."+Ji(o[1])).replace(/\.$/,"."+Ji(o[1])).replace(/\.(\d*)$/,function(v,_){return"."+_+er("0",Ji(o[1]).length-_.length)}),-1!==n.indexOf("0.")?i:i.replace(/^0\./,".");if(n=n.replace(/^#+([0.])/,"$1"),o=n.match(/^(0*)\.(#*)$/))return u+NB(l,o[2].length).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,o[1].length?"0.":".");if(o=n.match(/^#{1,3},##0(\.?)$/))return u+ou(Ap(l,0));if(o=n.match(/^#,##0\.([#0]*0)$/))return t<0?"-"+Es(e,n,-t):ou(""+(Math.floor(t)+function Mte(e,n){return n<(""+Math.round((e-Math.floor(e))*Math.pow(10,n))).length?1:0}(t,o[1].length)))+"."+da(PB(t,o[1].length),o[1].length);if(o=n.match(/^#,#*,#0/))return Es(e,n.replace(/^#,#*,/,""),t);if(o=n.match(/^([0#]+)(\\?-([0#]+))+$/))return i=Ip(Es(e,n.replace(/[\\-]/g,""),t)),s=0,Ip(Ip(n.replace(/\\/g,"")).replace(/[0#]/g,function(v){return s-2147483648?""+(e>=0?0|e:e-1|0):""+Math.floor(e)}(t)).replace(/^\d,\d{3}$/,"0$&").replace(/^\d*$/,function(v){return"00,"+(v.length<3?da(0,3-v.length):"")+v})+"."+da(s,o[1].length);switch(n){case"###,##0.00":return Es(e,"#,##0.00",t);case"###,###":case"##,###":case"#,###":var g=ou(Ap(l,0));return"0"!==g?u+g:"";case"###,###.00":return Es(e,"###,##0.00",t).replace(/^0\./,".");case"#,###.00":return Es(e,"#,##0.00",t).replace(/^0\./,".")}throw new Error("unsupported format |"+n+"|")}function LB(e,n){var t,r=e.indexOf("E")-e.indexOf(".")-1;if(e.match(/^#+0.0E\+0$/)){if(0==n)return"0.0E+0";if(n<0)return"-"+LB(e,-n);var i=e.indexOf(".");-1===i&&(i=e.indexOf("E"));var o=Math.floor(Math.log(n)*Math.LOG10E)%i;if(o<0&&(o+=i),!(t=(n/Math.pow(10,o)).toPrecision(r+1+(i+o)%i)).match(/[Ee]/)){var s=Math.floor(Math.log(n)*Math.LOG10E);-1===t.indexOf(".")?t=t.charAt(0)+"."+t.substr(1)+"E+"+(s-t.length+o):t+="E+"+(s-o),t=t.replace(/\+-/,"-")}t=t.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/,function(a,l,u,f){return l+u+f.substr(0,(i+o)%i)+"."+f.substr(o)+"E"})}else t=n.toExponential(r);return e.match(/E\+00$/)&&t.match(/e[+-]\d$/)&&(t=t.substr(0,t.length-1)+"0"+t.charAt(t.length-1)),e.match(/E\-/)&&t.match(/e\+/)&&(t=t.replace(/e\+/,"e")),t.replace("e","E")}function Ba(e,n,t){if(40===e.charCodeAt(0)&&!n.match(RB)){var r=n.replace(/\( */,"").replace(/ \)/,"").replace(/\)/,"");return t>=0?Ba("n",r,t):"("+Ba("n",r,-t)+")"}if(44===n.charCodeAt(n.length-1))return function Rte(e,n,t){for(var r=n.length-1;44===n.charCodeAt(r-1);)--r;return Pl(e,n.substr(0,r),t/Math.pow(10,3*(n.length-r)))}(e,n,t);if(-1!==n.indexOf("%"))return function Ote(e,n,t){var r=n.replace(AB,""),i=n.length-r.length;return Pl(e,r,t*Math.pow(10,2*i))+er("%",i)}(e,n,t);if(-1!==n.indexOf("E"))return LB(n,t);if(36===n.charCodeAt(0))return"$"+Ba(e,n.substr(" "==n.charAt(1)?2:1),t);var i,o,s,a,l=Math.abs(t),u=t<0?"-":"";if(n.match(/^00+$/))return u+da(l,n.length);if(n.match(/^[#?]+$/))return i=""+t,0===t&&(i=""),i.length>n.length?i:Ji(n.substr(0,n.length-i.length))+i;if(o=n.match(MB))return function kte(e,n,t){return t+(0===n?"":""+n)+er(" ",e[1].length+2+e[4].length)}(o,l,u);if(n.match(/^#+0+$/))return u+da(l,n.length-n.indexOf("0"));if(o=n.match(FB))return i=(i=(""+t).replace(/^([^\.]+)$/,"$1."+Ji(o[1])).replace(/\.$/,"."+Ji(o[1]))).replace(/\.(\d*)$/,function(v,_){return"."+_+er("0",Ji(o[1]).length-_.length)}),-1!==n.indexOf("0.")?i:i.replace(/^0\./,".");if(n=n.replace(/^#+([0.])/,"$1"),o=n.match(/^(0*)\.(#*)$/))return u+(""+l).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,o[1].length?"0.":".");if(o=n.match(/^#{1,3},##0(\.?)$/))return u+ou(""+l);if(o=n.match(/^#,##0\.([#0]*0)$/))return t<0?"-"+Ba(e,n,-t):ou(""+t)+"."+er("0",o[1].length);if(o=n.match(/^#,#*,#0/))return Ba(e,n.replace(/^#,#*,/,""),t);if(o=n.match(/^([0#]+)(\\?-([0#]+))+$/))return i=Ip(Ba(e,n.replace(/[\\-]/g,""),t)),s=0,Ip(Ip(n.replace(/\\/g,"")).replace(/[0#]/g,function(v){return s-1||"\\"==t&&"-"==e.charAt(n+1)&&"0#".indexOf(e.charAt(n+2))>-1););break;case"?":for(;e.charAt(++n)===t;);break;case"*":++n,(" "==e.charAt(n)||"*"==e.charAt(n))&&++n;break;case"(":case")":++n;break;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":for(;n-1;);break;default:++n}return!1}var VB=/\[(=|>[=]?|<[>=]?)(-?\d+(?:\.\d*)?)\]/;function UB(e,n){if(null==n)return!1;var t=parseFloat(n[2]);switch(n[1]){case"=":if(e==t)return!0;break;case">":if(e>t)return!0;break;case"<":if(e":if(e!=t)return!0;break;case">=":if(e>=t)return!0;break;case"<=":if(e<=t)return!0}return!1}function jo(e,n,t){null==t&&(t={});var r="";switch(typeof e){case"string":r="m/d/yy"==e&&t.dateNF?t.dateNF:e;break;case"number":null==(r=14==e&&t.dateNF?t.dateNF:(null!=t.table?t.table:ot)[e])&&(r=t.table&&t.table[DB[e]]||ot[DB[e]]),null==r&&(r=yte[e]||"General")}if(b1(r,0))return Kd(n,t);n instanceof Date&&(n=IB(n,t.date1904));var i=function Lte(e,n){var t=function Nte(e){for(var n=[],t=!1,r=0,i=0;r-1&&--r,t.length>4)throw new Error("cannot find right format for |"+t.join("|")+"|");if("number"!=typeof n)return[4,4===t.length||i>-1?t[t.length-1]:"@"];switch(t.length){case 1:t=i>-1?["General","General","General",t[0]]:[t[0],t[0],t[0],"@"];break;case 2:t=i>-1?[t[0],t[0],t[0],t[1]]:[t[0],t[1],t[0],"@"];break;case 3:t=i>-1?[t[0],t[1],t[0],t[2]]:[t[0],t[1],t[2],"@"]}var o=n>0?t[0]:n<0?t[1]:t[2];if(-1===t[0].indexOf("[")&&-1===t[1].indexOf("["))return[r,o];if(null!=t[0].match(/\[[=<>]/)||null!=t[1].match(/\[[=<>]/)){var s=t[0].match(VB),a=t[1].match(VB);return UB(n,s)?[r,t[0]]:UB(n,a)?[r,t[1]]:[r,t[null!=s&&null!=a?2:1]]}return[r,o]}(r,n);if(b1(i[1]))return Kd(n,t);if(!0===n)n="TRUE";else if(!1===n)n="FALSE";else if(""===n||null==n)return"";return function Pte(e,n,t,r){for(var u,f,h,i=[],o="",s=0,a="",l="t",m="H";s=12?"P":"A"),_.t="T",m="h",s+=3):"AM/PM"===e.substr(s,5).toUpperCase()?(null!=u&&(_.v=u.H>=12?"PM":"AM"),_.t="T",s+=5,m="h"):"\u4e0a\u5348/\u4e0b\u5348"===e.substr(s,5).toUpperCase()?(null!=u&&(_.v=u.H>=12?"\u4e0b\u5348":"\u4e0a\u5348"),_.t="T",s+=5,m="h"):(_.t="t",++s),null==u&&"T"===_.t)return"";i[i.length]=_,l=a;break;case"[":for(o=a;"]"!==e.charAt(s++)&&s-1&&(o=(o.match(/\$([^-\[\]]*)/)||[])[1]||"$",Zd(e)||(i[i.length]={t:"t",v:o}));break;case".":if(null!=u){for(o=a;++s-1;)o+=a;i[i.length]={t:"n",v:o};break;case"?":for(o=a;e.charAt(++s)===a;)o+=a;i[i.length]={t:a,v:o},l=a;break;case"*":++s,(" "==e.charAt(s)||"*"==e.charAt(s))&&++s;break;case"(":case")":i[i.length]={t:1===r?"t":a,v:a},++s;break;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":for(o=a;s-1;)o+=e.charAt(s);i[i.length]={t:"D",v:o};break;case" ":i[i.length]={t:a,v:a},++s;break;case"$":i[i.length]={t:"t",v:"$"},++s;break;default:if(-1===",$-+/():!^&'~{}<>=\u20acacfijklopqrtuvwxzP".indexOf(a))throw new Error("unrecognized character "+a+" in "+e);i[i.length]={t:"t",v:a},++s}var w,x=0,b=0;for(s=i.length-1,l="t";s>=0;--s)switch(i[s].t){case"h":case"H":i[s].t=m,l="h",x<1&&(x=1);break;case"s":(w=i[s].v.match(/\.0+$/))&&(b=Math.max(b,w[0].length-1)),x<3&&(x=3);case"d":case"y":case"M":case"e":l=i[s].t;break;case"m":"s"===l&&(i[s].t="M",x<2&&(x=2));break;case"X":break;case"Z":x<1&&i[s].v.match(/[Hh]/)&&(x=1),x<2&&i[s].v.match(/[Mm]/)&&(x=2),x<3&&i[s].v.match(/[Ss]/)&&(x=3)}switch(x){case 0:break;case 1:u.u>=.5&&(u.u=0,++u.S),u.S>=60&&(u.S=0,++u.M),u.M>=60&&(u.M=0,++u.H);break;case 2:u.u>=.5&&(u.u=0,++u.S),u.S>=60&&(u.S=0,++u.M)}var O,C="";for(s=0;s0){40==C.charCodeAt(0)?(U=n<0&&45===C.charCodeAt(0)?-n:n,A=Pl("n",C,U)):(A=Pl("n",C,U=n<0&&r>1?-n:n),U<0&&i[0]&&"t"==i[0].t&&(A=A.substr(1),i[0].v="-"+i[0].v)),O=A.length-1;var q=i.length;for(s=0;s-1){q=s;break}var G=i.length;if(q===i.length&&-1===A.indexOf("E")){for(s=i.length-1;s>=0;--s)null==i[s]||-1==="n?".indexOf(i[s].t)||(O>=i[s].v.length-1?i[s].v=A.substr(1+(O-=i[s].v.length),i[s].v.length):O<0?i[s].v="":(i[s].v=A.substr(0,O+1),O=-1),i[s].t="t",G=s);O>=0&&G=0;--s)if(null!=i[s]&&-1!=="n?".indexOf(i[s].t)){for(f=i[s].v.indexOf(".")>-1&&s===q?i[s].v.indexOf(".")-1:i[s].v.length-1,z=i[s].v.substr(f+1);f>=0;--f)O>=0&&("0"===i[s].v.charAt(f)||"#"===i[s].v.charAt(f))&&(z=A.charAt(O--)+z);i[s].v=z,i[s].t="t",G=s}for(O>=0&&G-1&&s===q?i[s].v.indexOf(".")+1:0,z=i[s].v.substr(0,f);f-1&&(i[s].v=Pl(i[s].t,i[s].v,U=r>1&&n<0&&s>0&&"-"===i[s-1].v?-n:n),i[s].t="t");var ee="";for(s=0;s!==i.length;++s)null!=i[s]&&(ee+=i[s].v);return ee}(i[1],n,t,i[0])}function Va(e,n){if("number"!=typeof n){n=+n||-1;for(var t=0;t<392;++t)if(null!=ot[t]){if(ot[t]==e){n=t;break}}else n<0&&(n=t);n<0&&(n=391)}return ot[n]=e,n}function kp(){ot=function vte(e){return e||(e={}),e[0]="General",e[1]="0",e[2]="0.00",e[3]="#,##0",e[4]="#,##0.00",e[9]="0%",e[10]="0.00%",e[11]="0.00E+00",e[12]="# ?/?",e[13]="# ??/??",e[14]="m/d/yy",e[15]="d-mmm-yy",e[16]="d-mmm",e[17]="mmm-yy",e[18]="h:mm AM/PM",e[19]="h:mm:ss AM/PM",e[20]="h:mm",e[21]="h:mm:ss",e[22]="m/d/yy h:mm",e[37]="#,##0 ;(#,##0)",e[38]="#,##0 ;[Red](#,##0)",e[39]="#,##0.00;(#,##0.00)",e[40]="#,##0.00;[Red](#,##0.00)",e[45]="mm:ss",e[46]="[h]:mm:ss",e[47]="mmss.0",e[48]="##0.0E+0",e[49]="@",e[56]='"\u4e0a\u5348/\u4e0b\u5348 "hh"\u6642"mm"\u5206"ss"\u79d2 "',e}()}var Vte={5:'"$"#,##0_);\\("$"#,##0\\)',6:'"$"#,##0_);[Red]\\("$"#,##0\\)',7:'"$"#,##0.00_);\\("$"#,##0.00\\)',8:'"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',23:"General",24:"General",25:"General",26:"General",27:"m/d/yy",28:"m/d/yy",29:"m/d/yy",30:"m/d/yy",31:"m/d/yy",32:"h:mm:ss",33:"h:mm:ss",34:"h:mm:ss",35:"h:mm:ss",36:"m/d/yy",41:'_(* #,##0_);_(* (#,##0);_(* "-"_);_(@_)',42:'_("$"* #,##0_);_("$"* (#,##0);_("$"* "-"_);_(@_)',43:'_(* #,##0.00_);_(* (#,##0.00);_(* "-"??_);_(@_)',44:'_("$"* #,##0.00_);_("$"* (#,##0.00);_("$"* "-"??_);_(@_)',50:"m/d/yy",51:"m/d/yy",52:"m/d/yy",53:"m/d/yy",54:"m/d/yy",55:"m/d/yy",56:"m/d/yy",57:"m/d/yy",58:"m/d/yy",59:"0",60:"0.00",61:"#,##0",62:"#,##0.00",63:'"$"#,##0_);\\("$"#,##0\\)',64:'"$"#,##0_);[Red]\\("$"#,##0\\)',65:'"$"#,##0.00_);\\("$"#,##0.00\\)',66:'"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',67:"0%",68:"0.00%",69:"# ?/?",70:"# ??/??",71:"m/d/yy",72:"m/d/yy",73:"d-mmm-yy",74:"d-mmm",75:"mmm-yy",76:"h:mm",77:"h:mm:ss",78:"m/d/yy h:mm",79:"mm:ss",80:"[h]:mm:ss",81:"mmss.0"},HB=/[dD]+|[mM]+|[yYeE]+|[Hh]+|[Ss]+/g,jte=function(){var e={version:"1.2.0"},t=function n(){for(var A=0,q=new Array(256),G=0;256!=G;++G)q[G]=A=1&(A=1&(A=1&(A=1&(A=1&(A=1&(A=1&(A=1&(A=G)?-306674912^A>>>1:A>>>1)?-306674912^A>>>1:A>>>1)?-306674912^A>>>1:A>>>1)?-306674912^A>>>1:A>>>1)?-306674912^A>>>1:A>>>1)?-306674912^A>>>1:A>>>1)?-306674912^A>>>1:A>>>1)?-306674912^A>>>1:A>>>1;return typeof Int32Array<"u"?new Int32Array(q):q}(),i=function r(A){var q=0,G=0,ee=0,ie=typeof Int32Array<"u"?new Int32Array(4096):new Array(4096);for(ee=0;256!=ee;++ee)ie[ee]=A[ee];for(ee=0;256!=ee;++ee)for(G=A[ee],q=256+ee;q<4096;q+=256)G=ie[q]=G>>>8^A[255&G];var Y=[];for(ee=1;16!=ee;++ee)Y[ee-1]=typeof Int32Array<"u"?ie.subarray(256*ee,256*ee+256):ie.slice(256*ee,256*ee+256);return Y}(t),o=i[0],s=i[1],a=i[2],l=i[3],u=i[4],f=i[5],h=i[6],m=i[7],g=i[8],v=i[9],_=i[10],x=i[11],b=i[12],w=i[13],C=i[14];return e.table=t,e.bstr=function O(A,q){for(var G=~q,ee=0,ie=A.length;ee>>8^t[255&(G^A.charCodeAt(ee++))];return~G},e.buf=function z(A,q){for(var G=~q,ee=A.length-15,ie=0;ie>8&255]^b[A[ie++]^G>>16&255]^x[A[ie++]^G>>>24]^_[A[ie++]]^v[A[ie++]]^g[A[ie++]]^m[A[ie++]]^h[A[ie++]]^f[A[ie++]]^u[A[ie++]]^l[A[ie++]]^a[A[ie++]]^s[A[ie++]]^o[A[ie++]]^t[A[ie++]];for(ee+=15;ie>>8^t[255&(G^A[ie++])];return~G},e.str=function U(A,q){for(var G=~q,ee=0,ie=A.length,Y=0,Ie=0;ee>>8^t[255&(G^Y)]:Y<2048?G=(G=G>>>8^t[255&(G^(192|Y>>6&31))])>>>8^t[255&(G^(128|63&Y))]:Y>=55296&&Y<57344?(Y=64+(1023&Y),Ie=1023&A.charCodeAt(ee++),G=(G=(G=(G=G>>>8^t[255&(G^(240|Y>>8&7))])>>>8^t[255&(G^(128|Y>>2&63))])>>>8^t[255&(G^(128|Ie>>6&15|(3&Y)<<4))])>>>8^t[255&(G^(128|63&Ie))]):G=(G=(G=G>>>8^t[255&(G^(224|Y>>12&15))])>>>8^t[255&(G^(128|Y>>6&63))])>>>8^t[255&(G^(128|63&Y))];return~G},e}(),Qe=function(){var l,n={};function r(T){if("/"==T.charAt(T.length-1))return-1===T.slice(0,-1).indexOf("/")?T:r(T.slice(0,-1));var M=T.lastIndexOf("/");return-1===M?T:T.slice(0,M+1)}function i(T){if("/"==T.charAt(T.length-1))return i(T.slice(0,-1));var M=T.lastIndexOf("/");return-1===M?T:T.slice(M+1)}function o(T,M){"string"==typeof M&&(M=new Date(M));var I=M.getHours();I=(I=I<<6|M.getMinutes())<<5|M.getSeconds()>>>1,T.write_shift(2,I);var k=M.getFullYear()-1980;k=(k=k<<4|M.getMonth()+1)<<5|M.getDate(),T.write_shift(2,k)}function a(T){ai(T,0);for(var M={},I=0;T.l<=T.length-4;){var k=T.read_shift(2),F=T.read_shift(2),R=T.l+F,Z={};21589===k&&(1&(I=T.read_shift(1))&&(Z.mtime=T.read_shift(4)),F>5&&(2&I&&(Z.atime=T.read_shift(4)),4&I&&(Z.ctime=T.read_shift(4))),Z.mtime&&(Z.mt=new Date(1e3*Z.mtime))),T.l=R,M[k]=Z}return M}function u(){return l||(l={})}function f(T,M){if(80==T[0]&&75==T[1])return X6(T,M);if(109==(32|T[0])&&105==(32|T[1]))return function $he(T,M){if("mime-version:"!=ve(T.slice(0,13)).toLowerCase())throw new Error("Unsupported MAD header");var I=M&&M.root||"",k=(It&&Buffer.isBuffer(T)?T.toString("binary"):ve(T)).split("\r\n"),F=0,R="";for(F=0;F0&&(I=(I=I.slice(0,I.length-1)).slice(0,I.lastIndexOf("/")+1),R.slice(0,I.length)!=I););var Z=(k[1]||"").match(/boundary="(.*?)"/);if(!Z)throw new Error("MAD cannot find boundary");var ue="--"+(Z[1]||""),ne={FileIndex:[],FullPaths:[]};A(ne);var Se,Re=0;for(F=0;F=F&&(Re-=F),!Z[Re]){J=[];var Oe=[];for(Se=Re;Se>=0;){Oe[Se]=!0,Z[Se]=!0,ue[ue.length]=Se,J.push(T[Se]);var Pe=I[Math.floor(4*Se/k)];if(k<4+(ze=4*Se&Q))throw new Error("FAT boundary crossed: "+Se+" 4 "+k);if(!T[Pe]||Oe[Se=Jd(T[Pe],ze)])break}R[Re]={nodes:ue,data:u8([J])}}return R}(_t,Z,Q,k);Pn[Z].name="!Directory",F>0&&ue!==Ie&&(Pn[ue].name="!MiniFAT"),Pn[Q[0]].name="!FAT",Pn.fat_addrs=Q,Pn.ssz=k;var Cr=[],qo=[],j_=[];(function C(T,M,I,k,F,R,Z,ue){for(var ze,J=0,Q=k.length?2:0,ne=M[T].data,Se=0,Re=0;Se0&&J!==Ie&&(M[J].name="!StreamData")):Pe.size>=4096?(Pe.storage="fat",void 0===M[Pe.start]&&(M[Pe.start]=b(I,Pe.start,M.fat_addrs,M.ssz)),M[Pe.start].name=Pe.name,Pe.content=M[Pe.start].data.slice(0,Pe.size)):(Pe.storage="minifat",Pe.size<0?Pe.size=0:J!==Ie&&Pe.start!==Ie&&M[J]&&(Pe.content=_(Pe,M[J].data,(M[ue]||{}).data))),Pe.content&&ai(Pe.content,0),R[ze]=Pe,Z.push(Pe)}})(Z,Pn,_t,Cr,F,{},qo,ue),function v(T,M,I){for(var k=0,F=0,R=0,Z=0,ue=0,J=I.length,Q=[],ne=[];k0&&Z>=0;)R.push(M.slice(Z*Y,Z*Y+Y)),F-=Y,Z=Jd(I,4*Z);return 0===R.length?le(0):qr(R).slice(0,T.size)}function x(T,M,I,k,F){var R=Ie;if(T===Ie){if(0!==M)throw new Error("DIFAT chain shorter than expected")}else if(-1!==T){var Z=I[T],ue=(k>>>2)-1;if(!Z)return;for(var J=0;J=0;){F[J]=!0,R[R.length]=J,Z.push(T[J]);var ne=I[Math.floor(4*J/k)];if(k<4+(Q=4*J&ue))throw new Error("FAT boundary crossed: "+J+" 4 "+k);if(!T[ne])break;J=Jd(T[ne],Q)}return{nodes:R,data:u8([Z])}}function O(T,M){return new Date(1e3*(Xr(T,M+4)/1e7*Math.pow(2,32)+Xr(T,M)/1e7-11644473600))}function A(T,M){var I=M||{},k=I.root||"Root Entry";if(T.FullPaths||(T.FullPaths=[]),T.FileIndex||(T.FileIndex=[]),T.FullPaths.length!==T.FileIndex.length)throw new Error("inconsistent CFB structure");0===T.FullPaths.length&&(T.FullPaths[0]=k+"/",T.FileIndex[0]={name:k,type:5}),I.CLSID&&(T.FileIndex[0].clsid=I.CLSID),function q(T){var M="\x01Sh33tJ5";if(!Qe.find(T,"/"+M)){var I=le(4);I[0]=55,I[1]=I[3]=50,I[2]=54,T.FileIndex.push({name:M,type:2,content:I,size:4,L:69,R:69,C:69}),T.FullPaths.push(T.FullPaths[0]+M),G(T)}}(T)}function G(T,M){A(T);for(var I=!1,k=!1,F=T.FullPaths.length-1;F>=0;--F){var R=T.FileIndex[F];switch(R.type){case 0:k?I=!0:(T.FileIndex.pop(),T.FullPaths.pop());break;case 1:case 2:case 5:k=!0,isNaN(R.R*R.L*R.C)&&(I=!0),R.R>-1&&R.L>-1&&R.R==R.L&&(I=!0);break;default:I=!0}}if(I||M){var Z=new Date(1987,1,19),ue=0,J=Object.create?Object.create(null):{},Q=[];for(F=0;F1?1:-1,Se.size=0,Se.type=5;else if("/"==Re.slice(-1)){for(ue=F+1;ue=Q.length?-1:ue,ue=F+1;ue=Q.length?-1:ue,Se.type=1}else r(T.FullPaths[F+1]||"")==r(Re)&&(Se.R=F+1),Se.type=2}}}function ee(T,M){var I=M||{};if("mad"==I.fileType)return function Whe(T,M){for(var I=M||{},k=I.boundary||"SheetJS",F=["MIME-Version: 1.0",'Content-Type: multipart/related; boundary="'+(k="------="+k).slice(2)+'"',"","",""],R=T.FullPaths[0],Z=R,ue=T.FileIndex[0],J=1;J=32&&ze<128&&++Se;var Pe=Se>=4*Re/5;F.push(k),F.push("Content-Location: "+(I.root||"file:///C:/SheetJS/")+Z),F.push("Content-Transfer-Encoding: "+(Pe?"quoted-printable":"base64")),F.push("Content-Type: "+Vhe(ue,Z)),F.push(""),F.push(Pe?Hhe(ne):Uhe(ne))}return F.push(k+"--\r\n"),F.join("\r\n")}(T,I);if("zip"===(G(T),I.fileType))return function Bhe(T,M){var I=M||{},k=[],F=[],R=le(1),Z=I.compression?8:0,ue=0,Q=0,ne=0,Se=0,Re=0,ze=T.FullPaths[0],Oe=ze,Pe=T.FileIndex[0],_t=[],Pn=0;for(Q=1;Q0&&(xo<4096?Oe+=xo+63>>6:Pe+=xo+511>>9)}}for(var Cr=ze.FullPaths.length+3>>2,j_=Oe+127>>7,z_=(Oe+7>>3)+Pe+Cr+j_,_f=z_+127>>7,qA=_f<=109?0:Math.ceil((_f-109)/127);z_+_f+qA+127>>7>_f;)qA=++_f<=109?0:Math.ceil((_f-109)/127);var zl=[1,qA,_f,j_,Cr,Pe,Oe,0];return ze.FileIndex[0].size=Oe<<6,zl[7]=(ze.FileIndex[0].start=zl[0]+zl[1]+zl[2]+zl[3]+zl[4]+zl[5])+(zl[6]+7>>3),zl}(T),F=le(k[7]<<9),R=0,Z=0;for(R=0;R<8;++R)F.write_shift(1,Ae[R]);for(R=0;R<8;++R)F.write_shift(2,0);for(F.write_shift(2,62),F.write_shift(2,3),F.write_shift(2,65534),F.write_shift(2,9),F.write_shift(2,6),R=0;R<3;++R)F.write_shift(2,0);for(F.write_shift(4,0),F.write_shift(4,k[2]),F.write_shift(4,k[0]+k[1]+k[2]+k[3]-1),F.write_shift(4,0),F.write_shift(4,4096),F.write_shift(4,k[3]?k[0]+k[1]+k[2]-1:Ie),F.write_shift(4,k[3]),F.write_shift(-4,k[1]?k[0]-1:Ie),F.write_shift(4,k[1]),R=0;R<109;++R)F.write_shift(-4,R>9));for(ue(k[6]+7>>3);511&F.l;)F.write_shift(-4,pe.ENDOFCHAIN);for(Z=R=0,J=0;J=4096)&&(ne.start=Z,ue(Q+63>>6));for(;511&F.l;)F.write_shift(-4,pe.ENDOFCHAIN);for(R=0;R=4096)if(F.l=ne.start+1<<9,It&&Buffer.isBuffer(ne.content))ne.content.copy(F,F.l,0,ne.size),F.l+=ne.size+511&-512;else{for(J=0;J0&&ne.size<4096)if(It&&Buffer.isBuffer(ne.content))ne.content.copy(F,F.l,0,ne.size),F.l+=ne.size+63&-64;else{for(J=0;J>16|M>>8|M));function B(T,M){var I=_e[255&T];return M<=8?I>>>8-M:(I=I<<8|_e[T>>8&255],M<=16?I>>>16-M:(I=I<<8|_e[T>>16&255])>>>24-M)}function cn(T,M){var I=7&M,k=M>>>3;return(T[k]|(I<=6?0:T[k+1]<<8))>>>I&3}function Mt(T,M){var I=7&M,k=M>>>3;return(T[k]|(I<=5?0:T[k+1]<<8))>>>I&7}function Ft(T,M){var I=7&M,k=M>>>3;return(T[k]|(I<=3?0:T[k+1]<<8))>>>I&31}function Ve(T,M){var I=7&M,k=M>>>3;return(T[k]|(I<=1?0:T[k+1]<<8))>>>I&127}function hr(T,M,I){var k=7&M,F=M>>>3,Z=T[F]>>>k;return I<8-k||(Z|=T[F+1]<<8-k,I<16-k)||(Z|=T[F+2]<<16-k,I<24-k)||(Z|=T[F+3]<<24-k),Z&(1<>>3;return k<=5?T[F]|=(7&I)<>8-k),M+3}function Ga(T,M,I){return T[M>>>3]|=I=(1&I)<<(7&M),M+1}function Hl(T,M,I){var F=M>>>3;return T[F]|=255&(I<<=7&M),T[F+1]=I>>>=8,M+8}function U_(T,M,I){var F=M>>>3;return T[F]|=255&(I<<=7&M),T[F+1]=255&(I>>>=8),T[F+2]=I>>>8,M+16}function hu(T,M){var I=T.length,k=2*I>M?2*I:M+5,F=0;if(I>=M)return T;if(It){var R=EB(k);if(T.copy)T.copy(R);else for(;F>k-Se,Z=(1<=0;--Z)M[ue|Z<0;)J[J.l++]=ue[Q++]}return J.l}(J,Q):function Z(ue,J){for(var Q=0,ne=0,Se=we?new Uint16Array(32768):[];ne0;)J[J.l++]=ue[ne++];Q=8*J.l}else{Q=Ms(J,Q,+(ne+Re==ue.length)+2);for(var ze=0;Re-- >0;){var Oe=ue[ne],Pe=-1,_t=0;if((Pe=Se[ze=32767&(ze<<5^Oe)])&&((Pe|=-32768&ne)>ne&&(Pe-=32768),Pe2){(Oe=F[_t])<=22?Q=Hl(J,Q,_e[Oe+1]>>1)-1:(Hl(J,Q,3),Hl(J,Q+=5,_e[Oe-23]>>5),Q+=3);var Pn=Oe<8?0:Oe-4>>2;Pn>0&&(U_(J,Q,_t-fe[Oe]),Q+=Pn),Q=Hl(J,Q,_e[Oe=M[ne-Pe]]>>3),Q-=3;var xo=Oe<4?0:Oe-2>>1;xo>0&&(U_(J,Q,ne-Pe-Ee[Oe]),Q+=xo);for(var Cr=0;Cr<_t;++Cr)Se[ze]=32767&ne,ze=32767&(ze<<5^ue[ne]),++ne;Re-=_t-1}else Oe<=143?Oe+=48:Q=Ga(J,Q,1),Q=Hl(J,Q,_e[Oe]),Se[ze]=32767&ne,++ne}Q=Hl(J,Q,0)-1}}return J.l=(Q+7)/8|0,J.l}(J,Q)}}();function kt(T){var M=le(50+Math.floor(1.1*T.length)),I=qa(T,M);return M.slice(0,I)}var pr=we?new Uint16Array(32768):Go(32768),Fs=we?new Uint16Array(32768):Go(32768),Lr=we?new Uint16Array(128):Go(128),gf=1,W6=1;function Nhe(T,M){var I=Ft(T,M)+257,k=Ft(T,M+=5)+1,F=function un(T,M){var I=7&M,k=M>>>3;return(T[k]|(I<=4?0:T[k+1]<<8))>>>I&15}(T,M+=5)+4;M+=4;for(var R=0,Z=we?new Uint8Array(19):Go(19),ue=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],J=1,Q=we?new Uint8Array(8):Go(8),ne=we?new Uint8Array(8):Go(8),Se=Z.length,Re=0;Re>8-Oe;for(var Pe=(1<<7-Oe)-1;Pe>=0;--Pe)Lr[ze|Pe<>>=3){case 16:for(R=3+cn(T,M),M+=2,ze=_t[_t.length-1];R-- >0;)_t.push(ze);break;case 17:for(R=3+Mt(T,M),M+=3;R-- >0;)_t.push(0);break;case 18:for(R=11+Ve(T,M),M+=7;R-- >0;)_t.push(0);break;default:_t.push(ze),J>>0,ue=0,J=0;!(1&k);)if(k=Mt(T,I),I+=3,k>>>1)for(k>>1==1?(ue=9,J=5):(I=Nhe(T,I),ue=gf,J=W6);;){!M&&Z>>1==1?pu[ne]:pr[ne];if(I+=15&Se,(Se>>>=4)>>>8&255){if(256==Se)break;var Re=(Se-=257)<8?0:Se-4>>2;Re>5&&(Re=0);var ze=R+fe[Se];Re>0&&(ze+=hr(T,I,Re),I+=Re),ne=hr(T,I,J),I+=15&(Se=k>>>1==1?H_[ne]:Fs[ne]);var Oe=(Se>>>=4)<4?0:Se-2>>1,Pe=Ee[Se];for(Oe>0&&(Pe+=hr(T,I,Oe),I+=Oe),!M&&Z>>3]|T[1+(I>>>3)]<<8;if(I+=32,Q>0)for(!M&&Z0;)F[R++]=T[I>>>3],I+=8}return M?[F,I+7>>>3]:[F.slice(0,R),I+7>>>3]}(T.slice(T.l||0),M);return T.l+=k[1],k[0]}function q6(T,M){if(!T)throw new Error(M);typeof console<"u"&&console.error(M)}function X6(T,M){var I=T;ai(I,0);var R={FileIndex:[],FullPaths:[]};A(R,{root:M.root});for(var Z=I.length-4;(80!=I[Z]||75!=I[Z+1]||5!=I[Z+2]||6!=I[Z+3])&&Z>=0;)--Z;I.l=Z+4,I.l+=4;var ue=I.read_shift(2);I.l+=6;var J=I.read_shift(4);for(I.l=J,Z=0;Z>>=5);I>>>=4,k.setMilliseconds(0),k.setFullYear(I+1980),k.setMonth(R-1),k.setDate(F);var Z=31&M,ue=63&(M>>>=5);return k.setHours(M>>>=6),k.setMinutes(ue),k.setSeconds(Z<<1),k}(T);if(8257&R)throw new Error("Unsupported ZIP encryption");T.read_shift(4);for(var Q=T.read_shift(4),ne=T.read_shift(4),Se=T.read_shift(2),Re=T.read_shift(2),ze="",Oe=0;Oe3&&(r=!0),i[o].slice(i[o].length-1)){case"Y":throw new Error("Unsupported ISO Duration Field: "+i[o].slice(i[o].length-1));case"D":t*=24;case"H":t*=60;case"M":if(!r)throw new Error("Unsupported ISO Duration Field: M");t*=60}n+=t*parseInt(i[o],10)}return n}var WB=new Date("2017-02-19T19:06:09.000Z"),GB=isNaN(WB.getFullYear())?new Date("2/19/17"):WB,Xte=2017==GB.getFullYear();function qn(e,n){var t=new Date(e);if(Xte)return n>0?t.setTime(t.getTime()+60*t.getTimezoneOffset()*1e3):n<0&&t.setTime(t.getTime()-60*t.getTimezoneOffset()*1e3),t;if(e instanceof Date)return e;if(1917==GB.getFullYear()&&!isNaN(t.getFullYear())){var r=t.getFullYear();return e.indexOf(""+r)>-1||t.setFullYear(t.getFullYear()+100),t}var i=e.match(/\d+/g)||["2017","2","19","0","0","0"],o=new Date(+i[0],+i[1]-1,+i[2],+i[3]||0,+i[4]||0,+i[5]||0);return e.indexOf("Z")>-1&&(o=new Date(o.getTime()-60*o.getTimezoneOffset()*1e3)),o}function Qd(e,n){if(It&&Buffer.isBuffer(e)){if(n){if(255==e[0]&&254==e[1])return Ha(e.slice(2).toString("utf16le"));if(254==e[1]&&255==e[2])return Ha(wB(e.slice(2).toString("binary")))}return e.toString("binary")}if(typeof TextDecoder<"u")try{if(n){if(255==e[0]&&254==e[1])return Ha(new TextDecoder("utf-16le").decode(e.slice(2)));if(254==e[0]&&255==e[1])return Ha(new TextDecoder("utf-16be").decode(e.slice(2)))}var t={"\u20ac":"\x80","\u201a":"\x82",\u0192:"\x83","\u201e":"\x84","\u2026":"\x85","\u2020":"\x86","\u2021":"\x87",\u02c6:"\x88","\u2030":"\x89",\u0160:"\x8a","\u2039":"\x8b",\u0152:"\x8c",\u017d:"\x8e","\u2018":"\x91","\u2019":"\x92","\u201c":"\x93","\u201d":"\x94","\u2022":"\x95","\u2013":"\x96","\u2014":"\x97","\u02dc":"\x98","\u2122":"\x99",\u0161:"\x9a","\u203a":"\x9b",\u0153:"\x9c",\u017e:"\x9e",\u0178:"\x9f"};return Array.isArray(e)&&(e=new Uint8Array(e)),new TextDecoder("latin1").decode(e).replace(/[\u20ac\u201a\u0192\u201e\u2026\u2020\u2021\u02c6\u2030\u0160\u2039\u0152\u017d\u2018\u2019\u201c\u201d\u2022\u2013\u2014\u02dc\u2122\u0161\u203a\u0153\u017e\u0178]/g,function(o){return t[o]||o})}catch{}for(var r=[],i=0;i!=e.length;++i)r.push(String.fromCharCode(e[i]));return r.join("")}function wn(e){if(typeof JSON<"u"&&!Array.isArray(e))return JSON.parse(JSON.stringify(e));if("object"!=typeof e||null==e)return e;if(e instanceof Date)return new Date(e.getTime());var n={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(n[t]=wn(e[t]));return n}function er(e,n){for(var t="";t.length3&&-1==Yte.indexOf(s))return t}else if(s.match(/[a-z]/))return t;return r<0||r>8099?t:(i>0||o>1)&&101!=r?n:e.match(/[^-0-9:,\/\\]/)?t:n}var Kte=function(){var e=5=="abacaba".split(/(:?b)/i).length;return function(t,r,i){if(e||"string"==typeof r)return t.split(r);for(var o=t.split(r),s=[o[0]],a=1;a\/]+)\s*=\s*((?:")([^"]*)(?:")|(?:')([^']*)(?:')|([^'">\s]+))/g,QB=/<[\/\?]?[a-zA-Z0-9:_-]+(?:\s+[^"\s?>\/]+\s*=\s*(?:"[^"]*"|'[^']*'|[^'">\s=]+))*\s*[\/\?]?>/gm,Ci=xr.match(QB)?QB:/<[^>]*>/g,ene=/<\w*:/,tne=/<(\/?)\w+:/;function dt(e,n,t){for(var r={},i=0,o=0;i!==e.length&&32!==(o=e.charCodeAt(i))&&10!==o&&13!==o;++i);if(n||(r[0]=e.slice(0,i)),i===e.length)return r;var s=e.match(Qte),a=0,l="",u=0,f="",h="",m=1;if(s)for(u=0;u!=s.length;++u){for(h=s[u],o=0;o!=h.length&&61!==h.charCodeAt(o);++o);for(f=h.slice(0,o).trim();32==h.charCodeAt(o+1);)++o;for(m=34==(i=h.charCodeAt(o+1))||39==i?1:0,l=h.slice(o+1+m,h.length-m),a=0;a!=f.length&&58!==f.charCodeAt(a);++a);if(a===f.length)f.indexOf("_")>0&&(f=f.slice(0,f.indexOf("_"))),r[f]=l,t||(r[f.toLowerCase()]=l);else{var g=(5===a&&"xmlns"===f.slice(0,5)?"xmlns":"")+f.slice(a+1);if(r[g]&&"ext"==f.slice(a-3,a))continue;r[g]=l,t||(r[g.toLowerCase()]=l)}}return r}function Ua(e){return e.replace(tne,"<$1")}var JB={""":'"',"'":"'",">":">","<":"<","&":"&"},PI=E1(JB),$t=function(){var e=/&(?:quot|apos|gt|lt|amp|#x?([\da-fA-F]+));/gi,n=/_x([\da-fA-F]{4})_/gi;return function t(r){var i=r+"",o=i.indexOf("");if(-1==o)return i.replace(e,function(a,l){return JB[a]||String.fromCharCode(parseInt(l,a.indexOf("x")>-1?16:10))||a}).replace(n,function(a,l){return String.fromCharCode(parseInt(l,16))});var s=i.indexOf("");return t(i.slice(0,o))+i.slice(o+9,s)+t(i.slice(s+3))}}(),LI=/[&<>'"]/g,t8=/[\u0000-\u001f]/g;function BI(e){return(e+"").replace(LI,function(t){return PI[t]}).replace(/\n/g,"
").replace(t8,function(t){return"&#x"+("000"+t.charCodeAt(0).toString(16)).slice(-4)+";"})}var n8=function(){var e=/&#(\d+);/g;function n(t,r){return String.fromCharCode(parseInt(r,10))}return function(r){return r.replace(e,n)}}();function On(e){switch(e){case 1:case!0:case"1":case"true":case"TRUE":return!0;default:return!1}}function VI(e){for(var n="",t=0,r=0,i=0,o=0,s=0,a=0;t191&&r<224?(s=(31&r)<<6,s|=63&i,n+=String.fromCharCode(s)):(o=e.charCodeAt(t++),r<240?n+=String.fromCharCode((15&r)<<12|(63&i)<<6|63&o):(a=((7&r)<<18|(63&i)<<12|(63&o)<<6|63&(s=e.charCodeAt(t++)))-65536,n+=String.fromCharCode(55296+(a>>>10&1023)),n+=String.fromCharCode(56320+(1023&a)))));return n}function r8(e){var t,r,a,n=nu(2*e.length),i=1,o=0,s=0;for(r=0;r>>10&1023),t=56320+(1023&t)),0!==s&&(n[o++]=255&s,n[o++]=s>>>8,s=0),n[o++]=t%256,n[o++]=t>>>8;return n.slice(0,o).toString("ucs2")}function i8(e){return Nl(e,"binary").toString("utf8")}var S1="foo bar baz\xe2\x98\x83\xf0\x9f\x8d\xa3",pn=It&&(i8(S1)==VI(S1)&&i8||r8(S1)==VI(S1)&&r8)||VI,Ha=It?function(e){return Nl(e,"utf8").toString("binary")}:function(e){for(var n=[],t=0,r=0,i=0;t>6))),n.push(String.fromCharCode(128+(63&r)));break;case r>=55296&&r<57344:r-=55296,i=e.charCodeAt(t++)-56320+(r<<10),n.push(String.fromCharCode(240+(i>>18&7))),n.push(String.fromCharCode(144+(i>>12&63))),n.push(String.fromCharCode(128+(i>>6&63))),n.push(String.fromCharCode(128+(63&i)));break;default:n.push(String.fromCharCode(224+(r>>12))),n.push(String.fromCharCode(128+(r>>6&63))),n.push(String.fromCharCode(128+(63&r)))}return n.join("")},m_=function(){var e={};return function(t,r){var i=t+"|"+(r||"");return e[i]?e[i]:e[i]=new RegExp("<(?:\\w+:)?"+t+'(?: xml:space="preserve")?(?:[^>]*)>([\\s\\S]*?)",r||"")}}(),o8=function(){var e=[["nbsp"," "],["middot","\xb7"],["quot",'"'],["apos","'"],["gt",">"],["lt","<"],["amp","&"]].map(function(n){return[new RegExp("&"+n[0]+";","ig"),n[1]]});return function(t){for(var r=t.replace(/^[\t\n\r ]+/,"").replace(/[\t\n\r ]+$/,"").replace(/>\s+/g,">").replace(/\s+/g,"\n").replace(/<[^>]*>/g,""),i=0;i([\\s\\S]*?)","g")}}(),sne=/<\/?(?:vt:)?variant>/g,ane=/<(?:vt:)([^>]*)>([\s\S]*)"+n+""}function HI(e){if(It&&Buffer.isBuffer(e))return e.toString("utf8");if("string"==typeof e)return e;if(typeof Uint8Array<"u"&&e instanceof Uint8Array)return pn(ru(kI(e)));throw new Error("Bad input format: expected Buffer or string")}var g_=/<(\/?)([^\s?>:\/]+)(?:[\s?:\/][^>]*)?>/gm,br={CORE_PROPS:"http://schemas.openxmlformats.org/package/2006/metadata/core-properties",CUST_PROPS:"http://schemas.openxmlformats.org/officeDocument/2006/custom-properties",EXT_PROPS:"http://schemas.openxmlformats.org/officeDocument/2006/extended-properties",CT:"http://schemas.openxmlformats.org/package/2006/content-types",RELS:"http://schemas.openxmlformats.org/package/2006/relationships",TCMNT:"http://schemas.microsoft.com/office/spreadsheetml/2018/threadedcomments",dc:"http://purl.org/dc/elements/1.1/",dcterms:"http://purl.org/dc/terms/",dcmitype:"http://purl.org/dc/dcmitype/",mx:"http://schemas.microsoft.com/office/mac/excel/2008/main",r:"http://schemas.openxmlformats.org/officeDocument/2006/relationships",sjs:"http://schemas.openxmlformats.org/package/2006/sheetjs/core-properties",vt:"http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes",xsi:"http://www.w3.org/2001/XMLSchema-instance",xsd:"http://www.w3.org/2001/XMLSchema"},au=["http://schemas.openxmlformats.org/spreadsheetml/2006/main","http://purl.oclc.org/ooxml/spreadsheetml/main","http://schemas.microsoft.com/office/excel/2006/main","http://schemas.microsoft.com/office/excel/2006/2"],c8=function(e){for(var n=[],r=0;r0&&Buffer.isBuffer(e[0][0])?Buffer.concat(e[0].map(function(n){return Buffer.isBuffer(n)?n:Nl(n)})):c8(e)}:c8,d8=function(e,n,t){for(var r=[],i=n;i0?Fp(e,n+4,n+4+t-1):""},jI=m8,g8=function(e,n){var t=Xr(e,n);return t>0?Fp(e,n+4,n+4+t-1):""},zI=g8,_8=function(e,n){var t=2*Xr(e,n);return t>0?Fp(e,n+4,n+4+t-1):""},$I=_8,v8=function(n,t){var r=Xr(n,t);return r>0?I1(n,t+4,t+4+r):""},WI=v8,y8=function(e,n){var t=Xr(e,n);return t>0?Fp(e,n+4,n+4+t):""},GI=y8,x8=function(e,n){return function cne(e,n){for(var t=1-2*(e[n+7]>>>7),r=((127&e[n+7])<<4)+(e[n+6]>>>4&15),i=15&e[n+6],o=5;o>=0;--o)i=256*i+e[n+o];return 2047==r?0==i?t*(1/0):NaN:(0==r?r=-1022:(r-=1023,i+=Math.pow(2,52)),t*Math.pow(2,r-52)*i)}(e,n)},A1=x8,qI=function(n){return Array.isArray(n)||typeof Uint8Array<"u"&&n instanceof Uint8Array};It&&(jI=function(n,t){if(!Buffer.isBuffer(n))return m8(n,t);var r=n.readUInt32LE(t);return r>0?n.toString("utf8",t+4,t+4+r-1):""},zI=function(n,t){if(!Buffer.isBuffer(n))return g8(n,t);var r=n.readUInt32LE(t);return r>0?n.toString("utf8",t+4,t+4+r-1):""},$I=function(n,t){if(!Buffer.isBuffer(n))return _8(n,t);var r=2*n.readUInt32LE(t);return n.toString("utf16le",t+4,t+4+r-1)},WI=function(n,t){if(!Buffer.isBuffer(n))return v8(n,t);var r=n.readUInt32LE(t);return n.toString("utf16le",t+4,t+4+r)},GI=function(n,t){if(!Buffer.isBuffer(n))return y8(n,t);var r=n.readUInt32LE(t);return n.toString("utf8",t+4,t+4+r)},A1=function(n,t){return Buffer.isBuffer(n)?n.readDoubleLE(t):x8(n,t)},qI=function(n){return Buffer.isBuffer(n)||Array.isArray(n)||typeof Uint8Array<"u"&&n instanceof Uint8Array}),typeof jt<"u"&&function b8(){I1=function(e,n,t){return jt.utils.decode(1200,e.slice(n,t)).replace(Ei,"")},Fp=function(e,n,t){return jt.utils.decode(65001,e.slice(n,t))},jI=function(e,n){var t=Xr(e,n);return t>0?jt.utils.decode(Yd,e.slice(n+4,n+4+t-1)):""},zI=function(e,n){var t=Xr(e,n);return t>0?jt.utils.decode(Vo,e.slice(n+4,n+4+t-1)):""},$I=function(e,n){var t=2*Xr(e,n);return t>0?jt.utils.decode(1200,e.slice(n+4,n+4+t-1)):""},WI=function(e,n){var t=Xr(e,n);return t>0?jt.utils.decode(1200,e.slice(n+4,n+4+t)):""},GI=function(e,n){var t=Xr(e,n);return t>0?jt.utils.decode(65001,e.slice(n+4,n+4+t)):""}}();var Rp=function(e,n){return e[n]},Ll=function(e,n){return 256*e[n+1]+e[n]},dne=function(e,n){var t=256*e[n+1]+e[n];return t<32768?t:-1*(65535-t+1)},Xr=function(e,n){return e[n+3]*(1<<24)+(e[n+2]<<16)+(e[n+1]<<8)+e[n]},Jd=function(e,n){return e[n+3]<<24|e[n+2]<<16|e[n+1]<<8|e[n]},fne=function(e,n){return e[n]<<24|e[n+1]<<16|e[n+2]<<8|e[n+3]};function __(e,n){var r,i,s,a,l,u,t="",o=[];switch(n){case"dbcs":if(u=this.l,It&&Buffer.isBuffer(this))t=this.slice(this.l,this.l+2*e).toString("utf16le");else for(l=0;l0?Jd:fne)(this,this.l),this.l+=4,r);case 8:case-8:if("f"===n)return i=8==e?A1(this,this.l):A1([this[this.l+7],this[this.l+6],this[this.l+5],this[this.l+4],this[this.l+3],this[this.l+2],this[this.l+1],this[this.l+0]],0),this.l+=8,i;e=8;case 16:t=h8(this,this.l,e)}}return this.l+=e,t}var hne=function(e,n,t){e[t]=255&n,e[t+1]=n>>>8&255,e[t+2]=n>>>16&255,e[t+3]=n>>>24&255},pne=function(e,n,t){e[t]=255&n,e[t+1]=n>>8&255,e[t+2]=n>>16&255,e[t+3]=n>>24&255},mne=function(e,n,t){e[t]=255&n,e[t+1]=n>>>8&255};function gne(e,n,t){var r=0,i=0;if("dbcs"===t){for(i=0;i!=n.length;++i)mne(this,n.charCodeAt(i),this.l+2*i);r=2*n.length}else if("sbcs"===t){if(typeof jt<"u"&&874==Yd)for(i=0;i!=n.length;++i){var o=jt.utils.encode(Yd,n.charAt(i));this[this.l+i]=o[0]}else for(n=n.replace(/[^\x00-\x7F]/g,"_"),i=0;i!=n.length;++i)this[this.l+i]=255&n.charCodeAt(i);r=n.length}else{if("hex"===t){for(;i>8}for(;this.l>>=8);break;case 3:r=3,this[this.l]=255&n,this[this.l+1]=255&(n>>>=8),this[this.l+2]=255&(n>>>=8);break;case 4:r=4,hne(this,n,this.l);break;case 8:if(r=8,"f"===t){!function une(e,n,t){var r=(n<0||1/n==-1/0?1:0)<<7,i=0,o=0,s=r?-n:n;isFinite(s)?0==s?i=o=0:(i=Math.floor(Math.log(s)/Math.LN2),o=s*Math.pow(2,52-i),i<=-1023&&(!isFinite(o)||o>4|r}(this,n,this.l);break}case 16:break;case-4:r=4,pne(this,n,this.l)}}return this.l+=r,this}function w8(e,n){var t=h8(this,this.l,e.length>>1);if(t!==e)throw new Error(n+"Expected "+e+" saw "+t);this.l+=e.length>>1}function ai(e,n){e.l=n,e.read_shift=__,e.chk=w8,e.write_shift=gne}function Ti(e,n){e.l+=n}function le(e){var n=nu(e);return ai(n,0),n}function Bl(e,n,t){if(e){var r,i,o;ai(e,e.l||0);for(var s=e.length,a=0,l=0;e.lr.l&&((r=r.slice(0,r.l)).l=r.length),r.length>0&&e.push(r),r=null)},o=function(u){return r&&u=256;)r.c-=256;for(;r.r>=65536;)r.r-=65536}return r}function E8(e,n,t){var r=wn(e);return r.s=v_(r.s,n.s,t),r.e=v_(r.e,n.s,t),r}function y_(e,n){if(e.cRel&&e.c<0)for(e=wn(e);e.c<0;)e.c+=n>8?16384:256;if(e.rRel&&e.r<0)for(e=wn(e);e.r<0;)e.r+=n>8?1048576:n>5?65536:16384;var t=ft(e);return!e.cRel&&null!=e.cRel&&(t=function yne(e){return e.replace(/^([A-Z])/,"$$$1")}(t)),!e.rRel&&null!=e.rRel&&(t=function _ne(e){return e.replace(/([A-Z]|^)(\d+)$/,"$1$$$2")}(t)),t}function XI(e,n){return 0!=e.s.r||e.s.rRel||e.e.r!=(n.biff>=12?1048575:n.biff>=8?65536:16384)||e.e.rRel?0!=e.s.c||e.s.cRel||e.e.c!=(n.biff>=12?16383:255)||e.e.cRel?y_(e.s,n.biff)+":"+y_(e.e,n.biff):(e.s.rRel?"":"$")+tr(e.s.r)+":"+(e.e.rRel?"":"$")+tr(e.e.r):(e.s.cRel?"":"$")+Nn(e.s.c)+":"+(e.e.cRel?"":"$")+Nn(e.e.c)}function YI(e){return parseInt(function vne(e){return e.replace(/\$(\d+)$/,"$1")}(e),10)-1}function tr(e){return""+(e+1)}function KI(e){for(var n=function xne(e){return e.replace(/^\$([A-Z])/,"$1")}(e),t=0,r=0;r!==n.length;++r)t=26*t+n.charCodeAt(r)-64;return t-1}function Nn(e){if(e<0)throw new Error("invalid column "+e);var n="";for(++e;e;e=Math.floor((e-1)/26))n=String.fromCharCode((e-1)%26+65)+n;return n}function Xn(e){for(var n=0,t=0,r=0;r=48&&i<=57?n=10*n+(i-48):i>=65&&i<=90&&(t=26*t+(i-64))}return{c:t-1,r:n-1}}function ft(e){for(var n=e.c+1,t="";n;n=(n-1)/26|0)t=String.fromCharCode((n-1)%26+65)+t;return t+(e.r+1)}function Wo(e){var n=e.indexOf(":");return-1==n?{s:Xn(e),e:Xn(e)}:{s:Xn(e.slice(0,n)),e:Xn(e.slice(n+1))}}function wt(e,n){return typeof n>"u"||"number"==typeof n?wt(e.s,e.e):("string"!=typeof e&&(e=ft(e)),"string"!=typeof n&&(n=ft(n)),e==n?e:e+":"+n)}function Nt(e){var n={s:{c:0,r:0},e:{c:0,r:0}},t=0,r=0,i=0,o=e.length;for(t=0;r26);++r)t=26*t+i;for(n.s.c=--t,t=0;r9);++r)t=10*t+i;if(n.s.r=--t,r===o||10!=i)return n.e.c=n.s.c,n.e.r=n.s.r,n;for(++r,t=0;r!=o&&!((i=e.charCodeAt(r)-64)<1||i>26);++r)t=26*t+i;for(n.e.c=--t,t=0;r!=o&&!((i=e.charCodeAt(r)-48)<0||i>9);++r)t=10*t+i;return n.e.r=--t,n}function ja(e,n,t){return null==e||null==e.t||"z"==e.t?"":void 0!==e.w?e.w:("d"==e.t&&!e.z&&t&&t.dateNF&&(e.z=t.dateNF),"e"==e.t?Vl[e.v]||e.v:function C8(e,n){var t="d"==e.t&&n instanceof Date;if(null!=e.z)try{return e.w=jo(e.z,t?Pr(n):n)}catch{}try{return e.w=jo((e.XF||{}).numFmtId||(t?14:0),t?Pr(n):n)}catch{return""+n}}(e,null==n?e.v:n))}function lu(e,n){var t=n&&n.sheet?n.sheet:"Sheet1",r={};return r[t]=e,{SheetNames:[t],Sheets:r}}function T8(e,n,t){var r=t||{},i=e?Array.isArray(e):r.dense;null!=Qn&&null==i&&(i=Qn);var o=e||(i?[]:{}),s=0,a=0;if(o&&null!=r.origin){if("number"==typeof r.origin)s=r.origin;else{var l="string"==typeof r.origin?Xn(r.origin):r.origin;s=l.r,a=l.c}o["!ref"]||(o["!ref"]="A1:A1")}var u={s:{c:1e7,r:1e7},e:{c:0,r:0}};if(o["!ref"]){var f=Nt(o["!ref"]);u.s.c=f.s.c,u.s.r=f.s.r,u.e.c=Math.max(u.e.c,f.e.c),u.e.r=Math.max(u.e.r,f.e.r),-1==s&&(u.e.r=s=f.e.r+1)}for(var h=0;h!=n.length;++h)if(n[h]){if(!Array.isArray(n[h]))throw new Error("aoa_to_sheet expects an array of arrays");for(var m=0;m!=n[h].length;++m)if(!(typeof n[h][m]>"u")){var g={v:n[h][m]},v=s+h,_=a+m;if(u.s.r>v&&(u.s.r=v),u.s.c>_&&(u.s.c=_),u.e.r>2;return t?i/100:i}function I8(e){var n={s:{},e:{}};return n.s.r=e.read_shift(4),n.e.r=e.read_shift(4),n.s.c=e.read_shift(4),n.e.c=e.read_shift(4),n}var rf=I8;function Si(e){if(e.length-e.l<8)throw"XLS Xnum Buffer underflow";return e.read_shift(8,"f")}function A8(e,n){var r=e.read_shift(4);switch(r){case 0:return"";case 4294967295:case 4294967294:return{2:"BITMAP",3:"METAFILEPICT",8:"DIB",14:"ENHMETAFILE"}[e.read_shift(4)]||""}if(r>400)throw new Error("Unsupported Clipboard: "+r.toString(16));return e.l-=4,e.read_shift(0,1==n?"lpstr":"lpwstr")}var rA=2,yo=3,k8=12,M8=81,Bne=[80,M8],iA={1:{n:"CodePage",t:rA},2:{n:"Category",t:80},3:{n:"PresentationFormat",t:80},4:{n:"ByteCount",t:yo},5:{n:"LineCount",t:yo},6:{n:"ParagraphCount",t:yo},7:{n:"SlideCount",t:yo},8:{n:"NoteCount",t:yo},9:{n:"HiddenCount",t:yo},10:{n:"MultimediaClipCount",t:yo},11:{n:"ScaleCrop",t:11},12:{n:"HeadingPairs",t:4108},13:{n:"TitlesOfParts",t:4126},14:{n:"Manager",t:80},15:{n:"Company",t:80},16:{n:"LinksUpToDate",t:11},17:{n:"CharacterCount",t:yo},19:{n:"SharedDoc",t:11},22:{n:"HyperlinksChanged",t:11},23:{n:"AppVersion",t:yo,p:"version"},24:{n:"DigSig",t:65},26:{n:"ContentType",t:80},27:{n:"ContentStatus",t:80},28:{n:"Language",t:80},29:{n:"Version",t:80},255:{},2147483648:{n:"Locale",t:19},2147483651:{n:"Behavior",t:19},1919054434:{}},oA={1:{n:"CodePage",t:rA},2:{n:"Title",t:80},3:{n:"Subject",t:80},4:{n:"Author",t:80},5:{n:"Keywords",t:80},6:{n:"Comments",t:80},7:{n:"Template",t:80},8:{n:"LastAuthor",t:80},9:{n:"RevNumber",t:80},10:{n:"EditTime",t:64},11:{n:"LastPrinted",t:64},12:{n:"CreatedDate",t:64},13:{n:"ModifiedDate",t:64},14:{n:"PageCount",t:yo},15:{n:"WordCount",t:yo},16:{n:"CharCount",t:yo},17:{n:"Thumbnail",t:71},18:{n:"Application",t:80},19:{n:"DocSecurity",t:yo},255:{},2147483648:{n:"Locale",t:19},2147483651:{n:"Behavior",t:19},1919054434:{}},F8={1:"US",2:"CA",3:"",7:"RU",20:"EG",30:"GR",31:"NL",32:"BE",33:"FR",34:"ES",36:"HU",39:"IT",41:"CH",43:"AT",44:"GB",45:"DK",46:"SE",47:"NO",48:"PL",49:"DE",52:"MX",55:"BR",61:"AU",64:"NZ",66:"TH",81:"JP",82:"KR",84:"VN",86:"CN",90:"TR",105:"JS",213:"DZ",216:"MA",218:"LY",351:"PT",354:"IS",358:"FI",420:"CZ",886:"TW",961:"LB",962:"JO",963:"SY",964:"IQ",965:"KW",966:"SA",971:"AE",972:"IL",974:"QA",981:"IR",65535:"US"},Vne=[null,"solid","mediumGray","darkGray","lightGray","darkHorizontal","darkVertical","darkDown","darkUp","darkGrid","darkTrellis","lightHorizontal","lightVertical","lightDown","lightUp","lightGrid","lightTrellis","gray125","gray0625"];function Une(e){return e.map(function(n){return[n>>16&255,n>>8&255,255&n]})}var af=wn(Une([0,16777215,16711680,65280,255,16776960,16711935,65535,0,16777215,16711680,65280,255,16776960,16711935,65535,8388608,32768,128,8421376,8388736,32896,12632256,8421504,10066431,10040166,16777164,13434879,6684774,16744576,26316,13421823,128,16711935,16776960,65535,8388736,8388608,32896,255,52479,13434879,13434828,16777113,10079487,16751052,13408767,16764057,3368703,3394764,10079232,16763904,16750848,16737792,6710937,9868950,13158,3381606,13056,3355392,10040064,10040166,3355545,3355443,16777215,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])),Vl={0:"#NULL!",7:"#DIV/0!",15:"#VALUE!",23:"#REF!",29:"#NAME?",36:"#NUM!",42:"#N/A",43:"#GETTING_DATA",255:"#WTF?"},R8={"#NULL!":0,"#DIV/0!":7,"#VALUE!":15,"#REF!":23,"#NAME?":29,"#NUM!":36,"#N/A":42,"#GETTING_DATA":43,"#WTF?":255},sA={"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":"workbooks","application/vnd.ms-excel.sheet.macroEnabled.main+xml":"workbooks","application/vnd.ms-excel.sheet.binary.macroEnabled.main":"workbooks","application/vnd.ms-excel.addin.macroEnabled.main+xml":"workbooks","application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml":"workbooks","application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml":"sheets","application/vnd.ms-excel.worksheet":"sheets","application/vnd.ms-excel.binIndexWs":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml":"charts","application/vnd.ms-excel.chartsheet":"charts","application/vnd.ms-excel.macrosheet+xml":"macros","application/vnd.ms-excel.macrosheet":"macros","application/vnd.ms-excel.intlmacrosheet":"TODO","application/vnd.ms-excel.binIndexMs":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml":"dialogs","application/vnd.ms-excel.dialogsheet":"dialogs","application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml":"strs","application/vnd.ms-excel.sharedStrings":"strs","application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml":"styles","application/vnd.ms-excel.styles":"styles","application/vnd.openxmlformats-package.core-properties+xml":"coreprops","application/vnd.openxmlformats-officedocument.custom-properties+xml":"custprops","application/vnd.openxmlformats-officedocument.extended-properties+xml":"extprops","application/vnd.openxmlformats-officedocument.customXmlProperties+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.customProperty":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml":"comments","application/vnd.ms-excel.comments":"comments","application/vnd.ms-excel.threadedcomments+xml":"threadedcomments","application/vnd.ms-excel.person+xml":"people","application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml":"metadata","application/vnd.ms-excel.sheetMetadata":"metadata","application/vnd.ms-excel.pivotTable":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.chart+xml":"TODO","application/vnd.ms-office.chartcolorstyle+xml":"TODO","application/vnd.ms-office.chartstyle+xml":"TODO","application/vnd.ms-office.chartex+xml":"TODO","application/vnd.ms-excel.calcChain":"calcchains","application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml":"calcchains","application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings":"TODO","application/vnd.ms-office.activeX":"TODO","application/vnd.ms-office.activeX+xml":"TODO","application/vnd.ms-excel.attachedToolbars":"TODO","application/vnd.ms-excel.connections":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":"TODO","application/vnd.ms-excel.externalLink":"links","application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml":"links","application/vnd.ms-excel.pivotCacheDefinition":"TODO","application/vnd.ms-excel.pivotCacheRecords":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml":"TODO","application/vnd.ms-excel.queryTable":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml":"TODO","application/vnd.ms-excel.userNames":"TODO","application/vnd.ms-excel.revisionHeaders":"TODO","application/vnd.ms-excel.revisionLog":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml":"TODO","application/vnd.ms-excel.tableSingleCells":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml":"TODO","application/vnd.ms-excel.slicer":"TODO","application/vnd.ms-excel.slicerCache":"TODO","application/vnd.ms-excel.slicer+xml":"TODO","application/vnd.ms-excel.slicerCache+xml":"TODO","application/vnd.ms-excel.wsSortMap":"TODO","application/vnd.ms-excel.table":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":"TODO","application/vnd.openxmlformats-officedocument.theme+xml":"themes","application/vnd.openxmlformats-officedocument.themeOverride+xml":"TODO","application/vnd.ms-excel.Timeline+xml":"TODO","application/vnd.ms-excel.TimelineCache+xml":"TODO","application/vnd.ms-office.vbaProject":"vba","application/vnd.ms-office.vbaProjectSignature":"TODO","application/vnd.ms-office.volatileDependencies":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml":"TODO","application/vnd.ms-excel.controlproperties+xml":"TODO","application/vnd.openxmlformats-officedocument.model+data":"TODO","application/vnd.ms-excel.Survey+xml":"TODO","application/vnd.openxmlformats-officedocument.drawing+xml":"drawings","application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml":"TODO","application/vnd.openxmlformats-officedocument.vmlDrawing":"TODO","application/vnd.openxmlformats-package.relationships+xml":"rels","application/vnd.openxmlformats-officedocument.oleObject":"TODO","image/png":"TODO",sheet:"js"},Et={WB:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument",SHEET:"http://sheetjs.openxmlformats.org/officeDocument/2006/relationships/officeDocument",HLINK:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink",VML:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing",XPATH:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLinkPath",XMISS:"http://schemas.microsoft.com/office/2006/relationships/xlExternalLinkPath/xlPathMissing",XLINK:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLink",CXML:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml",CXMLP:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXmlProps",CMNT:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments",CORE_PROPS:"http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties",EXT_PROPS:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties",CUST_PROPS:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties",SST:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings",STY:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles",THEME:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme",CHART:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart",CHARTEX:"http://schemas.microsoft.com/office/2014/relationships/chartEx",CS:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet",WS:["http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet","http://purl.oclc.org/ooxml/officeDocument/relationships/worksheet"],DS:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/dialogsheet",MS:"http://schemas.microsoft.com/office/2006/relationships/xlMacrosheet",IMG:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image",DRAW:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing",XLMETA:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sheetMetadata",TCMNT:"http://schemas.microsoft.com/office/2017/10/relationships/threadedComment",PEOPLE:"http://schemas.microsoft.com/office/2017/10/relationships/person",VBA:"http://schemas.microsoft.com/office/2006/relationships/vbaProject"};function x_(e){var n=e.lastIndexOf("/");return e.slice(0,n+1)+"_rels/"+e.slice(n+1)+".rels"}function b_(e,n){var t={"!id":{}};if(!e)return t;"/"!==n.charAt(0)&&(n="/"+n);var r={};return(e.match(Ci)||[]).forEach(function(i){var o=dt(i);if("]*>([\\s\\S]*?)")}return e}();function P8(e){var n={};e=pn(e);for(var t=0;t0&&(n[r[1]]=$t(i[1])),"date"===r[2]&&n[r[1]]&&(n[r[1]]=qn(n[r[1]]))}return n}var lf=[["Application","Application","string"],["AppVersion","AppVersion","string"],["Company","Company","string"],["DocSecurity","DocSecurity","string"],["Manager","Manager","string"],["HyperlinksChanged","HyperlinksChanged","bool"],["SharedDoc","SharedDoc","bool"],["LinksUpToDate","LinksUpToDate","bool"],["ScaleCrop","ScaleCrop","bool"],["HeadingPairs","HeadingPairs","raw"],["TitlesOfParts","TitlesOfParts","raw"]];function V8(e,n,t,r){var i=[];if("string"==typeof e)i=s8(e,r);else for(var o=0;o0)for(var u=0;u!==i.length;u+=2){switch(l=+i[u+1].v,i[u].v){case"Worksheets":case"\u5de5\u4f5c\u8868":case"\u041b\u0438\u0441\u0442\u044b":case"\u0623\u0648\u0631\u0627\u0642 \u0627\u0644\u0639\u0645\u0644":case"\u30ef\u30fc\u30af\u30b7\u30fc\u30c8":case"\u05d2\u05dc\u05d9\u05d5\u05e0\u05d5\u05ea \u05e2\u05d1\u05d5\u05d3\u05d4":case"Arbeitsbl\xe4tter":case"\xc7al\u0131\u015fma Sayfalar\u0131":case"Feuilles de calcul":case"Fogli di lavoro":case"Folhas de c\xe1lculo":case"Planilhas":case"Regneark":case"Hojas de c\xe1lculo":case"Werkbladen":t.Worksheets=l,t.SheetNames=s.slice(a,a+l);break;case"Named Ranges":case"Rangos con nombre":case"\u540d\u524d\u4ed8\u304d\u4e00\u89a7":case"Benannte Bereiche":case"Navngivne omr\xe5der":t.NamedRanges=l,t.DefinedNames=s.slice(a,a+l);break;case"Charts":case"Diagramme":t.Chartsheets=l,t.ChartNames=s.slice(a,a+l)}a+=l}}var uA,Zne=/<[^>]+>[^<]*/g,cA={Title:"Title",Subject:"Subject",Author:"Author",Keywords:"Keywords",Comments:"Description",LastAuthor:"LastAuthor",RevNumber:"Revision",Application:"AppName",LastPrinted:"LastPrinted",CreatedDate:"Created",ModifiedDate:"LastSaved",Category:"Category",Manager:"Manager",Company:"Company",AppVersion:"Version",ContentStatus:"ContentStatus",Identifier:"Identifier",Language:"Language"};function Jne(e,n,t){uA||(uA=E1(cA)),e[n=uA[n]||n]=t}function dA(e){var n=e.read_shift(4),t=e.read_shift(4);return new Date(1e3*(t/1e7*Math.pow(2,32)+n/1e7-11644473600)).toISOString().replace(/\.000/,"")}function j8(e,n,t){var r=e.l,i=e.read_shift(0,"lpstr-cp");if(t)for(;e.l-r&3;)++e.l;return i}function z8(e,n,t){var r=e.read_shift(0,"lpwstr");return t&&(e.l+=4-(r.length+1&3)&3),r}function $8(e,n,t){return 31===n?z8(e):j8(e,0,t)}function fA(e,n,t){return $8(e,n,!1===t?0:4)}function sre(e){var n=e.l,t=P1(e,M8);return 0==e[e.l]&&0==e[e.l+1]&&e.l-n&2&&(e.l+=2),[t,P1(e,yo)]}function W8(e,n){for(var t=e.read_shift(4),r={},i=0;i!=t;++i){var o=e.read_shift(4),s=e.read_shift(4);r[o]=e.read_shift(s,1200===n?"utf16le":"utf8").replace(Ei,"").replace(u_,"!"),1200===n&&s%2&&(e.l+=2)}return 3&e.l&&(e.l=e.l>>3<<2),r}function G8(e){var n=e.read_shift(4),t=e.slice(e.l,e.l+n);return e.l+=n,(3&n)>0&&(e.l+=4-(3&n)&3),t}function P1(e,n,t){var i,r=e.read_shift(2),o=t||{};if(e.l+=2,n!==k8&&r!==n&&-1===Bne.indexOf(n)&&(4126!=(65534&n)||4126!=(65534&r)))throw new Error("Expected type "+n+" saw "+r);switch(n===k8?r:n){case 2:return i=e.read_shift(2,"i"),o.raw||(e.l+=2),i;case 3:return e.read_shift(4,"i");case 11:return 0!==e.read_shift(4);case 19:return e.read_shift(4);case 30:return j8(e,0,4).replace(Ei,"");case 31:return z8(e);case 64:return dA(e);case 65:return G8(e);case 71:return function lre(e){var n={};return n.Size=e.read_shift(4),e.l+=n.Size+3-(n.Size-1)%4,n}(e);case 80:return fA(e,r,!o.raw).replace(Ei,"");case 81:return function rre(e,n){if(!n)throw new Error("VtUnalignedString must have positive length");return $8(e,n,0)}(e,r).replace(Ei,"");case 4108:return function are(e){for(var n=e.read_shift(4),t=[],r=0;r0&&n)switch(n[o[s-1][0]].t){case 2:e.l+2===o[s][1]&&(e.l+=2,g=!1);break;case 80:case 4108:e.l<=o[s][1]&&(e.l=o[s][1],g=!1)}if((!n||0==s)&&e.l<=o[s][1]&&(g=!1,e.l=o[s][1]),g)throw new Error("Read Error: Expected address "+o[s][1]+" at "+e.l+" :"+s)}if(n){var v=n[o[s][0]];if(m[v.n]=P1(e,v.t,{raw:!0}),"version"===v.p&&(m[v.n]=String(m[v.n]>>16)+"."+("0000"+String(65535&m[v.n])).slice(-4)),"CodePage"==v.n)switch(m[v.n]){case 0:m[v.n]=1252;case 874:case 932:case 936:case 949:case 950:case 1250:case 1251:case 1253:case 1254:case 1255:case 1256:case 1257:case 1258:case 1e4:case 1200:case 1201:case 1252:case 65e3:case-536:case 65001:case-535:ws(a=m[v.n]>>>0&65535);break;default:throw new Error("Unsupported CodePage: "+m[v.n])}}else if(1===o[s][0]){if(a=m.CodePage=P1(e,rA),ws(a),-1!==l){var _=e.l;e.l=o[l][1],u=W8(e,a),e.l=_}}else if(0===o[s][0]){if(0===a){l=s,e.l=o[s+1][1];continue}u=W8(e,a)}else{var b,x=u[o[s][0]];switch(e[e.l]){case 65:e.l+=4,b=G8(e);break;case 30:case 31:e.l+=4,b=fA(e,e[e.l-4]).replace(/\u0000+$/,"");break;case 3:e.l+=4,b=e.read_shift(4,"i");break;case 19:e.l+=4,b=e.read_shift(4);break;case 5:e.l+=4,b=e.read_shift(8,"f");break;case 11:e.l+=4,b=fr(e,4);break;case 64:e.l+=4,b=qn(dA(e));break;default:throw new Error("unparsed value: "+e[e.l])}m[x]=b}}return e.l=t+r,m}function Z8(e,n,t){var r=e.content;if(!r)return{};ai(r,0);var i,o,s,a,l=0;r.chk("feff","Byte Order: "),r.read_shift(2);var u=r.read_shift(4),f=r.read_shift(16);if(f!==Qe.utils.consts.HEADER_CLSID&&f!==t)throw new Error("Bad PropertySet CLSID "+f);if(1!==(i=r.read_shift(4))&&2!==i)throw new Error("Unrecognized #Sets: "+i);if(o=r.read_shift(16),a=r.read_shift(4),1===i&&a!==r.l)throw new Error("Length mismatch: "+a+" !== "+r.l);2===i&&(s=r.read_shift(16),l=r.read_shift(4));var v,h=X8(r,n),m={SystemIdentifier:u};for(var g in h)m[g]=h[g];if(m.FMTID=o,1===i)return m;if(l-r.l==2&&(r.l+=2),r.l!==l)throw new Error("Length mismatch 2: "+r.l+" !== "+l);try{v=X8(r,null)}catch{}for(g in v)m[g]=v[g];return m.FMTID=[o,s],m}function cu(e,n){return e.read_shift(n),null}function fr(e,n){return 1===e.read_shift(n)}function wr(e){return e.read_shift(2,"u")}function J8(e,n){return function dre(e,n,t){for(var r=[],i=e.l+n;e.l=12?2:1),i="sbcs-cont",o=Vo;t&&t.biff>=8&&(Vo=1200),t&&8!=t.biff?12==t.biff&&(i="wstr"):e.read_shift(1)&&(i="dbcs-cont"),t.biff>=2&&t.biff<=5&&(i="cpstr");var a=r?e.read_shift(r,i):"";return Vo=o,a}function hre(e){var n=Vo;Vo=1200;var l,t=e.read_shift(2),r=e.read_shift(1),i=4&r,o=8&r,s=1+(1&r),a=0,u={};o&&(a=e.read_shift(2)),i&&(l=e.read_shift(4));var h=0===t?"":e.read_shift(t,2==s?"dbcs-cont":"sbcs-cont");return o&&(e.l+=4*a),i&&(e.l+=l),u.t=h,o||(u.raw=""+u.t+"",u.r=u.t),Vo=n,u}function cf(e,n,t){if(t){if(t.biff>=2&&t.biff<=5)return e.read_shift(n,"cpstr");if(t.biff>=12)return e.read_shift(n,"dbcs-cont")}var i=e.read_shift(1);return e.read_shift(n,0===i?"sbcs-cont":"dbcs-cont")}function E_(e,n,t){var r=e.read_shift(t&&2==t.biff?1:2);return 0===r?(e.l++,""):cf(e,r,t)}function uf(e,n,t){if(t.biff>5)return E_(e,0,t);var r=e.read_shift(1);return 0===r?(e.l++,""):e.read_shift(r,t.biff<=4||!e.lens?"cpstr":"sbcs-cont")}function L1(e){var n=e.read_shift(4);return n>0?e.read_shift(n,"utf16le").replace(Ei,""):""}function rV(e){return[e.read_shift(1),e.read_shift(1),e.read_shift(1),e.read_shift(1)]}function iV(e,n){var t=rV(e);return t[3]=0,t}function za(e){return{r:e.read_shift(2),c:e.read_shift(2),ixfe:e.read_shift(2)}}function Ere(e,n,t){var r=t.biff>8?4:2;return[e.read_shift(r),e.read_shift(r,"i"),e.read_shift(r,"i")]}function oV(e){return[e.read_shift(2),nA(e)]}function B1(e){var n=e.read_shift(2),t=e.read_shift(2);return{s:{c:e.read_shift(2),r:n},e:{c:e.read_shift(2),r:t}}}function aV(e){var n=e.read_shift(2),t=e.read_shift(2);return{s:{c:e.read_shift(1),r:n},e:{c:e.read_shift(1),r:t}}}var Tre=aV;function lV(e){e.l+=4;var n=e.read_shift(2),t=e.read_shift(2),r=e.read_shift(2);return e.l+=12,[t,n,r]}function Ii(e){e.l+=2,e.l+=e.read_shift(2)}var Ire={0:Ii,4:Ii,5:Ii,6:Ii,7:function Sre(e){return e.l+=4,e.cf=e.read_shift(2),{}},8:Ii,9:Ii,10:Ii,11:Ii,12:Ii,13:function Dre(e){var n={};return e.l+=4,e.l+=16,n.fSharedNote=e.read_shift(2),e.l+=4,n},14:Ii,15:Ii,16:Ii,17:Ii,18:Ii,19:Ii,20:Ii,21:lV};function V1(e,n){var t={BIFFVer:0,dt:0};switch(t.BIFFVer=e.read_shift(2),(n-=2)>=2&&(t.dt=e.read_shift(2),e.l-=2),t.BIFFVer){case 1536:case 1280:case 1024:case 768:case 512:case 2:case 7:break;default:if(n>6)throw new Error("Unexpected BIFF Ver "+t.BIFFVer)}return e.read_shift(n),t}function cV(e,n,t){var r=0;t&&2==t.biff||(r=e.read_shift(2));var i=e.read_shift(2);return t&&2==t.biff&&(r=1-(i>>15),i&=32767),[{Unsynced:1&r,DyZero:(2&r)>>1,ExAsc:(4&r)>>2,ExDsc:(8&r)>>3},i]}var tie=uf;function uV(e,n,t){var r=e.l+n,i=8!=t.biff&&t.biff?2:4,o=e.read_shift(i),s=e.read_shift(i),a=e.read_shift(2),l=e.read_shift(2);return e.l=r,{s:{r:o,c:a},e:{r:s,c:l}}}function fV(e,n,t){var r=za(e);(2==t.biff||9==n)&&++e.l;var i=function fre(e){var n=e.read_shift(1);return 1===e.read_shift(1)?n:1===n}(e);return r.val=i,r.t=!0===i||!1===i?"b":"e",r}var hV=function wre(e,n,t){return 0===n?"":uf(e,0,t)};function pV(e,n,t){var i,r=e.read_shift(2),o={fBuiltIn:1&r,fWantAdvise:r>>>1&1,fWantPict:r>>>2&1,fOle:r>>>3&1,fOleLink:r>>>4&1,cf:r>>>5&1023,fIcon:r>>>15&1};return 14849===t.sbcch&&(i=function Cre(e,n,t){e.l+=4;var r=e.l+(n-=4),i=w_(e,0,t),o=e.read_shift(2);if(o!==(r-=e.l))throw new Error("Malformed AddinUdf: padding = "+r+" != "+o);return e.l+=o,i}(e,n-2,t)),o.body=i||e.read_shift(n-2),"string"==typeof i&&(o.Name=i),o}var pie=["_xlnm.Consolidate_Area","_xlnm.Auto_Open","_xlnm.Auto_Close","_xlnm.Extract","_xlnm.Database","_xlnm.Criteria","_xlnm.Print_Area","_xlnm.Print_Titles","_xlnm.Recorder","_xlnm.Data_Form","_xlnm.Auto_Activate","_xlnm.Auto_Deactivate","_xlnm.Sheet_Title","_xlnm._FilterDatabase"];function mV(e,n,t){var r=e.l+n,i=e.read_shift(2),o=e.read_shift(1),s=e.read_shift(1),a=e.read_shift(t&&2==t.biff?1:2),l=0;(!t||t.biff>=5)&&(5!=t.biff&&(e.l+=2),l=e.read_shift(2),5==t.biff&&(e.l+=2),e.l+=4);var u=cf(e,s,t);32&i&&(u=pie[u.charCodeAt(0)]);var f=r-e.l;t&&2==t.biff&&--f;var h=r!=e.l&&0!==a&&f>0?function Ale(e,n,t,r){var s,i=e.l+n,o=M_(e,r,t);return i!==e.l&&(s=k_(e,i-e.l,o,t)),[o,s]}(e,f,t,a):[];return{chKey:o,Name:u,itab:l,rgce:h}}function gV(e,n,t){if(t.biff<8)return function mie(e,n,t){3==e[e.l+1]&&e[e.l]++;var r=w_(e,0,t);return 3==r.charCodeAt(0)?r.slice(1):r}(e,0,t);for(var r=[],i=e.l+n,o=e.read_shift(t.biff>8?4:2);0!=o--;)r.push(Ere(e,0,t));if(e.l!=i)throw new Error("Bad ExternSheet: "+e.l+" != "+i);return r}function _V(e,n,t){var r=Tre(e,6);switch(t.biff){case 2:e.l++,n-=7;break;case 3:case 4:e.l+=2,n-=8;break;default:e.l+=6,n-=12}return[r,Sle(e,n,t)]}var Cie={8:function(e,n){var t=e.l+n;e.l+=10;var r=e.read_shift(2);e.l+=4,e.l+=2,e.l+=2,e.l+=2,e.l+=4;var i=e.read_shift(1);return e.l+=i,e.l=t,{fmt:r}}};function vV(e,n,t){if(!t.cellStyles)return Ti(e,n);var r=t&&t.biff>=12?4:2,i=e.read_shift(r),o=e.read_shift(r),s=e.read_shift(r),a=e.read_shift(r),l=e.read_shift(2);2==r&&(e.l+=2);var u={s:i,e:o,w:s,ixfe:a,flags:l};return(t.biff>=5||!t.biff)&&(u.level=l>>8&7),u}var Uie=za,Hie=J8,jie=E_,Qie=[2,3,48,49,131,139,140,245],pA=function(){var e={1:437,2:850,3:1252,4:1e4,100:852,101:866,102:865,103:861,104:895,105:620,106:737,107:857,120:950,121:949,122:936,123:932,124:874,125:1255,126:1256,150:10007,151:10029,152:10006,200:1250,201:1251,202:1254,203:1253,0:20127,8:865,9:437,10:850,11:437,13:437,14:850,15:437,16:850,17:437,18:850,19:932,20:850,21:437,22:850,23:865,24:437,25:437,26:850,27:437,28:863,29:850,31:852,34:852,35:852,36:860,37:850,38:866,55:850,64:852,77:936,78:949,79:950,80:874,87:1252,88:1252,89:1252,108:863,134:737,135:852,136:857,204:1257,255:16969},n=E1({1:437,2:850,3:1252,4:1e4,100:852,101:866,102:865,103:861,104:895,105:620,106:737,107:857,120:950,121:949,122:936,123:932,124:874,125:1255,126:1256,150:10007,151:10029,152:10006,200:1250,201:1251,202:1254,203:1253,0:20127});function r(a,l){var u=l||{};u.dateNF||(u.dateNF="yyyymmdd");var f=Op(function t(a,l){var u=[],f=nu(1);switch(l.type){case"base64":f=Ho(Uo(a));break;case"binary":f=Ho(a);break;case"buffer":case"array":f=a}ai(f,0);var h=f.read_shift(1),m=!!(136&h),g=!1,v=!1;switch(h){case 2:case 3:case 131:case 139:case 245:break;case 48:case 49:g=!0,m=!0;break;case 140:v=!0;break;default:throw new Error("DBF Unsupported Version: "+h.toString(16))}var _=0,x=521;2==h&&(_=f.read_shift(2)),f.l+=3,2!=h&&(_=f.read_shift(4)),_>1048576&&(_=1e6),2!=h&&(x=f.read_shift(2));var b=f.read_shift(2),w=l.codepage||1252;2!=h&&(f.l+=16,f.read_shift(1),0!==f[f.l]&&(w=e[f[f.l]]),f.l+=1,f.l+=2),v&&(f.l+=36);for(var C=[],O={},z=Math.min(f.length,2==h?521:x-10-(g?264:0)),U=v?32:11;f.l0;)if(42!==f[f.l])for(++f.l,u[++A]=[],q=0,q=0;q!=C.length;++q){var G=f.slice(f.l,f.l+C[q].len);f.l+=C[q].len,ai(G,0);var ee=jt.utils.decode(w,G);switch(C[q].type){case"C":ee.trim().length&&(u[A][q]=ee.replace(/\s+$/,""));break;case"D":u[A][q]=8===ee.length?new Date(+ee.slice(0,4),+ee.slice(4,6)-1,+ee.slice(6,8)):ee;break;case"F":u[A][q]=parseFloat(ee.trim());break;case"+":case"I":u[A][q]=v?2147483648^G.read_shift(-4,"i"):G.read_shift(4,"i");break;case"L":switch(ee.trim().toUpperCase()){case"Y":case"T":u[A][q]=!0;break;case"N":case"F":u[A][q]=!1;break;case"":case"?":break;default:throw new Error("DBF Unrecognized L:|"+ee+"|")}break;case"M":if(!m)throw new Error("DBF Unexpected MEMO for type "+h.toString(16));u[A][q]="##MEMO##"+(v?parseInt(ee.trim(),10):G.read_shift(4));break;case"N":(ee=ee.replace(/\u0000/g,"").trim())&&"."!=ee&&(u[A][q]=+ee||0);break;case"@":u[A][q]=new Date(G.read_shift(-8,"f")-621356832e5);break;case"T":u[A][q]=new Date(864e5*(G.read_shift(4)-2440588)+G.read_shift(4));break;case"Y":u[A][q]=G.read_shift(4,"i")/1e4+G.read_shift(4,"i")/1e4*Math.pow(2,32);break;case"O":u[A][q]=-G.read_shift(-8,"f");break;case"B":if(g&&8==C[q].len){u[A][q]=G.read_shift(8,"f");break}case"G":case"P":G.l+=C[q].len;break;case"0":if("_NullFlags"===C[q].name)break;default:throw new Error("DBF Unsupported data type "+C[q].type)}}else f.l+=b;if(2!=h&&f.l=0&&ws(+u.codepage),"string"==u.type)throw new Error("Cannot write DBF to JS string");var f=eo(),h=K1(a,{header:1,raw:!0,cellDates:!0}),m=h[0],g=h.slice(1),v=a["!cols"]||[],_=0,x=0,b=0,w=1;for(_=0;_250&&(G=250),"C"==(q=((v[_]||{}).DBF||{}).type)&&v[_].DBF.len>G&&(G=v[_].DBF.len),"B"==A&&"N"==q&&(A="N",U[_]=v[_].DBF.dec,G=v[_].DBF.len),z[_]="C"==A||"N"==q?G:o[A]||0,w+=z[_],O[_]=A}else O[_]="?"}var ie=f.next(32);for(ie.write_shift(4,318902576),ie.write_shift(4,g.length),ie.write_shift(2,296+32*b),ie.write_shift(2,w),_=0;_<4;++_)ie.write_shift(4,0);for(ie.write_shift(4,(+n[Yd]||3)<<8),_=0,x=0;_":190,"?":191,"{":223},n=new RegExp("\x1bN("+Jn(e).join("|").replace(/\|\|\|/,"|\\||").replace(/([?()+])/g,"\\$1")+"|\\|)","gm"),t=function(m,g){var v=e[g];return"number"==typeof v?AI(v):v},r=function(m,g,v){var _=g.charCodeAt(0)-32<<4|v.charCodeAt(0)-48;return 59==_?m:AI(_)};function o(m,g){var ie,v=m.split(/[\n\r]+/),_=-1,x=-1,b=0,w=0,C=[],O=[],z=null,U={},A=[],q=[],G=[],ee=0;for(+g.codepage>=0&&ws(+g.codepage);b!==v.length;++b){ee=0;var Ae,Y=v[b].trim().replace(/\x1B([\x20-\x2F])([\x30-\x3F])/g,r).replace(n,t),Ie=Y.replace(/;;/g,"\0").split(";").map(function(H){return H.replace(/\u0000/g,";")});if(Y.length>0)switch(Ie[0]){case"ID":case"E":case"B":case"O":case"W":break;case"P":"P"==Ie[1].charAt(0)&&O.push(Y.slice(3).replace(/;;/g,";"));break;case"C":var he=!1,pe=!1,ke=!1,ve=!1,Ne=-1,de=-1;for(w=1;w-1&&C[Ne][de];if(!K||!K[1])throw new Error("SYLK shared formula cannot find base");C[_][x][1]=VV(K[1],{r:_-Ne,c:x-de})}break;case"F":var V=0;for(w=1;w0?(A[_].hpt=ee,A[_].hpx=Lp(ee)):0===ee&&(A[_].hidden=!0);break;default:if(g&&g.WTF)throw new Error("SYLK bad record "+Y)}V<1&&(z=null);break;default:if(g&&g.WTF)throw new Error("SYLK bad record "+Y)}}return A.length>0&&(U["!rows"]=A),q.length>0&&(U["!cols"]=q),g&&g.sheetRows&&(C=C.slice(0,g.sheetRows)),[C,U]}function s(m,g){var v=function i(m,g){switch(g.type){case"base64":return o(Uo(m),g);case"binary":return o(m,g);case"buffer":return o(It&&Buffer.isBuffer(m)?m.toString("binary"):ru(m),g);case"array":return o(Qd(m),g)}throw new Error("Unrecognized type "+g.type)}(m,g),x=v[1],b=Op(v[0],g);return Jn(x).forEach(function(w){b[w]=x[w]}),b}function l(m,g,v,_){var x="C;Y"+(v+1)+";X"+(_+1)+";K";switch(m.t){case"n":x+=m.v||0,m.f&&!m.F&&(x+=";E"+wA(m.f,{r:v,c:_}));break;case"b":x+=m.v?"TRUE":"FALSE";break;case"e":x+=m.w||m.v;break;case"d":x+='"'+(m.w||m.v)+'"';break;case"s":x+='"'+m.v.replace(/"/g,"").replace(/;/g,";;")+'"'}return x}return e["|"]=254,{to_workbook:function a(m,g){return lu(s(m,g),g)},to_sheet:s,from_sheet:function h(m,g){var b,v=["ID;PWXL;N;E"],_=[],x=Nt(m["!ref"]),w=Array.isArray(m),C="\r\n";v.push("P;PGeneral"),v.push("F;P0;DG0G8;M255"),m["!cols"]&&function u(m,g){g.forEach(function(v,_){var x="F;W"+(_+1)+" "+(_+1)+" ";v.hidden?x+="0":("number"==typeof v.width&&!v.wpx&&(v.wpx=T_(v.width)),"number"==typeof v.wpx&&!v.wch&&(v.wch=D_(v.wpx)),"number"==typeof v.wch&&(x+=Math.round(v.wch)))," "!=x.charAt(x.length-1)&&m.push(x)})}(v,m["!cols"]),m["!rows"]&&function f(m,g){g.forEach(function(v,_){var x="F;";v.hidden?x+="M0;":v.hpt?x+="M"+20*v.hpt+";":v.hpx&&(x+="M"+20*S_(v.hpx)+";"),x.length>2&&m.push(x+"R"+(_+1))})}(v,m["!rows"]),v.push("B;Y"+(x.e.r-x.s.r+1)+";X"+(x.e.c-x.s.c+1)+";D"+[x.s.c,x.s.r,x.e.c,x.e.r].join(" "));for(var O=x.s.r;O<=x.e.r;++O)for(var z=x.s.c;z<=x.e.c;++z){var U=ft({r:O,c:z});(b=w?(m[O]||[])[z]:m[U])&&(null!=b.v||b.f&&!b.F)&&_.push(l(b,0,O,z))}return v.join(C)+C+_.join(C)+C+"E"+C}}}(),xV=function(){function n(o,s){for(var a=o.split("\n"),l=-1,u=-1,f=0,h=[];f!==a.length;++f)if("BOT"!==a[f].trim()){if(!(l<0)){for(var m=a[f].trim().split(","),g=m[0],v=m[1],_=a[++f]||"";1&(_.match(/["]/g)||[]).length&&f=0||f.indexOf(",")>=0||f.indexOf(";")>=0?function o(f,h){var m=h||{},g="";null!=Qn&&null==m.dense&&(m.dense=Qn);var v=m.dense?[]:{},_={s:{c:0,r:0},e:{c:0,r:0}};"sep="==f.slice(0,4)?13==f.charCodeAt(5)&&10==f.charCodeAt(6)?(g=f.charAt(4),f=f.slice(7)):13==f.charCodeAt(5)||10==f.charCodeAt(5)?(g=f.charAt(4),f=f.slice(6)):g=i(f.slice(0,1024)):g=m&&m.FS?m.FS:i(f.slice(0,1024));var x=0,b=0,w=0,C=0,O=0,z=g.charCodeAt(0),U=!1,A=0,q=f.charCodeAt(0);f=f.replace(/\r\n/gm,"\n");var G=null!=m.dateNF?function Ute(e){var n="number"==typeof e?ot[e]:e;return n=n.replace(HB,"(\\d+)"),new RegExp("^"+n+"$")}(m.dateNF):null;function ee(){var ie=f.slice(C,O),Y={};if('"'==ie.charAt(0)&&'"'==ie.charAt(ie.length-1)&&(ie=ie.slice(1,-1).replace(/""/g,'"')),0===ie.length)Y.t="z";else if(m.raw)Y.t="s",Y.v=ie;else if(0===ie.trim().length)Y.t="s",Y.v=ie;else if(61==ie.charCodeAt(0))34==ie.charCodeAt(1)&&34==ie.charCodeAt(ie.length-1)?(Y.t="s",Y.v=ie.slice(2,-1).replace(/""/g,'"')):function hae(e){return 1!=e.length}(ie)?(Y.t="n",Y.f=ie.slice(1)):(Y.t="s",Y.v=ie);else if("TRUE"==ie)Y.t="b",Y.v=!0;else if("FALSE"==ie)Y.t="b",Y.v=!1;else if(isNaN(w=fa(ie)))if(!isNaN(Mp(ie).getDate())||G&&ie.match(G)){Y.z=m.dateNF||ot[14];var Ie=0;G&&ie.match(G)&&(ie=function Hte(e,n,t){var r=-1,i=-1,o=-1,s=-1,a=-1,l=-1;(n.match(HB)||[]).forEach(function(h,m){var g=parseInt(t[m+1],10);switch(h.toLowerCase().charAt(0)){case"y":r=g;break;case"d":o=g;break;case"h":s=g;break;case"s":l=g;break;case"m":s>=0?a=g:i=g}}),l>=0&&-1==a&&i>=0&&(a=i,i=-1);var u=(""+(r>=0?r:(new Date).getFullYear())).slice(-4)+"-"+("00"+(i>=1?i:1)).slice(-2)+"-"+("00"+(o>=1?o:1)).slice(-2);7==u.length&&(u="0"+u),8==u.length&&(u="20"+u);var f=("00"+(s>=0?s:0)).slice(-2)+":"+("00"+(a>=0?a:0)).slice(-2)+":"+("00"+(l>=0?l:0)).slice(-2);return-1==s&&-1==a&&-1==l?u:-1==r&&-1==i&&-1==o?f:u+"T"+f}(0,m.dateNF,ie.match(G)||[]),Ie=1),m.cellDates?(Y.t="d",Y.v=qn(ie,Ie)):(Y.t="n",Y.v=Pr(qn(ie,Ie))),!1!==m.cellText&&(Y.w=jo(Y.z,Y.v instanceof Date?Pr(Y.v):Y.v)),m.cellNF||delete Y.z}else Y.t="s",Y.v=ie;else Y.t="n",!1!==m.cellText&&(Y.w=ie),Y.v=w;if("z"==Y.t||(m.dense?(v[x]||(v[x]=[]),v[x][b]=Y):v[ft({c:b,r:x})]=Y),q=f.charCodeAt(C=O+1),_.e.c0&&ee(),v["!ref"]=wt(_),v}(f,h):Op(function n(f,h){var m=h||{},g=[];if(!f||0===f.length)return g;for(var v=f.split(/[\r\n]/),_=v.length-1;_>=0&&0===v[_].length;)--_;for(var x=10,b=0,w=0;w<=_;++w)-1==(b=v[w].indexOf(" "))?b=v[w].length:b++,x=Math.max(x,b);for(w=0;w<=_;++w){g[w]=[];var C=0;for(e(v[w].slice(0,x).trim(),g,w,C,m),C=1;C<=(v[w].length-x)/10+1;++C)e(v[w].slice(x+10*(C-1),x+10*C).trim(),g,w,C,m)}return m.sheetRows&&(g=g.slice(0,m.sheetRows)),g}(f,h),h)}function a(f,h){var m="",g="string"==h.type?[0,0,0,0]:VA(f,h);switch(h.type){case"base64":m=Uo(f);break;case"binary":case"string":m=f;break;case"buffer":m=65001==h.codepage?f.toString("utf8"):h.codepage&&typeof jt<"u"?jt.utils.decode(h.codepage,f):It&&Buffer.isBuffer(f)?f.toString("binary"):ru(f);break;case"array":m=Qd(f);break;default:throw new Error("Unrecognized type "+h.type)}return 239==g[0]&&187==g[1]&&191==g[2]?m=pn(m.slice(3)):"string"!=h.type&&"buffer"!=h.type&&65001==h.codepage?m=pn(m):"binary"==h.type&&typeof jt<"u"&&h.codepage&&(m=jt.utils.decode(h.codepage,jt.utils.encode(28591,m))),"socialcalc:version:"==m.slice(0,19)?bV.to_sheet("string"==h.type?m:pn(m),h):s(m,h)}return{to_workbook:function l(f,h){return lu(a(f,h),h)},to_sheet:a,from_sheet:function u(f){for(var g,h=[],m=Nt(f["!ref"]),v=Array.isArray(f),_=m.s.r;_<=m.e.r;++_){for(var x=[],b=m.s.c;b<=m.e.c;++b){var w=ft({r:_,c:b});if((g=v?(f[_]||[])[b]:f[w])&&null!=g.v){for(var C=(g.w||(ja(g),g.w)||"").slice(0,10);C.length<10;)C+=" ";x.push(C+(0===b?" ":""))}else x.push(" ")}h.push(x.join(""))}return h.join("\n")}}}(),ff=function(){function e(P,K,V){if(P){ai(P,P.l||0);for(var H=V.Enum||Ne;P.l=16&&5==P[14]&&108===P[15])throw new Error("Unsupported Works 3 for Mac file");if(2==P[2])V.Enum=Ne,e(P,function(Ve,hr,Ms){switch(Ms){case 0:V.vers=Ve,Ve>=4096&&(V.qpro=!0);break;case 6:B=Ve;break;case 204:Ve&&(Ee=Ve);break;case 222:Ee=Ve;break;case 15:case 51:V.qpro||(Ve[1].v=Ve[1].v.slice(1));case 13:case 14:case 16:14==Ms&&!(112&~Ve[2])&&(15&Ve[2])>1&&(15&Ve[2])<15&&(Ve[1].z=V.dateNF||ot[14],V.cellDates&&(Ve[1].t="d",Ve[1].v=D1(Ve[1].v))),V.qpro&&Ve[3]>Ce&&(H["!ref"]=wt(B),we[fe]=H,_e.push(fe),H=V.dense?[]:{},B={s:{r:0,c:0},e:{r:0,c:0}},Ce=Ve[3],fe=Ee||"Sheet"+(Ce+1),Ee="");var Ga=V.dense?(H[Ve[0].r]||[])[Ve[0].c]:H[ft(Ve[0])];if(Ga){Ga.t=Ve[1].t,Ga.v=Ve[1].v,null!=Ve[1].z&&(Ga.z=Ve[1].z),null!=Ve[1].f&&(Ga.f=Ve[1].f);break}V.dense?(H[Ve[0].r]||(H[Ve[0].r]=[]),H[Ve[0].r][Ve[0].c]=Ve[1]):H[ft(Ve[0])]=Ve[1]}},V);else{if(26!=P[2]&&14!=P[2])throw new Error("Unrecognized LOTUS BOF "+P[2]);V.Enum=de,14==P[2]&&(V.qpro=!0,P.l=0),e(P,function(Ve,hr,Ms){switch(Ms){case 204:fe=Ve;break;case 22:Ve[1].v=Ve[1].v.slice(1);case 23:case 24:case 25:case 37:case 39:case 40:if(Ve[3]>Ce&&(H["!ref"]=wt(B),we[fe]=H,_e.push(fe),H=V.dense?[]:{},B={s:{r:0,c:0},e:{r:0,c:0}},fe="Sheet"+((Ce=Ve[3])+1)),cn>0&&Ve[0].r>=cn)break;V.dense?(H[Ve[0].r]||(H[Ve[0].r]=[]),H[Ve[0].r][Ve[0].c]=Ve[1]):H[ft(Ve[0])]=Ve[1],B.e.c=128?95:Ee)}return H.write_shift(1,0),H}function g(P,K,V){var H=le(7);return H.write_shift(1,255),H.write_shift(2,K),H.write_shift(2,P),H.write_shift(2,V,"i"),H}function _(P,K,V){var H=le(13);return H.write_shift(1,255),H.write_shift(2,K),H.write_shift(2,P),H.write_shift(8,V,"f"),H}function b(P,K,V){var H=32768&K;return K=(H?P:0)+((K&=-32769)>=8192?K-16384:K),(H?"":"$")+(V?Nn(K):tr(K))}var w={51:["FALSE",0],52:["TRUE",0],70:["LEN",1],80:["SUM",69],81:["AVERAGEA",69],82:["COUNTA",69],83:["MINA",69],84:["MAXA",69],111:["T",1]},C=["","","","","","","","","","+","-","*","/","^","=","<>","<=",">=","<",">","","","","","&","","","","","","",""];function z(P){var K=[{c:0,r:0},{t:"n",v:0},0];return K[0].r=P.read_shift(2),K[3]=P[P.l++],K[0].c=P[P.l++],K}function A(P,K,V,H){var fe=le(6+H.length);fe.write_shift(2,P),fe.write_shift(1,V),fe.write_shift(1,K),fe.write_shift(1,39);for(var Ee=0;Ee=128?95:Ce)}return fe.write_shift(1,0),fe}function G(P,K){var V=z(P),H=P.read_shift(4),fe=P.read_shift(4),Ee=P.read_shift(2);if(65535==Ee)return 0===H&&3221225472===fe?(V[1].t="e",V[1].v=15):0===H&&3489660928===fe?(V[1].t="e",V[1].v=42):V[1].v=0,V;var Ce=32768&Ee;return Ee=(32767&Ee)-16446,V[1].v=(1-2*Ce)*(fe*Math.pow(2,Ee+32)+H*Math.pow(2,Ee)),V}function ee(P,K,V,H){var fe=le(14);if(fe.write_shift(2,P),fe.write_shift(1,V),fe.write_shift(1,K),0==H)return fe.write_shift(4,0),fe.write_shift(4,0),fe.write_shift(2,65535),fe;var Ee=0,Ce=0,_e=0;return H<0&&(Ee=1,H=-H),Ce=0|Math.log2(H),2147483648&(_e=(H/=Math.pow(2,Ce-31))>>>0)||(++Ce,_e=(H/=2)>>>0),H-=_e,_e|=2147483648,_e>>>=0,H*=Math.pow(2,32),fe.write_shift(4,H>>>0),fe.write_shift(4,_e),fe.write_shift(2,Ce+=16383+(Ee?32768:0)),fe}function Ie(P,K){var V=z(P),H=P.read_shift(8,"f");return V[1].v=H,V}function Ae(P,K){return 0==P[P.l+K-1]?P.read_shift(K,"cstr"):""}function ve(P,K){var V=le(5+P.length);V.write_shift(2,14e3),V.write_shift(2,K);for(var H=0;H127?95:fe}return V[V.l++]=0,V}var Ne={0:{n:"BOF",f:wr},1:{n:"EOF"},2:{n:"CALCMODE"},3:{n:"CALCORDER"},4:{n:"SPLIT"},5:{n:"SYNC"},6:{n:"RANGE",f:function a(P,K,V){var H={s:{c:0,r:0},e:{c:0,r:0}};return 8==K&&V.qpro?(H.s.c=P.read_shift(1),P.l++,H.s.r=P.read_shift(2),H.e.c=P.read_shift(1),P.l++,H.e.r=P.read_shift(2),H):(H.s.c=P.read_shift(2),H.s.r=P.read_shift(2),12==K&&V.qpro&&(P.l+=2),H.e.c=P.read_shift(2),H.e.r=P.read_shift(2),12==K&&V.qpro&&(P.l+=2),65535==H.s.c&&(H.s.c=H.e.c=H.s.r=H.e.r=0),H)}},7:{n:"WINDOW1"},8:{n:"COLW1"},9:{n:"WINTWO"},10:{n:"COLW2"},11:{n:"NAME"},12:{n:"BLANK"},13:{n:"INTEGER",f:function m(P,K,V){var H=u(P,0,V);return H[1].v=P.read_shift(2,"i"),H}},14:{n:"NUMBER",f:function v(P,K,V){var H=u(P,0,V);return H[1].v=P.read_shift(8,"f"),H}},15:{n:"LABEL",f},16:{n:"FORMULA",f:function x(P,K,V){var H=P.l+K,fe=u(P,0,V);if(fe[1].v=P.read_shift(8,"f"),V.qpro)P.l=H;else{var Ee=P.read_shift(2);(function O(P,K){ai(P,0);for(var V=[],H=0,fe="",Ee="",Ce="",we="";P.lV.length)return void console.error("WK1 bad formula parse 0x"+_e.toString(16)+":|"+V.join("|")+"|");var Mt=V.slice(-H);V.length-=H,V.push(w[_e][0]+"("+Mt.join(",")+")")}}}1==V.length?K[1].f=""+V[0]:console.error("WK1 bad formula parse |"+V.join("|")+"|")})(P.slice(P.l,P.l+Ee),fe),P.l+=Ee}return fe}},24:{n:"TABLE"},25:{n:"ORANGE"},26:{n:"PRANGE"},27:{n:"SRANGE"},28:{n:"FRANGE"},29:{n:"KRANGE1"},32:{n:"HRANGE"},35:{n:"KRANGE2"},36:{n:"PROTEC"},37:{n:"FOOTER"},38:{n:"HEADER"},39:{n:"SETUP"},40:{n:"MARGINS"},41:{n:"LABELFMT"},42:{n:"TITLES"},43:{n:"SHEETJS"},45:{n:"GRAPH"},46:{n:"NGRAPH"},47:{n:"CALCCOUNT"},48:{n:"UNFORMATTED"},49:{n:"CURSORW12"},50:{n:"WINDOW"},51:{n:"STRING",f},55:{n:"PASSWORD"},56:{n:"LOCKED"},60:{n:"QUERY"},61:{n:"QUERYNAME"},62:{n:"PRINT"},63:{n:"PRINTNAME"},64:{n:"GRAPH2"},65:{n:"GRAPHNAME"},66:{n:"ZOOM"},67:{n:"SYMSPLIT"},68:{n:"NSROWS"},69:{n:"NSCOLS"},70:{n:"RULER"},71:{n:"NNAME"},72:{n:"ACOMM"},73:{n:"AMACRO"},74:{n:"PARSE"},102:{n:"PRANGES??"},103:{n:"RRANGES??"},104:{n:"FNAME??"},105:{n:"MRANGES??"},204:{n:"SHEETNAMECS",f:Ae},222:{n:"SHEETNAMELP",f:function he(P,K){var V=P[P.l++];V>K-1&&(V=K-1);for(var H="";H.length>1;if(1&V[1].v)switch(7&H){case 0:H=5e3*(H>>3);break;case 1:H=500*(H>>3);break;case 2:H=(H>>3)/20;break;case 3:H=(H>>3)/200;break;case 4:H=(H>>3)/2e3;break;case 5:H=(H>>3)/2e4;break;case 6:H=(H>>3)/16;break;case 7:H=(H>>3)/64}return V[1].v=H,V}},25:{n:"FORMULA19",f:function ie(P,K){var V=G(P);return P.l+=K-14,V}},26:{n:"FORMULA1A"},27:{n:"XFORMAT",f:function ke(P,K){for(var V={},H=P.l+K;P.l>6,V}},38:{n:"??"},39:{n:"NUMBER27",f:Ie},40:{n:"FORMULA28",f:function Ue(P,K){var V=Ie(P);return P.l+=K-10,V}},142:{n:"??"},147:{n:"??"},150:{n:"??"},151:{n:"??"},152:{n:"??"},153:{n:"??"},154:{n:"??"},155:{n:"??"},156:{n:"??"},163:{n:"??"},174:{n:"??"},175:{n:"??"},176:{n:"??"},177:{n:"??"},184:{n:"??"},185:{n:"??"},186:{n:"??"},187:{n:"??"},188:{n:"??"},195:{n:"??"},201:{n:"??"},204:{n:"SHEETNAMECS",f:Ae},205:{n:"??"},206:{n:"??"},207:{n:"??"},208:{n:"??"},256:{n:"??"},259:{n:"??"},260:{n:"??"},261:{n:"??"},262:{n:"??"},263:{n:"??"},265:{n:"??"},266:{n:"??"},267:{n:"??"},268:{n:"??"},270:{n:"??"},271:{n:"??"},384:{n:"??"},389:{n:"??"},390:{n:"??"},393:{n:"??"},396:{n:"??"},512:{n:"??"},514:{n:"??"},513:{n:"??"},516:{n:"??"},517:{n:"??"},640:{n:"??"},641:{n:"??"},642:{n:"??"},643:{n:"??"},644:{n:"??"},645:{n:"??"},646:{n:"??"},647:{n:"??"},648:{n:"??"},658:{n:"??"},659:{n:"??"},660:{n:"??"},661:{n:"??"},662:{n:"??"},665:{n:"??"},666:{n:"??"},768:{n:"??"},772:{n:"??"},1537:{n:"SHEETINFOQP",f:function pe(P,K,V){if(V.qpro&&!(K<21)){var H=P.read_shift(1);return P.l+=17,P.l+=1,P.l+=2,[H,P.read_shift(K-21,"cstr")]}}},1600:{n:"??"},1602:{n:"??"},1793:{n:"??"},1794:{n:"??"},1795:{n:"??"},1796:{n:"??"},1920:{n:"??"},2048:{n:"??"},2049:{n:"??"},2052:{n:"??"},2688:{n:"??"},10998:{n:"??"},12849:{n:"??"},28233:{n:"??"},28484:{n:"??"},65535:{n:""}};return{sheet_to_wk1:function r(P,K){var V=K||{};if(+V.codepage>=0&&ws(+V.codepage),"string"==V.type)throw new Error("Cannot write WK1 to JS string");var H=eo(),fe=Nt(P["!ref"]),Ee=Array.isArray(P),Ce=[];Fe(H,0,function o(P){var K=le(2);return K.write_shift(2,P),K}(1030)),Fe(H,6,function l(P){var K=le(8);return K.write_shift(2,P.s.c),K.write_shift(2,P.s.r),K.write_shift(2,P.e.c),K.write_shift(2,P.e.r),K}(fe));for(var we=Math.min(fe.e.r,8191),_e=fe.s.r;_e<=we;++_e)for(var pt=tr(_e),B=fe.s.c;B<=fe.e.c;++B){_e===fe.s.r&&(Ce[B]=Nn(B));var Mt=Ee?(P[_e]||[])[B]:P[Ce[B]+pt];Mt&&"z"!=Mt.t&&("n"==Mt.t?(0|Mt.v)==Mt.v&&Mt.v>=-32768&&Mt.v<=32767?Fe(H,13,g(_e,B,Mt.v)):Fe(H,14,_(_e,B,Mt.v)):Fe(H,15,h(_e,B,ja(Mt).slice(0,239))))}return Fe(H,1),H.end()},book_to_wk3:function i(P,K){var V=K||{};if(+V.codepage>=0&&ws(+V.codepage),"string"==V.type)throw new Error("Cannot write WK3 to JS string");var H=eo();Fe(H,0,function s(P){var K=le(26);K.write_shift(2,4096),K.write_shift(2,4),K.write_shift(4,0);for(var V=0,H=0,fe=0,Ee=0;Ee8191&&(V=8191),K.write_shift(2,V),K.write_shift(1,fe),K.write_shift(1,H),K.write_shift(2,0),K.write_shift(2,0),K.write_shift(1,1),K.write_shift(1,2),K.write_shift(4,0),K.write_shift(4,0),K}(P));for(var fe=0,Ee=0;fe":case"":n.shadow=1;break;case"":break;case"":case"":n.outline=1;break;case"":break;case"":case"":n.strike=1;break;case"":break;case"":case"":n.u=1;break;case"":break;case"":case"":n.b=1;break;case"":break;case"":case"":n.i=1;break;case"":break;case"":case"":case"":break;case"":case"":case"":break;case"":case"":case"":case"":case"":case"":case"":case"":break;case"":i=!1;break;default:if(47!==o[0].charCodeAt(1)&&!i)throw new Error("Unrecognized rich format "+o[0])}}return n}(l[1])),a}var r=/<(?:\w+:)?r>/g,i=/<\/(?:\w+:)?r>/;return function(s){return s.replace(r,"").split(i).map(t).filter(function(a){return a.v})}}(),noe=function(){var n=/(\r\n|\n)/g;function r(i){var o=[[],i.v,[]];return i.v?(i.s&&function t(i,o,s){var a=[];i.u&&a.push("text-decoration: underline;"),i.uval&&a.push("text-underline-style:"+i.uval+";"),i.sz&&a.push("font-size:"+i.sz+"pt;"),i.outline&&a.push("text-effect: outline;"),i.shadow&&a.push("text-shadow: auto;"),o.push(''),i.b&&(o.push(""),s.push("")),i.i&&(o.push(""),s.push("")),i.strike&&(o.push(""),s.push(""));var l=i.valign||"";"superscript"==l||"super"==l?l="sup":"subscript"==l&&(l="sub"),""!=l&&(o.push("<"+l+">"),s.push("")),s.push("")}(i.s,o[0],o[2]),o[0].join("")+o[1].replace(n,"
")+o[2].join("")):""}return function(o){return o.map(r).join("")}}(),roe=/<(?:\w+:)?t[^>]*>([^<]*)<\/(?:\w+:)?t>/g,ioe=/<(?:\w+:)?r>/,ooe=/<(?:\w+:)?rPh.*?>([\s\S]*?)<\/(?:\w+:)?rPh>/g;function mA(e,n){var t=!n||n.cellHTML,r={};return e?(e.match(/^\s*<(?:\w+:)?t[^>]*>/)?(r.t=$t(pn(e.slice(e.indexOf(">")+1).split(/<\/(?:\w+:)?t>/)[0]||"")),r.r=pn(e),t&&(r.h=BI(r.t))):e.match(ioe)&&(r.r=pn(e),r.t=$t(pn((e.replace(ooe,"").match(roe)||[]).join("").replace(Ci,""))),t&&(r.h=noe(toe(r.r)))),r):{t:""}}var soe=/<(?:\w+:)?sst([^>]*)>([\s\S]*)<\/(?:\w+:)?sst>/,aoe=/<(?:\w+:)?(?:si|sstItem)>/g,loe=/<\/(?:\w+:)?(?:si|sstItem)>/;function EV(e){if(typeof jt<"u")return jt.utils.encode(Yd,e);for(var n=[],t=e.split(""),r=0;r=4&&(e.l+=n-4),t}function _oe(e){for(var n=e.read_shift(4),t=e.l+n-4,r={},i=e.read_shift(4),o=[];i-- >0;)o.push({t:e.read_shift(4),v:e.read_shift(0,"lpp4")});if(r.name=e.read_shift(0,"lpp4"),r.comps=o,e.l!=t)throw new Error("Bad DataSpaceMapEntry: "+e.l+" != "+t);return r}function CV(e,n){var t=e.l+n,r={};r.Flags=63&e.read_shift(4),e.l+=4,r.AlgID=e.read_shift(4);var i=!1;switch(r.AlgID){case 26126:case 26127:case 26128:i=36==r.Flags;break;case 26625:i=4==r.Flags;break;case 0:i=16==r.Flags||4==r.Flags||36==r.Flags;break;default:throw"Unrecognized encryption algorithm: "+r.AlgID}if(!i)throw new Error("Encryption Flags/AlgID mismatch");return r.AlgIDHash=e.read_shift(4),r.KeySize=e.read_shift(4),r.ProviderType=e.read_shift(4),e.l+=8,r.CSPName=e.read_shift(t-e.l>>1,"utf16le"),e.l=t,r}function TV(e,n){var t={},r=e.l+n;return e.l+=4,t.Salt=e.slice(e.l,e.l+16),e.l+=16,t.Verifier=e.slice(e.l,e.l+16),e.l+=16,e.read_shift(4),t.VerifierHash=e.slice(e.l,r),e.l=r,t}function Eoe(e){if(36!=(63&e.read_shift(4)))throw new Error("EncryptionInfo mismatch");var t=e.read_shift(4);return{t:"Std",h:CV(e,t),v:TV(e,e.length-e.l)}}function Coe(){throw new Error("File is password-protected: ECMA-376 Extensible")}function Toe(e){var n=["saltSize","blockSize","keyBits","hashSize","cipherAlgorithm","cipherChaining","hashAlgorithm","saltValue"];e.l+=4;var t=e.read_shift(e.length-e.l,"utf8"),r={};return t.replace(Ci,function(o){var s=dt(o);switch(Ua(s[0])){case"":case"":case"":break;case"":case"=0;--u)for(var f=s[u],h=0;7!=h;++h)64&f&&(a^=t[l]),f*=2,--l;return a}(a),u=a.length,f=nu(16),h=0;16!=h;++h)f[h]=0;var v;for(!(1&~u)&&(f[u]=i(e[0],l>>8),f[--u]=i(a[a.length-1],255&l));u>0;)f[--u]=i(a[u],l>>8),f[--u]=i(a[u],255&l);for(u=15,v=15-a.length;v>0;)f[u]=i(e[v],l>>8),--v,f[--u]=i(a[u],255&l),--u,--v;return f}}();var SV=function(){function e(i,o){switch(o.type){case"base64":return n(Uo(i),o);case"binary":return n(i,o);case"buffer":return n(It&&Buffer.isBuffer(i)?i.toString("binary"):ru(i),o);case"array":return n(Qd(i),o)}throw new Error("Unrecognized type "+o.type)}function n(i,o){var a=(o||{}).dense?[]:{},l=i.match(/\\trowd.*?\\row\b/g);if(!l.length)throw new Error("RTF missing table");var u={s:{c:0,r:0},e:{c:0,r:l.length-1}};return l.forEach(function(f,h){Array.isArray(a)&&(a[h]=[]);for(var v,m=/\\\w+\b/g,g=0,_=-1;v=m.exec(f);){if("\\cell"===v[0]){var x=f.slice(g,m.lastIndex-v[0].length);if(" "==x[0]&&(x=x.slice(1)),++_,x.length){var b={v:x,t:"s"};Array.isArray(a)?a[h][_]=b:a[ft({r:h,c:_})]=b}}g=m.lastIndex}_>u.e.c&&(u.e.c=_)}),a["!ref"]=wt(u),a}return{to_workbook:function t(i,o){return lu(e(i,o),o)},to_sheet:e,from_sheet:function r(i){for(var a,o=["{\\rtf1\\ansi"],s=Nt(i["!ref"]),l=Array.isArray(i),u=s.s.r;u<=s.e.r;++u){o.push("\\trowd\\trautofit1");for(var f=s.s.c;f<=s.e.c;++f)o.push("\\cellx"+(f+1));for(o.push("\\pard\\intbl"),f=s.s.c;f<=s.e.c;++f){var h=ft({r:u,c:f});(a=l?(i[u]||[])[f]:i[h])&&(null!=a.v||a.f&&!a.F)&&(o.push(" "+(a.w||(ja(a),a.w))),o.push("\\cell"))}o.push("\\pard\\intbl\\row")}return o.join("")+"}"}}}();function C_(e){for(var n=0,t=1;3!=n;++n)t=256*t+(e[n]>255?255:e[n]<0?0:e[n]);return t.toString(16).toUpperCase().slice(1)}function U1(e,n){if(0===n)return e;var t=function Ooe(e){var n=e[0]/255,t=e[1]/255,r=e[2]/255,i=Math.max(n,t,r),o=Math.min(n,t,r),s=i-o;if(0===s)return[0,0,n];var l,a=0,u=i+o;switch(l=s/(u>1?2-u:u),i){case n:a=((t-r)/s+6)%6;break;case t:a=(r-n)/s+2;break;case r:a=(n-t)/s+4}return[a/6,l,u/2]}(function Roe(e){var n=e.slice("#"===e[0]?1:0).slice(0,6);return[parseInt(n.slice(0,2),16),parseInt(n.slice(2,4),16),parseInt(n.slice(4,6),16)]}(e));return t[2]=n<0?t[2]*(1+n):1-(1-t[2])*(1-n),C_(function Noe(e){var l,t=e[1],r=e[2],i=2*t*(r<.5?r:1-r),o=r-i/2,s=[o,o,o],a=6*e[0];if(0!==t)switch(0|a){case 0:case 6:l=i*a,s[0]+=i,s[1]+=l;break;case 1:s[0]+=l=i*(2-a),s[1]+=i;break;case 2:l=i*(a-2),s[1]+=i,s[2]+=l;break;case 3:s[1]+=l=i*(4-a),s[2]+=i;break;case 4:l=i*(a-4),s[2]+=i,s[0]+=l;break;case 5:s[2]+=l=i*(6-a),s[0]+=i}for(var u=0;3!=u;++u)s[u]=Math.round(255*s[u]);return s}(t))}var IV=6,Poe=15,Loe=1,Ai=IV;function T_(e){return Math.floor((e+Math.round(128/Ai)/256)*Ai)}function D_(e){return Math.floor((e-5)/Ai*100+.5)/100}function H1(e){return Math.round((e*Ai+5)/Ai*256)/256}function _A(e){return H1(D_(T_(e)))}function vA(e){var n=Math.abs(e-_A(e)),t=Ai;if(n>.005)for(Ai=Loe;Ai]*)>[\S\s]*?<\/(?:\w+:)?numFmts>/,t=/<(?:\w+:)?cellXfs([^>]*)>[\S\s]*?<\/(?:\w+:)?cellXfs>/,r=/<(?:\w+:)?fills([^>]*)>[\S\s]*?<\/(?:\w+:)?fills>/,i=/<(?:\w+:)?fonts([^>]*)>[\S\s]*?<\/(?:\w+:)?fonts>/,o=/<(?:\w+:)?borders([^>]*)>[\S\s]*?<\/(?:\w+:)?borders>/;return function(a,l,u){var h,f={};return a?((h=(a=a.replace(//gm,"").replace(//gm,"")).match(n))&&function zoe(e,n,t){n.NumberFmt=[];for(var r=Jn(ot),i=0;i":case"":case"":case"":break;case"0){if(l>392){for(l=392;l>60&&null!=n.NumberFmt[l];--l);n.NumberFmt[l]=a}Va(a,l)}break;default:if(t.WTF)throw new Error("unrecognized "+s[0]+" in numFmts")}}}(h,f,u),(h=a.match(i))&&function joe(e,n,t,r){n.Fonts=[];var i={},o=!1;(e[0].match(Ci)||[]).forEach(function(s){var a=dt(s);switch(Ua(a[0])){case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":break;case"":case"":n.Fonts.push(i),i={};break;case"":i.bold=1;break;case"":i.italic=1;break;case"":i.underline=1;break;case"":i.strike=1;break;case"":i.outline=1;break;case"":i.shadow=1;break;case"":i.condense=1;break;case"":i.extend=1;break;case"":case"":o=!1;break;default:if(r&&r.WTF&&!o)throw new Error("unrecognized "+a[0]+" in fonts")}})}(h,f,l,u),(h=a.match(r))&&function Hoe(e,n,t,r){n.Fills=[];var i={},o=!1;(e[0].match(Ci)||[]).forEach(function(s){var a=dt(s);switch(Ua(a[0])){case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":break;case"":case"":n.Fills.push(i={});break;case"":n.Fills.push(i),i={};break;case"":a.patternType&&(i.patternType=a.patternType);break;case"":o=!1;break;default:if(r&&r.WTF&&!o)throw new Error("unrecognized "+a[0]+" in fills")}})}(h,f,0,u),(h=a.match(o))&&function Uoe(e,n,t,r){n.Borders=[];var i={},o=!1;(e[0].match(Ci)||[]).forEach(function(s){var a=dt(s);switch(Ua(a[0])){case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":break;case"":case"":i={},a.diagonalUp&&(i.diagonalUp=On(a.diagonalUp)),a.diagonalDown&&(i.diagonalDown=On(a.diagonalDown)),n.Borders.push(i);break;case"":o=!1;break;default:if(r&&r.WTF&&!o)throw new Error("unrecognized "+a[0]+" in borders")}})}(h,f,0,u),(h=a.match(t))&&function Woe(e,n,t){n.CellXf=[];var r,i=!1;(e[0].match(Ci)||[]).forEach(function(o){var s=dt(o),a=0;switch(Ua(s[0])){case"":case"":case"":case"":case"":case"":case"":case"":case"":break;case"":for(delete(r=s)[0],a=0;a392)for(a=392;a>60;--a)if(n.NumberFmt[r.numFmtId]==n.NumberFmt[a]){r.numFmtId=a;break}n.CellXf.push(r);break;case"":var l={};s.vertical&&(l.vertical=s.vertical),s.horizontal&&(l.horizontal=s.horizontal),null!=s.textRotation&&(l.textRotation=s.textRotation),s.indent&&(l.indent=s.indent),s.wrapText&&(l.wrapText=On(s.wrapText)),r.alignment=l;break;case"":case"":i=!1;break;default:if(t&&t.WTF&&!i)throw new Error("unrecognized "+s[0]+" in cellXfs")}})}(h,f,u),f):f}}(),Joe=Ti,tse=Ti,gse=["","","","","","","","","","","",""];function _se(e,n,t){n.themeElements.clrScheme=[];var r={};(e[0].match(Ci)||[]).forEach(function(i){var o=dt(i);switch(o[0]){case"":break;case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":"/"===o[0].charAt(1)?(n.themeElements.clrScheme[gse.indexOf(o[0])]=r,r={}):r.name=o[0].slice(3,o[0].length-1);break;default:if(t&&t.WTF)throw new Error("Unrecognized "+o[0]+" in clrScheme")}})}function vse(){}function yse(){}var xse=/]*)>[\s\S]*<\/a:clrScheme>/,bse=/]*)>[\s\S]*<\/a:fontScheme>/,wse=/]*)>[\s\S]*<\/a:fmtScheme>/,Cse=/]*)>[\s\S]*<\/a:themeElements>/;function RV(e,n){(!e||0===e.length)&&(e=function xA(e,n){if(n&&n.themeXLSX)return n.themeXLSX;if(e&&"string"==typeof e.raw)return e.raw;var t=[xr];return t[t.length]='',t[t.length]="",t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]="",t[t.length]='',t[t.length]="",t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]="",t[t.length]="",t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]="",t[t.length]="",t[t.length]='',t[t.length]="",t[t.length]='',t[t.length]='',t[t.length]="",t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]="",t[t.length]='',t[t.length]="",t[t.length]='',t[t.length]="",t[t.length]='',t[t.length]='',t[t.length]="",t[t.length]='',t[t.length]="",t[t.length]="",t[t.length]="",t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]="",t[t.length]="",t[t.length]="",t[t.length]="",t[t.length]='',t[t.length]="",t[t.length]="",t[t.length]="",t[t.length]="",t[t.length]='',t[t.length]="",t[t.length]="",t[t.length]="",t[t.length]="",t[t.length]='',t[t.length]="",t[t.length]='',t[t.length]='',t[t.length]="",t[t.length]="",t[t.length]="",t[t.length]='',t[t.length]='',t[t.length]="",t[t.length]='',t[t.length]='',t[t.length]='',t[t.length]="",t[t.length]='',t[t.length]="",t[t.length]='',t[t.length]="",t[t.length]='',t[t.length]='',t[t.length]="",t[t.length]='',t[t.length]="",t[t.length]="",t[t.length]="",t[t.length]="",t[t.length]="",t[t.length]="",t[t.length]='',t[t.length]="",t[t.length]="",t[t.length]='',t[t.length]="",t[t.length]="",t[t.length]="",t[t.length]="",t.join("")}());var t,r={};if(!(t=e.match(Cse)))throw new Error("themeElements not found in theme");return function Ese(e,n,t){var r;n.themeElements={},[["clrScheme",xse,_se],["fontScheme",bse,vse],["fmtScheme",wse,yse]].forEach(function(i){if(!(r=e.match(i[1])))throw new Error(i[0]+" not found in themeElements");i[2](r,n,t)})}(t[0],r,n),r.raw=e,r}function kse(e){var n=e.read_shift(2),t=e.read_shift(2)-4,r=[n];switch(n){case 4:case 5:case 7:case 8:case 9:case 10:case 11:case 13:r[1]=function Sse(e){var n={};switch(n.xclrType=e.read_shift(2),n.nTintShade=e.read_shift(2),n.xclrType){case 0:case 4:e.l+=4;break;case 1:n.xclrValue=function Ise(e,n){return Ti(e,n)}(e,4);break;case 2:n.xclrValue=rV(e);break;case 3:n.xclrValue=function Dse(e){return e.read_shift(4)}(e)}return e.l+=8,n}(e);break;case 6:r[1]=function Ase(e,n){return Ti(e,n)}(e,t);break;case 14:case 15:r[1]=e.read_shift(1===t?1:2);break;default:throw new Error("Unrecognized ExtProp type: "+n+" "+t)}return r}function Fse(e,n){n.forEach(function(t){})}function PV(e,n,t,r){var o,i=Array.isArray(e);n.forEach(function(s){var a=Xn(s.ref);if(i?(e[a.r]||(e[a.r]=[]),o=e[a.r][a.c]):o=e[s.ref],!o){o={t:"z"},i?e[a.r][a.c]=o:e[s.ref]=o;var l=Nt(e["!ref"]||"BDWGO1000001:A1");l.s.r>a.r&&(l.s.r=a.r),l.e.ra.c&&(l.s.c=a.c),l.e.c=0;--h){if(!t&&o.c[h].T)return;t&&!o.c[h].T&&o.c.splice(h,1)}if(t&&r)for(h=0;h0?0|parseInt(o,10):0,f=s.length>0?0|parseInt(s,10):0;return a?f+=n.c:--f,l?u+=n.r:--u,i+(a?"":"$")+Nn(f)+(l?"":"$")+tr(u)}return function(i,o){return n=o,i.replace(e,t)}}(),bA=/(^|[^._A-Z0-9])([$]?)([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])([$]?)(10[0-3]\d{4}|104[0-7]\d{3}|1048[0-4]\d{2}|10485[0-6]\d|104857[0-6]|[1-9]\d{0,5})(?![_.\(A-Za-z0-9])/g,wA=function(){return function(n,t){return n.replace(bA,function(r,i,o,s,a,l){var u=KI(s)-(o?0:t.c),f=YI(l)-(a?0:t.r);return i+"R"+(0==f?"":a?f+1:"["+f+"]")+"C"+(0==u?"":o?u+1:"["+u+"]")})}}();function VV(e,n){return e.replace(bA,function(t,r,i,o,s,a){return r+("$"==i?i+o:Nn(KI(o)+n.c))+("$"==s?s+a:tr(YI(a)+n.r))})}function fae(e,n,t){var i=Wo(n).s,o=Xn(t);return VV(e,{r:o.r-i.r,c:o.c-i.c})}function UV(e){return e.replace(/_xlfn\./g,"")}function Er(e){e.l+=1}function uu(e,n){var t=e.read_shift(1==n?1:2);return[16383&t,t>>14&1,t>>15&1]}function HV(e,n,t){var r=2;if(t){if(t.biff>=2&&t.biff<=5)return jV(e);12==t.biff&&(r=4)}var i=e.read_shift(r),o=e.read_shift(r),s=uu(e,2),a=uu(e,2);return{s:{r:i,c:s[0],cRel:s[1],rRel:s[2]},e:{r:o,c:a[0],cRel:a[1],rRel:a[2]}}}function jV(e){var n=uu(e,2),t=uu(e,2),r=e.read_shift(1),i=e.read_shift(1);return{s:{r:n[0],c:r,cRel:n[1],rRel:n[2]},e:{r:t[0],c:i,cRel:t[1],rRel:t[2]}}}function zV(e,n,t){if(t&&t.biff>=2&&t.biff<=5)return function mae(e){var n=uu(e,2),t=e.read_shift(1);return{r:n[0],c:t,cRel:n[1],rRel:n[2]}}(e);var r=e.read_shift(t&&12==t.biff?4:2),i=uu(e,2);return{r,c:i[0],cRel:i[1],rRel:i[2]}}function gae(e){var n=e.read_shift(2),t=e.read_shift(2);return{r:n,c:255&t,fQuoted:!!(16384&t),cRel:t>>15,rRel:t>>15}}function $V(e){var n=1&e[e.l+1];return e.l+=4,[n,1]}function WV(e){return[e.read_shift(1),e.read_shift(1)]}function Wae(e,n){var t=[e.read_shift(1)];if(12==n)switch(t[0]){case 2:t[0]=4;break;case 4:t[0]=16;break;case 0:t[0]=1;break;case 1:t[0]=2}switch(t[0]){case 4:t[1]=fr(e,1)?"TRUE":"FALSE",12!=n&&(e.l+=7);break;case 37:case 16:t[1]=Vl[e[e.l]],e.l+=12==n?4:8;break;case 0:e.l+=8;break;case 1:t[1]=Si(e);break;case 2:t[1]=uf(e,0,{biff:n>0&&n<8?2:n});break;default:throw new Error("Bad SerAr: "+t[0])}return t}function Gae(e,n,t){for(var r=e.read_shift(12==t.biff?4:2),i=[],o=0;o!=r;++o)i.push((12==t.biff?rf:B1)(e,8));return i}function qae(e,n,t){var r=0,i=0;12==t.biff?(r=e.read_shift(4),i=e.read_shift(4)):(i=1+e.read_shift(1),r=1+e.read_shift(2)),t.biff>=2&&t.biff<8&&(--r,0==--i&&(i=256));for(var o=0,s=[];o!=r&&(s[o]=[]);++o)for(var a=0;a!=i;++a)s[o][a]=Wae(e,t.biff);return s}function A_(e,n,t){return e.l+=2,[gae(e)]}function EA(e){return e.l+=6,[]}function GV(e){return e.l+=2,[wr(e),1&e.read_shift(2)]}var hle=["Data","All","Headers","??","?Data2","??","?DataHeaders","??","Totals","??","??","??","?DataTotals","??","??","??","?Current"],qV={1:{n:"PtgExp",f:function Vae(e,n,t){return e.l++,t&&12==t.biff?[e.read_shift(4,"i"),0]:[e.read_shift(2),e.read_shift(t&&2==t.biff?1:2)]}},2:{n:"PtgTbl",f:Ti},3:{n:"PtgAdd",f:Er},4:{n:"PtgSub",f:Er},5:{n:"PtgMul",f:Er},6:{n:"PtgDiv",f:Er},7:{n:"PtgPower",f:Er},8:{n:"PtgConcat",f:Er},9:{n:"PtgLt",f:Er},10:{n:"PtgLe",f:Er},11:{n:"PtgEq",f:Er},12:{n:"PtgGe",f:Er},13:{n:"PtgGt",f:Er},14:{n:"PtgNe",f:Er},15:{n:"PtgIsect",f:Er},16:{n:"PtgUnion",f:Er},17:{n:"PtgRange",f:Er},18:{n:"PtgUplus",f:Er},19:{n:"PtgUminus",f:Er},20:{n:"PtgPercent",f:Er},21:{n:"PtgParen",f:Er},22:{n:"PtgMissArg",f:Er},23:{n:"PtgStr",f:function $ae(e,n,t){return e.l++,w_(e,0,t)}},26:{n:"PtgSheet",f:function gle(e,n,t){return e.l+=5,e.l+=2,e.l+=2==t.biff?1:4,["PTGSHEET"]}},27:{n:"PtgEndSheet",f:function _le(e,n,t){return e.l+=2==t.biff?4:5,["PTGENDSHEET"]}},28:{n:"PtgErr",f:function Uae(e){return e.l++,Vl[e.read_shift(1)]}},29:{n:"PtgBool",f:function jae(e){return e.l++,0!==e.read_shift(1)}},30:{n:"PtgInt",f:function Hae(e){return e.l++,e.read_shift(2)}},31:{n:"PtgNum",f:function zae(e){return e.l++,Si(e)}},32:{n:"PtgArray",f:function Cae(e,n,t){var r=(96&e[e.l++])>>5;return e.l+=2==t.biff?6:12==t.biff?14:7,[r]}},33:{n:"PtgFunc",f:function Nae(e,n,t){var r=(96&e[e.l])>>5;e.l+=1;var i=e.read_shift(t&&t.biff<=3?1:2);return[Ble[i],KV[i],r]}},34:{n:"PtgFuncVar",f:function Pae(e,n,t){var r=e[e.l++],i=e.read_shift(1),o=t&&t.biff<=3?[88==r?-1:0,e.read_shift(1)]:function Lae(e){return[e[e.l+1]>>7,32767&e.read_shift(2)]}(e);return[i,(0===o[0]?KV:Lle)[o[1]]]}},35:{n:"PtgName",f:function Xae(e,n,t){var r=e.read_shift(1)>>>5&3,o=e.read_shift(!t||t.biff>=8?4:2);switch(t.biff){case 2:e.l+=5;break;case 3:case 4:e.l+=8;break;case 5:e.l+=12}return[r,0,o]}},36:{n:"PtgRef",f:function Fae(e,n,t){var r=(96&e[e.l])>>5;return e.l+=1,[r,zV(e,0,t)]}},37:{n:"PtgArea",f:function yae(e,n,t){return[(96&e[e.l++])>>5,HV(e,0,t)]}},38:{n:"PtgMemArea",f:function Zae(e,n,t){var r=e.read_shift(1)>>>5&3;return e.l+=t&&2==t.biff?3:4,[r,e.read_shift(t&&2==t.biff?1:2)]}},39:{n:"PtgMemErr",f:Ti},40:{n:"PtgMemNoMem",f:Ti},41:{n:"PtgMemFunc",f:function Qae(e,n,t){return[e.read_shift(1)>>>5&3,e.read_shift(t&&2==t.biff?1:2)]}},42:{n:"PtgRefErr",f:function Jae(e,n,t){var r=e.read_shift(1)>>>5&3;return e.l+=4,t.biff<8&&e.l--,12==t.biff&&(e.l+=2),[r]}},43:{n:"PtgAreaErr",f:function bae(e,n,t){var r=(96&e[e.l++])>>5;return e.l+=t&&t.biff>8?12:t.biff<8?6:8,[r]}},44:{n:"PtgRefN",f:function Rae(e,n,t){var r=(96&e[e.l])>>5;e.l+=1;var i=function _ae(e,n,t){var r=t&&t.biff?t.biff:8;if(r>=2&&r<=5)return function vae(e){var n=e.read_shift(2),t=e.read_shift(1),r=(32768&n)>>15,i=(16384&n)>>14;return n&=16383,1==r&&n>=8192&&(n-=16384),1==i&&t>=128&&(t-=256),{r:n,c:t,cRel:i,rRel:r}}(e);var i=e.read_shift(r>=12?4:2),o=e.read_shift(2),s=(16384&o)>>14,a=(32768&o)>>15;if(o&=16383,1==a)for(;i>524287;)i-=1048576;if(1==s)for(;o>8191;)o-=16384;return{r:i,c:o,cRel:s,rRel:a}}(e,0,t);return[r,i]}},45:{n:"PtgAreaN",f:function Eae(e,n,t){var r=(96&e[e.l++])>>5,i=function pae(e,n,t){if(t.biff<8)return jV(e);var r=e.read_shift(12==t.biff?4:2),i=e.read_shift(12==t.biff?4:2),o=uu(e,2),s=uu(e,2);return{s:{r,c:o[0],cRel:o[1],rRel:o[2]},e:{r:i,c:s[0],cRel:s[1],rRel:s[2]}}}(e,0,t);return[r,i]}},46:{n:"PtgMemAreaN",f:function vle(e){return[e.read_shift(1)>>>5&3,e.read_shift(2)]}},47:{n:"PtgMemNoMemN",f:function yle(e){return[e.read_shift(1)>>>5&3,e.read_shift(2)]}},57:{n:"PtgNameX",f:function Yae(e,n,t){return 5==t.biff?function Kae(e){var n=e.read_shift(1)>>>5&3,t=e.read_shift(2,"i");e.l+=8;var r=e.read_shift(2);return e.l+=12,[n,t,r]}(e):[e.read_shift(1)>>>5&3,e.read_shift(2),e.read_shift(4)]}},58:{n:"PtgRef3d",f:function Oae(e,n,t){var r=(96&e[e.l])>>5;e.l+=1;var i=e.read_shift(2);return t&&5==t.biff&&(e.l+=12),[r,i,zV(e,0,t)]}},59:{n:"PtgArea3d",f:function xae(e,n,t){var r=(96&e[e.l++])>>5,i=e.read_shift(2,"i");if(t&&5===t.biff)e.l+=12;return[r,i,HV(e,0,t)]}},60:{n:"PtgRefErr3d",f:function ele(e,n,t){var r=(96&e[e.l++])>>5,i=e.read_shift(2),o=4;if(t)switch(t.biff){case 5:o=15;break;case 12:o=6}return e.l+=o,[r,i]}},61:{n:"PtgAreaErr3d",f:function wae(e,n,t){var r=(96&e[e.l++])>>5,i=e.read_shift(2),o=8;if(t)switch(t.biff){case 5:e.l+=12,o=6;break;case 12:o=12}return e.l+=o,[r,i]}},255:{}},ble={64:32,96:32,65:33,97:33,66:34,98:34,67:35,99:35,68:36,100:36,69:37,101:37,70:38,102:38,71:39,103:39,72:40,104:40,73:41,105:41,74:42,106:42,75:43,107:43,76:44,108:44,77:45,109:45,78:46,110:46,79:47,111:47,88:34,120:34,89:57,121:57,90:58,122:58,91:59,123:59,92:60,124:60,93:61,125:61},wle={1:{n:"PtgElfLel",f:GV},2:{n:"PtgElfRw",f:A_},3:{n:"PtgElfCol",f:A_},6:{n:"PtgElfRwV",f:A_},7:{n:"PtgElfColV",f:A_},10:{n:"PtgElfRadical",f:A_},11:{n:"PtgElfRadicalS",f:EA},13:{n:"PtgElfColS",f:EA},15:{n:"PtgElfColSV",f:EA},16:{n:"PtgElfRadicalLel",f:GV},25:{n:"PtgList",f:function ple(e){e.l+=2;var n=e.read_shift(2),t=e.read_shift(2),r=e.read_shift(4),i=e.read_shift(2),o=e.read_shift(2);return{ixti:n,coltype:3&t,rt:hle[t>>2&31],idx:r,c:i,C:o}}},29:{n:"PtgSxName",f:function mle(e){return e.l+=2,[e.read_shift(4)]}},255:{}},Ele={0:{n:"PtgAttrNoop",f:function xle(e){return e.l+=4,[0,0]}},1:{n:"PtgAttrSemi",f:function Aae(e,n,t){var r=255&e[e.l+1]?1:0;return e.l+=t&&2==t.biff?3:4,[r]}},2:{n:"PtgAttrIf",f:function Sae(e,n,t){var r=255&e[e.l+1]?1:0;return e.l+=2,[r,e.read_shift(t&&2==t.biff?1:2)]}},4:{n:"PtgAttrChoose",f:function Tae(e,n,t){e.l+=2;for(var r=e.read_shift(t&&2==t.biff?1:2),i=[],o=0;o<=r;++o)i.push(e.read_shift(t&&2==t.biff?1:2));return i}},8:{n:"PtgAttrGoto",f:function Dae(e,n,t){var r=255&e[e.l+1]?1:0;return e.l+=2,[r,e.read_shift(t&&2==t.biff?1:2)]}},16:{n:"PtgAttrSum",f:function Bae(e,n,t){e.l+=t&&2==t.biff?3:4}},32:{n:"PtgAttrBaxcel",f:$V},33:{n:"PtgAttrBaxcel",f:$V},64:{n:"PtgAttrSpace",f:function kae(e){return e.read_shift(2),WV(e)}},65:{n:"PtgAttrSpaceSemi",f:function Mae(e){return e.read_shift(2),WV(e)}},128:{n:"PtgAttrIfError",f:function Iae(e){var n=255&e[e.l+1]?1:0;return e.l+=2,[n,e.read_shift(2)]}},255:{}};function k_(e,n,t,r){if(r.biff<8)return Ti(e,n);for(var i=e.l+n,o=[],s=0;s!==t.length;++s)switch(t[s][0]){case"PtgArray":t[s][1]=qae(e,0,r),o.push(t[s][1]);break;case"PtgMemArea":t[s][2]=Gae(e,0,r),o.push(t[s][2]);break;case"PtgExp":r&&12==r.biff&&(t[s][1][1]=e.read_shift(4),o.push(t[s][1]));break;case"PtgList":case"PtgElfRadicalS":case"PtgElfColS":case"PtgElfColSV":throw"Unsupported "+t[s][0]}return 0!=(n=i-e.l)&&o.push(Ti(e,n)),o}function M_(e,n,t){for(var i,o,r=e.l+n,s=[];r!=e.l;)n=r-e.l,i=qV[o=e[e.l]]||qV[ble[o]],(24===o||25===o)&&(i=(24===o?wle:Ele)[e[e.l+1]]),i&&i.f?s.push([i.n,i.f(e,n,t)]):Ti(e,n);return s}function Cle(e){for(var n=[],t=0;t=",PtgGt:">",PtgLe:"<=",PtgLt:"<",PtgMul:"*",PtgNe:"<>",PtgPower:"^",PtgSub:"-"};function XV(e,n,t){if(!e)return"SH33TJSERR0";if(t.biff>8&&(!e.XTI||!e.XTI[n]))return e.SheetNames[n];if(!e.XTI)return"SH33TJSERR6";var r=e.XTI[n];if(t.biff<8)return n>1e4&&(n-=65536),n<0&&(n=-n),0==n?"":e.XTI[n-1];if(!r)return"SH33TJSERR1";var i="";if(t.biff>8)switch(e[r[0]][0]){case 357:return i=-1==r[1]?"#REF":e.SheetNames[r[1]],r[1]==r[2]?i:i+":"+e.SheetNames[r[2]];case 358:return null!=t.SID?e.SheetNames[t.SID]:"SH33TJSSAME"+e[r[0]][0];default:return"SH33TJSSRC"+e[r[0]][0]}switch(e[r[0]][0][0]){case 1025:return i=-1==r[1]?"#REF":e.SheetNames[r[1]]||"SH33TJSERR3",r[1]==r[2]?i:i+":"+e.SheetNames[r[2]];case 14849:return e[r[0]].slice(1).map(function(o){return o.Name}).join(";;");default:return e[r[0]][0][3]?(i=-1==r[1]?"#REF":e[r[0]][0][3][r[1]]||"SH33TJSERR4",r[1]==r[2]?i:i+":"+e[r[0]][0][3][r[2]]):"SH33TJSERR2"}}function YV(e,n,t){var r=XV(e,n,t);return"#REF"==r?r:function Dle(e,n){if(!(e||n&&n.biff<=5&&n.biff>=2))throw new Error("empty sheet name");return/[^\w\u4E00-\u9FFF\u3040-\u30FF]/.test(e)?"'"+e+"'":e}(r,t)}function ki(e,n,t,r,i){var l,u,f,g,o=i&&i.biff||8,s={s:{c:0,r:0},e:{c:0,r:0}},a=[],h=0,m=0,v="";if(!e[0]||!e[0][0])return"";for(var _=-1,x="",b=0,w=e[0].length;b=0){switch(e[0][_][1][0]){case 0:x=er(" ",e[0][_][1][1]);break;case 1:x=er("\r",e[0][_][1][1]);break;default:if(x="",i.WTF)throw new Error("Unexpected PtgAttrSpaceType "+e[0][_][1][0])}u+=x,_=-1}a.push(u+Tle[C[0]]+l);break;case"PtgIsect":l=a.pop(),u=a.pop(),a.push(u+" "+l);break;case"PtgUnion":l=a.pop(),u=a.pop(),a.push(u+","+l);break;case"PtgRange":l=a.pop(),u=a.pop(),a.push(u+":"+l);break;case"PtgAttrChoose":case"PtgAttrGoto":case"PtgAttrIf":case"PtgAttrIfError":case"PtgAttrBaxcel":case"PtgAttrSemi":case"PtgMemArea":case"PtgTbl":case"PtgMemErr":case"PtgMemAreaN":case"PtgMemNoMemN":case"PtgAttrNoop":case"PtgSheet":case"PtgEndSheet":case"PtgMemFunc":case"PtgMemNoMem":break;case"PtgRef":f=v_(C[1][1],s,i),a.push(y_(f,o));break;case"PtgRefN":f=t?v_(C[1][1],t,i):C[1][1],a.push(y_(f,o));break;case"PtgRef3d":h=C[1][1],f=v_(C[1][2],s,i),v=YV(r,h,i),a.push(v+"!"+y_(f,o));break;case"PtgFunc":case"PtgFuncVar":var z=C[1][0],U=C[1][1];z||(z=0);var A=0==(z&=127)?[]:a.slice(-z);a.length-=z,"User"===U&&(U=A.shift()),a.push(U+"("+A.join(",")+")");break;case"PtgBool":a.push(C[1]?"TRUE":"FALSE");break;case"PtgInt":case"PtgErr":a.push(C[1]);break;case"PtgNum":a.push(String(C[1]));break;case"PtgStr":a.push('"'+C[1].replace(/"/g,'""')+'"');break;case"PtgAreaN":g=E8(C[1][1],t?{s:t}:s,i),a.push(XI(g,i));break;case"PtgArea":g=E8(C[1][1],s,i),a.push(XI(g,i));break;case"PtgArea3d":g=C[1][2],v=YV(r,h=C[1][1],i),a.push(v+"!"+XI(g,i));break;case"PtgAttrSum":a.push("SUM("+a.pop()+")");break;case"PtgName":var q=(r.names||[])[(m=C[1][2])-1]||(r[0]||[])[m],G=q?q.Name:"SH33TJSNAME"+String(m);G&&"_xlfn."==G.slice(0,6)&&!i.xlfn&&(G=G.slice(6)),a.push(G);break;case"PtgNameX":var ie,ee=C[1][1];if(m=C[1][2],!(i.biff<=5)){var Y="";if(14849==((r[ee]||[])[0]||[])[0]||(1025==((r[ee]||[])[0]||[])[0]?r[ee][m]&&r[ee][m].itab>0&&(Y=r.SheetNames[r[ee][m].itab-1]+"!"):Y=r.SheetNames[m-1]+"!"),r[ee]&&r[ee][m])Y+=r[ee][m].Name;else if(r[0]&&r[0][m])Y+=r[0][m].Name;else{var Ie=(XV(r,ee,i)||"").split(";;");Ie[m-1]?Y=Ie[m-1]:Y+="SH33TJSERRX"}a.push(Y);break}ee<0&&(ee=-ee),r[ee]&&(ie=r[ee][m]),ie||(ie={Name:"SH33TJSERRY"}),a.push(ie.Name);break;case"PtgParen":var Ue="(",Ae=")";if(_>=0){switch(x="",e[0][_][1][0]){case 2:Ue=er(" ",e[0][_][1][1])+Ue;break;case 3:Ue=er("\r",e[0][_][1][1])+Ue;break;case 4:Ae=er(" ",e[0][_][1][1])+Ae;break;case 5:Ae=er("\r",e[0][_][1][1])+Ae;break;default:if(i.WTF)throw new Error("Unexpected PtgAttrSpaceType "+e[0][_][1][0])}_=-1}a.push(Ue+a.pop()+Ae);break;case"PtgRefErr":case"PtgRefErr3d":case"PtgAreaErr":case"PtgAreaErr3d":a.push("#REF!");break;case"PtgExp":var he={c:t.c,r:t.r};if(r.sharedf[ft(f={c:C[1][1],r:C[1][0]})]){var pe=r.sharedf[ft(f)];a.push(ki(pe,0,he,r,i))}else{var ke=!1;for(l=0;l!=r.arrayf.length;++l)if(!(f.c<(u=r.arrayf[l])[0].s.c||f.c>u[0].e.c||f.ru[0].e.r)){a.push(ki(u[1],0,he,r,i)),ke=!0;break}ke||a.push(C[1])}break;case"PtgArray":a.push("{"+Cle(C[1])+"}");break;case"PtgAttrSpace":case"PtgAttrSpaceSemi":_=b;break;case"PtgMissArg":a.push("");break;case"PtgList":a.push("Table"+C[1].idx+"[#"+C[1].rt+"]");break;case"PtgElfCol":case"PtgElfColS":case"PtgElfColSV":case"PtgElfColV":case"PtgElfLel":case"PtgElfRadical":case"PtgElfRadicalLel":case"PtgElfRadicalS":case"PtgElfRw":case"PtgElfRwV":throw new Error("Unsupported ELFs");default:throw new Error("Unrecognized Formula Token: "+String(C))}if(3!=i.biff&&_>=0&&-1==["PtgAttrSpace","PtgAttrSpaceSemi","PtgAttrGoto"].indexOf(e[0][b][0])){var Ne=!0;switch((C=e[0][_])[1][0]){case 4:Ne=!1;case 0:x=er(" ",C[1][1]);break;case 5:Ne=!1;case 1:x=er("\r",C[1][1]);break;default:if(x="",i.WTF)throw new Error("Unexpected PtgAttrSpaceType "+C[1][0])}a.push((Ne?x:"")+a.pop()+(Ne?"":x)),_=-1}}if(a.length>1&&i.WTF)throw new Error("bad formula stack");return a[0]}function Sle(e,n,t){var o,r=e.l+n,i=2==t.biff?1:2,s=e.read_shift(i);if(65535==s)return[[],Ti(e,n-2)];var a=M_(e,s,t);return n!==s+i&&(o=k_(e,n-s-i,a,t)),e.l=r,[a,o]}function kle(e,n,t){var i,r=e.l+n,o=e.read_shift(2),s=M_(e,o,t);return 65535==o?[[],Ti(e,n-2)]:(n!==o+2&&(i=k_(e,r-o-2,s,t)),[s,i])}function CA(e,n,t){var r=e.l+n,i=za(e);2==t.biff&&++e.l;var o=function Mle(e){var n;if(65535!==Ll(e,e.l+6))return[Si(e),"n"];switch(e[e.l]){case 0:return e.l+=8,["String","s"];case 1:return n=1===e[e.l+2],e.l+=8,[n,"b"];case 2:return n=e[e.l+2],e.l+=8,[n,"e"];case 3:return e.l+=8,["","s"]}return[]}(e),s=e.read_shift(1);2!=t.biff&&(e.read_shift(1),t.biff>=5&&e.read_shift(4));var a=function Ile(e,n,t){var o,r=e.l+n,i=2==t.biff?1:2,s=e.read_shift(i);if(65535==s)return[[],Ti(e,n-2)];var a=M_(e,s,t);return n!==s+i&&(o=k_(e,n-s-i,a,t)),e.l=r,[a,o]}(e,r-e.l,t);return{cell:i,val:o[0],formula:a,shared:s>>3&1,tt:o[1]}}function $1(e,n,t){var r=e.read_shift(4),i=M_(e,r,t),o=e.read_shift(4);return[i,o>0?k_(e,o,i,t):null]}var Ole=$1,W1=$1,Nle=$1,Ple=$1,Lle={0:"BEEP",1:"OPEN",2:"OPEN.LINKS",3:"CLOSE.ALL",4:"SAVE",5:"SAVE.AS",6:"FILE.DELETE",7:"PAGE.SETUP",8:"PRINT",9:"PRINTER.SETUP",10:"QUIT",11:"NEW.WINDOW",12:"ARRANGE.ALL",13:"WINDOW.SIZE",14:"WINDOW.MOVE",15:"FULL",16:"CLOSE",17:"RUN",22:"SET.PRINT.AREA",23:"SET.PRINT.TITLES",24:"SET.PAGE.BREAK",25:"REMOVE.PAGE.BREAK",26:"FONT",27:"DISPLAY",28:"PROTECT.DOCUMENT",29:"PRECISION",30:"A1.R1C1",31:"CALCULATE.NOW",32:"CALCULATION",34:"DATA.FIND",35:"EXTRACT",36:"DATA.DELETE",37:"SET.DATABASE",38:"SET.CRITERIA",39:"SORT",40:"DATA.SERIES",41:"TABLE",42:"FORMAT.NUMBER",43:"ALIGNMENT",44:"STYLE",45:"BORDER",46:"CELL.PROTECTION",47:"COLUMN.WIDTH",48:"UNDO",49:"CUT",50:"COPY",51:"PASTE",52:"CLEAR",53:"PASTE.SPECIAL",54:"EDIT.DELETE",55:"INSERT",56:"FILL.RIGHT",57:"FILL.DOWN",61:"DEFINE.NAME",62:"CREATE.NAMES",63:"FORMULA.GOTO",64:"FORMULA.FIND",65:"SELECT.LAST.CELL",66:"SHOW.ACTIVE.CELL",67:"GALLERY.AREA",68:"GALLERY.BAR",69:"GALLERY.COLUMN",70:"GALLERY.LINE",71:"GALLERY.PIE",72:"GALLERY.SCATTER",73:"COMBINATION",74:"PREFERRED",75:"ADD.OVERLAY",76:"GRIDLINES",77:"SET.PREFERRED",78:"AXES",79:"LEGEND",80:"ATTACH.TEXT",81:"ADD.ARROW",82:"SELECT.CHART",83:"SELECT.PLOT.AREA",84:"PATTERNS",85:"MAIN.CHART",86:"OVERLAY",87:"SCALE",88:"FORMAT.LEGEND",89:"FORMAT.TEXT",90:"EDIT.REPEAT",91:"PARSE",92:"JUSTIFY",93:"HIDE",94:"UNHIDE",95:"WORKSPACE",96:"FORMULA",97:"FORMULA.FILL",98:"FORMULA.ARRAY",99:"DATA.FIND.NEXT",100:"DATA.FIND.PREV",101:"FORMULA.FIND.NEXT",102:"FORMULA.FIND.PREV",103:"ACTIVATE",104:"ACTIVATE.NEXT",105:"ACTIVATE.PREV",106:"UNLOCKED.NEXT",107:"UNLOCKED.PREV",108:"COPY.PICTURE",109:"SELECT",110:"DELETE.NAME",111:"DELETE.FORMAT",112:"VLINE",113:"HLINE",114:"VPAGE",115:"HPAGE",116:"VSCROLL",117:"HSCROLL",118:"ALERT",119:"NEW",120:"CANCEL.COPY",121:"SHOW.CLIPBOARD",122:"MESSAGE",124:"PASTE.LINK",125:"APP.ACTIVATE",126:"DELETE.ARROW",127:"ROW.HEIGHT",128:"FORMAT.MOVE",129:"FORMAT.SIZE",130:"FORMULA.REPLACE",131:"SEND.KEYS",132:"SELECT.SPECIAL",133:"APPLY.NAMES",134:"REPLACE.FONT",135:"FREEZE.PANES",136:"SHOW.INFO",137:"SPLIT",138:"ON.WINDOW",139:"ON.DATA",140:"DISABLE.INPUT",142:"OUTLINE",143:"LIST.NAMES",144:"FILE.CLOSE",145:"SAVE.WORKBOOK",146:"DATA.FORM",147:"COPY.CHART",148:"ON.TIME",149:"WAIT",150:"FORMAT.FONT",151:"FILL.UP",152:"FILL.LEFT",153:"DELETE.OVERLAY",155:"SHORT.MENUS",159:"SET.UPDATE.STATUS",161:"COLOR.PALETTE",162:"DELETE.STYLE",163:"WINDOW.RESTORE",164:"WINDOW.MAXIMIZE",166:"CHANGE.LINK",167:"CALCULATE.DOCUMENT",168:"ON.KEY",169:"APP.RESTORE",170:"APP.MOVE",171:"APP.SIZE",172:"APP.MINIMIZE",173:"APP.MAXIMIZE",174:"BRING.TO.FRONT",175:"SEND.TO.BACK",185:"MAIN.CHART.TYPE",186:"OVERLAY.CHART.TYPE",187:"SELECT.END",188:"OPEN.MAIL",189:"SEND.MAIL",190:"STANDARD.FONT",191:"CONSOLIDATE",192:"SORT.SPECIAL",193:"GALLERY.3D.AREA",194:"GALLERY.3D.COLUMN",195:"GALLERY.3D.LINE",196:"GALLERY.3D.PIE",197:"VIEW.3D",198:"GOAL.SEEK",199:"WORKGROUP",200:"FILL.GROUP",201:"UPDATE.LINK",202:"PROMOTE",203:"DEMOTE",204:"SHOW.DETAIL",206:"UNGROUP",207:"OBJECT.PROPERTIES",208:"SAVE.NEW.OBJECT",209:"SHARE",210:"SHARE.NAME",211:"DUPLICATE",212:"APPLY.STYLE",213:"ASSIGN.TO.OBJECT",214:"OBJECT.PROTECTION",215:"HIDE.OBJECT",216:"SET.EXTRACT",217:"CREATE.PUBLISHER",218:"SUBSCRIBE.TO",219:"ATTRIBUTES",220:"SHOW.TOOLBAR",222:"PRINT.PREVIEW",223:"EDIT.COLOR",224:"SHOW.LEVELS",225:"FORMAT.MAIN",226:"FORMAT.OVERLAY",227:"ON.RECALC",228:"EDIT.SERIES",229:"DEFINE.STYLE",240:"LINE.PRINT",243:"ENTER.DATA",249:"GALLERY.RADAR",250:"MERGE.STYLES",251:"EDITION.OPTIONS",252:"PASTE.PICTURE",253:"PASTE.PICTURE.LINK",254:"SPELLING",256:"ZOOM",259:"INSERT.OBJECT",260:"WINDOW.MINIMIZE",265:"SOUND.NOTE",266:"SOUND.PLAY",267:"FORMAT.SHAPE",268:"EXTEND.POLYGON",269:"FORMAT.AUTO",272:"GALLERY.3D.BAR",273:"GALLERY.3D.SURFACE",274:"FILL.AUTO",276:"CUSTOMIZE.TOOLBAR",277:"ADD.TOOL",278:"EDIT.OBJECT",279:"ON.DOUBLECLICK",280:"ON.ENTRY",281:"WORKBOOK.ADD",282:"WORKBOOK.MOVE",283:"WORKBOOK.COPY",284:"WORKBOOK.OPTIONS",285:"SAVE.WORKSPACE",288:"CHART.WIZARD",289:"DELETE.TOOL",290:"MOVE.TOOL",291:"WORKBOOK.SELECT",292:"WORKBOOK.ACTIVATE",293:"ASSIGN.TO.TOOL",295:"COPY.TOOL",296:"RESET.TOOL",297:"CONSTRAIN.NUMERIC",298:"PASTE.TOOL",302:"WORKBOOK.NEW",305:"SCENARIO.CELLS",306:"SCENARIO.DELETE",307:"SCENARIO.ADD",308:"SCENARIO.EDIT",309:"SCENARIO.SHOW",310:"SCENARIO.SHOW.NEXT",311:"SCENARIO.SUMMARY",312:"PIVOT.TABLE.WIZARD",313:"PIVOT.FIELD.PROPERTIES",314:"PIVOT.FIELD",315:"PIVOT.ITEM",316:"PIVOT.ADD.FIELDS",318:"OPTIONS.CALCULATION",319:"OPTIONS.EDIT",320:"OPTIONS.VIEW",321:"ADDIN.MANAGER",322:"MENU.EDITOR",323:"ATTACH.TOOLBARS",324:"VBAActivate",325:"OPTIONS.CHART",328:"VBA.INSERT.FILE",330:"VBA.PROCEDURE.DEFINITION",336:"ROUTING.SLIP",338:"ROUTE.DOCUMENT",339:"MAIL.LOGON",342:"INSERT.PICTURE",343:"EDIT.TOOL",344:"GALLERY.DOUGHNUT",350:"CHART.TREND",352:"PIVOT.ITEM.PROPERTIES",354:"WORKBOOK.INSERT",355:"OPTIONS.TRANSITION",356:"OPTIONS.GENERAL",370:"FILTER.ADVANCED",373:"MAIL.ADD.MAILER",374:"MAIL.DELETE.MAILER",375:"MAIL.REPLY",376:"MAIL.REPLY.ALL",377:"MAIL.FORWARD",378:"MAIL.NEXT.LETTER",379:"DATA.LABEL",380:"INSERT.TITLE",381:"FONT.PROPERTIES",382:"MACRO.OPTIONS",383:"WORKBOOK.HIDE",384:"WORKBOOK.UNHIDE",385:"WORKBOOK.DELETE",386:"WORKBOOK.NAME",388:"GALLERY.CUSTOM",390:"ADD.CHART.AUTOFORMAT",391:"DELETE.CHART.AUTOFORMAT",392:"CHART.ADD.DATA",393:"AUTO.OUTLINE",394:"TAB.ORDER",395:"SHOW.DIALOG",396:"SELECT.ALL",397:"UNGROUP.SHEETS",398:"SUBTOTAL.CREATE",399:"SUBTOTAL.REMOVE",400:"RENAME.OBJECT",412:"WORKBOOK.SCROLL",413:"WORKBOOK.NEXT",414:"WORKBOOK.PREV",415:"WORKBOOK.TAB.SPLIT",416:"FULL.SCREEN",417:"WORKBOOK.PROTECT",420:"SCROLLBAR.PROPERTIES",421:"PIVOT.SHOW.PAGES",422:"TEXT.TO.COLUMNS",423:"FORMAT.CHARTTYPE",424:"LINK.FORMAT",425:"TRACER.DISPLAY",430:"TRACER.NAVIGATE",431:"TRACER.CLEAR",432:"TRACER.ERROR",433:"PIVOT.FIELD.GROUP",434:"PIVOT.FIELD.UNGROUP",435:"CHECKBOX.PROPERTIES",436:"LABEL.PROPERTIES",437:"LISTBOX.PROPERTIES",438:"EDITBOX.PROPERTIES",439:"PIVOT.REFRESH",440:"LINK.COMBO",441:"OPEN.TEXT",442:"HIDE.DIALOG",443:"SET.DIALOG.FOCUS",444:"ENABLE.OBJECT",445:"PUSHBUTTON.PROPERTIES",446:"SET.DIALOG.DEFAULT",447:"FILTER",448:"FILTER.SHOW.ALL",449:"CLEAR.OUTLINE",450:"FUNCTION.WIZARD",451:"ADD.LIST.ITEM",452:"SET.LIST.ITEM",453:"REMOVE.LIST.ITEM",454:"SELECT.LIST.ITEM",455:"SET.CONTROL.VALUE",456:"SAVE.COPY.AS",458:"OPTIONS.LISTS.ADD",459:"OPTIONS.LISTS.DELETE",460:"SERIES.AXES",461:"SERIES.X",462:"SERIES.Y",463:"ERRORBAR.X",464:"ERRORBAR.Y",465:"FORMAT.CHART",466:"SERIES.ORDER",467:"MAIL.LOGOFF",468:"CLEAR.ROUTING.SLIP",469:"APP.ACTIVATE.MICROSOFT",470:"MAIL.EDIT.MAILER",471:"ON.SHEET",472:"STANDARD.WIDTH",473:"SCENARIO.MERGE",474:"SUMMARY.INFO",475:"FIND.FILE",476:"ACTIVE.CELL.FONT",477:"ENABLE.TIPWIZARD",478:"VBA.MAKE.ADDIN",480:"INSERTDATATABLE",481:"WORKGROUP.OPTIONS",482:"MAIL.SEND.MAILER",485:"AUTOCORRECT",489:"POST.DOCUMENT",491:"PICKLIST",493:"VIEW.SHOW",494:"VIEW.DEFINE",495:"VIEW.DELETE",509:"SHEET.BACKGROUND",510:"INSERT.MAP.OBJECT",511:"OPTIONS.MENONO",517:"MSOCHECKS",518:"NORMAL",519:"LAYOUT",520:"RM.PRINT.AREA",521:"CLEAR.PRINT.AREA",522:"ADD.PRINT.AREA",523:"MOVE.BRK",545:"HIDECURR.NOTE",546:"HIDEALL.NOTES",547:"DELETE.NOTE",548:"TRAVERSE.NOTES",549:"ACTIVATE.NOTES",620:"PROTECT.REVISIONS",621:"UNPROTECT.REVISIONS",647:"OPTIONS.ME",653:"WEB.PUBLISH",667:"NEWWEBQUERY",673:"PIVOT.TABLE.CHART",753:"OPTIONS.SAVE",755:"OPTIONS.SPELL",808:"HIDEALL.INKANNOTS"},KV={0:"COUNT",1:"IF",2:"ISNA",3:"ISERROR",4:"SUM",5:"AVERAGE",6:"MIN",7:"MAX",8:"ROW",9:"COLUMN",10:"NA",11:"NPV",12:"STDEV",13:"DOLLAR",14:"FIXED",15:"SIN",16:"COS",17:"TAN",18:"ATAN",19:"PI",20:"SQRT",21:"EXP",22:"LN",23:"LOG10",24:"ABS",25:"INT",26:"SIGN",27:"ROUND",28:"LOOKUP",29:"INDEX",30:"REPT",31:"MID",32:"LEN",33:"VALUE",34:"TRUE",35:"FALSE",36:"AND",37:"OR",38:"NOT",39:"MOD",40:"DCOUNT",41:"DSUM",42:"DAVERAGE",43:"DMIN",44:"DMAX",45:"DSTDEV",46:"VAR",47:"DVAR",48:"TEXT",49:"LINEST",50:"TREND",51:"LOGEST",52:"GROWTH",53:"GOTO",54:"HALT",55:"RETURN",56:"PV",57:"FV",58:"NPER",59:"PMT",60:"RATE",61:"MIRR",62:"IRR",63:"RAND",64:"MATCH",65:"DATE",66:"TIME",67:"DAY",68:"MONTH",69:"YEAR",70:"WEEKDAY",71:"HOUR",72:"MINUTE",73:"SECOND",74:"NOW",75:"AREAS",76:"ROWS",77:"COLUMNS",78:"OFFSET",79:"ABSREF",80:"RELREF",81:"ARGUMENT",82:"SEARCH",83:"TRANSPOSE",84:"ERROR",85:"STEP",86:"TYPE",87:"ECHO",88:"SET.NAME",89:"CALLER",90:"DEREF",91:"WINDOWS",92:"SERIES",93:"DOCUMENTS",94:"ACTIVE.CELL",95:"SELECTION",96:"RESULT",97:"ATAN2",98:"ASIN",99:"ACOS",100:"CHOOSE",101:"HLOOKUP",102:"VLOOKUP",103:"LINKS",104:"INPUT",105:"ISREF",106:"GET.FORMULA",107:"GET.NAME",108:"SET.VALUE",109:"LOG",110:"EXEC",111:"CHAR",112:"LOWER",113:"UPPER",114:"PROPER",115:"LEFT",116:"RIGHT",117:"EXACT",118:"TRIM",119:"REPLACE",120:"SUBSTITUTE",121:"CODE",122:"NAMES",123:"DIRECTORY",124:"FIND",125:"CELL",126:"ISERR",127:"ISTEXT",128:"ISNUMBER",129:"ISBLANK",130:"T",131:"N",132:"FOPEN",133:"FCLOSE",134:"FSIZE",135:"FREADLN",136:"FREAD",137:"FWRITELN",138:"FWRITE",139:"FPOS",140:"DATEVALUE",141:"TIMEVALUE",142:"SLN",143:"SYD",144:"DDB",145:"GET.DEF",146:"REFTEXT",147:"TEXTREF",148:"INDIRECT",149:"REGISTER",150:"CALL",151:"ADD.BAR",152:"ADD.MENU",153:"ADD.COMMAND",154:"ENABLE.COMMAND",155:"CHECK.COMMAND",156:"RENAME.COMMAND",157:"SHOW.BAR",158:"DELETE.MENU",159:"DELETE.COMMAND",160:"GET.CHART.ITEM",161:"DIALOG.BOX",162:"CLEAN",163:"MDETERM",164:"MINVERSE",165:"MMULT",166:"FILES",167:"IPMT",168:"PPMT",169:"COUNTA",170:"CANCEL.KEY",171:"FOR",172:"WHILE",173:"BREAK",174:"NEXT",175:"INITIATE",176:"REQUEST",177:"POKE",178:"EXECUTE",179:"TERMINATE",180:"RESTART",181:"HELP",182:"GET.BAR",183:"PRODUCT",184:"FACT",185:"GET.CELL",186:"GET.WORKSPACE",187:"GET.WINDOW",188:"GET.DOCUMENT",189:"DPRODUCT",190:"ISNONTEXT",191:"GET.NOTE",192:"NOTE",193:"STDEVP",194:"VARP",195:"DSTDEVP",196:"DVARP",197:"TRUNC",198:"ISLOGICAL",199:"DCOUNTA",200:"DELETE.BAR",201:"UNREGISTER",204:"USDOLLAR",205:"FINDB",206:"SEARCHB",207:"REPLACEB",208:"LEFTB",209:"RIGHTB",210:"MIDB",211:"LENB",212:"ROUNDUP",213:"ROUNDDOWN",214:"ASC",215:"DBCS",216:"RANK",219:"ADDRESS",220:"DAYS360",221:"TODAY",222:"VDB",223:"ELSE",224:"ELSE.IF",225:"END.IF",226:"FOR.CELL",227:"MEDIAN",228:"SUMPRODUCT",229:"SINH",230:"COSH",231:"TANH",232:"ASINH",233:"ACOSH",234:"ATANH",235:"DGET",236:"CREATE.OBJECT",237:"VOLATILE",238:"LAST.ERROR",239:"CUSTOM.UNDO",240:"CUSTOM.REPEAT",241:"FORMULA.CONVERT",242:"GET.LINK.INFO",243:"TEXT.BOX",244:"INFO",245:"GROUP",246:"GET.OBJECT",247:"DB",248:"PAUSE",251:"RESUME",252:"FREQUENCY",253:"ADD.TOOLBAR",254:"DELETE.TOOLBAR",255:"User",256:"RESET.TOOLBAR",257:"EVALUATE",258:"GET.TOOLBAR",259:"GET.TOOL",260:"SPELLING.CHECK",261:"ERROR.TYPE",262:"APP.TITLE",263:"WINDOW.TITLE",264:"SAVE.TOOLBAR",265:"ENABLE.TOOL",266:"PRESS.TOOL",267:"REGISTER.ID",268:"GET.WORKBOOK",269:"AVEDEV",270:"BETADIST",271:"GAMMALN",272:"BETAINV",273:"BINOMDIST",274:"CHIDIST",275:"CHIINV",276:"COMBIN",277:"CONFIDENCE",278:"CRITBINOM",279:"EVEN",280:"EXPONDIST",281:"FDIST",282:"FINV",283:"FISHER",284:"FISHERINV",285:"FLOOR",286:"GAMMADIST",287:"GAMMAINV",288:"CEILING",289:"HYPGEOMDIST",290:"LOGNORMDIST",291:"LOGINV",292:"NEGBINOMDIST",293:"NORMDIST",294:"NORMSDIST",295:"NORMINV",296:"NORMSINV",297:"STANDARDIZE",298:"ODD",299:"PERMUT",300:"POISSON",301:"TDIST",302:"WEIBULL",303:"SUMXMY2",304:"SUMX2MY2",305:"SUMX2PY2",306:"CHITEST",307:"CORREL",308:"COVAR",309:"FORECAST",310:"FTEST",311:"INTERCEPT",312:"PEARSON",313:"RSQ",314:"STEYX",315:"SLOPE",316:"TTEST",317:"PROB",318:"DEVSQ",319:"GEOMEAN",320:"HARMEAN",321:"SUMSQ",322:"KURT",323:"SKEW",324:"ZTEST",325:"LARGE",326:"SMALL",327:"QUARTILE",328:"PERCENTILE",329:"PERCENTRANK",330:"MODE",331:"TRIMMEAN",332:"TINV",334:"MOVIE.COMMAND",335:"GET.MOVIE",336:"CONCATENATE",337:"POWER",338:"PIVOT.ADD.DATA",339:"GET.PIVOT.TABLE",340:"GET.PIVOT.FIELD",341:"GET.PIVOT.ITEM",342:"RADIANS",343:"DEGREES",344:"SUBTOTAL",345:"SUMIF",346:"COUNTIF",347:"COUNTBLANK",348:"SCENARIO.GET",349:"OPTIONS.LISTS.GET",350:"ISPMT",351:"DATEDIF",352:"DATESTRING",353:"NUMBERSTRING",354:"ROMAN",355:"OPEN.DIALOG",356:"SAVE.DIALOG",357:"VIEW.GET",358:"GETPIVOTDATA",359:"HYPERLINK",360:"PHONETIC",361:"AVERAGEA",362:"MAXA",363:"MINA",364:"STDEVPA",365:"VARPA",366:"STDEVA",367:"VARA",368:"BAHTTEXT",369:"THAIDAYOFWEEK",370:"THAIDIGIT",371:"THAIMONTHOFYEAR",372:"THAINUMSOUND",373:"THAINUMSTRING",374:"THAISTRINGLENGTH",375:"ISTHAIDIGIT",376:"ROUNDBAHTDOWN",377:"ROUNDBAHTUP",378:"THAIYEAR",379:"RTD",380:"CUBEVALUE",381:"CUBEMEMBER",382:"CUBEMEMBERPROPERTY",383:"CUBERANKEDMEMBER",384:"HEX2BIN",385:"HEX2DEC",386:"HEX2OCT",387:"DEC2BIN",388:"DEC2HEX",389:"DEC2OCT",390:"OCT2BIN",391:"OCT2HEX",392:"OCT2DEC",393:"BIN2DEC",394:"BIN2OCT",395:"BIN2HEX",396:"IMSUB",397:"IMDIV",398:"IMPOWER",399:"IMABS",400:"IMSQRT",401:"IMLN",402:"IMLOG2",403:"IMLOG10",404:"IMSIN",405:"IMCOS",406:"IMEXP",407:"IMARGUMENT",408:"IMCONJUGATE",409:"IMAGINARY",410:"IMREAL",411:"COMPLEX",412:"IMSUM",413:"IMPRODUCT",414:"SERIESSUM",415:"FACTDOUBLE",416:"SQRTPI",417:"QUOTIENT",418:"DELTA",419:"GESTEP",420:"ISEVEN",421:"ISODD",422:"MROUND",423:"ERF",424:"ERFC",425:"BESSELJ",426:"BESSELK",427:"BESSELY",428:"BESSELI",429:"XIRR",430:"XNPV",431:"PRICEMAT",432:"YIELDMAT",433:"INTRATE",434:"RECEIVED",435:"DISC",436:"PRICEDISC",437:"YIELDDISC",438:"TBILLEQ",439:"TBILLPRICE",440:"TBILLYIELD",441:"PRICE",442:"YIELD",443:"DOLLARDE",444:"DOLLARFR",445:"NOMINAL",446:"EFFECT",447:"CUMPRINC",448:"CUMIPMT",449:"EDATE",450:"EOMONTH",451:"YEARFRAC",452:"COUPDAYBS",453:"COUPDAYS",454:"COUPDAYSNC",455:"COUPNCD",456:"COUPNUM",457:"COUPPCD",458:"DURATION",459:"MDURATION",460:"ODDLPRICE",461:"ODDLYIELD",462:"ODDFPRICE",463:"ODDFYIELD",464:"RANDBETWEEN",465:"WEEKNUM",466:"AMORDEGRC",467:"AMORLINC",468:"CONVERT",724:"SHEETJS",469:"ACCRINT",470:"ACCRINTM",471:"WORKDAY",472:"NETWORKDAYS",473:"GCD",474:"MULTINOMIAL",475:"LCM",476:"FVSCHEDULE",477:"CUBEKPIMEMBER",478:"CUBESET",479:"CUBESETCOUNT",480:"IFERROR",481:"COUNTIFS",482:"SUMIFS",483:"AVERAGEIF",484:"AVERAGEIFS"},Ble={2:1,3:1,10:0,15:1,16:1,17:1,18:1,19:0,20:1,21:1,22:1,23:1,24:1,25:1,26:1,27:2,30:2,31:3,32:1,33:1,34:0,35:0,38:1,39:2,40:3,41:3,42:3,43:3,44:3,45:3,47:3,48:2,53:1,61:3,63:0,65:3,66:3,67:1,68:1,69:1,70:1,71:1,72:1,73:1,74:0,75:1,76:1,77:1,79:2,80:2,83:1,85:0,86:1,89:0,90:1,94:0,95:0,97:2,98:1,99:1,101:3,102:3,105:1,106:1,108:2,111:1,112:1,113:1,114:1,117:2,118:1,119:4,121:1,126:1,127:1,128:1,129:1,130:1,131:1,133:1,134:1,135:1,136:2,137:2,138:2,140:1,141:1,142:3,143:4,144:4,161:1,162:1,163:1,164:1,165:2,172:1,175:2,176:2,177:3,178:2,179:1,184:1,186:1,189:3,190:1,195:3,196:3,197:1,198:1,199:3,201:1,207:4,210:3,211:1,212:2,213:2,214:1,215:1,225:0,229:1,230:1,231:1,232:1,233:1,234:1,235:3,244:1,247:4,252:2,257:1,261:1,271:1,273:4,274:2,275:2,276:2,277:3,278:3,279:1,280:3,281:3,282:3,283:1,284:1,285:2,286:4,287:3,288:2,289:4,290:3,291:3,292:3,293:4,294:1,295:3,296:1,297:3,298:1,299:2,300:3,301:3,302:4,303:2,304:2,305:2,306:2,307:2,308:2,309:3,310:2,311:2,312:2,313:2,314:2,315:2,316:4,325:2,326:2,327:2,328:2,331:2,332:2,337:2,342:1,343:1,346:2,347:1,350:4,351:3,352:1,353:2,360:1,368:1,369:1,370:1,371:1,372:1,373:1,374:1,375:1,376:1,377:1,378:1,382:3,385:1,392:1,393:1,396:2,397:2,398:2,399:1,400:1,401:1,402:1,403:1,404:1,405:1,406:1,407:1,408:1,409:1,410:1,414:4,415:1,416:1,417:2,420:1,421:1,422:2,424:1,425:2,426:2,427:2,428:2,430:3,438:3,439:3,440:3,443:2,444:2,445:2,446:2,447:6,448:6,449:2,450:2,464:2,468:3,476:2,479:1,480:2,65535:0};function ZV(e){return"of:"==e.slice(0,3)&&(e=e.slice(3)),61==e.charCodeAt(0)&&61==(e=e.slice(1)).charCodeAt(0)&&(e=e.slice(1)),(e=(e=(e=e.replace(/COM\.MICROSOFT\./g,"")).replace(/\[((?:\.[A-Z]+[0-9]+)(?::\.[A-Z]+[0-9]+)?)\]/g,function(n,t){return t.replace(/\./g,"")})).replace(/\[.(#[A-Z]*[?!])\]/g,"$1")).replace(/[;~]/g,",").replace(/\|/g,";")}function TA(e){var n=e.split(":");return[n[0].split(".")[0],n[0].split(".")[1]+(n.length>1?":"+(n[1].split(".")[1]||n[1].split(".")[0]):"")]}var F_={},Up={};function pf(e,n){if(e){var t=[.7,.7,.75,.75,.3,.3];"xlml"==n&&(t=[1,1,1,1,.5,.5]),null==e.left&&(e.left=t[0]),null==e.right&&(e.right=t[1]),null==e.top&&(e.top=t[2]),null==e.bottom&&(e.bottom=t[3]),null==e.header&&(e.header=t[4]),null==e.footer&&(e.footer=t[5])}}function QV(e,n,t,r,i,o){try{r.cellNF&&(e.z=ot[n])}catch(a){if(r.WTF)throw a}if("z"!==e.t||r.cellStyles){if("d"===e.t&&"string"==typeof e.v&&(e.v=qn(e.v)),(!r||!1!==r.cellText)&&"z"!==e.t)try{if(null==ot[n]&&Va(Vte[n]||"General",n),"e"===e.t)e.w=e.w||Vl[e.v];else if(0===n)if("n"===e.t)e.w=(0|e.v)===e.v?e.v.toString(10):d_(e.v);else if("d"===e.t){var s=Pr(e.v);e.w=(0|s)===s?s.toString(10):d_(s)}else{if(void 0===e.v)return"";e.w=Kd(e.v,Up)}else e.w=jo(n,"d"===e.t?Pr(e.v):e.v,Up)}catch(a){if(r.WTF)throw a}if(r.cellStyles&&null!=t)try{e.s=o.Fills[t],e.s.fgColor&&e.s.fgColor.theme&&!e.s.fgColor.rgb&&(e.s.fgColor.rgb=U1(i.themeElements.clrScheme[e.s.fgColor.theme].rgb,e.s.fgColor.tint||0),r.WTF&&(e.s.fgColor.raw_rgb=i.themeElements.clrScheme[e.s.fgColor.theme].rgb)),e.s.bgColor&&e.s.bgColor.theme&&(e.s.bgColor.rgb=U1(i.themeElements.clrScheme[e.s.bgColor.theme].rgb,e.s.bgColor.tint||0),r.WTF&&(e.s.bgColor.raw_rgb=i.themeElements.clrScheme[e.s.bgColor.theme].rgb))}catch(a){if(r.WTF&&o.Fills)throw a}}}var Hle=/<(?:\w:)?mergeCell ref="[A-Z0-9:]+"\s*[\/]?>/g,jle=/<(?:\w+:)?sheetData[^>]*>([\s\S]*)<\/(?:\w+:)?sheetData>/,zle=/<(?:\w:)?hyperlink [^>]*>/gm,$le=/"(\w*:\w*)"/,Wle=/<(?:\w:)?col\b[^>]*[\/]?>/g,Gle=/<(?:\w:)?autoFilter[^>]*([\/]|>([\s\S]*)<\/(?:\w:)?autoFilter)>/g,qle=/<(?:\w:)?pageMargins[^>]*\/>/g,JV=/<(?:\w:)?sheetPr\b(?:[^>a-z][^>]*)?\/>/,Xle=/<(?:\w:)?sheetPr[^>]*(?:[\/]|>([\s\S]*)<\/(?:\w:)?sheetPr)>/,Yle=/<(?:\w:)?sheetViews[^>]*(?:[\/]|>([\s\S]*)<\/(?:\w:)?sheetViews)>/;function SA(e,n,t,r){var i=dt(e);t.Sheets[r]||(t.Sheets[r]={}),i.codeName&&(t.Sheets[r].CodeName=$t(pn(i.codeName)))}var uce=/<(?:\w:)?sheetView(?:[^>a-z][^>]*)?\/?>/,pce=function(){var e=/<(?:\w+:)?c[ \/>]/,n=/<\/(?:\w+:)?row>/,t=/r=["']([^"']*)["']/,r=/<(?:\w+:)?is>([\S\s]*?)<\/(?:\w+:)?is>/,i=/ref=["']([^"']*)["']/,o=m_("v"),s=m_("f");return function(l,u,f,h,m,g){for(var U,A,ee,ie,Ae,v=0,_="",x=[],b=[],w=0,C=0,O=0,z="",q=0,G=0,Y=0,Ie=0,Ue=Array.isArray(g.CellXf),he=[],pe=[],ke=Array.isArray(u),ve=[],Ne={},de=!1,P=!!f.sheetStubs,K=l.split(n),V=0,H=K.length;V!=H;++V){var fe=(_=K[V].trim()).length;if(0!==fe){var Ee=0;e:for(v=0;v":if("/"!=_[v-1]){++v;break e}if(f&&f.cellStyles){if(q=null!=(A=dt(_.slice(Ee,v),!0)).r?parseInt(A.r,10):q+1,G=-1,f.sheetRows&&f.sheetRows=v)break;if(q=null!=(A=dt(_.slice(Ee,v),!0)).r?parseInt(A.r,10):q+1,G=-1,!(f.sheetRows&&f.sheetRowsq-1&&(h.s.r=q-1),h.e.r":"")+_,null!=b&&2===b.length){for(w=0,z=b[1],C=0;C!=z.length&&!((O=z.charCodeAt(C)-64)<1||O>26);++C)w=26*w+O;G=--w}else++G;for(C=0;C!=_.length&&62!==_.charCodeAt(C);++C);if(++C,(A=dt(_.slice(0,C),!0)).r||(A.r=ft({r:q-1,c:G})),U={t:""},null!=(b=(z=_.slice(C)).match(o))&&""!==b[1]&&(U.v=$t(b[1])),f.cellFormula){if(null!=(b=z.match(s))&&""!==b[1]){if(U.f=$t(pn(b[1])).replace(/\r\n/g,"\n"),f.xlfn||(U.f=UV(U.f)),b[0].indexOf('t="array"')>-1)U.F=(z.match(i)||[])[1],U.F.indexOf(":")>-1&&he.push([Nt(U.F),U.F]);else if(b[0].indexOf('t="shared"')>-1){ie=dt(b[0]);var we=$t(pn(b[1]));f.xlfn||(we=UV(we)),pe[parseInt(ie.si,10)]=[ie,we,A.r]}}else(b=z.match(/]*\/>/))&&pe[(ie=dt(b[0])).si]&&(U.f=fae(pe[ie.si][1],pe[ie.si][2],A.r));var _e=Xn(A.r);for(C=0;C=he[C][0].s.r&&_e.r<=he[C][0].e.r&&_e.c>=he[C][0].s.c&&_e.c<=he[C][0].e.c&&(U.F=he[C][1])}if(null==A.t&&void 0===U.v)if(U.f||U.F)U.v=0,U.t="n";else{if(!P)continue;U.t="z"}else U.t=A.t||"n";switch(h.s.c>G&&(h.s.c=G),h.e.c"u"){if(!P)continue;U.t="z"}else ee=F_[parseInt(U.v,10)],U.v=ee.t,U.r=ee.r,f.cellHTML&&(U.h=ee.h);break;case"str":U.t="s",U.v=null!=U.v?pn(U.v):"",f.cellHTML&&(U.h=BI(U.v));break;case"inlineStr":b=z.match(r),U.t="s",null!=b&&(ee=mA(b[1]))?(U.v=ee.t,f.cellHTML&&(U.h=ee.h)):U.v="";break;case"b":U.v=On(U.v);break;case"d":f.cellDates?U.v=qn(U.v,1):(U.v=Pr(qn(U.v,1)),U.t="n");break;case"e":(!f||!1!==f.cellText)&&(U.w=U.v),U.v=R8[U.v]}if(Y=Ie=0,Ae=null,Ue&&void 0!==A.s&&null!=(Ae=g.CellXf[A.s])&&(null!=Ae.numFmtId&&(Y=Ae.numFmtId),f.cellStyles&&null!=Ae.fillId&&(Ie=Ae.fillId)),QV(U,Y,Ie,f,m,g),f.cellDates&&Ue&&"n"==U.t&&Zd(ot[Y])&&(U.t="d",U.v=D1(U.v)),A.cm&&f.xlmeta){var pt=(f.xlmeta.Cell||[])[+A.cm-1];pt&&"XLDAPR"==pt.type&&(U.D=!0)}if(ke){var B=Xn(A.r);u[B.r]||(u[B.r]=[]),u[B.r][B.c]=U}else u[A.r]=U}}}}ve.length>0&&(u["!rows"]=ve)}}(),yce=rf;function t6(e){return[tf(e),Si(e),"n"]}var nue=rf,n6=["left","right","top","bottom","header","footer"];var IA=[["allowRefreshQuery",!1,"bool"],["autoCompressPictures",!0,"bool"],["backupFile",!1,"bool"],["checkCompatibility",!1,"bool"],["CodeName",""],["date1904",!1,"bool"],["defaultThemeVersion",0,"int"],["filterPrivacy",!1,"bool"],["hidePivotFieldList",!1,"bool"],["promptedSolutions",!1,"bool"],["publishItems",!1,"bool"],["refreshAllConnections",!1,"bool"],["saveExternalLinkValues",!0,"bool"],["showBorderUnselectedTables",!0,"bool"],["showInkAnnotation",!0,"bool"],["showObjects","all"],["showPivotChartFilter",!1,"bool"],["updateLinks","userSet"]],Bue=[["activeTab",0,"int"],["autoFilterDateGrouping",!0,"bool"],["firstSheet",0,"int"],["minimized",!1,"bool"],["showHorizontalScroll",!0,"bool"],["showSheetTabs",!0,"bool"],["showVerticalScroll",!0,"bool"],["tabRatio",600,"int"],["visibility","visible"]],Vue=[],Uue=[["calcCompleted","true"],["calcMode","auto"],["calcOnSave","true"],["concurrentCalc","true"],["fullCalcOnLoad","false"],["fullPrecision","true"],["iterate","false"],["iterateCount","100"],["iterateDelta","0.001"],["refMode","A1"]];function r6(e,n){for(var t=0;t!=e.length;++t)for(var r=e[t],i=0;i!=n.length;++i){var o=n[i];if(null==r[o[0]])r[o[0]]=o[1];else switch(o[2]){case"bool":"string"==typeof r[o[0]]&&(r[o[0]]=On(r[o[0]]));break;case"int":"string"==typeof r[o[0]]&&(r[o[0]]=parseInt(r[o[0]],10))}}}function i6(e,n){for(var t=0;t!=n.length;++t){var r=n[t];if(null==e[r[0]])e[r[0]]=r[1];else switch(r[2]){case"bool":"string"==typeof e[r[0]]&&(e[r[0]]=On(e[r[0]]));break;case"int":"string"==typeof e[r[0]]&&(e[r[0]]=parseInt(e[r[0]],10))}}}function o6(e){i6(e.WBProps,IA),i6(e.CalcPr,Uue),r6(e.WBView,Bue),r6(e.Sheets,Vue),Up.date1904=On(e.WBProps.date1904)}var jue="][*?/\\".split("");var $ue=/<\w+:workbook/;function Kue(e,n){var t={};return e.read_shift(4),t.ArchID=e.read_shift(4),e.l+=n-8,t}function ode(e,n,t,r,i,o,s,a){return".bin"===n.slice(-4)?function yue(e,n,t,r,i,o,s){if(!e)return e;var a=n||{};r||(r={"!id":{}}),null!=Qn&&null==a.dense&&(a.dense=Qn);var u,v,_,x,b,w,C,O,z,U,l=a.dense?[]:{},f={s:{r:2e6,c:2e6},e:{r:0,c:0}},h=[],m=!1,g=!1,A=[];a.biff=12,a["!row"]=0;var q=0,G=!1,ee=[],ie={},Y=a.supbooks||i.supbooks||[[]];if(Y.sharedf=ie,Y.arrayf=ee,Y.SheetNames=i.SheetNames||i.Sheets.map(function(Ne){return Ne.name}),!a.supbooks&&(a.supbooks=Y,i.Names))for(var Ie=0;Ie=V[0].s.r&&v.r<=V[0].e.r&&w>=V[0].s.c&&w<=V[0].e.c&&(_.F=wt(V[0]),G=!0)}!G&&de.length>3&&(_.f=de[3])}if(f.s.r>v.r&&(f.s.r=v.r),f.s.c>w&&(f.s.c=w),f.e.rv.r&&(f.s.r=v.r),f.s.c>w&&(f.s.c=w),f.e.r=de.s;)Ue[de.e--]={width:de.w/256,hidden:!!(1&de.flags),level:de.level},he||(he=!0,vA(de.w/256)),hf(Ue[de.e+1]);break;case 161:l["!autofilter"]={ref:wt(de)};break;case 476:l["!margins"]=de;break;case 147:i.Sheets[t]||(i.Sheets[t]={}),de.name&&(i.Sheets[t].CodeName=de.name),(de.above||de.left)&&(l["!outline"]={above:de.above,left:de.left});break;case 137:i.Views||(i.Views=[{}]),i.Views[0]||(i.Views[0]={}),de.RTL&&(i.Views[0].RTL=!0);break;case 485:case 64:case 1053:case 151:case 152:case 175:case 644:case 625:case 562:case 396:case 1112:case 1146:case 471:case 1050:case 649:case 1105:case 589:case 607:case 564:case 1055:case 168:case 174:case 1180:case 499:case 507:case 550:case 171:case 167:case 1177:case 169:case 1181:case 551:case 552:case 661:case 639:case 478:case 537:case 477:case 536:case 1103:case 680:case 1104:case 1024:case 663:case 535:case 678:case 504:case 1043:case 428:case 170:case 3072:case 50:case 2070:case 1045:break;case 35:m=!0;break;case 36:m=!1;break;case 37:h.push(K),m=!0;break;case 38:h.pop(),m=!1;break;default:if(!P.T&&(!m||a.WTF))throw new Error("Unexpected record 0x"+K.toString(16))}},a),delete a.supbooks,delete a["!row"],!l["!ref"]&&(f.s.r<2e6||u&&(u.e.r>0||u.e.c>0||u.s.r>0||u.s.c>0))&&(l["!ref"]=wt(u||f)),a.sheetRows&&l["!ref"]){var ve=Nt(l["!ref"]);a.sheetRows<=+ve.e.r&&(ve.e.r=a.sheetRows-1,ve.e.r>f.e.r&&(ve.e.r=f.e.r),ve.e.rf.e.c&&(ve.e.c=f.e.c),ve.e.c0&&(l["!merges"]=A),Ue.length>0&&(l["!cols"]=Ue),Ae.length>0&&(l["!rows"]=Ae),l}(e,r,t,i,o,s,a):function Kle(e,n,t,r,i,o,s){if(!e)return e;r||(r={"!id":{}}),null!=Qn&&null==n.dense&&(n.dense=Qn);var a=n.dense?[]:{},l={s:{r:2e6,c:2e6},e:{r:0,c:0}},u="",f="",h=e.match(jle);h?(u=e.slice(0,h.index),f=e.slice(h.index+h[0].length)):u=f=e;var m=u.match(JV);m?SA(m[0],0,i,t):(m=u.match(Xle))&&function Qle(e,n,t,r,i){SA(e.slice(0,e.indexOf(">")),0,r,i)}(m[0],0,0,i,t);var g=(u.match(/<(?:\w*:)?dimension/)||{index:-1}).index;if(g>0){var v=u.slice(g,g+50).match($le);v&&function Ule(e,n){var t=Nt(n);t.s.r<=t.e.r&&t.s.c<=t.e.c&&t.s.r>=0&&t.s.c>=0&&(e["!ref"]=wt(t))}(a,v[1])}var _=u.match(Yle);_&&_[1]&&function dce(e,n){n.Views||(n.Views=[{}]),(e.match(uce)||[]).forEach(function(t,r){var i=dt(t);n.Views[r]||(n.Views[r]={}),+i.zoomScale&&(n.Views[r].zoom=+i.zoomScale),On(i.rightToLeft)&&(n.Views[r].RTL=!0)})}(_[1],i);var x=[];if(n.cellStyles){var b=u.match(Wle);b&&function sce(e,n){for(var t=!1,r=0;r!=n.length;++r){var i=dt(n[r],!0);i.hidden&&(i.hidden=On(i.hidden));var o=parseInt(i.min,10)-1,s=parseInt(i.max,10)-1;for(i.outlineLevel&&(i.level=+i.outlineLevel||0),delete i.min,delete i.max,i.width=+i.width,!t&&i.width&&(t=!0,vA(i.width)),hf(i);o<=s;)e[o++]=wn(i)}}(x,b)}h&&pce(h[1],a,n,l,o,s);var w=f.match(Gle);w&&(a["!autofilter"]=function lce(e){return{ref:(e.match(/ref="([^"]*)"/)||[])[1]}}(w[0]));var C=[],O=f.match(Hle);if(O)for(g=0;g!=O.length;++g)C[g]=Nt(O[g].slice(O[g].indexOf('"')+1));var z=f.match(zle);z&&function rce(e,n,t){for(var r=Array.isArray(e),i=0;i!=n.length;++i){var o=dt(pn(n[i]),!0);if(!o.ref)return;var s=((t||{})["!id"]||[])[o.id];s?(o.Target=s.Target,o.location&&(o.Target+="#"+$t(o.location))):(o.Target="#"+$t(o.location),s={Target:o.Target,TargetMode:"Internal"}),o.Rel=s,o.tooltip&&(o.Tooltip=o.tooltip,delete o.tooltip);for(var a=Nt(o.ref),l=a.s.r;l<=a.e.r;++l)for(var u=a.s.c;u<=a.e.c;++u){var f=ft({c:u,r:l});r?(e[l]||(e[l]=[]),e[l][u]||(e[l][u]={t:"z",v:void 0}),e[l][u].l=o):(e[f]||(e[f]={t:"z",v:void 0}),e[f].l=o)}}}(a,z,r);var U=f.match(qle);if(U&&(a["!margins"]=function ice(e){var n={};return["left","right","top","bottom","header","footer"].forEach(function(t){e[t]&&(n[t]=parseFloat(e[t]))}),n}(dt(U[0]))),!a["!ref"]&&l.e.c>=l.s.c&&l.e.r>=l.s.r&&(a["!ref"]=wt(l)),n.sheetRows>0&&a["!ref"]){var A=Nt(a["!ref"]);n.sheetRows<=+A.e.r&&(A.e.r=n.sheetRows-1,A.e.r>l.e.r&&(A.e.r=l.e.r),A.e.rl.e.c&&(A.e.c=l.e.c),A.e.c0&&(a["!cols"]=x),C.length>0&&(a["!merges"]=C),a}(e,r,t,i,o,s,a)}var O_,c6=/([\w:]+)=((?:")([^"]*)(?:")|(?:')([^']*)(?:'))/g,u6=/([\w:]+)=((?:")(?:[^"]*)(?:")|(?:')(?:[^']*)(?:'))/;function pa(e,n){var t=e.split(/\s+/),r=[];if(n||(r[0]=t[0]),1===t.length)return r;var o,s,l,i=e.match(c6);if(i)for(l=0;l!=i.length;++l)-1===(s=(o=i[l].match(u6))[1].indexOf(":"))?r[o[1]]=o[2].slice(1,o[2].length-1):r["xmlns:"===o[1].slice(0,6)?"xmlns"+o[1].slice(6):o[1].slice(s+1)]=o[2].slice(1,o[2].length-1);return r}function wde(e){var t={};if(1===e.split(/\s+/).length)return t;var i,o,a,r=e.match(c6);if(r)for(a=0;a!=r.length;++a)-1===(o=(i=r[a].match(u6))[1].indexOf(":"))?t[i[1]]=i[2].slice(1,i[2].length-1):t["xmlns:"===i[1].slice(0,6)?"xmlns"+i[1].slice(6):i[1].slice(o+1)]=i[2].slice(1,i[2].length-1);return t}function Cde(e,n,t,r){var i=r;switch((t[0].match(/dt:dt="([\w.]+)"/)||["",""])[1]){case"boolean":i=On(r);break;case"i2":case"int":i=parseInt(r,10);break;case"r4":case"float":i=parseFloat(r);break;case"date":case"dateTime.tz":i=qn(r);break;case"i8":case"string":case"fixed":case"uuid":case"bin.base64":break;default:throw new Error("bad custprop:"+t[0])}e[$t(n)]=i}function Dde(e,n,t){if(t.cellStyles&&n.Interior){var r=n.Interior;r.Pattern&&(r.patternType=Voe[r.Pattern]||r.Pattern)}e[n.ID]=n}function Sde(e,n,t,r,i,o,s,a,l,u){var f="General",h=r.StyleID,m={};u=u||{};var g=[],v=0;for(void 0===h&&a&&(h=a.StyleID),void 0===h&&s&&(h=s.StyleID);void 0!==o[h]&&(o[h].nf&&(f=o[h].nf),o[h].Interior&&g.push(o[h].Interior),o[h].Parent);)h=o[h].Parent;switch(t.Type){case"Boolean":r.t="b",r.v=On(e);break;case"String":r.t="s",r.r=n8($t(e)),r.v=e.indexOf("<")>-1?$t(n||e).replace(/<.*?>/g,""):r.r;break;case"DateTime":"Z"!=e.slice(-1)&&(e+="Z"),r.v=(qn(e)-new Date(Date.UTC(1899,11,30)))/864e5,r.v!=r.v?r.v=$t(e):r.v<60&&(r.v=r.v-1),(!f||"General"==f)&&(f="yyyy-mm-dd");case"Number":void 0===r.v&&(r.v=+e),r.t||(r.t="n");break;case"Error":r.t="e",r.v=R8[e],!1!==u.cellText&&(r.w=e);break;default:""==e&&""==n?r.t="z":(r.t="s",r.v=n8(n||e))}if(function Tde(e,n,t){if("z"!==e.t){if(!t||!1!==t.cellText)try{e.w="e"===e.t?e.w||Vl[e.v]:"General"===n?"n"===e.t?(0|e.v)===e.v?e.v.toString(10):d_(e.v):Kd(e.v):function Ede(e,n){var t=O_[e]||$t(e);return"General"===t?Kd(n):jo(t,n)}(n||"General",e.v)}catch(o){if(t.WTF)throw o}try{var r=O_[n]||n||"General";if(t.cellNF&&(e.z=r),t.cellDates&&"n"==e.t&&Zd(r)){var i=iu(e.v);i&&(e.t="d",e.v=new Date(i.y,i.m-1,i.d,i.H,i.M,i.S,i.u))}}catch(o){if(t.WTF)throw o}}}(r,f,u),!1!==u.cellFormula)if(r.Formula){var _=$t(r.Formula);61==_.charCodeAt(0)&&(_=_.slice(1)),r.f=Vp(_,i),delete r.Formula,"RC"==r.ArrayRange?r.F=Vp("RC:RC",i):r.ArrayRange&&(r.F=Vp(r.ArrayRange,i),l.push([Nt(r.F),r.F]))}else for(v=0;v=l[v][0].s.r&&i.r<=l[v][0].e.r&&i.c>=l[v][0].s.c&&i.c<=l[v][0].e.c&&(r.F=l[v][1]);u.cellStyles&&(g.forEach(function(x){!m.patternType&&x.patternType&&(m.patternType=x.patternType)}),r.s=m),void 0!==r.StyleID&&(r.ixfe=r.StyleID)}function Ide(e){e.t=e.v||"",e.t=e.t.replace(/\r\n/g,"\n").replace(/\r/g,"\n"),e.v=e.w=e.ixfe=void 0}function AA(e,n){var t=n||{};kp();var r=Sp(HI(e));("binary"==t.type||"array"==t.type||"base64"==t.type)&&(r=typeof jt<"u"?jt.utils.decode(65001,y1(r)):pn(r));var i=r.slice(0,1024).toLowerCase(),o=!1;if((1023&(i=i.replace(/".*?"/g,"")).indexOf(">"))>Math.min(1023&i.indexOf(","),1023&i.indexOf(";"))){var s=wn(t);return s.type="string",Pp.to_workbook(r,s)}if(-1==i.indexOf("=0&&(o=!0)}),o)return function ufe(e,n){var t=e.match(/[\s\S]*?<\/table>/gi);if(!t||0==t.length)throw new Error("Invalid HTML: could not find ");if(1==t.length)return lu(p6(t[0],n),n);var r={SheetNames:[],Sheets:{}};return t.forEach(function(i,o){WA(r,p6(i,n),"Sheet"+(o+1))}),r}(r,t);O_={"General Number":"General","General Date":ot[22],"Long Date":"dddd, mmmm dd, yyyy","Medium Date":ot[15],"Short Date":ot[14],"Long Time":ot[19],"Medium Time":ot[18],"Short Time":ot[20],Currency:'"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',Fixed:ot[2],Standard:ot[4],Percent:ot[10],Scientific:ot[11],"Yes/No":'"Yes";"Yes";"No";@',"True/False":'"True";"True";"False";@',"On/Off":'"Yes";"Yes";"No";@'};var a,u,l=[];null!=Qn&&null==t.dense&&(t.dense=Qn);var pe,f={},h=[],m=t.dense?[]:{},g="",v={},_={},x=pa(''),b=0,w=0,C=0,O={s:{r:2e6,c:2e6},e:{r:0,c:0}},z={},U={},A="",q=0,G=[],ee={},ie={},Y=0,Ie=[],Ue=[],Ae={},he=[],ke=!1,ve=[],Ne=[],de={},P=0,K=0,V={Sheets:[],WBProps:{date1904:!1}},H={};g_.lastIndex=0,r=r.replace(//gm,"");for(var fe="";a=g_.exec(r);)switch(a[3]=(fe=a[3]).toLowerCase()){case"data":if("data"==fe){if("/"===a[1]){if((u=l.pop())[0]!==a[3])throw new Error("Bad state: "+u.join("|"))}else"/"!==a[0].charAt(a[0].length-2)&&l.push([a[3],!0]);break}if(l[l.length-1][1])break;"/"===a[1]?Sde(r.slice(b,a.index),A,x,"comment"==l[l.length-1][0]?Ae:v,{c:w,r:C},z,he[w],_,ve,t):(A="",x=pa(a[0]),b=a.index+a[0].length);break;case"cell":if("/"===a[1])if(Ue.length>0&&(v.c=Ue),(!t.sheetRows||t.sheetRows>C)&&void 0!==v.v&&(t.dense?(m[C]||(m[C]=[]),m[C][w]=v):m[Nn(w)+tr(C)]=v),v.HRef&&(v.l={Target:$t(v.HRef)},v.HRefScreenTip&&(v.l.Tooltip=v.HRefScreenTip),delete v.HRef,delete v.HRefScreenTip),(v.MergeAcross||v.MergeDown)&&(P=w+(0|parseInt(v.MergeAcross,10)),K=C+(0|parseInt(v.MergeDown,10)),G.push({s:{c:w,r:C},e:{c:P,r:K}})),t.sheetStubs)if(v.MergeAcross||v.MergeDown){for(var Ee=w;Ee<=P;++Ee)for(var Ce=C;Ce<=K;++Ce)(Ee>w||Ce>C)&&(t.dense?(m[Ce]||(m[Ce]=[]),m[Ce][Ee]={t:"z"}):m[Nn(Ee)+tr(Ce)]={t:"z"});w=P+1}else++w;else v.MergeAcross?w=P+1:++w;else(v=wde(a[0])).Index&&(w=+v.Index-1),wO.e.c&&(O.e.c=w),"/>"===a[0].slice(-2)&&++w,Ue=[];break;case"row":"/"===a[1]||"/>"===a[0].slice(-2)?(CO.e.r&&(O.e.r=C),"/>"===a[0].slice(-2)&&(_=pa(a[0])).Index&&(C=+_.Index-1),w=0,++C):((_=pa(a[0])).Index&&(C=+_.Index-1),de={},("0"==_.AutoFitHeight||_.Height)&&(de.hpx=parseInt(_.Height,10),de.hpt=S_(de.hpx),Ne[C]=de),"1"==_.Hidden&&(de.hidden=!0,Ne[C]=de));break;case"worksheet":if("/"===a[1]){if((u=l.pop())[0]!==a[3])throw new Error("Bad state: "+u.join("|"));h.push(g),O.s.r<=O.e.r&&O.s.c<=O.e.c&&(m["!ref"]=wt(O),t.sheetRows&&t.sheetRows<=O.e.r&&(m["!fullref"]=m["!ref"],O.e.r=t.sheetRows-1,m["!ref"]=wt(O))),G.length&&(m["!merges"]=G),he.length>0&&(m["!cols"]=he),Ne.length>0&&(m["!rows"]=Ne),f[g]=m}else O={s:{r:2e6,c:2e6},e:{r:0,c:0}},C=w=0,l.push([a[3],!1]),u=pa(a[0]),g=$t(u.Name),m=t.dense?[]:{},G=[],ve=[],Ne=[],V.Sheets.push(H={name:g,Hidden:0});break;case"table":if("/"===a[1]){if((u=l.pop())[0]!==a[3])throw new Error("Bad state: "+u.join("|"))}else{if("/>"==a[0].slice(-2))break;l.push([a[3],!1]),he=[],ke=!1}break;case"style":"/"===a[1]?Dde(z,U,t):U=pa(a[0]);break;case"numberformat":U.nf=$t(pa(a[0]).Format||"General"),O_[U.nf]&&(U.nf=O_[U.nf]);for(var we=0;392!=we&&ot[we]!=U.nf;++we);if(392==we)for(we=57;392!=we;++we)if(null==ot[we]){Va(U.nf,we);break}break;case"column":if("table"!==l[l.length-1][0])break;if((pe=pa(a[0])).Hidden&&(pe.hidden=!0,delete pe.Hidden),pe.Width&&(pe.wpx=parseInt(pe.Width,10)),!ke&&pe.wpx>10){ke=!0,Ai=IV;for(var _e=0;_e0&&(cn.Sheet=V.Sheets.length-1),V.Names.push(cn);break;case"namedcell":case"b":case"i":case"u":case"s":case"em":case"h2":case"h3":case"sub":case"sup":case"span":case"alignment":case"borders":case"border":case"protection":case"paragraphs":case"name":case"pixelsperinch":case"null":break;case"font":if("/>"===a[0].slice(-2))break;"/"===a[1]?A+=r.slice(q,a.index):q=a.index+a[0].length;break;case"interior":if(!t.cellStyles)break;U.Interior=pa(a[0]);break;case"author":case"title":case"description":case"created":case"keywords":case"subject":case"category":case"company":case"lastauthor":case"lastsaved":case"lastprinted":case"version":case"revision":case"totaltime":case"hyperlinkbase":case"manager":case"contentstatus":case"identifier":case"language":case"appname":if("/>"===a[0].slice(-2))break;"/"===a[1]?Jne(ee,fe,r.slice(Y,a.index)):Y=a.index+a[0].length;break;case"styles":case"workbook":if("/"===a[1]){if((u=l.pop())[0]!==a[3])throw new Error("Bad state: "+u.join("|"))}else l.push([a[3],!1]);break;case"comment":if("/"===a[1]){if((u=l.pop())[0]!==a[3])throw new Error("Bad state: "+u.join("|"));Ide(Ae),Ue.push(Ae)}else l.push([a[3],!1]),Ae={a:(u=pa(a[0])).Author};break;case"autofilter":if("/"===a[1]){if((u=l.pop())[0]!==a[3])throw new Error("Bad state: "+u.join("|"))}else if("/"!==a[0].charAt(a[0].length-2)){var Mt=pa(a[0]);m["!autofilter"]={ref:Vp(Mt.Range).replace(/\$/g,"")},l.push([a[3],!0])}break;case"datavalidation":if("/"===a[1]){if((u=l.pop())[0]!==a[3])throw new Error("Bad state: "+u.join("|"))}else"/"!==a[0].charAt(a[0].length-2)&&l.push([a[3],!0]);break;case"componentoptions":case"documentproperties":case"customdocumentproperties":case"officedocumentsettings":case"pivottable":case"pivotcache":case"names":case"mapinfo":case"pagebreaks":case"querytable":case"sorting":case"schema":case"conditionalformatting":case"smarttagtype":case"smarttags":case"excelworkbook":case"workbookoptions":case"worksheetoptions":if("/"===a[1]){if((u=l.pop())[0]!==a[3])throw new Error("Bad state: "+u.join("|"))}else"/"!==a[0].charAt(a[0].length-2)&&l.push([a[3],!0]);break;default:if(0==l.length&&"document"==a[3]||0==l.length&&"uof"==a[3])return D6(r,t);var un=!0;switch(l[l.length-1][0]){case"officedocumentsettings":switch(a[3]){case"allowpng":case"removepersonalinformation":case"downloadcomponents":case"locationofcomponents":case"colors":case"color":case"index":case"rgb":case"targetscreensize":case"readonlyrecommended":break;default:un=!1}break;case"componentoptions":switch(a[3]){case"toolbar":case"hideofficelogo":case"spreadsheetautofit":case"label":case"caption":case"maxheight":case"maxwidth":case"nextsheetnumber":break;default:un=!1}break;case"excelworkbook":switch(a[3]){case"date1904":V.WBProps.date1904=!0;break;case"windowheight":case"windowwidth":case"windowtopx":case"windowtopy":case"tabratio":case"protectstructure":case"protectwindow":case"protectwindows":case"activesheet":case"displayinknotes":case"firstvisiblesheet":case"supbook":case"sheetname":case"sheetindex":case"sheetindexfirst":case"sheetindexlast":case"dll":case"acceptlabelsinformulas":case"donotsavelinkvalues":case"iteration":case"maxiterations":case"maxchange":case"path":case"xct":case"count":case"selectedsheets":case"calculation":case"uncalced":case"startupprompt":case"crn":case"externname":case"formula":case"colfirst":case"collast":case"wantadvise":case"boolean":case"error":case"text":case"ole":case"noautorecover":case"publishobjects":case"donotcalculatebeforesave":case"number":case"refmoder1c1":case"embedsavesmarttags":break;default:un=!1}break;case"workbookoptions":switch(a[3]){case"owcversion":case"height":case"width":break;default:un=!1}break;case"worksheetoptions":switch(a[3]){case"visible":if("/>"!==a[0].slice(-2))if("/"===a[1])switch(r.slice(Y,a.index)){case"SheetHidden":H.Hidden=1;break;case"SheetVeryHidden":H.Hidden=2}else Y=a.index+a[0].length;break;case"header":m["!margins"]||pf(m["!margins"]={},"xlml"),isNaN(+dt(a[0]).Margin)||(m["!margins"].header=+dt(a[0]).Margin);break;case"footer":m["!margins"]||pf(m["!margins"]={},"xlml"),isNaN(+dt(a[0]).Margin)||(m["!margins"].footer=+dt(a[0]).Margin);break;case"pagemargins":var Ft=dt(a[0]);m["!margins"]||pf(m["!margins"]={},"xlml"),isNaN(+Ft.Top)||(m["!margins"].top=+Ft.Top),isNaN(+Ft.Left)||(m["!margins"].left=+Ft.Left),isNaN(+Ft.Right)||(m["!margins"].right=+Ft.Right),isNaN(+Ft.Bottom)||(m["!margins"].bottom=+Ft.Bottom);break;case"displayrighttoleft":V.Views||(V.Views=[]),V.Views[0]||(V.Views[0]={}),V.Views[0].RTL=!0;break;case"freezepanes":case"frozennosplit":case"splithorizontal":case"splitvertical":case"donotdisplaygridlines":case"activerow":case"activecol":case"toprowbottompane":case"leftcolumnrightpane":case"unsynced":case"print":case"printerrors":case"panes":case"scale":case"pane":case"number":case"layout":case"pagesetup":case"selected":case"protectobjects":case"enableselection":case"protectscenarios":case"validprinterinfo":case"horizontalresolution":case"verticalresolution":case"numberofcopies":case"activepane":case"toprowvisible":case"leftcolumnvisible":case"fittopage":case"rangeselection":case"papersizeindex":case"pagelayoutzoom":case"pagebreakzoom":case"filteron":case"fitwidth":case"fitheight":case"commentslayout":case"zoom":case"lefttoright":case"gridlines":case"allowsort":case"allowfilter":case"allowinsertrows":case"allowdeleterows":case"allowinsertcols":case"allowdeletecols":case"allowinserthyperlinks":case"allowformatcells":case"allowsizecols":case"allowsizerows":case"tabcolorindex":case"donotdisplayheadings":case"showpagelayoutzoom":case"blackandwhite":case"donotdisplayzeros":case"displaypagebreak":case"rowcolheadings":case"donotdisplayoutline":case"noorientation":case"allowusepivottables":case"zeroheight":case"viewablerange":case"selection":case"protectcontents":break;case"nosummaryrowsbelowdetail":m["!outline"]||(m["!outline"]={}),m["!outline"].above=!0;break;case"nosummarycolumnsrightdetail":m["!outline"]||(m["!outline"]={}),m["!outline"].left=!0;break;default:un=!1}break;case"pivottable":case"pivotcache":switch(a[3]){case"immediateitemsondrop":case"showpagemultipleitemlabel":case"compactrowindent":case"location":case"pivotfield":case"orientation":case"layoutform":case"layoutsubtotallocation":case"layoutcompactrow":case"position":case"pivotitem":case"datatype":case"datafield":case"sourcename":case"parentfield":case"ptlineitems":case"ptlineitem":case"countofsameitems":case"item":case"itemtype":case"ptsource":case"cacheindex":case"consolidationreference":case"filename":case"reference":case"nocolumngrand":case"norowgrand":case"blanklineafteritems":case"hidden":case"subtotal":case"basefield":case"mapchilditems":case"function":case"refreshonfileopen":case"printsettitles":case"mergelabels":case"defaultversion":case"refreshname":case"refreshdate":case"refreshdatecopy":case"versionlastrefresh":case"versionlastupdate":case"versionupdateablemin":case"versionrefreshablemin":case"calculation":break;default:un=!1}break;case"pagebreaks":switch(a[3]){case"colbreaks":case"colbreak":case"rowbreaks":case"rowbreak":case"colstart":case"colend":case"rowend":break;default:un=!1}break;case"autofilter":switch(a[3]){case"autofiltercolumn":case"autofiltercondition":case"autofilterand":case"autofilteror":break;default:un=!1}break;case"querytable":switch(a[3]){case"id":case"autoformatfont":case"autoformatpattern":case"querysource":case"querytype":case"enableredirections":case"refreshedinxl9":case"urlstring":case"htmltables":case"connection":case"commandtext":case"refreshinfo":case"notitles":case"nextid":case"columninfo":case"overwritecells":case"donotpromptforfile":case"textwizardsettings":case"source":case"number":case"decimal":case"thousandseparator":case"trailingminusnumbers":case"formatsettings":case"fieldtype":case"delimiters":case"tab":case"comma":case"autoformatname":case"versionlastedit":case"versionlastrefresh":break;default:un=!1}break;case"datavalidation":switch(a[3]){case"range":case"type":case"min":case"max":case"sort":case"descending":case"order":case"casesensitive":case"value":case"errorstyle":case"errormessage":case"errortitle":case"inputmessage":case"inputtitle":case"combohide":case"inputhide":case"condition":case"qualifier":case"useblank":case"value1":case"value2":case"format":case"cellrangelist":break;default:un=!1}break;case"sorting":case"conditionalformatting":switch(a[3]){case"range":case"type":case"min":case"max":case"sort":case"descending":case"order":case"casesensitive":case"value":case"errorstyle":case"errormessage":case"errortitle":case"cellrangelist":case"inputmessage":case"inputtitle":case"combohide":case"inputhide":case"condition":case"qualifier":case"useblank":case"value1":case"value2":case"format":break;default:un=!1}break;case"mapinfo":case"schema":case"data":switch(a[3]){case"map":case"entry":case"range":case"xpath":case"field":case"xsdtype":case"filteron":case"aggregate":case"elementtype":case"attributetype":case"schema":case"element":case"complextype":case"datatype":case"all":case"attribute":case"extends":case"row":break;default:un=!1}break;case"smarttags":break;default:un=!1}if(un||a[3].match(/!\[CDATA/))break;if(!l[l.length-1][1])throw"Unrecognized tag: "+a[3]+"|"+l.join("|");if("customdocumentproperties"===l[l.length-1][0]){if("/>"===a[0].slice(-2))break;"/"===a[1]?Cde(ie,fe,Ie,r.slice(Y,a.index)):(Ie=a,Y=a.index+a[0].length);break}if(t.WTF)throw"Unrecognized tag: "+a[3]+"|"+l.join("|")}var Ve={};return!t.bookSheets&&!t.bookProps&&(Ve.Sheets=f),Ve.SheetNames=h,Ve.Workbook=V,Ve.SSF=wn(ot),Ve.Props=ee,Ve.Custprops=ie,Ve}function kA(e,n){switch(LA(n=n||{}),n.type||"base64"){case"base64":return AA(Uo(e),n);case"binary":case"buffer":case"file":return AA(e,n);case"array":return AA(ru(e),n)}}var jde=[60,1084,2066,2165,2175];function zde(e,n,t,r,i){var o=r,s=[],a=t.slice(t.l,t.l+o);if(i&&i.enc&&i.enc.insitu&&a.length>0)switch(e){case 9:case 521:case 1033:case 2057:case 47:case 405:case 225:case 406:case 312:case 404:case 10:case 133:break;default:i.enc.insitu(a)}s.push(a),t.l+=o;for(var l=Ll(t,t.l),u=MA[l],f=0;null!=u&&jde.indexOf(l)>-1;)o=Ll(t,t.l+2),f=t.l+4,2066==l?f+=4:(2165==l||2175==l)&&(f+=12),a=t.slice(f,t.l+4+o),s.push(a),t.l+=4+o,u=MA[l=Ll(t,t.l)];var h=qr(s);ai(h,0);var m=0;h.lens=[];for(var g=0;g40||(t.l-=4,n.Reserved1=t.read_shift(0,"lpstr-ansi"),t.length-t.l<=4)||1907505652!==(r=t.read_shift(4))||(n.UnicodeClipboardFormat=function Rne(e){return A8(e,2)}(t),0==(r=t.read_shift(4))||r>40))return n;t.l-=4,n.Reserved2=t.read_shift(0,"lpwstr")}(t),n.bookProps&&!n.bookSheets)i={};else{var s=It?"buffer":"array";if(r&&r.content)i=function $de(e,n){var t={opts:{}},r={};null!=Qn&&null==n.dense&&(n.dense=Qn);var h,g,_,x,C,O,i=n.dense?[]:{},o={},s={},a=null,l=[],u="",f={},m="",b={},w=[],z=[],U=[],A={Sheets:[],WBProps:{date1904:!1},Views:[{}]},q={},G=function(kt){return kt<8?af[kt]:kt<64&&U[kt-8]||af[kt]},ie=function(kt,pr,Fs){if(!(de>1||Fs.sheetRows&&kt.r>=Fs.sheetRows)){if(Fs.cellStyles&&pr.XF&&pr.XF.data&&function(kt,pr,Fs){var gf,Lr=pr.XF.data;Lr&&Lr.patternType&&Fs&&Fs.cellStyles&&(pr.s={},pr.s.patternType=Lr.patternType,(gf=C_(G(Lr.icvFore)))&&(pr.s.fgColor={rgb:gf}),(gf=C_(G(Lr.icvBack)))&&(pr.s.bgColor={rgb:gf}))}(0,pr,Fs),delete pr.ixfe,delete pr.XF,h=kt,m=ft(kt),(!s||!s.s||!s.e)&&(s={s:{r:0,c:0},e:{r:0,c:0}}),kt.rs.e.r&&(s.e.r=kt.r+1),kt.c+1>s.e.c&&(s.e.c=kt.c+1),Fs.cellFormula&&pr.f)for(var Lr=0;Lrkt.c||w[Lr][0].s.r>kt.r||w[Lr][0].e.c>8)!==Ce)throw new Error("rt mismatch: "+pt+"!="+Ce);12==_e.r&&(e.l+=10,we-=10)}var B={};if(B=10===Ce?_e.f(e,we,Y):zde(Ce,_e,e,we,Y),0==de&&-1===[9,521,1033,2057].indexOf(Ne))continue;switch(Ce){case 34:t.opts.Date1904=A.WBProps.date1904=B;break;case 134:t.opts.WriteProtect=!0;break;case 47:if(Y.enc||(e.l=0),Y.enc=B,!n.password)throw new Error("File is password-protected");if(null==B.valid)throw new Error("Encryption scheme unsupported");if(!B.valid)throw new Error("Password is incorrect");break;case 92:Y.lastuser=B;break;case 66:var cn=Number(B);switch(cn){case 21010:cn=1200;break;case 32768:cn=1e4;break;case 32769:cn=1252}ws(Y.codepage=cn),fe=!0;break;case 317:Y.rrtabid=B;break;case 25:Y.winlocked=B;break;case 439:t.opts.RefreshAll=B;break;case 12:t.opts.CalcCount=B;break;case 16:t.opts.CalcDelta=B;break;case 17:t.opts.CalcIter=B;break;case 13:t.opts.CalcMode=B;break;case 14:t.opts.CalcPrecision=B;break;case 95:t.opts.CalcSaveRecalc=B;break;case 15:Y.CalcRefMode=B;break;case 2211:t.opts.FullCalc=B;break;case 129:B.fDialog&&(i["!type"]="dialog"),B.fBelow||((i["!outline"]||(i["!outline"]={})).above=!0),B.fRight||((i["!outline"]||(i["!outline"]={})).left=!0);break;case 224:z.push(B);break;case 430:ve.push([B]),ve[ve.length-1].XTI=[];break;case 35:case 547:ve[ve.length-1].push(B);break;case 24:case 536:H={Name:B.Name,Ref:ki(B.rgce,0,null,ve,Y)},B.itab>0&&(H.Sheet=B.itab-1),ve.names.push(H),ve[0]||(ve[0]=[],ve[0].XTI=[]),ve[ve.length-1].push(B),"_xlnm._FilterDatabase"==B.Name&&B.itab>0&&B.rgce&&B.rgce[0]&&B.rgce[0][0]&&"PtgArea3d"==B.rgce[0][0][0]&&(V[B.itab-1]={ref:wt(B.rgce[0][0][1][2])});break;case 22:Y.ExternCount=B;break;case 23:0==ve.length&&(ve[0]=[],ve[0].XTI=[]),ve[ve.length-1].XTI=ve[ve.length-1].XTI.concat(B),ve.XTI=ve.XTI.concat(B);break;case 2196:if(Y.biff<8)break;null!=H&&(H.Comment=B[1]);break;case 18:i["!protect"]=B;break;case 19:0!==B&&Y.WTF&&console.error("Password verifier: "+B);break;case 133:o[B.pos]=B,Y.snames.push(B.name);break;case 10:if(--de)break;if(s.e){if(s.e.r>0&&s.e.c>0){if(s.e.r--,s.e.c--,i["!ref"]=wt(s),n.sheetRows&&n.sheetRows<=s.e.r){var Mt=s.e.r;s.e.r=n.sheetRows-1,i["!fullref"]=i["!ref"],i["!ref"]=wt(s),s.e.r=Mt}s.e.r++,s.e.c++}Ue.length>0&&(i["!merges"]=Ue),Ae.length>0&&(i["!objects"]=Ae),he.length>0&&(i["!cols"]=he),pe.length>0&&(i["!rows"]=pe),A.Sheets.push(q)}""===u?f=i:r[u]=i,i=n.dense?[]:{};break;case 9:case 521:case 1033:case 2057:if(8===Y.biff&&(Y.biff={9:2,521:3,1033:4}[Ce]||{512:2,768:3,1024:4,1280:5,1536:8,2:2,7:2}[B.BIFFVer]||8),Y.biffguess=0==B.BIFFVer,0==B.BIFFVer&&4096==B.dt&&(Y.biff=5,fe=!0,ws(Y.codepage=28591)),8==Y.biff&&0==B.BIFFVer&&16==B.dt&&(Y.biff=2),de++)break;if(i=n.dense?[]:{},Y.biff<8&&!fe&&(fe=!0,ws(Y.codepage=n.codepage||1252)),Y.biff<5||0==B.BIFFVer&&4096==B.dt){""===u&&(u="Sheet1"),s={s:{r:0,c:0},e:{r:0,c:0}};var un={pos:e.l-we,name:u};o[un.pos]=un,Y.snames.push(u)}else u=(o[Ee]||{name:""}).name;32==B.dt&&(i["!type"]="chart"),64==B.dt&&(i["!type"]="macro"),Ue=[],Ae=[],Y.arrayf=w=[],he=[],pe=[],ke=!1,q={Hidden:(o[Ee]||{hs:0}).hs,name:u};break;case 515:case 3:case 2:"chart"==i["!type"]&&(n.dense?(i[B.r]||[])[B.c]:i[ft({c:B.c,r:B.r})])&&++B.c,C={ixfe:B.ixfe,XF:z[B.ixfe]||{},v:B.val,t:"n"},P>0&&(C.z=K[C.ixfe>>8&63]),$a(C,n,t.opts.Date1904),ie({c:B.c,r:B.r},C,n);break;case 5:case 517:C={ixfe:B.ixfe,XF:z[B.ixfe],v:B.val,t:B.t},P>0&&(C.z=K[C.ixfe>>8&63]),$a(C,n,t.opts.Date1904),ie({c:B.c,r:B.r},C,n);break;case 638:C={ixfe:B.ixfe,XF:z[B.ixfe],v:B.rknum,t:"n"},P>0&&(C.z=K[C.ixfe>>8&63]),$a(C,n,t.opts.Date1904),ie({c:B.c,r:B.r},C,n);break;case 189:for(var Ft=B.c;Ft<=B.C;++Ft){var Ve=B.rkrec[Ft-B.c][0];C={ixfe:Ve,XF:z[Ve],v:B.rkrec[Ft-B.c][1],t:"n"},P>0&&(C.z=K[C.ixfe>>8&63]),$a(C,n,t.opts.Date1904),ie({c:Ft,r:B.r},C,n)}break;case 6:case 518:case 1030:if("String"==B.val){a=B;break}if((C=q1(B.val,B.cell.ixfe,B.tt)).XF=z[C.ixfe],n.cellFormula){var hr=B.formula;if(hr&&hr[0]&&hr[0][0]&&"PtgExp"==hr[0][0][0]){var Ms=hr[0][0][1][0],Ga=hr[0][0][1][1],Hl=ft({r:Ms,c:Ga});b[Hl]?C.f=""+ki(B.formula,0,B.cell,ve,Y):C.F=((n.dense?(i[Ms]||[])[Ga]:i[Hl])||{}).F}else C.f=""+ki(B.formula,0,B.cell,ve,Y)}P>0&&(C.z=K[C.ixfe>>8&63]),$a(C,n,t.opts.Date1904),ie(B.cell,C,n),a=B;break;case 7:case 519:if(!a)throw new Error("String record expects Formula");a.val=B,(C=q1(B,a.cell.ixfe,"s")).XF=z[C.ixfe],n.cellFormula&&(C.f=""+ki(a.formula,0,a.cell,ve,Y)),P>0&&(C.z=K[C.ixfe>>8&63]),$a(C,n,t.opts.Date1904),ie(a.cell,C,n),a=null;break;case 33:case 545:w.push(B);var U_=ft(B[0].s);if(g=n.dense?(i[B[0].s.r]||[])[B[0].s.c]:i[U_],n.cellFormula&&g){if(!a||!U_||!g)break;g.f=""+ki(B[1],0,B[0],ve,Y),g.F=wt(B[0])}break;case 1212:if(!n.cellFormula)break;if(m){if(!a)break;b[ft(a.cell)]=B[0],((g=n.dense?(i[a.cell.r]||[])[a.cell.c]:i[ft(a.cell)])||{}).f=""+ki(B[0],0,h,ve,Y)}break;case 253:C=q1(l[B.isst].t,B.ixfe,"s"),l[B.isst].h&&(C.h=l[B.isst].h),C.XF=z[C.ixfe],P>0&&(C.z=K[C.ixfe>>8&63]),$a(C,n,t.opts.Date1904),ie({c:B.c,r:B.r},C,n);break;case 513:n.sheetStubs&&(C={ixfe:B.ixfe,XF:z[B.ixfe],t:"z"},P>0&&(C.z=K[C.ixfe>>8&63]),$a(C,n,t.opts.Date1904),ie({c:B.c,r:B.r},C,n));break;case 190:if(n.sheetStubs)for(var hu=B.c;hu<=B.C;++hu){var Go=B.ixfe[hu-B.c];C={ixfe:Go,XF:z[Go],t:"z"},P>0&&(C.z=K[C.ixfe>>8&63]),$a(C,n,t.opts.Date1904),ie({c:hu,r:B.r},C,n)}break;case 214:case 516:case 4:(C=q1(B.val,B.ixfe,"s")).XF=z[C.ixfe],P>0&&(C.z=K[C.ixfe>>8&63]),$a(C,n,t.opts.Date1904),ie({c:B.c,r:B.r},C,n);break;case 0:case 512:1===de&&(s=B);break;case 252:l=B;break;case 1054:if(4==Y.biff){K[P++]=B[1];for(var jl=0;jl=163&&Va(B[1],P+163)}else Va(B[1],B[0]);break;case 30:K[P++]=B;for(var pu=0;pu=163&&Va(B,P+163);break;case 229:Ue=Ue.concat(B);break;case 93:Ae[B.cmo[0]]=Y.lastobj=B;break;case 438:Y.lastobj.TxO=B;break;case 127:Y.lastobj.ImData=B;break;case 440:for(x=B[0].s.r;x<=B[0].e.r;++x)for(_=B[0].s.c;_<=B[0].e.c;++_)(g=n.dense?(i[x]||[])[_]:i[ft({c:_,r:x})])&&(g.l=B[1]);break;case 2048:for(x=B[0].s.r;x<=B[0].e.r;++x)for(_=B[0].s.c;_<=B[0].e.c;++_)(g=n.dense?(i[x]||[])[_]:i[ft({c:_,r:x})])&&g.l&&(g.l.Tooltip=B[1]);break;case 28:if(Y.biff<=5&&Y.biff>=2)break;g=n.dense?(i[B[0].r]||[])[B[0].c]:i[ft(B[0])];var H_=Ae[B[2]];g||(n.dense?(i[B[0].r]||(i[B[0].r]=[]),g=i[B[0].r][B[0].c]={t:"z"}):g=i[ft(B[0])]={t:"z"},s.e.r=Math.max(s.e.r,B[0].r),s.s.r=Math.min(s.s.r,B[0].r),s.e.c=Math.max(s.e.c,B[0].c),s.s.c=Math.min(s.s.c,B[0].c)),g.c||(g.c=[]),g.c.push({a:B[1],t:H_.TxO.t});break;case 2173:Fse(0,B.ext);break;case 125:if(!Y.cellStyles)break;for(;B.e>=B.s;)he[B.e--]={width:B.w/256,level:B.level||0,hidden:!!(1&B.flags)},ke||(ke=!0,vA(B.w/256)),hf(he[B.e+1]);break;case 520:var no={};null!=B.level&&(pe[B.r]=no,no.level=B.level),B.hidden&&(pe[B.r]=no,no.hidden=!0),B.hpt&&(pe[B.r]=no,no.hpt=B.hpt,no.hpx=Lp(B.hpt));break;case 38:case 39:case 40:case 41:i["!margins"]||pf(i["!margins"]={}),i["!margins"][{38:"left",39:"right",40:"top",41:"bottom"}[Ce]]=B;break;case 161:i["!margins"]||pf(i["!margins"]={}),i["!margins"].header=B.header,i["!margins"].footer=B.footer;break;case 574:B.RTL&&(A.Views[0].RTL=!0);break;case 146:U=B;break;case 2198:Ie=B;break;case 140:O=B;break;case 442:u?q.CodeName=B||q.name:A.WBProps.CodeName=B||"ThisWorkbook"}}else _e||console.error("Missing Info for XLS Record 0x"+Ce.toString(16)),e.l+=we}return t.SheetNames=Jn(o).sort(function(qa,kt){return Number(qa)-Number(kt)}).map(function(qa){return o[qa].name}),n.bookSheets||(t.Sheets=r),!t.SheetNames.length&&f["!ref"]?(t.SheetNames.push("Sheet1"),t.Sheets&&(t.Sheets.Sheet1=f)):t.Preamble=f,t.Sheets&&V.forEach(function(qa,kt){t.Sheets[t.SheetNames[kt]]["!autofilter"]=qa}),t.Strings=l,t.SSF=wn(ot),Y.enc&&(t.Encryption=Y.enc),Ie&&(t.Themes=Ie),t.Metadata={},void 0!==O&&(t.Metadata.Country=O),ve.names.length>0&&(A.Names=ve.names),t.Workbook=A,t}(r.content,n);else if((o=Qe.find(e,"PerfectOffice_MAIN"))&&o.content)i=ff.to_workbook(o.content,(n.type=s,n));else{if(!(o=Qe.find(e,"NativeContent_MAIN"))||!o.content)throw(o=Qe.find(e,"MN0"))&&o.content?new Error("Unsupported Works 4 for Mac file"):new Error("Cannot find Workbook stream");i=ff.to_workbook(o.content,(n.type=s,n))}n.bookVBA&&e.FullPaths&&Qe.find(e,"/_VBA_PROJECT_CUR/VBA/dir")&&(i.vbaraw=function sae(e){var n=Qe.utils.cfb_new({root:"R"});return e.FullPaths.forEach(function(t,r){if("/"!==t.slice(-1)&&t.match(/_VBA_PROJECT_CUR/)){var i=t.replace(/^[^\/]*/,"R").replace(/\/_VBA_PROJECT_CUR\u0000*/,"");Qe.utils.cfb_add(n,i,e.FileIndex[r].content)}}),Qe.write(n)}(e))}var a={};return e.FullPaths&&function Wde(e,n,t){var r=Qe.find(e,"/!DocumentSummaryInformation");if(r&&r.size>0)try{var i=Z8(r,iA,N_.DSI);for(var o in i)n[o]=i[o]}catch(u){if(t.WTF)throw u}var s=Qe.find(e,"/!SummaryInformation");if(s&&s.size>0)try{var a=Z8(s,oA,N_.SI);for(var l in a)null==n[l]&&(n[l]=a[l])}catch(u){if(t.WTF)throw u}n.HeadingPairs&&n.TitlesOfParts&&(V8(n.HeadingPairs,n.TitlesOfParts,n,t),delete n.HeadingPairs,delete n.TitlesOfParts)}(e,a,n),i.Props=i.Custprops=a,n.bookFiles&&(i.cfb=e),i}var P_={0:{f:function gce(e,n){var t={},r=e.l+n;t.r=e.read_shift(4),e.l+=4;var i=e.read_shift(2);e.l+=1;var o=e.read_shift(1);return e.l=r,7&o&&(t.level=7&o),16&o&&(t.hidden=!0),32&o&&(t.hpt=i/20),t}},1:{f:function Cce(e){return[Ts(e)]}},2:{f:function zce(e){return[Ts(e),nA(e),"n"]}},3:{f:function Fce(e){return[Ts(e),e.read_shift(1),"e"]}},4:{f:function Ice(e){return[Ts(e),e.read_shift(1),"b"]}},5:{f:function Uce(e){return[Ts(e),Si(e),"n"]}},6:{f:function Xce(e){return[Ts(e),Di(e),"str"]}},7:{f:function Pce(e){return[Ts(e),e.read_shift(4),"s"]}},8:{f:function tue(e,n,t){var r=e.l+n,i=Ts(e);i.r=t["!row"];var s=[i,Di(e),"str"];if(t.cellFormula){e.l+=2;var a=W1(e,r-e.l,t);s[3]=ki(a,0,i,t.supbooks,t)}else e.l=r;return s}},9:{f:function eue(e,n,t){var r=e.l+n,i=Ts(e);i.r=t["!row"];var s=[i,Si(e),"n"];if(t.cellFormula){e.l+=2;var a=W1(e,r-e.l,t);s[3]=ki(a,0,i,t.supbooks,t)}else e.l=r;return s}},10:{f:function Qce(e,n,t){var r=e.l+n,i=Ts(e);i.r=t["!row"];var s=[i,e.read_shift(1),"b"];if(t.cellFormula){e.l+=2;var a=W1(e,r-e.l,t);s[3]=ki(a,0,i,t.supbooks,t)}else e.l=r;return s}},11:{f:function Jce(e,n,t){var r=e.l+n,i=Ts(e);i.r=t["!row"];var s=[i,e.read_shift(1),"e"];if(t.cellFormula){e.l+=2;var a=W1(e,r-e.l,t);s[3]=ki(a,0,i,t.supbooks,t)}else e.l=r;return s}},12:{f:function Dce(e){return[tf(e)]}},13:{f:function Wce(e){return[tf(e),nA(e),"n"]}},14:{f:function Oce(e){return[tf(e),e.read_shift(1),"e"]}},15:{f:function kce(e){return[tf(e),e.read_shift(1),"b"]}},16:{f:t6},17:{f:function Kce(e){return[tf(e),Di(e),"str"]}},18:{f:function Bce(e){return[tf(e),e.read_shift(4),"s"]}},19:{f:ZI},20:{},21:{},22:{},23:{},24:{},25:{},26:{},27:{},28:{},29:{},30:{},31:{},32:{},33:{},34:{},35:{T:1},36:{T:-1},37:{T:1},38:{T:-1},39:{f:function Zue(e,n,t){var r=e.l+n;e.l+=4,e.l+=1;var i=e.read_shift(4),o=Ine(e),s=Nle(e,0,t),a=QI(e);e.l=r;var l={Name:o,Ptg:s};return i<268435455&&(l.Sheet=i),a&&(l.Comment=a),l}},40:{},42:{},43:{f:function Koe(e,n,t){var r={};r.sz=e.read_shift(2)/20;var i=function kne(e){var n=e.read_shift(1);return e.l++,{fBold:1&n,fItalic:2&n,fUnderline:4&n,fStrikeout:8&n,fOutline:16&n,fShadow:32&n,fCondense:64&n,fExtend:128&n}}(e);switch(i.fItalic&&(r.italic=1),i.fCondense&&(r.condense=1),i.fExtend&&(r.extend=1),i.fShadow&&(r.shadow=1),i.fOutline&&(r.outline=1),i.fStrikeout&&(r.strike=1),700===e.read_shift(2)&&(r.bold=1),e.read_shift(2)){case 1:r.vertAlign="superscript";break;case 2:r.vertAlign="subscript"}var s=e.read_shift(1);0!=s&&(r.underline=s);var a=e.read_shift(1);a>0&&(r.family=a);var l=e.read_shift(1);switch(l>0&&(r.charset=l),e.l++,r.color=function Ane(e){var n={},r=e.read_shift(1)>>>1,i=e.read_shift(1),o=e.read_shift(2,"i"),s=e.read_shift(1),a=e.read_shift(1),l=e.read_shift(1);switch(e.l++,r){case 0:n.auto=1;break;case 1:n.index=i;var u=af[i];u&&(n.rgb=C_(u));break;case 2:n.rgb=C_([s,a,l]);break;case 3:n.theme=i}return 0!=o&&(n.tint=o>0?o/32767:o/32768),n}(e),e.read_shift(1)){case 1:r.scheme="major";break;case 2:r.scheme="minor"}return r.name=Di(e),r}},44:{f:function Xoe(e,n){return[e.read_shift(2),Di(e)]}},45:{f:Joe},46:{f:tse},47:{f:function ese(e,n){var t=e.l+n,r=e.read_shift(2),i=e.read_shift(2);return e.l=t,{ixfe:r,numFmtId:i}}},48:{},49:{f:function wne(e){return e.read_shift(4,"i")}},50:{},51:{f:function Nse(e){for(var n=[],t=e.read_shift(4);t-- >0;)n.push([e.read_shift(4),e.read_shift(4)]);return n}},52:{T:1},53:{T:-1},54:{T:1},55:{T:-1},56:{T:1},57:{T:-1},58:{},59:{},60:{f:vV},62:{f:function qce(e){return[Ts(e),ZI(e),"is"]}},63:{f:function $se(e){var n={};n.i=e.read_shift(4);var t={};t.r=e.read_shift(4),t.c=e.read_shift(4),n.r=ft(t);var r=e.read_shift(1);return 2&r&&(n.l="1"),8&r&&(n.a="1"),n}},64:{f:function _ue(){}},65:{},66:{},67:{},68:{},69:{},70:{},128:{},129:{T:1},130:{T:-1},131:{T:1,f:Ti,p:0},132:{T:-1},133:{T:1},134:{T:-1},135:{T:1},136:{T:-1},137:{T:1,f:function hue(e){var n=e.read_shift(2);return e.l+=28,{RTL:32&n}}},138:{T:-1},139:{T:1},140:{T:-1},141:{T:1},142:{T:-1},143:{T:1},144:{T:-1},145:{T:1},146:{T:-1},147:{f:function wce(e,n){var t={},r=e[e.l];return++e.l,t.above=!(64&r),t.left=!(128&r),e.l+=18,t.name=Sne(e,n-19),t}},148:{f:yce,p:16},151:{f:function aue(){}},152:{},153:{f:function Xue(e,n){var t={},r=e.read_shift(4);t.defaultThemeVersion=e.read_shift(4);var i=n>8?Di(e):"";return i.length>0&&(t.CodeName=i),t.autoCompressPictures=!!(65536&r),t.backupFile=!!(64&r),t.checkCompatibility=!!(4096&r),t.date1904=!!(1&r),t.filterPrivacy=!!(8&r),t.hidePivotFieldList=!!(1024&r),t.promptedSolutions=!!(16&r),t.publishItems=!!(2048&r),t.refreshAllConnections=!!(262144&r),t.saveExternalLinkValues=!!(128&r),t.showBorderUnselectedTables=!!(4&r),t.showInkAnnotation=!!(32&r),t.showObjects=["all","placeholders","none"][r>>13&3],t.showPivotChartFilter=!!(32768&r),t.updateLinks=["userSet","never","always"][r>>8&3],t}},154:{},155:{},156:{f:function Gue(e,n){var t={};return t.Hidden=e.read_shift(4),t.iTabID=e.read_shift(4),t.strRelID=eA(e,n-8),t.name=Di(e),t}},157:{},158:{},159:{T:1,f:function doe(e){return[e.read_shift(4),e.read_shift(4)]}},160:{T:-1},161:{T:1,f:rf},162:{T:-1},163:{T:1},164:{T:-1},165:{T:1},166:{T:-1},167:{},168:{},169:{},170:{},171:{},172:{T:1},173:{T:-1},174:{},175:{},176:{f:nue},177:{T:1},178:{T:-1},179:{T:1},180:{T:-1},181:{T:1},182:{T:-1},183:{T:1},184:{T:-1},185:{T:1},186:{T:-1},187:{T:1},188:{T:-1},189:{T:1},190:{T:-1},191:{T:1},192:{T:-1},193:{T:1},194:{T:-1},195:{T:1},196:{T:-1},197:{T:1},198:{T:-1},199:{T:1},200:{T:-1},201:{T:1},202:{T:-1},203:{T:1},204:{T:-1},205:{T:1},206:{T:-1},207:{T:1},208:{T:-1},209:{T:1},210:{T:-1},211:{T:1},212:{T:-1},213:{T:1},214:{T:-1},215:{T:1},216:{T:-1},217:{T:1},218:{T:-1},219:{T:1},220:{T:-1},221:{T:1},222:{T:-1},223:{T:1},224:{T:-1},225:{T:1},226:{T:-1},227:{T:1},228:{T:-1},229:{T:1},230:{T:-1},231:{T:1},232:{T:-1},233:{T:1},234:{T:-1},235:{T:1},236:{T:-1},237:{T:1},238:{T:-1},239:{T:1},240:{T:-1},241:{T:1},242:{T:-1},243:{T:1},244:{T:-1},245:{T:1},246:{T:-1},247:{T:1},248:{T:-1},249:{T:1},250:{T:-1},251:{T:1},252:{T:-1},253:{T:1},254:{T:-1},255:{T:1},256:{T:-1},257:{T:1},258:{T:-1},259:{T:1},260:{T:-1},261:{T:1},262:{T:-1},263:{T:1},264:{T:-1},265:{T:1},266:{T:-1},267:{T:1},268:{T:-1},269:{T:1},270:{T:-1},271:{T:1},272:{T:-1},273:{T:1},274:{T:-1},275:{T:1},276:{T:-1},277:{},278:{T:1},279:{T:-1},280:{T:1},281:{T:-1},282:{T:1},283:{T:1},284:{T:-1},285:{T:1},286:{T:-1},287:{T:1},288:{T:-1},289:{T:1},290:{T:-1},291:{T:1},292:{T:-1},293:{T:1},294:{T:-1},295:{T:1},296:{T:-1},297:{T:1},298:{T:-1},299:{T:1},300:{T:-1},301:{T:1},302:{T:-1},303:{T:1},304:{T:-1},305:{T:1},306:{T:-1},307:{T:1},308:{T:-1},309:{T:1},310:{T:-1},311:{T:1},312:{T:-1},313:{T:-1},314:{T:1},315:{T:-1},316:{T:1},317:{T:-1},318:{T:1},319:{T:-1},320:{T:1},321:{T:-1},322:{T:1},323:{T:-1},324:{T:1},325:{T:-1},326:{T:1},327:{T:-1},328:{T:1},329:{T:-1},330:{T:1},331:{T:-1},332:{T:1},333:{T:-1},334:{T:1},335:{f:function Rse(e,n){return{flags:e.read_shift(4),version:e.read_shift(4),name:Di(e)}}},336:{T:-1},337:{f:function Bse(e){return e.l+=4,0!=e.read_shift(4)},T:1},338:{T:-1},339:{T:1},340:{T:-1},341:{T:1},342:{T:-1},343:{T:1},344:{T:-1},345:{T:1},346:{T:-1},347:{T:1},348:{T:-1},349:{T:1},350:{T:-1},351:{},352:{},353:{T:1},354:{T:-1},355:{f:eA},357:{},358:{},359:{},360:{T:1},361:{},362:{f:gV},363:{},364:{},366:{},367:{},368:{},369:{},370:{},371:{},372:{T:1},373:{T:-1},374:{T:1},375:{T:-1},376:{T:1},377:{T:-1},378:{T:1},379:{T:-1},380:{T:1},381:{T:-1},382:{T:1},383:{T:-1},384:{T:1},385:{T:-1},386:{T:1},387:{T:-1},388:{T:1},389:{T:-1},390:{T:1},391:{T:-1},392:{T:1},393:{T:-1},394:{T:1},395:{T:-1},396:{},397:{},398:{},399:{},400:{},401:{T:1},403:{},404:{},405:{},406:{},407:{},408:{},409:{},410:{},411:{},412:{},413:{},414:{},415:{},416:{},417:{},418:{},419:{},420:{},421:{},422:{T:1},423:{T:1},424:{T:-1},425:{T:-1},426:{f:function lue(e,n,t){var r=e.l+n,i=I8(e),o=e.read_shift(1),s=[i];if(s[2]=o,t.cellFormula){var a=Ole(e,r-e.l,t);s[1]=a}else e.l=r;return s}},427:{f:function cue(e,n,t){var r=e.l+n,o=[rf(e,16)];if(t.cellFormula){var s=Ple(e,r-e.l,t);o[1]=s,e.l=r}else e.l=r;return o}},428:{},429:{T:1},430:{T:-1},431:{T:1},432:{T:-1},433:{T:1},434:{T:-1},435:{T:1},436:{T:-1},437:{T:1},438:{T:-1},439:{T:1},440:{T:-1},441:{T:1},442:{T:-1},443:{T:1},444:{T:-1},445:{T:1},446:{T:-1},447:{T:1},448:{T:-1},449:{T:1},450:{T:-1},451:{T:1},452:{T:-1},453:{T:1},454:{T:-1},455:{T:1},456:{T:-1},457:{T:1},458:{T:-1},459:{T:1},460:{T:-1},461:{T:1},462:{T:-1},463:{T:1},464:{T:-1},465:{T:1},466:{T:-1},467:{T:1},468:{T:-1},469:{T:1},470:{T:-1},471:{},472:{},473:{T:1},474:{T:-1},475:{},476:{f:function due(e){var n={};return n6.forEach(function(t){n[t]=Si(e)}),n}},477:{},478:{},479:{T:1},480:{T:-1},481:{T:1},482:{T:-1},483:{T:1},484:{T:-1},485:{f:function bce(){}},486:{T:1},487:{T:-1},488:{T:1},489:{T:-1},490:{T:1},491:{T:-1},492:{T:1},493:{T:-1},494:{f:function oue(e,n){var t=e.l+n,r=rf(e,16),i=QI(e),o=Di(e),s=Di(e),a=Di(e);e.l=t;var l={rfx:r,relId:i,loc:o,display:a};return s&&(l.Tooltip=s),l}},495:{T:1},496:{T:-1},497:{T:1},498:{T:-1},499:{},500:{T:1},501:{T:-1},502:{T:1},503:{T:-1},504:{},505:{T:1},506:{T:-1},507:{},508:{T:1},509:{T:-1},510:{T:1},511:{T:-1},512:{},513:{},514:{T:1},515:{T:-1},516:{T:1},517:{T:-1},518:{T:1},519:{T:-1},520:{T:1},521:{T:-1},522:{},523:{},524:{},525:{},526:{},527:{},528:{T:1},529:{T:-1},530:{T:1},531:{T:-1},532:{T:1},533:{T:-1},534:{},535:{},536:{},537:{},538:{T:1},539:{T:-1},540:{T:1},541:{T:-1},542:{T:1},548:{},549:{},550:{f:eA},551:{},552:{},553:{},554:{T:1},555:{T:-1},556:{T:1},557:{T:-1},558:{T:1},559:{T:-1},560:{T:1},561:{T:-1},562:{},564:{},565:{T:1},566:{T:-1},569:{T:1},570:{T:-1},572:{},573:{T:1},574:{T:-1},577:{},578:{},579:{},580:{},581:{},582:{},583:{},584:{},585:{},586:{},587:{},588:{T:-1},589:{},590:{T:1},591:{T:-1},592:{T:1},593:{T:-1},594:{T:1},595:{T:-1},596:{},597:{T:1},598:{T:-1},599:{T:1},600:{T:-1},601:{T:1},602:{T:-1},603:{T:1},604:{T:-1},605:{T:1},606:{T:-1},607:{},608:{T:1},609:{T:-1},610:{},611:{T:1},612:{T:-1},613:{T:1},614:{T:-1},615:{T:1},616:{T:-1},617:{T:1},618:{T:-1},619:{T:1},620:{T:-1},625:{},626:{T:1},627:{T:-1},628:{T:1},629:{T:-1},630:{T:1},631:{T:-1},632:{f:tae},633:{T:1},634:{T:-1},635:{T:1,f:function Jse(e){var n={};n.iauthor=e.read_shift(4);var t=rf(e,16);return n.rfx=t.s,n.ref=ft(t.s),e.l+=16,n}},636:{T:-1},637:{f:Tne},638:{T:1},639:{},640:{T:-1},641:{T:1},642:{T:-1},643:{T:1},644:{},645:{T:-1},646:{T:1},648:{T:1},649:{},650:{T:-1},651:{f:function Nue(e,n){return e.l+=10,{name:Di(e)}}},652:{},653:{T:1},654:{T:-1},655:{T:1},656:{T:-1},657:{T:1},658:{T:-1},659:{},660:{T:1},661:{},662:{T:-1},663:{},664:{T:1},665:{},666:{T:-1},667:{},668:{},669:{},671:{T:1},672:{T:-1},673:{T:1},674:{T:-1},675:{},676:{},677:{},678:{},679:{},680:{},681:{},1024:{},1025:{},1026:{T:1},1027:{T:-1},1028:{T:1},1029:{T:-1},1030:{},1031:{T:1},1032:{T:-1},1033:{T:1},1034:{T:-1},1035:{},1036:{},1037:{},1038:{T:1},1039:{T:-1},1040:{},1041:{T:1},1042:{T:-1},1043:{},1044:{},1045:{},1046:{T:1},1047:{T:-1},1048:{T:1},1049:{T:-1},1050:{},1051:{T:1},1052:{T:1},1053:{f:function vue(){}},1054:{T:1},1055:{},1056:{T:1},1057:{T:-1},1058:{T:1},1059:{T:-1},1061:{},1062:{T:1},1063:{T:-1},1064:{T:1},1065:{T:-1},1066:{T:1},1067:{T:-1},1068:{T:1},1069:{T:-1},1070:{T:1},1071:{T:-1},1072:{T:1},1073:{T:-1},1075:{T:1},1076:{T:-1},1077:{T:1},1078:{T:-1},1079:{T:1},1080:{T:-1},1081:{T:1},1082:{T:-1},1083:{T:1},1084:{T:-1},1085:{},1086:{T:1},1087:{T:-1},1088:{T:1},1089:{T:-1},1090:{T:1},1091:{T:-1},1092:{T:1},1093:{T:-1},1094:{T:1},1095:{T:-1},1096:{},1097:{T:1},1098:{},1099:{T:-1},1100:{T:1},1101:{T:-1},1102:{},1103:{},1104:{},1105:{},1111:{},1112:{},1113:{T:1},1114:{T:-1},1115:{T:1},1116:{T:-1},1117:{},1118:{T:1},1119:{T:-1},1120:{T:1},1121:{T:-1},1122:{T:1},1123:{T:-1},1124:{T:1},1125:{T:-1},1126:{},1128:{T:1},1129:{T:-1},1130:{},1131:{T:1},1132:{T:-1},1133:{T:1},1134:{T:-1},1135:{T:1},1136:{T:-1},1137:{T:1},1138:{T:-1},1139:{T:1},1140:{T:-1},1141:{},1142:{T:1},1143:{T:-1},1144:{T:1},1145:{T:-1},1146:{},1147:{T:1},1148:{T:-1},1149:{T:1},1150:{T:-1},1152:{T:1},1153:{T:-1},1154:{T:-1},1155:{T:-1},1156:{T:-1},1157:{T:1},1158:{T:-1},1159:{T:1},1160:{T:-1},1161:{T:1},1162:{T:-1},1163:{T:1},1164:{T:-1},1165:{T:1},1166:{T:-1},1167:{T:1},1168:{T:-1},1169:{T:1},1170:{T:-1},1171:{},1172:{T:1},1173:{T:-1},1177:{},1178:{T:1},1180:{},1181:{},1182:{},2048:{T:1},2049:{T:-1},2050:{},2051:{T:1},2052:{T:-1},2053:{},2054:{},2055:{T:1},2056:{T:-1},2057:{T:1},2058:{T:-1},2060:{},2067:{},2068:{T:1},2069:{T:-1},2070:{},2071:{},2072:{T:1},2073:{T:-1},2075:{},2076:{},2077:{T:1},2078:{T:-1},2079:{},2080:{T:1},2081:{T:-1},2082:{},2083:{T:1},2084:{T:-1},2085:{T:1},2086:{T:-1},2087:{T:1},2088:{T:-1},2089:{T:1},2090:{T:-1},2091:{},2092:{},2093:{T:1},2094:{T:-1},2095:{},2096:{T:1},2097:{T:-1},2098:{T:1},2099:{T:-1},2100:{T:1},2101:{T:-1},2102:{},2103:{T:1},2104:{T:-1},2105:{},2106:{T:1},2107:{T:-1},2108:{},2109:{T:1},2110:{T:-1},2111:{T:1},2112:{T:-1},2113:{T:1},2114:{T:-1},2115:{},2116:{},2117:{},2118:{T:1},2119:{T:-1},2120:{},2121:{T:1},2122:{T:-1},2123:{T:1},2124:{T:-1},2125:{},2126:{T:1},2127:{T:-1},2128:{},2129:{T:1},2130:{T:-1},2131:{T:1},2132:{T:-1},2133:{T:1},2134:{},2135:{},2136:{},2137:{T:1},2138:{T:-1},2139:{T:1},2140:{T:-1},2141:{},3072:{},3073:{},4096:{T:1},4097:{T:-1},5002:{T:1},5003:{T:-1},5081:{T:1},5082:{T:-1},5083:{},5084:{T:1},5085:{T:-1},5086:{T:1},5087:{T:-1},5088:{},5089:{},5090:{},5092:{T:1},5093:{T:-1},5094:{},5095:{T:1},5096:{T:-1},5097:{},5099:{},65535:{n:""}},MA={6:{f:CA},10:{f:cu},12:{f:wr},13:{f:wr},14:{f:fr},15:{f:fr},16:{f:Si},17:{f:fr},18:{f:fr},19:{f:wr},20:{f:hV},21:{f:hV},23:{f:gV},24:{f:mV},25:{f:fr},26:{},27:{},28:{f:function xie(e,n,t){return function yie(e,n,t){if(!(t.biff<8)){var r=e.read_shift(2),i=e.read_shift(2),o=e.read_shift(2),s=e.read_shift(2),a=uf(e,0,t);return t.biff<8&&e.read_shift(1),[{r,c:i},a,s,o]}}(e,0,t)}},29:{},34:{f:fr},35:{f:pV},38:{f:Si},39:{f:Si},40:{f:Si},41:{f:Si},42:{f:fr},43:{f:fr},47:{f:function Foe(e,n,t){var r={Type:t.biff>=8?e.read_shift(2):0};return r.Type?function Moe(e,n,t){var r=t||{};return r.Info=e.read_shift(2),e.l-=2,r.Data=1===r.Info?function Soe(e){var n={},t=n.EncryptionVersionInfo=Ul(e,4);if(1!=t.Major||1!=t.Minor)throw"unrecognized version code "+t.Major+" : "+t.Minor;return n.Salt=e.read_shift(16),n.EncryptedVerifier=e.read_shift(16),n.EncryptedVerifierHash=e.read_shift(16),n}(e):function Doe(e,n){var t={},r=t.EncryptionVersionInfo=Ul(e,4);if(n-=4,2!=r.Minor)throw new Error("unrecognized minor version code: "+r.Minor);if(r.Major>4||r.Major<2)throw new Error("unrecognized major version code: "+r.Major);t.Flags=e.read_shift(4),n-=4;var i=e.read_shift(4);return n-=4,t.EncryptionHeader=CV(e,i),t.EncryptionVerifier=TV(e,n-=i),t}(e,n),r}(e,n-2,r):function koe(e,n,t,r){var i={key:wr(e),verificationBytes:wr(e)};t.password&&(i.verifier=function gA(e){var t,o,n=0,r=EV(e),i=r.length+1;for((t=nu(i))[0]=r.length,o=1;o!=i;++o)t[o]=r[o-1];for(o=i-1;o>=0;--o)n=((16384&n?1:0)|n<<1&32767)^t[o];return 52811^n}(t.password)),r.valid=i.verificationBytes===i.verifier,r.valid&&(r.insitu=function(e){var n=0,t=DV(e);return function(r){var i=function(e,n,t,r,i){var o,s;for(i||(i=n),r||(r=DV("")),o=0;o!=n.length;++o)s=n[o],i[o]=s=255&((s^=r[t])>>5|s<<3),++t;return[i,t,r]}(0,r,n,t);return n=i[1],i[0]}}(t.password))}(e,0,t,r),r}},49:{f:function qre(e,n,t){var r={dyHeight:e.read_shift(2),fl:e.read_shift(2)};switch(t&&t.biff||8){case 2:break;case 3:case 4:e.l+=2;break;default:e.l+=10}return r.name=w_(e,0,t),r}},51:{f:wr},60:{},61:{f:function jre(e){return{Pos:[e.read_shift(2),e.read_shift(2)],Dim:[e.read_shift(2),e.read_shift(2)],Flags:e.read_shift(2),CurTab:e.read_shift(2),FirstTab:e.read_shift(2),Selected:e.read_shift(2),TabRatio:e.read_shift(2)}}},64:{f:fr},65:{f:function Gre(){}},66:{f:wr},77:{},80:{},81:{},82:{},85:{f:wr},89:{},90:{},91:{},92:{f:function Mre(e,n,t){if(t.enc)return e.l+=n,"";var r=e.l,i=uf(e,0,t);return e.read_shift(n+r-e.l),i}},93:{f:function Eie(e,n,t){if(t&&t.biff<8)return function Tie(e,n,t){e.l+=4;var r=e.read_shift(2),i=e.read_shift(2),o=e.read_shift(2);e.l+=2,e.l+=2,e.l+=2,e.l+=2,e.l+=2,e.l+=2,e.l+=2,e.l+=2,e.l+=2,e.l+=6;var s=[];return s.push((Cie[r]||Ti)(e,n-=36,t)),{cmo:[i,r,o],ft:s}}(e,n,t);var r=lV(e),i=function Are(e,n){for(var t=e.l+n,r=[];e.l7||n[1]>7)throw new Error("Bad Gutters: "+n.join("|"));return n}},129:{f:function Rre(e,n,t){var r=t&&8==t.biff||2==n?e.read_shift(2):(e.l+=n,0);return{fDialog:16&r,fBelow:64&r,fRight:128&r}}},130:{f:wr},131:{f:fr},132:{f:fr},133:{f:function Ore(e,n,t){var r=e.read_shift(4),i=3&e.read_shift(1),o=e.read_shift(1);switch(o){case 0:o="Worksheet";break;case 1:o="Macrosheet";break;case 2:o="Chartsheet";break;case 6:o="VBAModule"}var s=w_(e,0,t);return 0===s.length&&(s="Sheet1"),{pos:r,hs:i,dt:o,name:s}}},134:{},140:{f:function Mie(e){var t,n=[0,0];return t=e.read_shift(2),n[0]=F8[t]||t,t=e.read_shift(2),n[1]=F8[t]||t,n}},141:{f:wr},144:{},146:{f:function Oie(e){for(var n=e.read_shift(2),t=[];n-- >0;)t.push(iV(e));return t}},151:{},152:{},153:{},154:{},155:{},156:{f:wr},157:{},158:{},160:{f:Hie},161:{f:function Lie(e,n){var t={};return n<32||(e.l+=16,t.header=Si(e),t.footer=Si(e),e.l+=2),t}},174:{},175:{},176:{},177:{},178:{},180:{},181:{},182:{},184:{},185:{},189:{f:function iie(e,n){for(var t=e.l+n-2,r=e.read_shift(2),i=e.read_shift(2),o=[];e.l>2&1,r.data=function sie(e,n,t,r){var i={},o=e.read_shift(4),s=e.read_shift(4),a=e.read_shift(4),l=e.read_shift(2);return i.patternType=Vne[a>>26],r.cellStyles&&(i.alc=7&o,i.fWrap=o>>3&1,i.alcV=o>>4&7,i.fJustLast=o>>7&1,i.trot=o>>8&255,i.cIndent=o>>16&15,i.fShrinkToFit=o>>20&1,i.iReadOrder=o>>22&2,i.fAtrNum=o>>26&1,i.fAtrFnt=o>>27&1,i.fAtrAlc=o>>28&1,i.fAtrBdr=o>>29&1,i.fAtrPat=o>>30&1,i.fAtrProt=o>>31&1,i.dgLeft=15&s,i.dgRight=s>>4&15,i.dgTop=s>>8&15,i.dgBottom=s>>12&15,i.icvLeft=s>>16&127,i.icvRight=s>>23&127,i.grbitDiag=s>>30&3,i.icvTop=127&a,i.icvBottom=a>>7&127,i.icvDiag=a>>14&127,i.dgDiag=a>>21&15,i.icvFore=127&l,i.icvBack=l>>7&127,i.fsxButton=l>>14&1),i}(e,0,0,t),r}},225:{f:function kre(e,n){return 0===n||e.read_shift(2),1200}},226:{f:cu},227:{},229:{f:function bie(e,n){for(var t=[],r=e.read_shift(2);r--;)t.push(B1(e));return t}},233:{},235:{},236:{},237:{},239:{},240:{},241:{},242:{},244:{},245:{},246:{},247:{},248:{},249:{},251:{},252:{f:function Pre(e,n){for(var t=e.l+n,r=e.read_shift(4),i=e.read_shift(4),o=[],s=0;s!=i&&e.l255)throw new Error("Unexpected SupBook type: "+o);for(var s=cf(e,o),a=[];r>e.l;)a.push(E_(e));return[o,i,s,a]}},431:{f:fr},432:{},433:{},434:{},437:{},438:{f:function Die(e,n,t){var r=e.l,i="";try{e.l+=4,-1==[0,5,7,11,12,14].indexOf((t.lastobj||{cmo:[0,0]}).cmo[1])?e.l+=6:function mre(e){var n=e.read_shift(1);e.l++;var t=e.read_shift(2);e.l+=2}(e);var a=e.read_shift(2);e.read_shift(2),wr(e);var l=e.read_shift(2);e.l+=l;for(var u=1;u=(f?a:2*a))break}if(i.length!==a&&i.length!==2*a)throw new Error("cchText: "+a+" != "+i.length);return e.l=r+n,{t:i}}catch{return e.l=r+n,{t:i}}}},439:{f:fr},440:{f:function Sie(e,n){var t=B1(e);e.l+=16;var r=function yre(e,n){var t=e.l+n,r=e.read_shift(4);if(2!==r)throw new Error("Unrecognized streamVersion: "+r);var i=e.read_shift(2);e.l+=2;var o,s,a,l,f,h,u="";16&i&&(o=L1(e)),128&i&&(s=L1(e)),!(257&~i)&&(a=L1(e)),1==(257&i)&&(l=function vre(e,n){var t=e.read_shift(16);switch(t){case"e0c9ea79f9bace118c8200aa004ba90b":return function gre(e){var n=e.read_shift(4),t=e.l,r=!1;n>24&&(e.l+=n-24,"795881f43b1d7f48af2c825dc4852763"===e.read_shift(16)&&(r=!0),e.l=t);var i=e.read_shift((r?n-24:n)>>1,"utf16le").replace(Ei,"");return r&&(e.l+=24),i}(e);case"0303000000000000c000000000000046":return function _re(e){for(var n=e.read_shift(2),t="";n-- >0;)t+="../";var r=e.read_shift(0,"lpstr-ansi");if(e.l+=2,57005!=e.read_shift(2))throw new Error("Bad FileMoniker");if(0===e.read_shift(4))return t+r.replace(/\\/g,"/");var o=e.read_shift(4);if(3!=e.read_shift(2))throw new Error("Bad FileMoniker");return t+e.read_shift(o>>1,"utf16le").replace(Ei,"")}(e);default:throw new Error("Unsupported Moniker "+t)}}(e)),8&i&&(u=L1(e)),32&i&&(f=e.read_shift(16)),64&i&&(h=dA(e)),e.l=t;var m=s||a||l||"";m&&u&&(m+="#"+u),m||(m="#"+u),2&i&&"/"==m.charAt(0)&&"/"!=m.charAt(1)&&(m="file://"+m);var g={Target:m};return f&&(g.guid=f),h&&(g.time=h),o&&(g.Tooltip=o),g}(e,n-24);return[t,r]}},441:{},442:{f:E_},443:{},444:{f:wr},445:{},446:{},448:{f:cu},449:{f:function Hre(e){return e.read_shift(2),e.read_shift(4)},r:2},450:{f:cu},512:{f:uV},513:{f:Uie},515:{f:function die(e,n,t){t.biffguess&&2==t.biff&&(t.biff=5);var r=za(e),i=Si(e);return r.val=i,r}},516:{f:function Zre(e,n,t){t.biffguess&&2==t.biff&&(t.biff=5);var i=za(e);2==t.biff&&e.l++;var o=E_(e,0,t);return i.val=o,i}},517:{f:fV},519:{f:jie},520:{f:function Vre(e){var n={};n.r=e.read_shift(2),n.c=e.read_shift(2),n.cnt=e.read_shift(2)-n.c;var t=e.read_shift(2);e.l+=4;var r=e.read_shift(1);return e.l+=3,7&r&&(n.level=7&r),32&r&&(n.hidden=!0),64&r&&(n.hpt=t/20),n}},523:{},545:{f:_V},549:{f:cV},566:{},574:{f:function $re(e,n,t){return t&&t.biff>=2&&t.biff<5?{}:{RTL:64&e.read_shift(2)}}},638:{f:function rie(e){var n=e.read_shift(2),t=e.read_shift(2),r=oV(e);return{r:n,c:t,ixfe:r[0],rknum:r[1]}}},659:{},1048:{},1054:{f:function Jre(e,n,t){return[e.read_shift(2),uf(e,0,t)]}},1084:{},1212:{f:function _ie(e,n,t){var r=aV(e);e.l++;var i=e.read_shift(1);return[kle(e,n-=8,t),i,r]}},2048:{f:function Aie(e,n){e.read_shift(2);var t=B1(e),r=e.read_shift((n-10)/2,"dbcs-cont");return[t,r=r.replace(Ei,"")]}},2049:{},2050:{},2051:{},2052:{},2053:{},2054:{},2055:{},2056:{},2057:{f:V1},2058:{},2059:{},2060:{},2061:{},2062:{},2063:{},2064:{},2066:{},2067:{},2128:{},2129:{},2130:{},2131:{},2132:{},2133:{},2134:{},2135:{},2136:{},2137:{},2138:{},2146:{},2147:{r:12},2148:{},2149:{},2150:{},2151:{f:cu},2152:{},2154:{},2155:{},2156:{},2161:{},2162:{},2164:{},2165:{},2166:{},2167:{},2168:{},2169:{},2170:{},2171:{},2172:{f:function Nie(e){e.l+=2;var n={cxfs:0,crc:0};return n.cxfs=e.read_shift(2),n.crc=e.read_shift(4),n},r:12},2173:{f:function Mse(e,n){e.l+=2;var r=e.read_shift(2);e.l+=2;for(var i=e.read_shift(2),o=[];i-- >0;)o.push(kse(e));return{ixfe:r,ext:o}},r:12},2174:{},2175:{},2180:{},2181:{},2182:{},2183:{},2184:{},2185:{},2186:{},2187:{},2188:{f:fr,r:12},2189:{},2190:{r:12},2191:{},2192:{},2194:{},2195:{},2196:{f:function gie(e,n,t){if(!(t.biff<8)){var r=e.read_shift(2),i=e.read_shift(2);return[cf(e,r,t),cf(e,i,t)]}e.l+=n},r:12},2197:{},2198:{f:function Tse(e,n,t){var r=e.l+n;if(124226!==e.read_shift(4)){if(!t.cellStyles)return void(e.l=r);var s,o=e.slice(e.l);e.l=r;try{s=ZB(o,{type:"array"})}catch{return}var a=zo(s,"theme/theme/theme1.xml",!0);if(a)return RV(a,t)}},r:12},2199:{},2200:{},2201:{},2202:{f:function vie(e){return[0!==e.read_shift(4),0!==e.read_shift(4),e.read_shift(4)]},r:12},2203:{f:cu},2204:{},2205:{},2206:{},2207:{},2211:{f:function Ure(e){var n=function bre(e){var n=e.read_shift(2),t=e.read_shift(2);return e.l+=8,{type:n,flags:t}}(e);if(2211!=n.type)throw new Error("Invalid Future Record "+n.type);return 0!==e.read_shift(4)}},2212:{},2213:{},2214:{},2215:{},4097:{},4098:{},4099:{},4102:{},4103:{},4105:{},4106:{},4107:{},4108:{},4109:{},4116:{},4117:{},4118:{},4119:{},4120:{},4121:{},4122:{},4123:{},4124:{},4125:{},4126:{},4127:{},4128:{},4129:{},4130:{},4132:{},4133:{},4134:{f:wr},4135:{},4146:{},4147:{},4148:{},4149:{},4154:{},4156:{},4157:{},4158:{},4159:{},4160:{},4161:{},4163:{},4164:{f:function Bie(e,n,t){var r={area:!1};if(5!=t.biff)return e.l+=n,r;var i=e.read_shift(1);return e.l+=3,16&i&&(r.area=!0),r}},4165:{},4166:{},4168:{},4170:{},4171:{},4174:{},4175:{},4176:{},4177:{},4187:{},4188:{f:function Rie(e){for(var n=e.read_shift(2),t=[];n-- >0;)t.push(iV(e));return t}},4189:{},4191:{},4192:{},4193:{},4194:{},4195:{},4196:{},4197:{},4198:{},4199:{},4200:{},0:{f:uV},1:{},2:{f:function qie(e){var n=za(e);++e.l;var t=e.read_shift(2);return n.t="n",n.val=t,n}},3:{f:function Wie(e){var n=za(e);++e.l;var t=Si(e);return n.t="n",n.val=t,n}},4:{f:function $ie(e,n,t){t.biffguess&&5==t.biff&&(t.biff=2);var r=za(e);++e.l;var i=uf(e,0,t);return r.t="str",r.val=i,r}},5:{f:fV},7:{f:function Yie(e){var n=e.read_shift(1);return 0===n?(e.l++,""):e.read_shift(n,"sbcs-cont")}},8:{},9:{f:V1},11:{},22:{f:wr},30:{f:tie},31:{},32:{},33:{f:_V},36:{},37:{f:cV},50:{f:function Kie(e,n){e.l+=6,e.l+=2,e.l+=1,e.l+=3,e.l+=1,e.l+=n-13}},62:{},52:{},67:{},68:{f:wr},69:{},86:{},126:{},127:{f:function zie(e){var n=e.read_shift(2),t=e.read_shift(2),r=e.read_shift(4),i={fmt:n,env:t,len:r,data:e.slice(e.l,e.l+r)};return e.l+=r,i}},135:{},136:{},137:{},145:{},148:{},149:{},150:{},169:{},171:{},188:{},191:{},192:{},194:{},195:{},214:{f:function Zie(e,n,t){var r=e.l+n,i=za(e),o=e.read_shift(2),s=cf(e,o,t);return e.l=r,i.t="str",i.val=s,i}},223:{},234:{},354:{},421:{},518:{f:CA},521:{f:V1},536:{f:mV},547:{f:pV},561:{},579:{},1030:{f:CA},1033:{f:V1},1091:{},2157:{},2163:{},2177:{},2240:{},2241:{},2242:{},2243:{},2244:{},2245:{},2246:{},2247:{},2248:{},2249:{},2250:{},2251:{},2262:{r:12},29282:{}};function Fe(e,n,t,r){var i=n;if(!isNaN(i)){var o=r||(t||[]).length||0,s=e.next(4);s.write_shift(2,i),s.write_shift(2,o),o>0&&qI(t)&&e.push(t)}}function p6(e,n){var t=n||{};null!=Qn&&null==t.dense&&(t.dense=Qn);var r=t.dense?[]:{},i=(e=e.replace(//g,"")).match(/
");var o=e.match(/<\/table/i),s=i.index,a=o&&o.index||e.length,l=Kte(e.slice(s,a),/(:?]*>)/i,""),u=-1,f=0,h=0,m=0,g={s:{r:1e7,c:1e7},e:{r:0,c:0}},v=[];for(s=0;s/i);for(a=0;a"))>-1;)C=C.slice(O+1);for(var z=0;z")));m=A.colspan?+A.colspan:1,((h=+A.rowspan)>1||m>1)&&v.push({s:{r:u,c:f},e:{r:u+(h||1)-1,c:f+m-1}});var q=A.t||A["data-t"]||"";if(!C.length){f+=m;continue}if(C=o8(C),g.s.r>u&&(g.s.r=u),g.e.rf&&(g.s.c=f),g.e.ct||i[u].s.c>s||i[u].e.r1&&(g.rowspan=a),l>1&&(g.colspan=l),r.editable?m=''+m+"":h&&(g["data-t"]=h&&h.t||"z",null!=h.v&&(g["data-v"]=h.v),null!=h.z&&(g["data-z"]=h.z),h.l&&"#"!=(h.l.Target||"#").charAt(0)&&(m=''+m+"")),g.id=(r.id||"sjs")+"-"+f,o.push(Me("td",m,g))}}return""+o.join("")+""}function x6(e,n,t){var r=t||{};null!=Qn&&(r.dense=Qn);var i=0,o=0;if(null!=r.origin)if("number"==typeof r.origin)i=r.origin;else{var s="string"==typeof r.origin?Xn(r.origin):r.origin;i=s.r,o=s.c}var a=n.getElementsByTagName("tr"),l=Math.min(r.sheetRows||1e7,a.length),u={s:{r:0,c:0},e:{r:i,c:o}};if(e["!ref"]){var f=Wo(e["!ref"]);u.s.r=Math.min(u.s.r,f.s.r),u.s.c=Math.min(u.s.c,f.s.c),u.e.r=Math.max(u.e.r,f.e.r),u.e.c=Math.max(u.e.c,f.e.c),-1==i&&(u.e.r=i=f.e.r+1)}var h=[],m=0,g=e["!rows"]||(e["!rows"]=[]),v=0,_=0,x=0,b=0,w=0,C=0;for(e["!cols"]||(e["!cols"]=[]);v1||C>1)&&h.push({s:{r:_+i,c:b+o},e:{r:_+i+(w||1)-1,c:b+o+(C||1)-1}});var ee={t:"s",v:A},ie=U.getAttribute("data-t")||U.getAttribute("t")||"";null!=A&&(0==A.length?ee.t=ie||"z":r.raw||0==A.trim().length||"s"==ie||("TRUE"===A?ee={t:"b",v:!0}:"FALSE"===A?ee={t:"b",v:!1}:isNaN(fa(A))?isNaN(Mp(A).getDate())||(ee={t:"d",v:qn(A)},r.cellDates||(ee={t:"n",v:Pr(ee.v)}),ee.z=r.dateNF||ot[14]):ee={t:"n",v:fa(A)})),void 0===ee.z&&null!=q&&(ee.z=q);var Y="",Ie=U.getElementsByTagName("A");if(Ie&&Ie.length)for(var Ue=0;Ue=l&&(e["!fullref"]=wt((u.e.r=a.length-v+_-1+i,u))),e}function b6(e,n){return x6((n||{}).dense?[]:{},e,n)}function w6(e){var n="",t=function ffe(e){return e.ownerDocument.defaultView&&"function"==typeof e.ownerDocument.defaultView.getComputedStyle?e.ownerDocument.defaultView.getComputedStyle:"function"==typeof getComputedStyle?getComputedStyle:null}(e);return t&&(n=t(e).getPropertyValue("display")),n||(n=e.style&&e.style.display),"none"===n}function hfe(e){var n=e.replace(/[\t\r\n]/g," ").trim().replace(/ +/g," ").replace(//g," ").replace(//g,function(r,i){return Array(parseInt(i,10)+1).join(" ")}).replace(/]*\/>/g,"\t").replace(//g,"\n");return[$t(n.replace(/<[^>]*>/g,""))]}var E6={day:["d","dd"],month:["m","mm"],year:["y","yy"],hours:["h","hh"],minutes:["m","mm"],seconds:["s","ss"],"am-pm":["A/P","AM/PM"],"day-of-week":["ddd","dddd"],era:["e","ee"],quarter:["\\Qm",'m\\"th quarter"']};function C6(e,n){var t=n||{};null!=Qn&&null==t.dense&&(t.dense=Qn);var o,s,f,h,_,x,r=HI(e),i=[],a={name:""},l="",u=0,m={},g=[],v=t.dense?[]:{},b={value:""},w="",C=0,z=[],U=-1,A=-1,q={s:{r:1e6,c:1e7},e:{r:0,c:0}},G=0,ee={},ie=[],Y={},Ie=0,Ue=0,Ae=[],he=1,pe=1,ke=[],ve={Names:[]},Ne={},de=["",""],P=[],K={},V="",H=0,fe=!1,Ee=!1,Ce=0;for(g_.lastIndex=0,r=r.replace(//gm,"").replace(//gm,"");_=g_.exec(r);)switch(_[3]=_[3].replace(/_.*$/,"")){case"table":case"\u5de5\u4f5c\u8868":"/"===_[1]?(v["!ref"]=q.e.c>=q.s.c&&q.e.r>=q.s.r?wt(q):"A1:A1",t.sheetRows>0&&t.sheetRows<=q.e.r&&(v["!fullref"]=v["!ref"],q.e.r=t.sheetRows-1,v["!ref"]=wt(q)),ie.length&&(v["!merges"]=ie),Ae.length&&(v["!rows"]=Ae),f.name=f.\u540d\u79f0||f.name,typeof JSON<"u"&&JSON.stringify(f),g.push(f.name),m[f.name]=v,Ee=!1):"/"!==_[0].charAt(_[0].length-2)&&(f=dt(_[0],!1),U=A=-1,q.s.r=q.s.c=1e7,q.e.r=q.e.c=0,v=t.dense?[]:{},ie=[],Ae=[],Ee=!0);break;case"table-row-group":"/"===_[1]?--G:++G;break;case"table-row":case"\u884c":if("/"===_[1]){U+=he,he=1;break}if((h=dt(_[0],!1)).\u884c\u53f7?U=h.\u884c\u53f7-1:-1==U&&(U=0),(he=+h["number-rows-repeated"]||1)<10)for(Ce=0;Ce0&&(Ae[U+Ce]={level:G});A=-1;break;case"covered-table-cell":"/"!==_[1]&&++A,t.sheetStubs&&(t.dense?(v[U]||(v[U]=[]),v[U][A]={t:"z"}):v[ft({r:U,c:A})]={t:"z"}),w="",z=[];break;case"table-cell":case"\u6570\u636e":if("/"===_[0].charAt(_[0].length-2))++A,b=dt(_[0],!1),pe=parseInt(b["number-columns-repeated"]||"1",10),x={t:"z",v:null},b.formula&&0!=t.cellFormula&&(x.f=ZV($t(b.formula))),"string"==(b.\u6570\u636e\u7c7b\u578b||b["value-type"])&&(x.t="s",x.v=$t(b["string-value"]||""),t.dense?(v[U]||(v[U]=[]),v[U][A]=x):v[ft({r:U,c:A})]=x),A+=pe-1;else if("/"!==_[1]){w="",C=0,z=[],pe=1;var we=he?U+he-1:U;if(++A>q.e.c&&(q.e.c=A),Aq.e.r&&(q.e.r=we),P=[],K={},x={t:(b=dt(_[0],!1)).\u6570\u636e\u7c7b\u578b||b["value-type"],v:null},t.cellFormula)if(b.formula&&(b.formula=$t(b.formula)),b["number-matrix-columns-spanned"]&&b["number-matrix-rows-spanned"]&&(Ie=parseInt(b["number-matrix-rows-spanned"],10)||0,Ue=parseInt(b["number-matrix-columns-spanned"],10)||0,x.F=wt(Y={s:{r:U,c:A},e:{r:U+Ie-1,c:A+Ue-1}}),ke.push([Y,x.F])),b.formula)x.f=ZV(b.formula);else for(Ce=0;Ce=ke[Ce][0].s.r&&U<=ke[Ce][0].e.r&&A>=ke[Ce][0].s.c&&A<=ke[Ce][0].e.c&&(x.F=ke[Ce][1]);switch((b["number-columns-spanned"]||b["number-rows-spanned"])&&(Ie=parseInt(b["number-rows-spanned"],10)||0,Ue=parseInt(b["number-columns-spanned"],10)||0,ie.push(Y={s:{r:U,c:A},e:{r:U+Ie-1,c:A+Ue-1}})),b["number-columns-repeated"]&&(pe=parseInt(b["number-columns-repeated"],10)),x.t){case"boolean":x.t="b",x.v=On(b["boolean-value"]);break;case"float":case"percentage":case"currency":x.t="n",x.v=parseFloat(b.value);break;case"date":x.t="d",x.v=qn(b["date-value"]),t.cellDates||(x.t="n",x.v=Pr(x.v)),x.z="m/d/yy";break;case"time":x.t="n",x.v=qte(b["time-value"])/86400,t.cellDates&&(x.t="d",x.v=D1(x.v)),x.z="HH:MM:SS";break;case"number":x.t="n",x.v=parseFloat(b.\u6570\u636e\u6570\u503c);break;default:if("string"!==x.t&&"text"!==x.t&&x.t)throw new Error("Unsupported value type "+x.t);x.t="s",null!=b["string-value"]&&(w=$t(b["string-value"]),z=[])}}else{if(fe=!1,"s"===x.t&&(x.v=w||"",z.length&&(x.R=z),fe=0==C),Ne.Target&&(x.l=Ne),P.length>0&&(x.c=P,P=[]),w&&!1!==t.cellText&&(x.w=w),fe&&(x.t="z",delete x.v),(!fe||t.sheetStubs)&&!(t.sheetRows&&t.sheetRows<=U))for(var _e=0;_e0;)v[U+_e][A+pe]=wn(x);else for(v[ft({r:U+_e,c:A})]=x;--pe>0;)v[ft({r:U+_e,c:A+pe})]=wn(x);q.e.c<=A&&(q.e.c=A)}A+=(pe=parseInt(b["number-columns-repeated"]||"1",10))-1,pe=0,x={},w="",z=[]}Ne={};break;case"document":case"document-content":case"\u7535\u5b50\u8868\u683c\u6587\u6863":case"spreadsheet":case"\u4e3b\u4f53":case"scripts":case"styles":case"font-face-decls":case"master-styles":if("/"===_[1]){if((o=i.pop())[0]!==_[3])throw"Bad state: "+o}else"/"!==_[0].charAt(_[0].length-2)&&i.push([_[3],!0]);break;case"annotation":if("/"===_[1]){if((o=i.pop())[0]!==_[3])throw"Bad state: "+o;K.t=w,z.length&&(K.R=z),K.a=V,P.push(K)}else"/"!==_[0].charAt(_[0].length-2)&&i.push([_[3],!1]);V="",H=0,w="",C=0,z=[];break;case"creator":"/"===_[1]?V=r.slice(H,_.index):H=_.index+_[0].length;break;case"meta":case"\u5143\u6570\u636e":case"settings":case"config-item-set":case"config-item-map-indexed":case"config-item-map-entry":case"config-item-map-named":case"shapes":case"frame":case"text-box":case"image":case"data-pilot-tables":case"list-style":case"form":case"dde-links":case"event-listeners":case"chart":if("/"===_[1]){if((o=i.pop())[0]!==_[3])throw"Bad state: "+o}else"/"!==_[0].charAt(_[0].length-2)&&i.push([_[3],!1]);w="",C=0,z=[];break;case"scientific-number":case"currency-symbol":case"currency-style":case"script":case"libraries":case"automatic-styles":case"default-style":case"page-layout":case"style":case"map":case"font-face":case"paragraph-properties":case"table-properties":case"table-column-properties":case"table-row-properties":case"table-cell-properties":case"fraction":case"boolean-style":case"boolean":case"text-style":case"text-content":case"text-properties":case"embedded-text":case"body":case"\u7535\u5b50\u8868\u683c":case"forms":case"table-column":case"table-header-rows":case"table-rows":case"table-column-group":case"table-header-columns":case"table-columns":case"null-date":case"graphic-properties":case"calculation-settings":case"named-expressions":case"label-range":case"label-ranges":case"named-expression":case"sort":case"sort-by":case"sort-groups":case"tab":case"line-break":case"span":case"s":case"date":case"object":case"title":case"\u6807\u9898":case"desc":case"binary-data":case"table-source":case"scenario":case"iteration":case"content-validations":case"content-validation":case"help-message":case"error-message":case"database-ranges":case"filter":case"filter-and":case"filter-or":case"filter-condition":case"list-level-style-bullet":case"list-level-style-number":case"list-level-properties":case"sender-firstname":case"sender-lastname":case"sender-initials":case"sender-title":case"sender-position":case"sender-email":case"sender-phone-private":case"sender-fax":case"sender-company":case"sender-phone-work":case"sender-street":case"sender-city":case"sender-postal-code":case"sender-country":case"sender-state-or-province":case"author-name":case"author-initials":case"chapter":case"file-name":case"template-name":case"sheet-name":case"event-listener":case"initial-creator":case"creation-date":case"print-date":case"generator":case"document-statistic":case"user-defined":case"editing-duration":case"editing-cycles":case"config-item":case"page-number":case"page-count":case"time":case"cell-range-source":case"detective":case"operation":case"highlighted-range":case"data-pilot-table":case"source-cell-range":case"source-service":case"data-pilot-field":case"data-pilot-level":case"data-pilot-subtotals":case"data-pilot-subtotal":case"data-pilot-members":case"data-pilot-member":case"data-pilot-display-info":case"data-pilot-sort-info":case"data-pilot-layout-info":case"data-pilot-field-reference":case"data-pilot-groups":case"data-pilot-group":case"data-pilot-group-member":case"rect":case"dde-connection-decls":case"dde-connection-decl":case"dde-link":case"dde-source":case"properties":case"property":case"table-protection":case"data-pilot-grand-total":case"office-document-common-attrs":break;case"number-style":case"percentage-style":case"date-style":case"time-style":if("/"===_[1]){if(ee[a.name]=l,(o=i.pop())[0]!==_[3])throw"Bad state: "+o}else"/"!==_[0].charAt(_[0].length-2)&&(l="",a=dt(_[0],!1),i.push([_[3],!0]));break;case"number":case"day":case"month":case"year":case"era":case"day-of-week":case"week-of-year":case"quarter":case"hours":case"minutes":case"seconds":case"am-pm":switch(i[i.length-1][0]){case"time-style":case"date-style":s=dt(_[0],!1),l+=E6[_[3]]["long"===s.style?1:0]}break;case"text":if("/>"===_[0].slice(-2))break;if("/"===_[1])switch(i[i.length-1][0]){case"number-style":case"date-style":case"time-style":l+=r.slice(u,_.index)}else u=_.index+_[0].length;break;case"named-range":de=TA((s=dt(_[0],!1))["cell-range-address"]);var pt={Name:s.name,Ref:de[0]+"!"+de[1]};Ee&&(pt.Sheet=g.length),ve.Names.push(pt);break;case"p":case"\u6587\u672c\u4e32":if(["master-styles"].indexOf(i[i.length-1][0])>-1)break;if("/"!==_[1]||b&&b["string-value"])dt(_[0],!1),C=_.index+_[0].length;else{var B=hfe(r.slice(C,_.index));w=(w.length>0?w+"\n":"")+B[0]}break;case"database-range":if("/"===_[1])break;try{m[(de=TA(dt(_[0])["target-range-address"]))[0]]["!autofilter"]={ref:de[1]}}catch{}break;case"a":if("/"!==_[1]){if(!(Ne=dt(_[0],!1)).href)break;Ne.Target=$t(Ne.href),delete Ne.href,"#"==Ne.Target.charAt(0)&&Ne.Target.indexOf(".")>-1?(de=TA(Ne.Target.slice(1)),Ne.Target="#"+de[0]+"!"+de[1]):Ne.Target.match(/^\.\.[\\\/]/)&&(Ne.Target=Ne.Target.slice(3))}break;default:switch(_[2]){case"dc:":case"calcext:":case"loext:":case"ooo:":case"chartooo:":case"draw:":case"style:":case"chart:":case"form:":case"uof:":case"\u8868:":case"\u5b57:":break;default:if(t.WTF)throw new Error(_)}}var cn={Sheets:m,SheetNames:g,Workbook:ve};return t.bookSheets&&delete cn.Sheets,cn}function D6(e,n){return C6(e,n)}function mf(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function FA(e){return typeof TextDecoder<"u"?(new TextDecoder).decode(e):pn(ru(e))}function fu(e){var n=e.reduce(function(i,o){return i+o.length},0),t=new Uint8Array(n),r=0;return e.forEach(function(i){t.set(i,r),r+=i.length}),t}function A6(e){return 16843009*((e=(858993459&(e-=e>>1&1431655765))+(e>>2&858993459))+(e>>4)&252645135)>>>24}function B_(e,n){var t=n?n[0]:0,r=127&e[t];e:if(e[t++]>=128&&(r|=(127&e[t])<<7,e[t++]<128||(r|=(127&e[t])<<14,e[t++]<128)||(r|=(127&e[t])<<21,e[t++]<128)||(r+=(127&e[t])*Math.pow(2,28),++t,e[t++]<128)||(r+=(127&e[t])*Math.pow(2,35),++t,e[t++]<128)||(r+=(127&e[t])*Math.pow(2,42),++t,e[t++]<128)))break e;return n&&(n[0]=t),r}function nr(e){var n=0,t=127&e[n];e:if(e[n++]>=128){if(t|=(127&e[n])<<7,e[n++]<128||(t|=(127&e[n])<<14,e[n++]<128)||(t|=(127&e[n])<<21,e[n++]<128))break e;t|=(127&e[n])<<28}return t}function qt(e){for(var n=[],t=[0];t[0]=128;);a=e.slice(l,t[0]);break;case 5:a=e.slice(t[0],t[0]+(s=4)),t[0]+=s;break;case 1:a=e.slice(t[0],t[0]+(s=8)),t[0]+=s;break;case 2:s=B_(e,t),a=e.slice(t[0],t[0]+s),t[0]+=s;break;default:throw new Error("PB Type ".concat(o," for Field ").concat(i," at offset ").concat(r))}var u={data:a,type:o};null==n[i]?n[i]=[u]:n[i].push(u)}return n}function RA(e,n){return e?.map(function(t){return n(t.data)})||[]}function yfe(e,n){if(0!=e)throw new Error("Unexpected Snappy chunk type ".concat(e));for(var t=[0],r=B_(n,t),i=[];t[0]>2&7),l=(224&n[t[0]++])<<3,l|=n[t[0]++]):(u=1+(n[t[0]++]>>2),2==o?(l=n[t[0]]|n[t[0]+1]<<8,t[0]+=2):(l=(n[t[0]]|n[t[0]+1]<<8|n[t[0]+2]<<16|n[t[0]+3]<<24)>>>0,t[0]+=4)),i=[fu(i)],0==l)throw new Error("Invalid offset 0");if(l>i[0].length)throw new Error("Invalid offset beyond length");if(u>=l)for(i.push(i[0].slice(-l)),u-=l;u>=i[i.length-1].length;)i.push(i[i.length-1]),u-=i[i.length-1].length;i.push(i[0].slice(-l,-l+u))}else{var s=n[t[0]++]>>2;if(s<60)++s;else{var a=s-59;s=n[t[0]],a>1&&(s|=n[t[0]+1]<<8),a>2&&(s|=n[t[0]+2]<<16),a>3&&(s|=n[t[0]+3]<<24),s>>>=0,s++,t[0]+=a}i.push(n.slice(t[0],t[0]+s)),t[0]+=s}}var f=fu(i);if(f.length!=r)throw new Error("Unexpected length: ".concat(f.length," != ").concat(r));return f}function wfe(e,n,t){switch(e[0]){case 0:case 1:case 2:case 3:return function xfe(e,n,t,r){var h,i=mf(e),o=i.getUint32(4,!0),s=(r>1?12:8)+4*A6(o&(r>1?3470:398)),a=-1,l=-1,u=NaN,f=new Date(2001,0,1);switch(512&o&&(a=i.getUint32(s,!0),s+=4),s+=4*A6(o&(r>1?12288:4096)),16&o&&(l=i.getUint32(s,!0),s+=4),32&o&&(u=i.getFloat64(s,!0),s+=8),64&o&&(f.setTime(f.getTime()+1e3*i.getFloat64(s,!0)),s+=8),e[2]){case 0:break;case 2:h={t:"n",v:u};break;case 3:h={t:"s",v:n[l]};break;case 5:h={t:"d",v:f};break;case 6:h={t:"b",v:u>0};break;case 7:h={t:"n",v:u/86400};break;case 8:h={t:"e",v:0};break;case 9:if(a>-1)h={t:"s",v:t[a]};else if(l>-1)h={t:"s",v:n[l]};else{if(isNaN(u))throw new Error("Unsupported cell type ".concat(e.slice(0,4)));h={t:"n",v:u}}break;default:throw new Error("Unsupported cell type ".concat(e.slice(0,4)))}return h}(e,n,t,e[0]);case 5:return function bfe(e,n,t){var h,r=mf(e),i=r.getUint32(8,!0),o=12,s=-1,a=-1,l=NaN,u=NaN,f=new Date(2001,0,1);switch(1&i&&(l=function _fe(e,n){for(var t=(127&e[n+15])<<7|e[n+14]>>1,r=1&e[n+14],i=n+13;i>=n;--i)r=256*r+e[i];return(128&e[n+15]?-r:r)*Math.pow(10,t-6176)}(e,o),o+=16),2&i&&(u=r.getFloat64(o,!0),o+=8),4&i&&(f.setTime(f.getTime()+1e3*r.getFloat64(o,!0)),o+=8),8&i&&(a=r.getUint32(o,!0),o+=4),16&i&&(s=r.getUint32(o,!0),o+=4),e[1]){case 0:break;case 2:case 10:h={t:"n",v:l};break;case 3:h={t:"s",v:n[a]};break;case 5:h={t:"d",v:f};break;case 6:h={t:"b",v:u>0};break;case 7:h={t:"n",v:u/86400};break;case 8:h={t:"e",v:0};break;case 9:if(!(s>-1))throw new Error("Unsupported cell type ".concat(e[1]," : ").concat(31&i," : ").concat(e.slice(0,4)));h={t:"s",v:t[s]};break;default:throw new Error("Unsupported cell type ".concat(e[1]," : ").concat(31&i," : ").concat(e.slice(0,4)))}return h}(e,n,t);default:throw new Error("Unsupported payload version ".concat(e[0]))}}function Mi(e){return B_(qt(e)[1][0].data)}function k6(e,n){var t=qt(n.data),r=nr(t[1][0].data),o=[];return(t[3]||[]).forEach(function(s){var a=qt(s.data),l=nr(a[1][0].data)>>>0;switch(r){case 1:o[l]=FA(a[3][0].data);break;case 8:var f=qt(e[Mi(a[9][0].data)][0].data),h=e[Mi(f[1][0].data)][0],m=nr(h.meta[1][0].data);if(2001!=m)throw new Error("2000 unexpected reference to ".concat(m));var g=qt(h.data);o[l]=g[3].map(function(v){return FA(v.data)}).join("")}}),o}function Dfe(e,n){var r={"!ref":"A1"},i=e[Mi(qt(n.data)[2][0].data)],o=nr(i[0].meta[1][0].data);if(6001!=o)throw new Error("6000 unexpected reference to ".concat(o));return function Tfe(e,n,t){var r,i=qt(n.data),o={s:{r:0,c:0},e:{r:0,c:0}};if(o.e.r=(nr(i[6][0].data)>>>0)-1,o.e.r<0)throw new Error("Invalid row varint ".concat(i[6][0].data));if(o.e.c=(nr(i[7][0].data)>>>0)-1,o.e.c<0)throw new Error("Invalid col varint ".concat(i[7][0].data));t["!ref"]=wt(o);var s=qt(i[4][0].data),a=k6(e,e[Mi(s[4][0].data)][0]),l=null!=(r=s[17])&&r[0]?k6(e,e[Mi(s[17][0].data)][0]):[],u=qt(s[3][0].data),f=0;u[1].forEach(function(h){var m=qt(h.data),g=e[Mi(m[2][0].data)][0],v=nr(g.meta[1][0].data);if(6002!=v)throw new Error("6001 unexpected reference to ".concat(v));var _=function Cfe(e,n){var t,r=qt(n.data),i=null!=(t=r?.[7])&&t[0]?nr(r[7][0].data)>>>0>0?1:0:-1,o=RA(r[5],function(s){return function Efe(e,n){var t,r,i,o,s,a,l,u,f,h,m,g,v,_,O,z,x=qt(e),b=nr(x[1][0].data)>>>0,w=nr(x[2][0].data)>>>0,C=(null==(r=null==(t=x[8])?void 0:t[0])?void 0:r.data)&&nr(x[8][0].data)>0||!1;if(null!=(o=null==(i=x[7])?void 0:i[0])&&o.data&&0!=n)O=null==(a=null==(s=x[7])?void 0:s[0])?void 0:a.data,z=null==(u=null==(l=x[6])?void 0:l[0])?void 0:u.data;else{if(null==(h=null==(f=x[4])?void 0:f[0])||!h.data||1==n)throw"NUMBERS Tile missing ".concat(n," cell storage");O=null==(g=null==(m=x[4])?void 0:m[0])?void 0:g.data,z=null==(_=null==(v=x[3])?void 0:v[0])?void 0:_.data}for(var U=C?4:1,A=mf(O),q=[],G=0;G=1&&(ie[q[q.length-1][0]]=z.subarray(q[q.length-1][1]*U)),{R:b,cells:ie}}(s,i)});return{nrows:nr(r[4][0].data)>>>0,data:o.reduce(function(s,a){return s[a.R]||(s[a.R]=[]),a.cells.forEach(function(l,u){if(s[a.R][u])throw new Error("Duplicate cell r=".concat(a.R," c=").concat(u));s[a.R][u]=l}),s},[])}}(0,g);_.data.forEach(function(x,b){x.forEach(function(w,C){var O=ft({r:f+b,c:C}),z=wfe(w,a,l);z&&(t[O]=z)})}),f+=_.nrows})}(e,i[0],r),r}function PA(e){var n,t,r,i,o={},s=[];if(e.FullPaths.forEach(function(l){if(l.match(/\.iwpv2/))throw new Error("Unsupported password protection")}),e.FileIndex.forEach(function(l){if(l.name.match(/\.iwa$/)){var u,f;try{u=function As(e){for(var n=[],t=0;t>>0>0),t.push(s)}return t}(u)}catch(h){return console.log("## "+(h.message||h))}f.forEach(function(h){o[h.id]=h.messages,s.push(h.id)})}}),!s.length)throw new Error("File has no messages");var a=(null==(i=null==(r=null==(t=null==(n=o?.[1])?void 0:n[0])?void 0:t.meta)?void 0:r[1])?void 0:i[0].data)&&1==nr(o[1][0].meta[1][0].data)&&o[1][0];if(a||s.forEach(function(l){o[l].forEach(function(u){if(1==nr(u.meta[1][0].data)>>>0){if(a)throw new Error("Document has multiple roots");a=u}})}),!a)throw new Error("Cannot find Document root");return function Ife(e,n){var t={SheetNames:[],Sheets:{}};if(RA(qt(n.data)[1],Mi).forEach(function(o){e[o].forEach(function(s){if(2==nr(s.meta[1][0].data)){var l=function Sfe(e,n){var t,r=qt(n.data),i={name:null!=(t=r[1])&&t[0]?FA(r[1][0].data):"",sheets:[]};return RA(r[2],Mi).forEach(function(s){e[s].forEach(function(a){6e3==nr(a.meta[1][0].data)&&i.sheets.push(Dfe(e,a))})}),i}(e,s);l.sheets.forEach(function(u,f){WA(t,u,0==f?l.name:l.name+"_"+f,!0)})}})}),0==t.SheetNames.length)throw new Error("Empty NUMBERS file");return t}(o,a)}function LA(e){!function M6(e){return function(t){for(var r=0;r!=e.length;++r){var i=e[r];void 0===t[i[0]]&&(t[i[0]]=i[1]),"n"===i[2]&&(t[i[0]]=Number(t[i[0]]))}}}([["cellNF",!1],["cellHTML",!0],["cellFormula",!0],["cellStyles",!1],["cellText",!0],["cellDates",!1],["sheetStubs",!1],["sheetRows",0,"n"],["bookDeps",!1],["bookSheets",!1],["bookProps",!1],["bookFiles",!1],["bookVBA",!1],["password",""],["WTF",!1]])(e)}function Mfe(e){return Et.WS.indexOf(e)>-1?"sheet":Et.CS&&e==Et.CS?"chart":Et.DS&&e==Et.DS?"dialog":Et.MS&&e==Et.MS?"macro":e&&e.length?e:"sheet"}function Rfe(e,n,t,r,i,o,s,a,l,u,f,h){try{o[r]=b_(zo(e,t,!0),n);var g,m=yr(e,n);switch(a){case"sheet":g=ode(m,n,i,l,o[r],u,f,h);break;case"chart":if(!(g=function sde(e,n,t,r,i,o,s,a){return".bin"===n.slice(-4)?function Pue(e,n,t,r,i){if(!e)return e;r||(r={"!id":{}});var o={"!type":"chart","!drawel":null,"!rel":""},s=[],a=!1;return Bl(e,function(u,f,h){switch(h){case 550:o["!rel"]=u;break;case 651:i.Sheets[t]||(i.Sheets[t]={}),u.name&&(i.Sheets[t].CodeName=u.name);break;case 562:case 652:case 669:case 679:case 551:case 552:case 476:case 3072:break;case 35:a=!0;break;case 36:a=!1;break;case 37:s.push(h);break;case 38:s.pop();break;default:if(f.T>0)s.push(h);else if(f.T<0)s.pop();else if(!a||n.WTF)throw new Error("Unexpected record 0x"+h.toString(16))}},n),r["!id"][o["!rel"]]&&(o["!drawel"]=r["!id"][o["!rel"]]),o}(e,r,t,i,o):function Rue(e,n,t,r,i){if(!e)return e;r||(r={"!id":{}});var s,o={"!type":"chart","!drawel":null,"!rel":""},a=e.match(JV);return a&&SA(a[0],0,i,t),(s=e.match(/drawing r:id="(.*?)"/))&&(o["!rel"]=s[1]),r["!id"][o["!rel"]]&&(o["!drawel"]=r["!id"][o["!rel"]]),o}(e,0,t,i,o)}(m,n,i,l,o[r],u))||!g["!drawel"])break;var v=p_(g["!drawel"].Target,n),_=x_(v),x=function qse(e,n){if(!e)return"??";var t=(e.match(/]*r:id="([^"]*)"/)||["",""])[1];return n["!id"][t].Target}(zo(e,v,!0),b_(zo(e,_,!0),v)),b=p_(x,v),w=x_(b);g=function Fue(e,n,t,r,i,o){var s=o||{"!type":"chart"};if(!e)return o;var a=0,l=0,u="A",f={s:{r:2e6,c:2e6},e:{r:0,c:0}};return(e.match(/[\s\S]*?<\/c:numCache>/gm)||[]).forEach(function(h){var m=function Mue(e){var r,n=[],t=e.match(/^/);(e.match(/(.*?)<\/c:pt>/gm)||[]).forEach(function(o){var s=o.match(/(.*)<\/c:v><\/c:pt>/);s&&(n[+s[1]]=t?+s[2]:s[2])});var i=$t((e.match(/([\s\S]*?)<\/c:formatCode>/)||["","General"])[1]);return(e.match(/(.*?)<\/c:f>/gm)||[]).forEach(function(o){r=o.replace(/<.*?>/g,"")}),[n,i,r]}(h);f.s.r=f.s.c=0,f.e.c=a,u=Nn(a),m[0].forEach(function(g,v){s[u+tr(v)]={t:"n",v:g,z:m[1]},l=v}),f.e.r0&&(s["!ref"]=wt(f)),s}(zo(e,b,!0),0,0,b_(zo(e,w,!0),b),0,g);break;case"macro":g=function ade(e,n){return n.slice(-4),{"!type":"macro"}}(0,n);break;case"dialog":g=function lde(e,n){return n.slice(-4),{"!type":"dialog"}}(0,n);break;default:throw new Error("Unrecognized sheet type "+a)}s[r]=g;var C=[];o&&o[r]&&Jn(o[r]).forEach(function(O){var z="";if(o[r][O].Type==Et.CMNT){z=p_(o[r][O].Target,n);var U=function fde(e,n,t){return".bin"===n.slice(-4)?function rae(e,n){var t=[],r=[],i={},o=!1;return Bl(e,function(a,l,u){switch(u){case 632:r.push(a);break;case 635:i=a;break;case 637:i.t=a.t,i.h=a.h,i.r=a.r;break;case 636:if(i.author=r[i.iauthor],delete i.iauthor,n.sheetRows&&i.rfx&&n.sheetRows<=i.rfx.r)break;i.t||(i.t=""),delete i.rfx,t.push(i);break;case 3072:case 37:case 38:break;case 35:o=!0;break;case 36:o=!1;break;default:if(!l.T&&(!o||n.WTF))throw new Error("Unexpected record 0x"+u.toString(16))}}),t}(e,t):function Xse(e,n){if(e.match(/<(?:\w+:)?comments *\/>/))return[];var t=[],r=[],i=e.match(/<(?:\w+:)?authors>([\s\S]*)<\/(?:\w+:)?authors>/);i&&i[1]&&i[1].split(/<\/\w*:?author>/).forEach(function(s){if(""!==s&&""!==s.trim()){var a=s.match(/<(?:\w+:)?author[^>]*>(.*)/);a&&t.push(a[1])}});var o=e.match(/<(?:\w+:)?commentList>([\s\S]*)<\/(?:\w+:)?commentList>/);return o&&o[1]&&o[1].split(/<\/\w*:?comment>/).forEach(function(s){if(""!==s&&""!==s.trim()){var a=s.match(/<(?:\w+:)?comment[^>]*>/);if(a){var l=dt(a[0]),u={author:l.authorId&&t[l.authorId]||"sheetjsghost",ref:l.ref,guid:l.guid},f=Xn(l.ref);if(!(n.sheetRows&&n.sheetRows<=f.r)){var h=s.match(/<(?:\w+:)?text>([\s\S]*)<\/(?:\w+:)?text>/),m=!!h&&!!h[1]&&mA(h[1])||{r:"",t:"",h:""};u.r=m.r,""==m.r&&(m.t=m.h=""),u.t=(m.t||"").replace(/\r\n/g,"\n").replace(/\r/g,"\n"),n.cellHTML&&(u.h=m.h),r.push(u)}}}}),r}(e,t)}(yr(e,z,!0),z,l);if(!U||!U.length)return;PV(g,U,!1)}o[r][O].Type==Et.TCMNT&&(z=p_(o[r][O].Target,n),C=C.concat(function Yse(e,n){var t=[],r=!1,i={},o=0;return e.replace(Ci,function(a,l){var u=dt(a);switch(Ua(u[0])){case"":case"":case"":case"":break;case"":null!=i.t&&t.push(i);break;case"":case"":i.t=e.slice(o,l).replace(/\r\n/g,"\n").replace(/\r/g,"\n");break;case"":case"":case"":r=!1;break;default:if(!r&&n.WTF)throw new Error("unrecognized "+u[0]+" in threaded comments")}return a}),t}(yr(e,z,!0),l)))}),C&&C.length&&PV(g,C,!0,l.people||[])}catch(O){if(l.WTF)throw O}}function ks(e){return"/"==e.charAt(0)?e.slice(1):e}function Ofe(e,n){if(kp(),LA(n=n||{}),Cs(e,"META-INF/manifest.xml")||Cs(e,"objectdata.xml"))return function T6(e,n){n=n||{},Cs(e,"META-INF/manifest.xml")&&function $ne(e,n){for(var r,i,t=HI(e);r=g_.exec(t);)switch(r[3]){case"manifest":break;case"file-entry":if("/"==(i=dt(r[0],!1)).path&&i.type!==zne)throw new Error("This OpenDocument is not a spreadsheet");break;case"encryption-data":case"algorithm":case"start-key-generation":case"key-derivation":throw new Error("Unsupported ODS Encryption");default:if(n&&n.WTF)throw r}}(yr(e,"META-INF/manifest.xml"),n);var t=zo(e,"content.xml");if(!t)throw new Error("Missing content.xml in ODS / UOF file");var r=C6(pn(t),n);return Cs(e,"meta.xml")&&(r.Props=P8(yr(e,"meta.xml"))),r}(e,n);if(Cs(e,"Index/Document.iwa")){if(typeof Uint8Array>"u")throw new Error("NUMBERS file parsing requires Uint8Array support");if(e.FileIndex)return PA(e);var t=Qe.utils.cfb_new();return KB(e).forEach(function(Ue){!function Ct(e,n,t){if(e.FullPaths){var r;if("string"==typeof t)return r=It?Nl(t):function mte(e){for(var n=[],t=0,r=e.length+250,i=nu(e.length+255),o=0;o>6&31,i[t++]=128|63&s;else if(s>=55296&&s<57344){s=64+(1023&s);var a=1023&e.charCodeAt(++o);i[t++]=240|s>>8&7,i[t++]=128|s>>2&63,i[t++]=128|a>>6&15|(3&s)<<4,i[t++]=128|63&a}else i[t++]=224|s>>12&15,i[t++]=128|s>>6&63,i[t++]=128|63&s;t>r&&(n.push(i.slice(0,t)),t=0,i=nu(65535),r=65530)}return n.push(i.slice(0,t)),qr(n)}(t),Qe.utils.cfb_add(e,n,r);Qe.utils.cfb_add(e,n,t)}else e.file(n,t)}(t,Ue,YB(e,Ue))}),PA(t)}if(!Cs(e,"[Content_Types].xml"))throw Cs(e,"index.xml.gz")?new Error("Unsupported NUMBERS 08 file"):Cs(e,"index.xml")?new Error("Unsupported NUMBERS 09 file"):new Error("Unsupported ZIP file");var s,a,r=KB(e),i=function jne(e){var n={workbooks:[],sheets:[],charts:[],dialogs:[],macros:[],rels:[],strs:[],comments:[],threadedcomments:[],links:[],coreprops:[],extprops:[],custprops:[],themes:[],styles:[],calcchains:[],vba:[],drawings:[],metadata:[],people:[],TODO:[],xmlns:""};if(!e||!e.match)return n;var t={};if((e.match(Ci)||[]).forEach(function(r){var i=dt(r);switch(i[0].replace(ene,"<")){case"0?n.calcchains[0]:"",n.sst=n.strs.length>0?n.strs[0]:"",n.style=n.styles.length>0?n.styles[0]:"",n.defaults=t,delete n.calcchains,n}(zo(e,"[Content_Types].xml")),o=!1;if(0===i.workbooks.length&&yr(e,a="xl/workbook.xml",!0)&&i.workbooks.push(a),0===i.workbooks.length){if(!yr(e,a="xl/workbook.bin",!0))throw new Error("Could not find workbook");i.workbooks.push(a),o=!0}"bin"==i.workbooks[0].slice(-3)&&(o=!0);var l={},u={};if(!n.bookSheets&&!n.bookProps){if(F_=[],i.sst)try{F_=function dde(e,n,t){return".bin"===n.slice(-4)?function foe(e,n){var t=[],r=!1;return Bl(e,function(o,s,a){switch(a){case 159:t.Count=o[0],t.Unique=o[1];break;case 19:t.push(o);break;case 160:return!0;case 35:r=!0;break;case 36:r=!1;break;default:if(!r||n.WTF)throw new Error("Unexpected record 0x"+a.toString(16))}}),t}(e,t):function coe(e,n){var t=[],r="";if(!e)return t;var i=e.match(soe);if(i){r=i[2].replace(aoe,"").split(loe);for(var o=0;o!=r.length;++o){var s=mA(r[o].trim(),n);null!=s&&(t[t.length]=s)}i=dt(i[1]),t.Count=i.count,t.Unique=i.uniqueCount}return t}(e,t)}(yr(e,ks(i.sst)),i.sst,n)}catch(Ue){if(n.WTF)throw Ue}n.cellStyles&&i.themes.length&&(l=function ude(e,n,t){return RV(e,t)}(zo(e,i.themes[0].replace(/^\//,""),!0)||"",0,n)),i.style&&(u=function cde(e,n,t,r){return".bin"===n.slice(-4)?function ose(e,n,t){var r={NumberFmt:[]};for(var i in ot)r.NumberFmt[i]=ot[i];r.CellXf=[],r.Fonts=[];var o=[],s=!1;return Bl(e,function(l,u,f){switch(f){case 44:r.NumberFmt[l[0]]=l[1],Va(l[1],l[0]);break;case 43:r.Fonts.push(l),null!=l.color.theme&&n&&n.themeElements&&n.themeElements.clrScheme&&(l.color.rgb=U1(n.themeElements.clrScheme[l.color.theme].rgb,l.color.tint||0));break;case 1025:case 45:case 46:case 48:case 507:case 572:case 475:case 1171:case 2102:case 1130:case 512:case 2095:case 3072:break;case 47:617==o[o.length-1]&&r.CellXf.push(l);break;case 35:s=!0;break;case 36:s=!1;break;case 37:o.push(f),s=!0;break;case 38:o.pop(),s=!1;break;default:if(u.T>0)o.push(f);else if(u.T<0)o.pop();else if(!s||t.WTF&&37!=o[o.length-1])throw new Error("Unexpected record 0x"+f.toString(16))}}),r}(e,t,r):qoe(e,t,r)}(yr(e,ks(i.style)),i.style,l,n))}i.links.map(function(Ue){try{return b_(zo(e,x_(ks(Ue))),Ue),function pde(e,n,t,r){return".bin"===t.slice(-4)?function Gse(e,n,t,r){if(!e)return e;var i=r||{},o=!1;Bl(e,function(l,u,f){switch(f){case 359:case 363:case 364:case 366:case 367:case 368:case 369:case 370:case 371:case 472:case 577:case 578:case 579:case 580:case 581:case 582:case 583:case 584:case 585:case 586:case 587:break;case 35:o=!0;break;case 36:o=!1;break;default:if(!u.T&&(!o||i.WTF))throw new Error("Unexpected record 0x"+f.toString(16))}},i)}(e,0,0,r):void 0}(yr(e,ks(Ue)),0,Ue,n)}catch{}});var f=function ide(e,n,t){return".bin"===n.slice(-4)?function Que(e,n){var t={AppVersion:{},WBProps:{},WBView:[],Sheets:[],CalcPr:{},xmlns:""},r=[],i=!1;n||(n={}),n.biff=12;var o=[],s=[[]];return s.SheetNames=[],s.XTI=[],P_[16]={n:"BrtFRTArchID$",f:Kue},Bl(e,function(l,u,f){switch(f){case 156:s.SheetNames.push(l.name),t.Sheets.push(l);break;case 153:t.WBProps=l;break;case 39:null!=l.Sheet&&(n.SID=l.Sheet),l.Ref=ki(l.Ptg,0,null,s,n),delete n.SID,delete l.Ptg,o.push(l);break;case 1036:case 361:case 2071:case 158:case 143:case 664:case 353:case 3072:case 3073:case 534:case 677:case 157:case 610:case 2050:case 155:case 548:case 676:case 128:case 665:case 2128:case 2125:case 549:case 2053:case 596:case 2076:case 2075:case 2082:case 397:case 154:case 1117:case 553:case 2091:case 16:break;case 357:case 358:case 355:case 667:s[0].length?s.push([f,l]):s[0]=[f,l],s[s.length-1].XTI=[];break;case 362:0===s.length&&(s[0]=[],s[0].XTI=[]),s[s.length-1].XTI=s[s.length-1].XTI.concat(l),s.XTI=s.XTI.concat(l);break;case 35:case 37:r.push(f),i=!0;break;case 36:case 38:r.pop(),i=!1;break;default:if(!u.T&&(!i||n.WTF&&37!=r[r.length-1]&&35!=r[r.length-1]))throw new Error("Unexpected record 0x"+f.toString(16))}},n),o6(t),t.Names=o,t.supbooks=s,t}(e,t):function Wue(e,n){if(!e)throw new Error("Could not find file");var t={AppVersion:{},WBProps:{},WBView:[],Sheets:[],CalcPr:{},Names:[],xmlns:""},r=!1,i="xmlns",o={},s=0;if(e.replace(Ci,function(l,u){var f=dt(l);switch(Ua(f[0])){case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":IA.forEach(function(h){if(null!=f[h[0]])switch(h[2]){case"bool":t.WBProps[h[0]]=On(f[h[0]]);break;case"int":t.WBProps[h[0]]=parseInt(f[h[0]],10);break;default:t.WBProps[h[0]]=f[h[0]]}}),f.codeName&&(t.WBProps.CodeName=pn(f.codeName));break;case"":delete f[0],t.WBView.push(f);break;case"":case"":r=!0;break;case"":case"":case"":r=!1;break;case"":o.Ref=$t(pn(e.slice(s,u))),t.Names.push(o);break;case"":delete f[0],t.CalcPr=f;break;default:if(!r&&n.WTF)throw new Error("unrecognized "+f[0]+" in workbook")}return l}),-1===au.indexOf(t.xmlns))throw new Error("Unknown Namespace: "+t.xmlns);return o6(t),t}(e,t)}(yr(e,ks(i.workbooks[0])),i.workbooks[0],n),h={},m="";i.coreprops.length&&((m=yr(e,ks(i.coreprops[0]),!0))&&(h=P8(m)),0!==i.extprops.length&&(m=yr(e,ks(i.extprops[0]),!0))&&function Kne(e,n,t){var r={};n||(n={}),e=pn(e),lf.forEach(function(i){var o=(e.match(m_(i[0]))||[])[1];switch(i[2]){case"string":o&&(n[i[1]]=$t(o));break;case"bool":n[i[1]]="true"===o;break;case"raw":var s=e.match(new RegExp("<"+i[0]+"[^>]*>([\\s\\S]*?)"));s&&s.length>0&&(r[i[1]]=s[1])}}),r.HeadingPairs&&r.TitlesOfParts&&V8(r.HeadingPairs,r.TitlesOfParts,n,t)}(m,h,n));var g={};(!n.bookSheets||n.bookProps)&&0!==i.custprops.length&&(m=zo(e,ks(i.custprops[0]),!0))&&(g=function Qne(e,n){var t={},r="",i=e.match(Zne);if(i)for(var o=0;o!=i.length;++o){var s=i[o],a=dt(s);switch(a[0]){case"":r=null;break;default:if(0===s.indexOf(""),u=l[0].slice(4),f=l[1];switch(u){case"lpstr":case"bstr":case"lpwstr":case"cy":case"error":t[r]=$t(f);break;case"bool":t[r]=On(f);break;case"i1":case"i2":case"i4":case"i8":case"int":case"uint":t[r]=parseInt(f,10);break;case"r4":case"r8":case"decimal":t[r]=parseFloat(f);break;case"filetime":case"date":t[r]=qn(f);break;default:if("/"==u.slice(-1))break;n.WTF&&typeof console<"u"&&console.warn("Unexpected",s,u,l)}}else if("0&&(s=h.SheetNames),n.bookProps&&(v.Props=h,v.Custprops=g),n.bookSheets&&typeof s<"u"&&(v.SheetNames=s),n.bookSheets?v.SheetNames:n.bookProps))return v;s={};var _={};n.bookDeps&&i.calcchain&&(_=function hde(e,n,t){return".bin"===n.slice(-4)?function Wse(e){var r=[];return Bl(e,function(s,a,l){if(63===l)r.push(s);else if(!a.T)throw new Error("Unexpected record 0x"+l.toString(16))}),r}(e):function zse(e){var n=[];if(!e)return n;var t=1;return(e.match(Ci)||[]).forEach(function(r){var i=dt(r);switch(i[0]){case"":case"":break;case"=1&&(n.xlmeta=function mde(e,n,t){return".bin"===n.slice(-4)?function Use(e,n,t){var r={Types:[],Cell:[],Value:[]},i=t||{},o=[],s=!1,a=2;return Bl(e,function(l,u,f){switch(f){case 335:r.Types.push({name:l.name});break;case 51:l.forEach(function(h){1==a?r.Cell.push({type:r.Types[h[0]-1].name,index:h[1]}):0==a&&r.Value.push({type:r.Types[h[0]-1].name,index:h[1]})});break;case 337:a=l?1:0;break;case 338:a=2;break;case 35:o.push(f),s=!0;break;case 36:o.pop(),s=!1;break;default:if(!u.T&&(!s||i.WTF&&35!=o[o.length-1]))throw new Error("Unexpected record 0x"+f.toString(16))}}),r}(e,0,t):function jse(e,n,t){var r={Types:[],Cell:[],Value:[]};if(!e)return r;var s,i=!1,o=2;return e.replace(Ci,function(a){var l=dt(a);switch(Ua(l[0])){case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":break;case"":case"":o=2;break;case"":i=!1;break;case"=1&&(n.people=function Zse(e,n){var t=[],r=!1;return e.replace(Ci,function(o){var s=dt(o);switch(Ua(s[0])){case"":case"":case"":case"":case"":break;case"":r=!1;break;default:if(!r&&n.WTF)throw new Error("unrecognized "+s[0]+" in threaded comments")}return o}),t}(yr(e,ks(i.people[0])),n)),G&&(G=function Ffe(e,n){if(!e)return 0;try{e=n.map(function(r){return r.id||(r.id=r.strRelID),[r.name,e["!id"][r.id].Target,Mfe(e["!id"][r.id].Type)]})}catch{return null}return e&&0!==e.length?e:null}(G,f.Sheets));var ee=yr(e,"xl/worksheets/sheet.xml",!0)?1:0;e:for(x=0;x!=h.Worksheets;++x){var ie="sheet";if(G&&G[x]?(w="xl/"+G[x][1].replace(/[\/]?xl\//,""),Cs(e,w)||(w=G[x][1]),Cs(e,w)||(w=q.replace(/_rels\/.*$/,"")+G[x][1]),ie=G[x][2]):w=(w="xl/worksheets/sheet"+(x+1-ee)+"."+U).replace(/sheet0\./,"sheet."),C=w.replace(/^(.*)(\/)([^\/]*)$/,"$1/_rels/$3.rels"),n&&null!=n.sheets)switch(typeof n.sheets){case"number":if(x!=n.sheets)continue e;break;case"string":if(h.SheetNames[x].toLowerCase()!=n.sheets.toLowerCase())continue e;break;default:if(Array.isArray&&Array.isArray(n.sheets)){for(var Y=!1,Ie=0;Ie!=n.sheets.length;++Ie)"number"==typeof n.sheets[Ie]&&n.sheets[Ie]==x&&(Y=1),"string"==typeof n.sheets[Ie]&&n.sheets[Ie].toLowerCase()==h.SheetNames[x].toLowerCase()&&(Y=1);if(!Y)continue e}}Rfe(e,w,C,h.SheetNames[x],x,b,s,ie,n,f,l,u)}return v={Directory:i,Workbook:f,Props:h,Custprops:g,Deps:_,Sheets:s,SheetNames:h.SheetNames,Strings:F_,Styles:u,Themes:l,SSF:wn(ot)},n&&n.bookFiles&&(e.files?(v.keys=r,v.files=e.files):(v.keys=[],v.files={},e.FullPaths.forEach(function(Ue,Ae){Ue=Ue.replace(/^Root Entry[\/]/,""),v.keys.push(Ue),v.files[Ue]=e.FileIndex[Ae]}))),n&&n.bookVBA&&(i.vba.length>0?v.vbaraw=yr(e,ks(i.vba[0]),!0):i.defaults&&i.defaults.bin===oae&&(v.vbaraw=yr(e,"xl/vbaProject.bin",!0))),v}function Nfe(e,n){var t=n||{},r="Workbook",i=Qe.find(e,r);try{if(!(i=Qe.find(e,r="/!DataSpaces/Version"))||!i.content)throw new Error("ECMA-376 Encrypted file missing "+r);if(function goe(e){var n={};n.id=e.read_shift(0,"lpp4"),n.R=Ul(e,4),n.U=Ul(e,4),n.W=Ul(e,4)}(i.content),!(i=Qe.find(e,r="/!DataSpaces/DataSpaceMap"))||!i.content)throw new Error("ECMA-376 Encrypted file missing "+r);var o=function voe(e){var n=[];e.l+=4;for(var t=e.read_shift(4);t-- >0;)n.push(_oe(e));return n}(i.content);if(1!==o.length||1!==o[0].comps.length||0!==o[0].comps[0].t||"StrongEncryptionDataSpace"!==o[0].name||"EncryptedPackage"!==o[0].comps[0].v)throw new Error("ECMA-376 Encrypted file bad "+r);if(!(i=Qe.find(e,r="/!DataSpaces/DataSpaceInfo/StrongEncryptionDataSpace"))||!i.content)throw new Error("ECMA-376 Encrypted file missing "+r);var s=function yoe(e){var n=[];e.l+=4;for(var t=e.read_shift(4);t-- >0;)n.push(e.read_shift(0,"lpp4"));return n}(i.content);if(1!=s.length||"StrongEncryptionTransform"!=s[0])throw new Error("ECMA-376 Encrypted file bad "+r);if(!(i=Qe.find(e,r="/!DataSpaces/TransformInfo/StrongEncryptionTransform/!Primary"))||!i.content)throw new Error("ECMA-376 Encrypted file missing "+r);!function boe(e){var n=function xoe(e){var n={};return e.read_shift(4),e.l+=4,n.id=e.read_shift(0,"lpp4"),n.name=e.read_shift(0,"lpp4"),n.R=Ul(e,4),n.U=Ul(e,4),n.W=Ul(e,4),n}(e);if(n.ename=e.read_shift(0,"8lpp4"),n.blksz=e.read_shift(4),n.cmode=e.read_shift(4),4!=e.read_shift(4))throw new Error("Bad !Primary record");return n}(i.content)}catch{}if(!(i=Qe.find(e,r="/EncryptionInfo"))||!i.content)throw new Error("ECMA-376 Encrypted file missing "+r);var a=function woe(e){var n=Ul(e);switch(n.Minor){case 2:return[n.Minor,Eoe(e)];case 3:return[n.Minor,Coe()];case 4:return[n.Minor,Toe(e)]}throw new Error("ECMA-376 Encrypted file unrecognized Version: "+n.Minor)}(i.content);if(!(i=Qe.find(e,r="/EncryptedPackage"))||!i.content)throw new Error("ECMA-376 Encrypted file missing "+r);if(4==a[0]&&typeof decrypt_agile<"u")return decrypt_agile(a[1],i.content,t.password||"",t);if(2==a[0]&&typeof decrypt_std76<"u")return decrypt_std76(a[1],i.content,t.password||"",t);throw new Error("File is password-protected")}function VA(e,n){var t="";switch((n||{}).type||"base64"){case"buffer":case"array":return[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7]];case"base64":t=Uo(e.slice(0,12));break;case"binary":t=e;break;default:throw new Error("Unrecognized type "+(n&&n.type||"undefined"))}return[t.charCodeAt(0),t.charCodeAt(1),t.charCodeAt(2),t.charCodeAt(3),t.charCodeAt(4),t.charCodeAt(5),t.charCodeAt(6),t.charCodeAt(7)]}function R6(e,n){var t=0;e:for(;t=2&&0===i[3]||0===i[2]&&(8===i[3]||9===i[3])))return ff.to_workbook(r,t);break;case 3:case 131:case 139:case 140:return pA.to_workbook(r,t);case 123:if(92===i[1]&&114===i[2]&&116===i[3])return SV.to_workbook(r,t);break;case 10:case 13:case 32:return function Ufe(e,n){var t="",r=VA(e,n);switch(n.type){case"base64":t=Uo(e);break;case"binary":t=e;break;case"buffer":t=e.toString("binary");break;case"array":t=Qd(e);break;default:throw new Error("Unrecognized type "+n.type)}return 239==r[0]&&187==r[1]&&191==r[2]&&(t=pn(t)),n.type="binary",R6(t,n)}(r,t);case 137:if(80===i[1]&&78===i[2]&&71===i[3])throw new Error("PNG Image File is not a spreadsheet")}return Qie.indexOf(i[0])>-1&&i[2]<=12&&i[3]<=31?pA.to_workbook(r,t):UA(e,r,t,o)}function L6(e,n,t,r,i,o,s,a){var l=tr(t),u=a.defval,f=a.raw||!Object.prototype.hasOwnProperty.call(a,"raw"),h=!0,m=1===i?[]:{};if(1!==i)if(Object.defineProperty)try{Object.defineProperty(m,"__rowNum__",{value:t,enumerable:!1})}catch{m.__rowNum__=t}else m.__rowNum__=t;if(!s||e[t])for(var g=n.s.c;g<=n.e.c;++g){var v=s?e[t][g]:e[r[g]+l];if(void 0!==v&&void 0!==v.t){var _=v.v;switch(v.t){case"z":if(null==_)break;continue;case"e":_=0==_?null:void 0;break;case"s":case"d":case"b":case"n":break;default:throw new Error("unrecognized type "+v.t)}if(null!=o[g]){if(null==_)if("e"==v.t&&null===_)m[o[g]]=null;else if(void 0!==u)m[o[g]]=u;else{if(!f||null!==_)continue;m[o[g]]=null}else m[o[g]]=f&&("n"!==v.t||"n"===v.t&&!1!==a.rawNumbers)?_:ja(v,_,a);null!=_&&(h=!1)}}else{if(void 0===u)continue;null!=o[g]&&(m[o[g]]=u)}}return{row:m,isempty:h}}function K1(e,n){if(null==e||null==e["!ref"])return[];var t={t:"n",v:0},r=0,i=1,o=[],s=0,a="",l={s:{r:0,c:0},e:{r:0,c:0}},u=n||{},f=null!=u.range?u.range:e["!ref"];switch(1===u.header?r=1:"A"===u.header?r=2:Array.isArray(u.header)?r=3:null==u.header&&(r=0),typeof f){case"string":l=Nt(f);break;case"number":(l=Nt(e["!ref"])).s.r=f;break;default:l=f}r>0&&(i=0);var h=tr(l.s.r),m=[],g=[],v=0,_=0,x=Array.isArray(e),b=l.s.r,w=0,C={};x&&!e[b]&&(e[b]=[]);var O=u.skipHidden&&e["!cols"]||[],z=u.skipHidden&&e["!rows"]||[];for(w=l.s.c;w<=l.e.c;++w)if(!(O[w]||{}).hidden)switch(m[w]=Nn(w),t=x?e[b][w]:e[m[w]+h],r){case 1:o[w]=w-l.s.c;break;case 2:o[w]=m[w];break;case 3:o[w]=u.header[w-l.s.c];break;default:if(null==t&&(t={w:"__EMPTY",t:"s"}),a=s=ja(t,null,u),_=C[s]||0){do{a=s+"_"+_++}while(C[a]);C[s]=_,C[a]=1}else C[s]=1;o[w]=a}for(b=l.s.r+i;b<=l.e.r;++b)if(!(z[b]||{}).hidden){var U=L6(e,l,b,m,r,o,x,u);(!1===U.isempty||(1===r?!1!==u.blankrows:u.blankrows))&&(g[v++]=U.row)}return g.length=v,g}var B6=/"/g;function V6(e,n,t,r,i,o,s,a){for(var l=!0,u=[],f="",h=tr(t),m=n.s.c;m<=n.e.c;++m)if(r[m]){var g=a.dense?(e[t]||[])[m]:e[r[m]+h];if(null==g)f="";else if(null!=g.v){l=!1,f=""+(a.rawNumbers&&"n"==g.t?g.v:ja(g,null,a));for(var v=0,_=0;v!==f.length;++v)if((_=f.charCodeAt(v))===i||_===o||34===_||a.forceQuotes){f='"'+f.replace(B6,'""')+'"';break}"ID"==f&&(f='"ID"')}else null==g.f||g.F?f="":(l=!1,(f="="+g.f).indexOf(",")>=0&&(f='"'+f.replace(B6,'""')+'"'));u.push(f)}return!1===a.blankrows&&l?null:u.join(s)}function zA(e,n){var t=[],r=n??{};if(null==e||null==e["!ref"])return"";var i=Nt(e["!ref"]),o=void 0!==r.FS?r.FS:",",s=o.charCodeAt(0),a=void 0!==r.RS?r.RS:"\n",l=a.charCodeAt(0),u=new RegExp(("|"==o?"\\|":o)+"+$"),f="",h=[];r.dense=Array.isArray(e);for(var m=r.skipHidden&&e["!cols"]||[],g=r.skipHidden&&e["!rows"]||[],v=i.s.c;v<=i.e.c;++v)(m[v]||{}).hidden||(h[v]=Nn(v));for(var _=0,x=i.s.r;x<=i.e.r;++x)(g[x]||{}).hidden||null!=(f=V6(e,i,x,h,s,l,o,r))&&(r.strip&&(f=f.replace(u,"")),(f||!1!==r.blankrows)&&t.push((_++?a:"")+f));return delete r.dense,t.join("")}function H6(e,n,t){var r=t||{},i=+!r.skipHeader,o=e||{},s=0,a=0;if(o&&null!=r.origin)if("number"==typeof r.origin)s=r.origin;else{var l="string"==typeof r.origin?Xn(r.origin):r.origin;s=l.r,a=l.c}var u,f={s:{c:0,r:0},e:{c:a,r:s+n.length-1+i}};if(o["!ref"]){var h=Nt(o["!ref"]);f.e.c=Math.max(f.e.c,h.e.c),f.e.r=Math.max(f.e.r,h.e.r),-1==s&&(f.e.r=(s=h.e.r+1)+n.length-1+i)}else-1==s&&(s=0,f.e.r=n.length-1+i);var m=r.header||[],g=0;n.forEach(function(_,x){Jn(_).forEach(function(b){-1==(g=m.indexOf(b))&&(m[g=m.length]=b);var w=_[b],C="z",O="",z=ft({c:a+g,r:s+x+i});u=V_(o,z),!w||"object"!=typeof w||w instanceof Date?("number"==typeof w?C="n":"boolean"==typeof w?C="b":"string"==typeof w?C="s":w instanceof Date?(C="d",r.cellDates||(C="n",w=Pr(w)),O=r.dateNF||ot[14]):null===w&&r.nullError&&(C="e",w=0),u?(u.t=C,u.v=w,delete u.w,delete u.R,O&&(u.z=O)):o[z]=u={t:C,v:w},O&&(u.z=O)):o[z]=w})}),f.e.c=Math.max(f.e.c,a+m.length-1);var v=tr(s);if(i)for(g=0;g=65535)throw new Error("Too many worksheets");if(r&&e.SheetNames.indexOf(t)>=0){var o=t.match(/(^.*?)(\d+)$/);i=o&&+o[2]||0;var s=o&&o[1]||t;for(++i;i<=65535&&-1!=e.SheetNames.indexOf(t=s+i);++i);}if(function s6(e,n){if(e.length>31){if(n)return!1;throw new Error("Sheet names cannot exceed 31 chars")}var t=!0;return jue.forEach(function(r){if(-1!=e.indexOf(r)){if(!n)throw new Error("Sheet name cannot contain : \\ / ? * [ ]");t=!1}}),t}(t),e.SheetNames.indexOf(t)>=0)throw new Error("Worksheet with name |"+t+"| already exists!");return e.SheetNames.push(t),e.Sheets[t]=n,t}function j6(e,n,t){return n?(e.l={Target:n},t&&(e.l.Tooltip=t)):delete e.l,e}var the={encode_col:Nn,encode_row:tr,encode_cell:ft,encode_range:wt,decode_col:KI,decode_row:YI,split_cell:function bne(e){return e.replace(/(\$?[A-Z]*)(\$?\d*)/,"$1,$2").split(",")},decode_cell:Xn,decode_range:Wo,format_cell:ja,sheet_add_aoa:T8,sheet_add_json:H6,sheet_add_dom:x6,aoa_to_sheet:Op,json_to_sheet:function Xfe(e,n){return H6(null,e,n)},table_to_sheet:b6,table_to_book:function dfe(e,n){return lu(b6(e,n),n)},sheet_to_csv:zA,sheet_to_txt:function U6(e,n){n||(n={}),n.FS="\t",n.RS="\n";var t=zA(e,n);return typeof jt>"u"||"string"==n.type?t:"\xff\xfe"+jt.utils.encode(1200,t,"str")},sheet_to_json:K1,sheet_to_html:function y6(e,n){var t=n||{},i=null!=t.footer?t.footer:"",o=[null!=t.header?t.header:'SheetJS Table Export'],s=Wo(e["!ref"]);t.dense=Array.isArray(e),o.push(function v6(e,n,t){return[].join("")+""}(0,0,t));for(var a=s.s.r;a<=s.e.r;++a)o.push(m6(e,s,a,t));return o.push("
"+i),o.join("")},sheet_to_formulae:function qfe(e){var t,n="",r="";if(null==e||null==e["!ref"])return[];var a,i=Nt(e["!ref"]),o="",s=[],l=[],u=Array.isArray(e);for(a=i.s.c;a<=i.e.c;++a)s[a]=Nn(a);for(var f=i.s.r;f<=i.e.r;++f)for(o=tr(f),a=i.s.c;a<=i.e.c;++a)if(n=s[a]+o,r="",void 0!==(t=u?(e[f]||[])[a]:e[n])){if(null!=t.F){if(n=t.F,!t.f)continue;r=t.f,-1==n.indexOf(":")&&(n=n+":"+n)}if(null!=t.f)r=t.f;else{if("z"==t.t)continue;if("n"==t.t&&null!=t.v)r=""+t.v;else if("b"==t.t)r=t.v?"TRUE":"FALSE";else if(void 0!==t.w)r="'"+t.w;else{if(void 0===t.v)continue;r="s"==t.t?"'"+t.v:""+t.v}}l[l.length]=n+"="+r}return l},sheet_to_row_object_array:K1,sheet_get_cell:V_,book_new:function $A(){return{SheetNames:[],Sheets:{}}},book_append_sheet:WA,book_set_sheet_visibility:function Kfe(e,n,t){e.Workbook||(e.Workbook={}),e.Workbook.Sheets||(e.Workbook.Sheets=[]);var r=function Yfe(e,n){if("number"==typeof n){if(n>=0&&e.SheetNames.length>n)return n;throw new Error("Cannot find sheet # "+n)}if("string"==typeof n){var t=e.SheetNames.indexOf(n);if(t>-1)return t;throw new Error("Cannot find sheet name |"+n+"|")}throw new Error("Cannot find sheet |"+n+"|")}(e,n);switch(e.Workbook.Sheets[r]||(e.Workbook.Sheets[r]={}),t){case 0:case 1:case 2:break;default:throw new Error("Bad sheet visibility setting "+t)}e.Workbook.Sheets[r].Hidden=t},cell_set_number_format:function Zfe(e,n){return e.z=n,e},cell_set_hyperlink:j6,cell_set_internal_link:function Qfe(e,n,t){return j6(e,"#"+n,t)},cell_add_comment:function Jfe(e,n,t){e.c||(e.c=[]),e.c.push({t:n,a:t||"SheetJS"})},sheet_set_array_formula:function ehe(e,n,t,r){for(var i="string"!=typeof n?n:Nt(n),o="string"==typeof n?n:wt(n),s=i.s.r;s<=i.e.r;++s)for(var a=i.s.c;a<=i.e.c;++a){var l=V_(e,s,a);l.t="n",l.F=o,delete l.v,s==i.s.r&&a==i.s.c&&(l.f=t,r&&(l.D=!0))}return e},consts:{SHEET_VISIBLE:0,SHEET_HIDDEN:1,SHEET_VERY_HIDDEN:2}};let she=(()=>{class e{constructor(t,r){this.snackBarRef=t,this.data=r}ngOnInit(){}dismiss(){this.snackBarRef.dismiss()}static{this.\u0275fac=function(r){return new(r||e)(te(p1),te(SI))}}static{this.\u0275cmp=An({type:e,selectors:[["app-aviso-snack"]],decls:5,vars:4,consts:[["id","container",3,"click"],[1,"title"],[1,"text"]],template:function(r,i){1&r&&(Xe(0,"div",0),yn("click",function(){return i.dismiss()}),Xe(1,"span",1),Zt(2),Ye(),Xe(3,"span",2),Zt(4),Ye()()),2&r&&(cp(i.data.type),at(2),ms(i.data.title),at(2),ms(i.data.text))},styles:[".cdk-overlay-pane:has(.mat-snack-bar-container):has(app-aviso-snack) #container{display:flex;flex-direction:column;gap:.5em;padding:.5em 1em;cursor:pointer} .cdk-overlay-pane:has(.mat-snack-bar-container):has(app-aviso-snack) #container span{color:#fff} .cdk-overlay-pane:has(.mat-snack-bar-container):has(app-aviso-snack) #container .title{font-size:19px;font-weight:700} .cdk-overlay-pane:has(.mat-snack-bar-container):has(app-aviso-snack) #container .text{font-size:17px} .cdk-overlay-pane:has(.mat-snack-bar-container):has(app-aviso-snack):has(#container.error) .mat-snack-bar-container{background-color:#ba08a8}"]})}}return e})(),ahe=(()=>{class e{constructor(t){this._snackBar=t}displayMsg(t,r,i){this._snackBar.openFromComponent(she,{horizontalPosition:"right",verticalPosition:"top",data:{type:t,title:r,text:i}})}static{this.\u0275fac=function(r){return new(r||e)(ce(gB))}}static{this.\u0275prov=Be({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})();const z6=(e,n)=>n.dni;function lhe(e,n){if(1&e&&(Xe(0,"div",20)(1,"span"),Zt(2),Ye()()),2&e){const t=n.$implicit;at(2),ms(t.nombreCompleto)}}function che(e,n){if(1&e&&(Xe(0,"div",17)(1,"h4",18),Zt(2),Ye(),Xe(3,"div",19),dg(4,lhe,3,1,"div",20,z6),Ye()()),2&e){const t=oi(2);at(2),Tl("Consultatio (",t.participantesConsultatio.length,")"),at(2),fg(t.participantesConsultatio)}}function uhe(e,n){if(1&e&&(Xe(0,"div",20)(1,"span"),Zt(2),Ye()()),2&e){const t=n.$implicit;at(2),ms(t.nombreCompleto)}}function dhe(e,n){if(1&e&&(Xe(0,"div",17)(1,"h4",18),Zt(2),Ye(),Xe(3,"div",19),dg(4,uhe,3,1,"div",20,z6),Ye()()),2&e){const t=oi(2);at(2),Tl("Nordelta (",t.participantesNordelta.length,")"),at(2),fg(t.participantesNordelta)}}function fhe(e,n){if(1&e&&(Xe(0,"div",12),ps(1,che,6,1,"div",17)(2,dhe,6,1,"div",17),Ye()),2&e){const t=oi();at(),ii(t.participantesConsultatio.length?1:-1),at(),ii(t.participantesNordelta.length?2:-1)}}function hhe(e,n){1&e&&(Xe(0,"span",15),Zt(1,"La cantidad de premios es superior a la de participantes en alguna empresa"),Ye())}function phe(e,n){if(1&e&&(Xe(0,"div",20)(1,"span"),Zt(2),Ye(),Xe(3,"span"),Zt(4),Ye()()),2&e){const t=n.$implicit;at(2),ms(t.nombre),at(2),ms(t.cantidad)}}function mhe(e,n){if(1&e&&(Xe(0,"div",16)(1,"div",21)(2,"span"),Zt(3,"Nombre"),Ye(),Xe(4,"span"),Zt(5,"Cantidad"),Ye()(),Xe(6,"div",22),dg(7,phe,5,2,"div",20,LT),Ye()()),2&e){const t=oi();at(7),fg(t.premios)}}let ghe=(()=>{class e{constructor(t,r){this._avisoSnackService=t,this.cdr=r,this.participantesOriginalesConsultatio=[],this.participantesOriginalesNordelta=[],this.participantesConsultatio=[],this.participantesNordelta=[],this.premios=[],this.cantidadTotalPremios=0,this.fireStartSorteo=new Cn}ngOnInit(){}resetearSorteo(){this.participantesConsultatio=[...this.participantesOriginalesConsultatio],this.participantesNordelta=[...this.participantesOriginalesNordelta]}cargarArchivo(t,r){if(t.target.files.length>0){const i=t.target.files[0];t.target.value="",i.name.endsWith(".xlsx")||i.name.endsWith(".xls")||"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"===i.type||"application/vnd.ms-excel"===i.type?this.cargarArchivoExcel(i,r):this._avisoSnackService.displayMsg("error","FORMATO INCORRECTO","El archivo debe ser .xlsx o .xls")}}cargarArchivoExcel(t,r){const i=new FileReader;i.onload=o=>{try{const a=X1(new Uint8Array(o.target.result),{type:"array"}),f=the.sheet_to_json(a.Sheets[a.SheetNames[0]],{header:1});"participantes"===r?this.cargarParticipantesExcel(f):this.cargarPremiosExcel(f)}catch(s){console.error("Error al procesar archivo Excel:",s),this._avisoSnackService.displayMsg("error","ERROR","No se pudo procesar el archivo Excel")}},i.readAsArrayBuffer(t)}isTruthy(t){if(null==t)return!1;const r=String(t).toLowerCase().trim();return["true","1","si","yes"].includes(r)}findColumnIndex(t,r){for(let i=0;i!r.has(i.dni)&&(r.add(i.dni),!0))}cargarPremiosExcel(t){if(t.length<2)return void this._avisoSnackService.displayMsg("error","FORMATO INCORRECTO","El archivo de premios est\xe1 vac\xedo");const r=t[0],i=this.findColumnIndex(r,["premio","nombre"]),o=this.findColumnIndex(r,["cantidad"]);if(-1===i||-1===o)return void this._avisoSnackService.displayMsg("error","FORMATO INCORRECTO","Faltan columnas requeridas: Premio y Cantidad");const s=[];this.cantidadTotalPremios=0;for(let a=1;a0&&this.cantidadTotalPremios>0&&(this.participantesConsultatio.length{t=[...t,...Array(r.cantidad).fill(r.nombre)]}),{consultatio:{participantes:this.participantesConsultatio.map(r=>r.nombreCompleto),premios:[...t]},nordelta:{participantes:this.participantesNordelta.map(r=>r.nombreCompleto),premios:[...t]}}}static{this.\u0275fac=function(r){return new(r||e)(te(ahe),te(Il))}}static{this.\u0275cmp=An({type:e,selectors:[["app-carga-listado"]],outputs:{fireStartSorteo:"fireStartSorteo"},decls:28,vars:3,consts:[["inputParticipantes",""],["inputPremios",""],["tooltip","matTooltip"],["id","cargaListadosContainer"],["type","file","accept",".xlsx,.xls",2,"display","none",3,"change"],["id","listadosContainer"],["id","participantesContainer"],[1,"headerContainer"],[2,"text-decoration","underline"],[1,"rightHeaderSection"],["mat-raised-button","",1,"primaryBtn",3,"click"],["matTooltip","El archivo .xlsx debe contener columnas: Nombre, Apellido, DNI, Empresa, \xbfParticipa en Sorteo?, \xbfAsisti\xf3?","matTooltipPosition","right"],[1,"listadoContainer","listadoScroleable"],["id","premiosContainer"],["matTooltip","El archivo .xlsx debe contener columnas: Premio y Cantidad (se usar\xe1n los mismos premios para ambas empresas)","matTooltipPosition","right"],[1,"alert"],[1,"listadoContainer"],[1,"empresaSection"],[1,"empresaTitulo"],[1,"participantesGrid"],[1,"filaTabla"],[1,"cabeceraTabla"],[1,"cuerpoTabla"]],template:function(r,i){if(1&r){const o=El();Xe(0,"div",3)(1,"input",4,0),yn("change",function(a){return ho(o),Ui(i.cargarArchivo(a,"participantes"))}),Ye(),Xe(3,"input",4,1),yn("change",function(a){return ho(o),Ui(i.cargarArchivo(a,"premios"))}),Ye(),Xe(5,"div",5)(6,"div",6)(7,"div",7)(8,"h3",8),Zt(9,"PARTICIPANTES"),Ye(),Xe(10,"div",9)(11,"button",10),yn("click",function(){return ho(o),Ui(yg(2).click())}),Zt(12,"Cargar"),Ye(),Xe(13,"mat-icon",11,2),Zt(15,"info"),Ye()()(),ps(16,fhe,3,2,"div",12),Ye(),Xe(17,"div",13)(18,"div",7)(19,"h3",8),Zt(20,"PREMIOS"),Ye(),Xe(21,"div",9)(22,"button",10),yn("click",function(){return ho(o),Ui(yg(4).click())}),Zt(23,"Cargar"),Ye(),Xe(24,"mat-icon",14),Zt(25,"info"),Ye()()(),ps(26,hhe,2,0,"span",15)(27,mhe,9,0,"div",16),Ye()()()}2&r&&(at(16),ii(i.participantesConsultatio.length||i.participantesNordelta.length?16:-1),at(10),ii(i.masPremiosQueParticipantes()?26:-1),at(),ii(i.premios.length?27:-1))},dependencies:[Ub,yI,nte],styles:["#cargaListadosContainer[_ngcontent-%COMP%] #listadosContainer[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1em}#cargaListadosContainer[_ngcontent-%COMP%] #listadosContainer[_ngcontent-%COMP%] .headerContainer[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between}#cargaListadosContainer[_ngcontent-%COMP%] #listadosContainer[_ngcontent-%COMP%] .headerContainer[_ngcontent-%COMP%] .rightHeaderSection[_ngcontent-%COMP%]{display:flex;align-items:flex-start;gap:1em}#cargaListadosContainer[_ngcontent-%COMP%] #premiosContainer[_ngcontent-%COMP%] .listadoContainer[_ngcontent-%COMP%]{width:50%}#cargaListadosContainer[_ngcontent-%COMP%] #participantesContainer[_ngcontent-%COMP%] .listadoContainer[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.5em;max-height:250px;overflow:auto}#cargaListadosContainer[_ngcontent-%COMP%] #participantesContainer[_ngcontent-%COMP%] .empresaSection[_ngcontent-%COMP%] .empresaTitulo[_ngcontent-%COMP%]{color:#3db0e4;margin:0 0 .5em;font-family:LatinxText-Bold}#cargaListadosContainer[_ngcontent-%COMP%] #participantesContainer[_ngcontent-%COMP%] .empresaSection[_ngcontent-%COMP%] .participantesGrid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(3,1fr);column-gap:1em;row-gap:.5em}#cargaListadosContainer[_ngcontent-%COMP%] #participantesContainer[_ngcontent-%COMP%] .empresaSection[_ngcontent-%COMP%] .filaTabla[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:18px}#cargaListadosContainer[_ngcontent-%COMP%] h1[_ngcontent-%COMP%]{margin-bottom:10px}#cargaListadosContainer[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:#221e1e}#cargaListadosContainer[_ngcontent-%COMP%] .listadoContainer[_ngcontent-%COMP%] .cabeceraTabla[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{font-size:16px;font-family:LatinxText-Bold;color:#3db0e4}#cargaListadosContainer[_ngcontent-%COMP%] .listadoContainer[_ngcontent-%COMP%] .cuerpoTabla[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{font-size:34px}#cargaListadosContainer[_ngcontent-%COMP%] .listadoContainer[_ngcontent-%COMP%] .filaTabla[_ngcontent-%COMP%]{margin-top:.5em}#cargaListadosContainer[_ngcontent-%COMP%] .listadoContainer[_ngcontent-%COMP%] .filaTabla[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{font-size:18px}#cargaListadosContainer[_ngcontent-%COMP%] .listadoContainer[_ngcontent-%COMP%] .cabeceraTabla[_ngcontent-%COMP%], #cargaListadosContainer[_ngcontent-%COMP%] .listadoContainer[_ngcontent-%COMP%] .filaTabla[_ngcontent-%COMP%]{display:flex;justify-content:space-between}[_nghost-%COMP%] #cargaListadosContainer .rightHeaderSection mat-icon{color:#3db0e4}.alert[_ngcontent-%COMP%]{margin-bottom:5px;display:inline-block;color:#ba08a8!important}.listadoScroleable[_ngcontent-%COMP%]::-webkit-scrollbar{width:7px;height:8px}.listadoScroleable[_ngcontent-%COMP%]::-webkit-scrollbar-track{box-shadow:inset 0 0 20px #c5c5c5;border-radius:7px}.listadoScroleable[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background:#3db0e4;border-radius:10px}"]})}}return e})();const _he=["resultadosContainer"],vhe=e=>({"noMargin version2023":e});function yhe(e,n){if(1&e&&(Xe(0,"div",5)(1,"span"),Zt(2),Ye(),Xe(3,"div"),Zt(4),Ye()()),2&e){const t=n.$implicit;Gn("@zoomInOut",void 0),at(2),ms(t.premio),at(2),ms(t.texto)}}let xhe=(()=>{class e{constructor(t){this.cdr=t,this.classEmpresa="",this.sgvIconEmpresa="",this.visibleResults=[]}scrollToBottom(){setTimeout(()=>{const r=document.querySelector("#app")||this.resultadosContainer.nativeElement;r.scrollTop=r.scrollHeight},0)}showResults(){var t=this;return Nd(function*(){for(let r=0;rsetTimeout(i,2e3))})()}ngOnInit(){this.showResults()}static{this.\u0275fac=function(r){return new(r||e)(te(Il))}}static{this.\u0275cmp=An({type:e,selectors:[["app-resultados"]],viewQuery:function(r,i){if(1&r&&Na(_he,5),2&r){let o;ra(o=ia())&&(i.resultadosContainer=o.first)}},inputs:{results:"results",columnaDerecha:"columnaDerecha",empresa:"empresa",classEmpresa:"classEmpresa",sgvIconEmpresa:"sgvIconEmpresa"},decls:12,vars:8,consts:[["resultadosContainer",""],["id","resultados",3,"ngClass"],[1,"empresaTittle"],[3,"svgIcon"],[1,"resultadoContainer","cabeceraTabla"],[1,"resultadoContainer","itemsTabla"]],template:function(r,i){1&r&&(Xe(0,"div",1,0)(2,"div",2),dr(3,"br")(4,"mat-icon",3),Ye(),Xe(5,"div",4)(6,"span"),Zt(7,"Premio"),Ye(),Xe(8,"span"),Zt(9),Ye()(),dg(10,yhe,5,3,"div",5,LT),Ye()),2&r&&(Gn("ngClass",zc(6,vhe,"Participante"===i.columnaDerecha)),at(4),cp(i.classEmpresa),GT("svgIcon",i.sgvIconEmpresa),at(5),ms(i.columnaDerecha),at(),fg(i.visibleResults))},dependencies:[mp,Ub],styles:["#resultados[_ngcontent-%COMP%]{width:-webkit-fill-available;position:relative;overflow-anchor:auto;margin-left:40px;margin-right:40px}#resultados[_ngcontent-%COMP%] .empresaTittle[_ngcontent-%COMP%] h1[_ngcontent-%COMP%]{text-align:center;font-size:48px;color:#0a0089;margin-top:20px;margin-bottom:20px}#resultados[_ngcontent-%COMP%] .resultadoContainer[_ngcontent-%COMP%]{display:flex;justify-content:space-between;padding-top:10px;padding-bottom:10px;border-top:1px solid #f3f3f3;color:#221e1e}#resultados[_ngcontent-%COMP%] .resultadoContainer.cabeceraTabla[_ngcontent-%COMP%]{font-size:38px}#resultados[_ngcontent-%COMP%] .resultadoContainer.cabeceraTabla[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-family:LatinxText-Bold}#resultados[_ngcontent-%COMP%] .resultadoContainer.itemsTabla[_ngcontent-%COMP%]{font-size:34px;transition:transform .3s ease-in-out}#resultados[_ngcontent-%COMP%] .resultadoContainer.itemsTabla[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{text-align:left}#resultados[_ngcontent-%COMP%] .resultadoContainer.itemsTabla[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{text-align:right}.empresaTittle[_ngcontent-%COMP%]{text-align:center;margin-bottom:20px}.empresaTittle[_ngcontent-%COMP%] .svgIcon[_ngcontent-%COMP%]{width:340px;height:100%;padding-bottom:22px}.empresaTittle[_ngcontent-%COMP%] .scndIcon[_ngcontent-%COMP%]{width:auto;height:70px}#resultados.noMargin[_ngcontent-%COMP%]{margin:0}#resultados.version2023[_ngcontent-%COMP%] .resultadoContainer.cabeceraTabla[_ngcontent-%COMP%]{border-top-width:0px}"],data:{animation:[Kg("zoomInOut",[zd(":enter",[jd("1s ease-in-out",OZ([vo({transform:"scale(0.5)",offset:0}),vo({transform:"scale(1.2)",offset:.5}),vo({transform:"scale(1)",offset:1})]))])]),Kg("fadeIn",[zd(":enter",[vo({opacity:0,transform:"translateY(10px)"}),jd("500ms ease-out",vo({opacity:1,transform:"translateY(0)"}))])])]}})}}return e})();const bhe=(e,n)=>({darkBlue:e,clearBlue:n}),whe=e=>({shuffleBtn:e});function Ehe(e,n){1&e&&(Xe(0,"div",1),dr(1,"br")(2,"mat-icon",3),Ye())}function Che(e,n){if(1&e){const t=El();Xe(0,"div",8),yn("click",function(){return ho(t),Ui(oi(2).generateWinner())}),Xe(1,"button",9)(2,"mat-icon"),Zt(3,"timer"),Ye()(),Xe(4,"h1"),Zt(5,"Iniciar"),Ye()()}if(2&e){const t=oi(2);at(),Gn("ngClass",zc(1,whe,!t.disableShuffleBtn()))}}function The(e,n){if(1&e&&(Xe(0,"div",4),ps(1,Che,6,3,"div",5),Ye(),dr(2,"br")(3,"br")(4,"br"),Xe(5,"div",6)(6,"span",7),Zt(7),Ye()()),2&e){const t=oi();at(),ii(t.disableShuffleBtn()?-1:1),at(5),Gn("ngClass",GR(3,bhe,!t.sorteando,t.sorteando)),at(),Tl(" ",t.countDown," ")}}function Dhe(e,n){1&e&&dr(0,"app-resultados",10),2&e&&Gn("results",oi(2).consultatioResults)}function She(e,n){1&e&&dr(0,"div",11)}function Ihe(e,n){1&e&&dr(0,"app-resultados",12),2&e&&Gn("results",oi(2).nordeltaResults)}function Ahe(e,n){if(1&e&&(Xe(0,"div",2),ps(1,Dhe,1,1,"app-resultados",10)(2,She,1,0,"div",11)(3,Ihe,1,1,"app-resultados",12),Ye()),2&e){const t=oi();at(),ii(t.consultatioResults.length>0?1:-1),at(),ii(t.consultatioResults.length>0&&t.nordeltaResults.length>0?2:-1),at(),ii(t.nordeltaResults.length>0?3:-1)}}let khe=(()=>{class e{constructor(t,r){this.renderer=t,this.el=r,this.empresaSorteando="consultatio",this.indexPremio=0,this.sorteando=!1,this.sorteoHasStarted=!1,this.showParticipante="- - - -",this.countDown="",this.winnerIndex=0,this.winner=null,this.results=[],this.config=new $6,this.TESTEANDO_RULETA=!1,this.TESTEO_CONFIG=new GK({microSeg:new Tp("50",[wp.required]),microSeg_agregar:new Tp("50",[wp.required]),microSeg_suspenso:new Tp("85",[wp.required]),repetir_N_veces:new Tp("27",[wp.required]),restarRepeticiones:new Tp("9",[wp.required]),restarRepeticiones_suspenso:new Tp("3",[wp.required])})}ngOnInit(){}startSorteo(t){this.sorteos=t,this.setDefaultIntervalValues(),this.status.start=!0}disableShuffleBtn(){return this.sorteoHasStarted}disableOkBtn(){return this.sorteando||null===this.winner}setDefaultIntervalValues(){this.config=new $6,this.configureTestInterval()}configureTestInterval(){if(this.TESTEANDO_RULETA){let t=this.TESTEO_CONFIG.getRawValue();this.config.microSeg=parseInt(t.microSeg),this.config.microSeg_agregar=parseInt(t.microSeg_agregar),this.config.microSeg_suspenso=parseInt(t.microSeg_suspenso),this.config.repetir_N_veces=parseInt(t.repetir_N_veces),this.config.restarRepeticiones=parseInt(t.restarRepeticiones),this.config.restarRepeticiones_suspenso=parseInt(t.restarRepeticiones_suspenso)}}get consultatioResults(){return this.results?.filter(t=>"consultatio"===t.empresa)||[]}get nordeltaResults(){return this.results?.filter(t=>"nordelta"===t.empresa)||[]}generateWinner(){var t=this;return Nd(function*(){t.sorteoHasStarted=!0,yield t.runProcess()})()}runProcess(){var t=this;return Nd(function*(){const r=t.el.nativeElement.querySelector("#randomGeneratorStrings span");t.countDown="10",t.sorteando=!0;const i=t.generateInterval(),o=t.runCountdown(r);yield Promise.all([i,o]),t.status.finish=!0,t.sorteando=!1,console.log("Sorteo finalizado.")})()}runCountdown(t){var r=this;return Nd(function*(){for(let i=10;i>=0;i--)r.countDown=i.toString(),r.renderer.removeClass(t,"animate"),r.renderer.addClass(t,"animate"),yield new Promise(o=>setTimeout(o,1e3));console.log("Countdown completado.")})()}generateInterval(){var t=this;return Nd(function*(){const r=["consultatio","nordelta"];for(const i of r){for(t.empresaSorteando=i;t.sorteos[t.empresaSorteando].premios.length>0;){const o=t.sorteos[t.empresaSorteando].participantes,s=t.sorteos[t.empresaSorteando].premios;if(!o||0===o.length){console.error(`No hay participantes disponibles para ${i}.`);break}if(!s||0===s.length){console.error(`No hay premios disponibles para ${i}.`);break}let a=Math.floor(Math.random()*o.length);for(;t.winnerIndex===a&&o.length>1;)a=Math.floor(Math.random()*o.length);t.winnerIndex=a,t.showParticipante=o[t.winnerIndex],console.log(`Seleccionado en ${i}: ${t.showParticipante}`),t.setWinner(),t.saveResult(),yield new Promise(l=>setTimeout(l,0))}console.log(`Finalizado el sorteo para ${i}.`)}console.log("Sorteo completado para todas las empresas.")})()}setWinner(){const t=this.sorteos[this.empresaSorteando].premios;0!==t.length?this.winner={texto:this.showParticipante,premio:t[this.indexPremio],empresa:this.empresaSorteando}:console.error(`No hay premios disponibles para ${this.empresaSorteando}`)}saveResult(){this.winner?(this.results.push(this.winner),this.sorteos[this.empresaSorteando].participantes.splice(this.winnerIndex,1),this.sorteos[this.empresaSorteando].premios.shift(),this.showParticipante="",this.winner=null,console.log(`Resultado guardado: ${JSON.stringify(this.results[this.results.length-1])}`)):console.error("No se puede guardar un ganador porque no se ha seleccionado uno.")}resetearSorteo(){this.results=[],this.winner=null,this.sorteando=!1,this.sorteoHasStarted=!1,this.setDefaultIntervalValues(),this.indexPremio=0,this.empresaSorteando="consultatio"}static{this.\u0275fac=function(r){return new(r||e)(te(Vc),te(_n))}}static{this.\u0275cmp=An({type:e,selectors:[["app-slots-sorteo2023"]],inputs:{status:"status"},decls:4,vars:3,consts:[["id","sorteoContainer",1,"fullWidth","fullHeight"],[1,"finDeSorteo"],["id","tablaResultadosContainer",1,"twoColumns"],["svgIcon","novitLogo",1,"svgIcon"],["id","buttons"],["id","leftContainer",1,"clickableContainer"],["id","randomGeneratorStrings"],[1,"animate","numberFormat",3,"ngClass"],["id","leftContainer",1,"clickableContainer",3,"click"],["mat-fab","",3,"ngClass"],["classEmpresa","svgIcon","sgvIconEmpresa","consultatioLogo","empresa","Consultatio","columnaDerecha","Ganador",1,"fullWidth",3,"results"],[1,"sorteoSeparator"],["classEmpresa","svgIcon","sgvIconEmpresa","nordeltaLogo","empresa","Nordelta","columnaDerecha","Ganador",1,"fullWidth",3,"results"]],template:function(r,i){1&r&&(Xe(0,"div",0),ps(1,Ehe,3,0,"div",1)(2,The,8,6)(3,Ahe,4,3,"div",2),Ye()),2&r&&(at(),ii(i.status.finish?1:-1),at(),ii(i.status.finish?-1:2),at(),ii(i.status.finish?3:-1))},dependencies:[mp,Ub,RJ,xhe],styles:['@charset "UTF-8";.fullWidth[_ngcontent-%COMP%]{width:-webkit-fill-available!important}.fullHeight[_ngcontent-%COMP%]{height:-webkit-fill-available!important}.clickableContainer[_ngcontent-%COMP%]{cursor:pointer}#sorteoContainer[_ngcontent-%COMP%] #buttons[_ngcontent-%COMP%]{width:60%;margin-top:39px;margin-bottom:0;padding-bottom:2.5em}.svgIcon[_ngcontent-%COMP%]{width:340px;height:100%}.oneColumn[_ngcontent-%COMP%]{width:50%}.twoColumns[_ngcontent-%COMP%]{width:84%}.sorteoSeparator[_ngcontent-%COMP%]{border-right:1px solid #c5c5c5;margin-top:1.5em}#tablaResultadosContainer[_ngcontent-%COMP%]{gap:9em}.numberFormat[_ngcontent-%COMP%]{font-size:200px!important;font-family:LatinxText-Bold}@keyframes _ngcontent-%COMP%_excitingCountDown{0%{opacity:0;transform:scale(.5) rotate(0);text-shadow:0 0 5px #fff,0 0 10px #ff5733,0 0 20px #ff5733,0 0 30px #ffbd33,0 0 40px #fff}50%{opacity:1;transform:scale(1.2) rotate(360deg);text-shadow:0 0 10px #fff,0 0 20px #ffbd33,0 0 30px #ffc300,0 0 40px #ff5733,0 0 50px #ffbd33}to{opacity:0;transform:scale(1.5) rotate(720deg);text-shadow:0 0 5px #fff,0 0 10px #ff5733,0 0 15px #ff5733,0 0 20px #ffc300,0 0 25px #ffbd33}}#randomGeneratorStrings[_ngcontent-%COMP%] span.animate[_ngcontent-%COMP%]{display:inline-block;animation:_ngcontent-%COMP%_excitingCountDown 1s ease-in-out;font-size:5rem;font-weight:700;color:#fff;text-shadow:0 0 5px #fff,0 0 10px #ff5733,0 0 20px #ffc300,0 0 30px #ffbd33,0 0 40px #fff}']})}}return e})();class $6{constructor(){this.microSeg=50,this.microSeg_agregar=50,this.microSeg_suspenso=85,this.intervalInstance=1,this.repetir_N_veces=9,this.restarRepeticiones=9,this.restarRepeticiones_suspenso=3}}const Mhe=["listadoswen"],Fhe=["slotsSorteo"],Q1=e=>({hidden:e});let Rhe=(()=>{class e{constructor(){this.initValue=!1}ngOnInit(){}resetearSorteo(){this.listadoswen.resetearSorteo(),this.slotsSorteo.resetearSorteo(),this.initValue=!1}disableStart(){return!this.listadoswen||this.listadoswen.isInvalid()}comenzarSorteo(){let t=this.listadoswen.getListados();this.slotsSorteo.startSorteo(t)}static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275cmp=An({type:e,selectors:[["app-version2023"]],viewQuery:function(r,i){if(1&r&&(Na(Mhe,5),Na(Fhe,5)),2&r){let o;ra(o=ia())&&(i.listadoswen=o.first),ra(o=ia())&&(i.slotsSorteo=o.first)}},inputs:{status:"status"},decls:13,vars:14,consts:[["listadoswen",""],["slotsSorteo",""],["id","initContainer",3,"ngClass"],["id","empresasContainer"],[1,"sorteoContainer"],[2,"text-align","center"],["svgIcon","novitLogo",1,"svgIcon"],[1,"fullWidth"],["id","actionsContainer",3,"ngClass"],["mat-raised-button","",1,"okBtn",3,"click","disabled"],[1,"widthSlots",3,"ngClass","status"]],template:function(r,i){if(1&r){const o=El();Xe(0,"div",2)(1,"div",2)(2,"div",3)(3,"div",4)(4,"h1",5),dr(5,"mat-icon",6),Ye(),dr(6,"app-carga-listado",7,0),Ye()()(),Xe(8,"div",8)(9,"button",9),yn("click",function(){return ho(o),Ui(i.comenzarSorteo())}),Zt(10,"PREPARAR SORTEO"),Ye()()(),dr(11,"app-slots-sorteo2023",10,1)}2&r&&(Gn("ngClass",zc(6,Q1,i.status.start)),at(),Gn("ngClass",zc(8,Q1,i.status.start)),at(7),Gn("ngClass",zc(10,Q1,i.status.start)),at(),Gn("disabled",i.disableStart()),at(2),Gn("ngClass",zc(12,Q1,!i.status.start))("status",i.status))},dependencies:[mp,Ub,yI,ghe,khe],styles:[".hidden[_ngcontent-%COMP%]{display:none!important}.fullWidth[_ngcontent-%COMP%]{width:-webkit-fill-available}.fullHeight[_ngcontent-%COMP%]{height:-webkit-fill-available!important}.widthSlots[_ngcontent-%COMP%]{width:100%;justify-content:center}.sorteoContainer[_ngcontent-%COMP%] .svgIcon[_ngcontent-%COMP%]{width:340px;height:100%}.sorteoContainer[_ngcontent-%COMP%] .scndIcon[_ngcontent-%COMP%]{width:400px;height:100%}#initContainer[_ngcontent-%COMP%]{gap:4em;display:flex;flex-direction:column;align-items:center;width:-webkit-fill-available}#initContainer[_ngcontent-%COMP%] .sorteoSeparator[_ngcontent-%COMP%]{border-right:1px solid #c5c5c5;margin-top:1.5em}#initContainer[_ngcontent-%COMP%] #empresasContainer[_ngcontent-%COMP%]{display:flex;justify-content:space-evenly;width:-webkit-fill-available}#initContainer[_ngcontent-%COMP%] #empresasContainer[_ngcontent-%COMP%] .sorteoContainer[_ngcontent-%COMP%]{width:25%}#initContainer[_ngcontent-%COMP%] #actionsContainer[_ngcontent-%COMP%]{display:flex;justify-content:center}#initContainer[_ngcontent-%COMP%] #actionsContainer[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{font-size:20px;padding:5px 3em}"]})}}return e})(),Ohe=(()=>{class e{static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275mod=Wt({type:e,bootstrap:[bB]})}static{this.\u0275inj=Yt({providers:[XL],imports:[iP,SJ,AK,uK,L3,MZ,HJ,FZ,KJ,Gee,ite]})}}return e})();(function zR(e,n,t){const r=e.\u0275cmp;r.directiveDefs=sl(n,!1),r.pipeDefs=sl(t,!0)})(bB,[z3,xI,cte,Rhe],[]),fq().bootstrapModule(Ohe).catch(e=>console.error(e))},376:function(Rs,$l,zp){var Wl;Rs=zp.nmd(Rs),function(){var N,Je="Expected a function",Wp="__lodash_hash_undefined__",ma="__lodash_placeholder__",va=1/0,Ns=9007199254740991,Ko=4294967295,G_=[["ary",128],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",32],["partialRight",64],["rearg",256]],ql="[object Arguments]",Xp="[object Array]",vu="[object Boolean]",yu="[object Date]",xf="[object Error]",Kp="[object Function]",Pt="[object GeneratorFunction]",io="[object Map]",Za="[object Number]",an="[object Object]",Zp="[object Promise]",Xl="[object RegExp]",Tr="[object Set]",ya="[object String]",xu="[object Symbol]",bu="[object WeakMap]",wu="[object ArrayBuffer]",xa="[object DataView]",Ps="[object Float32Array]",Yl="[object Float64Array]",Jp="[object Int8Array]",Eu="[object Int16Array]",em="[object Int32Array]",Cu="[object Uint8Array]",tm="[object Uint8ClampedArray]",Qa="[object Uint16Array]",Kl="[object Uint32Array]",sw=/\b__p \+= '';/g,nm=/\b(__p \+=) '' \+/g,aw=/(__e\(.*?\)|\b__t\)) \+\n'';/g,wf=/&(?:amp|lt|gt|quot|#39);/g,Ja=/[&<>"']/g,ZA=RegExp(wf.source),X_=RegExp(Ja.source),Ln=/<%-([\s\S]+?)%>/g,Y_=/<%([\s\S]+?)%>/g,K_=/<%=([\s\S]+?)%>/g,lw=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,cw=/^\w*$/,Rt=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Ef=/[\\^$.*+?()[\]{}|]/g,Z_=RegExp(Ef.source),rm=/^\s+/,Br=/\s/,Dr=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,uw=/\{\n\/\* \[wrapped with (.+)\] \*/,Vr=/,? & /,QA=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Q_=/[()=,{}\[\]\/\s]/,se=/\\(\\)?/g,Zl=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Tu=/\w*$/,J_=/^[-+]0x[0-9a-f]+$/i,JA=/^0b[01]+$/i,ek=/^\[object .+?Constructor\]$/,ev=/^0o[0-7]+$/i,Ls=/^(?:0|[1-9]\d*)$/,Ql=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Bs=/($^)/,Jl=/['\n\r\u2028\u2029\\]/g,Du="\\ud800-\\udfff",dn="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",dw="\\u2700-\\u27bf",fw="a-z\\xdf-\\xf6\\xf8-\\xff",pw="A-Z\\xc0-\\xd6\\xd8-\\xde",tv="\\ufe0e\\ufe0f",en="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Cf="["+Du+"]",ci="["+en+"]",sm="["+dn+"]",nv="\\d+",nk="["+dw+"]",Vs="["+fw+"]",mw="[^"+Du+en+nv+dw+fw+pw+"]",rv="\\ud83c[\\udffb-\\udfff]",gw="[^"+Du+"]",am="(?:\\ud83c[\\udde6-\\uddff]){2}",iv="[\\ud800-\\udbff][\\udc00-\\udfff]",tc="["+pw+"]",ui="(?:"+Vs+"|"+mw+")",tt="(?:"+tc+"|"+mw+")",vw="(?:['\u2019](?:d|ll|m|re|s|t|ve))?",yw="(?:['\u2019](?:D|LL|M|RE|S|T|VE))?",xw="(?:"+sm+"|"+rv+")?",bw="["+tv+"]?",Yt=bw+xw+"(?:\\u200d(?:"+[gw,am,iv].join("|")+")"+bw+xw+")*",Tf="(?:"+[nk,am,iv].join("|")+")"+Yt,sk="(?:"+[gw+sm+"?",sm,am,iv,Cf].join("|")+")",ov=RegExp("['\u2019]","g"),ww=RegExp(sm,"g"),nc=RegExp(rv+"(?="+rv+")|"+sk+Yt,"g"),Df=RegExp([tc+"?"+Vs+"+"+vw+"(?="+[ci,tc,"$"].join("|")+")",tt+"+"+yw+"(?="+[ci,tc+ui,"$"].join("|")+")",tc+"?"+ui+"+"+vw,tc+"+"+yw,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",nv,Tf].join("|"),"g"),lm=RegExp("[\\u200d"+Du+dn+tv+"]"),sv=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Ew=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],xe=-1,ln={};ln[Ps]=ln[Yl]=ln[Jp]=ln[Eu]=ln[em]=ln[Cu]=ln[tm]=ln[Qa]=ln[Kl]=!0,ln[ql]=ln[Xp]=ln[wu]=ln[vu]=ln[xa]=ln[yu]=ln[xf]=ln[Kp]=ln[io]=ln[Za]=ln[an]=ln[Xl]=ln[Tr]=ln[ya]=ln[bu]=!1;var tn={};tn[ql]=tn[Xp]=tn[wu]=tn[xa]=tn[vu]=tn[yu]=tn[Ps]=tn[Yl]=tn[Jp]=tn[Eu]=tn[em]=tn[io]=tn[Za]=tn[an]=tn[Xl]=tn[Tr]=tn[ya]=tn[xu]=tn[Cu]=tn[tm]=tn[Qa]=tn[Kl]=!0,tn[xf]=tn[Kp]=tn[bu]=!1;var um={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},ak=parseFloat,lk=parseInt,Tw="object"==typeof global&&global&&global.Object===Object&&global,ck="object"==typeof self&&self&&self.Object===Object&&self,ir=Tw||ck||Function("return this")(),rc=$l&&!$l.nodeType&&$l,el=rc&&Rs&&!Rs.nodeType&&Rs,Sf=el&&el.exports===rc,If=Sf&&Tw.process,Yn=function(){try{return el&&el.require&&el.require("util").types||If&&If.binding&&If.binding("util")}catch{}}(),ic=Yn&&Yn.isArrayBuffer,dm=Yn&&Yn.isDate,lt=Yn&&Yn.isMap,Ut=Yn&&Yn.isRegExp,Dw=Yn&&Yn.isSet,lv=Yn&&Yn.isTypedArray;function Oi(W,ae,re){switch(re.length){case 0:return W.call(ae);case 1:return W.call(ae,re[0]);case 2:return W.call(ae,re[0],re[1]);case 3:return W.call(ae,re[0],re[1],re[2])}return W.apply(ae,re)}function uk(W,ae,re,He){for(var ht=-1,Ht=null==W?0:W.length;++ht-1}function Ur(W,ae,re){for(var He=-1,ht=null==W?0:W.length;++He-1;);return re}function Fu(W,ae){for(var re=W.length;re--&&Eo(ae,W[re],0)>-1;);return re}var rl=kf({\u00c0:"A",\u00c1:"A",\u00c2:"A",\u00c3:"A",\u00c4:"A",\u00c5:"A",\u00e0:"a",\u00e1:"a",\u00e2:"a",\u00e3:"a",\u00e4:"a",\u00e5:"a",\u00c7:"C",\u00e7:"c",\u00d0:"D",\u00f0:"d",\u00c8:"E",\u00c9:"E",\u00ca:"E",\u00cb:"E",\u00e8:"e",\u00e9:"e",\u00ea:"e",\u00eb:"e",\u00cc:"I",\u00cd:"I",\u00ce:"I",\u00cf:"I",\u00ec:"i",\u00ed:"i",\u00ee:"i",\u00ef:"i",\u00d1:"N",\u00f1:"n",\u00d2:"O",\u00d3:"O",\u00d4:"O",\u00d5:"O",\u00d6:"O",\u00d8:"O",\u00f2:"o",\u00f3:"o",\u00f4:"o",\u00f5:"o",\u00f6:"o",\u00f8:"o",\u00d9:"U",\u00da:"U",\u00db:"U",\u00dc:"U",\u00f9:"u",\u00fa:"u",\u00fb:"u",\u00fc:"u",\u00dd:"Y",\u00fd:"y",\u00ff:"y",\u00c6:"Ae",\u00e6:"ae",\u00de:"Th",\u00fe:"th",\u00df:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010a:"C",\u010c:"C",\u0107:"c",\u0109:"c",\u010b:"c",\u010d:"c",\u010e:"D",\u0110:"D",\u010f:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011a:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011b:"e",\u011c:"G",\u011e:"G",\u0120:"G",\u0122:"G",\u011d:"g",\u011f:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012a:"I",\u012c:"I",\u012e:"I",\u0130:"I",\u0129:"i",\u012b:"i",\u012d:"i",\u012f:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013b:"L",\u013d:"L",\u013f:"L",\u0141:"L",\u013a:"l",\u013c:"l",\u013e:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014a:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014b:"n",\u014c:"O",\u014e:"O",\u0150:"O",\u014d:"o",\u014f:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015a:"S",\u015c:"S",\u015e:"S",\u0160:"S",\u015b:"s",\u015d:"s",\u015f:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016a:"U",\u016c:"U",\u016e:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016b:"u",\u016d:"u",\u016f:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017b:"Z",\u017d:"Z",\u017a:"z",\u017c:"z",\u017e:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017f:"s"}),Fw=kf({"&":"&","<":"<",">":">",'"':""","'":"'"});function di(W){return"\\"+um[W]}function il(W){return lm.test(W)}function Ru(W){var ae=-1,re=Array(W.size);return W.forEach(function(He,ht){re[++ae]=[ht,He]}),re}function Rw(W,ae){return function(re){return W(ae(re))}}function Hs(W,ae){for(var re=-1,He=W.length,ht=0,Ht=[];++re",""":'"',"'":"'"}),ol=function W(ae){var c,re=(ae=null==ae?ir:ol.defaults(ir.Object(),ae,ol.pick(ir,Ew))).Array,He=ae.Date,ht=ae.Error,Ht=ae.Function,In=ae.Math,nn=ae.Object,Nf=ae.RegExp,Ow=ae.String,fi=ae.TypeError,Pf=re.prototype,Hr=nn.prototype,Lf=ae["__core-js_shared__"],Nu=Ht.prototype.toString,Kt=Hr.hasOwnProperty,Pw=0,mv=(c=/[^.]+$/.exec(Lf&&Lf.keys&&Lf.keys.IE_PROTO||""))?"Symbol(src)_1."+c:"",Bf=Hr.toString,gv=Nu.call(nn),Lw=ir._,Bw=Nf("^"+Nu.call(Kt).replace(Ef,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Vf=Sf?ae.Buffer:N,An=ae.Symbol,Uf=ae.Uint8Array,_v=Vf?Vf.allocUnsafe:N,Wt=Rw(nn.getPrototypeOf,nn),_m=nn.create,Ze=Hr.propertyIsEnumerable,Sr=Pf.splice,yt=An?An.isConcatSpreadable:N,kn=An?An.iterator:N,Mn=An?An.toStringTag:N,Jo=function(){try{var c=ls(nn,"defineProperty");return c({},"",{}),c}catch{}}(),jr=ae.clearTimeout!==ir.clearTimeout&&ae.clearTimeout,vv=He&&He.now!==ir.Date.now&&He.now,yv=ae.setTimeout!==ir.setTimeout&&ae.setTimeout,sl=In.ceil,Hf=In.floor,vm=nn.getOwnPropertySymbols,Pu=Vf?Vf.isBuffer:N,xv=ae.isFinite,ym=Pf.join,bv=Rw(nn.keys,nn),Bn=In.max,Zr=In.min,xm=He.now,Vw=ae.parseInt,jf=In.random,wv=Pf.reverse,zf=ls(ae,"DataView"),To=ls(ae,"Map"),bm=ls(ae,"Promise"),ba=ls(ae,"Set"),wa=ls(ae,"WeakMap"),Lu=ls(nn,"create"),ac=wa&&new wa,zs={},Li=Sa(zf),lc=Sa(To),wm=Sa(bm),Uw=Sa(ba),Hw=Sa(wa),Bu=An?An.prototype:N,es=Bu?Bu.valueOf:N,Ev=Bu?Bu.toString:N;function D(c){if(vn(c)&&!it(c)&&!(c instanceof Dt)){if(c instanceof ao)return c;if(Kt.call(c,"__wrapped__"))return Qv(c)}return new ao(c)}var cc=function(){function c(){}return function(d){if(!rn(d))return{};if(_m)return _m(d);c.prototype=d;var p=new c;return c.prototype=N,p}}();function uc(){}function ao(c,d){this.__wrapped__=c,this.__actions__=[],this.__chain__=!!d,this.__index__=0,this.__values__=N}function Dt(c){this.__wrapped__=c,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=Ko,this.__views__=[]}function al(c){var d=-1,p=null==c?0:c.length;for(this.clear();++d=d?c:d)),c}function zn(c,d,p,y,E,S){var L,j=1&d,X=2&d,me=4&d;if(p&&(L=E?p(c,y,E,S):p(c)),L!==N)return L;if(!rn(c))return c;var ge=it(c);if(ge){if(L=function sE(c){var d=c.length,p=new c.constructor(d);return d&&"string"==typeof c[0]&&Kt.call(c,"index")&&(p.index=c.index,p.input=c.input),p}(c),!j)return $r(c,L)}else{var be=kr(c),Le=be==Kp||be==Pt;if(yl(c))return Bv(c,j);if(be==an||be==ql||Le&&!E){if(L=X||Le?{}:ch(c),!j)return X?function yk(c,d){return mo(c,zm(c),d)}(c,function co(c,d){return c&&mo(d,ti(d),c)}(L,c)):function Uv(c,d){return mo(c,Zu(c),d)}(c,ju(L,c))}else{if(!tn[be])return E?c:{};L=function Gv(c,d,p){var y=c.constructor;switch(d){case wu:return Nm(c);case vu:case yu:return new y(+c);case xa:return function oe(c,d){var p=d?Nm(c.buffer):c.buffer;return new c.constructor(p,c.byteOffset,c.byteLength)}(c,p);case Ps:case Yl:case Jp:case Eu:case em:case Cu:case tm:case Qa:case Kl:return Ui(c,p);case io:return new y;case Za:case ya:return new y(c);case Xl:return function xt(c){var d=new c.constructor(c.source,Tu.exec(c));return d.lastIndex=c.lastIndex,d}(c);case Tr:return new y;case xu:return function ho(c){return es?nn(es.call(c)):{}}(c)}}(c,be,j)}}S||(S=new At);var We=S.get(c);if(We)return We;S.set(c,L),Ry(c)?c.forEach(function(Ke){L.add(zn(Ke,d,p,Ke,c,S))}):Ch(c)&&c.forEach(function(Ke,bt){L.set(bt,zn(Ke,d,p,bt,c,S))});var gt=ge?N:(me?X?jm:Hm:X?ti:ar)(c);return oo(gt||c,function(Ke,bt){gt&&(Ke=c[bt=Ke]),ns(L,bt,zn(Ke,d,p,bt,c,S))}),L}function ul(c,d,p){var y=p.length;if(null==c)return!y;for(c=nn(c);y--;){var E=p[y],L=c[E];if(L===N&&!(E in c)||!(0,d[E])(L))return!1}return!0}function Vn(c,d,p){if("function"!=typeof c)throw new fi(Je);return pl(function(){c.apply(N,p)},d)}function Ca(c,d,p,y){var E=-1,S=Su,L=!0,j=c.length,X=[],me=d.length;if(!j)return X;p&&(d=mn(d,Ni(p))),y?(S=Ur,L=!1):d.length>=200&&(S=Qo,L=!1,d=new Fn(d));e:for(;++E-1},$s.prototype.set=function Cm(c,d){var p=this.__data__,y=Hu(p,c);return y<0?(++this.size,p.push([c,d])):p[y][1]=d,this},lo.prototype.clear=function En(){this.size=0,this.__data__={hash:new al,map:new(To||$s),string:new al}},lo.prototype.delete=function Te(c){var d=ah(this,c).delete(c);return this.size-=d?1:0,d},lo.prototype.get=function Ge(c){return ah(this,c).get(c)},lo.prototype.has=function Kn(c){return ah(this,c).has(c)},lo.prototype.set=function Do(c,d){var p=ah(this,c),y=p.size;return p.set(c,d),this.size+=p.size==y?0:1,this},Fn.prototype.add=Fn.prototype.push=function Qr(c){return this.__data__.set(c,Wp),this},Fn.prototype.has=function fc(c){return this.__data__.has(c)},At.prototype.clear=function Zn(){this.__data__=new $s,this.size=0},At.prototype.delete=function ts(c){var d=this.__data__,p=d.delete(c);return this.size=d.size,p},At.prototype.get=function st(c){return this.__data__.get(c)},At.prototype.has=function Uu(c){return this.__data__.has(c)},At.prototype.set=function Tv(c,d){var p=this.__data__;if(p instanceof $s){var y=p.__data__;if(!To||y.length<199)return y.push([c,d]),this.size=++p.size,this;p=this.__data__=new lo(y)}return p.set(c,d),this.size=p.size,this};var fn=Lm(fo),Ir=Lm(qf,!0);function Tm(c,d){var p=!0;return fn(c,function(y,E,S){return p=!!d(y,E,S)}),p}function rs(c,d,p){for(var y=-1,E=c.length;++y0&&p(j)?d>1?$n(j,d-1,p,y,E):tl(E,j):y||(E[E.length]=j)}return E}var Gf=Bm(),Dv=Bm(!0);function fo(c,d){return c&&Gf(c,d,ar)}function qf(c,d){return c&&Dv(c,d,ar)}function Xf(c,d){return Zo(d,function(p){return Js(c[p])})}function Ws(c,d){for(var p=0,y=(d=pi(d,c)).length;null!=c&&pd}function dk(c,d){return null!=c&&Kt.call(c,d)}function fk(c,d){return null!=c&&d in nn(c)}function Iv(c,d,p){for(var y=p?Ur:Su,E=c[0].length,S=c.length,L=S,j=re(S),X=1/0,me=[];L--;){var ge=c[L];L&&d&&(ge=mn(ge,Ni(d))),X=Zr(ge.length,X),j[L]=!p&&(d||E>=120&&ge.length>=120)?new Fn(L&&ge):N}ge=c[0];var be=-1,Le=j[0];e:for(;++be=j?X:X*("desc"==p[y]?-1:1)}return c.index-d.index}(S,L,p)})}function Ot(c,d,p){for(var y=-1,E=d.length,S={};++y-1;)j!==c&&Sr.call(j,X,1),Sr.call(c,X,1);return c}function zr(c,d){for(var p=c?d.length:0,y=p-1;p--;){var E=d[p];if(p==y||E!==S){var S=E;Ys(E)?Sr.call(c,E,1):vc(c,E)}}return c}function Mm(c,d){return c+Hf(jf()*(d-c+1))}function Gs(c,d){var p="";if(!c||d<1||d>Ns)return p;do{d%2&&(p+=c),(d=Hf(d/2))&&(c+=c)}while(d);return p}function nt(c,d){return dh(qm(c,d,mr),c+"")}function tE(c){return gn(Lc(c))}function Fm(c,d){var p=Lc(c);return hh(p,Io(d,0,p.length))}function Wu(c,d,p,y){if(!rn(c))return c;for(var E=-1,S=(d=pi(d,c)).length,L=S-1,j=c;null!=j&&++EE?0:E+d),(p=p>E?E:p)<0&&(p+=E),E=d>p?0:p-d>>>0,d>>>=0;for(var S=re(E);++y>>1,L=c[S];null!==L&&!zi(L)&&(p?L<=d:L=200){var me=d?null:$v(c);if(me)return pm(me);L=!1,E=Qo,X=new Fn}else X=d?[]:j;e:for(;++y=y?c:Vi(c,d,p)}var Lv=jr||function(c){return ir.clearTimeout(c)};function Bv(c,d){if(d)return c.slice();var p=c.length,y=_v?_v(p):new c.constructor(p);return c.copy(y),y}function Nm(c){var d=new c.constructor(c.byteLength);return new Uf(d).set(new Uf(c)),d}function Ui(c,d){var p=d?Nm(c.buffer):c.buffer;return new c.constructor(p,c.byteOffset,c.length)}function Gt(c,d){if(c!==d){var p=c!==N,y=null===c,E=c==c,S=zi(c),L=d!==N,j=null===d,X=d==d,me=zi(d);if(!j&&!me&&!S&&c>d||S&&L&&X&&!j&&!me||y&&L&&X||!p&&X||!E)return 1;if(!y&&!S&&!me&&c1?p[E-1]:N,L=E>2?p[2]:N;for(S=c.length>3&&"function"==typeof S?(E--,S):N,L&&mi(p[0],p[1],L)&&(S=E<3?N:S,E=1),d=nn(d);++y-1?E[S?d[L]:L]:N}}function Vm(c){return Xs(function(d){var p=d.length,y=p,E=ao.prototype.thru;for(c&&d.reverse();y--;){var S=d[y];if("function"!=typeof S)throw new fi(Je);if(E&&!L&&"wrapper"==Ku(S))var L=new ao([],!0)}for(y=L?y:p;++y1&&St.reverse(),ge&&Xj))return!1;var me=S.get(c),ge=S.get(d);if(me&&ge)return me==d&&ge==c;var be=-1,Le=!0,We=2&p?new Fn:N;for(S.set(c,d),S.set(d,c);++be-1&&c%1==0&&c1?"& ":"")+d[y],d=d.join(p>2?", ":" "),c.replace(Dr,"{\n/* [wrapped with "+d+"] */\n")}(y,function Zv(c,d){return oo(G_,function(p){var y="_."+p[0];d&p[1]&&!Su(c,y)&&c.push(y)}),c.sort()}(function Ec(c){var d=c.match(uw);return d?d[1].split(Vr):[]}(y),p)))}function fh(c){var d=0,p=0;return function(){var y=xm(),E=16-(y-p);if(p=y,E>0){if(++d>=800)return arguments[0]}else d=0;return c.apply(N,arguments)}}function hh(c,d){var p=-1,y=c.length,E=y-1;for(d=d===N?y:d;++p1?c[d-1]:N;return p="function"==typeof p?(c.pop(),p):N,dy(c,p)});function my(c){var d=D(c);return d.__chain__=!0,d}function _h(c,d){return d(c)}var gy=Xs(function(c){var d=c.length,p=d?c[0]:0,y=this.__wrapped__,E=function(S){return zu(S,c)};return!(d>1||this.__actions__.length)&&y instanceof Dt&&Ys(p)?((y=y.slice(p,+p+(d?1:0))).__actions__.push({func:_h,args:[E],thisArg:N}),new ao(y,this.__chain__).thru(function(S){return d&&!S.length&&S.push(N),S})):this.thru(E)}),_n=Pm(function(c,d,p){Kt.call(c,p)?++c[p]:je(c,p,1)}),Ac=Hv(ty),od=Hv(Zm);function kc(c,d){return(it(c)?oo:fn)(c,$e(d,3))}function Mc(c,d){return(it(c)?fm:Ir)(c,$e(d,3))}var yy=Pm(function(c,d,p){Kt.call(c,p)?c[p].push(d):je(c,p,[d])}),kE=nt(function(c,d,p){var y=-1,E="function"==typeof d,S=_i(c)?re(c.length):[];return fn(c,function(L){S[++y]=E?Oi(d,L,p):Yf(L,d,p)}),S}),ME=Pm(function(c,d,p){je(c,p,d)});function vh(c,d){return(it(c)?mn:Sm)(c,$e(d,3))}var a0=Pm(function(c,d,p){c[p?0:1].push(d)},function(){return[[],[]]}),Fc=nt(function(c,d){if(null==c)return[];var p=d.length;return p>1&&mi(c,d[0],d[1])?d=[]:p>2&&mi(d[0],d[1],d[2])&&(d=[d[0]]),Am(c,$n(d,1),[])}),sd=vv||function(){return ir.Date.now()};function Ey(c,d,p){return d=p?N:d,ss(c,128,N,N,N,N,d=c&&null==d?c.length:d)}function c0(c,d){var p;if("function"!=typeof d)throw new fi(Je);return c=vt(c),function(){return--c>0&&(p=d.apply(this,arguments)),c<=1&&(d=N),p}}var u0=nt(function(c,d,p){var y=1;if(p.length){var E=Hs(p,as(u0));y|=32}return ss(c,y,d,p,E)}),d0=nt(function(c,d,p){var y=3;if(p.length){var E=Hs(p,as(d0));y|=32}return ss(d,y,c,p,E)});function Ty(c,d,p){var y,E,S,L,j,X,me=0,ge=!1,be=!1,Le=!0;if("function"!=typeof c)throw new fi(Je);function We(jn){var Fr=y,ds=E;return y=E=N,me=jn,L=c.apply(ds,Fr)}function Ke(jn){var Fr=jn-X;return X===N||Fr>=d||Fr<0||be&&jn-me>=S}function bt(){var jn=sd();if(Ke(jn))return St(jn);j=pl(bt,function gt(jn){var U0=d-(jn-X);return be?Zr(U0,S-(jn-me)):U0}(jn))}function St(jn){return j=N,Le&&y?We(jn):(y=E=N,L)}function ri(){var jn=sd(),Fr=Ke(jn);if(y=arguments,E=this,X=jn,Fr){if(j===N)return function rt(jn){return me=jn,j=pl(bt,d),ge?We(jn):L}(X);if(be)return Lv(j),j=pl(bt,d),We(X)}return j===N&&(j=pl(bt,d)),L}return d=Ro(d)||0,rn(p)&&(ge=!!p.leading,S=(be="maxWait"in p)?Bn(Ro(p.maxWait)||0,d):S,Le="trailing"in p?!!p.trailing:Le),ri.cancel=function Gi(){j!==N&&Lv(j),me=0,y=X=E=j=N},ri.flush=function ni(){return j===N?L:St(sd())},ri}var RE=nt(function(c,d){return Vn(c,1,d)}),OE=nt(function(c,d,p){return Vn(c,Ro(d)||0,p)});function ad(c,d){if("function"!=typeof c||null!=d&&"function"!=typeof d)throw new fi(Je);var p=function(){var y=arguments,E=d?d.apply(this,y):y[0],S=p.cache;if(S.has(E))return S.get(E);var L=c.apply(this,y);return p.cache=S.set(E,L)||S,L};return p.cache=new(ad.Cache||lo),p}function ld(c){if("function"!=typeof c)throw new fi(Je);return function(){var d=arguments;switch(d.length){case 0:return!c.call(this);case 1:return!c.call(this,d[0]);case 2:return!c.call(this,d[0],d[1]);case 3:return!c.call(this,d[0],d[1],d[2])}return!c.apply(this,d)}}ad.Cache=lo;var xh=rE(function(c,d){var p=(d=1==d.length&&it(d[0])?mn(d[0],Ni($e())):mn($n(d,1),Ni($e()))).length;return nt(function(y){for(var E=-1,S=Zr(y.length,p);++E=d}),_l=Kw(function(){return arguments}())?Kw:function(c){return vn(c)&&Kt.call(c,"callee")&&!Ze.call(c,"callee")},it=re.isArray,vl=ic?Ni(ic):function mk(c){return vn(c)&&hi(c)==wu};function _i(c){return null!=c&&Rc(c.length)&&!Js(c)}function Hn(c){return vn(c)&&_i(c)}var yl=Pu||tx,Qs=dm?Ni(dm):function gk(c){return vn(c)&&hi(c)==yu};function Fy(c){if(!vn(c))return!1;var d=hi(c);return d==xf||"[object DOMException]"==d||"string"==typeof c.message&&"string"==typeof c.name&&!Ih(c)}function Js(c){if(!rn(c))return!1;var d=hi(c);return d==Kp||d==Pt||"[object AsyncFunction]"==d||"[object Proxy]"==d}function Eh(c){return"number"==typeof c&&c==vt(c)}function Rc(c){return"number"==typeof c&&c>-1&&c%1==0&&c<=Ns}function rn(c){var d=typeof c;return null!=c&&("object"==d||"function"==d)}function vn(c){return null!=c&&"object"==typeof c}var Ch=lt?Ni(lt):function _k(c){return vn(c)&&kr(c)==io};function Sh(c){return"number"==typeof c||vn(c)&&hi(c)==Za}function Ih(c){if(!vn(c)||hi(c)!=an)return!1;var d=Wt(c);if(null===d)return!0;var p=Kt.call(d,"constructor")&&d.constructor;return"function"==typeof p&&p instanceof p&&Nu.call(p)==gv}var dd=Ut?Ni(Ut):function vk(c){return vn(c)&&hi(c)==Xl},Ry=Dw?Ni(Dw):function Qw(c){return vn(c)&&kr(c)==Tr};function hd(c){return"string"==typeof c||!it(c)&&vn(c)&&hi(c)==ya}function zi(c){return"symbol"==typeof c||vn(c)&&hi(c)==xu}var Nc=lv?Ni(lv):function Mv(c){return vn(c)&&Rc(c.length)&&!!ln[hi(c)]},WE=Yu(Dm),pd=Yu(function(c,d){return c<=d});function v0(c){if(!c)return[];if(_i(c))return hd(c)?so(c):$r(c);if(kn&&c[kn])return function Rf(W){for(var ae,re=[];!(ae=W.next()).done;)re.push(ae.value);return re}(c[kn]());var d=kr(c);return(d==io?Ru:d==Tr?pm:Lc)(c)}function Fo(c){return c?(c=Ro(c))===va||c===-va?17976931348623157e292*(c<0?-1:1):c==c?c:0:0===c?c:0}function vt(c){var d=Fo(c),p=d%1;return d==d?p?d-p:d:0}function GE(c){return c?Io(vt(c),0,Ko):0}function Ro(c){if("number"==typeof c)return c;if(zi(c))return NaN;if(rn(c)){var d="function"==typeof c.valueOf?c.valueOf():c;c=rn(d)?d+"":d}if("string"!=typeof c)return 0===c?c:+c;c=fv(c);var p=JA.test(c);return p||ev.test(c)?lk(c.slice(2),p?2:8):J_.test(c)?NaN:+c}function Pc(c){return mo(c,ti(c))}function Bt(c){return null==c?"":Wn(c)}var y0=fl(function(c,d){if(Ju(d)||_i(d))mo(d,ar(d),c);else for(var p in d)Kt.call(d,p)&&ns(c,p,d[p])}),x0=fl(function(c,d){mo(d,ti(d),c)}),Ah=fl(function(c,d,p,y){mo(d,ti(d),c,y)}),Ny=fl(function(c,d,p,y){mo(d,ar(d),c,y)}),b0=Xs(zu),xl=nt(function(c,d){c=nn(c);var p=-1,y=d.length,E=y>2?d[2]:N;for(E&&mi(d[0],d[1],E)&&(y=1);++p1),S}),mo(c,jm(c),p),y&&(p=zn(p,7,Ar));for(var E=d.length;E--;)vc(p,d[E]);return p}),QE=Xs(function(c,d){return null==c?{}:function Rv(c,d){return Ot(c,d,function(p,y){return C0(c,y)})}(c,d)});function vi(c,d){if(null==c)return{};var p=mn(jm(c),function(y){return[y]});return d=$e(d),Ot(c,p,function(y,E){return d(y,E[0])})}var $y=Um(ar),Wy=Um(ti);function Lc(c){return null==c?[]:hm(c,ar(c))}var md=hl(function(c,d,p){return d=d.toLowerCase(),c+(p?D0(d):d)});function D0(c){return M0(Bt(c).toLowerCase())}function S0(c){return(c=Bt(c))&&c.replace(Ql,rl).replace(ww,"")}var Vk=hl(function(c,d,p){return c+(p?"-":"")+d.toLowerCase()}),I0=hl(function(c,d,p){return c+(p?" ":"")+d.toLowerCase()}),A0=os("toLowerCase"),cC=hl(function(c,d,p){return c+(p?"_":"")+d.toLowerCase()}),Yy=hl(function(c,d,p){return c+(p?" ":"")+M0(d)}),pC=hl(function(c,d,p){return c+(p?" ":"")+d.toUpperCase()}),M0=os("toUpperCase");function F0(c,d,p){return c=Bt(c),(d=p?N:d)===N?function Ff(W){return sv.test(W)}(c)?function gm(W){return W.match(Df)||[]}(c):function Iw(W){return W.match(QA)||[]}(c):c.match(d)||[]}var R0=nt(function(c,d){try{return Oi(c,N,d)}catch(p){return Fy(p)?p:new ht(p)}}),mC=Xs(function(c,d){return oo(d,function(p){p=ko(p),je(c,p,u0(c[p],c))}),c});function O0(c){return function(){return c}}var jk=Vm(),zk=Vm(!0);function mr(c){return c}function N0(c){return is("function"==typeof c?c:zn(c,1))}var Jy=nt(function(c,d){return function(p){return Yf(p,c,d)}}),bC=nt(function(c,d){return function(p){return Yf(c,p,d)}});function P0(c,d,p){var y=ar(d),E=Xf(d,y);null==p&&(!rn(d)||!E.length&&y.length)&&(p=d,d=c,c=this,E=Xf(d,ar(d)));var S=!(rn(p)&&"chain"in p&&!p.chain),L=Js(c);return oo(E,function(j){var X=d[j];c[j]=X,L&&(c.prototype[j]=function(){var me=this.__chain__;if(S||me){var ge=c(this.__wrapped__);return(ge.__actions__=$r(this.__actions__)).push({func:X,args:arguments,thisArg:c}),ge.__chain__=me,ge}return X.apply(c,tl([this.value()],arguments))})}),c}function L0(){}var CC=Xu(mn),B0=Xu(Tt),$k=Xu(Au);function TC(c){return qv(c)?ce(ko(c)):function km(c){return function(d){return Ws(d,c)}}(c)}var Wk=zv(),Gk=zv(!0);function ex(){return[]}function tx(){return!1}var ix=xc(function(c,d){return c+d},0),SC=ih("ceil"),IC=xc(function(c,d){return c/d},1),ox=ih("floor"),Yk=xc(function(c,d){return c*d},1),Kk=ih("round"),ax=xc(function(c,d){return c-d},0);return D.after=function wy(c,d){if("function"!=typeof d)throw new fi(Je);return c=vt(c),function(){if(--c<1)return d.apply(this,arguments)}},D.ary=Ey,D.assign=y0,D.assignIn=x0,D.assignInWith=Ah,D.assignWith=Ny,D.at=b0,D.before=c0,D.bind=u0,D.bindAll=mC,D.bindKey=d0,D.castArray=function Ay(){if(!arguments.length)return[];var c=arguments[0];return it(c)?c:[c]},D.chain=my,D.chunk=function ph(c,d,p){d=(p?mi(c,d,p):d===N)?1:Bn(vt(d),0);var y=null==c?0:c.length;if(!y||d<1)return[];for(var E=0,S=0,L=re(sl(y/d));EE?0:E+p),(y=y===N||y>E?E:vt(y))<0&&(y+=E),y=p>y?0:GE(y);p>>0)?(c=Bt(c))&&("string"==typeof d||null!=d&&!dd(d))&&!(d=Wn(d))&&il(c)?Ta(so(c),0,p):c.split(d,p):[]},D.spread=function PE(c,d){if("function"!=typeof c)throw new fi(Je);return d=null==d?0:Bn(vt(d),0),nt(function(p){var y=p[d],E=Ta(p,0,d);return y&&tl(E,y),Oi(c,this,E)})},D.tail=function bE(c){var d=null==c?0:c.length;return d?Vi(c,1,d):[]},D.take=function Cn(c,d,p){return c&&c.length?Vi(c,0,(d=p||d===N?1:vt(d))<0?0:d):[]},D.takeRight=function mh(c,d,p){var y=null==c?0:c.length;return y?Vi(c,(d=y-(d=p||d===N?1:vt(d)))<0?0:d,y):[]},D.takeRightWhile=function cy(c,d){return c&&c.length?qu(c,$e(d,3),!1,!0):[]},D.takeWhile=function uy(c,d){return c&&c.length?qu(c,$e(d,3)):[]},D.tap=function ji(c,d){return d(c),c},D.throttle=function LE(c,d,p){var y=!0,E=!0;if("function"!=typeof c)throw new fi(Je);return rn(p)&&(y="leading"in p?!!p.leading:y,E="trailing"in p?!!p.trailing:E),Ty(c,d,{leading:y,maxWait:d,trailing:E})},D.thru=_h,D.toArray=v0,D.toPairs=$y,D.toPairsIn=Wy,D.toPath=function nx(c){return it(c)?mn(c,ko):zi(c)?[c]:$r(Ym(Bt(c)))},D.toPlainObject=Pc,D.transform=function tC(c,d,p){var y=it(c),E=y||yl(c)||Nc(c);if(d=$e(d,4),null==p){var S=c&&c.constructor;p=E?y?new S:[]:rn(c)&&Js(S)?cc(Wt(c)):{}}return(E?oo:fo)(c,function(L,j,X){return d(p,L,j,X)}),p},D.unary=function BE(c){return Ey(c,1)},D.union=Tk,D.unionBy=t0,D.unionWith=gh,D.uniq=function wE(c){return c&&c.length?qe(c):[]},D.uniqBy=function ct(c,d){return c&&c.length?qe(c,$e(d,2)):[]},D.uniqWith=function EE(c,d){return d="function"==typeof d?d:N,c&&c.length?qe(c,N,d):[]},D.unset=function nC(c,d){return null==c||vc(c,d)},D.unzip=id,D.unzipWith=dy,D.update=function Gy(c,d,p){return null==c?c:Jf(c,d,eh(p))},D.updateWith=function rC(c,d,p,y){return y="function"==typeof y?y:N,null==c?c:Jf(c,d,eh(p),y)},D.values=Lc,D.valuesIn=function iC(c){return null==c?[]:hm(c,ti(c))},D.without=CE,D.words=F0,D.wrap=function VE(c,d){return bh(eh(d),c)},D.xor=n0,D.xorBy=fy,D.xorWith=hy,D.zip=r0,D.zipObject=function TE(c,d){return Pv(c||[],d||[],ns)},D.zipObjectDeep=function DE(c,d){return Pv(c||[],d||[],Wu)},D.zipWith=py,D.entries=$y,D.entriesIn=Wy,D.extend=x0,D.extendWith=Ah,P0(D,D),D.add=ix,D.attempt=R0,D.camelCase=md,D.capitalize=D0,D.ceil=SC,D.clamp=function oC(c,d,p){return p===N&&(p=d,d=N),p!==N&&(p=(p=Ro(p))==p?p:0),d!==N&&(d=(d=Ro(d))==d?d:0),Io(Ro(c),d,p)},D.clone=function Rk(c){return zn(c,4)},D.cloneDeep=function UE(c){return zn(c,5)},D.cloneDeepWith=function HE(c,d){return zn(c,5,d="function"==typeof d?d:N)},D.cloneWith=function ky(c,d){return zn(c,4,d="function"==typeof d?d:N)},D.conformsTo=function Ok(c,d){return null==d||ul(c,d,ar(d))},D.deburr=S0,D.defaultTo=function vC(c,d){return null==c||c!=c?d:c},D.divide=IC,D.endsWith=function qy(c,d,p){c=Bt(c),d=Wn(d);var y=c.length,E=p=p===N?y:Io(vt(p),0,y);return(p-=d.length)>=0&&c.slice(p,E)==d},D.eq=Mo,D.escape=function Lk(c){return(c=Bt(c))&&X_.test(c)?c.replace(Ja,Fw):c},D.escapeRegExp=function Bk(c){return(c=Bt(c))&&Z_.test(c)?c.replace(Ef,"\\$&"):c},D.every=function _y(c,d,p){var y=it(c)?Tt:Tm;return p&&mi(c,d,p)&&(d=N),y(c,$e(d,3))},D.find=Ac,D.findIndex=ty,D.findKey=function kh(c,d){return uv(c,$e(d,3),fo)},D.findLast=od,D.findLastIndex=Zm,D.findLastKey=function By(c,d){return uv(c,$e(d,3),qf)},D.floor=ox,D.forEach=kc,D.forEachRight=Mc,D.forIn=function Vy(c,d){return null==c?c:Gf(c,$e(d,3),ti)},D.forInRight=function Uy(c,d){return null==c?c:Dv(c,$e(d,3),ti)},D.forOwn=function w0(c,d){return c&&fo(c,$e(d,3))},D.forOwnRight=function Hy(c,d){return c&&qf(c,$e(d,3))},D.get=Aa,D.gt=My,D.gte=p0,D.has=function XE(c,d){return null!=c&&Cc(c,d,dk)},D.hasIn=C0,D.head=nd,D.identity=mr,D.includes=function s0(c,d,p,y){c=_i(c)?c:Lc(c),p=p&&!y?vt(p):0;var E=c.length;return p<0&&(p=Bn(E+p,0)),hd(c)?p<=E&&c.indexOf(d,p)>-1:!!E&&Eo(c,d,p)>-1},D.indexOf=function ry(c,d,p){var y=null==c?0:c.length;if(!y)return-1;var E=null==p?0:vt(p);return E<0&&(E=Bn(y+E,0)),Eo(c,d,E)},D.inRange=function Rh(c,d,p){return d=Fo(d),p===N?(p=d,d=0):p=Fo(p),function hk(c,d,p){return c>=Zr(d,p)&&c=-Ns&&c<=Ns},D.isSet=Ry,D.isString=hd,D.isSymbol=zi,D.isTypedArray=Nc,D.isUndefined=function _0(c){return c===N},D.isWeakMap=function Oy(c){return vn(c)&&kr(c)==bu},D.isWeakSet=function $E(c){return vn(c)&&"[object WeakSet]"==hi(c)},D.join=function mE(c,d){return null==c?"":ym.call(c,d)},D.kebabCase=Vk,D.last=Hi,D.lastIndexOf=function gE(c,d,p){var y=null==c?0:c.length;if(!y)return-1;var E=y;return p!==N&&(E=(E=vt(p))<0?Bn(y+E,0):Zr(E,y-1)),d==d?function sc(W,ae,re){for(var He=re+1;He--;)if(W[He]===ae)return He;return He}(c,d,E):ku(c,Us,E,!0)},D.lowerCase=I0,D.lowerFirst=A0,D.lt=WE,D.lte=pd,D.max=function Bc(c){return c&&c.length?rs(c,mr,Sv):N},D.maxBy=function $i(c,d){return c&&c.length?rs(c,$e(d,2),Sv):N},D.mean=function Wi(c){return dv(c,mr)},D.meanBy=function sx(c,d){return dv(c,$e(d,2))},D.min=function Xk(c){return c&&c.length?rs(c,mr,Dm):N},D.minBy=function AC(c,d){return c&&c.length?rs(c,$e(d,2),Dm):N},D.stubArray=ex,D.stubFalse=tx,D.stubObject=function qk(){return{}},D.stubString=function DC(){return""},D.stubTrue=function Nh(){return!0},D.multiply=Yk,D.nth=function _E(c,d){return c&&c.length?Ao(c,vt(d)):N},D.noConflict=function wC(){return ir._===this&&(ir._=Lw),this},D.noop=L0,D.now=sd,D.pad=function Uk(c,d,p){c=Bt(c);var y=(d=vt(d))?Ou(c):0;if(!d||y>=d)return c;var E=(d-y)/2;return bc(Hf(E),p)+c+bc(sl(E),p)},D.padEnd=function Hk(c,d,p){c=Bt(c);var y=(d=vt(d))?Ou(c):0;return d&&yd){var y=c;c=d,d=y}if(p||c%1||d%1){var E=jf();return Zr(c+E*(d-c+ak("1e-"+((E+"").length-1))),d)}return Mm(c,d)},D.reduce=function FE(c,d,p){var y=it(c)?cv:De,E=arguments.length<3;return y(c,$e(d,4),p,E,fn)},D.reduceRight=function gi(c,d,p){var y=it(c)?Iu:De,E=arguments.length<3;return y(c,$e(d,4),p,E,Ir)},D.repeat=function aC(c,d,p){return d=(p?mi(c,d,p):d===N)?1:vt(d),Gs(Bt(c),d)},D.replace=function lC(){var c=arguments,d=Bt(c[0]);return c.length<3?d:d.replace(c[1],c[2])},D.result=function us(c,d,p){var y=-1,E=(d=pi(d,c)).length;for(E||(E=1,c=N);++yNs)return[];var p=Ko,y=Zr(c,Ko);d=$e(d),c-=Ko;for(var E=nl(y,d);++p=S)return c;var j=p-Ou(y);if(j<1)return y;var X=L?Ta(L,0,j).join(""):c.slice(0,j);if(E===N)return X+y;if(L&&(j+=X.length-j),dd(E)){if(c.slice(j).search(E)){var me,ge=X;for(E.global||(E=Nf(E.source,Bt(Tu.exec(E))+"g")),E.lastIndex=0;me=E.exec(ge);)var be=me.index;X=X.slice(0,be===N?j:be)}}else if(c.indexOf(Wn(E),j)!=j){var Le=X.lastIndexOf(E);Le>-1&&(X=X.slice(0,Le))}return X+y},D.unescape=function Mr(c){return(c=Bt(c))&&ZA.test(c)?c.replace(wf,Lt):c},D.uniqueId=function rx(c){var d=++Pw;return Bt(c)+d},D.upperCase=pC,D.upperFirst=M0,D.each=kc,D.eachRight=Mc,D.first=nd,P0(D,function(){var c={};return fo(D,function(d,p){Kt.call(D.prototype,p)||(c[p]=d)}),c}(),{chain:!1}),D.VERSION="4.17.21",oo(["bind","bindKey","curry","curryRight","partial","partialRight"],function(c){D[c].placeholder=D}),oo(["drop","take"],function(c,d){Dt.prototype[c]=function(p){p=p===N?1:Bn(vt(p),0);var y=this.__filtered__&&!d?new Dt(this):this.clone();return y.__filtered__?y.__takeCount__=Zr(p,y.__takeCount__):y.__views__.push({size:Zr(p,Ko),type:c+(y.__dir__<0?"Right":"")}),y},Dt.prototype[c+"Right"]=function(p){return this.reverse()[c](p).reverse()}}),oo(["filter","map","takeWhile"],function(c,d){var p=d+1,y=1==p||3==p;Dt.prototype[c]=function(E){var S=this.clone();return S.__iteratees__.push({iteratee:$e(E,3),type:p}),S.__filtered__=S.__filtered__||y,S}}),oo(["head","last"],function(c,d){var p="take"+(d?"Right":"");Dt.prototype[c]=function(){return this[p](1).value()[0]}}),oo(["initial","tail"],function(c,d){var p="drop"+(d?"":"Right");Dt.prototype[c]=function(){return this.__filtered__?new Dt(this):this[p](1)}}),Dt.prototype.compact=function(){return this.filter(mr)},Dt.prototype.find=function(c){return this.filter(c).head()},Dt.prototype.findLast=function(c){return this.reverse().find(c)},Dt.prototype.invokeMap=nt(function(c,d){return"function"==typeof c?new Dt(this):this.map(function(p){return Yf(p,c,d)})}),Dt.prototype.reject=function(c){return this.filter(ld($e(c)))},Dt.prototype.slice=function(c,d){c=vt(c);var p=this;return p.__filtered__&&(c>0||d<0)?new Dt(p):(c<0?p=p.takeRight(-c):c&&(p=p.drop(c)),d!==N&&(p=(d=vt(d))<0?p.dropRight(-d):p.take(d-c)),p)},Dt.prototype.takeRightWhile=function(c){return this.reverse().takeWhile(c).reverse()},Dt.prototype.toArray=function(){return this.take(Ko)},fo(Dt.prototype,function(c,d){var p=/^(?:filter|find|map|reject)|While$/.test(d),y=/^(?:head|last)$/.test(d),E=D[y?"take"+("last"==d?"Right":""):d],S=y||/^find/.test(d);E&&(D.prototype[d]=function(){var L=this.__wrapped__,j=y?[1]:arguments,X=L instanceof Dt,me=j[0],ge=X||it(L),be=function(bt){var St=E.apply(D,tl([bt],j));return y&&Le?St[0]:St};ge&&p&&"function"==typeof me&&1!=me.length&&(X=ge=!1);var Le=this.__chain__,rt=S&&!Le,gt=X&&!this.__actions__.length;if(!S&&ge){L=gt?L:new Dt(this);var Ke=c.apply(L,j);return Ke.__actions__.push({func:_h,args:[be],thisArg:N}),new ao(Ke,Le)}return rt&>?c.apply(this,j):(Ke=this.thru(be),rt?y?Ke.value()[0]:Ke.value():Ke)})}),oo(["pop","push","shift","sort","splice","unshift"],function(c){var d=Pf[c],p=/^(?:push|sort|unshift)$/.test(c)?"tap":"thru",y=/^(?:pop|shift)$/.test(c);D.prototype[c]=function(){var E=arguments;if(y&&!this.__chain__){var S=this.value();return d.apply(it(S)?S:[],E)}return this[p](function(L){return d.apply(it(L)?L:[],E)})}}),fo(Dt.prototype,function(c,d){var p=D[d];if(p){var y=p.name+"";Kt.call(zs,y)||(zs[y]=[]),zs[y].push({name:d,func:p})}}),zs[th(N,2).name]=[{name:"wrapper",func:N}],Dt.prototype.clone=function Em(){var c=new Dt(this.__wrapped__);return c.__actions__=$r(this.__actions__),c.__dir__=this.__dir__,c.__filtered__=this.__filtered__,c.__iteratees__=$r(this.__iteratees__),c.__takeCount__=this.__takeCount__,c.__views__=$r(this.__views__),c},Dt.prototype.reverse=function dc(){if(this.__filtered__){var c=new Dt(this);c.__dir__=-1,c.__filtered__=!0}else(c=this.clone()).__dir__*=-1;return c},Dt.prototype.value=function jw(){var c=this.__wrapped__.value(),d=this.__dir__,p=it(c),y=d<0,E=p?c.length:0,S=function oE(c,d,p){for(var y=-1,E=p.length;++y=this.__values__.length;return{done:c,value:c?N:this.__values__[this.__index__++]}},D.prototype.plant=function kk(c){for(var d,p=this;p instanceof uc;){var y=Qv(p);y.__index__=0,y.__values__=N,d?E.__wrapped__=y:d=y;var E=y;p=p.__wrapped__}return E.__wrapped__=c,d},D.prototype.reverse=function SE(){var c=this.__wrapped__;if(c instanceof Dt){var d=c;return this.__actions__.length&&(d=new Dt(this)),(d=d.reverse()).__actions__.push({func:_h,args:[sy],thisArg:N}),new ao(d,this.__chain__)}return this.thru(sy)},D.prototype.toJSON=D.prototype.valueOf=D.prototype.value=function Ic(){return nE(this.__wrapped__,this.__actions__)},D.prototype.first=D.prototype.head,kn&&(D.prototype[kn]=function Ak(){return this}),D}();ir._=ol,(Wl=function(){return ol}.call($l,zp,$l,Rs))!==N&&(Rs.exports=Wl)}.call(this)}},Rs=>{Rs(Rs.s=292)}]); \ No newline at end of file diff --git a/docs/main.js b/docs/main.js deleted file mode 100644 index 6d5219e..0000000 --- a/docs/main.js +++ /dev/null @@ -1,1331 +0,0 @@ -"use strict"; -(self["webpackChunksorteo_wen"] = self["webpackChunksorteo_wen"] || []).push([["main"],{ - -/***/ 92: -/*!**********************************!*\ - !*** ./src/app/app.component.ts ***! - \**********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ AppComponent: () => (/* binding */ AppComponent), -/* harmony export */ Version: () => (/* binding */ Version) -/* harmony export */ }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ 7580); -/* harmony import */ var _svg_service__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./svg.service */ 8157); - - -const _c0 = ["headBar"]; -const _c1 = ["version2023"]; -function AppComponent_Conditional_3_Template(rf, ctx) { - if (rf & 1) { - const _r2 = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵgetCurrentView"](); - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](0, "mat-button-toggle-group", 8, 2); - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵlistener"]("change", function AppComponent_Conditional_3_Template_mat_button_toggle_group_change_0_listener() { - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵrestoreView"](_r2); - const toggleGroup_r3 = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵreference"](1); - const ctx_r3 = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵnextContext"](); - return _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵresetView"](ctx_r3.changeVersionDisplaying(toggleGroup_r3.value)); - }); - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](2, "mat-button-toggle", 9); - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](3, "2023"); - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"]()(); - } - if (rf & 2) { - const ctx_r3 = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵnextContext"](); - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("value", ctx_r3.displayVersion); - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("value", ctx_r3.version._2023); - } -} -var Version; -(function (Version) { - Version[Version["_2023"] = 0] = "_2023"; -})(Version || (Version = {})); -class AppComponent { - constructor(svgService) { - this.svgService = svgService; - this.showVersionControl = false; - this.displayVersion = Version._2023; - this.version = Version; - this.status = { - start: false, - finish: false - }; - this.svgService.init(); - } - resetearSorteo() { - switch (this.displayVersion) { - case Version._2023: - this.version2023.resetearSorteo(); - break; - } - } - changeVersionDisplaying(version) { - this.headBar.resetearSorteo(true); - this.displayVersion = version; - } - static { - this.ɵfac = function AppComponent_Factory(__ngFactoryType__) { - return new (__ngFactoryType__ || AppComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](_svg_service__WEBPACK_IMPORTED_MODULE_0__.SvgService)); - }; - } - static { - this.ɵcmp = /*@__PURE__*/_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ - type: AppComponent, - selectors: [["app-root"]], - viewQuery: function AppComponent_Query(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵviewQuery"](_c0, 5); - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵviewQuery"](_c1, 5); - } - if (rf & 2) { - let _t; - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵloadQuery"]()) && (ctx.headBar = _t.first); - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵloadQuery"]()) && (ctx.version2023 = _t.first); - } - }, - decls: 7, - vars: 4, - consts: [["headBar", ""], ["version2023", ""], ["toggleGroup", "matButtonToggleGroup"], ["id", "app"], [3, "fireResetearSorteo", "displayVersion", "status"], ["id", "toggleVersion", 3, "value"], ["id", "appBody"], [1, "fullWidth", "fullHeight", "centerContainer", 3, "status"], ["id", "toggleVersion", 3, "change", "value"], [3, "value"]], - template: function AppComponent_Template(rf, ctx) { - if (rf & 1) { - const _r1 = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵgetCurrentView"](); - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](0, "div", 3)(1, "app-head-bar", 4, 0); - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵlistener"]("fireResetearSorteo", function AppComponent_Template_app_head_bar_fireResetearSorteo_1_listener() { - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵrestoreView"](_r1); - return _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵresetView"](ctx.resetearSorteo()); - }); - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtemplate"](3, AppComponent_Conditional_3_Template, 4, 2, "mat-button-toggle-group", 5); - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](4, "div", 6); - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelement"](5, "app-version2023", 7, 1); - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"]()(); - } - if (rf & 2) { - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](); - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("displayVersion", ctx.displayVersion)("status", ctx.status); - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵconditional"](ctx.showVersionControl ? 3 : -1); - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("status", ctx.status); - } - }, - styles: ["app-head-bar[_ngcontent-%COMP%] {\n background: #0A0089;\n}\n\n#app[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n background: #0A0089;\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n}\n#app[_ngcontent-%COMP%] #appBody[_ngcontent-%COMP%] {\n height: -webkit-fill-available;\n background-color: white;\n display: flex;\n align-items: center;\n flex-direction: column;\n width: inherit;\n}\n#app[_ngcontent-%COMP%] #toggleVersion[_ngcontent-%COMP%] {\n position: absolute;\n top: 6em;\n left: 1em;\n}\n\n.hidden[_ngcontent-%COMP%] {\n display: none;\n}\n\n.fullWidth[_ngcontent-%COMP%] {\n width: -webkit-fill-available;\n}\n\n.fullHeight[_ngcontent-%COMP%] {\n height: -webkit-fill-available !important;\n}\n\n.centerContainer[_ngcontent-%COMP%] {\n display: flex;\n justify-content: center;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8uL3NyYy9hcHAvYXBwLmNvbXBvbmVudC5zY3NzIiwid2VicGFjazovLy4vc3JjL3RoZW1lcy9hcHAtY29sb3JzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0E7RUFDSSxtQkNGaUI7QURFckI7O0FBRUE7RUFDSSxXQUFBO0VBQ0EsWUFBQTtFQUNBLG1CQ1BpQjtFRFFqQixhQUFBO0VBQ0Esc0JBQUE7RUFDQSxnQkFBQTtBQUNKO0FBQ0k7RUFDSSw4QkFBQTtFQUNBLHVCQUFBO0VBQ0EsYUFBQTtFQUNBLG1CQUFBO0VBQ0Esc0JBQUE7RUFDQSxjQUFBO0FBQ1I7QUFFSTtFQUNJLGtCQUFBO0VBQ0EsUUFBQTtFQUNBLFNBQUE7QUFBUjs7QUFLQTtFQUNJLGFBQUE7QUFGSjs7QUFJQTtFQUNJLDZCQUFBO0FBREo7O0FBR0E7RUFDSSx5Q0FBQTtBQUFKOztBQUdBO0VBQ0ksYUFBQTtFQUNBLHVCQUFBO0FBQUoiLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0IFwiYXBwLWNvbG9ycy5zY3NzXCI7XHJcbmFwcC1oZWFkLWJhcntcclxuICAgIGJhY2tncm91bmQ6ICRjb2xvci1wcmltYXJ5LWJsdWU7ICBcclxufVxyXG4jYXBwIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgYmFja2dyb3VuZDogJGNvbG9yLXByaW1hcnktYmx1ZTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgb3ZlcmZsb3cteTogYXV0bztcclxuXHJcbiAgICAjYXBwQm9keSB7XHJcbiAgICAgICAgaGVpZ2h0OiAtd2Via2l0LWZpbGwtYXZhaWxhYmxlO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgIHdpZHRoOiBpbmhlcml0O1xyXG4gICAgfVxyXG5cclxuICAgICN0b2dnbGVWZXJzaW9uIHtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgdG9wOiA2ZW07XHJcbiAgICAgICAgbGVmdDogMWVtO1xyXG4gICAgfVxyXG59XHJcblxyXG5cclxuLmhpZGRlbiB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG59XHJcbi5mdWxsV2lkdGgge1xyXG4gICAgd2lkdGg6IC13ZWJraXQtZmlsbC1hdmFpbGFibGU7XHJcbn1cclxuLmZ1bGxIZWlnaHQge1xyXG4gICAgaGVpZ2h0OiAtd2Via2l0LWZpbGwtYXZhaWxhYmxlICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5jZW50ZXJDb250YWluZXIge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG59IiwiJGNvbG9yLXByaW1hcnktYmx1ZTogIzBBMDA4OTtcclxuJGNvbG9yLXNlY29uZGFyeS1ibHVlOiAjM0RCMEU0O1xyXG4kY29sb3ItcHJpbWFyeS1ibGFjazogIzIyMUUxRTtcclxuJGNvbG9yLWVycm9yOiAjQkEwOEE4O1xyXG4kY29sb3ItZXhpdG86ICRjb2xvci1zZWNvbmRhcnktYmx1ZTtcclxuJGNvbG9yLWdyYXk6ICNjNWM1YzU7XHJcbiJdLCJzb3VyY2VSb290IjoiIn0= */"] - }); - } -} - -/***/ }), - -/***/ 635: -/*!*******************************!*\ - !*** ./src/app/app.module.ts ***! - \*******************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ AppModule: () => (/* binding */ AppModule) -/* harmony export */ }); -/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @angular/platform-browser */ 436); -/* harmony import */ var _angular_material_icon__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @angular/material/icon */ 3840); -/* harmony import */ var _svg_service__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./svg.service */ 8157); -/* harmony import */ var _angular_common_http__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @angular/common/http */ 6443); -/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @angular/forms */ 4456); -/* harmony import */ var _angular_platform_browser_animations__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @angular/platform-browser/animations */ 3835); -/* harmony import */ var _angular_material_button__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @angular/material/button */ 4175); -/* harmony import */ var _angular_material_input__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @angular/material/input */ 5541); -/* harmony import */ var _angular_material_button_toggle__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @angular/material/button-toggle */ 9864); -/* harmony import */ var _angular_material_snack_bar__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @angular/material/snack-bar */ 3347); -/* harmony import */ var _angular_material_tooltip__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @angular/material/tooltip */ 640); -/* harmony import */ var _app_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./app.component */ 92); -/* harmony import */ var _components_resultados_resultados_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./components/resultados/resultados.component */ 7307); -/* harmony import */ var _components_head_bar_head_bar_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./components/head-bar/head-bar.component */ 9167); -/* harmony import */ var _components_version2023_version2023_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./components/version2023/version2023.component */ 2833); -/* harmony import */ var _components_version2023_carga_listado_carga_listado_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./components/version2023/carga-listado/carga-listado.component */ 439); -/* harmony import */ var _components_version2023_slots_sorteo2023_slots_sorteo2023_component__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./components/version2023/slots-sorteo2023/slots-sorteo2023.component */ 6191); -/* harmony import */ var _components_aviso_snack_aviso_snack_component__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./components/aviso-snack/aviso-snack.component */ 3713); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/core */ 7580); - - - - - - -// MATERIAL ANGULAR - - - - - -// COMPONENTES - - - - - - - - - -class AppModule { - static { - this.ɵfac = function AppModule_Factory(__ngFactoryType__) { - return new (__ngFactoryType__ || AppModule)(); - }; - } - static { - this.ɵmod = /*@__PURE__*/_angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵdefineNgModule"]({ - type: AppModule, - bootstrap: [_app_component__WEBPACK_IMPORTED_MODULE_1__.AppComponent] - }); - } - static { - this.ɵinj = /*@__PURE__*/_angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵdefineInjector"]({ - providers: [_svg_service__WEBPACK_IMPORTED_MODULE_0__.SvgService], - imports: [_angular_platform_browser__WEBPACK_IMPORTED_MODULE_9__.BrowserModule, _angular_platform_browser_animations__WEBPACK_IMPORTED_MODULE_10__.BrowserAnimationsModule, _angular_material_icon__WEBPACK_IMPORTED_MODULE_11__.MatIconModule, _angular_common_http__WEBPACK_IMPORTED_MODULE_12__.HttpClientModule, _angular_material_button__WEBPACK_IMPORTED_MODULE_13__.MatButtonModule, _angular_forms__WEBPACK_IMPORTED_MODULE_14__.FormsModule, _angular_material_input__WEBPACK_IMPORTED_MODULE_15__.MatInputModule, _angular_forms__WEBPACK_IMPORTED_MODULE_14__.ReactiveFormsModule, _angular_material_button_toggle__WEBPACK_IMPORTED_MODULE_16__.MatButtonToggleModule, _angular_material_snack_bar__WEBPACK_IMPORTED_MODULE_17__.MatSnackBarModule, _angular_material_tooltip__WEBPACK_IMPORTED_MODULE_18__.MatTooltipModule] - }); - } -} -(function () { - (typeof ngJitMode === "undefined" || ngJitMode) && _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵsetNgModuleScope"](AppModule, { - declarations: [_app_component__WEBPACK_IMPORTED_MODULE_1__.AppComponent, _components_resultados_resultados_component__WEBPACK_IMPORTED_MODULE_2__.ResultadosComponent, _components_head_bar_head_bar_component__WEBPACK_IMPORTED_MODULE_3__.HeadBarComponent, _components_version2023_version2023_component__WEBPACK_IMPORTED_MODULE_4__.Version2023Component, _components_version2023_carga_listado_carga_listado_component__WEBPACK_IMPORTED_MODULE_5__.CargaListadoComponent, _components_aviso_snack_aviso_snack_component__WEBPACK_IMPORTED_MODULE_7__.AvisoSnackComponent, _components_version2023_slots_sorteo2023_slots_sorteo2023_component__WEBPACK_IMPORTED_MODULE_6__.SlotsSorteo2023Component], - imports: [_angular_platform_browser__WEBPACK_IMPORTED_MODULE_9__.BrowserModule, _angular_platform_browser_animations__WEBPACK_IMPORTED_MODULE_10__.BrowserAnimationsModule, _angular_material_icon__WEBPACK_IMPORTED_MODULE_11__.MatIconModule, _angular_common_http__WEBPACK_IMPORTED_MODULE_12__.HttpClientModule, _angular_material_button__WEBPACK_IMPORTED_MODULE_13__.MatButtonModule, _angular_forms__WEBPACK_IMPORTED_MODULE_14__.FormsModule, _angular_material_input__WEBPACK_IMPORTED_MODULE_15__.MatInputModule, _angular_forms__WEBPACK_IMPORTED_MODULE_14__.ReactiveFormsModule, _angular_material_button_toggle__WEBPACK_IMPORTED_MODULE_16__.MatButtonToggleModule, _angular_material_snack_bar__WEBPACK_IMPORTED_MODULE_17__.MatSnackBarModule, _angular_material_tooltip__WEBPACK_IMPORTED_MODULE_18__.MatTooltipModule] - }); -})(); -_angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵsetComponentScope"](_app_component__WEBPACK_IMPORTED_MODULE_1__.AppComponent, [_angular_material_button_toggle__WEBPACK_IMPORTED_MODULE_16__.MatButtonToggleGroup, _angular_material_button_toggle__WEBPACK_IMPORTED_MODULE_16__.MatButtonToggle, _components_head_bar_head_bar_component__WEBPACK_IMPORTED_MODULE_3__.HeadBarComponent, _components_version2023_version2023_component__WEBPACK_IMPORTED_MODULE_4__.Version2023Component], []); - -/***/ }), - -/***/ 3713: -/*!*****************************************************************!*\ - !*** ./src/app/components/aviso-snack/aviso-snack.component.ts ***! - \*****************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ AvisoSnackComponent: () => (/* binding */ AvisoSnackComponent) -/* harmony export */ }); -/* harmony import */ var _angular_material_snack_bar__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/material/snack-bar */ 3347); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ 7580); - - - -class AvisoSnackComponent { - constructor(snackBarRef, data) { - this.snackBarRef = snackBarRef; - this.data = data; - } - ngOnInit() {} - dismiss() { - this.snackBarRef.dismiss(); - } - static { - this.ɵfac = function AvisoSnackComponent_Factory(__ngFactoryType__) { - return new (__ngFactoryType__ || AvisoSnackComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_material_snack_bar__WEBPACK_IMPORTED_MODULE_1__.MatSnackBarRef), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_material_snack_bar__WEBPACK_IMPORTED_MODULE_1__.MAT_SNACK_BAR_DATA)); - }; - } - static { - this.ɵcmp = /*@__PURE__*/_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineComponent"]({ - type: AvisoSnackComponent, - selectors: [["app-aviso-snack"]], - decls: 5, - vars: 4, - consts: [["id", "container", 3, "click"], [1, "title"], [1, "text"]], - template: function AvisoSnackComponent_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "div", 0); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("click", function AvisoSnackComponent_Template_div_click_0_listener() { - return ctx.dismiss(); - }); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](1, "span", 1); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](3, "span", 2); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](4); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"]()(); - } - if (rf & 2) { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassMap"](ctx.data.type); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtextInterpolate"](ctx.data.title); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtextInterpolate"](ctx.data.text); - } - }, - styles: [".cdk-overlay-pane:has(.mat-snack-bar-container):has(app-aviso-snack) #container {\n display: flex;\n flex-direction: column;\n gap: 0.5em;\n padding: 0.5em 1em;\n cursor: pointer;\n}\n .cdk-overlay-pane:has(.mat-snack-bar-container):has(app-aviso-snack) #container span {\n color: white;\n}\n .cdk-overlay-pane:has(.mat-snack-bar-container):has(app-aviso-snack) #container .title {\n font-size: 19px;\n font-weight: bold;\n}\n .cdk-overlay-pane:has(.mat-snack-bar-container):has(app-aviso-snack) #container .text {\n font-size: 17px;\n}\n\n .cdk-overlay-pane:has(.mat-snack-bar-container):has(app-aviso-snack):has(#container.error) .mat-snack-bar-container {\n background-color: #BA08A8;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8uL3NyYy9hcHAvY29tcG9uZW50cy9hdmlzby1zbmFjay9hdmlzby1zbmFjay5jb21wb25lbnQuc2NzcyIsIndlYnBhY2s6Ly8uL3NyYy90aGVtZXMvYXBwLWNvbG9ycy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlJO0VBQ0ksYUFBQTtFQUNBLHNCQUFBO0VBQ0EsVUFBQTtFQUNBLGtCQUFBO0VBQ0EsZUFBQTtBQUhSO0FBS1E7RUFDSSxZQUFBO0FBSFo7QUFNUTtFQUNJLGVBQUE7RUFDQSxpQkFBQTtBQUpaO0FBT1E7RUFDSSxlQUFBO0FBTFo7O0FBV0k7RUFDSSx5QkN6Qk07QURpQmQiLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0IFwiYXBwLWNvbG9ycy5zY3NzXCI7XHJcblxyXG46Om5nLWRlZXAgLmNkay1vdmVybGF5LXBhbmU6aGFzKC5tYXQtc25hY2stYmFyLWNvbnRhaW5lcik6aGFzKGFwcC1hdmlzby1zbmFjaykge1xyXG5cclxuICAgICNjb250YWluZXIge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICBnYXA6IDAuNWVtO1xyXG4gICAgICAgIHBhZGRpbmc6IDAuNWVtIDFlbTtcclxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcblxyXG4gICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICBjb2xvcjogd2hpdGU7XHJcbiAgICAgICAgfVxyXG4gICAgXHJcbiAgICAgICAgLnRpdGxlIHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxOXB4O1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC50ZXh0IHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxN3B4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuOjpuZy1kZWVwIC5jZGstb3ZlcmxheS1wYW5lOmhhcygubWF0LXNuYWNrLWJhci1jb250YWluZXIpOmhhcyhhcHAtYXZpc28tc25hY2spOmhhcygjY29udGFpbmVyLmVycm9yKXtcclxuICAgIC5tYXQtc25hY2stYmFyLWNvbnRhaW5lciB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWVycm9yO1xyXG4gICAgfVxyXG59IiwiJGNvbG9yLXByaW1hcnktYmx1ZTogIzBBMDA4OTtcclxuJGNvbG9yLXNlY29uZGFyeS1ibHVlOiAjM0RCMEU0O1xyXG4kY29sb3ItcHJpbWFyeS1ibGFjazogIzIyMUUxRTtcclxuJGNvbG9yLWVycm9yOiAjQkEwOEE4O1xyXG4kY29sb3ItZXhpdG86ICRjb2xvci1zZWNvbmRhcnktYmx1ZTtcclxuJGNvbG9yLWdyYXk6ICNjNWM1YzU7XHJcbiJdLCJzb3VyY2VSb290IjoiIn0= */"] - }); - } -} - -/***/ }), - -/***/ 9509: -/*!***************************************************************!*\ - !*** ./src/app/components/aviso-snack/aviso-snack.service.ts ***! - \***************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ AvisoSnackService: () => (/* binding */ AvisoSnackService) -/* harmony export */ }); -/* harmony import */ var _aviso_snack_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./aviso-snack.component */ 3713); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ 7580); -/* harmony import */ var _angular_material_snack_bar__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/material/snack-bar */ 3347); - - - -class AvisoSnackService { - constructor(_snackBar) { - this._snackBar = _snackBar; - } - displayMsg(type, title, text) { - this._snackBar.openFromComponent(_aviso_snack_component__WEBPACK_IMPORTED_MODULE_0__.AvisoSnackComponent, { - horizontalPosition: 'right', - verticalPosition: 'top', - data: { - type: type, - title: title, - text: text - } - }); - } - static { - this.ɵfac = function AvisoSnackService_Factory(__ngFactoryType__) { - return new (__ngFactoryType__ || AvisoSnackService)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵinject"](_angular_material_snack_bar__WEBPACK_IMPORTED_MODULE_2__.MatSnackBar)); - }; - } - static { - this.ɵprov = /*@__PURE__*/_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineInjectable"]({ - token: AvisoSnackService, - factory: AvisoSnackService.ɵfac, - providedIn: 'root' - }); - } -} - -/***/ }), - -/***/ 9167: -/*!***********************************************************!*\ - !*** ./src/app/components/head-bar/head-bar.component.ts ***! - \***********************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ HeadBarComponent: () => (/* binding */ HeadBarComponent) -/* harmony export */ }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ 7580); -/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/common */ 316); - - - -const _c0 = a0 => ({ - "clickable": a0 -}); -class HeadBarComponent { - constructor() { - this.fireResetearSorteo = new _angular_core__WEBPACK_IMPORTED_MODULE_0__.EventEmitter(); - this.currentYear = new Date().getFullYear(); - } - ngOnInit() {} - resetearSorteo(force = false) { - if (this.status.finish || force) { - this.status.finish = false; - this.status.start = false; - this.fireResetearSorteo.emit(); - } - } - getVersion() { - return "2023"; - } - static { - this.ɵfac = function HeadBarComponent_Factory(__ngFactoryType__) { - return new (__ngFactoryType__ || HeadBarComponent)(); - }; - } - static { - this.ɵcmp = /*@__PURE__*/_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineComponent"]({ - type: HeadBarComponent, - selectors: [["app-head-bar"]], - inputs: { - displayVersion: "displayVersion", - status: "status" - }, - outputs: { - fireResetearSorteo: "fireResetearSorteo" - }, - decls: 5, - vars: 4, - consts: [["id", "headBar"], [1, "sorteo", 3, "click", "ngClass"], [2, "display", "flex", "align-items", "center"], ["id", "iconGroup"]], - template: function HeadBarComponent_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "div", 0)(1, "h1", 1); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("click", function HeadBarComponent_Template_h1_click_1_listener() { - return ctx.resetearSorteo(); - }); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](3, "div", 2); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](4, "div", 3); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"]()(); - } - if (rf & 2) { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngClass", _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵpureFunction1"](2, _c0, ctx.status.finish)); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtextInterpolate1"]("Sorteo ", ctx.currentYear, ""); - } - }, - dependencies: [_angular_common__WEBPACK_IMPORTED_MODULE_1__.NgClass], - styles: ["#headBar[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n color: white;\n margin: 0px 150px;\n background-color: #0A0089;\n}\n#headBar[_ngcontent-%COMP%] .sorteo[_ngcontent-%COMP%] {\n font-family: \"LatinxText-Bold\";\n}\n#headBar[_ngcontent-%COMP%] #iconGroup[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n position: relative;\n right: -140px;\n}\n#headBar[_ngcontent-%COMP%] #iconGroup[_ngcontent-%COMP%] .svgIcon[_ngcontent-%COMP%] {\n width: 340px;\n height: 100%;\n}\n#headBar[_ngcontent-%COMP%] #iconGroup[_ngcontent-%COMP%] .svgIcon.scndIcon[_ngcontent-%COMP%] {\n width: 300px;\n height: 100%;\n}\n#headBar[_ngcontent-%COMP%] .separator[_ngcontent-%COMP%] {\n width: 1px;\n height: 43px;\n margin: 0 19px;\n opacity: 0.36;\n background-color: #979797;\n}\n#headBar[_ngcontent-%COMP%] .clickable[_ngcontent-%COMP%] {\n cursor: pointer;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8uL3NyYy9hcHAvY29tcG9uZW50cy9oZWFkLWJhci9oZWFkLWJhci5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLGFBQUE7RUFDQSw4QkFBQTtFQUNBLG1CQUFBO0VBQ0EsWUFBQTtFQUNBLGlCQUFBO0VBQ0EseUJBQUE7QUFDSjtBQUFJO0VBQ0ksOEJBQUE7QUFFUjtBQUNJO0VBQ0ksYUFBQTtFQUNBLG1CQUFBO0VBQ0Esa0JBQUE7RUFDQSxhQUFBO0FBQ1I7QUFDUTtFQUNJLFlBQUE7RUFDQSxZQUFBO0FBQ1o7QUFFUTtFQUNJLFlBQUE7RUFDQSxZQUFBO0FBQVo7QUFLSTtFQUNJLFVBQUE7RUFDQSxZQUFBO0VBQ0EsY0FBQTtFQUNBLGFBQUE7RUFDQSx5QkFBQTtBQUhSO0FBTUk7RUFDSSxlQUFBO0FBSlIiLCJzb3VyY2VzQ29udGVudCI6WyIjaGVhZEJhciB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgIG1hcmdpbjogMHB4IDE1MHB4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzBBMDA4OTsgLy8gQWN0dWFsaXphIGVsIGNvbG9yIGRlIGZvbmRvXHJcbiAgICAuc29ydGVvIHtcclxuICAgICAgICBmb250LWZhbWlseTogJ0xhdGlueFRleHQtQm9sZCc7XHJcbiAgICB9XHJcblxyXG4gICAgI2ljb25Hcm91cCB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICByaWdodDogLTE0MHB4O1xyXG5cclxuICAgICAgICAuc3ZnSWNvbiB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAzNDBweDtcclxuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICAuc3ZnSWNvbi5zY25kSWNvbiB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAzMDBweDtcclxuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgIH1cclxuXHJcbiAgICAuc2VwYXJhdG9yIHtcclxuICAgICAgICB3aWR0aDogMXB4O1xyXG4gICAgICAgIGhlaWdodDogNDNweDtcclxuICAgICAgICBtYXJnaW46IDAgMTlweDtcclxuICAgICAgICBvcGFjaXR5OiAwLjM2OyAgXHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzk3OTc5NztcclxuICAgIH1cclxuICAgIFxyXG4gICAgLmNsaWNrYWJsZSB7XHJcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgfVxyXG59XHJcblxyXG4iXSwic291cmNlUm9vdCI6IiJ9 */"] - }); - } -} - -/***/ }), - -/***/ 7307: -/*!***************************************************************!*\ - !*** ./src/app/components/resultados/resultados.component.ts ***! - \***************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ ResultadosComponent: () => (/* binding */ ResultadosComponent) -/* harmony export */ }); -/* harmony import */ var C_Users_S_RHV_OneDrive_Documentos_GitRepos_Novit_app_sorteo_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js */ 9204); -/* harmony import */ var _angular_animations__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/animations */ 7172); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ 7580); -/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/common */ 316); -/* harmony import */ var _angular_material_icon__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/material/icon */ 3840); - - - - - -const _c0 = ["resultadosContainer"]; -const _c1 = a0 => ({ - "noMargin version2023": a0 -}); -function ResultadosComponent_For_11_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](0, "div", 5)(1, "span"); - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](3, "div"); - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](4); - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"]()(); - } - if (rf & 2) { - const result_r1 = ctx.$implicit; - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("@zoomInOut", undefined); - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtextInterpolate"](result_r1.premio); - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtextInterpolate"](result_r1.texto); - } -} -class ResultadosComponent { - constructor(cdr) { - this.cdr = cdr; - this.classEmpresa = ''; - this.sgvIconEmpresa = ''; - this.visibleResults = []; - } - scrollToBottom() { - setTimeout(() => { - const appContainer = document.querySelector('#app'); - const scrollContainer = appContainer || this.resultadosContainer.nativeElement; - scrollContainer.scrollTop = scrollContainer.scrollHeight; - // if (this.resultadosContainer) { - // const nativeElement = this.resultadosContainer.nativeElement; - // if (nativeElement.scrollHeight > nativeElement.clientHeight) { - // nativeElement.scrollTop = nativeElement.scrollHeight; - // } - // } - }, 0); - } - showResults() { - var _this = this; - return (0,C_Users_S_RHV_OneDrive_Documentos_GitRepos_Novit_app_sorteo_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function* () { - for (let i = 0; i < _this.results.length; i++) { - _this.visibleResults.push(_this.results[i]); // Agrega el resultado a la lista visible - _this.cdr.detectChanges(); // Asegura que el DOM esté actualizado - _this.scrollToBottom(); // Realiza el scroll al final - yield new Promise(resolve => setTimeout(resolve, 2000)); // Espera 2 segundos - } - })(); - } - ngOnInit() { - this.showResults(); - } - static { - this.ɵfac = function ResultadosComponent_Factory(__ngFactoryType__) { - return new (__ngFactoryType__ || ResultadosComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_1__.ChangeDetectorRef)); - }; - } - static { - this.ɵcmp = /*@__PURE__*/_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ - type: ResultadosComponent, - selectors: [["app-resultados"]], - viewQuery: function ResultadosComponent_Query(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵviewQuery"](_c0, 5); - } - if (rf & 2) { - let _t; - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵloadQuery"]()) && (ctx.resultadosContainer = _t.first); - } - }, - inputs: { - results: "results", - columnaDerecha: "columnaDerecha", - empresa: "empresa", - classEmpresa: "classEmpresa", - sgvIconEmpresa: "sgvIconEmpresa" - }, - decls: 12, - vars: 8, - consts: [["resultadosContainer", ""], ["id", "resultados", 3, "ngClass"], [1, "empresaTittle"], [3, "svgIcon"], [1, "resultadoContainer", "cabeceraTabla"], [1, "resultadoContainer", "itemsTabla"]], - template: function ResultadosComponent_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](0, "div", 1, 0)(2, "div", 2); - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelement"](3, "br")(4, "mat-icon", 3); - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](5, "div", 4)(6, "span"); - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](7, "Premio"); - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](8, "span"); - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](9); - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"]()(); - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵrepeaterCreate"](10, ResultadosComponent_For_11_Template, 5, 3, "div", 5, _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵrepeaterTrackByIdentity"]); - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); - } - if (rf & 2) { - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("ngClass", _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵpureFunction1"](6, _c1, ctx.columnaDerecha === "Participante")); - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](4); - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵclassMap"](ctx.classEmpresa); - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵpropertyInterpolate"]("svgIcon", ctx.sgvIconEmpresa); - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](5); - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtextInterpolate"](ctx.columnaDerecha); - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](); - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵrepeater"](ctx.visibleResults); - } - }, - dependencies: [_angular_common__WEBPACK_IMPORTED_MODULE_2__.NgClass, _angular_material_icon__WEBPACK_IMPORTED_MODULE_3__.MatIcon], - styles: ["#resultados[_ngcontent-%COMP%] {\n width: -webkit-fill-available;\n position: relative;\n overflow-anchor: auto;\n margin-left: 40px;\n margin-right: 40px;\n}\n#resultados[_ngcontent-%COMP%] .empresaTittle[_ngcontent-%COMP%] h1[_ngcontent-%COMP%] {\n text-align: center;\n font-size: 48px;\n color: #0A0089;\n margin-top: 20px;\n margin-bottom: 20px;\n}\n#resultados[_ngcontent-%COMP%] .resultadoContainer[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n padding-top: 10px;\n padding-bottom: 10px;\n border-top: 1px solid #f3f3f3;\n color: #221E1E;\n}\n#resultados[_ngcontent-%COMP%] .resultadoContainer.cabeceraTabla[_ngcontent-%COMP%] {\n font-size: 38px;\n}\n#resultados[_ngcontent-%COMP%] .resultadoContainer.cabeceraTabla[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n font-family: \"LatinxText-Bold\";\n}\n#resultados[_ngcontent-%COMP%] .resultadoContainer.itemsTabla[_ngcontent-%COMP%] {\n font-size: 34px;\n transition: transform 0.3s ease-in-out;\n}\n#resultados[_ngcontent-%COMP%] .resultadoContainer.itemsTabla[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n text-align: left;\n}\n#resultados[_ngcontent-%COMP%] .resultadoContainer.itemsTabla[_ngcontent-%COMP%] div[_ngcontent-%COMP%] {\n text-align: right;\n}\n\n.empresaTittle[_ngcontent-%COMP%] {\n text-align: center;\n margin-bottom: 20px;\n}\n.empresaTittle[_ngcontent-%COMP%] .svgIcon[_ngcontent-%COMP%] {\n width: 340px;\n height: 100%;\n padding-bottom: 22px;\n}\n.empresaTittle[_ngcontent-%COMP%] .scndIcon[_ngcontent-%COMP%] {\n width: auto;\n height: 70px;\n}\n\n#resultados.noMargin[_ngcontent-%COMP%] {\n margin: 0px;\n}\n\n#resultados.version2023[_ngcontent-%COMP%] .resultadoContainer.cabeceraTabla[_ngcontent-%COMP%] {\n border-top-width: 0px;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8uL3NyYy9hcHAvY29tcG9uZW50cy9yZXN1bHRhZG9zL3Jlc3VsdGFkb3MuY29tcG9uZW50LnNjc3MiLCJ3ZWJwYWNrOi8vLi9zcmMvdGhlbWVzL2FwcC1jb2xvcnMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTtFQUNJLDZCQUFBO0VBQ0Esa0JBQUE7RUFDQSxxQkFBQTtFQUNBLGlCQUFBO0VBQ0Esa0JBQUE7QUFESjtBQUdJO0VBQ0ksa0JBQUE7RUFDQSxlQUFBO0VBQ0EsY0NaYTtFRGFiLGdCQUFBO0VBQ0EsbUJBQUE7QUFEUjtBQUlJO0VBQ0ksYUFBQTtFQUNBLDhCQUFBO0VBQ0EsaUJBQUE7RUFDQSxvQkFBQTtFQUNBLDZCQUFBO0VBQ0EsY0NyQmM7QURtQnRCO0FBS0k7RUFDSSxlQUFBO0FBSFI7QUFLUTtFQUNJLDhCQUFBO0FBSFo7QUFNSTtFQUNJLGVBQUE7RUFDQSxzQ0FBQTtBQUpSO0FBTUk7RUFDSSxnQkFBQTtBQUpSO0FBT0k7RUFDQSxpQkFBQTtBQUxKOztBQVFBO0VBQ0ksa0JBQUE7RUFDQSxtQkFBQTtBQUxKO0FBTUk7RUFDSSxZQUFBO0VBQ0EsWUFBQTtFQUNBLG9CQUFBO0FBSlI7QUFPSTtFQUNJLFdBQUE7RUFDQSxZQUFBO0FBTFI7O0FBU0E7RUFDSSxXQUFBO0FBTko7O0FBVUk7RUFDSSxxQkFBQTtBQVBSIiwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCBcImFwcC1jb2xvcnMuc2Nzc1wiO1xyXG5cclxuI3Jlc3VsdGFkb3N7XHJcbiAgICB3aWR0aDogLXdlYmtpdC1maWxsLWF2YWlsYWJsZTtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIG92ZXJmbG93LWFuY2hvcjogYXV0bzsgXHJcbiAgICBtYXJnaW4tbGVmdDogNDBweDtcclxuICAgIG1hcmdpbi1yaWdodDogNDBweDtcclxuICAgIFxyXG4gICAgLmVtcHJlc2FUaXR0bGUgaDF7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogNDhweDtcclxuICAgICAgICBjb2xvcjogJGNvbG9yLXByaW1hcnktYmx1ZTtcclxuICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgLnJlc3VsdGFkb0NvbnRhaW5lcntcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgICAgICBwYWRkaW5nLXRvcDogMTBweDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcclxuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2YzZjNmMztcclxuICAgICAgICBjb2xvcjogJGNvbG9yLXByaW1hcnktYmxhY2s7XHJcbiAgICB9XHJcblxyXG4gICAgLnJlc3VsdGFkb0NvbnRhaW5lci5jYWJlY2VyYVRhYmxhIHtcclxuICAgICAgICBmb250LXNpemU6IDM4cHg7XHJcbiAgICBcclxuICAgICAgICBzcGFuIHtcclxuICAgICAgICAgICAgZm9udC1mYW1pbHk6IFwiTGF0aW54VGV4dC1Cb2xkXCI7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLnJlc3VsdGFkb0NvbnRhaW5lci5pdGVtc1RhYmxhIHtcclxuICAgICAgICBmb250LXNpemU6IDM0cHg7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZS1pbi1vdXQ7XHJcbiAgICB9XHJcbiAgICAucmVzdWx0YWRvQ29udGFpbmVyLml0ZW1zVGFibGEgc3BhbiB7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgfVxyXG4gICAgICBcclxuICAgIC5yZXN1bHRhZG9Db250YWluZXIuaXRlbXNUYWJsYSBkaXYge1xyXG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICB9XHJcbn1cclxuLmVtcHJlc2FUaXR0bGUge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICAgIC5zdmdJY29uIHtcclxuICAgICAgICB3aWR0aDogMzQwcHg7XHJcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAyMnB4O1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAuc2NuZEljb24ge1xyXG4gICAgICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgICAgIGhlaWdodDogNzBweDtcclxuICAgIH1cclxufVxyXG5cclxuI3Jlc3VsdGFkb3Mubm9NYXJnaW4ge1xyXG4gICAgbWFyZ2luOiAwcHg7XHJcbn1cclxuXHJcbiNyZXN1bHRhZG9zLnZlcnNpb24yMDIzIHtcclxuICAgIC5yZXN1bHRhZG9Db250YWluZXIuY2FiZWNlcmFUYWJsYSB7XHJcbiAgICAgICAgYm9yZGVyLXRvcC13aWR0aDogMHB4O1xyXG4gICAgfVxyXG59IiwiJGNvbG9yLXByaW1hcnktYmx1ZTogIzBBMDA4OTtcclxuJGNvbG9yLXNlY29uZGFyeS1ibHVlOiAjM0RCMEU0O1xyXG4kY29sb3ItcHJpbWFyeS1ibGFjazogIzIyMUUxRTtcclxuJGNvbG9yLWVycm9yOiAjQkEwOEE4O1xyXG4kY29sb3ItZXhpdG86ICRjb2xvci1zZWNvbmRhcnktYmx1ZTtcclxuJGNvbG9yLWdyYXk6ICNjNWM1YzU7XHJcbiJdLCJzb3VyY2VSb290IjoiIn0= */"], - data: { - animation: [(0,_angular_animations__WEBPACK_IMPORTED_MODULE_4__.trigger)('zoomInOut', [(0,_angular_animations__WEBPACK_IMPORTED_MODULE_4__.transition)(':enter', [(0,_angular_animations__WEBPACK_IMPORTED_MODULE_4__.animate)('1s ease-in-out', (0,_angular_animations__WEBPACK_IMPORTED_MODULE_4__.keyframes)([(0,_angular_animations__WEBPACK_IMPORTED_MODULE_4__.style)({ - transform: 'scale(0.5)', - offset: 0 - }), (0,_angular_animations__WEBPACK_IMPORTED_MODULE_4__.style)({ - transform: 'scale(1.2)', - offset: 0.5 - }), (0,_angular_animations__WEBPACK_IMPORTED_MODULE_4__.style)({ - transform: 'scale(1)', - offset: 1 - })]))])]), (0,_angular_animations__WEBPACK_IMPORTED_MODULE_4__.trigger)('fadeIn', [(0,_angular_animations__WEBPACK_IMPORTED_MODULE_4__.transition)(':enter', [(0,_angular_animations__WEBPACK_IMPORTED_MODULE_4__.style)({ - opacity: 0, - transform: 'translateY(10px)' - }), (0,_angular_animations__WEBPACK_IMPORTED_MODULE_4__.animate)('500ms ease-out', (0,_angular_animations__WEBPACK_IMPORTED_MODULE_4__.style)({ - opacity: 1, - transform: 'translateY(0)' - }))])])] - } - }); - } -} - -/***/ }), - -/***/ 439: -/*!*********************************************************************************!*\ - !*** ./src/app/components/version2023/carga-listado/carga-listado.component.ts ***! - \*********************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ CargaListadoComponent: () => (/* binding */ CargaListadoComponent) -/* harmony export */ }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/core */ 7580); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ 6227); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _aviso_snack_aviso_snack_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../aviso-snack/aviso-snack.service */ 9509); -/* harmony import */ var _angular_material_icon__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/material/icon */ 3840); -/* harmony import */ var _angular_material_button__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/material/button */ 4175); -/* harmony import */ var _angular_material_tooltip__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/material/tooltip */ 640); - - - - - - - -function CargaListadoComponent_Conditional_16_For_2_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "div", 17)(1, "span"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"]()(); - } - if (rf & 2) { - const participante_r3 = ctx.$implicit; - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtextInterpolate"](participante_r3); - } -} -function CargaListadoComponent_Conditional_16_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "div", 12); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrepeaterCreate"](1, CargaListadoComponent_Conditional_16_For_2_Template, 3, 1, "div", 17, _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrepeaterTrackByIdentity"]); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - } - if (rf & 2) { - const ctx_r3 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrepeater"](ctx_r3.participantes); - } -} -function CargaListadoComponent_Conditional_26_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "span", 15); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](1, "La cantidad de premios es superior a la de participantes"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - } -} -function CargaListadoComponent_Conditional_27_For_8_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "div", 17)(1, "span"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](3, "span"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](4); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"]()(); - } - if (rf & 2) { - const premio_r6 = ctx.$implicit; - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtextInterpolate"](premio_r6.nombre); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtextInterpolate"](premio_r6.cantidad); - } -} -function CargaListadoComponent_Conditional_27_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "div", 16)(1, "div", 18)(2, "span"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](3, "Nombre"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](4, "span"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](5, "Cantidad"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"]()(); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](6, "div", 19); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrepeaterCreate"](7, CargaListadoComponent_Conditional_27_For_8_Template, 5, 2, "div", 17, _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrepeaterTrackByIdentity"]); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"]()(); - } - if (rf & 2) { - const ctx_r3 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](7); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrepeater"](ctx_r3.premios); - } -} -class CargaListadoComponent { - constructor(_avisoSnackService, cdr) { - this._avisoSnackService = _avisoSnackService; - this.cdr = cdr; - this.participantesOriginal = []; - this.participantes = []; - this.premios = []; - this.cantidadTotalPremios = 0; - this.fireStartSorteo = new _angular_core__WEBPACK_IMPORTED_MODULE_2__.EventEmitter(); - } - ngOnInit() {} - resetearSorteo() { - this.participantes = [...this.participantesOriginal]; - } - cargarArchivo(event, tipo) { - if (event.target.files.length > 0) { - const file = event.target.files[0]; - event.target.value = ''; - if (file.type === "text/plain") { - let fileReader = new FileReader(); - let output = []; - let self = this; - fileReader.onload = function (e) { - let lines = e.target.result.split(/[\r\n]+/g); // linebreaks - for (var i = 0; i < lines.length; i++) { - output.push(lines[i].toString().trim()); - } - if (tipo === 'participantes') self.cargarParticipantes(output);else self.cargarPremios(output); - }; - fileReader.readAsText(file); - } - } - } - cargarParticipantes(output) { - let lowerCase = lodash__WEBPACK_IMPORTED_MODULE_0__.map(output, x => x.toLowerCase()); - this.participantesOriginal = output.filter((value, index) => { - return lowerCase.indexOf(value.toLowerCase()) === index && value.trim() !== ""; - }); - this.participantes = [...this.participantesOriginal]; - } - cargarPremios(output) { - let premios = []; - let error = ""; - this.cantidadTotalPremios = 0; - output.forEach(x => { - if (!error) { - let pair = x.split(","); - error = this.validarPremios(pair); - if (error !== "") { - this._avisoSnackService.displayMsg("error", "FORMATO INCORRECTO", error); - premios = []; - } else { - let nombre = pair[0].trim(); - let cantidad = parseInt(pair[1].trim()); - premios.push({ - nombre: nombre, - cantidad: cantidad - }); - this.cantidadTotalPremios += cantidad; - } - } - }); - this.premios = premios; - this.cdr.detectChanges(); - } - validarPremios(pair) { - if (pair.length !== 2) return `El formato de texto de premio debe ser: "premio,cantidad"`; - try { - let cantidad = parseInt(pair[1].trim()); - if (isNaN(cantidad)) return `No se ingresó un número para indicar la cantidad de premios`; - if (cantidad === 0) return `Un premio tiene cantidad cero`; - } catch { - return `No se ingresó un número para indicar la cantidad de premios`; - } - return ""; - } - masPremiosQueParticipantes() { - return this.participantes.length > 0 && this.cantidadTotalPremios > 0 && this.participantes.length < this.cantidadTotalPremios; - } - isInvalid() { - return !this.participantes.length || !this.premios.length || this.masPremiosQueParticipantes(); - } - getListados() { - let premios = []; - lodash__WEBPACK_IMPORTED_MODULE_0__.forEach(this.premios, x => { - premios = [...premios, ...Array(x.cantidad).fill(x.nombre)]; - }); - return { - participantes: this.participantes, - premios: premios - }; - } - static { - this.ɵfac = function CargaListadoComponent_Factory(__ngFactoryType__) { - return new (__ngFactoryType__ || CargaListadoComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](_aviso_snack_aviso_snack_service__WEBPACK_IMPORTED_MODULE_1__.AvisoSnackService), _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_2__.ChangeDetectorRef)); - }; - } - static { - this.ɵcmp = /*@__PURE__*/_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineComponent"]({ - type: CargaListadoComponent, - selectors: [["app-carga-listado"]], - outputs: { - fireStartSorteo: "fireStartSorteo" - }, - decls: 28, - vars: 3, - consts: [["inputParticipantes", ""], ["inputPremios", ""], ["tooltip", "matTooltip"], ["id", "cargaListadosContainer"], ["type", "file", "accept", ".txt", 2, "display", "none", 3, "change"], ["id", "listadosContainer"], ["id", "participantesContainer"], [1, "headerContainer"], [2, "text-decoration", "underline"], [1, "rightHeaderSection"], ["mat-raised-button", "", 1, "primaryBtn", 3, "click"], ["matTooltip", "El archivo .txt debe tener un participante por l\u00EDnea", "matTooltipPosition", "right"], [1, "listadoContainer", "listadoScroleable"], ["id", "premiosContainer"], ["matTooltip", "El archivo .txt debe tener un premio por l\u00EDnea (nombre y cantidad separados por una coma - ej: \"Monopat\u00EDn,3\" )", "matTooltipPosition", "right"], [1, "alert"], [1, "listadoContainer"], [1, "filaTabla"], [1, "cabeceraTabla"], [1, "cuerpoTabla"]], - template: function CargaListadoComponent_Template(rf, ctx) { - if (rf & 1) { - const _r1 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵgetCurrentView"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "div", 3)(1, "input", 4, 0); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵlistener"]("change", function CargaListadoComponent_Template_input_change_1_listener($event) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r1); - return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](ctx.cargarArchivo($event, "participantes")); - }); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](3, "input", 4, 1); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵlistener"]("change", function CargaListadoComponent_Template_input_change_3_listener($event) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r1); - return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](ctx.cargarArchivo($event, "premios")); - }); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](5, "div", 5)(6, "div", 6)(7, "div", 7)(8, "h3", 8); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](9, "PARTICIPANTES"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](10, "div", 9)(11, "button", 10); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵlistener"]("click", function CargaListadoComponent_Template_button_click_11_listener() { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r1); - const inputParticipantes_r2 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵreference"](2); - return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](inputParticipantes_r2.click()); - }); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](12, "Cargar"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](13, "mat-icon", 11, 2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](15, "info"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"]()()(); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](16, CargaListadoComponent_Conditional_16_Template, 3, 0, "div", 12); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](17, "div", 13)(18, "div", 7)(19, "h3", 8); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](20, "PREMIOS"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](21, "div", 9)(22, "button", 10); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵlistener"]("click", function CargaListadoComponent_Template_button_click_22_listener() { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r1); - const inputPremios_r5 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵreference"](4); - return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](inputPremios_r5.click()); - }); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](23, "Cargar"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](24, "mat-icon", 14); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](25, "info"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"]()()(); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](26, CargaListadoComponent_Conditional_26_Template, 2, 0, "span", 15)(27, CargaListadoComponent_Conditional_27_Template, 9, 0, "div", 16); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"]()()(); - } - if (rf & 2) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](16); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵconditional"](ctx.participantes.length ? 16 : -1); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](10); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵconditional"](ctx.masPremiosQueParticipantes() ? 26 : -1); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵconditional"](ctx.premios.length ? 27 : -1); - } - }, - dependencies: [_angular_material_icon__WEBPACK_IMPORTED_MODULE_3__.MatIcon, _angular_material_button__WEBPACK_IMPORTED_MODULE_4__.MatButton, _angular_material_tooltip__WEBPACK_IMPORTED_MODULE_5__.MatTooltip], - styles: ["#cargaListadosContainer[_ngcontent-%COMP%] #listadosContainer[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 1em;\n}\n#cargaListadosContainer[_ngcontent-%COMP%] #listadosContainer[_ngcontent-%COMP%] .headerContainer[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n#cargaListadosContainer[_ngcontent-%COMP%] #listadosContainer[_ngcontent-%COMP%] .headerContainer[_ngcontent-%COMP%] .rightHeaderSection[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 1em;\n}\n#cargaListadosContainer[_ngcontent-%COMP%] #premiosContainer[_ngcontent-%COMP%] .listadoContainer[_ngcontent-%COMP%] {\n width: 50%;\n}\n#cargaListadosContainer[_ngcontent-%COMP%] #participantesContainer[_ngcontent-%COMP%] .listadoContainer[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n row-gap: 1em;\n max-height: 250px;\n overflow: auto;\n}\n#cargaListadosContainer[_ngcontent-%COMP%] h1[_ngcontent-%COMP%] {\n margin-bottom: 10px;\n}\n#cargaListadosContainer[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n color: #221E1E;\n}\n#cargaListadosContainer[_ngcontent-%COMP%] .listadoContainer[_ngcontent-%COMP%] .cabeceraTabla[_ngcontent-%COMP%] > span[_ngcontent-%COMP%] {\n font-size: 16px;\n font-family: \"LatinxText-Bold\";\n color: #3DB0E4;\n}\n#cargaListadosContainer[_ngcontent-%COMP%] .listadoContainer[_ngcontent-%COMP%] .cuerpoTabla[_ngcontent-%COMP%] > span[_ngcontent-%COMP%] {\n font-size: 34px;\n}\n#cargaListadosContainer[_ngcontent-%COMP%] .listadoContainer[_ngcontent-%COMP%] .filaTabla[_ngcontent-%COMP%] {\n margin-top: 0.5em;\n}\n#cargaListadosContainer[_ngcontent-%COMP%] .listadoContainer[_ngcontent-%COMP%] .filaTabla[_ngcontent-%COMP%] > span[_ngcontent-%COMP%] {\n font-size: 18px;\n}\n#cargaListadosContainer[_ngcontent-%COMP%] .listadoContainer[_ngcontent-%COMP%] .cabeceraTabla[_ngcontent-%COMP%], \n#cargaListadosContainer[_ngcontent-%COMP%] .listadoContainer[_ngcontent-%COMP%] .filaTabla[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n}\n\n[_nghost-%COMP%] #cargaListadosContainer .rightHeaderSection mat-icon {\n color: #3DB0E4;\n}\n\n.alert[_ngcontent-%COMP%] {\n margin-bottom: 5px;\n display: inline-block;\n color: #BA08A8 !important;\n}\n\n.listadoScroleable[_ngcontent-%COMP%]::-webkit-scrollbar {\n width: 7px;\n height: 8px;\n}\n\n.listadoScroleable[_ngcontent-%COMP%]::-webkit-scrollbar-track {\n box-shadow: inset 0 0 20px #c5c5c5;\n border-radius: 7px;\n}\n\n.listadoScroleable[_ngcontent-%COMP%]::-webkit-scrollbar-thumb {\n background: #3DB0E4;\n border-radius: 10px;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8uL3NyYy9hcHAvY29tcG9uZW50cy92ZXJzaW9uMjAyMy9jYXJnYS1saXN0YWRvL2NhcmdhLWxpc3RhZG8uY29tcG9uZW50LnNjc3MiLCJ3ZWJwYWNrOi8vLi9zcmMvdGhlbWVzL2FwcC1jb2xvcnMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRSTtFQUNJLGFBQUE7RUFDQSxzQkFBQTtFQUNBLFFBQUE7QUFQUjtBQVVRO0VBQ0ksYUFBQTtFQUNBLG1CQUFBO0VBQ0EsOEJBQUE7QUFSWjtBQVVZO0VBQ0ksYUFBQTtFQUNBLHVCQUFBO0VBQ0EsUUFBQTtBQVJoQjtBQWNRO0VBQ0ksVUFBQTtBQVpaO0FBaUJRO0VBQ0ksYUFBQTtFQUNBLHFDQUFBO0VBQ0EsWUFBQTtFQUNBLGlCQUFBO0VBQ0EsY0FBQTtBQWZaO0FBbUJJO0VBQ0ksbUJBQUE7QUFqQlI7QUFvQkk7RUFDSSxjQzlDYztBRDRCdEI7QUFzQlE7RUFDSSxlQUFBO0VBQ0EsOEJBQUE7RUFDQSxjQ3REVztBRGtDdkI7QUFzQlE7RUFDSSxlQUFBO0FBcEJaO0FBdUJRO0VBQ0ksaUJBQUE7QUFyQlo7QUFzQlk7RUFDRyxlQUFBO0FBcEJmO0FBd0JROztFQUVJLGFBQUE7RUFDQSw4QkFBQTtBQXRCWjs7QUE4QlE7RUFDSSxjQy9FVztBRG9EdkI7O0FBZ0NBO0VBQ0ksa0JBQUE7RUFDQSxxQkFBQTtFQUNBLHlCQUFBO0FBN0JKOztBQW1DQTtFQUNJLFVBQUE7RUFDQSxXQUFBO0FBaENKOztBQW1DQTtFQUNJLGtDQUFBO0VBQ0Esa0JBQUE7QUFoQ0o7O0FBbUNBO0VBQ0ksbUJDeEdtQjtFRHlHbkIsbUJBQUE7QUFoQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0IFwiYXBwLWNvbG9ycy5zY3NzXCI7XHJcblxyXG4jY2FyZ2FMaXN0YWRvc0NvbnRhaW5lciB7XHJcbiAgICAvLyBkaXNwbGF5OiBmbGV4O1xyXG4gICAgLy8gYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIC8vIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgLy8gd2lkdGg6IC13ZWJraXQtZmlsbC1hdmFpbGFibGU7XHJcblxyXG4gICAgI2xpc3RhZG9zQ29udGFpbmVyIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgZ2FwOiAxZW07XHJcbiAgICAgICAgLy8gd2lkdGg6IDUwJTtcclxuXHJcbiAgICAgICAgLmhlYWRlckNvbnRhaW5lciB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuXHJcbiAgICAgICAgICAgIC5yaWdodEhlYWRlclNlY3Rpb24ge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG4gICAgICAgICAgICAgICAgZ2FwOiAxZW07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgI3ByZW1pb3NDb250YWluZXIge1xyXG4gICAgICAgIC5saXN0YWRvQ29udGFpbmVyIHtcclxuICAgICAgICAgICAgd2lkdGg6IDUwJTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgI3BhcnRpY2lwYW50ZXNDb250YWluZXIge1xyXG4gICAgICAgIC5saXN0YWRvQ29udGFpbmVyIHtcclxuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcclxuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTtcclxuICAgICAgICAgICAgcm93LWdhcDogMWVtO1xyXG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyNTBweDtcclxuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGgxIHtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIHNwYW4ge1xyXG4gICAgICAgIGNvbG9yOiAkY29sb3ItcHJpbWFyeS1ibGFjaztcclxuICAgIH1cclxuICAgIFxyXG4gICAgLmxpc3RhZG9Db250YWluZXIge1xyXG4gICAgICAgIC5jYWJlY2VyYVRhYmxhID4gc3BhbiB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICAgICAgICAgICAgZm9udC1mYW1pbHk6IFwiTGF0aW54VGV4dC1Cb2xkXCI7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkY29sb3Itc2Vjb25kYXJ5LWJsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5jdWVycG9UYWJsYSA+IHNwYW4ge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDM0cHg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuZmlsYVRhYmxhIHtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41ZW07XHJcbiAgICAgICAgICAgID4gc3BhbiB7XHJcbiAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcclxuICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuY2FiZWNlcmFUYWJsYSxcclxuICAgICAgICAuZmlsYVRhYmxhIHtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgICAgIH1cclxuICAgIFxyXG4gICAgfVxyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgI2NhcmdhTGlzdGFkb3NDb250YWluZXIge1xyXG4gICAgLnJpZ2h0SGVhZGVyU2VjdGlvbiB7XHJcbiAgICAgICAgbWF0LWljb24ge1xyXG4gICAgICAgICAgICBjb2xvcjogJGNvbG9yLXNlY29uZGFyeS1ibHVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLmFsZXJ0IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIGNvbG9yOiAkY29sb3ItZXJyb3IgIWltcG9ydGFudDtcclxufVxyXG5cclxuLy8qXHJcbi8vIEJBUlJBIFNDUk9MTFxyXG4vLyBcclxuLmxpc3RhZG9TY3JvbGVhYmxlOjotd2Via2l0LXNjcm9sbGJhciB7XHJcbiAgICB3aWR0aDogN3B4O1xyXG4gICAgaGVpZ2h0OiA4cHg7XHJcbn1cclxuXHJcbi5saXN0YWRvU2Nyb2xlYWJsZTo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xyXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDIwcHggJGNvbG9yLWdyYXk7XHJcbiAgICBib3JkZXItcmFkaXVzOiA3cHg7XHJcbn1cclxuXHJcbi5saXN0YWRvU2Nyb2xlYWJsZTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xyXG4gICAgYmFja2dyb3VuZDogJGNvbG9yLXNlY29uZGFyeS1ibHVlO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcclxufSIsIiRjb2xvci1wcmltYXJ5LWJsdWU6ICMwQTAwODk7XHJcbiRjb2xvci1zZWNvbmRhcnktYmx1ZTogIzNEQjBFNDtcclxuJGNvbG9yLXByaW1hcnktYmxhY2s6ICMyMjFFMUU7XHJcbiRjb2xvci1lcnJvcjogI0JBMDhBODtcclxuJGNvbG9yLWV4aXRvOiAkY29sb3Itc2Vjb25kYXJ5LWJsdWU7XHJcbiRjb2xvci1ncmF5OiAjYzVjNWM1O1xyXG4iXSwic291cmNlUm9vdCI6IiJ9 */"] - }); - } -} - -/***/ }), - -/***/ 6191: -/*!***************************************************************************************!*\ - !*** ./src/app/components/version2023/slots-sorteo2023/slots-sorteo2023.component.ts ***! - \***************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ ConfiguracionRuleta: () => (/* binding */ ConfiguracionRuleta), -/* harmony export */ SlotsSorteo2023Component: () => (/* binding */ SlotsSorteo2023Component) -/* harmony export */ }); -/* harmony import */ var C_Users_S_RHV_OneDrive_Documentos_GitRepos_Novit_app_sorteo_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js */ 9204); -/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/forms */ 4456); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/core */ 7580); -/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/common */ 316); -/* harmony import */ var _angular_material_icon__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/material/icon */ 3840); -/* harmony import */ var _angular_material_button__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/material/button */ 4175); -/* harmony import */ var _resultados_resultados_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../resultados/resultados.component */ 7307); - - - - - - - -const _c0 = (a0, a1) => ({ - "darkBlue": a0, - "clearBlue": a1 -}); -const _c1 = a0 => ({ - "shuffleBtn": a0 -}); -function SlotsSorteo2023Component_Conditional_1_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "div", 1); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelement"](1, "br")(2, "mat-icon", 3); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - } -} -function SlotsSorteo2023Component_Conditional_2_Conditional_1_Template(rf, ctx) { - if (rf & 1) { - const _r1 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵgetCurrentView"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "div", 8); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵlistener"]("click", function SlotsSorteo2023Component_Conditional_2_Conditional_1_Template_div_click_0_listener() { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r1); - const ctx_r1 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](2); - return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](ctx_r1.generateWinner()); - }); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](1, "button", 9)(2, "mat-icon"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](3, "timer"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"]()(); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](4, "h1"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](5, "Iniciar"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"]()(); - } - if (rf & 2) { - const ctx_r1 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngClass", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpureFunction1"](1, _c1, !ctx_r1.disableShuffleBtn())); - } -} -function SlotsSorteo2023Component_Conditional_2_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "div", 4); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](1, SlotsSorteo2023Component_Conditional_2_Conditional_1_Template, 6, 3, "div", 5); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelement"](2, "br")(3, "br")(4, "br"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](5, "div", 6)(6, "span", 7); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](7); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"]()(); - } - if (rf & 2) { - const ctx_r1 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵconditional"](!ctx_r1.disableShuffleBtn() ? 1 : -1); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](5); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngClass", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpureFunction2"](3, _c0, !ctx_r1.sorteando, ctx_r1.sorteando)); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtextInterpolate1"](" ", ctx_r1.countDown, " "); - } -} -function SlotsSorteo2023Component_Conditional_3_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "div", 2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelement"](1, "app-resultados", 10)(2, "div", 11); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - } - if (rf & 2) { - const ctx_r1 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("results", ctx_r1.wenResults); - } -} -class SlotsSorteo2023Component { - constructor(renderer, el) { - this.renderer = renderer; - this.el = el; - this.empresaSorteando = "wen"; - this.indexPremio = 0; - // RESULTADOS SORTEO - this.sorteando = false; - this.sorteoHasStarted = false; - this.showParticipante = "- - - -"; - this.countDown = ""; - this.winnerIndex = 0; - this.winner = null; - this.results = []; - // CONFIGURACION DE "RULETA" - this.config = new ConfiguracionRuleta(); - // - this.TESTEANDO_RULETA = false; - this.TESTEO_CONFIG = new _angular_forms__WEBPACK_IMPORTED_MODULE_3__.UntypedFormGroup({ - microSeg: new _angular_forms__WEBPACK_IMPORTED_MODULE_3__.UntypedFormControl('50', [_angular_forms__WEBPACK_IMPORTED_MODULE_3__.Validators.required]), - microSeg_agregar: new _angular_forms__WEBPACK_IMPORTED_MODULE_3__.UntypedFormControl('50', [_angular_forms__WEBPACK_IMPORTED_MODULE_3__.Validators.required]), - microSeg_suspenso: new _angular_forms__WEBPACK_IMPORTED_MODULE_3__.UntypedFormControl('85', [_angular_forms__WEBPACK_IMPORTED_MODULE_3__.Validators.required]), - repetir_N_veces: new _angular_forms__WEBPACK_IMPORTED_MODULE_3__.UntypedFormControl('27', [_angular_forms__WEBPACK_IMPORTED_MODULE_3__.Validators.required]), - restarRepeticiones: new _angular_forms__WEBPACK_IMPORTED_MODULE_3__.UntypedFormControl('9', [_angular_forms__WEBPACK_IMPORTED_MODULE_3__.Validators.required]), - restarRepeticiones_suspenso: new _angular_forms__WEBPACK_IMPORTED_MODULE_3__.UntypedFormControl('3', [_angular_forms__WEBPACK_IMPORTED_MODULE_3__.Validators.required]) - }); - } - ngOnInit() {} - startSorteo(data) { - this.sorteos = data; - this.setDefaultIntervalValues(); - this.status.start = true; - } - disableShuffleBtn() { - // return this.sorteando || this.winner !== null - return this.sorteoHasStarted; - } - disableOkBtn() { - return this.sorteando || this.winner === null; - } - setDefaultIntervalValues() { - this.config = new ConfiguracionRuleta(); - this.configureTestInterval(); - } - configureTestInterval() { - if (this.TESTEANDO_RULETA) { - let test = this.TESTEO_CONFIG.getRawValue(); - this.config.microSeg = parseInt(test.microSeg); - this.config.microSeg_agregar = parseInt(test.microSeg_agregar); - this.config.microSeg_suspenso = parseInt(test.microSeg_suspenso); - this.config.repetir_N_veces = parseInt(test.repetir_N_veces); - this.config.restarRepeticiones = parseInt(test.restarRepeticiones); - this.config.restarRepeticiones_suspenso = parseInt(test.restarRepeticiones_suspenso); - } - } - get wenResults() { - return this.results?.filter(result => result.empresa === 'wen') || []; - } - generateWinner() { - var _this = this; - return (0,C_Users_S_RHV_OneDrive_Documentos_GitRepos_Novit_app_sorteo_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function* () { - _this.sorteoHasStarted = true; - yield _this.runProcess(); - })(); - } - runProcess() { - var _this2 = this; - return (0,C_Users_S_RHV_OneDrive_Documentos_GitRepos_Novit_app_sorteo_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function* () { - const countDownElement = _this2.el.nativeElement.querySelector('#randomGeneratorStrings span'); - _this2.countDown = "10"; // Inicializa el countdown - _this2.sorteando = true; - // Inicia las tareas en paralelo - const intervalPromise = _this2.generateInterval(); // Calcula los ganadores - const countdownPromise = _this2.runCountdown(countDownElement); // Maneja el countdown visual - // Esperar a que ambas tareas terminen - yield Promise.all([intervalPromise, countdownPromise]); - // Cambiar el estado del sorteo - _this2.status.finish = true; - // Reiniciar estados - _this2.sorteando = false; - console.log('Sorteo finalizado.'); - })(); - } - runCountdown(countDownElement) { - var _this3 = this; - return (0,C_Users_S_RHV_OneDrive_Documentos_GitRepos_Novit_app_sorteo_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function* () { - for (let i = 10; i >= 0; i--) { - _this3.countDown = i.toString(); // Actualiza el countdown visual - _this3.renderer.removeClass(countDownElement, 'animate'); - void countDownElement.offsetWidth; // Forzar reflujo para reiniciar la animación - _this3.renderer.addClass(countDownElement, 'animate'); - // Espera para que la animación del countdown se reproduzca - yield new Promise(resolve => setTimeout(resolve, 1000)); // 1 segundo por iteración - } - console.log('Countdown completado.'); - })(); - } - generateInterval() { - var _this4 = this; - return (0,C_Users_S_RHV_OneDrive_Documentos_GitRepos_Novit_app_sorteo_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function* () { - const empresas = ["wen"]; - for (const empresa of empresas) { - _this4.empresaSorteando = empresa; - while (_this4.sorteos[_this4.empresaSorteando].premios.length > 0) { - const participantes = _this4.sorteos[_this4.empresaSorteando].participantes; - const premios = _this4.sorteos[_this4.empresaSorteando].premios; - // Validación: Participantes y Premios no deben estar vacíos - if (!participantes || participantes.length === 0) { - console.error(`No hay participantes disponibles para ${empresa}.`); - break; - } - if (!premios || premios.length === 0) { - console.error(`No hay premios disponibles para ${empresa}.`); - break; - } - // Genera un índice aleatorio para elegir al ganador - let posibleWinnerIndex = Math.floor(Math.random() * participantes.length); - // Evita repetir el mismo ganador consecutivamente - while (_this4.winnerIndex === posibleWinnerIndex && participantes.length > 1) { - posibleWinnerIndex = Math.floor(Math.random() * participantes.length); - } - _this4.winnerIndex = posibleWinnerIndex; - _this4.showParticipante = participantes[_this4.winnerIndex]; - console.log(`Seleccionado en ${empresa}: ${_this4.showParticipante}`); - // Establece al ganador y guarda el resultado - _this4.setWinner(); - _this4.saveResult(); - // Pausa breve para liberar el hilo y permitir actualizaciones de renderizado - yield new Promise(resolve => setTimeout(resolve, 0)); - } - console.log(`Finalizado el sorteo para ${empresa}.`); - } - console.log('Sorteo completado para todas las empresas.'); - })(); - } - setWinner() { - const premios = this.sorteos[this.empresaSorteando].premios; - if (premios.length === 0) { - console.error(`No hay premios disponibles para ${this.empresaSorteando}`); - return; - } - this.winner = { - texto: this.showParticipante, - premio: premios[this.indexPremio], - // Asignar premio correctamente - empresa: this.empresaSorteando - }; - } - saveResult() { - if (!this.winner) { - console.error('No se puede guardar un ganador porque no se ha seleccionado uno.'); - return; - } - // Guarda el ganador en los resultados - this.results.push(this.winner); - // Elimina al participante seleccionado - this.sorteos[this.empresaSorteando].participantes.splice(this.winnerIndex, 1); - // Elimina el premio asignado - this.sorteos[this.empresaSorteando].premios.shift(); - // Limpia los datos temporales del ganador - this.showParticipante = ""; - this.winner = null; - console.log(`Resultado guardado: ${JSON.stringify(this.results[this.results.length - 1])}`); - } - resetearSorteo() { - this.results = []; - this.winner = null; - this.sorteando = false; - this.sorteoHasStarted = false; - this.setDefaultIntervalValues(); - this.indexPremio = 0; - this.empresaSorteando = "wen"; - } - static { - this.ɵfac = function SlotsSorteo2023Component_Factory(__ngFactoryType__) { - return new (__ngFactoryType__ || SlotsSorteo2023Component)(_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_2__.Renderer2), _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_2__.ElementRef)); - }; - } - static { - this.ɵcmp = /*@__PURE__*/_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineComponent"]({ - type: SlotsSorteo2023Component, - selectors: [["app-slots-sorteo2023"]], - inputs: { - status: "status" - }, - decls: 4, - vars: 3, - consts: [["id", "sorteoContainer", 1, "fullWidth", "fullHeight"], [1, "finDeSorteo"], ["id", "tablaResultadosContainer", 1, "twoColumns"], ["svgIcon", "novitLogo", 1, "svgIcon"], ["id", "buttons"], ["id", "leftContainer", 1, "clickableContainer"], ["id", "randomGeneratorStrings"], [1, "animate", "numberFormat", 3, "ngClass"], ["id", "leftContainer", 1, "clickableContainer", 3, "click"], ["mat-fab", "", 3, "ngClass"], ["classEmpresa", "svgIcon", "sgvIconEmpresa", "wenGrisOscuro", "columnaDerecha", "Ganador", 1, "fullWidth", 3, "results"], [1, "sorteoSeparator"]], - template: function SlotsSorteo2023Component_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "div", 0); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](1, SlotsSorteo2023Component_Conditional_1_Template, 3, 0, "div", 1)(2, SlotsSorteo2023Component_Conditional_2_Template, 8, 6)(3, SlotsSorteo2023Component_Conditional_3_Template, 3, 1, "div", 2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - } - if (rf & 2) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵconditional"](ctx.status.finish ? 1 : -1); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵconditional"](!ctx.status.finish ? 2 : -1); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵconditional"](ctx.status.finish ? 3 : -1); - } - }, - dependencies: [_angular_common__WEBPACK_IMPORTED_MODULE_4__.NgClass, _angular_material_icon__WEBPACK_IMPORTED_MODULE_5__.MatIcon, _angular_material_button__WEBPACK_IMPORTED_MODULE_6__.MatFabButton, _resultados_resultados_component__WEBPACK_IMPORTED_MODULE_1__.ResultadosComponent], - styles: ["@charset \"UTF-8\";\n.fullWidth[_ngcontent-%COMP%] {\n width: -webkit-fill-available !important;\n}\n\n.fullHeight[_ngcontent-%COMP%] {\n height: -webkit-fill-available !important;\n}\n\n.clickableContainer[_ngcontent-%COMP%] {\n cursor: pointer;\n}\n\n#sorteoContainer[_ngcontent-%COMP%] #buttons[_ngcontent-%COMP%] {\n width: 60%;\n margin-top: 39px;\n margin-bottom: 0px;\n padding-bottom: 2.5em;\n}\n\n.svgIcon[_ngcontent-%COMP%] {\n width: 340px;\n height: 100%;\n}\n\n.oneColumn[_ngcontent-%COMP%] {\n width: 50%;\n}\n\n.twoColumns[_ngcontent-%COMP%] {\n width: 84%;\n}\n\n.sorteoSeparator[_ngcontent-%COMP%] {\n border-right: 1px solid #c5c5c5;\n margin-top: 1.5em;\n}\n\n#tablaResultadosContainer[_ngcontent-%COMP%] {\n gap: 9em;\n}\n\n.numberFormat[_ngcontent-%COMP%] {\n font-size: 200px !important;\n font-family: \"LatinxText-Bold\";\n}\n\n@keyframes _ngcontent-%COMP%_excitingCountDown {\n 0% {\n opacity: 0;\n transform: scale(0.5) rotate(0deg);\n text-shadow: 0 0 5px #fff, 0 0 10px #ff5733, 0 0 20px #ff5733, 0 0 30px #ffbd33, 0 0 40px #fff;\n }\n 50% {\n opacity: 1;\n transform: scale(1.2) rotate(360deg);\n text-shadow: 0 0 10px #fff, 0 0 20px #ffbd33, 0 0 30px #ffc300, 0 0 40px #ff5733, 0 0 50px #ffbd33;\n }\n 100% {\n opacity: 0;\n transform: scale(1.5) rotate(720deg);\n text-shadow: 0 0 5px #fff, 0 0 10px #ff5733, 0 0 15px #ff5733, 0 0 20px #ffc300, 0 0 25px #ffbd33;\n }\n}\n#randomGeneratorStrings[_ngcontent-%COMP%] span.animate[_ngcontent-%COMP%] {\n display: inline-block;\n animation: _ngcontent-%COMP%_excitingCountDown 1s ease-in-out;\n font-size: 5rem;\n \n\n font-weight: bold;\n color: #fff;\n text-shadow: 0 0 5px #fff, 0 0 10px #ff5733, 0 0 20px #ffc300, 0 0 30px #ffbd33, 0 0 40px #fff;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8uL3NyYy9hcHAvY29tcG9uZW50cy92ZXJzaW9uMjAyMy9zbG90cy1zb3J0ZW8yMDIzL3Nsb3RzLXNvcnRlbzIwMjMuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0JBQWdCO0FBRWhCO0VBQ0ksd0NBQUE7QUFBSjs7QUFFQTtFQUNJLHlDQUFBO0FBQ0o7O0FBRUE7RUFDSSxlQUFBO0FBQ0o7O0FBRUE7RUFDSSxVQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLHFCQUFBO0FBQ0o7O0FBQ0E7RUFDSSxZQUFBO0VBQ0EsWUFBQTtBQUVKOztBQUFBO0VBQ0ksVUFBQTtBQUdKOztBQUFBO0VBQ0ksVUFBQTtBQUdKOztBQURBO0VBQ0ksK0JBQUE7RUFDQSxpQkFBQTtBQUlKOztBQURBO0VBRUksUUFBQTtBQUdKOztBQUFBO0VBQ0ksMkJBQUE7RUFDQSw4QkFBQTtBQUdKOztBQUFBO0VBQ0k7SUFDSSxVQUFBO0lBQ0Esa0NBQUE7SUFDQSw4RkFBQTtFQUdOO0VBQUU7SUFDSSxVQUFBO0lBQ0Esb0NBQUE7SUFDQSxrR0FBQTtFQUVOO0VBQ0U7SUFDSSxVQUFBO0lBQ0Esb0NBQUE7SUFDQSxpR0FBQTtFQUNOO0FBQ0Y7QUFFQTtFQUNJLHFCQUFBO0VBQ0EsMkNBQUE7RUFDQSxlQUFBO0VBQ0EsZ0NBQUE7RUFDQSxpQkFBQTtFQUNBLFdBQUE7RUFDQSw4RkFBQTtBQUFKIiwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCBcImFwcC1jb2xvcnMuc2Nzc1wiO1xyXG5cclxuLmZ1bGxXaWR0aCB7XHJcbiAgICB3aWR0aDogLXdlYmtpdC1maWxsLWF2YWlsYWJsZSAhaW1wb3J0YW50O1xyXG59XHJcbi5mdWxsSGVpZ2h0IHtcclxuICAgIGhlaWdodDogLXdlYmtpdC1maWxsLWF2YWlsYWJsZSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uY2xpY2thYmxlQ29udGFpbmVyIHtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG5cclxuI3NvcnRlb0NvbnRhaW5lciAjYnV0dG9ucyB7XHJcbiAgICB3aWR0aDogNjAlO1xyXG4gICAgbWFyZ2luLXRvcDogMzlweDtcclxuICAgIG1hcmdpbi1ib3R0b206IDBweDtcclxuICAgIHBhZGRpbmctYm90dG9tOiAyLjVlbTtcclxufVxyXG4uc3ZnSWNvbiB7XHJcbiAgICB3aWR0aDogMzQwcHg7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgfVxyXG4ub25lQ29sdW1uIHtcclxuICAgIHdpZHRoOiA1MCU7XHJcbn1cclxuXHJcbi50d29Db2x1bW5zIHtcclxuICAgIHdpZHRoOiA4NCU7XHJcbn1cclxuLnNvcnRlb1NlcGFyYXRvciB7XHJcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkY29sb3ItZ3JheTtcclxuICAgIG1hcmdpbi10b3A6IDEuNWVtO1xyXG59XHJcblxyXG4jdGFibGFSZXN1bHRhZG9zQ29udGFpbmVyIHtcclxuICAgIC8vZGlzcGxheTogZmxleDtcclxuICAgIGdhcDogOWVtO1xyXG59XHJcblxyXG4ubnVtYmVyRm9ybWF0IHtcclxuICAgIGZvbnQtc2l6ZTogMjAwcHggIWltcG9ydGFudDtcclxuICAgIGZvbnQtZmFtaWx5OiBcIkxhdGlueFRleHQtQm9sZFwiO1xyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGV4Y2l0aW5nQ291bnREb3duIHtcclxuICAgIDAlIHtcclxuICAgICAgICBvcGFjaXR5OiAwO1xyXG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC41KSByb3RhdGUoMGRlZyk7XHJcbiAgICAgICAgdGV4dC1zaGFkb3c6IDAgMCA1cHggI2ZmZiwgMCAwIDEwcHggI2ZmNTczMywgMCAwIDIwcHggI2ZmNTczMywgMCAwIDMwcHggI2ZmYmQzMywgMCAwIDQwcHggI2ZmZjtcclxuICAgIH1cclxuXHJcbiAgICA1MCUge1xyXG4gICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjIpIHJvdGF0ZSgzNjBkZWcpO1xyXG4gICAgICAgIHRleHQtc2hhZG93OiAwIDAgMTBweCAjZmZmLCAwIDAgMjBweCAjZmZiZDMzLCAwIDAgMzBweCAjZmZjMzAwLCAwIDAgNDBweCAjZmY1NzMzLCAwIDAgNTBweCAjZmZiZDMzO1xyXG4gICAgfVxyXG5cclxuICAgIDEwMCUge1xyXG4gICAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjUpIHJvdGF0ZSg3MjBkZWcpO1xyXG4gICAgICAgIHRleHQtc2hhZG93OiAwIDAgNXB4ICNmZmYsIDAgMCAxMHB4ICNmZjU3MzMsIDAgMCAxNXB4ICNmZjU3MzMsIDAgMCAyMHB4ICNmZmMzMDAsIDAgMCAyNXB4ICNmZmJkMzM7XHJcbiAgICB9XHJcbn1cclxuXHJcbiNyYW5kb21HZW5lcmF0b3JTdHJpbmdzIHNwYW4uYW5pbWF0ZSB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBhbmltYXRpb246IGV4Y2l0aW5nQ291bnREb3duIDFzIGVhc2UtaW4tb3V0O1xyXG4gICAgZm9udC1zaXplOiA1cmVtO1xyXG4gICAgLyogTcODwqFzIGdyYW5kZSBwYXJhIGRhciBpbXBhY3RvICovXHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgdGV4dC1zaGFkb3c6IDAgMCA1cHggI2ZmZiwgMCAwIDEwcHggI2ZmNTczMywgMCAwIDIwcHggI2ZmYzMwMCwgMCAwIDMwcHggI2ZmYmQzMywgMCAwIDQwcHggI2ZmZjtcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9 */"] - }); - } -} -class ConfiguracionRuleta { - constructor() { - this.microSeg = 50; - this.microSeg_agregar = 50; - this.microSeg_suspenso = 85; - this.intervalInstance = 1; - this.repetir_N_veces = 9; - this.restarRepeticiones = 9; - this.restarRepeticiones_suspenso = 3; - } -} - -/***/ }), - -/***/ 2833: -/*!*****************************************************************!*\ - !*** ./src/app/components/version2023/version2023.component.ts ***! - \*****************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ Version2023Component: () => (/* binding */ Version2023Component) -/* harmony export */ }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/core */ 7580); -/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/common */ 316); -/* harmony import */ var _angular_material_icon__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/material/icon */ 3840); -/* harmony import */ var _angular_material_button__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/material/button */ 4175); -/* harmony import */ var _carga_listado_carga_listado_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./carga-listado/carga-listado.component */ 439); -/* harmony import */ var _slots_sorteo2023_slots_sorteo2023_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./slots-sorteo2023/slots-sorteo2023.component */ 6191); - - - - - - -const _c0 = ["listadoswen"]; -const _c1 = ["slotsSorteo"]; -const _c2 = a0 => ({ - "hidden": a0 -}); -class Version2023Component { - constructor() { - this.initValue = false; - } - ngOnInit() {} - resetearSorteo() { - this.listadoswen.resetearSorteo(); - this.slotsSorteo.resetearSorteo(); - this.initValue = false; - } - disableStart() { - return !this.listadoswen || this.listadoswen.isInvalid(); - } - comenzarSorteo() { - let sorteos = { - wen: this.listadoswen.getListados() - }; - this.slotsSorteo.startSorteo(sorteos); - } - static { - this.ɵfac = function Version2023Component_Factory(__ngFactoryType__) { - return new (__ngFactoryType__ || Version2023Component)(); - }; - } - static { - this.ɵcmp = /*@__PURE__*/_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineComponent"]({ - type: Version2023Component, - selectors: [["app-version2023"]], - viewQuery: function Version2023Component_Query(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵviewQuery"](_c0, 5); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵviewQuery"](_c1, 5); - } - if (rf & 2) { - let _t; - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵloadQuery"]()) && (ctx.listadoswen = _t.first); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵloadQuery"]()) && (ctx.slotsSorteo = _t.first); - } - }, - inputs: { - status: "status" - }, - decls: 13, - vars: 14, - consts: [["listadoswen", ""], ["slotsSorteo", ""], ["id", "initContainer", 3, "ngClass"], ["id", "empresasContainer"], [1, "sorteoContainer"], [2, "text-align", "center"], ["svgIcon", "novitLogo", 1, "svgIcon"], [1, "fullWidth"], ["id", "actionsContainer", 3, "ngClass"], ["mat-raised-button", "", 1, "okBtn", 3, "click", "disabled"], [1, "widthSlots", 3, "ngClass", "status"]], - template: function Version2023Component_Template(rf, ctx) { - if (rf & 1) { - const _r1 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵgetCurrentView"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "div", 2)(1, "div", 2)(2, "div", 3)(3, "div", 4)(4, "h1", 5); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelement"](5, "mat-icon", 6); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelement"](6, "app-carga-listado", 7, 0); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"]()()(); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](8, "div", 8)(9, "button", 9); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵlistener"]("click", function Version2023Component_Template_button_click_9_listener() { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵrestoreView"](_r1); - return _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵresetView"](ctx.comenzarSorteo()); - }); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](10, "PREPARAR SORTEO"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"]()()(); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelement"](11, "app-slots-sorteo2023", 10, 1); - } - if (rf & 2) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngClass", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpureFunction1"](6, _c2, ctx.status.start)); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngClass", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpureFunction1"](8, _c2, ctx.status.start)); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](7); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngClass", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpureFunction1"](10, _c2, ctx.status.start)); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("disabled", ctx.disableStart()); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngClass", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpureFunction1"](12, _c2, !ctx.status.start))("status", ctx.status); - } - }, - dependencies: [_angular_common__WEBPACK_IMPORTED_MODULE_3__.NgClass, _angular_material_icon__WEBPACK_IMPORTED_MODULE_4__.MatIcon, _angular_material_button__WEBPACK_IMPORTED_MODULE_5__.MatButton, _carga_listado_carga_listado_component__WEBPACK_IMPORTED_MODULE_0__.CargaListadoComponent, _slots_sorteo2023_slots_sorteo2023_component__WEBPACK_IMPORTED_MODULE_1__.SlotsSorteo2023Component], - styles: [".hidden[_ngcontent-%COMP%] {\n display: none !important;\n}\n\n.fullWidth[_ngcontent-%COMP%] {\n width: -webkit-fill-available;\n}\n\n.fullHeight[_ngcontent-%COMP%] {\n height: -webkit-fill-available !important;\n}\n\n.widthSlots[_ngcontent-%COMP%] {\n width: 100%;\n justify-content: center;\n}\n\n.sorteoContainer[_ngcontent-%COMP%] .svgIcon[_ngcontent-%COMP%] {\n width: 340px;\n height: 100%;\n}\n.sorteoContainer[_ngcontent-%COMP%] .scndIcon[_ngcontent-%COMP%] {\n width: 400px;\n height: 100%;\n}\n\n#initContainer[_ngcontent-%COMP%] {\n gap: 4em;\n display: flex;\n flex-direction: column;\n align-items: center;\n width: -webkit-fill-available;\n}\n#initContainer[_ngcontent-%COMP%] .sorteoSeparator[_ngcontent-%COMP%] {\n border-right: 1px solid #c5c5c5;\n margin-top: 1.5em;\n}\n#initContainer[_ngcontent-%COMP%] #empresasContainer[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-evenly;\n width: -webkit-fill-available;\n}\n#initContainer[_ngcontent-%COMP%] #empresasContainer[_ngcontent-%COMP%] .sorteoContainer[_ngcontent-%COMP%] {\n width: 25%;\n}\n#initContainer[_ngcontent-%COMP%] #actionsContainer[_ngcontent-%COMP%] {\n display: flex;\n justify-content: center;\n}\n#initContainer[_ngcontent-%COMP%] #actionsContainer[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n font-size: 20px;\n padding: 5px 3em;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8uL3NyYy9hcHAvY29tcG9uZW50cy92ZXJzaW9uMjAyMy92ZXJzaW9uMjAyMy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTtFQUNJLHdCQUFBO0FBREo7O0FBSUE7RUFDSSw2QkFBQTtBQURKOztBQUlBO0VBQ0kseUNBQUE7QUFESjs7QUFJQTtFQUNJLFdBQUE7RUFDQSx1QkFBQTtBQURKOztBQUtJO0VBQ0ksWUFBQTtFQUNBLFlBQUE7QUFGUjtBQUtJO0VBQ0ksWUFBQTtFQUNBLFlBQUE7QUFIUjs7QUFPQTtFQUNJLFFBQUE7RUFDQSxhQUFBO0VBQ0Esc0JBQUE7RUFDQSxtQkFBQTtFQUNBLDZCQUFBO0FBSko7QUFNSTtFQUNJLCtCQUFBO0VBQ0EsaUJBQUE7QUFKUjtBQU9JO0VBQ0ksYUFBQTtFQUNBLDZCQUFBO0VBQ0EsNkJBQUE7QUFMUjtBQU9RO0VBQ0ksVUFBQTtBQUxaO0FBU0k7RUFDSSxhQUFBO0VBQ0EsdUJBQUE7QUFQUjtBQVNRO0VBQ0ksZUFBQTtFQUNBLGdCQUFBO0FBUFoiLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0IFwiYXBwLWNvbG9ycy5zY3NzXCI7XHJcblxyXG4uaGlkZGVuIHtcclxuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcclxufVxyXG5cclxuLmZ1bGxXaWR0aCB7XHJcbiAgICB3aWR0aDogLXdlYmtpdC1maWxsLWF2YWlsYWJsZTtcclxufVxyXG5cclxuLmZ1bGxIZWlnaHQge1xyXG4gICAgaGVpZ2h0OiAtd2Via2l0LWZpbGwtYXZhaWxhYmxlICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi53aWR0aFNsb3RzIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbn1cclxuXHJcbi5zb3J0ZW9Db250YWluZXIge1xyXG4gICAgLnN2Z0ljb24ge1xyXG4gICAgICAgIHdpZHRoOiAzNDBweDtcclxuICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC5zY25kSWNvbiB7XHJcbiAgICAgICAgd2lkdGg6IDQwMHB4O1xyXG4gICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgIH1cclxufVxyXG5cclxuI2luaXRDb250YWluZXIge1xyXG4gICAgZ2FwOiA0ZW07XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICB3aWR0aDogLXdlYmtpdC1maWxsLWF2YWlsYWJsZTtcclxuXHJcbiAgICAuc29ydGVvU2VwYXJhdG9yIHtcclxuICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkY29sb3ItZ3JheTtcclxuICAgICAgICBtYXJnaW4tdG9wOiAxLjVlbTtcclxuICAgIH1cclxuXHJcbiAgICAjZW1wcmVzYXNDb250YWluZXIge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1ldmVubHk7XHJcbiAgICAgICAgd2lkdGg6IC13ZWJraXQtZmlsbC1hdmFpbGFibGU7XHJcblxyXG4gICAgICAgIC5zb3J0ZW9Db250YWluZXIge1xyXG4gICAgICAgICAgICB3aWR0aDogMjUlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAjYWN0aW9uc0NvbnRhaW5lciB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHJcbiAgICAgICAgYnV0dG9uIHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAyMHB4O1xyXG4gICAgICAgICAgICBwYWRkaW5nOiA1cHggM2VtO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0= */"] - }); - } -} - -/***/ }), - -/***/ 8157: -/*!********************************!*\ - !*** ./src/app/svg.service.ts ***! - \********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ SvgService: () => (/* binding */ SvgService) -/* harmony export */ }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ 7580); -/* harmony import */ var _angular_material_icon__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/material/icon */ 3840); -/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/platform-browser */ 436); - - - -class SvgService { - constructor(matIconRegistry, domSanitizer) { - this.matIconRegistry = matIconRegistry; - this.domSanitizer = domSanitizer; - } - init() { - this.matIconRegistry.addSvgIcon("novitLogo", this.domSanitizer.bypassSecurityTrustResourceUrl("assets/icons/logo-azul.svg")); - this.matIconRegistry.addSvgIcon("novitLogoBlanco", this.domSanitizer.bypassSecurityTrustResourceUrl("assets/icons/logo-blanco.svg")); - } - static { - this.ɵfac = function SvgService_Factory(__ngFactoryType__) { - return new (__ngFactoryType__ || SvgService)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](_angular_material_icon__WEBPACK_IMPORTED_MODULE_1__.MatIconRegistry), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](_angular_platform_browser__WEBPACK_IMPORTED_MODULE_2__.DomSanitizer)); - }; - } - static { - this.ɵprov = /*@__PURE__*/_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({ - token: SvgService, - factory: SvgService.ɵfac, - providedIn: 'root' - }); - } -} - -/***/ }), - -/***/ 5312: -/*!*****************************************!*\ - !*** ./src/environments/environment.ts ***! - \*****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ environment: () => (/* binding */ environment) -/* harmony export */ }); -// This file can be replaced during build by using the `fileReplacements` array. -// `ng build` replaces `environment.ts` with `environment.prod.ts`. -// The list of file replacements can be found in `angular.json`. -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/plugins/zone-error'; // Included with Angular CLI. - -/***/ }), - -/***/ 4429: -/*!*********************!*\ - !*** ./src/main.ts ***! - \*********************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/platform-browser */ 436); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/core */ 7580); -/* harmony import */ var _app_app_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./app/app.module */ 635); -/* harmony import */ var _environments_environment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./environments/environment */ 5312); - - - - -if (_environments_environment__WEBPACK_IMPORTED_MODULE_1__.environment.production) { - (0,_angular_core__WEBPACK_IMPORTED_MODULE_2__.enableProdMode)(); -} -_angular_platform_browser__WEBPACK_IMPORTED_MODULE_3__.platformBrowser().bootstrapModule(_app_app_module__WEBPACK_IMPORTED_MODULE_0__.AppModule).catch(err => console.error(err)); - -/***/ }) - -}, -/******/ __webpack_require__ => { // webpackRuntimeModules -/******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) -/******/ __webpack_require__.O(0, ["vendor"], () => (__webpack_exec__(4429))); -/******/ var __webpack_exports__ = __webpack_require__.O(); -/******/ } -]); -//# sourceMappingURL=main.js.map \ No newline at end of file diff --git a/docs/main.js.map b/docs/main.js.map deleted file mode 100644 index add637c..0000000 --- a/docs/main.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"main.js","mappings":"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","sources":["./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/components/aviso-snack/aviso-snack.component.ts","./src/app/components/aviso-snack/aviso-snack.component.html","./src/app/components/aviso-snack/aviso-snack.service.ts","./src/app/components/head-bar/head-bar.component.ts","./src/app/components/head-bar/head-bar.component.html","./src/app/components/resultados/resultados.component.ts","./src/app/components/resultados/resultados.component.html","./src/app/components/version2023/carga-listado/carga-listado.component.ts","./src/app/components/version2023/carga-listado/carga-listado.component.html","./src/app/components/version2023/slots-sorteo2023/slots-sorteo2023.component.ts","./src/app/components/version2023/slots-sorteo2023/slots-sorteo2023.component.html","./src/app/components/version2023/version2023.component.ts","./src/app/components/version2023/version2023.component.html","./src/app/svg.service.ts","./src/environments/environment.ts","./src/main.ts"],"sourcesContent":["import { Component, ViewChild } from '@angular/core';\r\nimport { SvgService } from './svg.service';\r\nimport { HeadBarComponent } from './components/head-bar/head-bar.component';\r\nimport { Version2023Component } from './components/version2023/version2023.component';\r\n\r\nexport enum Version {\r\n _2023\r\n}\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss']\r\n})\r\nexport class AppComponent {\r\n showVersionControl: boolean = false;\r\n displayVersion: Version = Version._2023;\r\n version = Version;\r\n\r\n status = {\r\n start: false,\r\n finish: false\r\n }\r\n\r\n @ViewChild('headBar') headBar!: HeadBarComponent;\r\n @ViewChild('version2023') version2023!: Version2023Component;\r\n\r\n constructor(private svgService: SvgService) {\r\n this.svgService.init();\r\n }\r\n\r\n resetearSorteo() {\r\n switch (this.displayVersion) {\r\n case Version._2023:\r\n this.version2023.resetearSorteo();\r\n break;\r\n }\r\n }\r\n\r\n changeVersionDisplaying(version: Version) {\r\n this.headBar.resetearSorteo(true);\r\n this.displayVersion = version;\r\n }\r\n}","
\r\n \r\n\r\n @if (showVersionControl) {\r\n \r\n 2023\r\n \r\n }\r\n\r\n
\r\n \r\n
\r\n
\r\n","import { NgModule } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { SvgService } from './svg.service';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\n\r\n// MATERIAL ANGULAR\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\n// COMPONENTES\r\nimport { AppComponent } from './app.component';\r\nimport { ResultadosComponent } from './components/resultados/resultados.component';\r\nimport { HeadBarComponent } from './components/head-bar/head-bar.component';\r\nimport { Version2023Component } from './components/version2023/version2023.component';\r\nimport { CargaListadoComponent } from './components/version2023/carga-listado/carga-listado.component';\r\nimport { SlotsSorteo2023Component } from './components/version2023/slots-sorteo2023/slots-sorteo2023.component';\r\nimport { AvisoSnackComponent } from './components/aviso-snack/aviso-snack.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n ResultadosComponent,\r\n HeadBarComponent,\r\n Version2023Component,\r\n CargaListadoComponent,\r\n AvisoSnackComponent,\r\n SlotsSorteo2023Component\r\n ],\r\n imports: [\r\n BrowserModule,\r\n BrowserAnimationsModule,\r\n MatIconModule,\r\n HttpClientModule,\r\n MatButtonModule,\r\n FormsModule,\r\n MatInputModule,\r\n ReactiveFormsModule,\r\n MatButtonToggleModule,\r\n MatSnackBarModule,\r\n MatTooltipModule\r\n ],\r\n providers: [SvgService],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule { }","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MAT_SNACK_BAR_DATA, MatSnackBarRef } from '@angular/material/snack-bar';\r\n\r\n@Component({\r\n selector: 'app-aviso-snack',\r\n templateUrl: './aviso-snack.component.html',\r\n styleUrls: ['./aviso-snack.component.scss']\r\n})\r\nexport class AvisoSnackComponent implements OnInit {\r\n\r\n constructor(\r\n public snackBarRef: MatSnackBarRef,\r\n @Inject(MAT_SNACK_BAR_DATA) public data: any\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n dismiss(){\r\n this.snackBarRef.dismiss();\r\n }\r\n\r\n}\r\n","
\r\n {{data.title}}\r\n {{data.text}}\r\n
","import { Injectable } from \"@angular/core\";\r\nimport { MatSnackBar } from \"@angular/material/snack-bar\";\r\nimport { AvisoSnackComponent } from \"./aviso-snack.component\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AvisoSnackService {\r\n\r\n constructor(private _snackBar: MatSnackBar){}\r\n\r\n displayMsg(type: \"error\"|\"exito\", title: string, text: string){\r\n this._snackBar.openFromComponent(AvisoSnackComponent, {\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n data: {\r\n type: type,\r\n title: title,\r\n text: text\r\n }\r\n });\r\n }\r\n}","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { Version } from 'src/app/app.component';\r\n\r\n@Component({\r\n selector: 'app-head-bar',\r\n templateUrl: './head-bar.component.html',\r\n styleUrls: ['./head-bar.component.scss']\r\n})\r\nexport class HeadBarComponent implements OnInit {\r\n @Input() displayVersion!: Version;\r\n @Input() status!: { start: boolean, finish: boolean };\r\n\r\n @Output() fireResetearSorteo = new EventEmitter();\r\n currentYear: number;\r\n\r\n constructor() {\r\n this.currentYear = new Date().getFullYear();\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n resetearSorteo(force: boolean = false) {\r\n if (this.status.finish || force) {\r\n this.status.finish = false;\r\n this.status.start = false;\r\n\r\n this.fireResetearSorteo.emit();\r\n }\r\n }\r\n\r\n getVersion() {\r\n return \"2023\";\r\n }\r\n}\r\n","
\r\n

Sorteo {{currentYear}}

\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n","import { Component, ViewChild, ElementRef, Input, OnInit, ChangeDetectorRef } from '@angular/core';\r\nimport { trigger, state, style, transition, animate, keyframes } from '@angular/animations';\r\n\r\n@Component({\r\n selector: 'app-resultados',\r\n templateUrl: './resultados.component.html',\r\n styleUrls: ['./resultados.component.scss'],\r\n animations: [\r\n trigger('zoomInOut', [\r\n transition(':enter', [\r\n animate('1s ease-in-out', keyframes([\r\n style({ transform: 'scale(0.5)', offset: 0 }),\r\n style({ transform: 'scale(1.2)', offset: 0.5 }),\r\n style({ transform: 'scale(1)', offset: 1 })\r\n ]))\r\n ])\r\n ]),\r\n trigger('fadeIn', [\r\n transition(':enter', [\r\n style({ opacity: 0, transform: 'translateY(10px)' }),\r\n animate('500ms ease-out', style({ opacity: 1, transform: 'translateY(0)' }))\r\n ])\r\n ])\r\n ]\r\n})\r\nexport class ResultadosComponent implements OnInit {\r\n @Input() results!: { texto: number | string; premio: string }[];\r\n @Input() columnaDerecha!: string;\r\n @Input() empresa!: string;\r\n @Input() classEmpresa: string = '';\r\n @Input() sgvIconEmpresa: string = '';\r\n\r\n @ViewChild('resultadosContainer') resultadosContainer!: ElementRef;\r\n visibleResults: any[] = [];\r\n\r\n constructor(private cdr: ChangeDetectorRef) { }\r\n\r\n private scrollToBottom(): void {\r\n setTimeout(() => {\r\n const appContainer = document.querySelector('#app') as HTMLElement;\r\n const scrollContainer = appContainer || this.resultadosContainer.nativeElement;\r\n scrollContainer.scrollTop = scrollContainer.scrollHeight;\r\n\r\n // if (this.resultadosContainer) {\r\n // const nativeElement = this.resultadosContainer.nativeElement;\r\n // if (nativeElement.scrollHeight > nativeElement.clientHeight) {\r\n // nativeElement.scrollTop = nativeElement.scrollHeight;\r\n // }\r\n // }\r\n }, 0);\r\n }\r\n\r\n async showResults(): Promise {\r\n for (let i = 0; i < this.results.length; i++) {\r\n this.visibleResults.push(this.results[i]); // Agrega el resultado a la lista visible\r\n this.cdr.detectChanges(); // Asegura que el DOM esté actualizado\r\n this.scrollToBottom(); // Realiza el scroll al final\r\n await new Promise(resolve => setTimeout(resolve, 2000)); // Espera 2 segundos\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.showResults();\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n Premio\r\n {{columnaDerecha}}\r\n
\r\n @for (result of visibleResults; track result) {\r\n
\r\n {{result.premio}}\r\n
{{result.texto}}
\r\n
\r\n }\r\n
\r\n","import { ChangeDetectorRef, Component, EventEmitter, OnInit, Output } from '@angular/core';\r\nimport { AvisoSnackService } from '../../aviso-snack/aviso-snack.service';\r\nimport { Premio } from '../slots-sorteo2023/slots-sorteo2023.component';\r\nimport * as _ from 'lodash';\r\n\r\n@Component({\r\n selector: 'app-carga-listado',\r\n templateUrl: './carga-listado.component.html',\r\n styleUrls: ['./carga-listado.component.scss']\r\n})\r\nexport class CargaListadoComponent implements OnInit {\r\n\r\n participantesOriginal: string[] = [];\r\n participantes: string[] = [];\r\n premios: Premio[] = [];\r\n cantidadTotalPremios: number = 0;\r\n\r\n @Output() fireStartSorteo = new EventEmitter();\r\n\r\n constructor(\r\n private _avisoSnackService: AvisoSnackService,\r\n private cdr: ChangeDetectorRef\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n \r\n resetearSorteo(){\r\n this.participantes = [...this.participantesOriginal];\r\n }\r\n\r\n cargarArchivo(event: any, tipo: 'participantes'|'premios'){\r\n if (event.target.files.length > 0) {\r\n const file = event.target.files[0];\r\n event.target.value = '';\r\n \r\n if (file.type === \"text/plain\") {\r\n let fileReader: FileReader = new FileReader();\r\n let output: string[] = [];\r\n\r\n let self = this;\r\n fileReader.onload = function(e: any) {\r\n let lines = e.target.result.split(/[\\r\\n]+/g); // linebreaks\r\n\r\n for(var i = 0; i < lines.length; i++) {\r\n output.push(lines[i].toString().trim());\r\n }\r\n\r\n if (tipo === 'participantes') self.cargarParticipantes(output)\r\n else self.cargarPremios(output);\r\n\r\n };\r\n fileReader.readAsText(file); \r\n }\r\n }\r\n }\r\n\r\n cargarParticipantes(output: any){\r\n let lowerCase = _.map(output, x => x.toLowerCase());\r\n this.participantesOriginal = output.filter((value: string, index: number) => {\r\n return lowerCase.indexOf(value.toLowerCase()) === index && value.trim() !== \"\";\r\n });\r\n this.participantes = [...this.participantesOriginal];\r\n }\r\n\r\n cargarPremios(output: any){\r\n let premios: any[] = [];\r\n let error: string = \"\";\r\n this.cantidadTotalPremios = 0;\r\n\r\n output.forEach((x: string) => {\r\n if (!error){\r\n let pair = x.split(\",\");\r\n \r\n error = this.validarPremios(pair);\r\n\r\n if (error !== \"\"){\r\n this._avisoSnackService.displayMsg(\"error\", \"FORMATO INCORRECTO\", error);\r\n premios = [];\r\n } else {\r\n let nombre = pair[0].trim();\r\n let cantidad = parseInt(pair[1].trim())\r\n premios.push({nombre: nombre, cantidad: cantidad})\r\n this.cantidadTotalPremios += cantidad;\r\n }\r\n }\r\n })\r\n this.premios = premios;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n validarPremios(pair: string[]): string {\r\n if (pair.length !== 2) return `El formato de texto de premio debe ser: \"premio,cantidad\"`\r\n\r\n try {\r\n let cantidad = parseInt(pair[1].trim());\r\n if (isNaN(cantidad)) return `No se ingresó un número para indicar la cantidad de premios`\r\n if (cantidad === 0) return `Un premio tiene cantidad cero`\r\n } catch {\r\n return `No se ingresó un número para indicar la cantidad de premios`\r\n }\r\n\r\n return \"\"\r\n }\r\n\r\n masPremiosQueParticipantes() {\r\n return (this.participantes.length > 0 && this.cantidadTotalPremios > 0) && this.participantes.length < this.cantidadTotalPremios\r\n }\r\n\r\n isInvalid(){\r\n return !this.participantes.length || !this.premios.length || this.masPremiosQueParticipantes()\r\n }\r\n\r\n getListados(){\r\n let premios: string[] = [];\r\n _.forEach(this.premios, x => { premios = [...premios, ...Array(x.cantidad).fill(x.nombre)]})\r\n return {participantes: this.participantes, premios: premios}\r\n }\r\n}","
\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n

PARTICIPANTES

\r\n
\r\n \r\n info\r\n
\r\n
\r\n\r\n @if (participantes.length) {\r\n
\r\n @for (participante of participantes; track participante) {\r\n
\r\n {{participante}}\r\n
\r\n }\r\n
\r\n }\r\n
\r\n\r\n
\r\n
\r\n

PREMIOS

\r\n
\r\n \r\n info\r\n
\r\n
\r\n\r\n @if (masPremiosQueParticipantes()) {\r\n La cantidad de premios es superior a la de participantes\r\n }\r\n\r\n @if (premios.length) {\r\n
\r\n
\r\n Nombre\r\n Cantidad\r\n
\r\n
\r\n @for (premio of premios; track premio) {\r\n
\r\n {{premio.nombre}}\r\n {{premio.cantidad}}\r\n
\r\n }\r\n
\r\n
\r\n }\r\n
\r\n
\r\n
\r\n","import { Component, Input, OnInit, Renderer2, ElementRef } from '@angular/core';\r\nimport { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'app-slots-sorteo2023',\r\n templateUrl: './slots-sorteo2023.component.html',\r\n styleUrls: ['./slots-sorteo2023.component.scss']\r\n})\r\nexport class SlotsSorteo2023Component implements OnInit {\r\n\r\n @Input() status!: {start: boolean, finish: boolean};\r\n\r\n sorteos!: Sorteos;\r\n empresaSorteando: \"wen\" = \"wen\";\r\n indexPremio: number = 0;\r\n \r\n // RESULTADOS SORTEO\r\n sorteando: boolean = false;\r\n sorteoHasStarted: boolean = false;\r\n showParticipante: string = \"- - - -\";\r\n countDown: string = \"\";\r\n winnerIndex: number = 0;\r\n winner: any|null = null;\r\n results: { texto: string; premio: string; empresa: string }[] = [];\r\n\r\n // CONFIGURACION DE \"RULETA\"\r\n config: ConfiguracionRuleta = new ConfiguracionRuleta();\r\n \r\n // \r\n TESTEANDO_RULETA: boolean = false;\r\n TESTEO_CONFIG = new UntypedFormGroup(\r\n {\r\n microSeg: new UntypedFormControl('50', [Validators.required]),\r\n microSeg_agregar: new UntypedFormControl('50', [Validators.required]),\r\n microSeg_suspenso: new UntypedFormControl('85', [Validators.required]),\r\n repetir_N_veces: new UntypedFormControl('27', [Validators.required]),\r\n restarRepeticiones: new UntypedFormControl('9', [Validators.required]),\r\n restarRepeticiones_suspenso: new UntypedFormControl('3', [Validators.required]),\r\n }\r\n );\r\n\r\n constructor(private renderer: Renderer2, private el: ElementRef) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n startSorteo(data: Sorteos){\r\n this.sorteos = data;\r\n this.setDefaultIntervalValues();\r\n this.status.start = true;\r\n }\r\n\r\n disableShuffleBtn(){\r\n // return this.sorteando || this.winner !== null\r\n return this.sorteoHasStarted;\r\n }\r\n\r\n disableOkBtn(){\r\n return this.sorteando || this.winner === null;\r\n }\r\n\r\n setDefaultIntervalValues() {\r\n this.config = new ConfiguracionRuleta();\r\n this.configureTestInterval();\r\n }\r\n\r\n configureTestInterval(){\r\n if (this.TESTEANDO_RULETA){\r\n let test = this.TESTEO_CONFIG.getRawValue();\r\n this.config.microSeg = parseInt(test.microSeg);\r\n this.config.microSeg_agregar = parseInt(test.microSeg_agregar);\r\n this.config.microSeg_suspenso = parseInt(test.microSeg_suspenso);\r\n this.config.repetir_N_veces = parseInt(test.repetir_N_veces);\r\n this.config.restarRepeticiones = parseInt(test.restarRepeticiones);\r\n this.config.restarRepeticiones_suspenso = parseInt(test.restarRepeticiones_suspenso);\r\n }\r\n }\r\n\r\n get wenResults() {\r\n return this.results?.filter(result => result.empresa === 'wen') || [];\r\n }\r\n\r\n async generateWinner(){\r\n this.sorteoHasStarted = true;\r\n await this.runProcess();\r\n }\r\n\r\n async runProcess() {\r\n const countDownElement = this.el.nativeElement.querySelector('#randomGeneratorStrings span');\r\n \r\n this.countDown = \"10\"; // Inicializa el countdown\r\n this.sorteando = true;\r\n \r\n // Inicia las tareas en paralelo\r\n const intervalPromise = this.generateInterval(); // Calcula los ganadores\r\n const countdownPromise = this.runCountdown(countDownElement); // Maneja el countdown visual\r\n \r\n // Esperar a que ambas tareas terminen\r\n await Promise.all([intervalPromise, countdownPromise]);\r\n \r\n // Cambiar el estado del sorteo\r\n this.status.finish = true;\r\n \r\n // Reiniciar estados\r\n this.sorteando = false;\r\n console.log('Sorteo finalizado.');\r\n }\r\n \r\n \r\n \r\n\r\n async runCountdown(countDownElement: HTMLElement) {\r\n for (let i = 10; i >= 0; i--) {\r\n this.countDown = i.toString(); // Actualiza el countdown visual\r\n \r\n this.renderer.removeClass(countDownElement, 'animate');\r\n void countDownElement.offsetWidth; // Forzar reflujo para reiniciar la animación\r\n this.renderer.addClass(countDownElement, 'animate');\r\n \r\n // Espera para que la animación del countdown se reproduzca\r\n await new Promise((resolve) => setTimeout(resolve, 1000)); // 1 segundo por iteración\r\n }\r\n \r\n console.log('Countdown completado.');\r\n }\r\n \r\n async generateInterval(): Promise {\r\n const empresas = [\"wen\"] as const;\r\n \r\n for (const empresa of empresas) {\r\n this.empresaSorteando = empresa;\r\n \r\n while (this.sorteos[this.empresaSorteando].premios.length > 0) {\r\n const participantes = this.sorteos[this.empresaSorteando].participantes;\r\n const premios = this.sorteos[this.empresaSorteando].premios;\r\n \r\n // Validación: Participantes y Premios no deben estar vacíos\r\n if (!participantes || participantes.length === 0) {\r\n console.error(`No hay participantes disponibles para ${empresa}.`);\r\n break;\r\n }\r\n \r\n if (!premios || premios.length === 0) {\r\n console.error(`No hay premios disponibles para ${empresa}.`);\r\n break;\r\n }\r\n \r\n // Genera un índice aleatorio para elegir al ganador\r\n let posibleWinnerIndex = Math.floor(Math.random() * participantes.length);\r\n \r\n // Evita repetir el mismo ganador consecutivamente\r\n while (this.winnerIndex === posibleWinnerIndex && participantes.length > 1) {\r\n posibleWinnerIndex = Math.floor(Math.random() * participantes.length);\r\n }\r\n \r\n this.winnerIndex = posibleWinnerIndex;\r\n this.showParticipante = participantes[this.winnerIndex];\r\n console.log(`Seleccionado en ${empresa}: ${this.showParticipante}`);\r\n \r\n // Establece al ganador y guarda el resultado\r\n this.setWinner();\r\n this.saveResult();\r\n \r\n // Pausa breve para liberar el hilo y permitir actualizaciones de renderizado\r\n await new Promise((resolve) => setTimeout(resolve, 0));\r\n }\r\n \r\n console.log(`Finalizado el sorteo para ${empresa}.`);\r\n }\r\n \r\n console.log('Sorteo completado para todas las empresas.');\r\n }\r\n\r\n setWinner() {\r\n const premios = this.sorteos[this.empresaSorteando].premios;\r\n \r\n if (premios.length === 0) {\r\n console.error(`No hay premios disponibles para ${this.empresaSorteando}`);\r\n return;\r\n }\r\n \r\n this.winner = {\r\n texto: this.showParticipante,\r\n premio: premios[this.indexPremio], // Asignar premio correctamente\r\n empresa: this.empresaSorteando\r\n };\r\n }\r\n \r\n \r\n saveResult() {\r\n if (!this.winner) {\r\n console.error('No se puede guardar un ganador porque no se ha seleccionado uno.');\r\n return;\r\n }\r\n \r\n // Guarda el ganador en los resultados\r\n this.results.push(this.winner);\r\n \r\n // Elimina al participante seleccionado\r\n this.sorteos[this.empresaSorteando].participantes.splice(this.winnerIndex, 1);\r\n \r\n // Elimina el premio asignado\r\n this.sorteos[this.empresaSorteando].premios.shift();\r\n \r\n // Limpia los datos temporales del ganador\r\n this.showParticipante = \"\";\r\n this.winner = null;\r\n \r\n console.log(`Resultado guardado: ${JSON.stringify(this.results[this.results.length - 1])}`);\r\n }\r\n \r\n resetearSorteo(){\r\n this.results = [];\r\n this.winner = null;\r\n this.sorteando = false;\r\n this.sorteoHasStarted = false;\r\n this.setDefaultIntervalValues();\r\n this.indexPremio = 0;\r\n this.empresaSorteando = \"wen\";\r\n }\r\n\r\n}\r\n\r\nexport interface Sorteos {\r\n wen: Sorteo\r\n}\r\n\r\nexport interface Sorteo {\r\n participantes: string[],\r\n premios: string[]\r\n}\r\n\r\nexport interface Premio {\r\n nombre: string;\r\n cantidad: number;\r\n}\r\n\r\nexport class ConfiguracionRuleta {\r\n intervalSpin: any;\r\n microSeg: number = 50;\r\n microSeg_agregar: number = 50;\r\n microSeg_suspenso: number = 85;\r\n intervalInstance: number = 1;\r\n repetir_N_veces: number = 9;\r\n restarRepeticiones: number = 9;\r\n restarRepeticiones_suspenso: number = 3;\r\n}\r\n\r\n// 1ra iteración:\r\n// microSeg: number = 100;\r\n// microSeg_agregar: number = 50;\r\n// microSeg_suspenso: number = 100;\r\n// repetir_N_veces: number = 18;\r\n// restarRepeticiones: number = 6;\r\n// restarRepeticiones_suspenso: number = 2;","
\r\n\r\n @if (status.finish) {\r\n
\r\n
\r\n \r\n
\r\n }\r\n\r\n @if (!status.finish) {\r\n \r\n
\r\n @if (!disableShuffleBtn()) {\r\n
\r\n \r\n

Iniciar

\r\n \r\n
\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {{ countDown }}\r\n \r\n
\r\n }\r\n\r\n\r\n @if (status.finish) {\r\n
\r\n \r\n \r\n
\r\n
\r\n }\r\n \r\n
\r\n","import { Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { SlotsSorteo2023Component, Sorteos } from './slots-sorteo2023/slots-sorteo2023.component';\r\nimport { CargaListadoComponent } from './carga-listado/carga-listado.component';\r\n\r\n@Component({\r\n selector: 'app-version2023',\r\n templateUrl: './version2023.component.html',\r\n styleUrls: ['./version2023.component.scss']\r\n})\r\nexport class Version2023Component implements OnInit {\r\n @Input() status!: { start: boolean, finish: boolean };\r\n\r\n @ViewChild('listadoswen') listadoswen!: CargaListadoComponent;\r\n @ViewChild('slotsSorteo') slotsSorteo!: SlotsSorteo2023Component;\r\n\r\n initValue: boolean = false;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n resetearSorteo() {\r\n this.listadoswen.resetearSorteo();\r\n this.slotsSorteo.resetearSorteo();\r\n this.initValue = false;\r\n }\r\n\r\n disableStart() {\r\n return (!this.listadoswen || this.listadoswen.isInvalid());\r\n }\r\n\r\n comenzarSorteo() {\r\n let sorteos: Sorteos = {\r\n wen: this.listadoswen.getListados()\r\n }\r\n this.slotsSorteo.startSorteo(sorteos);\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n

\r\n \r\n

\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { MatIconRegistry } from \"@angular/material/icon\";\r\nimport { DomSanitizer } from \"@angular/platform-browser\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SvgService {\r\n\r\n constructor(\r\n private matIconRegistry: MatIconRegistry,\r\n private domSanitizer: DomSanitizer\r\n ) { }\r\n init() {\r\n this.matIconRegistry.addSvgIcon(\r\n \"novitLogo\",\r\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"assets/icons/logo-azul.svg\")\r\n );\r\n this.matIconRegistry.addSvgIcon(\r\n \"novitLogoBlanco\",\r\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"assets/icons/logo-blanco.svg\")\r\n );\r\n }\r\n}\r\n","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n production: false\r\n};\r\n\r\n/*\r\n * For easier debugging in development mode, you can import the following file\r\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\r\n *\r\n * This import should be commented out in production mode because it will have a negative impact\r\n * on performance if an error is thrown.\r\n */\r\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n"],"names":["i0","ɵɵelementStart","ɵɵlistener","AppComponent_Conditional_3_Template_mat_button_toggle_group_change_0_listener","ɵɵrestoreView","_r2","toggleGroup_r3","ɵɵreference","ctx_r3","ɵɵnextContext","ɵɵresetView","changeVersionDisplaying","value","ɵɵtext","ɵɵelementEnd","ɵɵproperty","displayVersion","ɵɵadvance","version","_2023","Version","AppComponent","constructor","svgService","showVersionControl","status","start","finish","init","resetearSorteo","version2023","headBar","ɵɵdirectiveInject","i1","SvgService","selectors","viewQuery","AppComponent_Query","rf","ctx","AppComponent_Template_app_head_bar_fireResetearSorteo_1_listener","_r1","ɵɵtemplate","AppComponent_Conditional_3_Template","ɵɵelement","ɵɵconditional","BrowserModule","MatIconModule","HttpClientModule","FormsModule","ReactiveFormsModule","BrowserAnimationsModule","MatButtonModule","MatInputModule","MatButtonToggleModule","MatSnackBarModule","MatTooltipModule","ResultadosComponent","HeadBarComponent","Version2023Component","CargaListadoComponent","SlotsSorteo2023Component","AvisoSnackComponent","AppModule","bootstrap","imports","declarations","MatButtonToggleGroup","MatButtonToggle","MAT_SNACK_BAR_DATA","snackBarRef","data","ngOnInit","dismiss","MatSnackBarRef","decls","vars","consts","template","AvisoSnackComponent_Template","AvisoSnackComponent_Template_div_click_0_listener","ɵɵclassMap","type","ɵɵtextInterpolate","title","text","AvisoSnackService","_snackBar","displayMsg","openFromComponent","horizontalPosition","verticalPosition","ɵɵinject","MatSnackBar","factory","ɵfac","providedIn","EventEmitter","fireResetearSorteo","currentYear","Date","getFullYear","force","emit","getVersion","inputs","outputs","HeadBarComponent_Template","HeadBarComponent_Template_h1_click_1_listener","ɵɵpureFunction1","_c0","ɵɵtextInterpolate1","trigger","style","transition","animate","keyframes","undefined","result_r1","premio","texto","cdr","classEmpresa","sgvIconEmpresa","visibleResults","scrollToBottom","setTimeout","appContainer","document","querySelector","scrollContainer","resultadosContainer","nativeElement","scrollTop","scrollHeight","showResults","_this","_asyncToGenerator","i","results","length","push","detectChanges","Promise","resolve","ChangeDetectorRef","ResultadosComponent_Query","ɵɵrepeaterCreate","ResultadosComponent_For_11_Template","ɵɵrepeaterTrackByIdentity","_c1","columnaDerecha","ɵɵpropertyInterpolate","ɵɵrepeater","transform","offset","opacity","_","participante_r3","CargaListadoComponent_Conditional_16_For_2_Template","participantes","premio_r6","nombre","cantidad","CargaListadoComponent_Conditional_27_For_8_Template","premios","_avisoSnackService","participantesOriginal","cantidadTotalPremios","fireStartSorteo","cargarArchivo","event","tipo","target","files","file","fileReader","FileReader","output","self","onload","e","lines","result","split","toString","trim","cargarParticipantes","cargarPremios","readAsText","lowerCase","map","x","toLowerCase","filter","index","indexOf","error","forEach","pair","validarPremios","parseInt","isNaN","masPremiosQueParticipantes","isInvalid","getListados","Array","fill","CargaListadoComponent_Template","CargaListadoComponent_Template_input_change_1_listener","$event","CargaListadoComponent_Template_input_change_3_listener","CargaListadoComponent_Template_button_click_11_listener","inputParticipantes_r2","click","CargaListadoComponent_Conditional_16_Template","CargaListadoComponent_Template_button_click_22_listener","inputPremios_r5","CargaListadoComponent_Conditional_26_Template","CargaListadoComponent_Conditional_27_Template","UntypedFormControl","UntypedFormGroup","Validators","SlotsSorteo2023Component_Conditional_2_Conditional_1_Template_div_click_0_listener","ctx_r1","generateWinner","disableShuffleBtn","SlotsSorteo2023Component_Conditional_2_Conditional_1_Template","ɵɵpureFunction2","sorteando","countDown","wenResults","renderer","el","empresaSorteando","indexPremio","sorteoHasStarted","showParticipante","winnerIndex","winner","config","ConfiguracionRuleta","TESTEANDO_RULETA","TESTEO_CONFIG","microSeg","required","microSeg_agregar","microSeg_suspenso","repetir_N_veces","restarRepeticiones","restarRepeticiones_suspenso","startSorteo","sorteos","setDefaultIntervalValues","disableOkBtn","configureTestInterval","test","getRawValue","empresa","runProcess","_this2","countDownElement","intervalPromise","generateInterval","countdownPromise","runCountdown","all","console","log","_this3","removeClass","offsetWidth","addClass","_this4","empresas","posibleWinnerIndex","Math","floor","random","setWinner","saveResult","splice","shift","JSON","stringify","Renderer2","ElementRef","SlotsSorteo2023Component_Template","SlotsSorteo2023Component_Conditional_1_Template","SlotsSorteo2023Component_Conditional_2_Template","SlotsSorteo2023Component_Conditional_3_Template","intervalInstance","initValue","listadoswen","slotsSorteo","disableStart","comenzarSorteo","wen","Version2023Component_Query","Version2023Component_Template_button_click_9_listener","_c2","matIconRegistry","domSanitizer","addSvgIcon","bypassSecurityTrustResourceUrl","MatIconRegistry","i2","DomSanitizer","environment","production","enableProdMode","__NgCli_bootstrap_1","platformBrowser","bootstrapModule","catch","err"],"sourceRoot":"webpack:///","x_google_ignoreList":[]} \ No newline at end of file diff --git a/docs/polyfills.bc126660f0b9af61.js b/docs/polyfills.bc126660f0b9af61.js new file mode 100644 index 0000000..35fe973 --- /dev/null +++ b/docs/polyfills.bc126660f0b9af61.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksorteo_wen=self.webpackChunksorteo_wen||[]).push([[461],{50:(te,Q,ve)=>{ve(935)},935:()=>{const te=globalThis;function Q(e){return(te.__Zone_symbol_prefix||"__zone_symbol__")+e}const Te=Object.getOwnPropertyDescriptor,Le=Object.defineProperty,Ie=Object.getPrototypeOf,_t=Object.create,Et=Array.prototype.slice,Me="addEventListener",Ze="removeEventListener",Ae=Q(Me),je=Q(Ze),ae="true",le="false",Pe=Q("");function He(e,r){return Zone.current.wrap(e,r)}function xe(e,r,c,t,i){return Zone.current.scheduleMacroTask(e,r,c,t,i)}const j=Q,Ce=typeof window<"u",ge=Ce?window:void 0,$=Ce&&ge||globalThis,Tt="removeAttribute";function Ve(e,r){for(let c=e.length-1;c>=0;c--)"function"==typeof e[c]&&(e[c]=He(e[c],r+"_"+c));return e}function We(e){return!e||!1!==e.writable&&!("function"==typeof e.get&&typeof e.set>"u")}const qe=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope,De=!("nw"in $)&&typeof $.process<"u"&&"[object process]"===$.process.toString(),Ge=!De&&!qe&&!(!Ce||!ge.HTMLElement),Xe=typeof $.process<"u"&&"[object process]"===$.process.toString()&&!qe&&!(!Ce||!ge.HTMLElement),Se={},yt=j("enable_beforeunload"),Ye=function(e){if(!(e=e||$.event))return;let r=Se[e.type];r||(r=Se[e.type]=j("ON_PROPERTY"+e.type));const c=this||e.target||$,t=c[r];let i;return Ge&&c===ge&&"error"===e.type?(i=t&&t.call(this,e.message,e.filename,e.lineno,e.colno,e.error),!0===i&&e.preventDefault()):(i=t&&t.apply(this,arguments),"beforeunload"===e.type&&$[yt]&&"string"==typeof i?e.returnValue=i:null!=i&&!i&&e.preventDefault()),i};function $e(e,r,c){let t=Te(e,r);if(!t&&c&&Te(c,r)&&(t={enumerable:!0,configurable:!0}),!t||!t.configurable)return;const i=j("on"+r+"patched");if(e.hasOwnProperty(i)&&e[i])return;delete t.writable,delete t.value;const u=t.get,E=t.set,T=r.slice(2);let m=Se[T];m||(m=Se[T]=j("ON_PROPERTY"+T)),t.set=function(D){let d=this;!d&&e===$&&(d=$),d&&("function"==typeof d[m]&&d.removeEventListener(T,Ye),E&&E.call(d,null),d[m]=D,"function"==typeof D&&d.addEventListener(T,Ye,!1))},t.get=function(){let D=this;if(!D&&e===$&&(D=$),!D)return null;const d=D[m];if(d)return d;if(u){let w=u.call(this);if(w)return t.set.call(this,w),"function"==typeof D[Tt]&&D.removeAttribute(r),w}return null},Le(e,r,t),e[i]=!0}function Ke(e,r,c){if(r)for(let t=0;tfunction(E,T){const m=c(E,T);return m.cbIdx>=0&&"function"==typeof T[m.cbIdx]?xe(m.name,T[m.cbIdx],m,i):u.apply(E,T)})}function fe(e,r){e[j("OriginalDelegate")]=r}let Je=!1,Be=!1;function kt(){if(Je)return Be;Je=!0;try{const e=ge.navigator.userAgent;(-1!==e.indexOf("MSIE ")||-1!==e.indexOf("Trident/")||-1!==e.indexOf("Edge/"))&&(Be=!0)}catch{}return Be}function Qe(e){return"function"==typeof e}function et(e){return"number"==typeof e}let ye=!1;if(typeof window<"u")try{const e=Object.defineProperty({},"passive",{get:function(){ye=!0}});window.addEventListener("test",e,e),window.removeEventListener("test",e,e)}catch{ye=!1}const vt={useG:!0},ne={},tt={},nt=new RegExp("^"+Pe+"(\\w+)(true|false)$"),rt=j("propagationStopped");function ot(e,r){const c=(r?r(e):e)+le,t=(r?r(e):e)+ae,i=Pe+c,u=Pe+t;ne[e]={},ne[e][le]=i,ne[e][ae]=u}function bt(e,r,c,t){const i=t&&t.add||Me,u=t&&t.rm||Ze,E=t&&t.listeners||"eventListeners",T=t&&t.rmAll||"removeAllListeners",m=j(i),D="."+i+":",d="prependListener",w="."+d+":",Z=function(k,h,H){if(k.isRemoved)return;const V=k.callback;let Y;"object"==typeof V&&V.handleEvent&&(k.callback=g=>V.handleEvent(g),k.originalDelegate=V);try{k.invoke(k,h,[H])}catch(g){Y=g}const G=k.options;return G&&"object"==typeof G&&G.once&&h[u].call(h,H.type,k.originalDelegate?k.originalDelegate:k.callback,G),Y};function x(k,h,H){if(!(h=h||e.event))return;const V=k||h.target||e,Y=V[ne[h.type][H?ae:le]];if(Y){const G=[];if(1===Y.length){const g=Z(Y[0],V,h);g&&G.push(g)}else{const g=Y.slice();for(let z=0;z{throw z})}}}const U=function(k){return x(this,k,!1)},K=function(k){return x(this,k,!0)};function J(k,h){if(!k)return!1;let H=!0;h&&void 0!==h.useG&&(H=h.useG);const V=h&&h.vh;let Y=!0;h&&void 0!==h.chkDup&&(Y=h.chkDup);let G=!1;h&&void 0!==h.rt&&(G=h.rt);let g=k;for(;g&&!g.hasOwnProperty(i);)g=Ie(g);if(!g&&k[i]&&(g=k),!g||g[m])return!1;const z=h&&h.eventNameToString,O={},R=g[m]=g[i],b=g[j(u)]=g[u],S=g[j(E)]=g[E],ee=g[j(T)]=g[T];let W;h&&h.prepend&&(W=g[j(h.prepend)]=g[h.prepend]);const q=H?function(s){if(!O.isExisting)return R.call(O.target,O.eventName,O.capture?K:U,O.options)}:function(s){return R.call(O.target,O.eventName,s.invoke,O.options)},A=H?function(s){if(!s.isRemoved){const l=ne[s.eventName];let v;l&&(v=l[s.capture?ae:le]);const C=v&&s.target[v];if(C)for(let y=0;yse.zone.cancelTask(se);s.call(pe,"abort",ce,{once:!0}),se.removeAbortListener=()=>pe.removeEventListener("abort",ce)}return O.target=null,Re&&(Re.taskData=null),lt&&(O.options.once=!0),!ye&&"boolean"==typeof se.options||(se.options=ie),se.target=I,se.capture=Ue,se.eventName=M,F&&(se.originalDelegate=B),L?ke.unshift(se):ke.push(se),y?I:void 0}};return g[i]=a(R,D,q,A,G),W&&(g[d]=a(W,w,function(s){return W.call(O.target,O.eventName,s.invoke,O.options)},A,G,!0)),g[u]=function(){const s=this||e;let l=arguments[0];h&&h.transferEventName&&(l=h.transferEventName(l));const v=arguments[2],C=!!v&&("boolean"==typeof v||v.capture),y=arguments[1];if(!y)return b.apply(this,arguments);if(V&&!V(b,y,s,arguments))return;const L=ne[l];let I;L&&(I=L[C?ae:le]);const M=I&&s[I];if(M)for(let B=0;Bfunction(i,u){i[rt]=!0,t&&t.apply(i,u)})}const Oe=j("zoneTask");function me(e,r,c,t){let i=null,u=null;c+=t;const E={};function T(D){const d=D.data;d.args[0]=function(){return D.invoke.apply(this,arguments)};const w=i.apply(e,d.args);return et(w)?d.handleId=w:(d.handle=w,d.isRefreshable=Qe(w.refresh)),D}function m(D){const{handle:d,handleId:w}=D.data;return u.call(e,d??w)}i=ue(e,r+=t,D=>function(d,w){if(Qe(w[0])){const Z={isRefreshable:!1,isPeriodic:"Interval"===t,delay:"Timeout"===t||"Interval"===t?w[1]||0:void 0,args:w},x=w[0];w[0]=function(){try{return x.apply(this,arguments)}finally{const{handle:H,handleId:V,isPeriodic:Y,isRefreshable:G}=Z;!Y&&!G&&(V?delete E[V]:H&&(H[Oe]=null))}};const U=xe(r,w[0],Z,T,m);if(!U)return U;const{handleId:K,handle:J,isRefreshable:X,isPeriodic:k}=U.data;if(K)E[K]=U;else if(J&&(J[Oe]=U,X&&!k)){const h=J.refresh;J.refresh=function(){const{zone:H,state:V}=U;return"notScheduled"===V?(U._state="scheduled",H._updateTaskCount(U,1)):"running"===V&&(U._state="scheduling"),h.call(this)}}return J??K??U}return D.apply(e,w)}),u=ue(e,c,D=>function(d,w){const Z=w[0];let x;et(Z)?(x=E[Z],delete E[Z]):(x=Z?.[Oe],x?Z[Oe]=null:x=Z),x?.type?x.cancelFn&&x.zone.cancelTask(x):D.apply(e,w)})}function it(e,r,c){if(!c||0===c.length)return r;const t=c.filter(u=>u.target===e);if(!t||0===t.length)return r;const i=t[0].ignoreProperties;return r.filter(u=>-1===i.indexOf(u))}function ct(e,r,c,t){e&&Ke(e,it(e,r,c),t)}function Fe(e){return Object.getOwnPropertyNames(e).filter(r=>r.startsWith("on")&&r.length>2).map(r=>r.substring(2))}function It(e,r,c,t,i){const u=Zone.__symbol__(t);if(r[u])return;const E=r[u]=r[t];r[t]=function(T,m,D){return m&&m.prototype&&i.forEach(function(d){const w=`${c}.${t}::`+d,Z=m.prototype;try{if(Z.hasOwnProperty(d)){const x=e.ObjectGetOwnPropertyDescriptor(Z,d);x&&x.value?(x.value=e.wrapWithCurrentZone(x.value,w),e._redefineProperty(m.prototype,d,x)):Z[d]&&(Z[d]=e.wrapWithCurrentZone(Z[d],w))}else Z[d]&&(Z[d]=e.wrapWithCurrentZone(Z[d],w))}catch{}}),E.call(r,T,m,D)},e.attachOriginToPatched(r[t],E)}const at=function be(){const e=globalThis,r=!0===e[Q("forceDuplicateZoneCheck")];if(e.Zone&&(r||"function"!=typeof e.Zone.__symbol__))throw new Error("Zone already loaded.");return e.Zone??=function ve(){const e=te.performance;function r(N){e&&e.mark&&e.mark(N)}function c(N,_){e&&e.measure&&e.measure(N,_)}r("Zone");let t=(()=>{class N{static{this.__symbol__=Q}static assertZonePatched(){if(te.Promise!==O.ZoneAwarePromise)throw new Error("Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)")}static get root(){let n=N.current;for(;n.parent;)n=n.parent;return n}static get current(){return b.zone}static get currentTask(){return S}static __load_patch(n,o,p=!1){if(O.hasOwnProperty(n)){const P=!0===te[Q("forceDuplicateZoneCheck")];if(!p&&P)throw Error("Already loaded patch: "+n)}else if(!te["__Zone_disable_"+n]){const P="Zone:"+n;r(P),O[n]=o(te,N,R),c(P,P)}}get parent(){return this._parent}get name(){return this._name}constructor(n,o){this._parent=n,this._name=o?o.name||"unnamed":"",this._properties=o&&o.properties||{},this._zoneDelegate=new u(this,this._parent&&this._parent._zoneDelegate,o)}get(n){const o=this.getZoneWith(n);if(o)return o._properties[n]}getZoneWith(n){let o=this;for(;o;){if(o._properties.hasOwnProperty(n))return o;o=o._parent}return null}fork(n){if(!n)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,n)}wrap(n,o){if("function"!=typeof n)throw new Error("Expecting function got: "+n);const p=this._zoneDelegate.intercept(this,n,o),P=this;return function(){return P.runGuarded(p,this,arguments,o)}}run(n,o,p,P){b={parent:b,zone:this};try{return this._zoneDelegate.invoke(this,n,o,p,P)}finally{b=b.parent}}runGuarded(n,o=null,p,P){b={parent:b,zone:this};try{try{return this._zoneDelegate.invoke(this,n,o,p,P)}catch(q){if(this._zoneDelegate.handleError(this,q))throw q}}finally{b=b.parent}}runTask(n,o,p){if(n.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(n.zone||J).name+"; Execution: "+this.name+")");const P=n,{type:q,data:{isPeriodic:A=!1,isRefreshable:_e=!1}={}}=n;if(n.state===X&&(q===z||q===g))return;const he=n.state!=H;he&&P._transitionTo(H,h);const de=S;S=P,b={parent:b,zone:this};try{q==g&&n.data&&!A&&!_e&&(n.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,P,o,p)}catch(oe){if(this._zoneDelegate.handleError(this,oe))throw oe}}finally{const oe=n.state;if(oe!==X&&oe!==Y)if(q==z||A||_e&&oe===k)he&&P._transitionTo(h,H,k);else{const f=P._zoneDelegates;this._updateTaskCount(P,-1),he&&P._transitionTo(X,H,X),_e&&(P._zoneDelegates=f)}b=b.parent,S=de}}scheduleTask(n){if(n.zone&&n.zone!==this){let p=this;for(;p;){if(p===n.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${n.zone.name}`);p=p.parent}}n._transitionTo(k,X);const o=[];n._zoneDelegates=o,n._zone=this;try{n=this._zoneDelegate.scheduleTask(this,n)}catch(p){throw n._transitionTo(Y,k,X),this._zoneDelegate.handleError(this,p),p}return n._zoneDelegates===o&&this._updateTaskCount(n,1),n.state==k&&n._transitionTo(h,k),n}scheduleMicroTask(n,o,p,P){return this.scheduleTask(new E(G,n,o,p,P,void 0))}scheduleMacroTask(n,o,p,P,q){return this.scheduleTask(new E(g,n,o,p,P,q))}scheduleEventTask(n,o,p,P,q){return this.scheduleTask(new E(z,n,o,p,P,q))}cancelTask(n){if(n.zone!=this)throw new Error("A task can only be cancelled in the zone of creation! (Creation: "+(n.zone||J).name+"; Execution: "+this.name+")");if(n.state===h||n.state===H){n._transitionTo(V,h,H);try{this._zoneDelegate.cancelTask(this,n)}catch(o){throw n._transitionTo(Y,V),this._zoneDelegate.handleError(this,o),o}return this._updateTaskCount(n,-1),n._transitionTo(X,V),n.runCount=-1,n}}_updateTaskCount(n,o){const p=n._zoneDelegates;-1==o&&(n._zoneDelegates=null);for(let P=0;PN.hasTask(n,o),onScheduleTask:(N,_,n,o)=>N.scheduleTask(n,o),onInvokeTask:(N,_,n,o,p,P)=>N.invokeTask(n,o,p,P),onCancelTask:(N,_,n,o)=>N.cancelTask(n,o)};class u{get zone(){return this._zone}constructor(_,n,o){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this._zone=_,this._parentDelegate=n,this._forkZS=o&&(o&&o.onFork?o:n._forkZS),this._forkDlgt=o&&(o.onFork?n:n._forkDlgt),this._forkCurrZone=o&&(o.onFork?this._zone:n._forkCurrZone),this._interceptZS=o&&(o.onIntercept?o:n._interceptZS),this._interceptDlgt=o&&(o.onIntercept?n:n._interceptDlgt),this._interceptCurrZone=o&&(o.onIntercept?this._zone:n._interceptCurrZone),this._invokeZS=o&&(o.onInvoke?o:n._invokeZS),this._invokeDlgt=o&&(o.onInvoke?n:n._invokeDlgt),this._invokeCurrZone=o&&(o.onInvoke?this._zone:n._invokeCurrZone),this._handleErrorZS=o&&(o.onHandleError?o:n._handleErrorZS),this._handleErrorDlgt=o&&(o.onHandleError?n:n._handleErrorDlgt),this._handleErrorCurrZone=o&&(o.onHandleError?this._zone:n._handleErrorCurrZone),this._scheduleTaskZS=o&&(o.onScheduleTask?o:n._scheduleTaskZS),this._scheduleTaskDlgt=o&&(o.onScheduleTask?n:n._scheduleTaskDlgt),this._scheduleTaskCurrZone=o&&(o.onScheduleTask?this._zone:n._scheduleTaskCurrZone),this._invokeTaskZS=o&&(o.onInvokeTask?o:n._invokeTaskZS),this._invokeTaskDlgt=o&&(o.onInvokeTask?n:n._invokeTaskDlgt),this._invokeTaskCurrZone=o&&(o.onInvokeTask?this._zone:n._invokeTaskCurrZone),this._cancelTaskZS=o&&(o.onCancelTask?o:n._cancelTaskZS),this._cancelTaskDlgt=o&&(o.onCancelTask?n:n._cancelTaskDlgt),this._cancelTaskCurrZone=o&&(o.onCancelTask?this._zone:n._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const p=o&&o.onHasTask;(p||n&&n._hasTaskZS)&&(this._hasTaskZS=p?o:i,this._hasTaskDlgt=n,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=this._zone,o.onScheduleTask||(this._scheduleTaskZS=i,this._scheduleTaskDlgt=n,this._scheduleTaskCurrZone=this._zone),o.onInvokeTask||(this._invokeTaskZS=i,this._invokeTaskDlgt=n,this._invokeTaskCurrZone=this._zone),o.onCancelTask||(this._cancelTaskZS=i,this._cancelTaskDlgt=n,this._cancelTaskCurrZone=this._zone))}fork(_,n){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,_,n):new t(_,n)}intercept(_,n,o){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,_,n,o):n}invoke(_,n,o,p,P){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,_,n,o,p,P):n.apply(o,p)}handleError(_,n){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,_,n)}scheduleTask(_,n){let o=n;if(this._scheduleTaskZS)this._hasTaskZS&&o._zoneDelegates.push(this._hasTaskDlgtOwner),o=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,_,n),o||(o=n);else if(n.scheduleFn)n.scheduleFn(n);else{if(n.type!=G)throw new Error("Task is missing scheduleFn.");U(n)}return o}invokeTask(_,n,o,p){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,_,n,o,p):n.callback.apply(o,p)}cancelTask(_,n){let o;if(this._cancelTaskZS)o=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,_,n);else{if(!n.cancelFn)throw Error("Task is not cancelable");o=n.cancelFn(n)}return o}hasTask(_,n){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,_,n)}catch(o){this.handleError(_,o)}}_updateTaskCount(_,n){const o=this._taskCounts,p=o[_],P=o[_]=p+n;if(P<0)throw new Error("More tasks executed then were scheduled.");0!=p&&0!=P||this.hasTask(this._zone,{microTask:o.microTask>0,macroTask:o.macroTask>0,eventTask:o.eventTask>0,change:_})}}class E{constructor(_,n,o,p,P,q){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state="notScheduled",this.type=_,this.source=n,this.data=p,this.scheduleFn=P,this.cancelFn=q,!o)throw new Error("callback is not defined");this.callback=o;const A=this;this.invoke=_===z&&p&&p.useG?E.invokeTask:function(){return E.invokeTask.call(te,A,this,arguments)}}static invokeTask(_,n,o){_||(_=this),ee++;try{return _.runCount++,_.zone.runTask(_,n,o)}finally{1==ee&&K(),ee--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(X,k)}_transitionTo(_,n,o){if(this._state!==n&&this._state!==o)throw new Error(`${this.type} '${this.source}': can not transition to '${_}', expecting state '${n}'${o?" or '"+o+"'":""}, was '${this._state}'.`);this._state=_,_==X&&(this._zoneDelegates=null)}toString(){return this.data&&typeof this.data.handleId<"u"?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const T=Q("setTimeout"),m=Q("Promise"),D=Q("then");let Z,d=[],w=!1;function x(N){if(Z||te[m]&&(Z=te[m].resolve(0)),Z){let _=Z[D];_||(_=Z.then),_.call(Z,N)}else te[T](N,0)}function U(N){0===ee&&0===d.length&&x(K),N&&d.push(N)}function K(){if(!w){for(w=!0;d.length;){const N=d;d=[];for(let _=0;_b,onUnhandledError:W,microtaskDrainDone:W,scheduleMicroTask:U,showUncaughtError:()=>!t[Q("ignoreConsoleErrorUncaughtError")],patchEventTarget:()=>[],patchOnProperties:W,patchMethod:()=>W,bindArguments:()=>[],patchThen:()=>W,patchMacroTask:()=>W,patchEventPrototype:()=>W,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>W,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>W,wrapWithCurrentZone:()=>W,filterProperties:()=>[],attachOriginToPatched:()=>W,_redefineProperty:()=>W,patchCallbacks:()=>W,nativeScheduleMicroTask:x};let b={parent:null,zone:new t(null,null)},S=null,ee=0;function W(){}return c("Zone","Zone"),t}(),e.Zone}();(function Zt(e){(function Nt(e){e.__load_patch("ZoneAwarePromise",(r,c,t)=>{const i=Object.getOwnPropertyDescriptor,u=Object.defineProperty,T=t.symbol,m=[],D=!1!==r[T("DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION")],d=T("Promise"),w=T("then"),Z="__creationTrace__";t.onUnhandledError=f=>{if(t.showUncaughtError()){const a=f&&f.rejection;a?console.error("Unhandled Promise rejection:",a instanceof Error?a.message:a,"; Zone:",f.zone.name,"; Task:",f.task&&f.task.source,"; Value:",a,a instanceof Error?a.stack:void 0):console.error(f)}},t.microtaskDrainDone=()=>{for(;m.length;){const f=m.shift();try{f.zone.runGuarded(()=>{throw f.throwOriginal?f.rejection:f})}catch(a){U(a)}}};const x=T("unhandledPromiseRejectionHandler");function U(f){t.onUnhandledError(f);try{const a=c[x];"function"==typeof a&&a.call(this,f)}catch{}}function K(f){return f&&f.then}function J(f){return f}function X(f){return A.reject(f)}const k=T("state"),h=T("value"),H=T("finally"),V=T("parentPromiseValue"),Y=T("parentPromiseState"),G="Promise.then",g=null,z=!0,O=!1,R=0;function b(f,a){return s=>{try{N(f,a,s)}catch(l){N(f,!1,l)}}}const S=function(){let f=!1;return function(s){return function(){f||(f=!0,s.apply(null,arguments))}}},ee="Promise resolved with itself",W=T("currentTaskTrace");function N(f,a,s){const l=S();if(f===s)throw new TypeError(ee);if(f[k]===g){let v=null;try{("object"==typeof s||"function"==typeof s)&&(v=s&&s.then)}catch(C){return l(()=>{N(f,!1,C)})(),f}if(a!==O&&s instanceof A&&s.hasOwnProperty(k)&&s.hasOwnProperty(h)&&s[k]!==g)n(s),N(f,s[k],s[h]);else if(a!==O&&"function"==typeof v)try{v.call(s,l(b(f,a)),l(b(f,!1)))}catch(C){l(()=>{N(f,!1,C)})()}else{f[k]=a;const C=f[h];if(f[h]=s,f[H]===H&&a===z&&(f[k]=f[Y],f[h]=f[V]),a===O&&s instanceof Error){const y=c.currentTask&&c.currentTask.data&&c.currentTask.data[Z];y&&u(s,W,{configurable:!0,enumerable:!1,writable:!0,value:y})}for(let y=0;y{try{const L=f[h],I=!!s&&H===s[H];I&&(s[V]=L,s[Y]=C);const M=a.run(y,void 0,I&&y!==X&&y!==J?[]:[L]);N(s,!0,M)}catch(L){N(s,!1,L)}},s)}const P=function(){},q=r.AggregateError;class A{static toString(){return"function ZoneAwarePromise() { [native code] }"}static resolve(a){return a instanceof A?a:N(new this(null),z,a)}static reject(a){return N(new this(null),O,a)}static withResolvers(){const a={};return a.promise=new A((s,l)=>{a.resolve=s,a.reject=l}),a}static any(a){if(!a||"function"!=typeof a[Symbol.iterator])return Promise.reject(new q([],"All promises were rejected"));const s=[];let l=0;try{for(let y of a)l++,s.push(A.resolve(y))}catch{return Promise.reject(new q([],"All promises were rejected"))}if(0===l)return Promise.reject(new q([],"All promises were rejected"));let v=!1;const C=[];return new A((y,L)=>{for(let I=0;I{v||(v=!0,y(M))},M=>{C.push(M),l--,0===l&&(v=!0,L(new q(C,"All promises were rejected")))})})}static race(a){let s,l,v=new this((L,I)=>{s=L,l=I});function C(L){s(L)}function y(L){l(L)}for(let L of a)K(L)||(L=this.resolve(L)),L.then(C,y);return v}static all(a){return A.allWithCallback(a)}static allSettled(a){return(this&&this.prototype instanceof A?this:A).allWithCallback(a,{thenCallback:l=>({status:"fulfilled",value:l}),errorCallback:l=>({status:"rejected",reason:l})})}static allWithCallback(a,s){let l,v,C=new this((M,B)=>{l=M,v=B}),y=2,L=0;const I=[];for(let M of a){K(M)||(M=this.resolve(M));const B=L;try{M.then(F=>{I[B]=s?s.thenCallback(F):F,y--,0===y&&l(I)},F=>{s?(I[B]=s.errorCallback(F),y--,0===y&&l(I)):v(F)})}catch(F){v(F)}y++,L++}return y-=2,0===y&&l(I),C}constructor(a){const s=this;if(!(s instanceof A))throw new Error("Must be an instanceof Promise.");s[k]=g,s[h]=[];try{const l=S();a&&a(l(b(s,z)),l(b(s,O)))}catch(l){N(s,!1,l)}}get[Symbol.toStringTag](){return"Promise"}get[Symbol.species](){return A}then(a,s){let l=this.constructor?.[Symbol.species];(!l||"function"!=typeof l)&&(l=this.constructor||A);const v=new l(P),C=c.current;return this[k]==g?this[h].push(C,v,a,s):o(this,C,v,a,s),v}catch(a){return this.then(null,a)}finally(a){let s=this.constructor?.[Symbol.species];(!s||"function"!=typeof s)&&(s=A);const l=new s(P);l[H]=H;const v=c.current;return this[k]==g?this[h].push(v,l,a,a):o(this,v,l,a,a),l}}A.resolve=A.resolve,A.reject=A.reject,A.race=A.race,A.all=A.all;const _e=r[d]=r.Promise;r.Promise=A;const he=T("thenPatched");function de(f){const a=f.prototype,s=i(a,"then");if(s&&(!1===s.writable||!s.configurable))return;const l=a.then;a[w]=l,f.prototype.then=function(v,C){return new A((L,I)=>{l.call(this,L,I)}).then(v,C)},f[he]=!0}return t.patchThen=de,_e&&(de(_e),ue(r,"fetch",f=>function oe(f){return function(a,s){let l=f.apply(a,s);if(l instanceof A)return l;let v=l.constructor;return v[he]||de(v),l}}(f))),Promise[c.__symbol__("uncaughtPromiseErrors")]=m,A})})(e),function Lt(e){e.__load_patch("toString",r=>{const c=Function.prototype.toString,t=j("OriginalDelegate"),i=j("Promise"),u=j("Error"),E=function(){if("function"==typeof this){const d=this[t];if(d)return"function"==typeof d?c.call(d):Object.prototype.toString.call(d);if(this===Promise){const w=r[i];if(w)return c.call(w)}if(this===Error){const w=r[u];if(w)return c.call(w)}}return c.call(this)};E[t]=c,Function.prototype.toString=E;const T=Object.prototype.toString;Object.prototype.toString=function(){return"function"==typeof Promise&&this instanceof Promise?"[object Promise]":T.call(this)}})}(e),function Mt(e){e.__load_patch("util",(r,c,t)=>{const i=Fe(r);t.patchOnProperties=Ke,t.patchMethod=ue,t.bindArguments=Ve,t.patchMacroTask=mt;const u=c.__symbol__("BLACK_LISTED_EVENTS"),E=c.__symbol__("UNPATCHED_EVENTS");r[E]&&(r[u]=r[E]),r[u]&&(c[u]=c[E]=r[u]),t.patchEventPrototype=Pt,t.patchEventTarget=bt,t.isIEOrEdge=kt,t.ObjectDefineProperty=Le,t.ObjectGetOwnPropertyDescriptor=Te,t.ObjectCreate=_t,t.ArraySlice=Et,t.patchClass=we,t.wrapWithCurrentZone=He,t.filterProperties=it,t.attachOriginToPatched=fe,t._redefineProperty=Object.defineProperty,t.patchCallbacks=It,t.getGlobalObjects=()=>({globalSources:tt,zoneSymbolEventNames:ne,eventNames:i,isBrowser:Ge,isMix:Xe,isNode:De,TRUE_STR:ae,FALSE_STR:le,ZONE_SYMBOL_PREFIX:Pe,ADD_EVENT_LISTENER_STR:Me,REMOVE_EVENT_LISTENER_STR:Ze})})}(e)})(at),function Ot(e){e.__load_patch("legacy",r=>{const c=r[e.__symbol__("legacyPatch")];c&&c()}),e.__load_patch("timers",r=>{const c="set",t="clear";me(r,c,t,"Timeout"),me(r,c,t,"Interval"),me(r,c,t,"Immediate")}),e.__load_patch("requestAnimationFrame",r=>{me(r,"request","cancel","AnimationFrame"),me(r,"mozRequest","mozCancel","AnimationFrame"),me(r,"webkitRequest","webkitCancel","AnimationFrame")}),e.__load_patch("blocking",(r,c)=>{const t=["alert","prompt","confirm"];for(let i=0;ifunction(D,d){return c.current.run(E,r,d,m)})}),e.__load_patch("EventTarget",(r,c,t)=>{(function Dt(e,r){r.patchEventPrototype(e,r)})(r,t),function Ct(e,r){if(Zone[r.symbol("patchEventTarget")])return;const{eventNames:c,zoneSymbolEventNames:t,TRUE_STR:i,FALSE_STR:u,ZONE_SYMBOL_PREFIX:E}=r.getGlobalObjects();for(let m=0;m{we("MutationObserver"),we("WebKitMutationObserver")}),e.__load_patch("IntersectionObserver",(r,c,t)=>{we("IntersectionObserver")}),e.__load_patch("FileReader",(r,c,t)=>{we("FileReader")}),e.__load_patch("on_property",(r,c,t)=>{!function St(e,r){if(De&&!Xe||Zone[e.symbol("patchEvents")])return;const c=r.__Zone_ignore_on_properties;let t=[];if(Ge){const i=window;t=t.concat(["Document","SVGElement","Element","HTMLElement","HTMLBodyElement","HTMLMediaElement","HTMLFrameSetElement","HTMLFrameElement","HTMLIFrameElement","HTMLMarqueeElement","Worker"]);const u=function pt(){try{const e=ge.navigator.userAgent;if(-1!==e.indexOf("MSIE ")||-1!==e.indexOf("Trident/"))return!0}catch{}return!1}()?[{target:i,ignoreProperties:["error"]}]:[];ct(i,Fe(i),c&&c.concat(u),Ie(i))}t=t.concat(["XMLHttpRequest","XMLHttpRequestEventTarget","IDBIndex","IDBRequest","IDBOpenDBRequest","IDBDatabase","IDBTransaction","IDBCursor","WebSocket"]);for(let i=0;i{!function Rt(e,r){const{isBrowser:c,isMix:t}=r.getGlobalObjects();(c||t)&&e.customElements&&"customElements"in e&&r.patchCallbacks(r,e.customElements,"customElements","define",["connectedCallback","disconnectedCallback","adoptedCallback","attributeChangedCallback","formAssociatedCallback","formDisabledCallback","formResetCallback","formStateRestoreCallback"])}(r,t)}),e.__load_patch("XHR",(r,c)=>{!function D(d){const w=d.XMLHttpRequest;if(!w)return;const Z=w.prototype;let U=Z[Ae],K=Z[je];if(!U){const R=d.XMLHttpRequestEventTarget;if(R){const b=R.prototype;U=b[Ae],K=b[je]}}const J="readystatechange",X="scheduled";function k(R){const b=R.data,S=b.target;S[E]=!1,S[m]=!1;const ee=S[u];U||(U=S[Ae],K=S[je]),ee&&K.call(S,J,ee);const W=S[u]=()=>{if(S.readyState===S.DONE)if(!b.aborted&&S[E]&&R.state===X){const _=S[c.__symbol__("loadfalse")];if(0!==S.status&&_&&_.length>0){const n=R.invoke;R.invoke=function(){const o=S[c.__symbol__("loadfalse")];for(let p=0;pfunction(R,b){return R[i]=0==b[2],R[T]=b[1],V.apply(R,b)}),G=j("fetchTaskAborting"),g=j("fetchTaskScheduling"),z=ue(Z,"send",()=>function(R,b){if(!0===c.current[g]||R[i])return z.apply(R,b);{const S={target:R,url:R[T],isPeriodic:!1,args:b,aborted:!1},ee=xe("XMLHttpRequest.send",h,S,k,H);R&&!0===R[m]&&!S.aborted&&ee.state===X&&ee.invoke()}}),O=ue(Z,"abort",()=>function(R,b){const S=function x(R){return R[t]}(R);if(S&&"string"==typeof S.type){if(null==S.cancelFn||S.data&&S.data.aborted)return;S.zone.cancelTask(S)}else if(!0===c.current[G])return O.apply(R,b)})}(r);const t=j("xhrTask"),i=j("xhrSync"),u=j("xhrListener"),E=j("xhrScheduled"),T=j("xhrURL"),m=j("xhrErrorBeforeScheduled")}),e.__load_patch("geolocation",r=>{r.navigator&&r.navigator.geolocation&&function gt(e,r){const c=e.constructor.name;for(let t=0;t{const m=function(){return T.apply(this,Ve(arguments,c+"."+i))};return fe(m,T),m})(u)}}}(r.navigator.geolocation,["getCurrentPosition","watchPosition"])}),e.__load_patch("PromiseRejectionEvent",(r,c)=>{function t(i){return function(u){st(r,i).forEach(T=>{const m=r.PromiseRejectionEvent;if(m){const D=new m(i,{promise:u.promise,reason:u.rejection});T.invoke(D)}})}}r.PromiseRejectionEvent&&(c[j("unhandledPromiseRejectionHandler")]=t("unhandledrejection"),c[j("rejectionHandledHandler")]=t("rejectionhandled"))}),e.__load_patch("queueMicrotask",(r,c,t)=>{!function wt(e,r){r.patchMethod(e,"queueMicrotask",c=>function(t,i){Zone.current.scheduleMicroTask("queueMicrotask",i[0])})}(r,t)})}(at)}},te=>{te(te.s=50)}]); \ No newline at end of file diff --git a/docs/polyfills.js b/docs/polyfills.js deleted file mode 100644 index 6508b43..0000000 --- a/docs/polyfills.js +++ /dev/null @@ -1,2919 +0,0 @@ -"use strict"; -(self["webpackChunksorteo_wen"] = self["webpackChunksorteo_wen"] || []).push([["polyfills"],{ - -/***/ 4050: -/*!**************************!*\ - !*** ./src/polyfills.ts ***! - \**************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var zone_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! zone.js */ 4124); -/* harmony import */ var zone_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(zone_js__WEBPACK_IMPORTED_MODULE_0__); -/** - * 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 recent versions of Safari, Chrome (including - * Opera), Edge on the desktop, and iOS and Chrome on mobile. - * - * Learn more in https://angular.io/guide/browser-support - */ -/*************************************************************************************************** - * BROWSER POLYFILLS - */ -/** - * 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'; - * - * 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__UNPATCHED_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. - */ - // Included with Angular CLI. -/*************************************************************************************************** - * APPLICATION IMPORTS - */ - -/***/ }), - -/***/ 4124: -/*!***********************************************!*\ - !*** ./node_modules/zone.js/fesm2015/zone.js ***! - \***********************************************/ -/***/ (() => { - - - -/** - * @license Angular v - * (c) 2010-2024 Google LLC. https://angular.io/ - * License: MIT - */ -const global = globalThis; -// __Zone_symbol_prefix global can be used to override the default zone -// symbol prefix with a custom one if needed. -function __symbol__(name) { - const symbolPrefix = global['__Zone_symbol_prefix'] || '__zone_symbol__'; - return symbolPrefix + name; -} -function initZone() { - const performance = global['performance']; - function mark(name) { - performance && performance['mark'] && performance['mark'](name); - } - function performanceMeasure(name, label) { - performance && performance['measure'] && performance['measure'](name, label); - } - mark('Zone'); - class ZoneImpl { - // tslint:disable-next-line:require-internal-with-underscore - static { - this.__symbol__ = __symbol__; - } - static assertZonePatched() { - if (global['Promise'] !== patches['ZoneAwarePromise']) { - throw new Error('Zone.js has detected that ZoneAwarePromise `(window|global).Promise` ' + 'has been overwritten.\n' + 'Most likely cause is that a Promise polyfill has been loaded ' + 'after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. ' + 'If you must load one, do so before loading zone.js.)'); - } - } - static get root() { - let zone = ZoneImpl.current; - while (zone.parent) { - zone = zone.parent; - } - return zone; - } - static get current() { - return _currentZoneFrame.zone; - } - static get currentTask() { - return _currentTask; - } - // tslint:disable-next-line:require-internal-with-underscore - static __load_patch(name, fn, ignoreDuplicate = false) { - if (patches.hasOwnProperty(name)) { - // `checkDuplicate` option is defined from global variable - // so it works for all modules. - // `ignoreDuplicate` can work for the specified module - const checkDuplicate = global[__symbol__('forceDuplicateZoneCheck')] === true; - if (!ignoreDuplicate && checkDuplicate) { - throw Error('Already loaded patch: ' + name); - } - } else if (!global['__Zone_disable_' + name]) { - const perfName = 'Zone:' + name; - mark(perfName); - patches[name] = fn(global, ZoneImpl, _api); - performanceMeasure(perfName, perfName); - } - } - get parent() { - return this._parent; - } - get name() { - return this._name; - } - constructor(parent, zoneSpec) { - this._parent = parent; - this._name = zoneSpec ? zoneSpec.name || 'unnamed' : ''; - this._properties = zoneSpec && zoneSpec.properties || {}; - this._zoneDelegate = new _ZoneDelegate(this, this._parent && this._parent._zoneDelegate, zoneSpec); - } - get(key) { - const zone = this.getZoneWith(key); - if (zone) return zone._properties[key]; - } - getZoneWith(key) { - let current = this; - while (current) { - if (current._properties.hasOwnProperty(key)) { - return current; - } - current = current._parent; - } - return null; - } - fork(zoneSpec) { - if (!zoneSpec) throw new Error('ZoneSpec required!'); - return this._zoneDelegate.fork(this, zoneSpec); - } - wrap(callback, source) { - if (typeof callback !== 'function') { - throw new Error('Expecting function got: ' + callback); - } - const _callback = this._zoneDelegate.intercept(this, callback, source); - const zone = this; - return function () { - return zone.runGuarded(_callback, this, arguments, source); - }; - } - run(callback, applyThis, applyArgs, source) { - _currentZoneFrame = { - parent: _currentZoneFrame, - zone: this - }; - try { - return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source); - } finally { - _currentZoneFrame = _currentZoneFrame.parent; - } - } - runGuarded(callback, applyThis = null, applyArgs, source) { - _currentZoneFrame = { - parent: _currentZoneFrame, - zone: this - }; - try { - try { - return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source); - } catch (error) { - if (this._zoneDelegate.handleError(this, error)) { - throw error; - } - } - } finally { - _currentZoneFrame = _currentZoneFrame.parent; - } - } - runTask(task, applyThis, applyArgs) { - if (task.zone != this) { - throw new Error('A task can only be run in the zone of creation! (Creation: ' + (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')'); - } - const zoneTask = task; - // https://github.com/angular/zone.js/issues/778, sometimes eventTask - // will run in notScheduled(canceled) state, we should not try to - // run such kind of task but just return - const { - type, - data: { - isPeriodic = false, - isRefreshable = false - } = {} - } = task; - if (task.state === notScheduled && (type === eventTask || type === macroTask)) { - return; - } - const reEntryGuard = task.state != running; - reEntryGuard && zoneTask._transitionTo(running, scheduled); - const previousTask = _currentTask; - _currentTask = zoneTask; - _currentZoneFrame = { - parent: _currentZoneFrame, - zone: this - }; - try { - if (type == macroTask && task.data && !isPeriodic && !isRefreshable) { - task.cancelFn = undefined; - } - try { - return this._zoneDelegate.invokeTask(this, zoneTask, applyThis, applyArgs); - } catch (error) { - if (this._zoneDelegate.handleError(this, error)) { - throw error; - } - } - } finally { - // if the task's state is notScheduled or unknown, then it has already been cancelled - // we should not reset the state to scheduled - const state = task.state; - if (state !== notScheduled && state !== unknown) { - if (type == eventTask || isPeriodic || isRefreshable && state === scheduling) { - reEntryGuard && zoneTask._transitionTo(scheduled, running, scheduling); - } else { - const zoneDelegates = zoneTask._zoneDelegates; - this._updateTaskCount(zoneTask, -1); - reEntryGuard && zoneTask._transitionTo(notScheduled, running, notScheduled); - if (isRefreshable) { - zoneTask._zoneDelegates = zoneDelegates; - } - } - } - _currentZoneFrame = _currentZoneFrame.parent; - _currentTask = previousTask; - } - } - scheduleTask(task) { - if (task.zone && task.zone !== this) { - // check if the task was rescheduled, the newZone - // should not be the children of the original zone - let newZone = this; - while (newZone) { - if (newZone === task.zone) { - throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${task.zone.name}`); - } - newZone = newZone.parent; - } - } - task._transitionTo(scheduling, notScheduled); - const zoneDelegates = []; - task._zoneDelegates = zoneDelegates; - task._zone = this; - try { - task = this._zoneDelegate.scheduleTask(this, task); - } catch (err) { - // should set task's state to unknown when scheduleTask throw error - // because the err may from reschedule, so the fromState maybe notScheduled - task._transitionTo(unknown, scheduling, notScheduled); - // TODO: @JiaLiPassion, should we check the result from handleError? - this._zoneDelegate.handleError(this, err); - throw err; - } - if (task._zoneDelegates === zoneDelegates) { - // we have to check because internally the delegate can reschedule the task. - this._updateTaskCount(task, 1); - } - if (task.state == scheduling) { - task._transitionTo(scheduled, scheduling); - } - return task; - } - scheduleMicroTask(source, callback, data, customSchedule) { - return this.scheduleTask(new ZoneTask(microTask, source, callback, data, customSchedule, undefined)); - } - scheduleMacroTask(source, callback, data, customSchedule, customCancel) { - return this.scheduleTask(new ZoneTask(macroTask, source, callback, data, customSchedule, customCancel)); - } - scheduleEventTask(source, callback, data, customSchedule, customCancel) { - return this.scheduleTask(new ZoneTask(eventTask, source, callback, data, customSchedule, customCancel)); - } - cancelTask(task) { - if (task.zone != this) throw new Error('A task can only be cancelled in the zone of creation! (Creation: ' + (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')'); - if (task.state !== scheduled && task.state !== running) { - return; - } - task._transitionTo(canceling, scheduled, running); - try { - this._zoneDelegate.cancelTask(this, task); - } catch (err) { - // if error occurs when cancelTask, transit the state to unknown - task._transitionTo(unknown, canceling); - this._zoneDelegate.handleError(this, err); - throw err; - } - this._updateTaskCount(task, -1); - task._transitionTo(notScheduled, canceling); - task.runCount = -1; - return task; - } - _updateTaskCount(task, count) { - const zoneDelegates = task._zoneDelegates; - if (count == -1) { - task._zoneDelegates = null; - } - for (let i = 0; i < zoneDelegates.length; i++) { - zoneDelegates[i]._updateTaskCount(task.type, count); - } - } - } - const DELEGATE_ZS = { - name: '', - onHasTask: (delegate, _, target, hasTaskState) => delegate.hasTask(target, hasTaskState), - onScheduleTask: (delegate, _, target, task) => delegate.scheduleTask(target, task), - onInvokeTask: (delegate, _, target, task, applyThis, applyArgs) => delegate.invokeTask(target, task, applyThis, applyArgs), - onCancelTask: (delegate, _, target, task) => delegate.cancelTask(target, task) - }; - class _ZoneDelegate { - get zone() { - return this._zone; - } - constructor(zone, parentDelegate, zoneSpec) { - this._taskCounts = { - 'microTask': 0, - 'macroTask': 0, - 'eventTask': 0 - }; - this._zone = zone; - this._parentDelegate = parentDelegate; - this._forkZS = zoneSpec && (zoneSpec && zoneSpec.onFork ? zoneSpec : parentDelegate._forkZS); - this._forkDlgt = zoneSpec && (zoneSpec.onFork ? parentDelegate : parentDelegate._forkDlgt); - this._forkCurrZone = zoneSpec && (zoneSpec.onFork ? this._zone : parentDelegate._forkCurrZone); - this._interceptZS = zoneSpec && (zoneSpec.onIntercept ? zoneSpec : parentDelegate._interceptZS); - this._interceptDlgt = zoneSpec && (zoneSpec.onIntercept ? parentDelegate : parentDelegate._interceptDlgt); - this._interceptCurrZone = zoneSpec && (zoneSpec.onIntercept ? this._zone : parentDelegate._interceptCurrZone); - this._invokeZS = zoneSpec && (zoneSpec.onInvoke ? zoneSpec : parentDelegate._invokeZS); - this._invokeDlgt = zoneSpec && (zoneSpec.onInvoke ? parentDelegate : parentDelegate._invokeDlgt); - this._invokeCurrZone = zoneSpec && (zoneSpec.onInvoke ? this._zone : parentDelegate._invokeCurrZone); - this._handleErrorZS = zoneSpec && (zoneSpec.onHandleError ? zoneSpec : parentDelegate._handleErrorZS); - this._handleErrorDlgt = zoneSpec && (zoneSpec.onHandleError ? parentDelegate : parentDelegate._handleErrorDlgt); - this._handleErrorCurrZone = zoneSpec && (zoneSpec.onHandleError ? this._zone : parentDelegate._handleErrorCurrZone); - this._scheduleTaskZS = zoneSpec && (zoneSpec.onScheduleTask ? zoneSpec : parentDelegate._scheduleTaskZS); - this._scheduleTaskDlgt = zoneSpec && (zoneSpec.onScheduleTask ? parentDelegate : parentDelegate._scheduleTaskDlgt); - this._scheduleTaskCurrZone = zoneSpec && (zoneSpec.onScheduleTask ? this._zone : parentDelegate._scheduleTaskCurrZone); - this._invokeTaskZS = zoneSpec && (zoneSpec.onInvokeTask ? zoneSpec : parentDelegate._invokeTaskZS); - this._invokeTaskDlgt = zoneSpec && (zoneSpec.onInvokeTask ? parentDelegate : parentDelegate._invokeTaskDlgt); - this._invokeTaskCurrZone = zoneSpec && (zoneSpec.onInvokeTask ? this._zone : parentDelegate._invokeTaskCurrZone); - this._cancelTaskZS = zoneSpec && (zoneSpec.onCancelTask ? zoneSpec : parentDelegate._cancelTaskZS); - this._cancelTaskDlgt = zoneSpec && (zoneSpec.onCancelTask ? parentDelegate : parentDelegate._cancelTaskDlgt); - this._cancelTaskCurrZone = zoneSpec && (zoneSpec.onCancelTask ? this._zone : parentDelegate._cancelTaskCurrZone); - this._hasTaskZS = null; - this._hasTaskDlgt = null; - this._hasTaskDlgtOwner = null; - this._hasTaskCurrZone = null; - const zoneSpecHasTask = zoneSpec && zoneSpec.onHasTask; - const parentHasTask = parentDelegate && parentDelegate._hasTaskZS; - if (zoneSpecHasTask || parentHasTask) { - // If we need to report hasTask, than this ZS needs to do ref counting on tasks. In such - // a case all task related interceptors must go through this ZD. We can't short circuit it. - this._hasTaskZS = zoneSpecHasTask ? zoneSpec : DELEGATE_ZS; - this._hasTaskDlgt = parentDelegate; - this._hasTaskDlgtOwner = this; - this._hasTaskCurrZone = this._zone; - if (!zoneSpec.onScheduleTask) { - this._scheduleTaskZS = DELEGATE_ZS; - this._scheduleTaskDlgt = parentDelegate; - this._scheduleTaskCurrZone = this._zone; - } - if (!zoneSpec.onInvokeTask) { - this._invokeTaskZS = DELEGATE_ZS; - this._invokeTaskDlgt = parentDelegate; - this._invokeTaskCurrZone = this._zone; - } - if (!zoneSpec.onCancelTask) { - this._cancelTaskZS = DELEGATE_ZS; - this._cancelTaskDlgt = parentDelegate; - this._cancelTaskCurrZone = this._zone; - } - } - } - fork(targetZone, zoneSpec) { - return this._forkZS ? this._forkZS.onFork(this._forkDlgt, this.zone, targetZone, zoneSpec) : new ZoneImpl(targetZone, zoneSpec); - } - intercept(targetZone, callback, source) { - return this._interceptZS ? this._interceptZS.onIntercept(this._interceptDlgt, this._interceptCurrZone, targetZone, callback, source) : callback; - } - invoke(targetZone, callback, applyThis, applyArgs, source) { - return this._invokeZS ? this._invokeZS.onInvoke(this._invokeDlgt, this._invokeCurrZone, targetZone, callback, applyThis, applyArgs, source) : callback.apply(applyThis, applyArgs); - } - handleError(targetZone, error) { - return this._handleErrorZS ? this._handleErrorZS.onHandleError(this._handleErrorDlgt, this._handleErrorCurrZone, targetZone, error) : true; - } - scheduleTask(targetZone, task) { - let returnTask = task; - if (this._scheduleTaskZS) { - if (this._hasTaskZS) { - returnTask._zoneDelegates.push(this._hasTaskDlgtOwner); - } - returnTask = this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt, this._scheduleTaskCurrZone, targetZone, task); - if (!returnTask) returnTask = task; - } else { - if (task.scheduleFn) { - task.scheduleFn(task); - } else if (task.type == microTask) { - scheduleMicroTask(task); - } else { - throw new Error('Task is missing scheduleFn.'); - } - } - return returnTask; - } - invokeTask(targetZone, task, applyThis, applyArgs) { - return this._invokeTaskZS ? this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt, this._invokeTaskCurrZone, targetZone, task, applyThis, applyArgs) : task.callback.apply(applyThis, applyArgs); - } - cancelTask(targetZone, task) { - let value; - if (this._cancelTaskZS) { - value = this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt, this._cancelTaskCurrZone, targetZone, task); - } else { - if (!task.cancelFn) { - throw Error('Task is not cancelable'); - } - value = task.cancelFn(task); - } - return value; - } - hasTask(targetZone, isEmpty) { - // hasTask should not throw error so other ZoneDelegate - // can still trigger hasTask callback - try { - this._hasTaskZS && this._hasTaskZS.onHasTask(this._hasTaskDlgt, this._hasTaskCurrZone, targetZone, isEmpty); - } catch (err) { - this.handleError(targetZone, err); - } - } - // tslint:disable-next-line:require-internal-with-underscore - _updateTaskCount(type, count) { - const counts = this._taskCounts; - const prev = counts[type]; - const next = counts[type] = prev + count; - if (next < 0) { - throw new Error('More tasks executed then were scheduled.'); - } - if (prev == 0 || next == 0) { - const isEmpty = { - microTask: counts['microTask'] > 0, - macroTask: counts['macroTask'] > 0, - eventTask: counts['eventTask'] > 0, - change: type - }; - this.hasTask(this._zone, isEmpty); - } - } - } - class ZoneTask { - constructor(type, source, callback, options, scheduleFn, cancelFn) { - // tslint:disable-next-line:require-internal-with-underscore - this._zone = null; - this.runCount = 0; - // tslint:disable-next-line:require-internal-with-underscore - this._zoneDelegates = null; - // tslint:disable-next-line:require-internal-with-underscore - this._state = 'notScheduled'; - this.type = type; - this.source = source; - this.data = options; - this.scheduleFn = scheduleFn; - this.cancelFn = cancelFn; - if (!callback) { - throw new Error('callback is not defined'); - } - this.callback = callback; - const self = this; - // TODO: @JiaLiPassion options should have interface - if (type === eventTask && options && options.useG) { - this.invoke = ZoneTask.invokeTask; - } else { - this.invoke = function () { - return ZoneTask.invokeTask.call(global, self, this, arguments); - }; - } - } - static invokeTask(task, target, args) { - if (!task) { - task = this; - } - _numberOfNestedTaskFrames++; - try { - task.runCount++; - return task.zone.runTask(task, target, args); - } finally { - if (_numberOfNestedTaskFrames == 1) { - drainMicroTaskQueue(); - } - _numberOfNestedTaskFrames--; - } - } - get zone() { - return this._zone; - } - get state() { - return this._state; - } - cancelScheduleRequest() { - this._transitionTo(notScheduled, scheduling); - } - // tslint:disable-next-line:require-internal-with-underscore - _transitionTo(toState, fromState1, fromState2) { - if (this._state === fromState1 || this._state === fromState2) { - this._state = toState; - if (toState == notScheduled) { - this._zoneDelegates = null; - } - } else { - throw new Error(`${this.type} '${this.source}': can not transition to '${toState}', expecting state '${fromState1}'${fromState2 ? " or '" + fromState2 + "'" : ''}, was '${this._state}'.`); - } - } - toString() { - if (this.data && typeof this.data.handleId !== 'undefined') { - return this.data.handleId.toString(); - } else { - return Object.prototype.toString.call(this); - } - } - // add toJSON method to prevent cyclic error when - // call JSON.stringify(zoneTask) - toJSON() { - return { - type: this.type, - state: this.state, - source: this.source, - zone: this.zone.name, - runCount: this.runCount - }; - } - } - ////////////////////////////////////////////////////// - ////////////////////////////////////////////////////// - /// MICROTASK QUEUE - ////////////////////////////////////////////////////// - ////////////////////////////////////////////////////// - const symbolSetTimeout = __symbol__('setTimeout'); - const symbolPromise = __symbol__('Promise'); - const symbolThen = __symbol__('then'); - let _microTaskQueue = []; - let _isDrainingMicrotaskQueue = false; - let nativeMicroTaskQueuePromise; - function nativeScheduleMicroTask(func) { - if (!nativeMicroTaskQueuePromise) { - if (global[symbolPromise]) { - nativeMicroTaskQueuePromise = global[symbolPromise].resolve(0); - } - } - if (nativeMicroTaskQueuePromise) { - let nativeThen = nativeMicroTaskQueuePromise[symbolThen]; - if (!nativeThen) { - // native Promise is not patchable, we need to use `then` directly - // issue 1078 - nativeThen = nativeMicroTaskQueuePromise['then']; - } - nativeThen.call(nativeMicroTaskQueuePromise, func); - } else { - global[symbolSetTimeout](func, 0); - } - } - function scheduleMicroTask(task) { - // if we are not running in any task, and there has not been anything scheduled - // we must bootstrap the initial task creation by manually scheduling the drain - if (_numberOfNestedTaskFrames === 0 && _microTaskQueue.length === 0) { - // We are not running in Task, so we need to kickstart the microtask queue. - nativeScheduleMicroTask(drainMicroTaskQueue); - } - task && _microTaskQueue.push(task); - } - function drainMicroTaskQueue() { - if (!_isDrainingMicrotaskQueue) { - _isDrainingMicrotaskQueue = true; - while (_microTaskQueue.length) { - const queue = _microTaskQueue; - _microTaskQueue = []; - for (let i = 0; i < queue.length; i++) { - const task = queue[i]; - try { - task.zone.runTask(task, null, null); - } catch (error) { - _api.onUnhandledError(error); - } - } - } - _api.microtaskDrainDone(); - _isDrainingMicrotaskQueue = false; - } - } - ////////////////////////////////////////////////////// - ////////////////////////////////////////////////////// - /// BOOTSTRAP - ////////////////////////////////////////////////////// - ////////////////////////////////////////////////////// - const NO_ZONE = { - name: 'NO ZONE' - }; - const notScheduled = 'notScheduled', - scheduling = 'scheduling', - scheduled = 'scheduled', - running = 'running', - canceling = 'canceling', - unknown = 'unknown'; - const microTask = 'microTask', - macroTask = 'macroTask', - eventTask = 'eventTask'; - const patches = {}; - const _api = { - symbol: __symbol__, - currentZoneFrame: () => _currentZoneFrame, - onUnhandledError: noop, - microtaskDrainDone: noop, - scheduleMicroTask: scheduleMicroTask, - showUncaughtError: () => !ZoneImpl[__symbol__('ignoreConsoleErrorUncaughtError')], - patchEventTarget: () => [], - patchOnProperties: noop, - patchMethod: () => noop, - bindArguments: () => [], - patchThen: () => noop, - patchMacroTask: () => noop, - patchEventPrototype: () => noop, - isIEOrEdge: () => false, - getGlobalObjects: () => undefined, - ObjectDefineProperty: () => noop, - ObjectGetOwnPropertyDescriptor: () => undefined, - ObjectCreate: () => undefined, - ArraySlice: () => [], - patchClass: () => noop, - wrapWithCurrentZone: () => noop, - filterProperties: () => [], - attachOriginToPatched: () => noop, - _redefineProperty: () => noop, - patchCallbacks: () => noop, - nativeScheduleMicroTask: nativeScheduleMicroTask - }; - let _currentZoneFrame = { - parent: null, - zone: new ZoneImpl(null, null) - }; - let _currentTask = null; - let _numberOfNestedTaskFrames = 0; - function noop() {} - performanceMeasure('Zone', 'Zone'); - return ZoneImpl; -} -function loadZone() { - // if global['Zone'] already exists (maybe zone.js was already loaded or - // some other lib also registered a global object named Zone), we may need - // to throw an error, but sometimes user may not want this error. - // For example, - // we have two web pages, page1 includes zone.js, page2 doesn't. - // and the 1st time user load page1 and page2, everything work fine, - // but when user load page2 again, error occurs because global['Zone'] already exists. - // so we add a flag to let user choose whether to throw this error or not. - // By default, if existing Zone is from zone.js, we will not throw the error. - const global = globalThis; - const checkDuplicate = global[__symbol__('forceDuplicateZoneCheck')] === true; - if (global['Zone'] && (checkDuplicate || typeof global['Zone'].__symbol__ !== 'function')) { - throw new Error('Zone already loaded.'); - } - // Initialize global `Zone` constant. - global['Zone'] ??= initZone(); - return global['Zone']; -} - -/** - * Suppress closure compiler errors about unknown 'Zone' variable - * @fileoverview - * @suppress {undefinedVars,globalThis,missingRequire} - */ -// issue #989, to reduce bundle size, use short name -/** Object.getOwnPropertyDescriptor */ -const ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; -/** Object.defineProperty */ -const ObjectDefineProperty = Object.defineProperty; -/** Object.getPrototypeOf */ -const ObjectGetPrototypeOf = Object.getPrototypeOf; -/** Object.create */ -const ObjectCreate = Object.create; -/** Array.prototype.slice */ -const ArraySlice = Array.prototype.slice; -/** addEventListener string const */ -const ADD_EVENT_LISTENER_STR = 'addEventListener'; -/** removeEventListener string const */ -const REMOVE_EVENT_LISTENER_STR = 'removeEventListener'; -/** zoneSymbol addEventListener */ -const ZONE_SYMBOL_ADD_EVENT_LISTENER = __symbol__(ADD_EVENT_LISTENER_STR); -/** zoneSymbol removeEventListener */ -const ZONE_SYMBOL_REMOVE_EVENT_LISTENER = __symbol__(REMOVE_EVENT_LISTENER_STR); -/** true string const */ -const TRUE_STR = 'true'; -/** false string const */ -const FALSE_STR = 'false'; -/** Zone symbol prefix string const. */ -const ZONE_SYMBOL_PREFIX = __symbol__(''); -function wrapWithCurrentZone(callback, source) { - return Zone.current.wrap(callback, source); -} -function scheduleMacroTaskWithCurrentZone(source, callback, data, customSchedule, customCancel) { - return Zone.current.scheduleMacroTask(source, callback, data, customSchedule, customCancel); -} -const zoneSymbol = __symbol__; -const isWindowExists = typeof window !== 'undefined'; -const internalWindow = isWindowExists ? window : undefined; -const _global = isWindowExists && internalWindow || globalThis; -const REMOVE_ATTRIBUTE = 'removeAttribute'; -function bindArguments(args, source) { - for (let i = args.length - 1; i >= 0; i--) { - if (typeof args[i] === 'function') { - args[i] = wrapWithCurrentZone(args[i], source + '_' + i); - } - } - return args; -} -function patchPrototype(prototype, fnNames) { - const source = prototype.constructor['name']; - for (let i = 0; i < fnNames.length; i++) { - const name = fnNames[i]; - const delegate = prototype[name]; - if (delegate) { - const prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, name); - if (!isPropertyWritable(prototypeDesc)) { - continue; - } - prototype[name] = (delegate => { - const patched = function () { - return delegate.apply(this, bindArguments(arguments, source + '.' + name)); - }; - attachOriginToPatched(patched, delegate); - return patched; - })(delegate); - } - } -} -function isPropertyWritable(propertyDesc) { - if (!propertyDesc) { - return true; - } - if (propertyDesc.writable === false) { - return false; - } - return !(typeof propertyDesc.get === 'function' && typeof propertyDesc.set === 'undefined'); -} -const isWebWorker = typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope; -// Make sure to access `process` through `_global` so that WebPack does not accidentally browserify -// this code. -const isNode = !('nw' in _global) && typeof _global.process !== 'undefined' && _global.process.toString() === '[object process]'; -const isBrowser = !isNode && !isWebWorker && !!(isWindowExists && internalWindow['HTMLElement']); -// we are in electron of nw, so we are both browser and nodejs -// Make sure to access `process` through `_global` so that WebPack does not accidentally browserify -// this code. -const isMix = typeof _global.process !== 'undefined' && _global.process.toString() === '[object process]' && !isWebWorker && !!(isWindowExists && internalWindow['HTMLElement']); -const zoneSymbolEventNames$1 = {}; -const enableBeforeunloadSymbol = zoneSymbol('enable_beforeunload'); -const wrapFn = function (event) { - // https://github.com/angular/zone.js/issues/911, in IE, sometimes - // event will be undefined, so we need to use window.event - event = event || _global.event; - if (!event) { - return; - } - let eventNameSymbol = zoneSymbolEventNames$1[event.type]; - if (!eventNameSymbol) { - eventNameSymbol = zoneSymbolEventNames$1[event.type] = zoneSymbol('ON_PROPERTY' + event.type); - } - const target = this || event.target || _global; - const listener = target[eventNameSymbol]; - let result; - if (isBrowser && target === internalWindow && event.type === 'error') { - // window.onerror have different signature - // https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror#window.onerror - // and onerror callback will prevent default when callback return true - const errorEvent = event; - result = listener && listener.call(this, errorEvent.message, errorEvent.filename, errorEvent.lineno, errorEvent.colno, errorEvent.error); - if (result === true) { - event.preventDefault(); - } - } else { - result = listener && listener.apply(this, arguments); - if ( - // https://github.com/angular/angular/issues/47579 - // https://www.w3.org/TR/2011/WD-html5-20110525/history.html#beforeunloadevent - // This is the only specific case we should check for. The spec defines that the - // `returnValue` attribute represents the message to show the user. When the event - // is created, this attribute must be set to the empty string. - event.type === 'beforeunload' && - // To prevent any breaking changes resulting from this change, given that - // it was already causing a significant number of failures in G3, we have hidden - // that behavior behind a global configuration flag. Consumers can enable this - // flag explicitly if they want the `beforeunload` event to be handled as defined - // in the specification. - _global[enableBeforeunloadSymbol] && - // The IDL event definition is `attribute DOMString returnValue`, so we check whether - // `typeof result` is a string. - typeof result === 'string') { - event.returnValue = result; - } else if (result != undefined && !result) { - event.preventDefault(); - } - } - return result; -}; -function patchProperty(obj, prop, prototype) { - let desc = ObjectGetOwnPropertyDescriptor(obj, prop); - if (!desc && prototype) { - // when patch window object, use prototype to check prop exist or not - const prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, prop); - if (prototypeDesc) { - desc = { - enumerable: true, - configurable: true - }; - } - } - // if the descriptor not exists or is not configurable - // just return - if (!desc || !desc.configurable) { - return; - } - const onPropPatchedSymbol = zoneSymbol('on' + prop + 'patched'); - if (obj.hasOwnProperty(onPropPatchedSymbol) && obj[onPropPatchedSymbol]) { - return; - } - // A property descriptor cannot have getter/setter and be writable - // deleting the writable and value properties avoids this error: - // - // TypeError: property descriptors must not specify a value or be writable when a - // getter or setter has been specified - delete desc.writable; - delete desc.value; - const originalDescGet = desc.get; - const originalDescSet = desc.set; - // slice(2) cuz 'onclick' -> 'click', etc - const eventName = prop.slice(2); - let eventNameSymbol = zoneSymbolEventNames$1[eventName]; - if (!eventNameSymbol) { - eventNameSymbol = zoneSymbolEventNames$1[eventName] = zoneSymbol('ON_PROPERTY' + eventName); - } - desc.set = function (newValue) { - // in some of windows's onproperty callback, this is undefined - // so we need to check it - let target = this; - if (!target && obj === _global) { - target = _global; - } - if (!target) { - return; - } - const previousValue = target[eventNameSymbol]; - if (typeof previousValue === 'function') { - target.removeEventListener(eventName, wrapFn); - } - // issue #978, when onload handler was added before loading zone.js - // we should remove it with originalDescSet - originalDescSet && originalDescSet.call(target, null); - target[eventNameSymbol] = newValue; - if (typeof newValue === 'function') { - target.addEventListener(eventName, wrapFn, false); - } - }; - // The getter would return undefined for unassigned properties but the default value of an - // unassigned property is null - desc.get = function () { - // in some of windows's onproperty callback, this is undefined - // so we need to check it - let target = this; - if (!target && obj === _global) { - target = _global; - } - if (!target) { - return null; - } - const listener = target[eventNameSymbol]; - if (listener) { - return listener; - } else if (originalDescGet) { - // result will be null when use inline event attribute, - // such as - // because the onclick function is internal raw uncompiled handler - // the onclick will be evaluated when first time event was triggered or - // the property is accessed, https://github.com/angular/zone.js/issues/525 - // so we should use original native get to retrieve the handler - let value = originalDescGet.call(this); - if (value) { - desc.set.call(this, value); - if (typeof target[REMOVE_ATTRIBUTE] === 'function') { - target.removeAttribute(prop); - } - return value; - } - } - return null; - }; - ObjectDefineProperty(obj, prop, desc); - obj[onPropPatchedSymbol] = true; -} -function patchOnProperties(obj, properties, prototype) { - if (properties) { - for (let i = 0; i < properties.length; i++) { - patchProperty(obj, 'on' + properties[i], prototype); - } - } else { - const onProperties = []; - for (const prop in obj) { - if (prop.slice(0, 2) == 'on') { - onProperties.push(prop); - } - } - for (let j = 0; j < onProperties.length; j++) { - patchProperty(obj, onProperties[j], prototype); - } - } -} -const originalInstanceKey = zoneSymbol('originalInstance'); -// wrap some native API on `window` -function patchClass(className) { - const OriginalClass = _global[className]; - if (!OriginalClass) return; - // keep original class in global - _global[zoneSymbol(className)] = OriginalClass; - _global[className] = function () { - const a = bindArguments(arguments, className); - switch (a.length) { - case 0: - this[originalInstanceKey] = new OriginalClass(); - break; - case 1: - this[originalInstanceKey] = new OriginalClass(a[0]); - break; - case 2: - this[originalInstanceKey] = new OriginalClass(a[0], a[1]); - break; - case 3: - this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2]); - break; - case 4: - this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2], a[3]); - break; - default: - throw new Error('Arg list too long.'); - } - }; - // attach original delegate to patched function - attachOriginToPatched(_global[className], OriginalClass); - const instance = new OriginalClass(function () {}); - let prop; - for (prop in instance) { - // https://bugs.webkit.org/show_bug.cgi?id=44721 - if (className === 'XMLHttpRequest' && prop === 'responseBlob') continue; - (function (prop) { - if (typeof instance[prop] === 'function') { - _global[className].prototype[prop] = function () { - return this[originalInstanceKey][prop].apply(this[originalInstanceKey], arguments); - }; - } else { - ObjectDefineProperty(_global[className].prototype, prop, { - set: function (fn) { - if (typeof fn === 'function') { - this[originalInstanceKey][prop] = wrapWithCurrentZone(fn, className + '.' + prop); - // keep callback in wrapped function so we can - // use it in Function.prototype.toString to return - // the native one. - attachOriginToPatched(this[originalInstanceKey][prop], fn); - } else { - this[originalInstanceKey][prop] = fn; - } - }, - get: function () { - return this[originalInstanceKey][prop]; - } - }); - } - })(prop); - } - for (prop in OriginalClass) { - if (prop !== 'prototype' && OriginalClass.hasOwnProperty(prop)) { - _global[className][prop] = OriginalClass[prop]; - } - } -} -function patchMethod(target, name, patchFn) { - let proto = target; - while (proto && !proto.hasOwnProperty(name)) { - proto = ObjectGetPrototypeOf(proto); - } - if (!proto && target[name]) { - // somehow we did not find it, but we can see it. This happens on IE for Window properties. - proto = target; - } - const delegateName = zoneSymbol(name); - let delegate = null; - if (proto && (!(delegate = proto[delegateName]) || !proto.hasOwnProperty(delegateName))) { - delegate = proto[delegateName] = proto[name]; - // check whether proto[name] is writable - // some property is readonly in safari, such as HtmlCanvasElement.prototype.toBlob - const desc = proto && ObjectGetOwnPropertyDescriptor(proto, name); - if (isPropertyWritable(desc)) { - const patchDelegate = patchFn(delegate, delegateName, name); - proto[name] = function () { - return patchDelegate(this, arguments); - }; - attachOriginToPatched(proto[name], delegate); - } - } - return delegate; -} -// TODO: @JiaLiPassion, support cancel task later if necessary -function patchMacroTask(obj, funcName, metaCreator) { - let setNative = null; - function scheduleTask(task) { - const data = task.data; - data.args[data.cbIdx] = function () { - task.invoke.apply(this, arguments); - }; - setNative.apply(data.target, data.args); - return task; - } - setNative = patchMethod(obj, funcName, delegate => function (self, args) { - const meta = metaCreator(self, args); - if (meta.cbIdx >= 0 && typeof args[meta.cbIdx] === 'function') { - return scheduleMacroTaskWithCurrentZone(meta.name, args[meta.cbIdx], meta, scheduleTask); - } else { - // cause an error by calling it directly. - return delegate.apply(self, args); - } - }); -} -function attachOriginToPatched(patched, original) { - patched[zoneSymbol('OriginalDelegate')] = original; -} -let isDetectedIEOrEdge = false; -let ieOrEdge = false; -function isIE() { - try { - const ua = internalWindow.navigator.userAgent; - if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1) { - return true; - } - } catch (error) {} - return false; -} -function isIEOrEdge() { - if (isDetectedIEOrEdge) { - return ieOrEdge; - } - isDetectedIEOrEdge = true; - try { - const ua = internalWindow.navigator.userAgent; - if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1 || ua.indexOf('Edge/') !== -1) { - ieOrEdge = true; - } - } catch (error) {} - return ieOrEdge; -} -function isFunction(value) { - return typeof value === 'function'; -} -function isNumber(value) { - return typeof value === 'number'; -} - -/** - * @fileoverview - * @suppress {missingRequire} - */ -// Note that passive event listeners are now supported by most modern browsers, -// including Chrome, Firefox, Safari, and Edge. There's a pending change that -// would remove support for legacy browsers by zone.js. Removing `passiveSupported` -// from the codebase will reduce the final code size for existing apps that still use zone.js. -let passiveSupported = false; -if (typeof window !== 'undefined') { - try { - const options = Object.defineProperty({}, 'passive', { - get: function () { - passiveSupported = true; - } - }); - // Note: We pass the `options` object as the event handler too. This is not compatible with the - // signature of `addEventListener` or `removeEventListener` but enables us to remove the handler - // without an actual handler. - window.addEventListener('test', options, options); - window.removeEventListener('test', options, options); - } catch (err) { - passiveSupported = false; - } -} -// an identifier to tell ZoneTask do not create a new invoke closure -const OPTIMIZED_ZONE_EVENT_TASK_DATA = { - useG: true -}; -const zoneSymbolEventNames = {}; -const globalSources = {}; -const EVENT_NAME_SYMBOL_REGX = new RegExp('^' + ZONE_SYMBOL_PREFIX + '(\\w+)(true|false)$'); -const IMMEDIATE_PROPAGATION_SYMBOL = zoneSymbol('propagationStopped'); -function prepareEventNames(eventName, eventNameToString) { - const falseEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + FALSE_STR; - const trueEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + TRUE_STR; - const symbol = ZONE_SYMBOL_PREFIX + falseEventName; - const symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName; - zoneSymbolEventNames[eventName] = {}; - zoneSymbolEventNames[eventName][FALSE_STR] = symbol; - zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture; -} -function patchEventTarget(_global, api, apis, patchOptions) { - const ADD_EVENT_LISTENER = patchOptions && patchOptions.add || ADD_EVENT_LISTENER_STR; - const REMOVE_EVENT_LISTENER = patchOptions && patchOptions.rm || REMOVE_EVENT_LISTENER_STR; - const LISTENERS_EVENT_LISTENER = patchOptions && patchOptions.listeners || 'eventListeners'; - const REMOVE_ALL_LISTENERS_EVENT_LISTENER = patchOptions && patchOptions.rmAll || 'removeAllListeners'; - const zoneSymbolAddEventListener = zoneSymbol(ADD_EVENT_LISTENER); - const ADD_EVENT_LISTENER_SOURCE = '.' + ADD_EVENT_LISTENER + ':'; - const PREPEND_EVENT_LISTENER = 'prependListener'; - const PREPEND_EVENT_LISTENER_SOURCE = '.' + PREPEND_EVENT_LISTENER + ':'; - const invokeTask = function (task, target, event) { - // for better performance, check isRemoved which is set - // by removeEventListener - if (task.isRemoved) { - return; - } - const delegate = task.callback; - if (typeof delegate === 'object' && delegate.handleEvent) { - // create the bind version of handleEvent when invoke - task.callback = event => delegate.handleEvent(event); - task.originalDelegate = delegate; - } - // invoke static task.invoke - // need to try/catch error here, otherwise, the error in one event listener - // will break the executions of the other event listeners. Also error will - // not remove the event listener when `once` options is true. - let error; - try { - task.invoke(task, target, [event]); - } catch (err) { - error = err; - } - const options = task.options; - if (options && typeof options === 'object' && options.once) { - // if options.once is true, after invoke once remove listener here - // only browser need to do this, nodejs eventEmitter will cal removeListener - // inside EventEmitter.once - const delegate = task.originalDelegate ? task.originalDelegate : task.callback; - target[REMOVE_EVENT_LISTENER].call(target, event.type, delegate, options); - } - return error; - }; - function globalCallback(context, event, isCapture) { - // https://github.com/angular/zone.js/issues/911, in IE, sometimes - // event will be undefined, so we need to use window.event - event = event || _global.event; - if (!event) { - return; - } - // event.target is needed for Samsung TV and SourceBuffer - // || global is needed https://github.com/angular/zone.js/issues/190 - const target = context || event.target || _global; - const tasks = target[zoneSymbolEventNames[event.type][isCapture ? TRUE_STR : FALSE_STR]]; - if (tasks) { - const errors = []; - // invoke all tasks which attached to current target with given event.type and capture = false - // for performance concern, if task.length === 1, just invoke - if (tasks.length === 1) { - const err = invokeTask(tasks[0], target, event); - err && errors.push(err); - } else { - // https://github.com/angular/zone.js/issues/836 - // copy the tasks array before invoke, to avoid - // the callback will remove itself or other listener - const copyTasks = tasks.slice(); - for (let i = 0; i < copyTasks.length; i++) { - if (event && event[IMMEDIATE_PROPAGATION_SYMBOL] === true) { - break; - } - const err = invokeTask(copyTasks[i], target, event); - err && errors.push(err); - } - } - // Since there is only one error, we don't need to schedule microTask - // to throw the error. - if (errors.length === 1) { - throw errors[0]; - } else { - for (let i = 0; i < errors.length; i++) { - const err = errors[i]; - api.nativeScheduleMicroTask(() => { - throw err; - }); - } - } - } - } - // global shared zoneAwareCallback to handle all event callback with capture = false - const globalZoneAwareCallback = function (event) { - return globalCallback(this, event, false); - }; - // global shared zoneAwareCallback to handle all event callback with capture = true - const globalZoneAwareCaptureCallback = function (event) { - return globalCallback(this, event, true); - }; - function patchEventTargetMethods(obj, patchOptions) { - if (!obj) { - return false; - } - let useGlobalCallback = true; - if (patchOptions && patchOptions.useG !== undefined) { - useGlobalCallback = patchOptions.useG; - } - const validateHandler = patchOptions && patchOptions.vh; - let checkDuplicate = true; - if (patchOptions && patchOptions.chkDup !== undefined) { - checkDuplicate = patchOptions.chkDup; - } - let returnTarget = false; - if (patchOptions && patchOptions.rt !== undefined) { - returnTarget = patchOptions.rt; - } - let proto = obj; - while (proto && !proto.hasOwnProperty(ADD_EVENT_LISTENER)) { - proto = ObjectGetPrototypeOf(proto); - } - if (!proto && obj[ADD_EVENT_LISTENER]) { - // somehow we did not find it, but we can see it. This happens on IE for Window properties. - proto = obj; - } - if (!proto) { - return false; - } - if (proto[zoneSymbolAddEventListener]) { - return false; - } - const eventNameToString = patchOptions && patchOptions.eventNameToString; - // We use a shared global `taskData` to pass data for `scheduleEventTask`, - // eliminating the need to create a new object solely for passing data. - // WARNING: This object has a static lifetime, meaning it is not created - // each time `addEventListener` is called. It is instantiated only once - // and captured by reference inside the `addEventListener` and - // `removeEventListener` functions. Do not add any new properties to this - // object, as doing so would necessitate maintaining the information - // between `addEventListener` calls. - const taskData = {}; - const nativeAddEventListener = proto[zoneSymbolAddEventListener] = proto[ADD_EVENT_LISTENER]; - const nativeRemoveEventListener = proto[zoneSymbol(REMOVE_EVENT_LISTENER)] = proto[REMOVE_EVENT_LISTENER]; - const nativeListeners = proto[zoneSymbol(LISTENERS_EVENT_LISTENER)] = proto[LISTENERS_EVENT_LISTENER]; - const nativeRemoveAllListeners = proto[zoneSymbol(REMOVE_ALL_LISTENERS_EVENT_LISTENER)] = proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER]; - let nativePrependEventListener; - if (patchOptions && patchOptions.prepend) { - nativePrependEventListener = proto[zoneSymbol(patchOptions.prepend)] = proto[patchOptions.prepend]; - } - /** - * This util function will build an option object with passive option - * to handle all possible input from the user. - */ - function buildEventListenerOptions(options, passive) { - if (!passiveSupported && typeof options === 'object' && options) { - // doesn't support passive but user want to pass an object as options. - // this will not work on some old browser, so we just pass a boolean - // as useCapture parameter - return !!options.capture; - } - if (!passiveSupported || !passive) { - return options; - } - if (typeof options === 'boolean') { - return { - capture: options, - passive: true - }; - } - if (!options) { - return { - passive: true - }; - } - if (typeof options === 'object' && options.passive !== false) { - return { - ...options, - passive: true - }; - } - return options; - } - const customScheduleGlobal = function (task) { - // if there is already a task for the eventName + capture, - // just return, because we use the shared globalZoneAwareCallback here. - if (taskData.isExisting) { - return; - } - return nativeAddEventListener.call(taskData.target, taskData.eventName, taskData.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, taskData.options); - }; - /** - * In the context of events and listeners, this function will be - * called at the end by `cancelTask`, which, in turn, calls `task.cancelFn`. - * Cancelling a task is primarily used to remove event listeners from - * the task target. - */ - const customCancelGlobal = function (task) { - // if task is not marked as isRemoved, this call is directly - // from Zone.prototype.cancelTask, we should remove the task - // from tasksList of target first - if (!task.isRemoved) { - const symbolEventNames = zoneSymbolEventNames[task.eventName]; - let symbolEventName; - if (symbolEventNames) { - symbolEventName = symbolEventNames[task.capture ? TRUE_STR : FALSE_STR]; - } - const existingTasks = symbolEventName && task.target[symbolEventName]; - if (existingTasks) { - for (let i = 0; i < existingTasks.length; i++) { - const existingTask = existingTasks[i]; - if (existingTask === task) { - existingTasks.splice(i, 1); - // set isRemoved to data for faster invokeTask check - task.isRemoved = true; - if (task.removeAbortListener) { - task.removeAbortListener(); - task.removeAbortListener = null; - } - if (existingTasks.length === 0) { - // all tasks for the eventName + capture have gone, - // remove globalZoneAwareCallback and remove the task cache from target - task.allRemoved = true; - task.target[symbolEventName] = null; - } - break; - } - } - } - } - // if all tasks for the eventName + capture have gone, - // we will really remove the global event callback, - // if not, return - if (!task.allRemoved) { - return; - } - return nativeRemoveEventListener.call(task.target, task.eventName, task.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, task.options); - }; - const customScheduleNonGlobal = function (task) { - return nativeAddEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options); - }; - const customSchedulePrepend = function (task) { - return nativePrependEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options); - }; - const customCancelNonGlobal = function (task) { - return nativeRemoveEventListener.call(task.target, task.eventName, task.invoke, task.options); - }; - const customSchedule = useGlobalCallback ? customScheduleGlobal : customScheduleNonGlobal; - const customCancel = useGlobalCallback ? customCancelGlobal : customCancelNonGlobal; - const compareTaskCallbackVsDelegate = function (task, delegate) { - const typeOfDelegate = typeof delegate; - return typeOfDelegate === 'function' && task.callback === delegate || typeOfDelegate === 'object' && task.originalDelegate === delegate; - }; - const compare = patchOptions && patchOptions.diff ? patchOptions.diff : compareTaskCallbackVsDelegate; - const unpatchedEvents = Zone[zoneSymbol('UNPATCHED_EVENTS')]; - const passiveEvents = _global[zoneSymbol('PASSIVE_EVENTS')]; - function copyEventListenerOptions(options) { - if (typeof options === 'object' && options !== null) { - // We need to destructure the target `options` object since it may - // be frozen or sealed (possibly provided implicitly by a third-party - // library), or its properties may be readonly. - const newOptions = { - ...options - }; - // The `signal` option was recently introduced, which caused regressions in - // third-party scenarios where `AbortController` was directly provided to - // `addEventListener` as options. For instance, in cases like - // `document.addEventListener('keydown', callback, abortControllerInstance)`, - // which is valid because `AbortController` includes a `signal` getter, spreading - // `{...options}` wouldn't copy the `signal`. Additionally, using `Object.create` - // isn't feasible since `AbortController` is a built-in object type, and attempting - // to create a new object directly with it as the prototype might result in - // unexpected behavior. - if (options.signal) { - newOptions.signal = options.signal; - } - return newOptions; - } - return options; - } - const makeAddListener = function (nativeListener, addSource, customScheduleFn, customCancelFn, returnTarget = false, prepend = false) { - return function () { - const target = this || _global; - let eventName = arguments[0]; - if (patchOptions && patchOptions.transferEventName) { - eventName = patchOptions.transferEventName(eventName); - } - let delegate = arguments[1]; - if (!delegate) { - return nativeListener.apply(this, arguments); - } - if (isNode && eventName === 'uncaughtException') { - // don't patch uncaughtException of nodejs to prevent endless loop - return nativeListener.apply(this, arguments); - } - // don't create the bind delegate function for handleEvent - // case here to improve addEventListener performance - // we will create the bind delegate when invoke - let isHandleEvent = false; - if (typeof delegate !== 'function') { - if (!delegate.handleEvent) { - return nativeListener.apply(this, arguments); - } - isHandleEvent = true; - } - if (validateHandler && !validateHandler(nativeListener, delegate, target, arguments)) { - return; - } - const passive = passiveSupported && !!passiveEvents && passiveEvents.indexOf(eventName) !== -1; - const options = copyEventListenerOptions(buildEventListenerOptions(arguments[2], passive)); - const signal = options?.signal; - if (signal?.aborted) { - // the signal is an aborted one, just return without attaching the event listener. - return; - } - if (unpatchedEvents) { - // check unpatched list - for (let i = 0; i < unpatchedEvents.length; i++) { - if (eventName === unpatchedEvents[i]) { - if (passive) { - return nativeListener.call(target, eventName, delegate, options); - } else { - return nativeListener.apply(this, arguments); - } - } - } - } - const capture = !options ? false : typeof options === 'boolean' ? true : options.capture; - const once = options && typeof options === 'object' ? options.once : false; - const zone = Zone.current; - let symbolEventNames = zoneSymbolEventNames[eventName]; - if (!symbolEventNames) { - prepareEventNames(eventName, eventNameToString); - symbolEventNames = zoneSymbolEventNames[eventName]; - } - const symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR]; - let existingTasks = target[symbolEventName]; - let isExisting = false; - if (existingTasks) { - // already have task registered - isExisting = true; - if (checkDuplicate) { - for (let i = 0; i < existingTasks.length; i++) { - if (compare(existingTasks[i], delegate)) { - // same callback, same capture, same event name, just return - return; - } - } - } - } else { - existingTasks = target[symbolEventName] = []; - } - let source; - const constructorName = target.constructor['name']; - const targetSource = globalSources[constructorName]; - if (targetSource) { - source = targetSource[eventName]; - } - if (!source) { - source = constructorName + addSource + (eventNameToString ? eventNameToString(eventName) : eventName); - } - // In the code below, `options` should no longer be reassigned; instead, it - // should only be mutated. This is because we pass that object to the native - // `addEventListener`. - // It's generally recommended to use the same object reference for options. - // This ensures consistency and avoids potential issues. - taskData.options = options; - if (once) { - // When using `addEventListener` with the `once` option, we don't pass - // the `once` option directly to the native `addEventListener` method. - // Instead, we keep the `once` setting and handle it ourselves. - taskData.options.once = false; - } - taskData.target = target; - taskData.capture = capture; - taskData.eventName = eventName; - taskData.isExisting = isExisting; - const data = useGlobalCallback ? OPTIMIZED_ZONE_EVENT_TASK_DATA : undefined; - // keep taskData into data to allow onScheduleEventTask to access the task information - if (data) { - data.taskData = taskData; - } - if (signal) { - // When using `addEventListener` with the `signal` option, we don't pass - // the `signal` option directly to the native `addEventListener` method. - // Instead, we keep the `signal` setting and handle it ourselves. - taskData.options.signal = undefined; - } - // The `scheduleEventTask` function will ultimately call `customScheduleGlobal`, - // which in turn calls the native `addEventListener`. This is why `taskData.options` - // is updated before scheduling the task, as `customScheduleGlobal` uses - // `taskData.options` to pass it to the native `addEventListener`. - const task = zone.scheduleEventTask(source, delegate, data, customScheduleFn, customCancelFn); - if (signal) { - // after task is scheduled, we need to store the signal back to task.options - taskData.options.signal = signal; - // Wrapping `task` in a weak reference would not prevent memory leaks. Weak references are - // primarily used for preventing strong references cycles. `onAbort` is always reachable - // as it's an event listener, so its closure retains a strong reference to the `task`. - const onAbort = () => task.zone.cancelTask(task); - nativeListener.call(signal, 'abort', onAbort, { - once: true - }); - // We need to remove the `abort` listener when the event listener is going to be removed, - // as it creates a closure that captures `task`. This closure retains a reference to the - // `task` object even after it goes out of scope, preventing `task` from being garbage - // collected. - task.removeAbortListener = () => signal.removeEventListener('abort', onAbort); - } - // should clear taskData.target to avoid memory leak - // issue, https://github.com/angular/angular/issues/20442 - taskData.target = null; - // need to clear up taskData because it is a global object - if (data) { - data.taskData = null; - } - // have to save those information to task in case - // application may call task.zone.cancelTask() directly - if (once) { - taskData.options.once = true; - } - if (!(!passiveSupported && typeof task.options === 'boolean')) { - // if not support passive, and we pass an option object - // to addEventListener, we should save the options to task - task.options = options; - } - task.target = target; - task.capture = capture; - task.eventName = eventName; - if (isHandleEvent) { - // save original delegate for compare to check duplicate - task.originalDelegate = delegate; - } - if (!prepend) { - existingTasks.push(task); - } else { - existingTasks.unshift(task); - } - if (returnTarget) { - return target; - } - }; - }; - proto[ADD_EVENT_LISTENER] = makeAddListener(nativeAddEventListener, ADD_EVENT_LISTENER_SOURCE, customSchedule, customCancel, returnTarget); - if (nativePrependEventListener) { - proto[PREPEND_EVENT_LISTENER] = makeAddListener(nativePrependEventListener, PREPEND_EVENT_LISTENER_SOURCE, customSchedulePrepend, customCancel, returnTarget, true); - } - proto[REMOVE_EVENT_LISTENER] = function () { - const target = this || _global; - let eventName = arguments[0]; - if (patchOptions && patchOptions.transferEventName) { - eventName = patchOptions.transferEventName(eventName); - } - const options = arguments[2]; - const capture = !options ? false : typeof options === 'boolean' ? true : options.capture; - const delegate = arguments[1]; - if (!delegate) { - return nativeRemoveEventListener.apply(this, arguments); - } - if (validateHandler && !validateHandler(nativeRemoveEventListener, delegate, target, arguments)) { - return; - } - const symbolEventNames = zoneSymbolEventNames[eventName]; - let symbolEventName; - if (symbolEventNames) { - symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR]; - } - const existingTasks = symbolEventName && target[symbolEventName]; - // `existingTasks` may not exist if the `addEventListener` was called before - // it was patched by zone.js. Please refer to the attached issue for - // clarification, particularly after the `if` condition, before calling - // the native `removeEventListener`. - if (existingTasks) { - for (let i = 0; i < existingTasks.length; i++) { - const existingTask = existingTasks[i]; - if (compare(existingTask, delegate)) { - existingTasks.splice(i, 1); - // set isRemoved to data for faster invokeTask check - existingTask.isRemoved = true; - if (existingTasks.length === 0) { - // all tasks for the eventName + capture have gone, - // remove globalZoneAwareCallback and remove the task cache from target - existingTask.allRemoved = true; - target[symbolEventName] = null; - // in the target, we have an event listener which is added by on_property - // such as target.onclick = function() {}, so we need to clear this internal - // property too if all delegates with capture=false were removed - // https:// github.com/angular/angular/issues/31643 - // https://github.com/angular/angular/issues/54581 - if (!capture && typeof eventName === 'string') { - const onPropertySymbol = ZONE_SYMBOL_PREFIX + 'ON_PROPERTY' + eventName; - target[onPropertySymbol] = null; - } - } - // In all other conditions, when `addEventListener` is called after being - // patched by zone.js, we would always find an event task on the `EventTarget`. - // This will trigger `cancelFn` on the `existingTask`, leading to `customCancelGlobal`, - // which ultimately removes an event listener and cleans up the abort listener - // (if an `AbortSignal` was provided when scheduling a task). - existingTask.zone.cancelTask(existingTask); - if (returnTarget) { - return target; - } - return; - } - } - } - // https://github.com/angular/zone.js/issues/930 - // We may encounter a situation where the `addEventListener` was - // called on the event target before zone.js is loaded, resulting - // in no task being stored on the event target due to its invocation - // of the native implementation. In this scenario, we simply need to - // invoke the native `removeEventListener`. - return nativeRemoveEventListener.apply(this, arguments); - }; - proto[LISTENERS_EVENT_LISTENER] = function () { - const target = this || _global; - let eventName = arguments[0]; - if (patchOptions && patchOptions.transferEventName) { - eventName = patchOptions.transferEventName(eventName); - } - const listeners = []; - const tasks = findEventTasks(target, eventNameToString ? eventNameToString(eventName) : eventName); - for (let i = 0; i < tasks.length; i++) { - const task = tasks[i]; - let delegate = task.originalDelegate ? task.originalDelegate : task.callback; - listeners.push(delegate); - } - return listeners; - }; - proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER] = function () { - const target = this || _global; - let eventName = arguments[0]; - if (!eventName) { - const keys = Object.keys(target); - for (let i = 0; i < keys.length; i++) { - const prop = keys[i]; - const match = EVENT_NAME_SYMBOL_REGX.exec(prop); - let evtName = match && match[1]; - // in nodejs EventEmitter, removeListener event is - // used for monitoring the removeListener call, - // so just keep removeListener eventListener until - // all other eventListeners are removed - if (evtName && evtName !== 'removeListener') { - this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, evtName); - } - } - // remove removeListener listener finally - this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, 'removeListener'); - } else { - if (patchOptions && patchOptions.transferEventName) { - eventName = patchOptions.transferEventName(eventName); - } - const symbolEventNames = zoneSymbolEventNames[eventName]; - if (symbolEventNames) { - const symbolEventName = symbolEventNames[FALSE_STR]; - const symbolCaptureEventName = symbolEventNames[TRUE_STR]; - const tasks = target[symbolEventName]; - const captureTasks = target[symbolCaptureEventName]; - if (tasks) { - const removeTasks = tasks.slice(); - for (let i = 0; i < removeTasks.length; i++) { - const task = removeTasks[i]; - let delegate = task.originalDelegate ? task.originalDelegate : task.callback; - this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options); - } - } - if (captureTasks) { - const removeTasks = captureTasks.slice(); - for (let i = 0; i < removeTasks.length; i++) { - const task = removeTasks[i]; - let delegate = task.originalDelegate ? task.originalDelegate : task.callback; - this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options); - } - } - } - } - if (returnTarget) { - return this; - } - }; - // for native toString patch - attachOriginToPatched(proto[ADD_EVENT_LISTENER], nativeAddEventListener); - attachOriginToPatched(proto[REMOVE_EVENT_LISTENER], nativeRemoveEventListener); - if (nativeRemoveAllListeners) { - attachOriginToPatched(proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER], nativeRemoveAllListeners); - } - if (nativeListeners) { - attachOriginToPatched(proto[LISTENERS_EVENT_LISTENER], nativeListeners); - } - return true; - } - let results = []; - for (let i = 0; i < apis.length; i++) { - results[i] = patchEventTargetMethods(apis[i], patchOptions); - } - return results; -} -function findEventTasks(target, eventName) { - if (!eventName) { - const foundTasks = []; - for (let prop in target) { - const match = EVENT_NAME_SYMBOL_REGX.exec(prop); - let evtName = match && match[1]; - if (evtName && (!eventName || evtName === eventName)) { - const tasks = target[prop]; - if (tasks) { - for (let i = 0; i < tasks.length; i++) { - foundTasks.push(tasks[i]); - } - } - } - } - return foundTasks; - } - let symbolEventName = zoneSymbolEventNames[eventName]; - if (!symbolEventName) { - prepareEventNames(eventName); - symbolEventName = zoneSymbolEventNames[eventName]; - } - const captureFalseTasks = target[symbolEventName[FALSE_STR]]; - const captureTrueTasks = target[symbolEventName[TRUE_STR]]; - if (!captureFalseTasks) { - return captureTrueTasks ? captureTrueTasks.slice() : []; - } else { - return captureTrueTasks ? captureFalseTasks.concat(captureTrueTasks) : captureFalseTasks.slice(); - } -} -function patchEventPrototype(global, api) { - const Event = global['Event']; - if (Event && Event.prototype) { - api.patchMethod(Event.prototype, 'stopImmediatePropagation', delegate => function (self, args) { - self[IMMEDIATE_PROPAGATION_SYMBOL] = true; - // we need to call the native stopImmediatePropagation - // in case in some hybrid application, some part of - // application will be controlled by zone, some are not - delegate && delegate.apply(self, args); - }); - } -} - -/** - * @fileoverview - * @suppress {missingRequire} - */ -function patchQueueMicrotask(global, api) { - api.patchMethod(global, 'queueMicrotask', delegate => { - return function (self, args) { - Zone.current.scheduleMicroTask('queueMicrotask', args[0]); - }; - }); -} - -/** - * @fileoverview - * @suppress {missingRequire} - */ -const taskSymbol = zoneSymbol('zoneTask'); -function patchTimer(window, setName, cancelName, nameSuffix) { - let setNative = null; - let clearNative = null; - setName += nameSuffix; - cancelName += nameSuffix; - const tasksByHandleId = {}; - function scheduleTask(task) { - const data = task.data; - data.args[0] = function () { - return task.invoke.apply(this, arguments); - }; - const handleOrId = setNative.apply(window, data.args); - // Whlist on Node.js when get can the ID by using `[Symbol.toPrimitive]()` we do - // to this so that we do not cause potentally leaks when using `setTimeout` - // since this can be periodic when using `.refresh`. - if (isNumber(handleOrId)) { - data.handleId = handleOrId; - } else { - data.handle = handleOrId; - // On Node.js a timeout and interval can be restarted over and over again by using the `.refresh` method. - data.isRefreshable = isFunction(handleOrId.refresh); - } - return task; - } - function clearTask(task) { - const { - handle, - handleId - } = task.data; - return clearNative.call(window, handle ?? handleId); - } - setNative = patchMethod(window, setName, delegate => function (self, args) { - if (isFunction(args[0])) { - const options = { - isRefreshable: false, - isPeriodic: nameSuffix === 'Interval', - delay: nameSuffix === 'Timeout' || nameSuffix === 'Interval' ? args[1] || 0 : undefined, - args: args - }; - const callback = args[0]; - args[0] = function timer() { - try { - return callback.apply(this, arguments); - } finally { - // issue-934, task will be cancelled - // even it is a periodic task such as - // setInterval - // https://github.com/angular/angular/issues/40387 - // Cleanup tasksByHandleId should be handled before scheduleTask - // Since some zoneSpec may intercept and doesn't trigger - // scheduleFn(scheduleTask) provided here. - const { - handle, - handleId, - isPeriodic, - isRefreshable - } = options; - if (!isPeriodic && !isRefreshable) { - if (handleId) { - // in non-nodejs env, we remove timerId - // from local cache - delete tasksByHandleId[handleId]; - } else if (handle) { - // Node returns complex objects as handleIds - // we remove task reference from timer object - handle[taskSymbol] = null; - } - } - } - }; - const task = scheduleMacroTaskWithCurrentZone(setName, args[0], options, scheduleTask, clearTask); - if (!task) { - return task; - } - // Node.js must additionally support the ref and unref functions. - const { - handleId, - handle, - isRefreshable, - isPeriodic - } = task.data; - if (handleId) { - // for non nodejs env, we save handleId: task - // mapping in local cache for clearTimeout - tasksByHandleId[handleId] = task; - } else if (handle) { - // for nodejs env, we save task - // reference in timerId Object for clearTimeout - handle[taskSymbol] = task; - if (isRefreshable && !isPeriodic) { - const originalRefresh = handle.refresh; - handle.refresh = function () { - const { - zone, - state - } = task; - if (state === 'notScheduled') { - task._state = 'scheduled'; - zone._updateTaskCount(task, 1); - } else if (state === 'running') { - task._state = 'scheduling'; - } - return originalRefresh.call(this); - }; - } - } - return handle ?? handleId ?? task; - } else { - // cause an error by calling it directly. - return delegate.apply(window, args); - } - }); - clearNative = patchMethod(window, cancelName, delegate => function (self, args) { - const id = args[0]; - let task; - if (isNumber(id)) { - // non nodejs env. - task = tasksByHandleId[id]; - delete tasksByHandleId[id]; - } else { - // nodejs env ?? other environments. - task = id?.[taskSymbol]; - if (task) { - id[taskSymbol] = null; - } else { - task = id; - } - } - if (task?.type) { - if (task.cancelFn) { - // Do not cancel already canceled functions - task.zone.cancelTask(task); - } - } else { - // cause an error by calling it directly. - delegate.apply(window, args); - } - }); -} -function patchCustomElements(_global, api) { - const { - isBrowser, - isMix - } = api.getGlobalObjects(); - if (!isBrowser && !isMix || !_global['customElements'] || !('customElements' in _global)) { - return; - } - // https://html.spec.whatwg.org/multipage/custom-elements.html#concept-custom-element-definition-lifecycle-callbacks - const callbacks = ['connectedCallback', 'disconnectedCallback', 'adoptedCallback', 'attributeChangedCallback', 'formAssociatedCallback', 'formDisabledCallback', 'formResetCallback', 'formStateRestoreCallback']; - api.patchCallbacks(api, _global.customElements, 'customElements', 'define', callbacks); -} -function eventTargetPatch(_global, api) { - if (Zone[api.symbol('patchEventTarget')]) { - // EventTarget is already patched. - return; - } - const { - eventNames, - zoneSymbolEventNames, - TRUE_STR, - FALSE_STR, - ZONE_SYMBOL_PREFIX - } = api.getGlobalObjects(); - // predefine all __zone_symbol__ + eventName + true/false string - for (let i = 0; i < eventNames.length; i++) { - const eventName = eventNames[i]; - const falseEventName = eventName + FALSE_STR; - const trueEventName = eventName + TRUE_STR; - const symbol = ZONE_SYMBOL_PREFIX + falseEventName; - const symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName; - zoneSymbolEventNames[eventName] = {}; - zoneSymbolEventNames[eventName][FALSE_STR] = symbol; - zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture; - } - const EVENT_TARGET = _global['EventTarget']; - if (!EVENT_TARGET || !EVENT_TARGET.prototype) { - return; - } - api.patchEventTarget(_global, api, [EVENT_TARGET && EVENT_TARGET.prototype]); - return true; -} -function patchEvent(global, api) { - api.patchEventPrototype(global, api); -} - -/** - * @fileoverview - * @suppress {globalThis} - */ -function filterProperties(target, onProperties, ignoreProperties) { - if (!ignoreProperties || ignoreProperties.length === 0) { - return onProperties; - } - const tip = ignoreProperties.filter(ip => ip.target === target); - if (!tip || tip.length === 0) { - return onProperties; - } - const targetIgnoreProperties = tip[0].ignoreProperties; - return onProperties.filter(op => targetIgnoreProperties.indexOf(op) === -1); -} -function patchFilteredProperties(target, onProperties, ignoreProperties, prototype) { - // check whether target is available, sometimes target will be undefined - // because different browser or some 3rd party plugin. - if (!target) { - return; - } - const filteredProperties = filterProperties(target, onProperties, ignoreProperties); - patchOnProperties(target, filteredProperties, prototype); -} -/** - * Get all event name properties which the event name startsWith `on` - * from the target object itself, inherited properties are not considered. - */ -function getOnEventNames(target) { - return Object.getOwnPropertyNames(target).filter(name => name.startsWith('on') && name.length > 2).map(name => name.substring(2)); -} -function propertyDescriptorPatch(api, _global) { - if (isNode && !isMix) { - return; - } - if (Zone[api.symbol('patchEvents')]) { - // events are already been patched by legacy patch. - return; - } - const ignoreProperties = _global['__Zone_ignore_on_properties']; - // for browsers that we can patch the descriptor: Chrome & Firefox - let patchTargets = []; - if (isBrowser) { - const internalWindow = window; - patchTargets = patchTargets.concat(['Document', 'SVGElement', 'Element', 'HTMLElement', 'HTMLBodyElement', 'HTMLMediaElement', 'HTMLFrameSetElement', 'HTMLFrameElement', 'HTMLIFrameElement', 'HTMLMarqueeElement', 'Worker']); - const ignoreErrorProperties = isIE() ? [{ - target: internalWindow, - ignoreProperties: ['error'] - }] : []; - // in IE/Edge, onProp not exist in window object, but in WindowPrototype - // so we need to pass WindowPrototype to check onProp exist or not - patchFilteredProperties(internalWindow, getOnEventNames(internalWindow), ignoreProperties ? ignoreProperties.concat(ignoreErrorProperties) : ignoreProperties, ObjectGetPrototypeOf(internalWindow)); - } - patchTargets = patchTargets.concat(['XMLHttpRequest', 'XMLHttpRequestEventTarget', 'IDBIndex', 'IDBRequest', 'IDBOpenDBRequest', 'IDBDatabase', 'IDBTransaction', 'IDBCursor', 'WebSocket']); - for (let i = 0; i < patchTargets.length; i++) { - const target = _global[patchTargets[i]]; - target && target.prototype && patchFilteredProperties(target.prototype, getOnEventNames(target.prototype), ignoreProperties); - } -} - -/** - * @fileoverview - * @suppress {missingRequire} - */ -function patchBrowser(Zone) { - Zone.__load_patch('legacy', global => { - const legacyPatch = global[Zone.__symbol__('legacyPatch')]; - if (legacyPatch) { - legacyPatch(); - } - }); - Zone.__load_patch('timers', global => { - const set = 'set'; - const clear = 'clear'; - patchTimer(global, set, clear, 'Timeout'); - patchTimer(global, set, clear, 'Interval'); - patchTimer(global, set, clear, 'Immediate'); - }); - Zone.__load_patch('requestAnimationFrame', global => { - patchTimer(global, 'request', 'cancel', 'AnimationFrame'); - patchTimer(global, 'mozRequest', 'mozCancel', 'AnimationFrame'); - patchTimer(global, 'webkitRequest', 'webkitCancel', 'AnimationFrame'); - }); - Zone.__load_patch('blocking', (global, Zone) => { - const blockingMethods = ['alert', 'prompt', 'confirm']; - for (let i = 0; i < blockingMethods.length; i++) { - const name = blockingMethods[i]; - patchMethod(global, name, (delegate, symbol, name) => { - return function (s, args) { - return Zone.current.run(delegate, global, args, name); - }; - }); - } - }); - Zone.__load_patch('EventTarget', (global, Zone, api) => { - patchEvent(global, api); - eventTargetPatch(global, api); - // patch XMLHttpRequestEventTarget's addEventListener/removeEventListener - const XMLHttpRequestEventTarget = global['XMLHttpRequestEventTarget']; - if (XMLHttpRequestEventTarget && XMLHttpRequestEventTarget.prototype) { - api.patchEventTarget(global, api, [XMLHttpRequestEventTarget.prototype]); - } - }); - Zone.__load_patch('MutationObserver', (global, Zone, api) => { - patchClass('MutationObserver'); - patchClass('WebKitMutationObserver'); - }); - Zone.__load_patch('IntersectionObserver', (global, Zone, api) => { - patchClass('IntersectionObserver'); - }); - Zone.__load_patch('FileReader', (global, Zone, api) => { - patchClass('FileReader'); - }); - Zone.__load_patch('on_property', (global, Zone, api) => { - propertyDescriptorPatch(api, global); - }); - Zone.__load_patch('customElements', (global, Zone, api) => { - patchCustomElements(global, api); - }); - Zone.__load_patch('XHR', (global, Zone) => { - // Treat XMLHttpRequest as a macrotask. - patchXHR(global); - const XHR_TASK = zoneSymbol('xhrTask'); - const XHR_SYNC = zoneSymbol('xhrSync'); - const XHR_LISTENER = zoneSymbol('xhrListener'); - const XHR_SCHEDULED = zoneSymbol('xhrScheduled'); - const XHR_URL = zoneSymbol('xhrURL'); - const XHR_ERROR_BEFORE_SCHEDULED = zoneSymbol('xhrErrorBeforeScheduled'); - function patchXHR(window) { - const XMLHttpRequest = window['XMLHttpRequest']; - if (!XMLHttpRequest) { - // XMLHttpRequest is not available in service worker - return; - } - const XMLHttpRequestPrototype = XMLHttpRequest.prototype; - function findPendingTask(target) { - return target[XHR_TASK]; - } - let oriAddListener = XMLHttpRequestPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER]; - let oriRemoveListener = XMLHttpRequestPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER]; - if (!oriAddListener) { - const XMLHttpRequestEventTarget = window['XMLHttpRequestEventTarget']; - if (XMLHttpRequestEventTarget) { - const XMLHttpRequestEventTargetPrototype = XMLHttpRequestEventTarget.prototype; - oriAddListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER]; - oriRemoveListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER]; - } - } - const READY_STATE_CHANGE = 'readystatechange'; - const SCHEDULED = 'scheduled'; - function scheduleTask(task) { - const data = task.data; - const target = data.target; - target[XHR_SCHEDULED] = false; - target[XHR_ERROR_BEFORE_SCHEDULED] = false; - // remove existing event listener - const listener = target[XHR_LISTENER]; - if (!oriAddListener) { - oriAddListener = target[ZONE_SYMBOL_ADD_EVENT_LISTENER]; - oriRemoveListener = target[ZONE_SYMBOL_REMOVE_EVENT_LISTENER]; - } - if (listener) { - oriRemoveListener.call(target, READY_STATE_CHANGE, listener); - } - const newListener = target[XHR_LISTENER] = () => { - if (target.readyState === target.DONE) { - // sometimes on some browsers XMLHttpRequest will fire onreadystatechange with - // readyState=4 multiple times, so we need to check task state here - if (!data.aborted && target[XHR_SCHEDULED] && task.state === SCHEDULED) { - // check whether the xhr has registered onload listener - // if that is the case, the task should invoke after all - // onload listeners finish. - // Also if the request failed without response (status = 0), the load event handler - // will not be triggered, in that case, we should also invoke the placeholder callback - // to close the XMLHttpRequest::send macroTask. - // https://github.com/angular/angular/issues/38795 - const loadTasks = target[Zone.__symbol__('loadfalse')]; - if (target.status !== 0 && loadTasks && loadTasks.length > 0) { - const oriInvoke = task.invoke; - task.invoke = function () { - // need to load the tasks again, because in other - // load listener, they may remove themselves - const loadTasks = target[Zone.__symbol__('loadfalse')]; - for (let i = 0; i < loadTasks.length; i++) { - if (loadTasks[i] === task) { - loadTasks.splice(i, 1); - } - } - if (!data.aborted && task.state === SCHEDULED) { - oriInvoke.call(task); - } - }; - loadTasks.push(task); - } else { - task.invoke(); - } - } else if (!data.aborted && target[XHR_SCHEDULED] === false) { - // error occurs when xhr.send() - target[XHR_ERROR_BEFORE_SCHEDULED] = true; - } - } - }; - oriAddListener.call(target, READY_STATE_CHANGE, newListener); - const storedTask = target[XHR_TASK]; - if (!storedTask) { - target[XHR_TASK] = task; - } - sendNative.apply(target, data.args); - target[XHR_SCHEDULED] = true; - return task; - } - function placeholderCallback() {} - function clearTask(task) { - const data = task.data; - // Note - ideally, we would call data.target.removeEventListener here, but it's too late - // to prevent it from firing. So instead, we store info for the event listener. - data.aborted = true; - return abortNative.apply(data.target, data.args); - } - const openNative = patchMethod(XMLHttpRequestPrototype, 'open', () => function (self, args) { - self[XHR_SYNC] = args[2] == false; - self[XHR_URL] = args[1]; - return openNative.apply(self, args); - }); - const XMLHTTPREQUEST_SOURCE = 'XMLHttpRequest.send'; - const fetchTaskAborting = zoneSymbol('fetchTaskAborting'); - const fetchTaskScheduling = zoneSymbol('fetchTaskScheduling'); - const sendNative = patchMethod(XMLHttpRequestPrototype, 'send', () => function (self, args) { - if (Zone.current[fetchTaskScheduling] === true) { - // a fetch is scheduling, so we are using xhr to polyfill fetch - // and because we already schedule macroTask for fetch, we should - // not schedule a macroTask for xhr again - return sendNative.apply(self, args); - } - if (self[XHR_SYNC]) { - // if the XHR is sync there is no task to schedule, just execute the code. - return sendNative.apply(self, args); - } else { - const options = { - target: self, - url: self[XHR_URL], - isPeriodic: false, - args: args, - aborted: false - }; - const task = scheduleMacroTaskWithCurrentZone(XMLHTTPREQUEST_SOURCE, placeholderCallback, options, scheduleTask, clearTask); - if (self && self[XHR_ERROR_BEFORE_SCHEDULED] === true && !options.aborted && task.state === SCHEDULED) { - // xhr request throw error when send - // we should invoke task instead of leaving a scheduled - // pending macroTask - task.invoke(); - } - } - }); - const abortNative = patchMethod(XMLHttpRequestPrototype, 'abort', () => function (self, args) { - const task = findPendingTask(self); - if (task && typeof task.type == 'string') { - // If the XHR has already completed, do nothing. - // If the XHR has already been aborted, do nothing. - // Fix #569, call abort multiple times before done will cause - // macroTask task count be negative number - if (task.cancelFn == null || task.data && task.data.aborted) { - return; - } - task.zone.cancelTask(task); - } else if (Zone.current[fetchTaskAborting] === true) { - // the abort is called from fetch polyfill, we need to call native abort of XHR. - return abortNative.apply(self, args); - } - // Otherwise, we are trying to abort an XHR which has not yet been sent, so there is no - // task - // to cancel. Do nothing. - }); - } - }); - Zone.__load_patch('geolocation', global => { - /// GEO_LOCATION - if (global['navigator'] && global['navigator'].geolocation) { - patchPrototype(global['navigator'].geolocation, ['getCurrentPosition', 'watchPosition']); - } - }); - Zone.__load_patch('PromiseRejectionEvent', (global, Zone) => { - // handle unhandled promise rejection - function findPromiseRejectionHandler(evtName) { - return function (e) { - const eventTasks = findEventTasks(global, evtName); - eventTasks.forEach(eventTask => { - // windows has added unhandledrejection event listener - // trigger the event listener - const PromiseRejectionEvent = global['PromiseRejectionEvent']; - if (PromiseRejectionEvent) { - const evt = new PromiseRejectionEvent(evtName, { - promise: e.promise, - reason: e.rejection - }); - eventTask.invoke(evt); - } - }); - }; - } - if (global['PromiseRejectionEvent']) { - Zone[zoneSymbol('unhandledPromiseRejectionHandler')] = findPromiseRejectionHandler('unhandledrejection'); - Zone[zoneSymbol('rejectionHandledHandler')] = findPromiseRejectionHandler('rejectionhandled'); - } - }); - Zone.__load_patch('queueMicrotask', (global, Zone, api) => { - patchQueueMicrotask(global, api); - }); -} -function patchPromise(Zone) { - Zone.__load_patch('ZoneAwarePromise', (global, Zone, api) => { - const ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; - const ObjectDefineProperty = Object.defineProperty; - function readableObjectToString(obj) { - if (obj && obj.toString === Object.prototype.toString) { - const className = obj.constructor && obj.constructor.name; - return (className ? className : '') + ': ' + JSON.stringify(obj); - } - return obj ? obj.toString() : Object.prototype.toString.call(obj); - } - const __symbol__ = api.symbol; - const _uncaughtPromiseErrors = []; - const isDisableWrappingUncaughtPromiseRejection = global[__symbol__('DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION')] !== false; - const symbolPromise = __symbol__('Promise'); - const symbolThen = __symbol__('then'); - const creationTrace = '__creationTrace__'; - api.onUnhandledError = e => { - if (api.showUncaughtError()) { - const rejection = e && e.rejection; - if (rejection) { - console.error('Unhandled Promise rejection:', rejection instanceof Error ? rejection.message : rejection, '; Zone:', e.zone.name, '; Task:', e.task && e.task.source, '; Value:', rejection, rejection instanceof Error ? rejection.stack : undefined); - } else { - console.error(e); - } - } - }; - api.microtaskDrainDone = () => { - while (_uncaughtPromiseErrors.length) { - const uncaughtPromiseError = _uncaughtPromiseErrors.shift(); - try { - uncaughtPromiseError.zone.runGuarded(() => { - if (uncaughtPromiseError.throwOriginal) { - throw uncaughtPromiseError.rejection; - } - throw uncaughtPromiseError; - }); - } catch (error) { - handleUnhandledRejection(error); - } - } - }; - const UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL = __symbol__('unhandledPromiseRejectionHandler'); - function handleUnhandledRejection(e) { - api.onUnhandledError(e); - try { - const handler = Zone[UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL]; - if (typeof handler === 'function') { - handler.call(this, e); - } - } catch (err) {} - } - function isThenable(value) { - return value && value.then; - } - function forwardResolution(value) { - return value; - } - function forwardRejection(rejection) { - return ZoneAwarePromise.reject(rejection); - } - const symbolState = __symbol__('state'); - const symbolValue = __symbol__('value'); - const symbolFinally = __symbol__('finally'); - const symbolParentPromiseValue = __symbol__('parentPromiseValue'); - const symbolParentPromiseState = __symbol__('parentPromiseState'); - const source = 'Promise.then'; - const UNRESOLVED = null; - const RESOLVED = true; - const REJECTED = false; - const REJECTED_NO_CATCH = 0; - function makeResolver(promise, state) { - return v => { - try { - resolvePromise(promise, state, v); - } catch (err) { - resolvePromise(promise, false, err); - } - // Do not return value or you will break the Promise spec. - }; - } - const once = function () { - let wasCalled = false; - return function wrapper(wrappedFunction) { - return function () { - if (wasCalled) { - return; - } - wasCalled = true; - wrappedFunction.apply(null, arguments); - }; - }; - }; - const TYPE_ERROR = 'Promise resolved with itself'; - const CURRENT_TASK_TRACE_SYMBOL = __symbol__('currentTaskTrace'); - // Promise Resolution - function resolvePromise(promise, state, value) { - const onceWrapper = once(); - if (promise === value) { - throw new TypeError(TYPE_ERROR); - } - if (promise[symbolState] === UNRESOLVED) { - // should only get value.then once based on promise spec. - let then = null; - try { - if (typeof value === 'object' || typeof value === 'function') { - then = value && value.then; - } - } catch (err) { - onceWrapper(() => { - resolvePromise(promise, false, err); - })(); - return promise; - } - // if (value instanceof ZoneAwarePromise) { - if (state !== REJECTED && value instanceof ZoneAwarePromise && value.hasOwnProperty(symbolState) && value.hasOwnProperty(symbolValue) && value[symbolState] !== UNRESOLVED) { - clearRejectedNoCatch(value); - resolvePromise(promise, value[symbolState], value[symbolValue]); - } else if (state !== REJECTED && typeof then === 'function') { - try { - then.call(value, onceWrapper(makeResolver(promise, state)), onceWrapper(makeResolver(promise, false))); - } catch (err) { - onceWrapper(() => { - resolvePromise(promise, false, err); - })(); - } - } else { - promise[symbolState] = state; - const queue = promise[symbolValue]; - promise[symbolValue] = value; - if (promise[symbolFinally] === symbolFinally) { - // the promise is generated by Promise.prototype.finally - if (state === RESOLVED) { - // the state is resolved, should ignore the value - // and use parent promise value - promise[symbolState] = promise[symbolParentPromiseState]; - promise[symbolValue] = promise[symbolParentPromiseValue]; - } - } - // record task information in value when error occurs, so we can - // do some additional work such as render longStackTrace - if (state === REJECTED && value instanceof Error) { - // check if longStackTraceZone is here - const trace = Zone.currentTask && Zone.currentTask.data && Zone.currentTask.data[creationTrace]; - if (trace) { - // only keep the long stack trace into error when in longStackTraceZone - ObjectDefineProperty(value, CURRENT_TASK_TRACE_SYMBOL, { - configurable: true, - enumerable: false, - writable: true, - value: trace - }); - } - } - for (let i = 0; i < queue.length;) { - scheduleResolveOrReject(promise, queue[i++], queue[i++], queue[i++], queue[i++]); - } - if (queue.length == 0 && state == REJECTED) { - promise[symbolState] = REJECTED_NO_CATCH; - let uncaughtPromiseError = value; - try { - // Here we throws a new Error to print more readable error log - // and if the value is not an error, zone.js builds an `Error` - // Object here to attach the stack information. - throw new Error('Uncaught (in promise): ' + readableObjectToString(value) + (value && value.stack ? '\n' + value.stack : '')); - } catch (err) { - uncaughtPromiseError = err; - } - if (isDisableWrappingUncaughtPromiseRejection) { - // If disable wrapping uncaught promise reject - // use the value instead of wrapping it. - uncaughtPromiseError.throwOriginal = true; - } - uncaughtPromiseError.rejection = value; - uncaughtPromiseError.promise = promise; - uncaughtPromiseError.zone = Zone.current; - uncaughtPromiseError.task = Zone.currentTask; - _uncaughtPromiseErrors.push(uncaughtPromiseError); - api.scheduleMicroTask(); // to make sure that it is running - } - } - } - // Resolving an already resolved promise is a noop. - return promise; - } - const REJECTION_HANDLED_HANDLER = __symbol__('rejectionHandledHandler'); - function clearRejectedNoCatch(promise) { - if (promise[symbolState] === REJECTED_NO_CATCH) { - // if the promise is rejected no catch status - // and queue.length > 0, means there is a error handler - // here to handle the rejected promise, we should trigger - // windows.rejectionhandled eventHandler or nodejs rejectionHandled - // eventHandler - try { - const handler = Zone[REJECTION_HANDLED_HANDLER]; - if (handler && typeof handler === 'function') { - handler.call(this, { - rejection: promise[symbolValue], - promise: promise - }); - } - } catch (err) {} - promise[symbolState] = REJECTED; - for (let i = 0; i < _uncaughtPromiseErrors.length; i++) { - if (promise === _uncaughtPromiseErrors[i].promise) { - _uncaughtPromiseErrors.splice(i, 1); - } - } - } - } - function scheduleResolveOrReject(promise, zone, chainPromise, onFulfilled, onRejected) { - clearRejectedNoCatch(promise); - const promiseState = promise[symbolState]; - const delegate = promiseState ? typeof onFulfilled === 'function' ? onFulfilled : forwardResolution : typeof onRejected === 'function' ? onRejected : forwardRejection; - zone.scheduleMicroTask(source, () => { - try { - const parentPromiseValue = promise[symbolValue]; - const isFinallyPromise = !!chainPromise && symbolFinally === chainPromise[symbolFinally]; - if (isFinallyPromise) { - // if the promise is generated from finally call, keep parent promise's state and value - chainPromise[symbolParentPromiseValue] = parentPromiseValue; - chainPromise[symbolParentPromiseState] = promiseState; - } - // should not pass value to finally callback - const value = zone.run(delegate, undefined, isFinallyPromise && delegate !== forwardRejection && delegate !== forwardResolution ? [] : [parentPromiseValue]); - resolvePromise(chainPromise, true, value); - } catch (error) { - // if error occurs, should always return this error - resolvePromise(chainPromise, false, error); - } - }, chainPromise); - } - const ZONE_AWARE_PROMISE_TO_STRING = 'function ZoneAwarePromise() { [native code] }'; - const noop = function () {}; - const AggregateError = global.AggregateError; - class ZoneAwarePromise { - static toString() { - return ZONE_AWARE_PROMISE_TO_STRING; - } - static resolve(value) { - if (value instanceof ZoneAwarePromise) { - return value; - } - return resolvePromise(new this(null), RESOLVED, value); - } - static reject(error) { - return resolvePromise(new this(null), REJECTED, error); - } - static withResolvers() { - const result = {}; - result.promise = new ZoneAwarePromise((res, rej) => { - result.resolve = res; - result.reject = rej; - }); - return result; - } - static any(values) { - if (!values || typeof values[Symbol.iterator] !== 'function') { - return Promise.reject(new AggregateError([], 'All promises were rejected')); - } - const promises = []; - let count = 0; - try { - for (let v of values) { - count++; - promises.push(ZoneAwarePromise.resolve(v)); - } - } catch (err) { - return Promise.reject(new AggregateError([], 'All promises were rejected')); - } - if (count === 0) { - return Promise.reject(new AggregateError([], 'All promises were rejected')); - } - let finished = false; - const errors = []; - return new ZoneAwarePromise((resolve, reject) => { - for (let i = 0; i < promises.length; i++) { - promises[i].then(v => { - if (finished) { - return; - } - finished = true; - resolve(v); - }, err => { - errors.push(err); - count--; - if (count === 0) { - finished = true; - reject(new AggregateError(errors, 'All promises were rejected')); - } - }); - } - }); - } - static race(values) { - let resolve; - let reject; - let promise = new this((res, rej) => { - resolve = res; - reject = rej; - }); - function onResolve(value) { - resolve(value); - } - function onReject(error) { - reject(error); - } - for (let value of values) { - if (!isThenable(value)) { - value = this.resolve(value); - } - value.then(onResolve, onReject); - } - return promise; - } - static all(values) { - return ZoneAwarePromise.allWithCallback(values); - } - static allSettled(values) { - const P = this && this.prototype instanceof ZoneAwarePromise ? this : ZoneAwarePromise; - return P.allWithCallback(values, { - thenCallback: value => ({ - status: 'fulfilled', - value - }), - errorCallback: err => ({ - status: 'rejected', - reason: err - }) - }); - } - static allWithCallback(values, callback) { - let resolve; - let reject; - let promise = new this((res, rej) => { - resolve = res; - reject = rej; - }); - // Start at 2 to prevent prematurely resolving if .then is called immediately. - let unresolvedCount = 2; - let valueIndex = 0; - const resolvedValues = []; - for (let value of values) { - if (!isThenable(value)) { - value = this.resolve(value); - } - const curValueIndex = valueIndex; - try { - value.then(value => { - resolvedValues[curValueIndex] = callback ? callback.thenCallback(value) : value; - unresolvedCount--; - if (unresolvedCount === 0) { - resolve(resolvedValues); - } - }, err => { - if (!callback) { - reject(err); - } else { - resolvedValues[curValueIndex] = callback.errorCallback(err); - unresolvedCount--; - if (unresolvedCount === 0) { - resolve(resolvedValues); - } - } - }); - } catch (thenErr) { - reject(thenErr); - } - unresolvedCount++; - valueIndex++; - } - // Make the unresolvedCount zero-based again. - unresolvedCount -= 2; - if (unresolvedCount === 0) { - resolve(resolvedValues); - } - return promise; - } - constructor(executor) { - const promise = this; - if (!(promise instanceof ZoneAwarePromise)) { - throw new Error('Must be an instanceof Promise.'); - } - promise[symbolState] = UNRESOLVED; - promise[symbolValue] = []; // queue; - try { - const onceWrapper = once(); - executor && executor(onceWrapper(makeResolver(promise, RESOLVED)), onceWrapper(makeResolver(promise, REJECTED))); - } catch (error) { - resolvePromise(promise, false, error); - } - } - get [Symbol.toStringTag]() { - return 'Promise'; - } - get [Symbol.species]() { - return ZoneAwarePromise; - } - then(onFulfilled, onRejected) { - // We must read `Symbol.species` safely because `this` may be anything. For instance, `this` - // may be an object without a prototype (created through `Object.create(null)`); thus - // `this.constructor` will be undefined. One of the use cases is SystemJS creating - // prototype-less objects (modules) via `Object.create(null)`. The SystemJS creates an empty - // object and copies promise properties into that object (within the `getOrCreateLoad` - // function). The zone.js then checks if the resolved value has the `then` method and - // invokes it with the `value` context. Otherwise, this will throw an error: `TypeError: - // Cannot read properties of undefined (reading 'Symbol(Symbol.species)')`. - let C = this.constructor?.[Symbol.species]; - if (!C || typeof C !== 'function') { - C = this.constructor || ZoneAwarePromise; - } - const chainPromise = new C(noop); - const zone = Zone.current; - if (this[symbolState] == UNRESOLVED) { - this[symbolValue].push(zone, chainPromise, onFulfilled, onRejected); - } else { - scheduleResolveOrReject(this, zone, chainPromise, onFulfilled, onRejected); - } - return chainPromise; - } - catch(onRejected) { - return this.then(null, onRejected); - } - finally(onFinally) { - // See comment on the call to `then` about why thee `Symbol.species` is safely accessed. - let C = this.constructor?.[Symbol.species]; - if (!C || typeof C !== 'function') { - C = ZoneAwarePromise; - } - const chainPromise = new C(noop); - chainPromise[symbolFinally] = symbolFinally; - const zone = Zone.current; - if (this[symbolState] == UNRESOLVED) { - this[symbolValue].push(zone, chainPromise, onFinally, onFinally); - } else { - scheduleResolveOrReject(this, zone, chainPromise, onFinally, onFinally); - } - return chainPromise; - } - } - // Protect against aggressive optimizers dropping seemingly unused properties. - // E.g. Closure Compiler in advanced mode. - ZoneAwarePromise['resolve'] = ZoneAwarePromise.resolve; - ZoneAwarePromise['reject'] = ZoneAwarePromise.reject; - ZoneAwarePromise['race'] = ZoneAwarePromise.race; - ZoneAwarePromise['all'] = ZoneAwarePromise.all; - const NativePromise = global[symbolPromise] = global['Promise']; - global['Promise'] = ZoneAwarePromise; - const symbolThenPatched = __symbol__('thenPatched'); - function patchThen(Ctor) { - const proto = Ctor.prototype; - const prop = ObjectGetOwnPropertyDescriptor(proto, 'then'); - if (prop && (prop.writable === false || !prop.configurable)) { - // check Ctor.prototype.then propertyDescriptor is writable or not - // in meteor env, writable is false, we should ignore such case - return; - } - const originalThen = proto.then; - // Keep a reference to the original method. - proto[symbolThen] = originalThen; - Ctor.prototype.then = function (onResolve, onReject) { - const wrapped = new ZoneAwarePromise((resolve, reject) => { - originalThen.call(this, resolve, reject); - }); - return wrapped.then(onResolve, onReject); - }; - Ctor[symbolThenPatched] = true; - } - api.patchThen = patchThen; - function zoneify(fn) { - return function (self, args) { - let resultPromise = fn.apply(self, args); - if (resultPromise instanceof ZoneAwarePromise) { - return resultPromise; - } - let ctor = resultPromise.constructor; - if (!ctor[symbolThenPatched]) { - patchThen(ctor); - } - return resultPromise; - }; - } - if (NativePromise) { - patchThen(NativePromise); - patchMethod(global, 'fetch', delegate => zoneify(delegate)); - } - // This is not part of public API, but it is useful for tests, so we expose it. - Promise[Zone.__symbol__('uncaughtPromiseErrors')] = _uncaughtPromiseErrors; - return ZoneAwarePromise; - }); -} -function patchToString(Zone) { - // override Function.prototype.toString to make zone.js patched function - // look like native function - Zone.__load_patch('toString', global => { - // patch Func.prototype.toString to let them look like native - const originalFunctionToString = Function.prototype.toString; - const ORIGINAL_DELEGATE_SYMBOL = zoneSymbol('OriginalDelegate'); - const PROMISE_SYMBOL = zoneSymbol('Promise'); - const ERROR_SYMBOL = zoneSymbol('Error'); - const newFunctionToString = function toString() { - if (typeof this === 'function') { - const originalDelegate = this[ORIGINAL_DELEGATE_SYMBOL]; - if (originalDelegate) { - if (typeof originalDelegate === 'function') { - return originalFunctionToString.call(originalDelegate); - } else { - return Object.prototype.toString.call(originalDelegate); - } - } - if (this === Promise) { - const nativePromise = global[PROMISE_SYMBOL]; - if (nativePromise) { - return originalFunctionToString.call(nativePromise); - } - } - if (this === Error) { - const nativeError = global[ERROR_SYMBOL]; - if (nativeError) { - return originalFunctionToString.call(nativeError); - } - } - } - return originalFunctionToString.call(this); - }; - newFunctionToString[ORIGINAL_DELEGATE_SYMBOL] = originalFunctionToString; - Function.prototype.toString = newFunctionToString; - // patch Object.prototype.toString to let them look like native - const originalObjectToString = Object.prototype.toString; - const PROMISE_OBJECT_TO_STRING = '[object Promise]'; - Object.prototype.toString = function () { - if (typeof Promise === 'function' && this instanceof Promise) { - return PROMISE_OBJECT_TO_STRING; - } - return originalObjectToString.call(this); - }; - }); -} -function patchCallbacks(api, target, targetName, method, callbacks) { - const symbol = Zone.__symbol__(method); - if (target[symbol]) { - return; - } - const nativeDelegate = target[symbol] = target[method]; - target[method] = function (name, opts, options) { - if (opts && opts.prototype) { - callbacks.forEach(function (callback) { - const source = `${targetName}.${method}::` + callback; - const prototype = opts.prototype; - // Note: the `patchCallbacks` is used for patching the `document.registerElement` and - // `customElements.define`. We explicitly wrap the patching code into try-catch since - // callbacks may be already patched by other web components frameworks (e.g. LWC), and they - // make those properties non-writable. This means that patching callback will throw an error - // `cannot assign to read-only property`. See this code as an example: - // https://github.com/salesforce/lwc/blob/master/packages/@lwc/engine-core/src/framework/base-bridge-element.ts#L180-L186 - // We don't want to stop the application rendering if we couldn't patch some - // callback, e.g. `attributeChangedCallback`. - try { - if (prototype.hasOwnProperty(callback)) { - const descriptor = api.ObjectGetOwnPropertyDescriptor(prototype, callback); - if (descriptor && descriptor.value) { - descriptor.value = api.wrapWithCurrentZone(descriptor.value, source); - api._redefineProperty(opts.prototype, callback, descriptor); - } else if (prototype[callback]) { - prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source); - } - } else if (prototype[callback]) { - prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source); - } - } catch { - // Note: we leave the catch block empty since there's no way to handle the error related - // to non-writable property. - } - }); - } - return nativeDelegate.call(target, name, opts, options); - }; - api.attachOriginToPatched(target[method], nativeDelegate); -} -function patchUtil(Zone) { - Zone.__load_patch('util', (global, Zone, api) => { - // Collect native event names by looking at properties - // on the global namespace, e.g. 'onclick'. - const eventNames = getOnEventNames(global); - api.patchOnProperties = patchOnProperties; - api.patchMethod = patchMethod; - api.bindArguments = bindArguments; - api.patchMacroTask = patchMacroTask; - // In earlier version of zone.js (<0.9.0), we use env name `__zone_symbol__BLACK_LISTED_EVENTS` - // to define which events will not be patched by `Zone.js`. In newer version (>=0.9.0), we - // change the env name to `__zone_symbol__UNPATCHED_EVENTS` to keep the name consistent with - // angular repo. The `__zone_symbol__BLACK_LISTED_EVENTS` is deprecated, but it is still be - // supported for backwards compatibility. - const SYMBOL_BLACK_LISTED_EVENTS = Zone.__symbol__('BLACK_LISTED_EVENTS'); - const SYMBOL_UNPATCHED_EVENTS = Zone.__symbol__('UNPATCHED_EVENTS'); - if (global[SYMBOL_UNPATCHED_EVENTS]) { - global[SYMBOL_BLACK_LISTED_EVENTS] = global[SYMBOL_UNPATCHED_EVENTS]; - } - if (global[SYMBOL_BLACK_LISTED_EVENTS]) { - Zone[SYMBOL_BLACK_LISTED_EVENTS] = Zone[SYMBOL_UNPATCHED_EVENTS] = global[SYMBOL_BLACK_LISTED_EVENTS]; - } - api.patchEventPrototype = patchEventPrototype; - api.patchEventTarget = patchEventTarget; - api.isIEOrEdge = isIEOrEdge; - api.ObjectDefineProperty = ObjectDefineProperty; - api.ObjectGetOwnPropertyDescriptor = ObjectGetOwnPropertyDescriptor; - api.ObjectCreate = ObjectCreate; - api.ArraySlice = ArraySlice; - api.patchClass = patchClass; - api.wrapWithCurrentZone = wrapWithCurrentZone; - api.filterProperties = filterProperties; - api.attachOriginToPatched = attachOriginToPatched; - api._redefineProperty = Object.defineProperty; - api.patchCallbacks = patchCallbacks; - api.getGlobalObjects = () => ({ - globalSources, - zoneSymbolEventNames, - eventNames, - isBrowser, - isMix, - isNode, - TRUE_STR, - FALSE_STR, - ZONE_SYMBOL_PREFIX, - ADD_EVENT_LISTENER_STR, - REMOVE_EVENT_LISTENER_STR - }); - }); -} -function patchCommon(Zone) { - patchPromise(Zone); - patchToString(Zone); - patchUtil(Zone); -} -const Zone$1 = loadZone(); -patchCommon(Zone$1); -patchBrowser(Zone$1); - -/***/ }) - -}, -/******/ __webpack_require__ => { // webpackRuntimeModules -/******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) -/******/ var __webpack_exports__ = (__webpack_exec__(4050)); -/******/ } -]); -//# sourceMappingURL=polyfills.js.map \ No newline at end of file diff --git a/docs/polyfills.js.map b/docs/polyfills.js.map deleted file mode 100644 index 59683d0..0000000 --- a/docs/polyfills.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"polyfills.js","mappings":"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","sources":["./src/polyfills.ts","./node_modules/zone.js/fesm2015/zone.js"],"sourcesContent":["/**\r\n * This file includes polyfills needed by Angular and is loaded before the app.\r\n * You can add your own extra polyfills to this file.\r\n *\r\n * This file is divided into 2 sections:\r\n * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\r\n * 2. Application imports. Files imported after ZoneJS that should be loaded before your main\r\n * file.\r\n *\r\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\r\n * automatically update themselves. This includes recent versions of Safari, Chrome (including\r\n * Opera), Edge on the desktop, and iOS and Chrome on mobile.\r\n *\r\n * Learn more in https://angular.io/guide/browser-support\r\n */\r\n\r\n/***************************************************************************************************\r\n * BROWSER POLYFILLS\r\n */\r\n\r\n/**\r\n * By default, zone.js will patch all possible macroTask and DomEvents\r\n * user can disable parts of macroTask/DomEvents patch by setting following flags\r\n * because those flags need to be set before `zone.js` being loaded, and webpack\r\n * will put import in the top of bundle, so user need to create a separate file\r\n * in this directory (for example: zone-flags.ts), and put the following flags\r\n * into that file, and then add the following code before importing zone.js.\r\n * import './zone-flags';\r\n *\r\n * The flags allowed in zone-flags.ts are listed here.\r\n *\r\n * The following flags will work for all browsers.\r\n *\r\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\r\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\r\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\r\n *\r\n * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\r\n * with the following flag, it will bypass `zone.js` patch for IE/Edge\r\n *\r\n * (window as any).__Zone_enable_cross_context_check = true;\r\n *\r\n */\r\n\r\n/***************************************************************************************************\r\n * Zone JS is required by default for Angular itself.\r\n */\r\nimport 'zone.js'; // Included with Angular CLI.\r\n\r\n\r\n/***************************************************************************************************\r\n * APPLICATION IMPORTS\r\n */\r\n","'use strict';\n/**\n * @license Angular v\n * (c) 2010-2024 Google LLC. https://angular.io/\n * License: MIT\n */\nconst global = globalThis;\n// __Zone_symbol_prefix global can be used to override the default zone\n// symbol prefix with a custom one if needed.\nfunction __symbol__(name) {\n const symbolPrefix = global['__Zone_symbol_prefix'] || '__zone_symbol__';\n return symbolPrefix + name;\n}\nfunction initZone() {\n const performance = global['performance'];\n function mark(name) {\n performance && performance['mark'] && performance['mark'](name);\n }\n function performanceMeasure(name, label) {\n performance && performance['measure'] && performance['measure'](name, label);\n }\n mark('Zone');\n class ZoneImpl {\n // tslint:disable-next-line:require-internal-with-underscore\n static { this.__symbol__ = __symbol__; }\n static assertZonePatched() {\n if (global['Promise'] !== patches['ZoneAwarePromise']) {\n throw new Error('Zone.js has detected that ZoneAwarePromise `(window|global).Promise` ' +\n 'has been overwritten.\\n' +\n 'Most likely cause is that a Promise polyfill has been loaded ' +\n 'after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. ' +\n 'If you must load one, do so before loading zone.js.)');\n }\n }\n static get root() {\n let zone = ZoneImpl.current;\n while (zone.parent) {\n zone = zone.parent;\n }\n return zone;\n }\n static get current() {\n return _currentZoneFrame.zone;\n }\n static get currentTask() {\n return _currentTask;\n }\n // tslint:disable-next-line:require-internal-with-underscore\n static __load_patch(name, fn, ignoreDuplicate = false) {\n if (patches.hasOwnProperty(name)) {\n // `checkDuplicate` option is defined from global variable\n // so it works for all modules.\n // `ignoreDuplicate` can work for the specified module\n const checkDuplicate = global[__symbol__('forceDuplicateZoneCheck')] === true;\n if (!ignoreDuplicate && checkDuplicate) {\n throw Error('Already loaded patch: ' + name);\n }\n }\n else if (!global['__Zone_disable_' + name]) {\n const perfName = 'Zone:' + name;\n mark(perfName);\n patches[name] = fn(global, ZoneImpl, _api);\n performanceMeasure(perfName, perfName);\n }\n }\n get parent() {\n return this._parent;\n }\n get name() {\n return this._name;\n }\n constructor(parent, zoneSpec) {\n this._parent = parent;\n this._name = zoneSpec ? zoneSpec.name || 'unnamed' : '';\n this._properties = (zoneSpec && zoneSpec.properties) || {};\n this._zoneDelegate = new _ZoneDelegate(this, this._parent && this._parent._zoneDelegate, zoneSpec);\n }\n get(key) {\n const zone = this.getZoneWith(key);\n if (zone)\n return zone._properties[key];\n }\n getZoneWith(key) {\n let current = this;\n while (current) {\n if (current._properties.hasOwnProperty(key)) {\n return current;\n }\n current = current._parent;\n }\n return null;\n }\n fork(zoneSpec) {\n if (!zoneSpec)\n throw new Error('ZoneSpec required!');\n return this._zoneDelegate.fork(this, zoneSpec);\n }\n wrap(callback, source) {\n if (typeof callback !== 'function') {\n throw new Error('Expecting function got: ' + callback);\n }\n const _callback = this._zoneDelegate.intercept(this, callback, source);\n const zone = this;\n return function () {\n return zone.runGuarded(_callback, this, arguments, source);\n };\n }\n run(callback, applyThis, applyArgs, source) {\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n }\n finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n }\n runGuarded(callback, applyThis = null, applyArgs, source) {\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n }\n catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n }\n finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n }\n runTask(task, applyThis, applyArgs) {\n if (task.zone != this) {\n throw new Error('A task can only be run in the zone of creation! (Creation: ' +\n (task.zone || NO_ZONE).name +\n '; Execution: ' +\n this.name +\n ')');\n }\n const zoneTask = task;\n // https://github.com/angular/zone.js/issues/778, sometimes eventTask\n // will run in notScheduled(canceled) state, we should not try to\n // run such kind of task but just return\n const { type, data: { isPeriodic = false, isRefreshable = false } = {} } = task;\n if (task.state === notScheduled && (type === eventTask || type === macroTask)) {\n return;\n }\n const reEntryGuard = task.state != running;\n reEntryGuard && zoneTask._transitionTo(running, scheduled);\n const previousTask = _currentTask;\n _currentTask = zoneTask;\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n if (type == macroTask && task.data && !isPeriodic && !isRefreshable) {\n task.cancelFn = undefined;\n }\n try {\n return this._zoneDelegate.invokeTask(this, zoneTask, applyThis, applyArgs);\n }\n catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n }\n finally {\n // if the task's state is notScheduled or unknown, then it has already been cancelled\n // we should not reset the state to scheduled\n const state = task.state;\n if (state !== notScheduled && state !== unknown) {\n if (type == eventTask || isPeriodic || (isRefreshable && state === scheduling)) {\n reEntryGuard && zoneTask._transitionTo(scheduled, running, scheduling);\n }\n else {\n const zoneDelegates = zoneTask._zoneDelegates;\n this._updateTaskCount(zoneTask, -1);\n reEntryGuard && zoneTask._transitionTo(notScheduled, running, notScheduled);\n if (isRefreshable) {\n zoneTask._zoneDelegates = zoneDelegates;\n }\n }\n }\n _currentZoneFrame = _currentZoneFrame.parent;\n _currentTask = previousTask;\n }\n }\n scheduleTask(task) {\n if (task.zone && task.zone !== this) {\n // check if the task was rescheduled, the newZone\n // should not be the children of the original zone\n let newZone = this;\n while (newZone) {\n if (newZone === task.zone) {\n throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${task.zone.name}`);\n }\n newZone = newZone.parent;\n }\n }\n task._transitionTo(scheduling, notScheduled);\n const zoneDelegates = [];\n task._zoneDelegates = zoneDelegates;\n task._zone = this;\n try {\n task = this._zoneDelegate.scheduleTask(this, task);\n }\n catch (err) {\n // should set task's state to unknown when scheduleTask throw error\n // because the err may from reschedule, so the fromState maybe notScheduled\n task._transitionTo(unknown, scheduling, notScheduled);\n // TODO: @JiaLiPassion, should we check the result from handleError?\n this._zoneDelegate.handleError(this, err);\n throw err;\n }\n if (task._zoneDelegates === zoneDelegates) {\n // we have to check because internally the delegate can reschedule the task.\n this._updateTaskCount(task, 1);\n }\n if (task.state == scheduling) {\n task._transitionTo(scheduled, scheduling);\n }\n return task;\n }\n scheduleMicroTask(source, callback, data, customSchedule) {\n return this.scheduleTask(new ZoneTask(microTask, source, callback, data, customSchedule, undefined));\n }\n scheduleMacroTask(source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(macroTask, source, callback, data, customSchedule, customCancel));\n }\n scheduleEventTask(source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(eventTask, source, callback, data, customSchedule, customCancel));\n }\n cancelTask(task) {\n if (task.zone != this)\n throw new Error('A task can only be cancelled in the zone of creation! (Creation: ' +\n (task.zone || NO_ZONE).name +\n '; Execution: ' +\n this.name +\n ')');\n if (task.state !== scheduled && task.state !== running) {\n return;\n }\n task._transitionTo(canceling, scheduled, running);\n try {\n this._zoneDelegate.cancelTask(this, task);\n }\n catch (err) {\n // if error occurs when cancelTask, transit the state to unknown\n task._transitionTo(unknown, canceling);\n this._zoneDelegate.handleError(this, err);\n throw err;\n }\n this._updateTaskCount(task, -1);\n task._transitionTo(notScheduled, canceling);\n task.runCount = -1;\n return task;\n }\n _updateTaskCount(task, count) {\n const zoneDelegates = task._zoneDelegates;\n if (count == -1) {\n task._zoneDelegates = null;\n }\n for (let i = 0; i < zoneDelegates.length; i++) {\n zoneDelegates[i]._updateTaskCount(task.type, count);\n }\n }\n }\n const DELEGATE_ZS = {\n name: '',\n onHasTask: (delegate, _, target, hasTaskState) => delegate.hasTask(target, hasTaskState),\n onScheduleTask: (delegate, _, target, task) => delegate.scheduleTask(target, task),\n onInvokeTask: (delegate, _, target, task, applyThis, applyArgs) => delegate.invokeTask(target, task, applyThis, applyArgs),\n onCancelTask: (delegate, _, target, task) => delegate.cancelTask(target, task),\n };\n class _ZoneDelegate {\n get zone() {\n return this._zone;\n }\n constructor(zone, parentDelegate, zoneSpec) {\n this._taskCounts = {\n 'microTask': 0,\n 'macroTask': 0,\n 'eventTask': 0,\n };\n this._zone = zone;\n this._parentDelegate = parentDelegate;\n this._forkZS = zoneSpec && (zoneSpec && zoneSpec.onFork ? zoneSpec : parentDelegate._forkZS);\n this._forkDlgt = zoneSpec && (zoneSpec.onFork ? parentDelegate : parentDelegate._forkDlgt);\n this._forkCurrZone =\n zoneSpec && (zoneSpec.onFork ? this._zone : parentDelegate._forkCurrZone);\n this._interceptZS =\n zoneSpec && (zoneSpec.onIntercept ? zoneSpec : parentDelegate._interceptZS);\n this._interceptDlgt =\n zoneSpec && (zoneSpec.onIntercept ? parentDelegate : parentDelegate._interceptDlgt);\n this._interceptCurrZone =\n zoneSpec && (zoneSpec.onIntercept ? this._zone : parentDelegate._interceptCurrZone);\n this._invokeZS = zoneSpec && (zoneSpec.onInvoke ? zoneSpec : parentDelegate._invokeZS);\n this._invokeDlgt =\n zoneSpec && (zoneSpec.onInvoke ? parentDelegate : parentDelegate._invokeDlgt);\n this._invokeCurrZone =\n zoneSpec && (zoneSpec.onInvoke ? this._zone : parentDelegate._invokeCurrZone);\n this._handleErrorZS =\n zoneSpec && (zoneSpec.onHandleError ? zoneSpec : parentDelegate._handleErrorZS);\n this._handleErrorDlgt =\n zoneSpec && (zoneSpec.onHandleError ? parentDelegate : parentDelegate._handleErrorDlgt);\n this._handleErrorCurrZone =\n zoneSpec && (zoneSpec.onHandleError ? this._zone : parentDelegate._handleErrorCurrZone);\n this._scheduleTaskZS =\n zoneSpec && (zoneSpec.onScheduleTask ? zoneSpec : parentDelegate._scheduleTaskZS);\n this._scheduleTaskDlgt =\n zoneSpec && (zoneSpec.onScheduleTask ? parentDelegate : parentDelegate._scheduleTaskDlgt);\n this._scheduleTaskCurrZone =\n zoneSpec && (zoneSpec.onScheduleTask ? this._zone : parentDelegate._scheduleTaskCurrZone);\n this._invokeTaskZS =\n zoneSpec && (zoneSpec.onInvokeTask ? zoneSpec : parentDelegate._invokeTaskZS);\n this._invokeTaskDlgt =\n zoneSpec && (zoneSpec.onInvokeTask ? parentDelegate : parentDelegate._invokeTaskDlgt);\n this._invokeTaskCurrZone =\n zoneSpec && (zoneSpec.onInvokeTask ? this._zone : parentDelegate._invokeTaskCurrZone);\n this._cancelTaskZS =\n zoneSpec && (zoneSpec.onCancelTask ? zoneSpec : parentDelegate._cancelTaskZS);\n this._cancelTaskDlgt =\n zoneSpec && (zoneSpec.onCancelTask ? parentDelegate : parentDelegate._cancelTaskDlgt);\n this._cancelTaskCurrZone =\n zoneSpec && (zoneSpec.onCancelTask ? this._zone : parentDelegate._cancelTaskCurrZone);\n this._hasTaskZS = null;\n this._hasTaskDlgt = null;\n this._hasTaskDlgtOwner = null;\n this._hasTaskCurrZone = null;\n const zoneSpecHasTask = zoneSpec && zoneSpec.onHasTask;\n const parentHasTask = parentDelegate && parentDelegate._hasTaskZS;\n if (zoneSpecHasTask || parentHasTask) {\n // If we need to report hasTask, than this ZS needs to do ref counting on tasks. In such\n // a case all task related interceptors must go through this ZD. We can't short circuit it.\n this._hasTaskZS = zoneSpecHasTask ? zoneSpec : DELEGATE_ZS;\n this._hasTaskDlgt = parentDelegate;\n this._hasTaskDlgtOwner = this;\n this._hasTaskCurrZone = this._zone;\n if (!zoneSpec.onScheduleTask) {\n this._scheduleTaskZS = DELEGATE_ZS;\n this._scheduleTaskDlgt = parentDelegate;\n this._scheduleTaskCurrZone = this._zone;\n }\n if (!zoneSpec.onInvokeTask) {\n this._invokeTaskZS = DELEGATE_ZS;\n this._invokeTaskDlgt = parentDelegate;\n this._invokeTaskCurrZone = this._zone;\n }\n if (!zoneSpec.onCancelTask) {\n this._cancelTaskZS = DELEGATE_ZS;\n this._cancelTaskDlgt = parentDelegate;\n this._cancelTaskCurrZone = this._zone;\n }\n }\n }\n fork(targetZone, zoneSpec) {\n return this._forkZS\n ? this._forkZS.onFork(this._forkDlgt, this.zone, targetZone, zoneSpec)\n : new ZoneImpl(targetZone, zoneSpec);\n }\n intercept(targetZone, callback, source) {\n return this._interceptZS\n ? this._interceptZS.onIntercept(this._interceptDlgt, this._interceptCurrZone, targetZone, callback, source)\n : callback;\n }\n invoke(targetZone, callback, applyThis, applyArgs, source) {\n return this._invokeZS\n ? this._invokeZS.onInvoke(this._invokeDlgt, this._invokeCurrZone, targetZone, callback, applyThis, applyArgs, source)\n : callback.apply(applyThis, applyArgs);\n }\n handleError(targetZone, error) {\n return this._handleErrorZS\n ? this._handleErrorZS.onHandleError(this._handleErrorDlgt, this._handleErrorCurrZone, targetZone, error)\n : true;\n }\n scheduleTask(targetZone, task) {\n let returnTask = task;\n if (this._scheduleTaskZS) {\n if (this._hasTaskZS) {\n returnTask._zoneDelegates.push(this._hasTaskDlgtOwner);\n }\n returnTask = this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt, this._scheduleTaskCurrZone, targetZone, task);\n if (!returnTask)\n returnTask = task;\n }\n else {\n if (task.scheduleFn) {\n task.scheduleFn(task);\n }\n else if (task.type == microTask) {\n scheduleMicroTask(task);\n }\n else {\n throw new Error('Task is missing scheduleFn.');\n }\n }\n return returnTask;\n }\n invokeTask(targetZone, task, applyThis, applyArgs) {\n return this._invokeTaskZS\n ? this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt, this._invokeTaskCurrZone, targetZone, task, applyThis, applyArgs)\n : task.callback.apply(applyThis, applyArgs);\n }\n cancelTask(targetZone, task) {\n let value;\n if (this._cancelTaskZS) {\n value = this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt, this._cancelTaskCurrZone, targetZone, task);\n }\n else {\n if (!task.cancelFn) {\n throw Error('Task is not cancelable');\n }\n value = task.cancelFn(task);\n }\n return value;\n }\n hasTask(targetZone, isEmpty) {\n // hasTask should not throw error so other ZoneDelegate\n // can still trigger hasTask callback\n try {\n this._hasTaskZS &&\n this._hasTaskZS.onHasTask(this._hasTaskDlgt, this._hasTaskCurrZone, targetZone, isEmpty);\n }\n catch (err) {\n this.handleError(targetZone, err);\n }\n }\n // tslint:disable-next-line:require-internal-with-underscore\n _updateTaskCount(type, count) {\n const counts = this._taskCounts;\n const prev = counts[type];\n const next = (counts[type] = prev + count);\n if (next < 0) {\n throw new Error('More tasks executed then were scheduled.');\n }\n if (prev == 0 || next == 0) {\n const isEmpty = {\n microTask: counts['microTask'] > 0,\n macroTask: counts['macroTask'] > 0,\n eventTask: counts['eventTask'] > 0,\n change: type,\n };\n this.hasTask(this._zone, isEmpty);\n }\n }\n }\n class ZoneTask {\n constructor(type, source, callback, options, scheduleFn, cancelFn) {\n // tslint:disable-next-line:require-internal-with-underscore\n this._zone = null;\n this.runCount = 0;\n // tslint:disable-next-line:require-internal-with-underscore\n this._zoneDelegates = null;\n // tslint:disable-next-line:require-internal-with-underscore\n this._state = 'notScheduled';\n this.type = type;\n this.source = source;\n this.data = options;\n this.scheduleFn = scheduleFn;\n this.cancelFn = cancelFn;\n if (!callback) {\n throw new Error('callback is not defined');\n }\n this.callback = callback;\n const self = this;\n // TODO: @JiaLiPassion options should have interface\n if (type === eventTask && options && options.useG) {\n this.invoke = ZoneTask.invokeTask;\n }\n else {\n this.invoke = function () {\n return ZoneTask.invokeTask.call(global, self, this, arguments);\n };\n }\n }\n static invokeTask(task, target, args) {\n if (!task) {\n task = this;\n }\n _numberOfNestedTaskFrames++;\n try {\n task.runCount++;\n return task.zone.runTask(task, target, args);\n }\n finally {\n if (_numberOfNestedTaskFrames == 1) {\n drainMicroTaskQueue();\n }\n _numberOfNestedTaskFrames--;\n }\n }\n get zone() {\n return this._zone;\n }\n get state() {\n return this._state;\n }\n cancelScheduleRequest() {\n this._transitionTo(notScheduled, scheduling);\n }\n // tslint:disable-next-line:require-internal-with-underscore\n _transitionTo(toState, fromState1, fromState2) {\n if (this._state === fromState1 || this._state === fromState2) {\n this._state = toState;\n if (toState == notScheduled) {\n this._zoneDelegates = null;\n }\n }\n else {\n throw new Error(`${this.type} '${this.source}': can not transition to '${toState}', expecting state '${fromState1}'${fromState2 ? \" or '\" + fromState2 + \"'\" : ''}, was '${this._state}'.`);\n }\n }\n toString() {\n if (this.data && typeof this.data.handleId !== 'undefined') {\n return this.data.handleId.toString();\n }\n else {\n return Object.prototype.toString.call(this);\n }\n }\n // add toJSON method to prevent cyclic error when\n // call JSON.stringify(zoneTask)\n toJSON() {\n return {\n type: this.type,\n state: this.state,\n source: this.source,\n zone: this.zone.name,\n runCount: this.runCount,\n };\n }\n }\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n /// MICROTASK QUEUE\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n const symbolSetTimeout = __symbol__('setTimeout');\n const symbolPromise = __symbol__('Promise');\n const symbolThen = __symbol__('then');\n let _microTaskQueue = [];\n let _isDrainingMicrotaskQueue = false;\n let nativeMicroTaskQueuePromise;\n function nativeScheduleMicroTask(func) {\n if (!nativeMicroTaskQueuePromise) {\n if (global[symbolPromise]) {\n nativeMicroTaskQueuePromise = global[symbolPromise].resolve(0);\n }\n }\n if (nativeMicroTaskQueuePromise) {\n let nativeThen = nativeMicroTaskQueuePromise[symbolThen];\n if (!nativeThen) {\n // native Promise is not patchable, we need to use `then` directly\n // issue 1078\n nativeThen = nativeMicroTaskQueuePromise['then'];\n }\n nativeThen.call(nativeMicroTaskQueuePromise, func);\n }\n else {\n global[symbolSetTimeout](func, 0);\n }\n }\n function scheduleMicroTask(task) {\n // if we are not running in any task, and there has not been anything scheduled\n // we must bootstrap the initial task creation by manually scheduling the drain\n if (_numberOfNestedTaskFrames === 0 && _microTaskQueue.length === 0) {\n // We are not running in Task, so we need to kickstart the microtask queue.\n nativeScheduleMicroTask(drainMicroTaskQueue);\n }\n task && _microTaskQueue.push(task);\n }\n function drainMicroTaskQueue() {\n if (!_isDrainingMicrotaskQueue) {\n _isDrainingMicrotaskQueue = true;\n while (_microTaskQueue.length) {\n const queue = _microTaskQueue;\n _microTaskQueue = [];\n for (let i = 0; i < queue.length; i++) {\n const task = queue[i];\n try {\n task.zone.runTask(task, null, null);\n }\n catch (error) {\n _api.onUnhandledError(error);\n }\n }\n }\n _api.microtaskDrainDone();\n _isDrainingMicrotaskQueue = false;\n }\n }\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n /// BOOTSTRAP\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n const NO_ZONE = { name: 'NO ZONE' };\n const notScheduled = 'notScheduled', scheduling = 'scheduling', scheduled = 'scheduled', running = 'running', canceling = 'canceling', unknown = 'unknown';\n const microTask = 'microTask', macroTask = 'macroTask', eventTask = 'eventTask';\n const patches = {};\n const _api = {\n symbol: __symbol__,\n currentZoneFrame: () => _currentZoneFrame,\n onUnhandledError: noop,\n microtaskDrainDone: noop,\n scheduleMicroTask: scheduleMicroTask,\n showUncaughtError: () => !ZoneImpl[__symbol__('ignoreConsoleErrorUncaughtError')],\n patchEventTarget: () => [],\n patchOnProperties: noop,\n patchMethod: () => noop,\n bindArguments: () => [],\n patchThen: () => noop,\n patchMacroTask: () => noop,\n patchEventPrototype: () => noop,\n isIEOrEdge: () => false,\n getGlobalObjects: () => undefined,\n ObjectDefineProperty: () => noop,\n ObjectGetOwnPropertyDescriptor: () => undefined,\n ObjectCreate: () => undefined,\n ArraySlice: () => [],\n patchClass: () => noop,\n wrapWithCurrentZone: () => noop,\n filterProperties: () => [],\n attachOriginToPatched: () => noop,\n _redefineProperty: () => noop,\n patchCallbacks: () => noop,\n nativeScheduleMicroTask: nativeScheduleMicroTask,\n };\n let _currentZoneFrame = { parent: null, zone: new ZoneImpl(null, null) };\n let _currentTask = null;\n let _numberOfNestedTaskFrames = 0;\n function noop() { }\n performanceMeasure('Zone', 'Zone');\n return ZoneImpl;\n}\n\nfunction loadZone() {\n // if global['Zone'] already exists (maybe zone.js was already loaded or\n // some other lib also registered a global object named Zone), we may need\n // to throw an error, but sometimes user may not want this error.\n // For example,\n // we have two web pages, page1 includes zone.js, page2 doesn't.\n // and the 1st time user load page1 and page2, everything work fine,\n // but when user load page2 again, error occurs because global['Zone'] already exists.\n // so we add a flag to let user choose whether to throw this error or not.\n // By default, if existing Zone is from zone.js, we will not throw the error.\n const global = globalThis;\n const checkDuplicate = global[__symbol__('forceDuplicateZoneCheck')] === true;\n if (global['Zone'] && (checkDuplicate || typeof global['Zone'].__symbol__ !== 'function')) {\n throw new Error('Zone already loaded.');\n }\n // Initialize global `Zone` constant.\n global['Zone'] ??= initZone();\n return global['Zone'];\n}\n\n/**\n * Suppress closure compiler errors about unknown 'Zone' variable\n * @fileoverview\n * @suppress {undefinedVars,globalThis,missingRequire}\n */\n// issue #989, to reduce bundle size, use short name\n/** Object.getOwnPropertyDescriptor */\nconst ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n/** Object.defineProperty */\nconst ObjectDefineProperty = Object.defineProperty;\n/** Object.getPrototypeOf */\nconst ObjectGetPrototypeOf = Object.getPrototypeOf;\n/** Object.create */\nconst ObjectCreate = Object.create;\n/** Array.prototype.slice */\nconst ArraySlice = Array.prototype.slice;\n/** addEventListener string const */\nconst ADD_EVENT_LISTENER_STR = 'addEventListener';\n/** removeEventListener string const */\nconst REMOVE_EVENT_LISTENER_STR = 'removeEventListener';\n/** zoneSymbol addEventListener */\nconst ZONE_SYMBOL_ADD_EVENT_LISTENER = __symbol__(ADD_EVENT_LISTENER_STR);\n/** zoneSymbol removeEventListener */\nconst ZONE_SYMBOL_REMOVE_EVENT_LISTENER = __symbol__(REMOVE_EVENT_LISTENER_STR);\n/** true string const */\nconst TRUE_STR = 'true';\n/** false string const */\nconst FALSE_STR = 'false';\n/** Zone symbol prefix string const. */\nconst ZONE_SYMBOL_PREFIX = __symbol__('');\nfunction wrapWithCurrentZone(callback, source) {\n return Zone.current.wrap(callback, source);\n}\nfunction scheduleMacroTaskWithCurrentZone(source, callback, data, customSchedule, customCancel) {\n return Zone.current.scheduleMacroTask(source, callback, data, customSchedule, customCancel);\n}\nconst zoneSymbol = __symbol__;\nconst isWindowExists = typeof window !== 'undefined';\nconst internalWindow = isWindowExists ? window : undefined;\nconst _global = (isWindowExists && internalWindow) || globalThis;\nconst REMOVE_ATTRIBUTE = 'removeAttribute';\nfunction bindArguments(args, source) {\n for (let i = args.length - 1; i >= 0; i--) {\n if (typeof args[i] === 'function') {\n args[i] = wrapWithCurrentZone(args[i], source + '_' + i);\n }\n }\n return args;\n}\nfunction patchPrototype(prototype, fnNames) {\n const source = prototype.constructor['name'];\n for (let i = 0; i < fnNames.length; i++) {\n const name = fnNames[i];\n const delegate = prototype[name];\n if (delegate) {\n const prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, name);\n if (!isPropertyWritable(prototypeDesc)) {\n continue;\n }\n prototype[name] = ((delegate) => {\n const patched = function () {\n return delegate.apply(this, bindArguments(arguments, source + '.' + name));\n };\n attachOriginToPatched(patched, delegate);\n return patched;\n })(delegate);\n }\n }\n}\nfunction isPropertyWritable(propertyDesc) {\n if (!propertyDesc) {\n return true;\n }\n if (propertyDesc.writable === false) {\n return false;\n }\n return !(typeof propertyDesc.get === 'function' && typeof propertyDesc.set === 'undefined');\n}\nconst isWebWorker = typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope;\n// Make sure to access `process` through `_global` so that WebPack does not accidentally browserify\n// this code.\nconst isNode = !('nw' in _global) &&\n typeof _global.process !== 'undefined' &&\n _global.process.toString() === '[object process]';\nconst isBrowser = !isNode && !isWebWorker && !!(isWindowExists && internalWindow['HTMLElement']);\n// we are in electron of nw, so we are both browser and nodejs\n// Make sure to access `process` through `_global` so that WebPack does not accidentally browserify\n// this code.\nconst isMix = typeof _global.process !== 'undefined' &&\n _global.process.toString() === '[object process]' &&\n !isWebWorker &&\n !!(isWindowExists && internalWindow['HTMLElement']);\nconst zoneSymbolEventNames$1 = {};\nconst enableBeforeunloadSymbol = zoneSymbol('enable_beforeunload');\nconst wrapFn = function (event) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n let eventNameSymbol = zoneSymbolEventNames$1[event.type];\n if (!eventNameSymbol) {\n eventNameSymbol = zoneSymbolEventNames$1[event.type] = zoneSymbol('ON_PROPERTY' + event.type);\n }\n const target = this || event.target || _global;\n const listener = target[eventNameSymbol];\n let result;\n if (isBrowser && target === internalWindow && event.type === 'error') {\n // window.onerror have different signature\n // https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror#window.onerror\n // and onerror callback will prevent default when callback return true\n const errorEvent = event;\n result =\n listener &&\n listener.call(this, errorEvent.message, errorEvent.filename, errorEvent.lineno, errorEvent.colno, errorEvent.error);\n if (result === true) {\n event.preventDefault();\n }\n }\n else {\n result = listener && listener.apply(this, arguments);\n if (\n // https://github.com/angular/angular/issues/47579\n // https://www.w3.org/TR/2011/WD-html5-20110525/history.html#beforeunloadevent\n // This is the only specific case we should check for. The spec defines that the\n // `returnValue` attribute represents the message to show the user. When the event\n // is created, this attribute must be set to the empty string.\n event.type === 'beforeunload' &&\n // To prevent any breaking changes resulting from this change, given that\n // it was already causing a significant number of failures in G3, we have hidden\n // that behavior behind a global configuration flag. Consumers can enable this\n // flag explicitly if they want the `beforeunload` event to be handled as defined\n // in the specification.\n _global[enableBeforeunloadSymbol] &&\n // The IDL event definition is `attribute DOMString returnValue`, so we check whether\n // `typeof result` is a string.\n typeof result === 'string') {\n event.returnValue = result;\n }\n else if (result != undefined && !result) {\n event.preventDefault();\n }\n }\n return result;\n};\nfunction patchProperty(obj, prop, prototype) {\n let desc = ObjectGetOwnPropertyDescriptor(obj, prop);\n if (!desc && prototype) {\n // when patch window object, use prototype to check prop exist or not\n const prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, prop);\n if (prototypeDesc) {\n desc = { enumerable: true, configurable: true };\n }\n }\n // if the descriptor not exists or is not configurable\n // just return\n if (!desc || !desc.configurable) {\n return;\n }\n const onPropPatchedSymbol = zoneSymbol('on' + prop + 'patched');\n if (obj.hasOwnProperty(onPropPatchedSymbol) && obj[onPropPatchedSymbol]) {\n return;\n }\n // A property descriptor cannot have getter/setter and be writable\n // deleting the writable and value properties avoids this error:\n //\n // TypeError: property descriptors must not specify a value or be writable when a\n // getter or setter has been specified\n delete desc.writable;\n delete desc.value;\n const originalDescGet = desc.get;\n const originalDescSet = desc.set;\n // slice(2) cuz 'onclick' -> 'click', etc\n const eventName = prop.slice(2);\n let eventNameSymbol = zoneSymbolEventNames$1[eventName];\n if (!eventNameSymbol) {\n eventNameSymbol = zoneSymbolEventNames$1[eventName] = zoneSymbol('ON_PROPERTY' + eventName);\n }\n desc.set = function (newValue) {\n // in some of windows's onproperty callback, this is undefined\n // so we need to check it\n let target = this;\n if (!target && obj === _global) {\n target = _global;\n }\n if (!target) {\n return;\n }\n const previousValue = target[eventNameSymbol];\n if (typeof previousValue === 'function') {\n target.removeEventListener(eventName, wrapFn);\n }\n // issue #978, when onload handler was added before loading zone.js\n // we should remove it with originalDescSet\n originalDescSet && originalDescSet.call(target, null);\n target[eventNameSymbol] = newValue;\n if (typeof newValue === 'function') {\n target.addEventListener(eventName, wrapFn, false);\n }\n };\n // The getter would return undefined for unassigned properties but the default value of an\n // unassigned property is null\n desc.get = function () {\n // in some of windows's onproperty callback, this is undefined\n // so we need to check it\n let target = this;\n if (!target && obj === _global) {\n target = _global;\n }\n if (!target) {\n return null;\n }\n const listener = target[eventNameSymbol];\n if (listener) {\n return listener;\n }\n else if (originalDescGet) {\n // result will be null when use inline event attribute,\n // such as \n // because the onclick function is internal raw uncompiled handler\n // the onclick will be evaluated when first time event was triggered or\n // the property is accessed, https://github.com/angular/zone.js/issues/525\n // so we should use original native get to retrieve the handler\n let value = originalDescGet.call(this);\n if (value) {\n desc.set.call(this, value);\n if (typeof target[REMOVE_ATTRIBUTE] === 'function') {\n target.removeAttribute(prop);\n }\n return value;\n }\n }\n return null;\n };\n ObjectDefineProperty(obj, prop, desc);\n obj[onPropPatchedSymbol] = true;\n}\nfunction patchOnProperties(obj, properties, prototype) {\n if (properties) {\n for (let i = 0; i < properties.length; i++) {\n patchProperty(obj, 'on' + properties[i], prototype);\n }\n }\n else {\n const onProperties = [];\n for (const prop in obj) {\n if (prop.slice(0, 2) == 'on') {\n onProperties.push(prop);\n }\n }\n for (let j = 0; j < onProperties.length; j++) {\n patchProperty(obj, onProperties[j], prototype);\n }\n }\n}\nconst originalInstanceKey = zoneSymbol('originalInstance');\n// wrap some native API on `window`\nfunction patchClass(className) {\n const OriginalClass = _global[className];\n if (!OriginalClass)\n return;\n // keep original class in global\n _global[zoneSymbol(className)] = OriginalClass;\n _global[className] = function () {\n const a = bindArguments(arguments, className);\n switch (a.length) {\n case 0:\n this[originalInstanceKey] = new OriginalClass();\n break;\n case 1:\n this[originalInstanceKey] = new OriginalClass(a[0]);\n break;\n case 2:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1]);\n break;\n case 3:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2]);\n break;\n case 4:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2], a[3]);\n break;\n default:\n throw new Error('Arg list too long.');\n }\n };\n // attach original delegate to patched function\n attachOriginToPatched(_global[className], OriginalClass);\n const instance = new OriginalClass(function () { });\n let prop;\n for (prop in instance) {\n // https://bugs.webkit.org/show_bug.cgi?id=44721\n if (className === 'XMLHttpRequest' && prop === 'responseBlob')\n continue;\n (function (prop) {\n if (typeof instance[prop] === 'function') {\n _global[className].prototype[prop] = function () {\n return this[originalInstanceKey][prop].apply(this[originalInstanceKey], arguments);\n };\n }\n else {\n ObjectDefineProperty(_global[className].prototype, prop, {\n set: function (fn) {\n if (typeof fn === 'function') {\n this[originalInstanceKey][prop] = wrapWithCurrentZone(fn, className + '.' + prop);\n // keep callback in wrapped function so we can\n // use it in Function.prototype.toString to return\n // the native one.\n attachOriginToPatched(this[originalInstanceKey][prop], fn);\n }\n else {\n this[originalInstanceKey][prop] = fn;\n }\n },\n get: function () {\n return this[originalInstanceKey][prop];\n },\n });\n }\n })(prop);\n }\n for (prop in OriginalClass) {\n if (prop !== 'prototype' && OriginalClass.hasOwnProperty(prop)) {\n _global[className][prop] = OriginalClass[prop];\n }\n }\n}\nfunction patchMethod(target, name, patchFn) {\n let proto = target;\n while (proto && !proto.hasOwnProperty(name)) {\n proto = ObjectGetPrototypeOf(proto);\n }\n if (!proto && target[name]) {\n // somehow we did not find it, but we can see it. This happens on IE for Window properties.\n proto = target;\n }\n const delegateName = zoneSymbol(name);\n let delegate = null;\n if (proto && (!(delegate = proto[delegateName]) || !proto.hasOwnProperty(delegateName))) {\n delegate = proto[delegateName] = proto[name];\n // check whether proto[name] is writable\n // some property is readonly in safari, such as HtmlCanvasElement.prototype.toBlob\n const desc = proto && ObjectGetOwnPropertyDescriptor(proto, name);\n if (isPropertyWritable(desc)) {\n const patchDelegate = patchFn(delegate, delegateName, name);\n proto[name] = function () {\n return patchDelegate(this, arguments);\n };\n attachOriginToPatched(proto[name], delegate);\n }\n }\n return delegate;\n}\n// TODO: @JiaLiPassion, support cancel task later if necessary\nfunction patchMacroTask(obj, funcName, metaCreator) {\n let setNative = null;\n function scheduleTask(task) {\n const data = task.data;\n data.args[data.cbIdx] = function () {\n task.invoke.apply(this, arguments);\n };\n setNative.apply(data.target, data.args);\n return task;\n }\n setNative = patchMethod(obj, funcName, (delegate) => function (self, args) {\n const meta = metaCreator(self, args);\n if (meta.cbIdx >= 0 && typeof args[meta.cbIdx] === 'function') {\n return scheduleMacroTaskWithCurrentZone(meta.name, args[meta.cbIdx], meta, scheduleTask);\n }\n else {\n // cause an error by calling it directly.\n return delegate.apply(self, args);\n }\n });\n}\nfunction attachOriginToPatched(patched, original) {\n patched[zoneSymbol('OriginalDelegate')] = original;\n}\nlet isDetectedIEOrEdge = false;\nlet ieOrEdge = false;\nfunction isIE() {\n try {\n const ua = internalWindow.navigator.userAgent;\n if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1) {\n return true;\n }\n }\n catch (error) { }\n return false;\n}\nfunction isIEOrEdge() {\n if (isDetectedIEOrEdge) {\n return ieOrEdge;\n }\n isDetectedIEOrEdge = true;\n try {\n const ua = internalWindow.navigator.userAgent;\n if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1 || ua.indexOf('Edge/') !== -1) {\n ieOrEdge = true;\n }\n }\n catch (error) { }\n return ieOrEdge;\n}\nfunction isFunction(value) {\n return typeof value === 'function';\n}\nfunction isNumber(value) {\n return typeof value === 'number';\n}\n\n/**\n * @fileoverview\n * @suppress {missingRequire}\n */\n// Note that passive event listeners are now supported by most modern browsers,\n// including Chrome, Firefox, Safari, and Edge. There's a pending change that\n// would remove support for legacy browsers by zone.js. Removing `passiveSupported`\n// from the codebase will reduce the final code size for existing apps that still use zone.js.\nlet passiveSupported = false;\nif (typeof window !== 'undefined') {\n try {\n const options = Object.defineProperty({}, 'passive', {\n get: function () {\n passiveSupported = true;\n },\n });\n // Note: We pass the `options` object as the event handler too. This is not compatible with the\n // signature of `addEventListener` or `removeEventListener` but enables us to remove the handler\n // without an actual handler.\n window.addEventListener('test', options, options);\n window.removeEventListener('test', options, options);\n }\n catch (err) {\n passiveSupported = false;\n }\n}\n// an identifier to tell ZoneTask do not create a new invoke closure\nconst OPTIMIZED_ZONE_EVENT_TASK_DATA = {\n useG: true,\n};\nconst zoneSymbolEventNames = {};\nconst globalSources = {};\nconst EVENT_NAME_SYMBOL_REGX = new RegExp('^' + ZONE_SYMBOL_PREFIX + '(\\\\w+)(true|false)$');\nconst IMMEDIATE_PROPAGATION_SYMBOL = zoneSymbol('propagationStopped');\nfunction prepareEventNames(eventName, eventNameToString) {\n const falseEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + FALSE_STR;\n const trueEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + TRUE_STR;\n const symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n const symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames[eventName] = {};\n zoneSymbolEventNames[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture;\n}\nfunction patchEventTarget(_global, api, apis, patchOptions) {\n const ADD_EVENT_LISTENER = (patchOptions && patchOptions.add) || ADD_EVENT_LISTENER_STR;\n const REMOVE_EVENT_LISTENER = (patchOptions && patchOptions.rm) || REMOVE_EVENT_LISTENER_STR;\n const LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.listeners) || 'eventListeners';\n const REMOVE_ALL_LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.rmAll) || 'removeAllListeners';\n const zoneSymbolAddEventListener = zoneSymbol(ADD_EVENT_LISTENER);\n const ADD_EVENT_LISTENER_SOURCE = '.' + ADD_EVENT_LISTENER + ':';\n const PREPEND_EVENT_LISTENER = 'prependListener';\n const PREPEND_EVENT_LISTENER_SOURCE = '.' + PREPEND_EVENT_LISTENER + ':';\n const invokeTask = function (task, target, event) {\n // for better performance, check isRemoved which is set\n // by removeEventListener\n if (task.isRemoved) {\n return;\n }\n const delegate = task.callback;\n if (typeof delegate === 'object' && delegate.handleEvent) {\n // create the bind version of handleEvent when invoke\n task.callback = (event) => delegate.handleEvent(event);\n task.originalDelegate = delegate;\n }\n // invoke static task.invoke\n // need to try/catch error here, otherwise, the error in one event listener\n // will break the executions of the other event listeners. Also error will\n // not remove the event listener when `once` options is true.\n let error;\n try {\n task.invoke(task, target, [event]);\n }\n catch (err) {\n error = err;\n }\n const options = task.options;\n if (options && typeof options === 'object' && options.once) {\n // if options.once is true, after invoke once remove listener here\n // only browser need to do this, nodejs eventEmitter will cal removeListener\n // inside EventEmitter.once\n const delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n target[REMOVE_EVENT_LISTENER].call(target, event.type, delegate, options);\n }\n return error;\n };\n function globalCallback(context, event, isCapture) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n // event.target is needed for Samsung TV and SourceBuffer\n // || global is needed https://github.com/angular/zone.js/issues/190\n const target = context || event.target || _global;\n const tasks = target[zoneSymbolEventNames[event.type][isCapture ? TRUE_STR : FALSE_STR]];\n if (tasks) {\n const errors = [];\n // invoke all tasks which attached to current target with given event.type and capture = false\n // for performance concern, if task.length === 1, just invoke\n if (tasks.length === 1) {\n const err = invokeTask(tasks[0], target, event);\n err && errors.push(err);\n }\n else {\n // https://github.com/angular/zone.js/issues/836\n // copy the tasks array before invoke, to avoid\n // the callback will remove itself or other listener\n const copyTasks = tasks.slice();\n for (let i = 0; i < copyTasks.length; i++) {\n if (event && event[IMMEDIATE_PROPAGATION_SYMBOL] === true) {\n break;\n }\n const err = invokeTask(copyTasks[i], target, event);\n err && errors.push(err);\n }\n }\n // Since there is only one error, we don't need to schedule microTask\n // to throw the error.\n if (errors.length === 1) {\n throw errors[0];\n }\n else {\n for (let i = 0; i < errors.length; i++) {\n const err = errors[i];\n api.nativeScheduleMicroTask(() => {\n throw err;\n });\n }\n }\n }\n }\n // global shared zoneAwareCallback to handle all event callback with capture = false\n const globalZoneAwareCallback = function (event) {\n return globalCallback(this, event, false);\n };\n // global shared zoneAwareCallback to handle all event callback with capture = true\n const globalZoneAwareCaptureCallback = function (event) {\n return globalCallback(this, event, true);\n };\n function patchEventTargetMethods(obj, patchOptions) {\n if (!obj) {\n return false;\n }\n let useGlobalCallback = true;\n if (patchOptions && patchOptions.useG !== undefined) {\n useGlobalCallback = patchOptions.useG;\n }\n const validateHandler = patchOptions && patchOptions.vh;\n let checkDuplicate = true;\n if (patchOptions && patchOptions.chkDup !== undefined) {\n checkDuplicate = patchOptions.chkDup;\n }\n let returnTarget = false;\n if (patchOptions && patchOptions.rt !== undefined) {\n returnTarget = patchOptions.rt;\n }\n let proto = obj;\n while (proto && !proto.hasOwnProperty(ADD_EVENT_LISTENER)) {\n proto = ObjectGetPrototypeOf(proto);\n }\n if (!proto && obj[ADD_EVENT_LISTENER]) {\n // somehow we did not find it, but we can see it. This happens on IE for Window properties.\n proto = obj;\n }\n if (!proto) {\n return false;\n }\n if (proto[zoneSymbolAddEventListener]) {\n return false;\n }\n const eventNameToString = patchOptions && patchOptions.eventNameToString;\n // We use a shared global `taskData` to pass data for `scheduleEventTask`,\n // eliminating the need to create a new object solely for passing data.\n // WARNING: This object has a static lifetime, meaning it is not created\n // each time `addEventListener` is called. It is instantiated only once\n // and captured by reference inside the `addEventListener` and\n // `removeEventListener` functions. Do not add any new properties to this\n // object, as doing so would necessitate maintaining the information\n // between `addEventListener` calls.\n const taskData = {};\n const nativeAddEventListener = (proto[zoneSymbolAddEventListener] = proto[ADD_EVENT_LISTENER]);\n const nativeRemoveEventListener = (proto[zoneSymbol(REMOVE_EVENT_LISTENER)] =\n proto[REMOVE_EVENT_LISTENER]);\n const nativeListeners = (proto[zoneSymbol(LISTENERS_EVENT_LISTENER)] =\n proto[LISTENERS_EVENT_LISTENER]);\n const nativeRemoveAllListeners = (proto[zoneSymbol(REMOVE_ALL_LISTENERS_EVENT_LISTENER)] =\n proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER]);\n let nativePrependEventListener;\n if (patchOptions && patchOptions.prepend) {\n nativePrependEventListener = proto[zoneSymbol(patchOptions.prepend)] =\n proto[patchOptions.prepend];\n }\n /**\n * This util function will build an option object with passive option\n * to handle all possible input from the user.\n */\n function buildEventListenerOptions(options, passive) {\n if (!passiveSupported && typeof options === 'object' && options) {\n // doesn't support passive but user want to pass an object as options.\n // this will not work on some old browser, so we just pass a boolean\n // as useCapture parameter\n return !!options.capture;\n }\n if (!passiveSupported || !passive) {\n return options;\n }\n if (typeof options === 'boolean') {\n return { capture: options, passive: true };\n }\n if (!options) {\n return { passive: true };\n }\n if (typeof options === 'object' && options.passive !== false) {\n return { ...options, passive: true };\n }\n return options;\n }\n const customScheduleGlobal = function (task) {\n // if there is already a task for the eventName + capture,\n // just return, because we use the shared globalZoneAwareCallback here.\n if (taskData.isExisting) {\n return;\n }\n return nativeAddEventListener.call(taskData.target, taskData.eventName, taskData.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, taskData.options);\n };\n /**\n * In the context of events and listeners, this function will be\n * called at the end by `cancelTask`, which, in turn, calls `task.cancelFn`.\n * Cancelling a task is primarily used to remove event listeners from\n * the task target.\n */\n const customCancelGlobal = function (task) {\n // if task is not marked as isRemoved, this call is directly\n // from Zone.prototype.cancelTask, we should remove the task\n // from tasksList of target first\n if (!task.isRemoved) {\n const symbolEventNames = zoneSymbolEventNames[task.eventName];\n let symbolEventName;\n if (symbolEventNames) {\n symbolEventName = symbolEventNames[task.capture ? TRUE_STR : FALSE_STR];\n }\n const existingTasks = symbolEventName && task.target[symbolEventName];\n if (existingTasks) {\n for (let i = 0; i < existingTasks.length; i++) {\n const existingTask = existingTasks[i];\n if (existingTask === task) {\n existingTasks.splice(i, 1);\n // set isRemoved to data for faster invokeTask check\n task.isRemoved = true;\n if (task.removeAbortListener) {\n task.removeAbortListener();\n task.removeAbortListener = null;\n }\n if (existingTasks.length === 0) {\n // all tasks for the eventName + capture have gone,\n // remove globalZoneAwareCallback and remove the task cache from target\n task.allRemoved = true;\n task.target[symbolEventName] = null;\n }\n break;\n }\n }\n }\n }\n // if all tasks for the eventName + capture have gone,\n // we will really remove the global event callback,\n // if not, return\n if (!task.allRemoved) {\n return;\n }\n return nativeRemoveEventListener.call(task.target, task.eventName, task.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, task.options);\n };\n const customScheduleNonGlobal = function (task) {\n return nativeAddEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options);\n };\n const customSchedulePrepend = function (task) {\n return nativePrependEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options);\n };\n const customCancelNonGlobal = function (task) {\n return nativeRemoveEventListener.call(task.target, task.eventName, task.invoke, task.options);\n };\n const customSchedule = useGlobalCallback ? customScheduleGlobal : customScheduleNonGlobal;\n const customCancel = useGlobalCallback ? customCancelGlobal : customCancelNonGlobal;\n const compareTaskCallbackVsDelegate = function (task, delegate) {\n const typeOfDelegate = typeof delegate;\n return ((typeOfDelegate === 'function' && task.callback === delegate) ||\n (typeOfDelegate === 'object' && task.originalDelegate === delegate));\n };\n const compare = patchOptions && patchOptions.diff ? patchOptions.diff : compareTaskCallbackVsDelegate;\n const unpatchedEvents = Zone[zoneSymbol('UNPATCHED_EVENTS')];\n const passiveEvents = _global[zoneSymbol('PASSIVE_EVENTS')];\n function copyEventListenerOptions(options) {\n if (typeof options === 'object' && options !== null) {\n // We need to destructure the target `options` object since it may\n // be frozen or sealed (possibly provided implicitly by a third-party\n // library), or its properties may be readonly.\n const newOptions = { ...options };\n // The `signal` option was recently introduced, which caused regressions in\n // third-party scenarios where `AbortController` was directly provided to\n // `addEventListener` as options. For instance, in cases like\n // `document.addEventListener('keydown', callback, abortControllerInstance)`,\n // which is valid because `AbortController` includes a `signal` getter, spreading\n // `{...options}` wouldn't copy the `signal`. Additionally, using `Object.create`\n // isn't feasible since `AbortController` is a built-in object type, and attempting\n // to create a new object directly with it as the prototype might result in\n // unexpected behavior.\n if (options.signal) {\n newOptions.signal = options.signal;\n }\n return newOptions;\n }\n return options;\n }\n const makeAddListener = function (nativeListener, addSource, customScheduleFn, customCancelFn, returnTarget = false, prepend = false) {\n return function () {\n const target = this || _global;\n let eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n let delegate = arguments[1];\n if (!delegate) {\n return nativeListener.apply(this, arguments);\n }\n if (isNode && eventName === 'uncaughtException') {\n // don't patch uncaughtException of nodejs to prevent endless loop\n return nativeListener.apply(this, arguments);\n }\n // don't create the bind delegate function for handleEvent\n // case here to improve addEventListener performance\n // we will create the bind delegate when invoke\n let isHandleEvent = false;\n if (typeof delegate !== 'function') {\n if (!delegate.handleEvent) {\n return nativeListener.apply(this, arguments);\n }\n isHandleEvent = true;\n }\n if (validateHandler && !validateHandler(nativeListener, delegate, target, arguments)) {\n return;\n }\n const passive = passiveSupported && !!passiveEvents && passiveEvents.indexOf(eventName) !== -1;\n const options = copyEventListenerOptions(buildEventListenerOptions(arguments[2], passive));\n const signal = options?.signal;\n if (signal?.aborted) {\n // the signal is an aborted one, just return without attaching the event listener.\n return;\n }\n if (unpatchedEvents) {\n // check unpatched list\n for (let i = 0; i < unpatchedEvents.length; i++) {\n if (eventName === unpatchedEvents[i]) {\n if (passive) {\n return nativeListener.call(target, eventName, delegate, options);\n }\n else {\n return nativeListener.apply(this, arguments);\n }\n }\n }\n }\n const capture = !options ? false : typeof options === 'boolean' ? true : options.capture;\n const once = options && typeof options === 'object' ? options.once : false;\n const zone = Zone.current;\n let symbolEventNames = zoneSymbolEventNames[eventName];\n if (!symbolEventNames) {\n prepareEventNames(eventName, eventNameToString);\n symbolEventNames = zoneSymbolEventNames[eventName];\n }\n const symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR];\n let existingTasks = target[symbolEventName];\n let isExisting = false;\n if (existingTasks) {\n // already have task registered\n isExisting = true;\n if (checkDuplicate) {\n for (let i = 0; i < existingTasks.length; i++) {\n if (compare(existingTasks[i], delegate)) {\n // same callback, same capture, same event name, just return\n return;\n }\n }\n }\n }\n else {\n existingTasks = target[symbolEventName] = [];\n }\n let source;\n const constructorName = target.constructor['name'];\n const targetSource = globalSources[constructorName];\n if (targetSource) {\n source = targetSource[eventName];\n }\n if (!source) {\n source =\n constructorName +\n addSource +\n (eventNameToString ? eventNameToString(eventName) : eventName);\n }\n // In the code below, `options` should no longer be reassigned; instead, it\n // should only be mutated. This is because we pass that object to the native\n // `addEventListener`.\n // It's generally recommended to use the same object reference for options.\n // This ensures consistency and avoids potential issues.\n taskData.options = options;\n if (once) {\n // When using `addEventListener` with the `once` option, we don't pass\n // the `once` option directly to the native `addEventListener` method.\n // Instead, we keep the `once` setting and handle it ourselves.\n taskData.options.once = false;\n }\n taskData.target = target;\n taskData.capture = capture;\n taskData.eventName = eventName;\n taskData.isExisting = isExisting;\n const data = useGlobalCallback ? OPTIMIZED_ZONE_EVENT_TASK_DATA : undefined;\n // keep taskData into data to allow onScheduleEventTask to access the task information\n if (data) {\n data.taskData = taskData;\n }\n if (signal) {\n // When using `addEventListener` with the `signal` option, we don't pass\n // the `signal` option directly to the native `addEventListener` method.\n // Instead, we keep the `signal` setting and handle it ourselves.\n taskData.options.signal = undefined;\n }\n // The `scheduleEventTask` function will ultimately call `customScheduleGlobal`,\n // which in turn calls the native `addEventListener`. This is why `taskData.options`\n // is updated before scheduling the task, as `customScheduleGlobal` uses\n // `taskData.options` to pass it to the native `addEventListener`.\n const task = zone.scheduleEventTask(source, delegate, data, customScheduleFn, customCancelFn);\n if (signal) {\n // after task is scheduled, we need to store the signal back to task.options\n taskData.options.signal = signal;\n // Wrapping `task` in a weak reference would not prevent memory leaks. Weak references are\n // primarily used for preventing strong references cycles. `onAbort` is always reachable\n // as it's an event listener, so its closure retains a strong reference to the `task`.\n const onAbort = () => task.zone.cancelTask(task);\n nativeListener.call(signal, 'abort', onAbort, { once: true });\n // We need to remove the `abort` listener when the event listener is going to be removed,\n // as it creates a closure that captures `task`. This closure retains a reference to the\n // `task` object even after it goes out of scope, preventing `task` from being garbage\n // collected.\n task.removeAbortListener = () => signal.removeEventListener('abort', onAbort);\n }\n // should clear taskData.target to avoid memory leak\n // issue, https://github.com/angular/angular/issues/20442\n taskData.target = null;\n // need to clear up taskData because it is a global object\n if (data) {\n data.taskData = null;\n }\n // have to save those information to task in case\n // application may call task.zone.cancelTask() directly\n if (once) {\n taskData.options.once = true;\n }\n if (!(!passiveSupported && typeof task.options === 'boolean')) {\n // if not support passive, and we pass an option object\n // to addEventListener, we should save the options to task\n task.options = options;\n }\n task.target = target;\n task.capture = capture;\n task.eventName = eventName;\n if (isHandleEvent) {\n // save original delegate for compare to check duplicate\n task.originalDelegate = delegate;\n }\n if (!prepend) {\n existingTasks.push(task);\n }\n else {\n existingTasks.unshift(task);\n }\n if (returnTarget) {\n return target;\n }\n };\n };\n proto[ADD_EVENT_LISTENER] = makeAddListener(nativeAddEventListener, ADD_EVENT_LISTENER_SOURCE, customSchedule, customCancel, returnTarget);\n if (nativePrependEventListener) {\n proto[PREPEND_EVENT_LISTENER] = makeAddListener(nativePrependEventListener, PREPEND_EVENT_LISTENER_SOURCE, customSchedulePrepend, customCancel, returnTarget, true);\n }\n proto[REMOVE_EVENT_LISTENER] = function () {\n const target = this || _global;\n let eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n const options = arguments[2];\n const capture = !options ? false : typeof options === 'boolean' ? true : options.capture;\n const delegate = arguments[1];\n if (!delegate) {\n return nativeRemoveEventListener.apply(this, arguments);\n }\n if (validateHandler &&\n !validateHandler(nativeRemoveEventListener, delegate, target, arguments)) {\n return;\n }\n const symbolEventNames = zoneSymbolEventNames[eventName];\n let symbolEventName;\n if (symbolEventNames) {\n symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR];\n }\n const existingTasks = symbolEventName && target[symbolEventName];\n // `existingTasks` may not exist if the `addEventListener` was called before\n // it was patched by zone.js. Please refer to the attached issue for\n // clarification, particularly after the `if` condition, before calling\n // the native `removeEventListener`.\n if (existingTasks) {\n for (let i = 0; i < existingTasks.length; i++) {\n const existingTask = existingTasks[i];\n if (compare(existingTask, delegate)) {\n existingTasks.splice(i, 1);\n // set isRemoved to data for faster invokeTask check\n existingTask.isRemoved = true;\n if (existingTasks.length === 0) {\n // all tasks for the eventName + capture have gone,\n // remove globalZoneAwareCallback and remove the task cache from target\n existingTask.allRemoved = true;\n target[symbolEventName] = null;\n // in the target, we have an event listener which is added by on_property\n // such as target.onclick = function() {}, so we need to clear this internal\n // property too if all delegates with capture=false were removed\n // https:// github.com/angular/angular/issues/31643\n // https://github.com/angular/angular/issues/54581\n if (!capture && typeof eventName === 'string') {\n const onPropertySymbol = ZONE_SYMBOL_PREFIX + 'ON_PROPERTY' + eventName;\n target[onPropertySymbol] = null;\n }\n }\n // In all other conditions, when `addEventListener` is called after being\n // patched by zone.js, we would always find an event task on the `EventTarget`.\n // This will trigger `cancelFn` on the `existingTask`, leading to `customCancelGlobal`,\n // which ultimately removes an event listener and cleans up the abort listener\n // (if an `AbortSignal` was provided when scheduling a task).\n existingTask.zone.cancelTask(existingTask);\n if (returnTarget) {\n return target;\n }\n return;\n }\n }\n }\n // https://github.com/angular/zone.js/issues/930\n // We may encounter a situation where the `addEventListener` was\n // called on the event target before zone.js is loaded, resulting\n // in no task being stored on the event target due to its invocation\n // of the native implementation. In this scenario, we simply need to\n // invoke the native `removeEventListener`.\n return nativeRemoveEventListener.apply(this, arguments);\n };\n proto[LISTENERS_EVENT_LISTENER] = function () {\n const target = this || _global;\n let eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n const listeners = [];\n const tasks = findEventTasks(target, eventNameToString ? eventNameToString(eventName) : eventName);\n for (let i = 0; i < tasks.length; i++) {\n const task = tasks[i];\n let delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n listeners.push(delegate);\n }\n return listeners;\n };\n proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER] = function () {\n const target = this || _global;\n let eventName = arguments[0];\n if (!eventName) {\n const keys = Object.keys(target);\n for (let i = 0; i < keys.length; i++) {\n const prop = keys[i];\n const match = EVENT_NAME_SYMBOL_REGX.exec(prop);\n let evtName = match && match[1];\n // in nodejs EventEmitter, removeListener event is\n // used for monitoring the removeListener call,\n // so just keep removeListener eventListener until\n // all other eventListeners are removed\n if (evtName && evtName !== 'removeListener') {\n this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, evtName);\n }\n }\n // remove removeListener listener finally\n this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, 'removeListener');\n }\n else {\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n const symbolEventNames = zoneSymbolEventNames[eventName];\n if (symbolEventNames) {\n const symbolEventName = symbolEventNames[FALSE_STR];\n const symbolCaptureEventName = symbolEventNames[TRUE_STR];\n const tasks = target[symbolEventName];\n const captureTasks = target[symbolCaptureEventName];\n if (tasks) {\n const removeTasks = tasks.slice();\n for (let i = 0; i < removeTasks.length; i++) {\n const task = removeTasks[i];\n let delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options);\n }\n }\n if (captureTasks) {\n const removeTasks = captureTasks.slice();\n for (let i = 0; i < removeTasks.length; i++) {\n const task = removeTasks[i];\n let delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options);\n }\n }\n }\n }\n if (returnTarget) {\n return this;\n }\n };\n // for native toString patch\n attachOriginToPatched(proto[ADD_EVENT_LISTENER], nativeAddEventListener);\n attachOriginToPatched(proto[REMOVE_EVENT_LISTENER], nativeRemoveEventListener);\n if (nativeRemoveAllListeners) {\n attachOriginToPatched(proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER], nativeRemoveAllListeners);\n }\n if (nativeListeners) {\n attachOriginToPatched(proto[LISTENERS_EVENT_LISTENER], nativeListeners);\n }\n return true;\n }\n let results = [];\n for (let i = 0; i < apis.length; i++) {\n results[i] = patchEventTargetMethods(apis[i], patchOptions);\n }\n return results;\n}\nfunction findEventTasks(target, eventName) {\n if (!eventName) {\n const foundTasks = [];\n for (let prop in target) {\n const match = EVENT_NAME_SYMBOL_REGX.exec(prop);\n let evtName = match && match[1];\n if (evtName && (!eventName || evtName === eventName)) {\n const tasks = target[prop];\n if (tasks) {\n for (let i = 0; i < tasks.length; i++) {\n foundTasks.push(tasks[i]);\n }\n }\n }\n }\n return foundTasks;\n }\n let symbolEventName = zoneSymbolEventNames[eventName];\n if (!symbolEventName) {\n prepareEventNames(eventName);\n symbolEventName = zoneSymbolEventNames[eventName];\n }\n const captureFalseTasks = target[symbolEventName[FALSE_STR]];\n const captureTrueTasks = target[symbolEventName[TRUE_STR]];\n if (!captureFalseTasks) {\n return captureTrueTasks ? captureTrueTasks.slice() : [];\n }\n else {\n return captureTrueTasks\n ? captureFalseTasks.concat(captureTrueTasks)\n : captureFalseTasks.slice();\n }\n}\nfunction patchEventPrototype(global, api) {\n const Event = global['Event'];\n if (Event && Event.prototype) {\n api.patchMethod(Event.prototype, 'stopImmediatePropagation', (delegate) => function (self, args) {\n self[IMMEDIATE_PROPAGATION_SYMBOL] = true;\n // we need to call the native stopImmediatePropagation\n // in case in some hybrid application, some part of\n // application will be controlled by zone, some are not\n delegate && delegate.apply(self, args);\n });\n }\n}\n\n/**\n * @fileoverview\n * @suppress {missingRequire}\n */\nfunction patchQueueMicrotask(global, api) {\n api.patchMethod(global, 'queueMicrotask', (delegate) => {\n return function (self, args) {\n Zone.current.scheduleMicroTask('queueMicrotask', args[0]);\n };\n });\n}\n\n/**\n * @fileoverview\n * @suppress {missingRequire}\n */\nconst taskSymbol = zoneSymbol('zoneTask');\nfunction patchTimer(window, setName, cancelName, nameSuffix) {\n let setNative = null;\n let clearNative = null;\n setName += nameSuffix;\n cancelName += nameSuffix;\n const tasksByHandleId = {};\n function scheduleTask(task) {\n const data = task.data;\n data.args[0] = function () {\n return task.invoke.apply(this, arguments);\n };\n const handleOrId = setNative.apply(window, data.args);\n // Whlist on Node.js when get can the ID by using `[Symbol.toPrimitive]()` we do\n // to this so that we do not cause potentally leaks when using `setTimeout`\n // since this can be periodic when using `.refresh`.\n if (isNumber(handleOrId)) {\n data.handleId = handleOrId;\n }\n else {\n data.handle = handleOrId;\n // On Node.js a timeout and interval can be restarted over and over again by using the `.refresh` method.\n data.isRefreshable = isFunction(handleOrId.refresh);\n }\n return task;\n }\n function clearTask(task) {\n const { handle, handleId } = task.data;\n return clearNative.call(window, handle ?? handleId);\n }\n setNative = patchMethod(window, setName, (delegate) => function (self, args) {\n if (isFunction(args[0])) {\n const options = {\n isRefreshable: false,\n isPeriodic: nameSuffix === 'Interval',\n delay: nameSuffix === 'Timeout' || nameSuffix === 'Interval' ? args[1] || 0 : undefined,\n args: args,\n };\n const callback = args[0];\n args[0] = function timer() {\n try {\n return callback.apply(this, arguments);\n }\n finally {\n // issue-934, task will be cancelled\n // even it is a periodic task such as\n // setInterval\n // https://github.com/angular/angular/issues/40387\n // Cleanup tasksByHandleId should be handled before scheduleTask\n // Since some zoneSpec may intercept and doesn't trigger\n // scheduleFn(scheduleTask) provided here.\n const { handle, handleId, isPeriodic, isRefreshable } = options;\n if (!isPeriodic && !isRefreshable) {\n if (handleId) {\n // in non-nodejs env, we remove timerId\n // from local cache\n delete tasksByHandleId[handleId];\n }\n else if (handle) {\n // Node returns complex objects as handleIds\n // we remove task reference from timer object\n handle[taskSymbol] = null;\n }\n }\n }\n };\n const task = scheduleMacroTaskWithCurrentZone(setName, args[0], options, scheduleTask, clearTask);\n if (!task) {\n return task;\n }\n // Node.js must additionally support the ref and unref functions.\n const { handleId, handle, isRefreshable, isPeriodic } = task.data;\n if (handleId) {\n // for non nodejs env, we save handleId: task\n // mapping in local cache for clearTimeout\n tasksByHandleId[handleId] = task;\n }\n else if (handle) {\n // for nodejs env, we save task\n // reference in timerId Object for clearTimeout\n handle[taskSymbol] = task;\n if (isRefreshable && !isPeriodic) {\n const originalRefresh = handle.refresh;\n handle.refresh = function () {\n const { zone, state } = task;\n if (state === 'notScheduled') {\n task._state = 'scheduled';\n zone._updateTaskCount(task, 1);\n }\n else if (state === 'running') {\n task._state = 'scheduling';\n }\n return originalRefresh.call(this);\n };\n }\n }\n return handle ?? handleId ?? task;\n }\n else {\n // cause an error by calling it directly.\n return delegate.apply(window, args);\n }\n });\n clearNative = patchMethod(window, cancelName, (delegate) => function (self, args) {\n const id = args[0];\n let task;\n if (isNumber(id)) {\n // non nodejs env.\n task = tasksByHandleId[id];\n delete tasksByHandleId[id];\n }\n else {\n // nodejs env ?? other environments.\n task = id?.[taskSymbol];\n if (task) {\n id[taskSymbol] = null;\n }\n else {\n task = id;\n }\n }\n if (task?.type) {\n if (task.cancelFn) {\n // Do not cancel already canceled functions\n task.zone.cancelTask(task);\n }\n }\n else {\n // cause an error by calling it directly.\n delegate.apply(window, args);\n }\n });\n}\n\nfunction patchCustomElements(_global, api) {\n const { isBrowser, isMix } = api.getGlobalObjects();\n if ((!isBrowser && !isMix) || !_global['customElements'] || !('customElements' in _global)) {\n return;\n }\n // https://html.spec.whatwg.org/multipage/custom-elements.html#concept-custom-element-definition-lifecycle-callbacks\n const callbacks = [\n 'connectedCallback',\n 'disconnectedCallback',\n 'adoptedCallback',\n 'attributeChangedCallback',\n 'formAssociatedCallback',\n 'formDisabledCallback',\n 'formResetCallback',\n 'formStateRestoreCallback',\n ];\n api.patchCallbacks(api, _global.customElements, 'customElements', 'define', callbacks);\n}\n\nfunction eventTargetPatch(_global, api) {\n if (Zone[api.symbol('patchEventTarget')]) {\n // EventTarget is already patched.\n return;\n }\n const { eventNames, zoneSymbolEventNames, TRUE_STR, FALSE_STR, ZONE_SYMBOL_PREFIX } = api.getGlobalObjects();\n // predefine all __zone_symbol__ + eventName + true/false string\n for (let i = 0; i < eventNames.length; i++) {\n const eventName = eventNames[i];\n const falseEventName = eventName + FALSE_STR;\n const trueEventName = eventName + TRUE_STR;\n const symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n const symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames[eventName] = {};\n zoneSymbolEventNames[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture;\n }\n const EVENT_TARGET = _global['EventTarget'];\n if (!EVENT_TARGET || !EVENT_TARGET.prototype) {\n return;\n }\n api.patchEventTarget(_global, api, [EVENT_TARGET && EVENT_TARGET.prototype]);\n return true;\n}\nfunction patchEvent(global, api) {\n api.patchEventPrototype(global, api);\n}\n\n/**\n * @fileoverview\n * @suppress {globalThis}\n */\nfunction filterProperties(target, onProperties, ignoreProperties) {\n if (!ignoreProperties || ignoreProperties.length === 0) {\n return onProperties;\n }\n const tip = ignoreProperties.filter((ip) => ip.target === target);\n if (!tip || tip.length === 0) {\n return onProperties;\n }\n const targetIgnoreProperties = tip[0].ignoreProperties;\n return onProperties.filter((op) => targetIgnoreProperties.indexOf(op) === -1);\n}\nfunction patchFilteredProperties(target, onProperties, ignoreProperties, prototype) {\n // check whether target is available, sometimes target will be undefined\n // because different browser or some 3rd party plugin.\n if (!target) {\n return;\n }\n const filteredProperties = filterProperties(target, onProperties, ignoreProperties);\n patchOnProperties(target, filteredProperties, prototype);\n}\n/**\n * Get all event name properties which the event name startsWith `on`\n * from the target object itself, inherited properties are not considered.\n */\nfunction getOnEventNames(target) {\n return Object.getOwnPropertyNames(target)\n .filter((name) => name.startsWith('on') && name.length > 2)\n .map((name) => name.substring(2));\n}\nfunction propertyDescriptorPatch(api, _global) {\n if (isNode && !isMix) {\n return;\n }\n if (Zone[api.symbol('patchEvents')]) {\n // events are already been patched by legacy patch.\n return;\n }\n const ignoreProperties = _global['__Zone_ignore_on_properties'];\n // for browsers that we can patch the descriptor: Chrome & Firefox\n let patchTargets = [];\n if (isBrowser) {\n const internalWindow = window;\n patchTargets = patchTargets.concat([\n 'Document',\n 'SVGElement',\n 'Element',\n 'HTMLElement',\n 'HTMLBodyElement',\n 'HTMLMediaElement',\n 'HTMLFrameSetElement',\n 'HTMLFrameElement',\n 'HTMLIFrameElement',\n 'HTMLMarqueeElement',\n 'Worker',\n ]);\n const ignoreErrorProperties = isIE()\n ? [{ target: internalWindow, ignoreProperties: ['error'] }]\n : [];\n // in IE/Edge, onProp not exist in window object, but in WindowPrototype\n // so we need to pass WindowPrototype to check onProp exist or not\n patchFilteredProperties(internalWindow, getOnEventNames(internalWindow), ignoreProperties ? ignoreProperties.concat(ignoreErrorProperties) : ignoreProperties, ObjectGetPrototypeOf(internalWindow));\n }\n patchTargets = patchTargets.concat([\n 'XMLHttpRequest',\n 'XMLHttpRequestEventTarget',\n 'IDBIndex',\n 'IDBRequest',\n 'IDBOpenDBRequest',\n 'IDBDatabase',\n 'IDBTransaction',\n 'IDBCursor',\n 'WebSocket',\n ]);\n for (let i = 0; i < patchTargets.length; i++) {\n const target = _global[patchTargets[i]];\n target &&\n target.prototype &&\n patchFilteredProperties(target.prototype, getOnEventNames(target.prototype), ignoreProperties);\n }\n}\n\n/**\n * @fileoverview\n * @suppress {missingRequire}\n */\nfunction patchBrowser(Zone) {\n Zone.__load_patch('legacy', (global) => {\n const legacyPatch = global[Zone.__symbol__('legacyPatch')];\n if (legacyPatch) {\n legacyPatch();\n }\n });\n Zone.__load_patch('timers', (global) => {\n const set = 'set';\n const clear = 'clear';\n patchTimer(global, set, clear, 'Timeout');\n patchTimer(global, set, clear, 'Interval');\n patchTimer(global, set, clear, 'Immediate');\n });\n Zone.__load_patch('requestAnimationFrame', (global) => {\n patchTimer(global, 'request', 'cancel', 'AnimationFrame');\n patchTimer(global, 'mozRequest', 'mozCancel', 'AnimationFrame');\n patchTimer(global, 'webkitRequest', 'webkitCancel', 'AnimationFrame');\n });\n Zone.__load_patch('blocking', (global, Zone) => {\n const blockingMethods = ['alert', 'prompt', 'confirm'];\n for (let i = 0; i < blockingMethods.length; i++) {\n const name = blockingMethods[i];\n patchMethod(global, name, (delegate, symbol, name) => {\n return function (s, args) {\n return Zone.current.run(delegate, global, args, name);\n };\n });\n }\n });\n Zone.__load_patch('EventTarget', (global, Zone, api) => {\n patchEvent(global, api);\n eventTargetPatch(global, api);\n // patch XMLHttpRequestEventTarget's addEventListener/removeEventListener\n const XMLHttpRequestEventTarget = global['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget && XMLHttpRequestEventTarget.prototype) {\n api.patchEventTarget(global, api, [XMLHttpRequestEventTarget.prototype]);\n }\n });\n Zone.__load_patch('MutationObserver', (global, Zone, api) => {\n patchClass('MutationObserver');\n patchClass('WebKitMutationObserver');\n });\n Zone.__load_patch('IntersectionObserver', (global, Zone, api) => {\n patchClass('IntersectionObserver');\n });\n Zone.__load_patch('FileReader', (global, Zone, api) => {\n patchClass('FileReader');\n });\n Zone.__load_patch('on_property', (global, Zone, api) => {\n propertyDescriptorPatch(api, global);\n });\n Zone.__load_patch('customElements', (global, Zone, api) => {\n patchCustomElements(global, api);\n });\n Zone.__load_patch('XHR', (global, Zone) => {\n // Treat XMLHttpRequest as a macrotask.\n patchXHR(global);\n const XHR_TASK = zoneSymbol('xhrTask');\n const XHR_SYNC = zoneSymbol('xhrSync');\n const XHR_LISTENER = zoneSymbol('xhrListener');\n const XHR_SCHEDULED = zoneSymbol('xhrScheduled');\n const XHR_URL = zoneSymbol('xhrURL');\n const XHR_ERROR_BEFORE_SCHEDULED = zoneSymbol('xhrErrorBeforeScheduled');\n function patchXHR(window) {\n const XMLHttpRequest = window['XMLHttpRequest'];\n if (!XMLHttpRequest) {\n // XMLHttpRequest is not available in service worker\n return;\n }\n const XMLHttpRequestPrototype = XMLHttpRequest.prototype;\n function findPendingTask(target) {\n return target[XHR_TASK];\n }\n let oriAddListener = XMLHttpRequestPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n let oriRemoveListener = XMLHttpRequestPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n if (!oriAddListener) {\n const XMLHttpRequestEventTarget = window['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget) {\n const XMLHttpRequestEventTargetPrototype = XMLHttpRequestEventTarget.prototype;\n oriAddListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n oriRemoveListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n }\n }\n const READY_STATE_CHANGE = 'readystatechange';\n const SCHEDULED = 'scheduled';\n function scheduleTask(task) {\n const data = task.data;\n const target = data.target;\n target[XHR_SCHEDULED] = false;\n target[XHR_ERROR_BEFORE_SCHEDULED] = false;\n // remove existing event listener\n const listener = target[XHR_LISTENER];\n if (!oriAddListener) {\n oriAddListener = target[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n oriRemoveListener = target[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n }\n if (listener) {\n oriRemoveListener.call(target, READY_STATE_CHANGE, listener);\n }\n const newListener = (target[XHR_LISTENER] = () => {\n if (target.readyState === target.DONE) {\n // sometimes on some browsers XMLHttpRequest will fire onreadystatechange with\n // readyState=4 multiple times, so we need to check task state here\n if (!data.aborted && target[XHR_SCHEDULED] && task.state === SCHEDULED) {\n // check whether the xhr has registered onload listener\n // if that is the case, the task should invoke after all\n // onload listeners finish.\n // Also if the request failed without response (status = 0), the load event handler\n // will not be triggered, in that case, we should also invoke the placeholder callback\n // to close the XMLHttpRequest::send macroTask.\n // https://github.com/angular/angular/issues/38795\n const loadTasks = target[Zone.__symbol__('loadfalse')];\n if (target.status !== 0 && loadTasks && loadTasks.length > 0) {\n const oriInvoke = task.invoke;\n task.invoke = function () {\n // need to load the tasks again, because in other\n // load listener, they may remove themselves\n const loadTasks = target[Zone.__symbol__('loadfalse')];\n for (let i = 0; i < loadTasks.length; i++) {\n if (loadTasks[i] === task) {\n loadTasks.splice(i, 1);\n }\n }\n if (!data.aborted && task.state === SCHEDULED) {\n oriInvoke.call(task);\n }\n };\n loadTasks.push(task);\n }\n else {\n task.invoke();\n }\n }\n else if (!data.aborted && target[XHR_SCHEDULED] === false) {\n // error occurs when xhr.send()\n target[XHR_ERROR_BEFORE_SCHEDULED] = true;\n }\n }\n });\n oriAddListener.call(target, READY_STATE_CHANGE, newListener);\n const storedTask = target[XHR_TASK];\n if (!storedTask) {\n target[XHR_TASK] = task;\n }\n sendNative.apply(target, data.args);\n target[XHR_SCHEDULED] = true;\n return task;\n }\n function placeholderCallback() { }\n function clearTask(task) {\n const data = task.data;\n // Note - ideally, we would call data.target.removeEventListener here, but it's too late\n // to prevent it from firing. So instead, we store info for the event listener.\n data.aborted = true;\n return abortNative.apply(data.target, data.args);\n }\n const openNative = patchMethod(XMLHttpRequestPrototype, 'open', () => function (self, args) {\n self[XHR_SYNC] = args[2] == false;\n self[XHR_URL] = args[1];\n return openNative.apply(self, args);\n });\n const XMLHTTPREQUEST_SOURCE = 'XMLHttpRequest.send';\n const fetchTaskAborting = zoneSymbol('fetchTaskAborting');\n const fetchTaskScheduling = zoneSymbol('fetchTaskScheduling');\n const sendNative = patchMethod(XMLHttpRequestPrototype, 'send', () => function (self, args) {\n if (Zone.current[fetchTaskScheduling] === true) {\n // a fetch is scheduling, so we are using xhr to polyfill fetch\n // and because we already schedule macroTask for fetch, we should\n // not schedule a macroTask for xhr again\n return sendNative.apply(self, args);\n }\n if (self[XHR_SYNC]) {\n // if the XHR is sync there is no task to schedule, just execute the code.\n return sendNative.apply(self, args);\n }\n else {\n const options = {\n target: self,\n url: self[XHR_URL],\n isPeriodic: false,\n args: args,\n aborted: false,\n };\n const task = scheduleMacroTaskWithCurrentZone(XMLHTTPREQUEST_SOURCE, placeholderCallback, options, scheduleTask, clearTask);\n if (self &&\n self[XHR_ERROR_BEFORE_SCHEDULED] === true &&\n !options.aborted &&\n task.state === SCHEDULED) {\n // xhr request throw error when send\n // we should invoke task instead of leaving a scheduled\n // pending macroTask\n task.invoke();\n }\n }\n });\n const abortNative = patchMethod(XMLHttpRequestPrototype, 'abort', () => function (self, args) {\n const task = findPendingTask(self);\n if (task && typeof task.type == 'string') {\n // If the XHR has already completed, do nothing.\n // If the XHR has already been aborted, do nothing.\n // Fix #569, call abort multiple times before done will cause\n // macroTask task count be negative number\n if (task.cancelFn == null || (task.data && task.data.aborted)) {\n return;\n }\n task.zone.cancelTask(task);\n }\n else if (Zone.current[fetchTaskAborting] === true) {\n // the abort is called from fetch polyfill, we need to call native abort of XHR.\n return abortNative.apply(self, args);\n }\n // Otherwise, we are trying to abort an XHR which has not yet been sent, so there is no\n // task\n // to cancel. Do nothing.\n });\n }\n });\n Zone.__load_patch('geolocation', (global) => {\n /// GEO_LOCATION\n if (global['navigator'] && global['navigator'].geolocation) {\n patchPrototype(global['navigator'].geolocation, ['getCurrentPosition', 'watchPosition']);\n }\n });\n Zone.__load_patch('PromiseRejectionEvent', (global, Zone) => {\n // handle unhandled promise rejection\n function findPromiseRejectionHandler(evtName) {\n return function (e) {\n const eventTasks = findEventTasks(global, evtName);\n eventTasks.forEach((eventTask) => {\n // windows has added unhandledrejection event listener\n // trigger the event listener\n const PromiseRejectionEvent = global['PromiseRejectionEvent'];\n if (PromiseRejectionEvent) {\n const evt = new PromiseRejectionEvent(evtName, {\n promise: e.promise,\n reason: e.rejection,\n });\n eventTask.invoke(evt);\n }\n });\n };\n }\n if (global['PromiseRejectionEvent']) {\n Zone[zoneSymbol('unhandledPromiseRejectionHandler')] =\n findPromiseRejectionHandler('unhandledrejection');\n Zone[zoneSymbol('rejectionHandledHandler')] =\n findPromiseRejectionHandler('rejectionhandled');\n }\n });\n Zone.__load_patch('queueMicrotask', (global, Zone, api) => {\n patchQueueMicrotask(global, api);\n });\n}\n\nfunction patchPromise(Zone) {\n Zone.__load_patch('ZoneAwarePromise', (global, Zone, api) => {\n const ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n const ObjectDefineProperty = Object.defineProperty;\n function readableObjectToString(obj) {\n if (obj && obj.toString === Object.prototype.toString) {\n const className = obj.constructor && obj.constructor.name;\n return (className ? className : '') + ': ' + JSON.stringify(obj);\n }\n return obj ? obj.toString() : Object.prototype.toString.call(obj);\n }\n const __symbol__ = api.symbol;\n const _uncaughtPromiseErrors = [];\n const isDisableWrappingUncaughtPromiseRejection = global[__symbol__('DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION')] !== false;\n const symbolPromise = __symbol__('Promise');\n const symbolThen = __symbol__('then');\n const creationTrace = '__creationTrace__';\n api.onUnhandledError = (e) => {\n if (api.showUncaughtError()) {\n const rejection = e && e.rejection;\n if (rejection) {\n console.error('Unhandled Promise rejection:', rejection instanceof Error ? rejection.message : rejection, '; Zone:', e.zone.name, '; Task:', e.task && e.task.source, '; Value:', rejection, rejection instanceof Error ? rejection.stack : undefined);\n }\n else {\n console.error(e);\n }\n }\n };\n api.microtaskDrainDone = () => {\n while (_uncaughtPromiseErrors.length) {\n const uncaughtPromiseError = _uncaughtPromiseErrors.shift();\n try {\n uncaughtPromiseError.zone.runGuarded(() => {\n if (uncaughtPromiseError.throwOriginal) {\n throw uncaughtPromiseError.rejection;\n }\n throw uncaughtPromiseError;\n });\n }\n catch (error) {\n handleUnhandledRejection(error);\n }\n }\n };\n const UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL = __symbol__('unhandledPromiseRejectionHandler');\n function handleUnhandledRejection(e) {\n api.onUnhandledError(e);\n try {\n const handler = Zone[UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL];\n if (typeof handler === 'function') {\n handler.call(this, e);\n }\n }\n catch (err) { }\n }\n function isThenable(value) {\n return value && value.then;\n }\n function forwardResolution(value) {\n return value;\n }\n function forwardRejection(rejection) {\n return ZoneAwarePromise.reject(rejection);\n }\n const symbolState = __symbol__('state');\n const symbolValue = __symbol__('value');\n const symbolFinally = __symbol__('finally');\n const symbolParentPromiseValue = __symbol__('parentPromiseValue');\n const symbolParentPromiseState = __symbol__('parentPromiseState');\n const source = 'Promise.then';\n const UNRESOLVED = null;\n const RESOLVED = true;\n const REJECTED = false;\n const REJECTED_NO_CATCH = 0;\n function makeResolver(promise, state) {\n return (v) => {\n try {\n resolvePromise(promise, state, v);\n }\n catch (err) {\n resolvePromise(promise, false, err);\n }\n // Do not return value or you will break the Promise spec.\n };\n }\n const once = function () {\n let wasCalled = false;\n return function wrapper(wrappedFunction) {\n return function () {\n if (wasCalled) {\n return;\n }\n wasCalled = true;\n wrappedFunction.apply(null, arguments);\n };\n };\n };\n const TYPE_ERROR = 'Promise resolved with itself';\n const CURRENT_TASK_TRACE_SYMBOL = __symbol__('currentTaskTrace');\n // Promise Resolution\n function resolvePromise(promise, state, value) {\n const onceWrapper = once();\n if (promise === value) {\n throw new TypeError(TYPE_ERROR);\n }\n if (promise[symbolState] === UNRESOLVED) {\n // should only get value.then once based on promise spec.\n let then = null;\n try {\n if (typeof value === 'object' || typeof value === 'function') {\n then = value && value.then;\n }\n }\n catch (err) {\n onceWrapper(() => {\n resolvePromise(promise, false, err);\n })();\n return promise;\n }\n // if (value instanceof ZoneAwarePromise) {\n if (state !== REJECTED &&\n value instanceof ZoneAwarePromise &&\n value.hasOwnProperty(symbolState) &&\n value.hasOwnProperty(symbolValue) &&\n value[symbolState] !== UNRESOLVED) {\n clearRejectedNoCatch(value);\n resolvePromise(promise, value[symbolState], value[symbolValue]);\n }\n else if (state !== REJECTED && typeof then === 'function') {\n try {\n then.call(value, onceWrapper(makeResolver(promise, state)), onceWrapper(makeResolver(promise, false)));\n }\n catch (err) {\n onceWrapper(() => {\n resolvePromise(promise, false, err);\n })();\n }\n }\n else {\n promise[symbolState] = state;\n const queue = promise[symbolValue];\n promise[symbolValue] = value;\n if (promise[symbolFinally] === symbolFinally) {\n // the promise is generated by Promise.prototype.finally\n if (state === RESOLVED) {\n // the state is resolved, should ignore the value\n // and use parent promise value\n promise[symbolState] = promise[symbolParentPromiseState];\n promise[symbolValue] = promise[symbolParentPromiseValue];\n }\n }\n // record task information in value when error occurs, so we can\n // do some additional work such as render longStackTrace\n if (state === REJECTED && value instanceof Error) {\n // check if longStackTraceZone is here\n const trace = Zone.currentTask &&\n Zone.currentTask.data &&\n Zone.currentTask.data[creationTrace];\n if (trace) {\n // only keep the long stack trace into error when in longStackTraceZone\n ObjectDefineProperty(value, CURRENT_TASK_TRACE_SYMBOL, {\n configurable: true,\n enumerable: false,\n writable: true,\n value: trace,\n });\n }\n }\n for (let i = 0; i < queue.length;) {\n scheduleResolveOrReject(promise, queue[i++], queue[i++], queue[i++], queue[i++]);\n }\n if (queue.length == 0 && state == REJECTED) {\n promise[symbolState] = REJECTED_NO_CATCH;\n let uncaughtPromiseError = value;\n try {\n // Here we throws a new Error to print more readable error log\n // and if the value is not an error, zone.js builds an `Error`\n // Object here to attach the stack information.\n throw new Error('Uncaught (in promise): ' +\n readableObjectToString(value) +\n (value && value.stack ? '\\n' + value.stack : ''));\n }\n catch (err) {\n uncaughtPromiseError = err;\n }\n if (isDisableWrappingUncaughtPromiseRejection) {\n // If disable wrapping uncaught promise reject\n // use the value instead of wrapping it.\n uncaughtPromiseError.throwOriginal = true;\n }\n uncaughtPromiseError.rejection = value;\n uncaughtPromiseError.promise = promise;\n uncaughtPromiseError.zone = Zone.current;\n uncaughtPromiseError.task = Zone.currentTask;\n _uncaughtPromiseErrors.push(uncaughtPromiseError);\n api.scheduleMicroTask(); // to make sure that it is running\n }\n }\n }\n // Resolving an already resolved promise is a noop.\n return promise;\n }\n const REJECTION_HANDLED_HANDLER = __symbol__('rejectionHandledHandler');\n function clearRejectedNoCatch(promise) {\n if (promise[symbolState] === REJECTED_NO_CATCH) {\n // if the promise is rejected no catch status\n // and queue.length > 0, means there is a error handler\n // here to handle the rejected promise, we should trigger\n // windows.rejectionhandled eventHandler or nodejs rejectionHandled\n // eventHandler\n try {\n const handler = Zone[REJECTION_HANDLED_HANDLER];\n if (handler && typeof handler === 'function') {\n handler.call(this, { rejection: promise[symbolValue], promise: promise });\n }\n }\n catch (err) { }\n promise[symbolState] = REJECTED;\n for (let i = 0; i < _uncaughtPromiseErrors.length; i++) {\n if (promise === _uncaughtPromiseErrors[i].promise) {\n _uncaughtPromiseErrors.splice(i, 1);\n }\n }\n }\n }\n function scheduleResolveOrReject(promise, zone, chainPromise, onFulfilled, onRejected) {\n clearRejectedNoCatch(promise);\n const promiseState = promise[symbolState];\n const delegate = promiseState\n ? typeof onFulfilled === 'function'\n ? onFulfilled\n : forwardResolution\n : typeof onRejected === 'function'\n ? onRejected\n : forwardRejection;\n zone.scheduleMicroTask(source, () => {\n try {\n const parentPromiseValue = promise[symbolValue];\n const isFinallyPromise = !!chainPromise && symbolFinally === chainPromise[symbolFinally];\n if (isFinallyPromise) {\n // if the promise is generated from finally call, keep parent promise's state and value\n chainPromise[symbolParentPromiseValue] = parentPromiseValue;\n chainPromise[symbolParentPromiseState] = promiseState;\n }\n // should not pass value to finally callback\n const value = zone.run(delegate, undefined, isFinallyPromise && delegate !== forwardRejection && delegate !== forwardResolution\n ? []\n : [parentPromiseValue]);\n resolvePromise(chainPromise, true, value);\n }\n catch (error) {\n // if error occurs, should always return this error\n resolvePromise(chainPromise, false, error);\n }\n }, chainPromise);\n }\n const ZONE_AWARE_PROMISE_TO_STRING = 'function ZoneAwarePromise() { [native code] }';\n const noop = function () { };\n const AggregateError = global.AggregateError;\n class ZoneAwarePromise {\n static toString() {\n return ZONE_AWARE_PROMISE_TO_STRING;\n }\n static resolve(value) {\n if (value instanceof ZoneAwarePromise) {\n return value;\n }\n return resolvePromise(new this(null), RESOLVED, value);\n }\n static reject(error) {\n return resolvePromise(new this(null), REJECTED, error);\n }\n static withResolvers() {\n const result = {};\n result.promise = new ZoneAwarePromise((res, rej) => {\n result.resolve = res;\n result.reject = rej;\n });\n return result;\n }\n static any(values) {\n if (!values || typeof values[Symbol.iterator] !== 'function') {\n return Promise.reject(new AggregateError([], 'All promises were rejected'));\n }\n const promises = [];\n let count = 0;\n try {\n for (let v of values) {\n count++;\n promises.push(ZoneAwarePromise.resolve(v));\n }\n }\n catch (err) {\n return Promise.reject(new AggregateError([], 'All promises were rejected'));\n }\n if (count === 0) {\n return Promise.reject(new AggregateError([], 'All promises were rejected'));\n }\n let finished = false;\n const errors = [];\n return new ZoneAwarePromise((resolve, reject) => {\n for (let i = 0; i < promises.length; i++) {\n promises[i].then((v) => {\n if (finished) {\n return;\n }\n finished = true;\n resolve(v);\n }, (err) => {\n errors.push(err);\n count--;\n if (count === 0) {\n finished = true;\n reject(new AggregateError(errors, 'All promises were rejected'));\n }\n });\n }\n });\n }\n static race(values) {\n let resolve;\n let reject;\n let promise = new this((res, rej) => {\n resolve = res;\n reject = rej;\n });\n function onResolve(value) {\n resolve(value);\n }\n function onReject(error) {\n reject(error);\n }\n for (let value of values) {\n if (!isThenable(value)) {\n value = this.resolve(value);\n }\n value.then(onResolve, onReject);\n }\n return promise;\n }\n static all(values) {\n return ZoneAwarePromise.allWithCallback(values);\n }\n static allSettled(values) {\n const P = this && this.prototype instanceof ZoneAwarePromise ? this : ZoneAwarePromise;\n return P.allWithCallback(values, {\n thenCallback: (value) => ({ status: 'fulfilled', value }),\n errorCallback: (err) => ({ status: 'rejected', reason: err }),\n });\n }\n static allWithCallback(values, callback) {\n let resolve;\n let reject;\n let promise = new this((res, rej) => {\n resolve = res;\n reject = rej;\n });\n // Start at 2 to prevent prematurely resolving if .then is called immediately.\n let unresolvedCount = 2;\n let valueIndex = 0;\n const resolvedValues = [];\n for (let value of values) {\n if (!isThenable(value)) {\n value = this.resolve(value);\n }\n const curValueIndex = valueIndex;\n try {\n value.then((value) => {\n resolvedValues[curValueIndex] = callback ? callback.thenCallback(value) : value;\n unresolvedCount--;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n }, (err) => {\n if (!callback) {\n reject(err);\n }\n else {\n resolvedValues[curValueIndex] = callback.errorCallback(err);\n unresolvedCount--;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n }\n });\n }\n catch (thenErr) {\n reject(thenErr);\n }\n unresolvedCount++;\n valueIndex++;\n }\n // Make the unresolvedCount zero-based again.\n unresolvedCount -= 2;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n return promise;\n }\n constructor(executor) {\n const promise = this;\n if (!(promise instanceof ZoneAwarePromise)) {\n throw new Error('Must be an instanceof Promise.');\n }\n promise[symbolState] = UNRESOLVED;\n promise[symbolValue] = []; // queue;\n try {\n const onceWrapper = once();\n executor &&\n executor(onceWrapper(makeResolver(promise, RESOLVED)), onceWrapper(makeResolver(promise, REJECTED)));\n }\n catch (error) {\n resolvePromise(promise, false, error);\n }\n }\n get [Symbol.toStringTag]() {\n return 'Promise';\n }\n get [Symbol.species]() {\n return ZoneAwarePromise;\n }\n then(onFulfilled, onRejected) {\n // We must read `Symbol.species` safely because `this` may be anything. For instance, `this`\n // may be an object without a prototype (created through `Object.create(null)`); thus\n // `this.constructor` will be undefined. One of the use cases is SystemJS creating\n // prototype-less objects (modules) via `Object.create(null)`. The SystemJS creates an empty\n // object and copies promise properties into that object (within the `getOrCreateLoad`\n // function). The zone.js then checks if the resolved value has the `then` method and\n // invokes it with the `value` context. Otherwise, this will throw an error: `TypeError:\n // Cannot read properties of undefined (reading 'Symbol(Symbol.species)')`.\n let C = this.constructor?.[Symbol.species];\n if (!C || typeof C !== 'function') {\n C = this.constructor || ZoneAwarePromise;\n }\n const chainPromise = new C(noop);\n const zone = Zone.current;\n if (this[symbolState] == UNRESOLVED) {\n this[symbolValue].push(zone, chainPromise, onFulfilled, onRejected);\n }\n else {\n scheduleResolveOrReject(this, zone, chainPromise, onFulfilled, onRejected);\n }\n return chainPromise;\n }\n catch(onRejected) {\n return this.then(null, onRejected);\n }\n finally(onFinally) {\n // See comment on the call to `then` about why thee `Symbol.species` is safely accessed.\n let C = this.constructor?.[Symbol.species];\n if (!C || typeof C !== 'function') {\n C = ZoneAwarePromise;\n }\n const chainPromise = new C(noop);\n chainPromise[symbolFinally] = symbolFinally;\n const zone = Zone.current;\n if (this[symbolState] == UNRESOLVED) {\n this[symbolValue].push(zone, chainPromise, onFinally, onFinally);\n }\n else {\n scheduleResolveOrReject(this, zone, chainPromise, onFinally, onFinally);\n }\n return chainPromise;\n }\n }\n // Protect against aggressive optimizers dropping seemingly unused properties.\n // E.g. Closure Compiler in advanced mode.\n ZoneAwarePromise['resolve'] = ZoneAwarePromise.resolve;\n ZoneAwarePromise['reject'] = ZoneAwarePromise.reject;\n ZoneAwarePromise['race'] = ZoneAwarePromise.race;\n ZoneAwarePromise['all'] = ZoneAwarePromise.all;\n const NativePromise = (global[symbolPromise] = global['Promise']);\n global['Promise'] = ZoneAwarePromise;\n const symbolThenPatched = __symbol__('thenPatched');\n function patchThen(Ctor) {\n const proto = Ctor.prototype;\n const prop = ObjectGetOwnPropertyDescriptor(proto, 'then');\n if (prop && (prop.writable === false || !prop.configurable)) {\n // check Ctor.prototype.then propertyDescriptor is writable or not\n // in meteor env, writable is false, we should ignore such case\n return;\n }\n const originalThen = proto.then;\n // Keep a reference to the original method.\n proto[symbolThen] = originalThen;\n Ctor.prototype.then = function (onResolve, onReject) {\n const wrapped = new ZoneAwarePromise((resolve, reject) => {\n originalThen.call(this, resolve, reject);\n });\n return wrapped.then(onResolve, onReject);\n };\n Ctor[symbolThenPatched] = true;\n }\n api.patchThen = patchThen;\n function zoneify(fn) {\n return function (self, args) {\n let resultPromise = fn.apply(self, args);\n if (resultPromise instanceof ZoneAwarePromise) {\n return resultPromise;\n }\n let ctor = resultPromise.constructor;\n if (!ctor[symbolThenPatched]) {\n patchThen(ctor);\n }\n return resultPromise;\n };\n }\n if (NativePromise) {\n patchThen(NativePromise);\n patchMethod(global, 'fetch', (delegate) => zoneify(delegate));\n }\n // This is not part of public API, but it is useful for tests, so we expose it.\n Promise[Zone.__symbol__('uncaughtPromiseErrors')] = _uncaughtPromiseErrors;\n return ZoneAwarePromise;\n });\n}\n\nfunction patchToString(Zone) {\n // override Function.prototype.toString to make zone.js patched function\n // look like native function\n Zone.__load_patch('toString', (global) => {\n // patch Func.prototype.toString to let them look like native\n const originalFunctionToString = Function.prototype.toString;\n const ORIGINAL_DELEGATE_SYMBOL = zoneSymbol('OriginalDelegate');\n const PROMISE_SYMBOL = zoneSymbol('Promise');\n const ERROR_SYMBOL = zoneSymbol('Error');\n const newFunctionToString = function toString() {\n if (typeof this === 'function') {\n const originalDelegate = this[ORIGINAL_DELEGATE_SYMBOL];\n if (originalDelegate) {\n if (typeof originalDelegate === 'function') {\n return originalFunctionToString.call(originalDelegate);\n }\n else {\n return Object.prototype.toString.call(originalDelegate);\n }\n }\n if (this === Promise) {\n const nativePromise = global[PROMISE_SYMBOL];\n if (nativePromise) {\n return originalFunctionToString.call(nativePromise);\n }\n }\n if (this === Error) {\n const nativeError = global[ERROR_SYMBOL];\n if (nativeError) {\n return originalFunctionToString.call(nativeError);\n }\n }\n }\n return originalFunctionToString.call(this);\n };\n newFunctionToString[ORIGINAL_DELEGATE_SYMBOL] = originalFunctionToString;\n Function.prototype.toString = newFunctionToString;\n // patch Object.prototype.toString to let them look like native\n const originalObjectToString = Object.prototype.toString;\n const PROMISE_OBJECT_TO_STRING = '[object Promise]';\n Object.prototype.toString = function () {\n if (typeof Promise === 'function' && this instanceof Promise) {\n return PROMISE_OBJECT_TO_STRING;\n }\n return originalObjectToString.call(this);\n };\n });\n}\n\nfunction patchCallbacks(api, target, targetName, method, callbacks) {\n const symbol = Zone.__symbol__(method);\n if (target[symbol]) {\n return;\n }\n const nativeDelegate = (target[symbol] = target[method]);\n target[method] = function (name, opts, options) {\n if (opts && opts.prototype) {\n callbacks.forEach(function (callback) {\n const source = `${targetName}.${method}::` + callback;\n const prototype = opts.prototype;\n // Note: the `patchCallbacks` is used for patching the `document.registerElement` and\n // `customElements.define`. We explicitly wrap the patching code into try-catch since\n // callbacks may be already patched by other web components frameworks (e.g. LWC), and they\n // make those properties non-writable. This means that patching callback will throw an error\n // `cannot assign to read-only property`. See this code as an example:\n // https://github.com/salesforce/lwc/blob/master/packages/@lwc/engine-core/src/framework/base-bridge-element.ts#L180-L186\n // We don't want to stop the application rendering if we couldn't patch some\n // callback, e.g. `attributeChangedCallback`.\n try {\n if (prototype.hasOwnProperty(callback)) {\n const descriptor = api.ObjectGetOwnPropertyDescriptor(prototype, callback);\n if (descriptor && descriptor.value) {\n descriptor.value = api.wrapWithCurrentZone(descriptor.value, source);\n api._redefineProperty(opts.prototype, callback, descriptor);\n }\n else if (prototype[callback]) {\n prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source);\n }\n }\n else if (prototype[callback]) {\n prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source);\n }\n }\n catch {\n // Note: we leave the catch block empty since there's no way to handle the error related\n // to non-writable property.\n }\n });\n }\n return nativeDelegate.call(target, name, opts, options);\n };\n api.attachOriginToPatched(target[method], nativeDelegate);\n}\n\nfunction patchUtil(Zone) {\n Zone.__load_patch('util', (global, Zone, api) => {\n // Collect native event names by looking at properties\n // on the global namespace, e.g. 'onclick'.\n const eventNames = getOnEventNames(global);\n api.patchOnProperties = patchOnProperties;\n api.patchMethod = patchMethod;\n api.bindArguments = bindArguments;\n api.patchMacroTask = patchMacroTask;\n // In earlier version of zone.js (<0.9.0), we use env name `__zone_symbol__BLACK_LISTED_EVENTS`\n // to define which events will not be patched by `Zone.js`. In newer version (>=0.9.0), we\n // change the env name to `__zone_symbol__UNPATCHED_EVENTS` to keep the name consistent with\n // angular repo. The `__zone_symbol__BLACK_LISTED_EVENTS` is deprecated, but it is still be\n // supported for backwards compatibility.\n const SYMBOL_BLACK_LISTED_EVENTS = Zone.__symbol__('BLACK_LISTED_EVENTS');\n const SYMBOL_UNPATCHED_EVENTS = Zone.__symbol__('UNPATCHED_EVENTS');\n if (global[SYMBOL_UNPATCHED_EVENTS]) {\n global[SYMBOL_BLACK_LISTED_EVENTS] = global[SYMBOL_UNPATCHED_EVENTS];\n }\n if (global[SYMBOL_BLACK_LISTED_EVENTS]) {\n Zone[SYMBOL_BLACK_LISTED_EVENTS] = Zone[SYMBOL_UNPATCHED_EVENTS] =\n global[SYMBOL_BLACK_LISTED_EVENTS];\n }\n api.patchEventPrototype = patchEventPrototype;\n api.patchEventTarget = patchEventTarget;\n api.isIEOrEdge = isIEOrEdge;\n api.ObjectDefineProperty = ObjectDefineProperty;\n api.ObjectGetOwnPropertyDescriptor = ObjectGetOwnPropertyDescriptor;\n api.ObjectCreate = ObjectCreate;\n api.ArraySlice = ArraySlice;\n api.patchClass = patchClass;\n api.wrapWithCurrentZone = wrapWithCurrentZone;\n api.filterProperties = filterProperties;\n api.attachOriginToPatched = attachOriginToPatched;\n api._redefineProperty = Object.defineProperty;\n api.patchCallbacks = patchCallbacks;\n api.getGlobalObjects = () => ({\n globalSources,\n zoneSymbolEventNames,\n eventNames,\n isBrowser,\n isMix,\n isNode,\n TRUE_STR,\n FALSE_STR,\n ZONE_SYMBOL_PREFIX,\n ADD_EVENT_LISTENER_STR,\n REMOVE_EVENT_LISTENER_STR,\n });\n });\n}\n\nfunction patchCommon(Zone) {\n patchPromise(Zone);\n patchToString(Zone);\n patchUtil(Zone);\n}\n\nconst Zone$1 = loadZone();\npatchCommon(Zone$1);\npatchBrowser(Zone$1);\n"],"names":["global","globalThis","__symbol__","name","symbolPrefix","initZone","performance","mark","performanceMeasure","label","ZoneImpl","assertZonePatched","patches","Error","root","zone","current","parent","_currentZoneFrame","currentTask","_currentTask","__load_patch","fn","ignoreDuplicate","hasOwnProperty","checkDuplicate","perfName","_api","_parent","_name","constructor","zoneSpec","_properties","properties","_zoneDelegate","_ZoneDelegate","get","key","getZoneWith","fork","wrap","callback","source","_callback","intercept","runGuarded","arguments","run","applyThis","applyArgs","invoke","error","handleError","runTask","task","NO_ZONE","zoneTask","type","data","isPeriodic","isRefreshable","state","notScheduled","eventTask","macroTask","reEntryGuard","running","_transitionTo","scheduled","previousTask","cancelFn","undefined","invokeTask","unknown","scheduling","zoneDelegates","_zoneDelegates","_updateTaskCount","scheduleTask","newZone","_zone","err","scheduleMicroTask","customSchedule","ZoneTask","microTask","scheduleMacroTask","customCancel","scheduleEventTask","cancelTask","canceling","runCount","count","i","length","DELEGATE_ZS","onHasTask","delegate","_","target","hasTaskState","hasTask","onScheduleTask","onInvokeTask","onCancelTask","parentDelegate","_taskCounts","_parentDelegate","_forkZS","onFork","_forkDlgt","_forkCurrZone","_interceptZS","onIntercept","_interceptDlgt","_interceptCurrZone","_invokeZS","onInvoke","_invokeDlgt","_invokeCurrZone","_handleErrorZS","onHandleError","_handleErrorDlgt","_handleErrorCurrZone","_scheduleTaskZS","_scheduleTaskDlgt","_scheduleTaskCurrZone","_invokeTaskZS","_invokeTaskDlgt","_invokeTaskCurrZone","_cancelTaskZS","_cancelTaskDlgt","_cancelTaskCurrZone","_hasTaskZS","_hasTaskDlgt","_hasTaskDlgtOwner","_hasTaskCurrZone","zoneSpecHasTask","parentHasTask","targetZone","apply","returnTask","push","scheduleFn","value","isEmpty","counts","prev","next","change","options","_state","self","useG","call","args","_numberOfNestedTaskFrames","drainMicroTaskQueue","cancelScheduleRequest","toState","fromState1","fromState2","toString","handleId","Object","prototype","toJSON","symbolSetTimeout","symbolPromise","symbolThen","_microTaskQueue","_isDrainingMicrotaskQueue","nativeMicroTaskQueuePromise","nativeScheduleMicroTask","func","resolve","nativeThen","queue","onUnhandledError","microtaskDrainDone","symbol","currentZoneFrame","noop","showUncaughtError","patchEventTarget","patchOnProperties","patchMethod","bindArguments","patchThen","patchMacroTask","patchEventPrototype","isIEOrEdge","getGlobalObjects","ObjectDefineProperty","ObjectGetOwnPropertyDescriptor","ObjectCreate","ArraySlice","patchClass","wrapWithCurrentZone","filterProperties","attachOriginToPatched","_redefineProperty","patchCallbacks","loadZone","getOwnPropertyDescriptor","defineProperty","ObjectGetPrototypeOf","getPrototypeOf","create","Array","slice","ADD_EVENT_LISTENER_STR","REMOVE_EVENT_LISTENER_STR","ZONE_SYMBOL_ADD_EVENT_LISTENER","ZONE_SYMBOL_REMOVE_EVENT_LISTENER","TRUE_STR","FALSE_STR","ZONE_SYMBOL_PREFIX","Zone","scheduleMacroTaskWithCurrentZone","zoneSymbol","isWindowExists","window","internalWindow","_global","REMOVE_ATTRIBUTE","patchPrototype","fnNames","prototypeDesc","isPropertyWritable","patched","propertyDesc","writable","set","isWebWorker","WorkerGlobalScope","isNode","process","isBrowser","isMix","zoneSymbolEventNames$1","enableBeforeunloadSymbol","wrapFn","event","eventNameSymbol","listener","result","errorEvent","message","filename","lineno","colno","preventDefault","returnValue","patchProperty","obj","prop","desc","enumerable","configurable","onPropPatchedSymbol","originalDescGet","originalDescSet","eventName","newValue","previousValue","removeEventListener","addEventListener","removeAttribute","onProperties","j","originalInstanceKey","className","OriginalClass","a","instance","patchFn","proto","delegateName","patchDelegate","funcName","metaCreator","setNative","cbIdx","meta","original","isDetectedIEOrEdge","ieOrEdge","isIE","ua","navigator","userAgent","indexOf","isFunction","isNumber","passiveSupported","OPTIMIZED_ZONE_EVENT_TASK_DATA","zoneSymbolEventNames","globalSources","EVENT_NAME_SYMBOL_REGX","RegExp","IMMEDIATE_PROPAGATION_SYMBOL","prepareEventNames","eventNameToString","falseEventName","trueEventName","symbolCapture","api","apis","patchOptions","ADD_EVENT_LISTENER","add","REMOVE_EVENT_LISTENER","rm","LISTENERS_EVENT_LISTENER","listeners","REMOVE_ALL_LISTENERS_EVENT_LISTENER","rmAll","zoneSymbolAddEventListener","ADD_EVENT_LISTENER_SOURCE","PREPEND_EVENT_LISTENER","PREPEND_EVENT_LISTENER_SOURCE","isRemoved","handleEvent","originalDelegate","once","globalCallback","context","isCapture","tasks","errors","copyTasks","globalZoneAwareCallback","globalZoneAwareCaptureCallback","patchEventTargetMethods","useGlobalCallback","validateHandler","vh","chkDup","returnTarget","rt","taskData","nativeAddEventListener","nativeRemoveEventListener","nativeListeners","nativeRemoveAllListeners","nativePrependEventListener","prepend","buildEventListenerOptions","passive","capture","customScheduleGlobal","isExisting","customCancelGlobal","symbolEventNames","symbolEventName","existingTasks","existingTask","splice","removeAbortListener","allRemoved","customScheduleNonGlobal","customSchedulePrepend","customCancelNonGlobal","compareTaskCallbackVsDelegate","typeOfDelegate","compare","diff","unpatchedEvents","passiveEvents","copyEventListenerOptions","newOptions","signal","makeAddListener","nativeListener","addSource","customScheduleFn","customCancelFn","transferEventName","isHandleEvent","aborted","constructorName","targetSource","onAbort","unshift","onPropertySymbol","findEventTasks","keys","match","exec","evtName","symbolCaptureEventName","captureTasks","removeTasks","results","foundTasks","captureFalseTasks","captureTrueTasks","concat","Event","patchQueueMicrotask","taskSymbol","patchTimer","setName","cancelName","nameSuffix","clearNative","tasksByHandleId","handleOrId","handle","refresh","clearTask","delay","timer","originalRefresh","id","patchCustomElements","callbacks","customElements","eventTargetPatch","eventNames","EVENT_TARGET","patchEvent","ignoreProperties","tip","filter","ip","targetIgnoreProperties","op","patchFilteredProperties","filteredProperties","getOnEventNames","getOwnPropertyNames","startsWith","map","substring","propertyDescriptorPatch","patchTargets","ignoreErrorProperties","patchBrowser","legacyPatch","clear","blockingMethods","s","XMLHttpRequestEventTarget","patchXHR","XHR_TASK","XHR_SYNC","XHR_LISTENER","XHR_SCHEDULED","XHR_URL","XHR_ERROR_BEFORE_SCHEDULED","XMLHttpRequest","XMLHttpRequestPrototype","findPendingTask","oriAddListener","oriRemoveListener","XMLHttpRequestEventTargetPrototype","READY_STATE_CHANGE","SCHEDULED","newListener","readyState","DONE","loadTasks","status","oriInvoke","storedTask","sendNative","placeholderCallback","abortNative","openNative","XMLHTTPREQUEST_SOURCE","fetchTaskAborting","fetchTaskScheduling","url","geolocation","findPromiseRejectionHandler","e","eventTasks","forEach","PromiseRejectionEvent","evt","promise","reason","rejection","patchPromise","readableObjectToString","JSON","stringify","_uncaughtPromiseErrors","isDisableWrappingUncaughtPromiseRejection","creationTrace","console","stack","uncaughtPromiseError","shift","throwOriginal","handleUnhandledRejection","UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL","handler","isThenable","then","forwardResolution","forwardRejection","ZoneAwarePromise","reject","symbolState","symbolValue","symbolFinally","symbolParentPromiseValue","symbolParentPromiseState","UNRESOLVED","RESOLVED","REJECTED","REJECTED_NO_CATCH","makeResolver","v","resolvePromise","wasCalled","wrapper","wrappedFunction","TYPE_ERROR","CURRENT_TASK_TRACE_SYMBOL","onceWrapper","TypeError","clearRejectedNoCatch","trace","scheduleResolveOrReject","REJECTION_HANDLED_HANDLER","chainPromise","onFulfilled","onRejected","promiseState","parentPromiseValue","isFinallyPromise","ZONE_AWARE_PROMISE_TO_STRING","AggregateError","withResolvers","res","rej","any","values","Symbol","iterator","Promise","promises","finished","race","onResolve","onReject","all","allWithCallback","allSettled","P","thenCallback","errorCallback","unresolvedCount","valueIndex","resolvedValues","curValueIndex","thenErr","executor","toStringTag","species","C","catch","finally","onFinally","NativePromise","symbolThenPatched","Ctor","originalThen","wrapped","zoneify","resultPromise","ctor","patchToString","originalFunctionToString","Function","ORIGINAL_DELEGATE_SYMBOL","PROMISE_SYMBOL","ERROR_SYMBOL","newFunctionToString","nativePromise","nativeError","originalObjectToString","PROMISE_OBJECT_TO_STRING","targetName","method","nativeDelegate","opts","descriptor","patchUtil","SYMBOL_BLACK_LISTED_EVENTS","SYMBOL_UNPATCHED_EVENTS","patchCommon","Zone$1"],"sourceRoot":"webpack:///","x_google_ignoreList":[1]} \ No newline at end of file diff --git a/docs/runtime.02603524133c51c3.js b/docs/runtime.02603524133c51c3.js new file mode 100644 index 0000000..efca843 --- /dev/null +++ b/docs/runtime.02603524133c51c3.js @@ -0,0 +1 @@ +(()=>{"use strict";var e,_={},i={};function a(e){var n=i[e];if(void 0!==n)return n.exports;var r=i[e]={id:e,loaded:!1,exports:{}};return _[e].call(r.exports,r,r.exports,a),r.loaded=!0,r.exports}a.m=_,e=[],a.O=(n,r,s,f)=>{if(!r){var o=1/0;for(t=0;t=f)&&Object.keys(a.O).every(p=>a.O[p](r[l]))?r.splice(l--,1):(u=!1,f0&&e[t-1][2]>f;t--)e[t]=e[t-1];e[t]=[r,s,f]},a.n=e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return a.d(n,{a:n}),n},a.d=(e,n)=>{for(var r in n)a.o(n,r)&&!a.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},a.o=(e,n)=>Object.prototype.hasOwnProperty.call(e,n),a.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{var e={121:0};a.O.j=s=>0===e[s];var n=(s,f)=>{var l,c,[t,o,u]=f,v=0;if(t.some(h=>0!==e[h])){for(l in o)a.o(o,l)&&(a.m[l]=o[l]);if(u)var d=u(a)}for(s&&s(f);v { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({}); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ id: moduleId, -/******/ loaded: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.loaded = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = __webpack_modules__; -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/chunk loaded */ -/******/ (() => { -/******/ var deferred = []; -/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { -/******/ if(chunkIds) { -/******/ priority = priority || 0; -/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; -/******/ deferred[i] = [chunkIds, fn, priority]; -/******/ return; -/******/ } -/******/ var notFulfilled = Infinity; -/******/ for (var i = 0; i < deferred.length; i++) { -/******/ var [chunkIds, fn, priority] = deferred[i]; -/******/ var fulfilled = true; -/******/ for (var j = 0; j < chunkIds.length; j++) { -/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { -/******/ chunkIds.splice(j--, 1); -/******/ } else { -/******/ fulfilled = false; -/******/ if(priority < notFulfilled) notFulfilled = priority; -/******/ } -/******/ } -/******/ if(fulfilled) { -/******/ deferred.splice(i--, 1) -/******/ var r = fn(); -/******/ if (r !== undefined) result = r; -/******/ } -/******/ } -/******/ return result; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (exports, definition) => { -/******/ for(var key in definition) { -/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { -/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); -/******/ } -/******/ } -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/hasOwnProperty shorthand */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/node module decorator */ -/******/ (() => { -/******/ __webpack_require__.nmd = (module) => { -/******/ module.paths = []; -/******/ if (!module.children) module.children = []; -/******/ return module; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/jsonp chunk loading */ -/******/ (() => { -/******/ // no baseURI -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ "runtime": 0 -/******/ }; -/******/ -/******/ // no chunk on demand loading -/******/ -/******/ // no prefetching -/******/ -/******/ // no preloaded -/******/ -/******/ // no HMR -/******/ -/******/ // no HMR manifest -/******/ -/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); -/******/ -/******/ // install a JSONP callback for chunk loading -/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { -/******/ var [chunkIds, moreModules, runtime] = data; -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0; -/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { -/******/ for(moduleId in moreModules) { -/******/ if(__webpack_require__.o(moreModules, moduleId)) { -/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(runtime) var result = runtime(__webpack_require__); -/******/ } -/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { -/******/ installedChunks[chunkId][0](); -/******/ } -/******/ installedChunks[chunkId] = 0; -/******/ } -/******/ return __webpack_require__.O(result); -/******/ } -/******/ -/******/ var chunkLoadingGlobal = self["webpackChunksorteo_wen"] = self["webpackChunksorteo_wen"] || []; -/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); -/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); -/******/ })(); -/******/ -/************************************************************************/ -/******/ -/******/ -/******/ })() -; -//# sourceMappingURL=runtime.js.map \ No newline at end of file diff --git a/docs/runtime.js.map b/docs/runtime.js.map deleted file mode 100644 index f93296b..0000000 --- a/docs/runtime.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"runtime.js","mappings":";;;;UAAA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;UAEA;UACA;;;;;WC5BA;WACA;WACA;WACA;WACA,+BAA+B,wCAAwC;WACvE;WACA;WACA;WACA;WACA,iBAAiB,qBAAqB;WACtC;WACA;WACA,kBAAkB,qBAAqB;WACvC;WACA;WACA,KAAK;WACL;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;;;;WC3BA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;WCNA;WACA;WACA;WACA;WACA;;;;;WCJA;;WAEA;WACA;WACA;WACA;WACA;WACA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,MAAM,qBAAqB;WAC3B;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;WAEA;WACA;WACA","sources":["webpack/bootstrap","webpack/runtime/chunk loaded","webpack/runtime/compat get default export","webpack/runtime/define property getters","webpack/runtime/hasOwnProperty shorthand","webpack/runtime/make namespace object","webpack/runtime/node module decorator","webpack/runtime/jsonp chunk loading","webpack/before-startup","webpack/startup","webpack/after-startup"],"sourcesContent":["// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t\"runtime\": 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunksorteo_wen\"] = self[\"webpackChunksorteo_wen\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","","",""],"names":[],"sourceRoot":"webpack:///","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10]} \ No newline at end of file diff --git a/docs/styles.5deb4df2561c48e1.css b/docs/styles.5deb4df2561c48e1.css new file mode 100644 index 0000000..6adbea5 --- /dev/null +++ b/docs/styles.5deb4df2561c48e1.css @@ -0,0 +1 @@ +.mat-ripple{overflow:hidden;position:relative}.mat-ripple:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0,0,.2,1);transform:scale3d(0,0,0);background-color:var(--mat-ripple-color, rgba(0, 0, 0, .1))}.cdk-high-contrast-active .mat-ripple-element,.cdk-drag-preview .mat-ripple-element,.cdk-drag-placeholder .mat-ripple-element{display:none}.cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl] .cdk-visually-hidden{left:auto;right:0}.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{position:absolute;inset:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:#00000052}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{padding:2px 0!important;box-sizing:content-box!important;height:auto!important;overflow:hidden!important}textarea.cdk-textarea-autosize-measuring-firefox{padding:2px 0!important;box-sizing:content-box!important;height:0!important}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}.mat-focus-indicator{position:relative}.mat-focus-indicator:before{inset:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-focus-indicator-display, none);border:var(--mat-focus-indicator-border-width, 3px) var(--mat-focus-indicator-border-style, solid) var(--mat-focus-indicator-border-color, transparent);border-radius:var(--mat-focus-indicator-border-radius, 4px)}.mat-focus-indicator:focus:before{content:""}.cdk-high-contrast-active{--mat-focus-indicator-display: block}.mat-mdc-focus-indicator{position:relative}.mat-mdc-focus-indicator:before{inset:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-mdc-focus-indicator-display, none);border:var(--mat-mdc-focus-indicator-border-width, 3px) var(--mat-mdc-focus-indicator-border-style, solid) var(--mat-mdc-focus-indicator-border-color, transparent);border-radius:var(--mat-mdc-focus-indicator-border-radius, 4px)}.mat-mdc-focus-indicator:focus:before{content:""}.cdk-high-contrast-active{--mat-mdc-focus-indicator-display: block}.mat-app-background{background-color:var(--mat-app-background-color, var(--mat-app-background, transparent));color:var(--mat-app-text-color, var(--mat-app-on-background, inherit))}.mat-elevation-z0,.mat-mdc-elevation-specific.mat-elevation-z0{box-shadow:var(--mat-app-elevation-shadow-level-0, none)}.mat-elevation-z1,.mat-mdc-elevation-specific.mat-elevation-z1{box-shadow:var(--mat-app-elevation-shadow-level-1, none)}.mat-elevation-z2,.mat-mdc-elevation-specific.mat-elevation-z2{box-shadow:var(--mat-app-elevation-shadow-level-2, none)}.mat-elevation-z3,.mat-mdc-elevation-specific.mat-elevation-z3{box-shadow:var(--mat-app-elevation-shadow-level-3, none)}.mat-elevation-z4,.mat-mdc-elevation-specific.mat-elevation-z4{box-shadow:var(--mat-app-elevation-shadow-level-4, none)}.mat-elevation-z5,.mat-mdc-elevation-specific.mat-elevation-z5{box-shadow:var(--mat-app-elevation-shadow-level-5, none)}.mat-elevation-z6,.mat-mdc-elevation-specific.mat-elevation-z6{box-shadow:var(--mat-app-elevation-shadow-level-6, none)}.mat-elevation-z7,.mat-mdc-elevation-specific.mat-elevation-z7{box-shadow:var(--mat-app-elevation-shadow-level-7, none)}.mat-elevation-z8,.mat-mdc-elevation-specific.mat-elevation-z8{box-shadow:var(--mat-app-elevation-shadow-level-8, none)}.mat-elevation-z9,.mat-mdc-elevation-specific.mat-elevation-z9{box-shadow:var(--mat-app-elevation-shadow-level-9, none)}.mat-elevation-z10,.mat-mdc-elevation-specific.mat-elevation-z10{box-shadow:var(--mat-app-elevation-shadow-level-10, none)}.mat-elevation-z11,.mat-mdc-elevation-specific.mat-elevation-z11{box-shadow:var(--mat-app-elevation-shadow-level-11, none)}.mat-elevation-z12,.mat-mdc-elevation-specific.mat-elevation-z12{box-shadow:var(--mat-app-elevation-shadow-level-12, none)}.mat-elevation-z13,.mat-mdc-elevation-specific.mat-elevation-z13{box-shadow:var(--mat-app-elevation-shadow-level-13, none)}.mat-elevation-z14,.mat-mdc-elevation-specific.mat-elevation-z14{box-shadow:var(--mat-app-elevation-shadow-level-14, none)}.mat-elevation-z15,.mat-mdc-elevation-specific.mat-elevation-z15{box-shadow:var(--mat-app-elevation-shadow-level-15, none)}.mat-elevation-z16,.mat-mdc-elevation-specific.mat-elevation-z16{box-shadow:var(--mat-app-elevation-shadow-level-16, none)}.mat-elevation-z17,.mat-mdc-elevation-specific.mat-elevation-z17{box-shadow:var(--mat-app-elevation-shadow-level-17, none)}.mat-elevation-z18,.mat-mdc-elevation-specific.mat-elevation-z18{box-shadow:var(--mat-app-elevation-shadow-level-18, none)}.mat-elevation-z19,.mat-mdc-elevation-specific.mat-elevation-z19{box-shadow:var(--mat-app-elevation-shadow-level-19, none)}.mat-elevation-z20,.mat-mdc-elevation-specific.mat-elevation-z20{box-shadow:var(--mat-app-elevation-shadow-level-20, none)}.mat-elevation-z21,.mat-mdc-elevation-specific.mat-elevation-z21{box-shadow:var(--mat-app-elevation-shadow-level-21, none)}.mat-elevation-z22,.mat-mdc-elevation-specific.mat-elevation-z22{box-shadow:var(--mat-app-elevation-shadow-level-22, none)}.mat-elevation-z23,.mat-mdc-elevation-specific.mat-elevation-z23{box-shadow:var(--mat-app-elevation-shadow-level-23, none)}.mat-elevation-z24,.mat-mdc-elevation-specific.mat-elevation-z24{box-shadow:var(--mat-app-elevation-shadow-level-24, none)}.mat-theme-loaded-marker{display:none}html{--mat-ripple-color:rgba(0, 0, 0, .1)}html{--mat-option-selected-state-label-text-color:#3f51b5;--mat-option-label-text-color:rgba(0, 0, 0, .87);--mat-option-hover-state-layer-color:rgba(0, 0, 0, .04);--mat-option-focus-state-layer-color:rgba(0, 0, 0, .04);--mat-option-selected-state-layer-color:rgba(0, 0, 0, .04)}.mat-accent{--mat-option-selected-state-label-text-color:#ff4081;--mat-option-label-text-color:rgba(0, 0, 0, .87);--mat-option-hover-state-layer-color:rgba(0, 0, 0, .04);--mat-option-focus-state-layer-color:rgba(0, 0, 0, .04);--mat-option-selected-state-layer-color:rgba(0, 0, 0, .04)}.mat-warn{--mat-option-selected-state-label-text-color:#f44336;--mat-option-label-text-color:rgba(0, 0, 0, .87);--mat-option-hover-state-layer-color:rgba(0, 0, 0, .04);--mat-option-focus-state-layer-color:rgba(0, 0, 0, .04);--mat-option-selected-state-layer-color:rgba(0, 0, 0, .04)}html{--mat-optgroup-label-text-color:rgba(0, 0, 0, .87)}.mat-primary{--mat-full-pseudo-checkbox-selected-icon-color:#3f51b5;--mat-full-pseudo-checkbox-selected-checkmark-color:#fafafa;--mat-full-pseudo-checkbox-unselected-icon-color:rgba(0, 0, 0, .54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color:#fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color:#b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color:#b0b0b0;--mat-minimal-pseudo-checkbox-selected-checkmark-color:#3f51b5;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color:#b0b0b0}html,.mat-accent{--mat-full-pseudo-checkbox-selected-icon-color:#ff4081;--mat-full-pseudo-checkbox-selected-checkmark-color:#fafafa;--mat-full-pseudo-checkbox-unselected-icon-color:rgba(0, 0, 0, .54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color:#fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color:#b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color:#b0b0b0;--mat-minimal-pseudo-checkbox-selected-checkmark-color:#ff4081;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color:#b0b0b0}.mat-warn{--mat-full-pseudo-checkbox-selected-icon-color:#f44336;--mat-full-pseudo-checkbox-selected-checkmark-color:#fafafa;--mat-full-pseudo-checkbox-unselected-icon-color:rgba(0, 0, 0, .54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color:#fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color:#b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color:#b0b0b0;--mat-minimal-pseudo-checkbox-selected-checkmark-color:#f44336;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color:#b0b0b0}html{--mat-app-background-color:#fafafa;--mat-app-text-color:rgba(0, 0, 0, .87);--mat-app-elevation-shadow-level-0:0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-1:0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-2:0px 3px 1px -2px rgba(0, 0, 0, .2), 0px 2px 2px 0px rgba(0, 0, 0, .14), 0px 1px 5px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-3:0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-4:0px 2px 4px -1px rgba(0, 0, 0, .2), 0px 4px 5px 0px rgba(0, 0, 0, .14), 0px 1px 10px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-5:0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 5px 8px 0px rgba(0, 0, 0, .14), 0px 1px 14px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-6:0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-7:0px 4px 5px -2px rgba(0, 0, 0, .2), 0px 7px 10px 1px rgba(0, 0, 0, .14), 0px 2px 16px 1px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-8:0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-9:0px 5px 6px -3px rgba(0, 0, 0, .2), 0px 9px 12px 1px rgba(0, 0, 0, .14), 0px 3px 16px 2px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-10:0px 6px 6px -3px rgba(0, 0, 0, .2), 0px 10px 14px 1px rgba(0, 0, 0, .14), 0px 4px 18px 3px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-11:0px 6px 7px -4px rgba(0, 0, 0, .2), 0px 11px 15px 1px rgba(0, 0, 0, .14), 0px 4px 20px 3px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-12:0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-13:0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 13px 19px 2px rgba(0, 0, 0, .14), 0px 5px 24px 4px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-14:0px 7px 9px -4px rgba(0, 0, 0, .2), 0px 14px 21px 2px rgba(0, 0, 0, .14), 0px 5px 26px 4px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-15:0px 8px 9px -5px rgba(0, 0, 0, .2), 0px 15px 22px 2px rgba(0, 0, 0, .14), 0px 6px 28px 5px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-16:0px 8px 10px -5px rgba(0, 0, 0, .2), 0px 16px 24px 2px rgba(0, 0, 0, .14), 0px 6px 30px 5px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-17:0px 8px 11px -5px rgba(0, 0, 0, .2), 0px 17px 26px 2px rgba(0, 0, 0, .14), 0px 6px 32px 5px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-18:0px 9px 11px -5px rgba(0, 0, 0, .2), 0px 18px 28px 2px rgba(0, 0, 0, .14), 0px 7px 34px 6px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-19:0px 9px 12px -6px rgba(0, 0, 0, .2), 0px 19px 29px 2px rgba(0, 0, 0, .14), 0px 7px 36px 6px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-20:0px 10px 13px -6px rgba(0, 0, 0, .2), 0px 20px 31px 3px rgba(0, 0, 0, .14), 0px 8px 38px 7px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-21:0px 10px 13px -6px rgba(0, 0, 0, .2), 0px 21px 33px 3px rgba(0, 0, 0, .14), 0px 8px 40px 7px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-22:0px 10px 14px -6px rgba(0, 0, 0, .2), 0px 22px 35px 3px rgba(0, 0, 0, .14), 0px 8px 42px 7px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-23:0px 11px 14px -7px rgba(0, 0, 0, .2), 0px 23px 36px 3px rgba(0, 0, 0, .14), 0px 9px 44px 8px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-24:0px 11px 15px -7px rgba(0, 0, 0, .2), 0px 24px 38px 3px rgba(0, 0, 0, .14), 0px 9px 46px 8px rgba(0, 0, 0, .12)}html{--mat-option-label-text-font:Roboto, sans-serif;--mat-option-label-text-line-height:24px;--mat-option-label-text-size:16px;--mat-option-label-text-tracking:.03125em;--mat-option-label-text-weight:400}html{--mat-optgroup-label-text-font:Roboto, sans-serif;--mat-optgroup-label-text-line-height:24px;--mat-optgroup-label-text-size:16px;--mat-optgroup-label-text-tracking:.03125em;--mat-optgroup-label-text-weight:400}html{--mdc-elevated-card-container-shape:4px;--mdc-outlined-card-container-shape:4px;--mdc-outlined-card-outline-width:1px}html{--mdc-elevated-card-container-color:white;--mdc-elevated-card-container-elevation:0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mdc-outlined-card-container-color:white;--mdc-outlined-card-outline-color:rgba(0, 0, 0, .12);--mdc-outlined-card-container-elevation:0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-card-subtitle-text-color:rgba(0, 0, 0, .54)}html{--mat-card-title-text-font:Roboto, sans-serif;--mat-card-title-text-line-height:32px;--mat-card-title-text-size:20px;--mat-card-title-text-tracking:.0125em;--mat-card-title-text-weight:500;--mat-card-subtitle-text-font:Roboto, sans-serif;--mat-card-subtitle-text-line-height:22px;--mat-card-subtitle-text-size:14px;--mat-card-subtitle-text-tracking:.0071428571em;--mat-card-subtitle-text-weight:500}html{--mdc-linear-progress-active-indicator-height:4px;--mdc-linear-progress-track-height:4px;--mdc-linear-progress-track-shape:0}.mat-mdc-progress-bar{--mdc-linear-progress-active-indicator-color:#3f51b5;--mdc-linear-progress-track-color:rgba(63, 81, 181, .25)}.mat-mdc-progress-bar.mat-accent{--mdc-linear-progress-active-indicator-color:#ff4081;--mdc-linear-progress-track-color:rgba(255, 64, 129, .25)}.mat-mdc-progress-bar.mat-warn{--mdc-linear-progress-active-indicator-color:#f44336;--mdc-linear-progress-track-color:rgba(244, 67, 54, .25)}html{--mdc-plain-tooltip-container-shape:4px;--mdc-plain-tooltip-supporting-text-line-height:16px}html{--mdc-plain-tooltip-container-color:#616161;--mdc-plain-tooltip-supporting-text-color:#fff}html{--mdc-plain-tooltip-supporting-text-font:Roboto, sans-serif;--mdc-plain-tooltip-supporting-text-size:12px;--mdc-plain-tooltip-supporting-text-weight:400;--mdc-plain-tooltip-supporting-text-tracking:.0333333333em}html{--mdc-filled-text-field-active-indicator-height:1px;--mdc-filled-text-field-focus-active-indicator-height:2px;--mdc-filled-text-field-container-shape:4px;--mdc-outlined-text-field-outline-width:1px;--mdc-outlined-text-field-focus-outline-width:2px;--mdc-outlined-text-field-container-shape:4px}html{--mdc-filled-text-field-caret-color:#3f51b5;--mdc-filled-text-field-focus-active-indicator-color:#3f51b5;--mdc-filled-text-field-focus-label-text-color:rgba(63, 81, 181, .87);--mdc-filled-text-field-container-color:whitesmoke;--mdc-filled-text-field-disabled-container-color:#fafafa;--mdc-filled-text-field-label-text-color:rgba(0, 0, 0, .6);--mdc-filled-text-field-hover-label-text-color:rgba(0, 0, 0, .6);--mdc-filled-text-field-disabled-label-text-color:rgba(0, 0, 0, .38);--mdc-filled-text-field-input-text-color:rgba(0, 0, 0, .87);--mdc-filled-text-field-disabled-input-text-color:rgba(0, 0, 0, .38);--mdc-filled-text-field-input-text-placeholder-color:rgba(0, 0, 0, .6);--mdc-filled-text-field-error-hover-label-text-color:#f44336;--mdc-filled-text-field-error-focus-label-text-color:#f44336;--mdc-filled-text-field-error-label-text-color:#f44336;--mdc-filled-text-field-error-caret-color:#f44336;--mdc-filled-text-field-active-indicator-color:rgba(0, 0, 0, .42);--mdc-filled-text-field-disabled-active-indicator-color:rgba(0, 0, 0, .06);--mdc-filled-text-field-hover-active-indicator-color:rgba(0, 0, 0, .87);--mdc-filled-text-field-error-active-indicator-color:#f44336;--mdc-filled-text-field-error-focus-active-indicator-color:#f44336;--mdc-filled-text-field-error-hover-active-indicator-color:#f44336;--mdc-outlined-text-field-caret-color:#3f51b5;--mdc-outlined-text-field-focus-outline-color:#3f51b5;--mdc-outlined-text-field-focus-label-text-color:rgba(63, 81, 181, .87);--mdc-outlined-text-field-label-text-color:rgba(0, 0, 0, .6);--mdc-outlined-text-field-hover-label-text-color:rgba(0, 0, 0, .6);--mdc-outlined-text-field-disabled-label-text-color:rgba(0, 0, 0, .38);--mdc-outlined-text-field-input-text-color:rgba(0, 0, 0, .87);--mdc-outlined-text-field-disabled-input-text-color:rgba(0, 0, 0, .38);--mdc-outlined-text-field-input-text-placeholder-color:rgba(0, 0, 0, .6);--mdc-outlined-text-field-error-caret-color:#f44336;--mdc-outlined-text-field-error-focus-label-text-color:#f44336;--mdc-outlined-text-field-error-label-text-color:#f44336;--mdc-outlined-text-field-error-hover-label-text-color:#f44336;--mdc-outlined-text-field-outline-color:rgba(0, 0, 0, .38);--mdc-outlined-text-field-disabled-outline-color:rgba(0, 0, 0, .06);--mdc-outlined-text-field-hover-outline-color:rgba(0, 0, 0, .87);--mdc-outlined-text-field-error-focus-outline-color:#f44336;--mdc-outlined-text-field-error-hover-outline-color:#f44336;--mdc-outlined-text-field-error-outline-color:#f44336;--mat-form-field-focus-select-arrow-color:rgba(63, 81, 181, .87);--mat-form-field-disabled-input-text-placeholder-color:rgba(0, 0, 0, .38);--mat-form-field-state-layer-color:rgba(0, 0, 0, .87);--mat-form-field-error-text-color:#f44336;--mat-form-field-select-option-text-color:inherit;--mat-form-field-select-disabled-option-text-color:GrayText;--mat-form-field-leading-icon-color:unset;--mat-form-field-disabled-leading-icon-color:unset;--mat-form-field-trailing-icon-color:unset;--mat-form-field-disabled-trailing-icon-color:unset;--mat-form-field-error-focus-trailing-icon-color:unset;--mat-form-field-error-hover-trailing-icon-color:unset;--mat-form-field-error-trailing-icon-color:unset;--mat-form-field-enabled-select-arrow-color:rgba(0, 0, 0, .54);--mat-form-field-disabled-select-arrow-color:rgba(0, 0, 0, .38);--mat-form-field-hover-state-layer-opacity:.04;--mat-form-field-focus-state-layer-opacity:.08}.mat-mdc-form-field.mat-accent{--mdc-filled-text-field-caret-color:#ff4081;--mdc-filled-text-field-focus-active-indicator-color:#ff4081;--mdc-filled-text-field-focus-label-text-color:rgba(255, 64, 129, .87);--mdc-outlined-text-field-caret-color:#ff4081;--mdc-outlined-text-field-focus-outline-color:#ff4081;--mdc-outlined-text-field-focus-label-text-color:rgba(255, 64, 129, .87);--mat-form-field-focus-select-arrow-color:rgba(255, 64, 129, .87)}.mat-mdc-form-field.mat-warn{--mdc-filled-text-field-caret-color:#f44336;--mdc-filled-text-field-focus-active-indicator-color:#f44336;--mdc-filled-text-field-focus-label-text-color:rgba(244, 67, 54, .87);--mdc-outlined-text-field-caret-color:#f44336;--mdc-outlined-text-field-focus-outline-color:#f44336;--mdc-outlined-text-field-focus-label-text-color:rgba(244, 67, 54, .87);--mat-form-field-focus-select-arrow-color:rgba(244, 67, 54, .87)}html{--mat-form-field-container-height:56px;--mat-form-field-filled-label-display:block;--mat-form-field-container-vertical-padding:16px;--mat-form-field-filled-with-label-container-padding-top:24px;--mat-form-field-filled-with-label-container-padding-bottom:8px}html{--mdc-filled-text-field-label-text-font:Roboto, sans-serif;--mdc-filled-text-field-label-text-size:16px;--mdc-filled-text-field-label-text-tracking:.03125em;--mdc-filled-text-field-label-text-weight:400;--mdc-outlined-text-field-label-text-font:Roboto, sans-serif;--mdc-outlined-text-field-label-text-size:16px;--mdc-outlined-text-field-label-text-tracking:.03125em;--mdc-outlined-text-field-label-text-weight:400;--mat-form-field-container-text-font:Roboto, sans-serif;--mat-form-field-container-text-line-height:24px;--mat-form-field-container-text-size:16px;--mat-form-field-container-text-tracking:.03125em;--mat-form-field-container-text-weight:400;--mat-form-field-outlined-label-text-populated-size:16px;--mat-form-field-subscript-text-font:Roboto, sans-serif;--mat-form-field-subscript-text-line-height:20px;--mat-form-field-subscript-text-size:12px;--mat-form-field-subscript-text-tracking:.0333333333em;--mat-form-field-subscript-text-weight:400}html{--mat-select-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html{--mat-select-panel-background-color:white;--mat-select-enabled-trigger-text-color:rgba(0, 0, 0, .87);--mat-select-disabled-trigger-text-color:rgba(0, 0, 0, .38);--mat-select-placeholder-text-color:rgba(0, 0, 0, .6);--mat-select-enabled-arrow-color:rgba(0, 0, 0, .54);--mat-select-disabled-arrow-color:rgba(0, 0, 0, .38);--mat-select-focused-arrow-color:rgba(63, 81, 181, .87);--mat-select-invalid-arrow-color:rgba(244, 67, 54, .87)}html .mat-mdc-form-field.mat-accent{--mat-select-panel-background-color:white;--mat-select-enabled-trigger-text-color:rgba(0, 0, 0, .87);--mat-select-disabled-trigger-text-color:rgba(0, 0, 0, .38);--mat-select-placeholder-text-color:rgba(0, 0, 0, .6);--mat-select-enabled-arrow-color:rgba(0, 0, 0, .54);--mat-select-disabled-arrow-color:rgba(0, 0, 0, .38);--mat-select-focused-arrow-color:rgba(255, 64, 129, .87);--mat-select-invalid-arrow-color:rgba(244, 67, 54, .87)}html .mat-mdc-form-field.mat-warn{--mat-select-panel-background-color:white;--mat-select-enabled-trigger-text-color:rgba(0, 0, 0, .87);--mat-select-disabled-trigger-text-color:rgba(0, 0, 0, .38);--mat-select-placeholder-text-color:rgba(0, 0, 0, .6);--mat-select-enabled-arrow-color:rgba(0, 0, 0, .54);--mat-select-disabled-arrow-color:rgba(0, 0, 0, .38);--mat-select-focused-arrow-color:rgba(244, 67, 54, .87);--mat-select-invalid-arrow-color:rgba(244, 67, 54, .87)}html{--mat-select-arrow-transform:translateY(-8px)}html{--mat-select-trigger-text-font:Roboto, sans-serif;--mat-select-trigger-text-line-height:24px;--mat-select-trigger-text-size:16px;--mat-select-trigger-text-tracking:.03125em;--mat-select-trigger-text-weight:400}html{--mat-autocomplete-container-shape:4px;--mat-autocomplete-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html{--mat-autocomplete-background-color:white}html{--mdc-dialog-container-shape:4px;--mat-dialog-container-elevation-shadow:0px 11px 15px -7px rgba(0, 0, 0, .2), 0px 24px 38px 3px rgba(0, 0, 0, .14), 0px 9px 46px 8px rgba(0, 0, 0, .12);--mat-dialog-container-max-width:80vw;--mat-dialog-container-small-max-width:80vw;--mat-dialog-container-min-width:0;--mat-dialog-actions-alignment:start;--mat-dialog-actions-padding:8px;--mat-dialog-content-padding:20px 24px;--mat-dialog-with-actions-content-padding:20px 24px;--mat-dialog-headline-padding:0 24px 9px}html{--mdc-dialog-container-color:white;--mdc-dialog-subhead-color:rgba(0, 0, 0, .87);--mdc-dialog-supporting-text-color:rgba(0, 0, 0, .6)}html{--mdc-dialog-subhead-font:Roboto, sans-serif;--mdc-dialog-subhead-line-height:32px;--mdc-dialog-subhead-size:20px;--mdc-dialog-subhead-weight:500;--mdc-dialog-subhead-tracking:.0125em;--mdc-dialog-supporting-text-font:Roboto, sans-serif;--mdc-dialog-supporting-text-line-height:24px;--mdc-dialog-supporting-text-size:16px;--mdc-dialog-supporting-text-weight:400;--mdc-dialog-supporting-text-tracking:.03125em}.mat-mdc-standard-chip{--mdc-chip-container-shape-radius:16px;--mdc-chip-with-avatar-avatar-shape-radius:14px;--mdc-chip-with-avatar-avatar-size:28px;--mdc-chip-with-icon-icon-size:18px;--mdc-chip-outline-width:0;--mdc-chip-outline-color:transparent;--mdc-chip-disabled-outline-color:transparent;--mdc-chip-focus-outline-color:transparent;--mdc-chip-hover-state-layer-opacity:.04;--mdc-chip-with-avatar-disabled-avatar-opacity:1;--mdc-chip-flat-selected-outline-width:0;--mdc-chip-selected-hover-state-layer-opacity:.04;--mdc-chip-with-trailing-icon-disabled-trailing-icon-opacity:1;--mdc-chip-with-icon-disabled-icon-opacity:1;--mat-chip-disabled-container-opacity:.4;--mat-chip-trailing-action-opacity:.54;--mat-chip-trailing-action-focus-opacity:1;--mat-chip-trailing-action-state-layer-color:transparent;--mat-chip-selected-trailing-action-state-layer-color:transparent;--mat-chip-trailing-action-hover-state-layer-opacity:0;--mat-chip-trailing-action-focus-state-layer-opacity:0}.mat-mdc-standard-chip{--mdc-chip-disabled-label-text-color:#212121;--mdc-chip-elevated-container-color:#e0e0e0;--mdc-chip-elevated-selected-container-color:#e0e0e0;--mdc-chip-elevated-disabled-container-color:#e0e0e0;--mdc-chip-flat-disabled-selected-container-color:#e0e0e0;--mdc-chip-focus-state-layer-color:black;--mdc-chip-hover-state-layer-color:black;--mdc-chip-selected-hover-state-layer-color:black;--mdc-chip-focus-state-layer-opacity:.12;--mdc-chip-selected-focus-state-layer-color:black;--mdc-chip-selected-focus-state-layer-opacity:.12;--mdc-chip-label-text-color:#212121;--mdc-chip-selected-label-text-color:#212121;--mdc-chip-with-icon-icon-color:#212121;--mdc-chip-with-icon-disabled-icon-color:#212121;--mdc-chip-with-icon-selected-icon-color:#212121;--mdc-chip-with-trailing-icon-disabled-trailing-icon-color:#212121;--mdc-chip-with-trailing-icon-trailing-icon-color:#212121;--mat-chip-selected-disabled-trailing-icon-color:#212121;--mat-chip-selected-trailing-icon-color:#212121}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-primary,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-primary{--mdc-chip-disabled-label-text-color:white;--mdc-chip-elevated-container-color:#3f51b5;--mdc-chip-elevated-selected-container-color:#3f51b5;--mdc-chip-elevated-disabled-container-color:#3f51b5;--mdc-chip-flat-disabled-selected-container-color:#3f51b5;--mdc-chip-focus-state-layer-color:black;--mdc-chip-hover-state-layer-color:black;--mdc-chip-selected-hover-state-layer-color:black;--mdc-chip-focus-state-layer-opacity:.12;--mdc-chip-selected-focus-state-layer-color:black;--mdc-chip-selected-focus-state-layer-opacity:.12;--mdc-chip-label-text-color:white;--mdc-chip-selected-label-text-color:white;--mdc-chip-with-icon-icon-color:white;--mdc-chip-with-icon-disabled-icon-color:white;--mdc-chip-with-icon-selected-icon-color:white;--mdc-chip-with-trailing-icon-disabled-trailing-icon-color:white;--mdc-chip-with-trailing-icon-trailing-icon-color:white;--mat-chip-selected-disabled-trailing-icon-color:white;--mat-chip-selected-trailing-icon-color:white}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-accent,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-accent{--mdc-chip-disabled-label-text-color:white;--mdc-chip-elevated-container-color:#ff4081;--mdc-chip-elevated-selected-container-color:#ff4081;--mdc-chip-elevated-disabled-container-color:#ff4081;--mdc-chip-flat-disabled-selected-container-color:#ff4081;--mdc-chip-focus-state-layer-color:black;--mdc-chip-hover-state-layer-color:black;--mdc-chip-selected-hover-state-layer-color:black;--mdc-chip-focus-state-layer-opacity:.12;--mdc-chip-selected-focus-state-layer-color:black;--mdc-chip-selected-focus-state-layer-opacity:.12;--mdc-chip-label-text-color:white;--mdc-chip-selected-label-text-color:white;--mdc-chip-with-icon-icon-color:white;--mdc-chip-with-icon-disabled-icon-color:white;--mdc-chip-with-icon-selected-icon-color:white;--mdc-chip-with-trailing-icon-disabled-trailing-icon-color:white;--mdc-chip-with-trailing-icon-trailing-icon-color:white;--mat-chip-selected-disabled-trailing-icon-color:white;--mat-chip-selected-trailing-icon-color:white}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-warn,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-warn{--mdc-chip-disabled-label-text-color:white;--mdc-chip-elevated-container-color:#f44336;--mdc-chip-elevated-selected-container-color:#f44336;--mdc-chip-elevated-disabled-container-color:#f44336;--mdc-chip-flat-disabled-selected-container-color:#f44336;--mdc-chip-focus-state-layer-color:black;--mdc-chip-hover-state-layer-color:black;--mdc-chip-selected-hover-state-layer-color:black;--mdc-chip-focus-state-layer-opacity:.12;--mdc-chip-selected-focus-state-layer-color:black;--mdc-chip-selected-focus-state-layer-opacity:.12;--mdc-chip-label-text-color:white;--mdc-chip-selected-label-text-color:white;--mdc-chip-with-icon-icon-color:white;--mdc-chip-with-icon-disabled-icon-color:white;--mdc-chip-with-icon-selected-icon-color:white;--mdc-chip-with-trailing-icon-disabled-trailing-icon-color:white;--mdc-chip-with-trailing-icon-trailing-icon-color:white;--mat-chip-selected-disabled-trailing-icon-color:white;--mat-chip-selected-trailing-icon-color:white}.mat-mdc-chip.mat-mdc-standard-chip{--mdc-chip-container-height:32px}.mat-mdc-standard-chip{--mdc-chip-label-text-font:Roboto, sans-serif;--mdc-chip-label-text-line-height:20px;--mdc-chip-label-text-size:14px;--mdc-chip-label-text-tracking:.0178571429em;--mdc-chip-label-text-weight:400}html{--mdc-switch-disabled-selected-icon-opacity:.38;--mdc-switch-disabled-track-opacity:.12;--mdc-switch-disabled-unselected-icon-opacity:.38;--mdc-switch-handle-height:20px;--mdc-switch-handle-shape:10px;--mdc-switch-handle-width:20px;--mdc-switch-selected-icon-size:18px;--mdc-switch-track-height:14px;--mdc-switch-track-shape:7px;--mdc-switch-track-width:36px;--mdc-switch-unselected-icon-size:18px;--mdc-switch-selected-focus-state-layer-opacity:.12;--mdc-switch-selected-hover-state-layer-opacity:.04;--mdc-switch-selected-pressed-state-layer-opacity:.1;--mdc-switch-unselected-focus-state-layer-opacity:.12;--mdc-switch-unselected-hover-state-layer-opacity:.04;--mdc-switch-unselected-pressed-state-layer-opacity:.1}html .mat-mdc-slide-toggle{--mat-switch-disabled-selected-handle-opacity:.38;--mat-switch-disabled-unselected-handle-opacity:.38;--mat-switch-unselected-handle-size:20px;--mat-switch-selected-handle-size:20px;--mat-switch-pressed-handle-size:20px;--mat-switch-with-icon-handle-size:20px;--mat-switch-selected-handle-horizontal-margin:0;--mat-switch-selected-with-icon-handle-horizontal-margin:0;--mat-switch-selected-pressed-handle-horizontal-margin:0;--mat-switch-unselected-handle-horizontal-margin:0;--mat-switch-unselected-with-icon-handle-horizontal-margin:0;--mat-switch-unselected-pressed-handle-horizontal-margin:0;--mat-switch-visible-track-opacity:1;--mat-switch-hidden-track-opacity:1;--mat-switch-visible-track-transition:transform 75ms 0ms cubic-bezier(0, 0, .2, 1);--mat-switch-hidden-track-transition:transform 75ms 0ms cubic-bezier(.4, 0, .6, 1);--mat-switch-track-outline-width:1px;--mat-switch-track-outline-color:transparent;--mat-switch-selected-track-outline-width:1px;--mat-switch-selected-track-outline-color:transparent;--mat-switch-disabled-unselected-track-outline-width:1px;--mat-switch-disabled-unselected-track-outline-color:transparent}html{--mdc-switch-selected-focus-state-layer-color:#3949ab;--mdc-switch-selected-handle-color:#3949ab;--mdc-switch-selected-hover-state-layer-color:#3949ab;--mdc-switch-selected-pressed-state-layer-color:#3949ab;--mdc-switch-selected-focus-handle-color:#1a237e;--mdc-switch-selected-hover-handle-color:#1a237e;--mdc-switch-selected-pressed-handle-color:#1a237e;--mdc-switch-selected-focus-track-color:#7986cb;--mdc-switch-selected-hover-track-color:#7986cb;--mdc-switch-selected-pressed-track-color:#7986cb;--mdc-switch-selected-track-color:#7986cb;--mdc-switch-disabled-selected-handle-color:#424242;--mdc-switch-disabled-selected-icon-color:#fff;--mdc-switch-disabled-selected-track-color:#424242;--mdc-switch-disabled-unselected-handle-color:#424242;--mdc-switch-disabled-unselected-icon-color:#fff;--mdc-switch-disabled-unselected-track-color:#424242;--mdc-switch-handle-surface-color:#fff;--mdc-switch-selected-icon-color:#fff;--mdc-switch-unselected-focus-handle-color:#212121;--mdc-switch-unselected-focus-state-layer-color:#424242;--mdc-switch-unselected-focus-track-color:#e0e0e0;--mdc-switch-unselected-handle-color:#616161;--mdc-switch-unselected-hover-handle-color:#212121;--mdc-switch-unselected-hover-state-layer-color:#424242;--mdc-switch-unselected-hover-track-color:#e0e0e0;--mdc-switch-unselected-icon-color:#fff;--mdc-switch-unselected-pressed-handle-color:#212121;--mdc-switch-unselected-pressed-state-layer-color:#424242;--mdc-switch-unselected-pressed-track-color:#e0e0e0;--mdc-switch-unselected-track-color:#e0e0e0;--mdc-switch-handle-elevation-shadow:0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mdc-switch-disabled-handle-elevation-shadow:0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mdc-switch-disabled-label-text-color: rgba(0, 0, 0, .38)}html .mat-mdc-slide-toggle{--mat-switch-label-text-color:rgba(0, 0, 0, .87)}html .mat-mdc-slide-toggle.mat-accent{--mdc-switch-selected-focus-state-layer-color:#d81b60;--mdc-switch-selected-handle-color:#d81b60;--mdc-switch-selected-hover-state-layer-color:#d81b60;--mdc-switch-selected-pressed-state-layer-color:#d81b60;--mdc-switch-selected-focus-handle-color:#880e4f;--mdc-switch-selected-hover-handle-color:#880e4f;--mdc-switch-selected-pressed-handle-color:#880e4f;--mdc-switch-selected-focus-track-color:#f06292;--mdc-switch-selected-hover-track-color:#f06292;--mdc-switch-selected-pressed-track-color:#f06292;--mdc-switch-selected-track-color:#f06292}html .mat-mdc-slide-toggle.mat-warn{--mdc-switch-selected-focus-state-layer-color:#e53935;--mdc-switch-selected-handle-color:#e53935;--mdc-switch-selected-hover-state-layer-color:#e53935;--mdc-switch-selected-pressed-state-layer-color:#e53935;--mdc-switch-selected-focus-handle-color:#b71c1c;--mdc-switch-selected-hover-handle-color:#b71c1c;--mdc-switch-selected-pressed-handle-color:#b71c1c;--mdc-switch-selected-focus-track-color:#e57373;--mdc-switch-selected-hover-track-color:#e57373;--mdc-switch-selected-pressed-track-color:#e57373;--mdc-switch-selected-track-color:#e57373}html{--mdc-switch-state-layer-size:40px}html .mat-mdc-slide-toggle{--mat-switch-label-text-font:Roboto, sans-serif;--mat-switch-label-text-line-height:20px;--mat-switch-label-text-size:14px;--mat-switch-label-text-tracking:.0178571429em;--mat-switch-label-text-weight:400}html{--mdc-radio-disabled-selected-icon-opacity:.38;--mdc-radio-disabled-unselected-icon-opacity:.38;--mdc-radio-state-layer-size:40px}.mat-mdc-radio-button.mat-primary{--mdc-radio-disabled-selected-icon-color:black;--mdc-radio-disabled-unselected-icon-color:black;--mdc-radio-unselected-hover-icon-color:#212121;--mdc-radio-unselected-focus-icon-color:#212121;--mdc-radio-unselected-icon-color:rgba(0, 0, 0, .54);--mdc-radio-unselected-pressed-icon-color:rgba(0, 0, 0, .54);--mdc-radio-selected-focus-icon-color:#3f51b5;--mdc-radio-selected-hover-icon-color:#3f51b5;--mdc-radio-selected-icon-color:#3f51b5;--mdc-radio-selected-pressed-icon-color:#3f51b5;--mat-radio-ripple-color:black;--mat-radio-checked-ripple-color:#3f51b5;--mat-radio-disabled-label-color:rgba(0, 0, 0, .38);--mat-radio-label-text-color:rgba(0, 0, 0, .87)}.mat-mdc-radio-button.mat-accent{--mdc-radio-disabled-selected-icon-color:black;--mdc-radio-disabled-unselected-icon-color:black;--mdc-radio-unselected-hover-icon-color:#212121;--mdc-radio-unselected-focus-icon-color:#212121;--mdc-radio-unselected-icon-color:rgba(0, 0, 0, .54);--mdc-radio-unselected-pressed-icon-color:rgba(0, 0, 0, .54);--mdc-radio-selected-focus-icon-color:#ff4081;--mdc-radio-selected-hover-icon-color:#ff4081;--mdc-radio-selected-icon-color:#ff4081;--mdc-radio-selected-pressed-icon-color:#ff4081;--mat-radio-ripple-color:black;--mat-radio-checked-ripple-color:#ff4081;--mat-radio-disabled-label-color:rgba(0, 0, 0, .38);--mat-radio-label-text-color:rgba(0, 0, 0, .87)}.mat-mdc-radio-button.mat-warn{--mdc-radio-disabled-selected-icon-color:black;--mdc-radio-disabled-unselected-icon-color:black;--mdc-radio-unselected-hover-icon-color:#212121;--mdc-radio-unselected-focus-icon-color:#212121;--mdc-radio-unselected-icon-color:rgba(0, 0, 0, .54);--mdc-radio-unselected-pressed-icon-color:rgba(0, 0, 0, .54);--mdc-radio-selected-focus-icon-color:#f44336;--mdc-radio-selected-hover-icon-color:#f44336;--mdc-radio-selected-icon-color:#f44336;--mdc-radio-selected-pressed-icon-color:#f44336;--mat-radio-ripple-color:black;--mat-radio-checked-ripple-color:#f44336;--mat-radio-disabled-label-color:rgba(0, 0, 0, .38);--mat-radio-label-text-color:rgba(0, 0, 0, .87)}html{--mdc-radio-state-layer-size:40px;--mat-radio-touch-target-display:block}html{--mat-radio-label-text-font:Roboto, sans-serif;--mat-radio-label-text-line-height:20px;--mat-radio-label-text-size:14px;--mat-radio-label-text-tracking:.0178571429em;--mat-radio-label-text-weight:400}html{--mdc-slider-active-track-height:6px;--mdc-slider-active-track-shape:9999px;--mdc-slider-handle-height:20px;--mdc-slider-handle-shape:50%;--mdc-slider-handle-width:20px;--mdc-slider-inactive-track-height:4px;--mdc-slider-inactive-track-shape:9999px;--mdc-slider-with-overlap-handle-outline-width:1px;--mdc-slider-with-tick-marks-active-container-opacity:.6;--mdc-slider-with-tick-marks-container-shape:50%;--mdc-slider-with-tick-marks-container-size:2px;--mdc-slider-with-tick-marks-inactive-container-opacity:.6;--mdc-slider-handle-elevation:0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-slider-value-indicator-width:auto;--mat-slider-value-indicator-height:32px;--mat-slider-value-indicator-caret-display:block;--mat-slider-value-indicator-border-radius:4px;--mat-slider-value-indicator-padding:0 12px;--mat-slider-value-indicator-text-transform:none;--mat-slider-value-indicator-container-transform:translateX(-50%)}html{--mdc-slider-handle-color:#3f51b5;--mdc-slider-focus-handle-color:#3f51b5;--mdc-slider-hover-handle-color:#3f51b5;--mdc-slider-active-track-color:#3f51b5;--mdc-slider-inactive-track-color:#3f51b5;--mdc-slider-with-tick-marks-inactive-container-color:#3f51b5;--mdc-slider-with-tick-marks-active-container-color:white;--mdc-slider-disabled-active-track-color:#000;--mdc-slider-disabled-handle-color:#000;--mdc-slider-disabled-inactive-track-color:#000;--mdc-slider-label-container-color:#000;--mdc-slider-label-label-text-color:#fff;--mdc-slider-with-overlap-handle-outline-color:#fff;--mdc-slider-with-tick-marks-disabled-container-color:#000;--mat-slider-ripple-color:#3f51b5;--mat-slider-hover-state-layer-color:rgba(63, 81, 181, .05);--mat-slider-focus-state-layer-color:rgba(63, 81, 181, .2);--mat-slider-value-indicator-opacity:.6}html .mat-accent{--mdc-slider-handle-color:#ff4081;--mdc-slider-focus-handle-color:#ff4081;--mdc-slider-hover-handle-color:#ff4081;--mdc-slider-active-track-color:#ff4081;--mdc-slider-inactive-track-color:#ff4081;--mdc-slider-with-tick-marks-inactive-container-color:#ff4081;--mdc-slider-with-tick-marks-active-container-color:white;--mat-slider-ripple-color:#ff4081;--mat-slider-hover-state-layer-color:rgba(255, 64, 129, .05);--mat-slider-focus-state-layer-color:rgba(255, 64, 129, .2)}html .mat-warn{--mdc-slider-handle-color:#f44336;--mdc-slider-focus-handle-color:#f44336;--mdc-slider-hover-handle-color:#f44336;--mdc-slider-active-track-color:#f44336;--mdc-slider-inactive-track-color:#f44336;--mdc-slider-with-tick-marks-inactive-container-color:#f44336;--mdc-slider-with-tick-marks-active-container-color:white;--mat-slider-ripple-color:#f44336;--mat-slider-hover-state-layer-color:rgba(244, 67, 54, .05);--mat-slider-focus-state-layer-color:rgba(244, 67, 54, .2)}html{--mdc-slider-label-label-text-font:Roboto, sans-serif;--mdc-slider-label-label-text-size:14px;--mdc-slider-label-label-text-line-height:22px;--mdc-slider-label-label-text-tracking:.0071428571em;--mdc-slider-label-label-text-weight:500}html{--mat-menu-container-shape:4px;--mat-menu-divider-bottom-spacing:0;--mat-menu-divider-top-spacing:0;--mat-menu-item-spacing:16px;--mat-menu-item-icon-size:24px;--mat-menu-item-leading-spacing:16px;--mat-menu-item-trailing-spacing:16px;--mat-menu-item-with-icon-leading-spacing:16px;--mat-menu-item-with-icon-trailing-spacing:16px;--mat-menu-base-elevation-level:8}html{--mat-menu-item-label-text-color:rgba(0, 0, 0, .87);--mat-menu-item-icon-color:rgba(0, 0, 0, .87);--mat-menu-item-hover-state-layer-color:rgba(0, 0, 0, .04);--mat-menu-item-focus-state-layer-color:rgba(0, 0, 0, .04);--mat-menu-container-color:white;--mat-menu-divider-color:rgba(0, 0, 0, .12)}html{--mat-menu-item-label-text-font:Roboto, sans-serif;--mat-menu-item-label-text-size:16px;--mat-menu-item-label-text-tracking:.03125em;--mat-menu-item-label-text-line-height:24px;--mat-menu-item-label-text-weight:400}html{--mdc-list-list-item-container-shape:0;--mdc-list-list-item-leading-avatar-shape:50%;--mdc-list-list-item-container-color:transparent;--mdc-list-list-item-selected-container-color:transparent;--mdc-list-list-item-leading-avatar-color:transparent;--mdc-list-list-item-leading-icon-size:24px;--mdc-list-list-item-leading-avatar-size:40px;--mdc-list-list-item-trailing-icon-size:24px;--mdc-list-list-item-disabled-state-layer-color:transparent;--mdc-list-list-item-disabled-state-layer-opacity:0;--mdc-list-list-item-disabled-label-text-opacity:.38;--mdc-list-list-item-disabled-leading-icon-opacity:.38;--mdc-list-list-item-disabled-trailing-icon-opacity:.38;--mat-list-active-indicator-color:transparent;--mat-list-active-indicator-shape:4px}html{--mdc-list-list-item-label-text-color:rgba(0, 0, 0, .87);--mdc-list-list-item-supporting-text-color:rgba(0, 0, 0, .54);--mdc-list-list-item-leading-icon-color:rgba(0, 0, 0, .38);--mdc-list-list-item-trailing-supporting-text-color:rgba(0, 0, 0, .38);--mdc-list-list-item-trailing-icon-color:rgba(0, 0, 0, .38);--mdc-list-list-item-selected-trailing-icon-color:rgba(0, 0, 0, .38);--mdc-list-list-item-disabled-label-text-color:black;--mdc-list-list-item-disabled-leading-icon-color:black;--mdc-list-list-item-disabled-trailing-icon-color:black;--mdc-list-list-item-hover-label-text-color:rgba(0, 0, 0, .87);--mdc-list-list-item-hover-leading-icon-color:rgba(0, 0, 0, .38);--mdc-list-list-item-hover-trailing-icon-color:rgba(0, 0, 0, .38);--mdc-list-list-item-focus-label-text-color:rgba(0, 0, 0, .87);--mdc-list-list-item-hover-state-layer-color:black;--mdc-list-list-item-hover-state-layer-opacity:.04;--mdc-list-list-item-focus-state-layer-color:black;--mdc-list-list-item-focus-state-layer-opacity:.12}.mdc-list-item__start,.mdc-list-item__end{--mdc-radio-disabled-selected-icon-color:black;--mdc-radio-disabled-unselected-icon-color:black;--mdc-radio-unselected-hover-icon-color:#212121;--mdc-radio-unselected-focus-icon-color:#212121;--mdc-radio-unselected-icon-color:rgba(0, 0, 0, .54);--mdc-radio-unselected-pressed-icon-color:rgba(0, 0, 0, .54);--mdc-radio-selected-focus-icon-color:#3f51b5;--mdc-radio-selected-hover-icon-color:#3f51b5;--mdc-radio-selected-icon-color:#3f51b5;--mdc-radio-selected-pressed-icon-color:#3f51b5}.mat-accent .mdc-list-item__start,.mat-accent .mdc-list-item__end{--mdc-radio-disabled-selected-icon-color:black;--mdc-radio-disabled-unselected-icon-color:black;--mdc-radio-unselected-hover-icon-color:#212121;--mdc-radio-unselected-focus-icon-color:#212121;--mdc-radio-unselected-icon-color:rgba(0, 0, 0, .54);--mdc-radio-unselected-pressed-icon-color:rgba(0, 0, 0, .54);--mdc-radio-selected-focus-icon-color:#ff4081;--mdc-radio-selected-hover-icon-color:#ff4081;--mdc-radio-selected-icon-color:#ff4081;--mdc-radio-selected-pressed-icon-color:#ff4081}.mat-warn .mdc-list-item__start,.mat-warn .mdc-list-item__end{--mdc-radio-disabled-selected-icon-color:black;--mdc-radio-disabled-unselected-icon-color:black;--mdc-radio-unselected-hover-icon-color:#212121;--mdc-radio-unselected-focus-icon-color:#212121;--mdc-radio-unselected-icon-color:rgba(0, 0, 0, .54);--mdc-radio-unselected-pressed-icon-color:rgba(0, 0, 0, .54);--mdc-radio-selected-focus-icon-color:#f44336;--mdc-radio-selected-hover-icon-color:#f44336;--mdc-radio-selected-icon-color:#f44336;--mdc-radio-selected-pressed-icon-color:#f44336}.mat-mdc-list-option{--mdc-checkbox-disabled-selected-icon-color:rgba(0, 0, 0, .38);--mdc-checkbox-disabled-unselected-icon-color:rgba(0, 0, 0, .38);--mdc-checkbox-selected-checkmark-color:white;--mdc-checkbox-selected-focus-icon-color:#3f51b5;--mdc-checkbox-selected-hover-icon-color:#3f51b5;--mdc-checkbox-selected-icon-color:#3f51b5;--mdc-checkbox-selected-pressed-icon-color:#3f51b5;--mdc-checkbox-unselected-focus-icon-color:#212121;--mdc-checkbox-unselected-hover-icon-color:#212121;--mdc-checkbox-unselected-icon-color:rgba(0, 0, 0, .54);--mdc-checkbox-selected-focus-state-layer-color:#3f51b5;--mdc-checkbox-selected-hover-state-layer-color:#3f51b5;--mdc-checkbox-selected-pressed-state-layer-color:#3f51b5;--mdc-checkbox-unselected-focus-state-layer-color:black;--mdc-checkbox-unselected-hover-state-layer-color:black;--mdc-checkbox-unselected-pressed-state-layer-color:black}.mat-mdc-list-option.mat-accent{--mdc-checkbox-disabled-selected-icon-color:rgba(0, 0, 0, .38);--mdc-checkbox-disabled-unselected-icon-color:rgba(0, 0, 0, .38);--mdc-checkbox-selected-checkmark-color:white;--mdc-checkbox-selected-focus-icon-color:#ff4081;--mdc-checkbox-selected-hover-icon-color:#ff4081;--mdc-checkbox-selected-icon-color:#ff4081;--mdc-checkbox-selected-pressed-icon-color:#ff4081;--mdc-checkbox-unselected-focus-icon-color:#212121;--mdc-checkbox-unselected-hover-icon-color:#212121;--mdc-checkbox-unselected-icon-color:rgba(0, 0, 0, .54);--mdc-checkbox-selected-focus-state-layer-color:#ff4081;--mdc-checkbox-selected-hover-state-layer-color:#ff4081;--mdc-checkbox-selected-pressed-state-layer-color:#ff4081;--mdc-checkbox-unselected-focus-state-layer-color:black;--mdc-checkbox-unselected-hover-state-layer-color:black;--mdc-checkbox-unselected-pressed-state-layer-color:black}.mat-mdc-list-option.mat-warn{--mdc-checkbox-disabled-selected-icon-color:rgba(0, 0, 0, .38);--mdc-checkbox-disabled-unselected-icon-color:rgba(0, 0, 0, .38);--mdc-checkbox-selected-checkmark-color:white;--mdc-checkbox-selected-focus-icon-color:#f44336;--mdc-checkbox-selected-hover-icon-color:#f44336;--mdc-checkbox-selected-icon-color:#f44336;--mdc-checkbox-selected-pressed-icon-color:#f44336;--mdc-checkbox-unselected-focus-icon-color:#212121;--mdc-checkbox-unselected-hover-icon-color:#212121;--mdc-checkbox-unselected-icon-color:rgba(0, 0, 0, .54);--mdc-checkbox-selected-focus-state-layer-color:#f44336;--mdc-checkbox-selected-hover-state-layer-color:#f44336;--mdc-checkbox-selected-pressed-state-layer-color:#f44336;--mdc-checkbox-unselected-focus-state-layer-color:black;--mdc-checkbox-unselected-hover-state-layer-color:black;--mdc-checkbox-unselected-pressed-state-layer-color:black}.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--selected .mdc-list-item__primary-text,.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--selected .mdc-list-item__start,.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--activated .mdc-list-item__primary-text,.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--activated .mdc-list-item__start{color:#3f51b5}.mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__start,.mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__content,.mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__end{opacity:1}html{--mdc-list-list-item-one-line-container-height:48px;--mdc-list-list-item-two-line-container-height:64px;--mdc-list-list-item-three-line-container-height:88px;--mat-list-list-item-leading-icon-start-space:16px;--mat-list-list-item-leading-icon-end-space:32px}.mdc-list-item__start,.mdc-list-item__end{--mdc-radio-state-layer-size:40px}.mat-mdc-list-item.mdc-list-item--with-leading-avatar.mdc-list-item--with-one-line,.mat-mdc-list-item.mdc-list-item--with-leading-checkbox.mdc-list-item--with-one-line,.mat-mdc-list-item.mdc-list-item--with-leading-icon.mdc-list-item--with-one-line{height:56px}.mat-mdc-list-item.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines,.mat-mdc-list-item.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines,.mat-mdc-list-item.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines{height:72px}html{--mdc-list-list-item-label-text-font:Roboto, sans-serif;--mdc-list-list-item-label-text-line-height:24px;--mdc-list-list-item-label-text-size:16px;--mdc-list-list-item-label-text-tracking:.03125em;--mdc-list-list-item-label-text-weight:400;--mdc-list-list-item-supporting-text-font:Roboto, sans-serif;--mdc-list-list-item-supporting-text-line-height:20px;--mdc-list-list-item-supporting-text-size:14px;--mdc-list-list-item-supporting-text-tracking:.0178571429em;--mdc-list-list-item-supporting-text-weight:400;--mdc-list-list-item-trailing-supporting-text-font:Roboto, sans-serif;--mdc-list-list-item-trailing-supporting-text-line-height:20px;--mdc-list-list-item-trailing-supporting-text-size:12px;--mdc-list-list-item-trailing-supporting-text-tracking:.0333333333em;--mdc-list-list-item-trailing-supporting-text-weight:400}.mdc-list-group__subheader{font:400 16px/28px Roboto,sans-serif;letter-spacing:.009375em}html{--mat-paginator-container-text-color:rgba(0, 0, 0, .87);--mat-paginator-container-background-color:white;--mat-paginator-enabled-icon-color:rgba(0, 0, 0, .54);--mat-paginator-disabled-icon-color:rgba(0, 0, 0, .12)}html{--mat-paginator-container-size:56px;--mat-paginator-form-field-container-height:40px;--mat-paginator-form-field-container-vertical-padding:8px;--mat-paginator-touch-target-display:block}html{--mat-paginator-container-text-font:Roboto, sans-serif;--mat-paginator-container-text-line-height:20px;--mat-paginator-container-text-size:12px;--mat-paginator-container-text-tracking:.0333333333em;--mat-paginator-container-text-weight:400;--mat-paginator-select-trigger-text-size:12px}html{--mdc-secondary-navigation-tab-container-height:48px;--mdc-tab-indicator-active-indicator-height:2px;--mdc-tab-indicator-active-indicator-shape:0;--mat-tab-header-divider-color:transparent;--mat-tab-header-divider-height:0}.mat-mdc-tab-group,.mat-mdc-tab-nav-bar{--mdc-tab-indicator-active-indicator-color:#3f51b5;--mat-tab-header-disabled-ripple-color:rgba(0, 0, 0, .38);--mat-tab-header-pagination-icon-color:black;--mat-tab-header-inactive-label-text-color:rgba(0, 0, 0, .6);--mat-tab-header-active-label-text-color:#3f51b5;--mat-tab-header-active-ripple-color:#3f51b5;--mat-tab-header-inactive-ripple-color:#3f51b5;--mat-tab-header-inactive-focus-label-text-color:rgba(0, 0, 0, .6);--mat-tab-header-inactive-hover-label-text-color:rgba(0, 0, 0, .6);--mat-tab-header-active-focus-label-text-color:#3f51b5;--mat-tab-header-active-hover-label-text-color:#3f51b5;--mat-tab-header-active-focus-indicator-color:#3f51b5;--mat-tab-header-active-hover-indicator-color:#3f51b5}.mat-mdc-tab-group.mat-accent,.mat-mdc-tab-nav-bar.mat-accent{--mdc-tab-indicator-active-indicator-color:#ff4081;--mat-tab-header-disabled-ripple-color:rgba(0, 0, 0, .38);--mat-tab-header-pagination-icon-color:black;--mat-tab-header-inactive-label-text-color:rgba(0, 0, 0, .6);--mat-tab-header-active-label-text-color:#ff4081;--mat-tab-header-active-ripple-color:#ff4081;--mat-tab-header-inactive-ripple-color:#ff4081;--mat-tab-header-inactive-focus-label-text-color:rgba(0, 0, 0, .6);--mat-tab-header-inactive-hover-label-text-color:rgba(0, 0, 0, .6);--mat-tab-header-active-focus-label-text-color:#ff4081;--mat-tab-header-active-hover-label-text-color:#ff4081;--mat-tab-header-active-focus-indicator-color:#ff4081;--mat-tab-header-active-hover-indicator-color:#ff4081}.mat-mdc-tab-group.mat-warn,.mat-mdc-tab-nav-bar.mat-warn{--mdc-tab-indicator-active-indicator-color:#f44336;--mat-tab-header-disabled-ripple-color:rgba(0, 0, 0, .38);--mat-tab-header-pagination-icon-color:black;--mat-tab-header-inactive-label-text-color:rgba(0, 0, 0, .6);--mat-tab-header-active-label-text-color:#f44336;--mat-tab-header-active-ripple-color:#f44336;--mat-tab-header-inactive-ripple-color:#f44336;--mat-tab-header-inactive-focus-label-text-color:rgba(0, 0, 0, .6);--mat-tab-header-inactive-hover-label-text-color:rgba(0, 0, 0, .6);--mat-tab-header-active-focus-label-text-color:#f44336;--mat-tab-header-active-hover-label-text-color:#f44336;--mat-tab-header-active-focus-indicator-color:#f44336;--mat-tab-header-active-hover-indicator-color:#f44336}.mat-mdc-tab-group.mat-background-primary,.mat-mdc-tab-nav-bar.mat-background-primary{--mat-tab-header-with-background-background-color:#3f51b5;--mat-tab-header-with-background-foreground-color:white}.mat-mdc-tab-group.mat-background-accent,.mat-mdc-tab-nav-bar.mat-background-accent{--mat-tab-header-with-background-background-color:#ff4081;--mat-tab-header-with-background-foreground-color:white}.mat-mdc-tab-group.mat-background-warn,.mat-mdc-tab-nav-bar.mat-background-warn{--mat-tab-header-with-background-background-color:#f44336;--mat-tab-header-with-background-foreground-color:white}.mat-mdc-tab-header{--mdc-secondary-navigation-tab-container-height:48px}.mat-mdc-tab-header{--mat-tab-header-label-text-font:Roboto, sans-serif;--mat-tab-header-label-text-size:14px;--mat-tab-header-label-text-tracking:.0892857143em;--mat-tab-header-label-text-line-height:36px;--mat-tab-header-label-text-weight:500}html{--mdc-checkbox-disabled-selected-checkmark-color:#fff;--mdc-checkbox-selected-focus-state-layer-opacity:.16;--mdc-checkbox-selected-hover-state-layer-opacity:.04;--mdc-checkbox-selected-pressed-state-layer-opacity:.16;--mdc-checkbox-unselected-focus-state-layer-opacity:.16;--mdc-checkbox-unselected-hover-state-layer-opacity:.04;--mdc-checkbox-unselected-pressed-state-layer-opacity:.16}html{--mdc-checkbox-disabled-selected-icon-color:rgba(0, 0, 0, .38);--mdc-checkbox-disabled-unselected-icon-color:rgba(0, 0, 0, .38);--mdc-checkbox-selected-checkmark-color:white;--mdc-checkbox-selected-focus-icon-color:#ff4081;--mdc-checkbox-selected-hover-icon-color:#ff4081;--mdc-checkbox-selected-icon-color:#ff4081;--mdc-checkbox-selected-pressed-icon-color:#ff4081;--mdc-checkbox-unselected-focus-icon-color:#212121;--mdc-checkbox-unselected-hover-icon-color:#212121;--mdc-checkbox-unselected-icon-color:rgba(0, 0, 0, .54);--mdc-checkbox-selected-focus-state-layer-color:#ff4081;--mdc-checkbox-selected-hover-state-layer-color:#ff4081;--mdc-checkbox-selected-pressed-state-layer-color:#ff4081;--mdc-checkbox-unselected-focus-state-layer-color:black;--mdc-checkbox-unselected-hover-state-layer-color:black;--mdc-checkbox-unselected-pressed-state-layer-color:black;--mat-checkbox-disabled-label-color:rgba(0, 0, 0, .38);--mat-checkbox-label-text-color:rgba(0, 0, 0, .87)}.mat-mdc-checkbox.mat-primary{--mdc-checkbox-disabled-selected-icon-color:rgba(0, 0, 0, .38);--mdc-checkbox-disabled-unselected-icon-color:rgba(0, 0, 0, .38);--mdc-checkbox-selected-checkmark-color:white;--mdc-checkbox-selected-focus-icon-color:#3f51b5;--mdc-checkbox-selected-hover-icon-color:#3f51b5;--mdc-checkbox-selected-icon-color:#3f51b5;--mdc-checkbox-selected-pressed-icon-color:#3f51b5;--mdc-checkbox-unselected-focus-icon-color:#212121;--mdc-checkbox-unselected-hover-icon-color:#212121;--mdc-checkbox-unselected-icon-color:rgba(0, 0, 0, .54);--mdc-checkbox-selected-focus-state-layer-color:#3f51b5;--mdc-checkbox-selected-hover-state-layer-color:#3f51b5;--mdc-checkbox-selected-pressed-state-layer-color:#3f51b5;--mdc-checkbox-unselected-focus-state-layer-color:black;--mdc-checkbox-unselected-hover-state-layer-color:black;--mdc-checkbox-unselected-pressed-state-layer-color:black}.mat-mdc-checkbox.mat-warn{--mdc-checkbox-disabled-selected-icon-color:rgba(0, 0, 0, .38);--mdc-checkbox-disabled-unselected-icon-color:rgba(0, 0, 0, .38);--mdc-checkbox-selected-checkmark-color:white;--mdc-checkbox-selected-focus-icon-color:#f44336;--mdc-checkbox-selected-hover-icon-color:#f44336;--mdc-checkbox-selected-icon-color:#f44336;--mdc-checkbox-selected-pressed-icon-color:#f44336;--mdc-checkbox-unselected-focus-icon-color:#212121;--mdc-checkbox-unselected-hover-icon-color:#212121;--mdc-checkbox-unselected-icon-color:rgba(0, 0, 0, .54);--mdc-checkbox-selected-focus-state-layer-color:#f44336;--mdc-checkbox-selected-hover-state-layer-color:#f44336;--mdc-checkbox-selected-pressed-state-layer-color:#f44336;--mdc-checkbox-unselected-focus-state-layer-color:black;--mdc-checkbox-unselected-hover-state-layer-color:black;--mdc-checkbox-unselected-pressed-state-layer-color:black}html{--mdc-checkbox-state-layer-size:40px;--mat-checkbox-touch-target-display:block}html{--mat-checkbox-label-text-font:Roboto, sans-serif;--mat-checkbox-label-text-line-height:20px;--mat-checkbox-label-text-size:14px;--mat-checkbox-label-text-tracking:.0178571429em;--mat-checkbox-label-text-weight:400}html{--mdc-text-button-container-shape:4px;--mdc-text-button-keep-touch-target:false;--mdc-filled-button-container-shape:4px;--mdc-filled-button-keep-touch-target:false;--mdc-protected-button-container-shape:4px;--mdc-protected-button-container-elevation-shadow:0px 3px 1px -2px rgba(0, 0, 0, .2), 0px 2px 2px 0px rgba(0, 0, 0, .14), 0px 1px 5px 0px rgba(0, 0, 0, .12);--mdc-protected-button-disabled-container-elevation-shadow:0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mdc-protected-button-focus-container-elevation-shadow:0px 2px 4px -1px rgba(0, 0, 0, .2), 0px 4px 5px 0px rgba(0, 0, 0, .14), 0px 1px 10px 0px rgba(0, 0, 0, .12);--mdc-protected-button-hover-container-elevation-shadow:0px 2px 4px -1px rgba(0, 0, 0, .2), 0px 4px 5px 0px rgba(0, 0, 0, .14), 0px 1px 10px 0px rgba(0, 0, 0, .12);--mdc-protected-button-pressed-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mdc-outlined-button-keep-touch-target:false;--mdc-outlined-button-outline-width:1px;--mdc-outlined-button-container-shape:4px;--mat-text-button-horizontal-padding:8px;--mat-text-button-with-icon-horizontal-padding:8px;--mat-text-button-icon-spacing:8px;--mat-text-button-icon-offset:0;--mat-filled-button-horizontal-padding:16px;--mat-filled-button-icon-spacing:8px;--mat-filled-button-icon-offset:-4px;--mat-protected-button-horizontal-padding:16px;--mat-protected-button-icon-spacing:8px;--mat-protected-button-icon-offset:-4px;--mat-outlined-button-horizontal-padding:15px;--mat-outlined-button-icon-spacing:8px;--mat-outlined-button-icon-offset:-4px}html{--mdc-text-button-label-text-color:black;--mdc-text-button-disabled-label-text-color:rgba(0, 0, 0, .38);--mat-text-button-state-layer-color:black;--mat-text-button-disabled-state-layer-color:black;--mat-text-button-ripple-color:rgba(0, 0, 0, .1);--mat-text-button-hover-state-layer-opacity:.04;--mat-text-button-focus-state-layer-opacity:.12;--mat-text-button-pressed-state-layer-opacity:.12;--mdc-filled-button-container-color:white;--mdc-filled-button-label-text-color:black;--mdc-filled-button-disabled-container-color:rgba(0, 0, 0, .12);--mdc-filled-button-disabled-label-text-color:rgba(0, 0, 0, .38);--mat-filled-button-state-layer-color:black;--mat-filled-button-disabled-state-layer-color:black;--mat-filled-button-ripple-color:rgba(0, 0, 0, .1);--mat-filled-button-hover-state-layer-opacity:.04;--mat-filled-button-focus-state-layer-opacity:.12;--mat-filled-button-pressed-state-layer-opacity:.12;--mdc-protected-button-container-color:white;--mdc-protected-button-label-text-color:black;--mdc-protected-button-disabled-container-color:rgba(0, 0, 0, .12);--mdc-protected-button-disabled-label-text-color:rgba(0, 0, 0, .38);--mat-protected-button-state-layer-color:black;--mat-protected-button-disabled-state-layer-color:black;--mat-protected-button-ripple-color:rgba(0, 0, 0, .1);--mat-protected-button-hover-state-layer-opacity:.04;--mat-protected-button-focus-state-layer-opacity:.12;--mat-protected-button-pressed-state-layer-opacity:.12;--mdc-outlined-button-disabled-outline-color:rgba(0, 0, 0, .12);--mdc-outlined-button-disabled-label-text-color:rgba(0, 0, 0, .38);--mdc-outlined-button-label-text-color:black;--mdc-outlined-button-outline-color:rgba(0, 0, 0, .12);--mat-outlined-button-state-layer-color:black;--mat-outlined-button-disabled-state-layer-color:black;--mat-outlined-button-ripple-color:rgba(0, 0, 0, .1);--mat-outlined-button-hover-state-layer-opacity:.04;--mat-outlined-button-focus-state-layer-opacity:.12;--mat-outlined-button-pressed-state-layer-opacity:.12}.mat-mdc-button.mat-primary{--mdc-text-button-label-text-color:#3f51b5;--mat-text-button-state-layer-color:#3f51b5;--mat-text-button-ripple-color:rgba(63, 81, 181, .1)}.mat-mdc-button.mat-accent{--mdc-text-button-label-text-color:#ff4081;--mat-text-button-state-layer-color:#ff4081;--mat-text-button-ripple-color:rgba(255, 64, 129, .1)}.mat-mdc-button.mat-warn{--mdc-text-button-label-text-color:#f44336;--mat-text-button-state-layer-color:#f44336;--mat-text-button-ripple-color:rgba(244, 67, 54, .1)}.mat-mdc-unelevated-button.mat-primary{--mdc-filled-button-container-color:#3f51b5;--mdc-filled-button-label-text-color:white;--mat-filled-button-state-layer-color:white;--mat-filled-button-ripple-color:rgba(255, 255, 255, .1)}.mat-mdc-unelevated-button.mat-accent{--mdc-filled-button-container-color:#ff4081;--mdc-filled-button-label-text-color:white;--mat-filled-button-state-layer-color:white;--mat-filled-button-ripple-color:rgba(255, 255, 255, .1)}.mat-mdc-unelevated-button.mat-warn{--mdc-filled-button-container-color:#f44336;--mdc-filled-button-label-text-color:white;--mat-filled-button-state-layer-color:white;--mat-filled-button-ripple-color:rgba(255, 255, 255, .1)}.mat-mdc-raised-button.mat-primary{--mdc-protected-button-container-color:#3f51b5;--mdc-protected-button-label-text-color:white;--mat-protected-button-state-layer-color:white;--mat-protected-button-ripple-color:rgba(255, 255, 255, .1)}.mat-mdc-raised-button.mat-accent{--mdc-protected-button-container-color:#ff4081;--mdc-protected-button-label-text-color:white;--mat-protected-button-state-layer-color:white;--mat-protected-button-ripple-color:rgba(255, 255, 255, .1)}.mat-mdc-raised-button.mat-warn{--mdc-protected-button-container-color:#f44336;--mdc-protected-button-label-text-color:white;--mat-protected-button-state-layer-color:white;--mat-protected-button-ripple-color:rgba(255, 255, 255, .1)}.mat-mdc-outlined-button.mat-primary{--mdc-outlined-button-label-text-color:#3f51b5;--mdc-outlined-button-outline-color:rgba(0, 0, 0, .12);--mat-outlined-button-state-layer-color:#3f51b5;--mat-outlined-button-ripple-color:rgba(63, 81, 181, .1)}.mat-mdc-outlined-button.mat-accent{--mdc-outlined-button-label-text-color:#ff4081;--mdc-outlined-button-outline-color:rgba(0, 0, 0, .12);--mat-outlined-button-state-layer-color:#ff4081;--mat-outlined-button-ripple-color:rgba(255, 64, 129, .1)}.mat-mdc-outlined-button.mat-warn{--mdc-outlined-button-label-text-color:#f44336;--mdc-outlined-button-outline-color:rgba(0, 0, 0, .12);--mat-outlined-button-state-layer-color:#f44336;--mat-outlined-button-ripple-color:rgba(244, 67, 54, .1)}html{--mdc-text-button-container-height:36px;--mdc-filled-button-container-height:36px;--mdc-protected-button-container-height:36px;--mdc-outlined-button-container-height:36px;--mat-text-button-touch-target-display:block;--mat-filled-button-touch-target-display:block;--mat-protected-button-touch-target-display:block;--mat-outlined-button-touch-target-display:block}html{--mdc-text-button-label-text-font:Roboto, sans-serif;--mdc-text-button-label-text-size:14px;--mdc-text-button-label-text-tracking:.0892857143em;--mdc-text-button-label-text-weight:500;--mdc-text-button-label-text-transform:none;--mdc-filled-button-label-text-font:Roboto, sans-serif;--mdc-filled-button-label-text-size:14px;--mdc-filled-button-label-text-tracking:.0892857143em;--mdc-filled-button-label-text-weight:500;--mdc-filled-button-label-text-transform:none;--mdc-protected-button-label-text-font:Roboto, sans-serif;--mdc-protected-button-label-text-size:14px;--mdc-protected-button-label-text-tracking:.0892857143em;--mdc-protected-button-label-text-weight:500;--mdc-protected-button-label-text-transform:none;--mdc-outlined-button-label-text-font:Roboto, sans-serif;--mdc-outlined-button-label-text-size:14px;--mdc-outlined-button-label-text-tracking:.0892857143em;--mdc-outlined-button-label-text-weight:500;--mdc-outlined-button-label-text-transform:none}html{--mdc-icon-button-icon-size:24px}html{--mdc-icon-button-icon-color:inherit;--mdc-icon-button-disabled-icon-color:rgba(0, 0, 0, .38);--mat-icon-button-state-layer-color:black;--mat-icon-button-disabled-state-layer-color:black;--mat-icon-button-ripple-color:rgba(0, 0, 0, .1);--mat-icon-button-hover-state-layer-opacity:.04;--mat-icon-button-focus-state-layer-opacity:.12;--mat-icon-button-pressed-state-layer-opacity:.12}html .mat-mdc-icon-button.mat-primary{--mdc-icon-button-icon-color:#3f51b5;--mat-icon-button-state-layer-color:#3f51b5;--mat-icon-button-ripple-color:rgba(63, 81, 181, .1)}html .mat-mdc-icon-button.mat-accent{--mdc-icon-button-icon-color:#ff4081;--mat-icon-button-state-layer-color:#ff4081;--mat-icon-button-ripple-color:rgba(255, 64, 129, .1)}html .mat-mdc-icon-button.mat-warn{--mdc-icon-button-icon-color:#f44336;--mat-icon-button-state-layer-color:#f44336;--mat-icon-button-ripple-color:rgba(244, 67, 54, .1)}html{--mat-icon-button-touch-target-display:block}.mat-mdc-icon-button.mat-mdc-button-base{--mdc-icon-button-state-layer-size: 48px;width:var(--mdc-icon-button-state-layer-size);height:var(--mdc-icon-button-state-layer-size);padding:12px}html{--mdc-fab-container-shape:50%;--mdc-fab-container-elevation-shadow:0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mdc-fab-focus-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mdc-fab-hover-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mdc-fab-pressed-container-elevation-shadow:0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mdc-fab-small-container-shape:50%;--mdc-fab-small-container-elevation-shadow:0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mdc-fab-small-focus-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mdc-fab-small-hover-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mdc-fab-small-pressed-container-elevation-shadow:0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mdc-extended-fab-container-height:48px;--mdc-extended-fab-container-shape:24px;--mdc-extended-fab-container-elevation-shadow:0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mdc-extended-fab-focus-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mdc-extended-fab-hover-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mdc-extended-fab-pressed-container-elevation-shadow:0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12)}html{--mdc-fab-container-color:white;--mat-fab-foreground-color:black;--mat-fab-state-layer-color:black;--mat-fab-disabled-state-layer-color:black;--mat-fab-ripple-color:rgba(0, 0, 0, .1);--mat-fab-hover-state-layer-opacity:.04;--mat-fab-focus-state-layer-opacity:.12;--mat-fab-pressed-state-layer-opacity:.12;--mat-fab-disabled-state-container-color:rgba(0, 0, 0, .12);--mat-fab-disabled-state-foreground-color:rgba(0, 0, 0, .38);--mdc-fab-small-container-color:white;--mat-fab-small-foreground-color:black;--mat-fab-small-state-layer-color:black;--mat-fab-small-disabled-state-layer-color:black;--mat-fab-small-ripple-color:rgba(0, 0, 0, .1);--mat-fab-small-hover-state-layer-opacity:.04;--mat-fab-small-focus-state-layer-opacity:.12;--mat-fab-small-pressed-state-layer-opacity:.12;--mat-fab-small-disabled-state-container-color:rgba(0, 0, 0, .12);--mat-fab-small-disabled-state-foreground-color:rgba(0, 0, 0, .38)}html .mat-mdc-fab.mat-primary{--mdc-fab-container-color:#3f51b5;--mat-fab-foreground-color:white;--mat-fab-state-layer-color:white;--mat-fab-ripple-color:rgba(255, 255, 255, .1)}html .mat-mdc-fab.mat-accent{--mdc-fab-container-color:#ff4081;--mat-fab-foreground-color:white;--mat-fab-state-layer-color:white;--mat-fab-ripple-color:rgba(255, 255, 255, .1)}html .mat-mdc-fab.mat-warn{--mdc-fab-container-color:#f44336;--mat-fab-foreground-color:white;--mat-fab-state-layer-color:white;--mat-fab-ripple-color:rgba(255, 255, 255, .1)}html .mat-mdc-mini-fab.mat-primary{--mdc-fab-small-container-color:#3f51b5;--mat-fab-small-foreground-color:white;--mat-fab-small-state-layer-color:white;--mat-fab-small-ripple-color:rgba(255, 255, 255, .1)}html .mat-mdc-mini-fab.mat-accent{--mdc-fab-small-container-color:#ff4081;--mat-fab-small-foreground-color:white;--mat-fab-small-state-layer-color:white;--mat-fab-small-ripple-color:rgba(255, 255, 255, .1)}html .mat-mdc-mini-fab.mat-warn{--mdc-fab-small-container-color:#f44336;--mat-fab-small-foreground-color:white;--mat-fab-small-state-layer-color:white;--mat-fab-small-ripple-color:rgba(255, 255, 255, .1)}html{--mat-fab-touch-target-display:block;--mat-fab-small-touch-target-display:block}html{--mdc-extended-fab-label-text-font:Roboto, sans-serif;--mdc-extended-fab-label-text-size:14px;--mdc-extended-fab-label-text-tracking:.0892857143em;--mdc-extended-fab-label-text-weight:500}html{--mdc-snackbar-container-shape:4px}html{--mdc-snackbar-container-color:#333333;--mdc-snackbar-supporting-text-color:rgba(255, 255, 255, .87);--mat-snack-bar-button-color:#ff4081}html{--mdc-snackbar-supporting-text-font:Roboto, sans-serif;--mdc-snackbar-supporting-text-line-height:20px;--mdc-snackbar-supporting-text-size:14px;--mdc-snackbar-supporting-text-weight:400}html{--mat-table-row-item-outline-width:1px}html{--mat-table-background-color:white;--mat-table-header-headline-color:rgba(0, 0, 0, .87);--mat-table-row-item-label-text-color:rgba(0, 0, 0, .87);--mat-table-row-item-outline-color:rgba(0, 0, 0, .12)}html{--mat-table-header-container-height:56px;--mat-table-footer-container-height:52px;--mat-table-row-item-container-height:52px}html{--mat-table-header-headline-font:Roboto, sans-serif;--mat-table-header-headline-line-height:22px;--mat-table-header-headline-size:14px;--mat-table-header-headline-weight:500;--mat-table-header-headline-tracking:.0071428571em;--mat-table-row-item-label-text-font:Roboto, sans-serif;--mat-table-row-item-label-text-line-height:20px;--mat-table-row-item-label-text-size:14px;--mat-table-row-item-label-text-weight:400;--mat-table-row-item-label-text-tracking:.0178571429em;--mat-table-footer-supporting-text-font:Roboto, sans-serif;--mat-table-footer-supporting-text-line-height:20px;--mat-table-footer-supporting-text-size:14px;--mat-table-footer-supporting-text-weight:400;--mat-table-footer-supporting-text-tracking:.0178571429em}html{--mdc-circular-progress-active-indicator-width:4px;--mdc-circular-progress-size:48px}html{--mdc-circular-progress-active-indicator-color:#3f51b5}html .mat-accent{--mdc-circular-progress-active-indicator-color:#ff4081}html .mat-warn{--mdc-circular-progress-active-indicator-color:#f44336}html{--mat-badge-container-shape:50%;--mat-badge-container-size:unset;--mat-badge-small-size-container-size:unset;--mat-badge-large-size-container-size:unset;--mat-badge-legacy-container-size:22px;--mat-badge-legacy-small-size-container-size:16px;--mat-badge-legacy-large-size-container-size:28px;--mat-badge-container-offset:-11px 0;--mat-badge-small-size-container-offset:-8px 0;--mat-badge-large-size-container-offset:-14px 0;--mat-badge-container-overlap-offset:-11px;--mat-badge-small-size-container-overlap-offset:-8px;--mat-badge-large-size-container-overlap-offset:-14px;--mat-badge-container-padding:0;--mat-badge-small-size-container-padding:0;--mat-badge-large-size-container-padding:0}html{--mat-badge-background-color:#3f51b5;--mat-badge-text-color:white;--mat-badge-disabled-state-background-color:#b9b9b9;--mat-badge-disabled-state-text-color:rgba(0, 0, 0, .38)}.mat-badge-accent{--mat-badge-background-color:#ff4081;--mat-badge-text-color:white}.mat-badge-warn{--mat-badge-background-color:#f44336;--mat-badge-text-color:white}html{--mat-badge-text-font:Roboto, sans-serif;--mat-badge-line-height:22px;--mat-badge-text-size:12px;--mat-badge-text-weight:600;--mat-badge-small-size-text-size:9px;--mat-badge-small-size-line-height:16px;--mat-badge-large-size-text-size:24px;--mat-badge-large-size-line-height:28px}html{--mat-bottom-sheet-container-shape:4px}html{--mat-bottom-sheet-container-text-color:rgba(0, 0, 0, .87);--mat-bottom-sheet-container-background-color:white}html{--mat-bottom-sheet-container-text-font:Roboto, sans-serif;--mat-bottom-sheet-container-text-line-height:20px;--mat-bottom-sheet-container-text-size:14px;--mat-bottom-sheet-container-text-tracking:.0178571429em;--mat-bottom-sheet-container-text-weight:400}html{--mat-legacy-button-toggle-height:36px;--mat-legacy-button-toggle-shape:2px;--mat-legacy-button-toggle-focus-state-layer-opacity:1;--mat-standard-button-toggle-shape:4px;--mat-standard-button-toggle-hover-state-layer-opacity:.04;--mat-standard-button-toggle-focus-state-layer-opacity:.12}html{--mat-legacy-button-toggle-text-color:rgba(0, 0, 0, .38);--mat-legacy-button-toggle-state-layer-color:rgba(0, 0, 0, .12);--mat-legacy-button-toggle-selected-state-text-color:rgba(0, 0, 0, .54);--mat-legacy-button-toggle-selected-state-background-color:#e0e0e0;--mat-legacy-button-toggle-disabled-state-text-color:rgba(0, 0, 0, .26);--mat-legacy-button-toggle-disabled-state-background-color:#eeeeee;--mat-legacy-button-toggle-disabled-selected-state-background-color:#bdbdbd;--mat-standard-button-toggle-text-color:rgba(0, 0, 0, .87);--mat-standard-button-toggle-background-color:white;--mat-standard-button-toggle-state-layer-color:black;--mat-standard-button-toggle-selected-state-background-color:#e0e0e0;--mat-standard-button-toggle-selected-state-text-color:rgba(0, 0, 0, .87);--mat-standard-button-toggle-disabled-state-text-color:rgba(0, 0, 0, .26);--mat-standard-button-toggle-disabled-state-background-color:white;--mat-standard-button-toggle-disabled-selected-state-text-color:rgba(0, 0, 0, .87);--mat-standard-button-toggle-disabled-selected-state-background-color:#bdbdbd;--mat-standard-button-toggle-divider-color:#e0e0e0}html{--mat-standard-button-toggle-height:48px}html{--mat-legacy-button-toggle-label-text-font:Roboto, sans-serif;--mat-legacy-button-toggle-label-text-line-height:24px;--mat-legacy-button-toggle-label-text-size:16px;--mat-legacy-button-toggle-label-text-tracking:.03125em;--mat-legacy-button-toggle-label-text-weight:400;--mat-standard-button-toggle-label-text-font:Roboto, sans-serif;--mat-standard-button-toggle-label-text-line-height:24px;--mat-standard-button-toggle-label-text-size:16px;--mat-standard-button-toggle-label-text-tracking:.03125em;--mat-standard-button-toggle-label-text-weight:400}html{--mat-datepicker-calendar-container-shape:4px;--mat-datepicker-calendar-container-touch-shape:4px;--mat-datepicker-calendar-container-elevation-shadow:0px 2px 4px -1px rgba(0, 0, 0, .2), 0px 4px 5px 0px rgba(0, 0, 0, .14), 0px 1px 10px 0px rgba(0, 0, 0, .12);--mat-datepicker-calendar-container-touch-elevation-shadow:0px 11px 15px -7px rgba(0, 0, 0, .2), 0px 24px 38px 3px rgba(0, 0, 0, .14), 0px 9px 46px 8px rgba(0, 0, 0, .12)}html{--mat-datepicker-calendar-date-selected-state-text-color:white;--mat-datepicker-calendar-date-selected-state-background-color:#3f51b5;--mat-datepicker-calendar-date-selected-disabled-state-background-color:rgba(63, 81, 181, .4);--mat-datepicker-calendar-date-today-selected-state-outline-color:white;--mat-datepicker-calendar-date-focus-state-background-color:rgba(63, 81, 181, .3);--mat-datepicker-calendar-date-hover-state-background-color:rgba(63, 81, 181, .3);--mat-datepicker-toggle-active-state-icon-color:#3f51b5;--mat-datepicker-calendar-date-in-range-state-background-color:rgba(63, 81, 181, .2);--mat-datepicker-calendar-date-in-comparison-range-state-background-color:rgba(249, 171, 0, .2);--mat-datepicker-calendar-date-in-overlap-range-state-background-color:#a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color:#46a35e;--mat-datepicker-toggle-icon-color:rgba(0, 0, 0, .54);--mat-datepicker-calendar-body-label-text-color:rgba(0, 0, 0, .54);--mat-datepicker-calendar-period-button-text-color:black;--mat-datepicker-calendar-period-button-icon-color:rgba(0, 0, 0, .54);--mat-datepicker-calendar-navigation-button-icon-color:rgba(0, 0, 0, .54);--mat-datepicker-calendar-header-divider-color:rgba(0, 0, 0, .12);--mat-datepicker-calendar-header-text-color:rgba(0, 0, 0, .54);--mat-datepicker-calendar-date-today-outline-color:rgba(0, 0, 0, .38);--mat-datepicker-calendar-date-today-disabled-state-outline-color:rgba(0, 0, 0, .18);--mat-datepicker-calendar-date-text-color:rgba(0, 0, 0, .87);--mat-datepicker-calendar-date-outline-color:transparent;--mat-datepicker-calendar-date-disabled-state-text-color:rgba(0, 0, 0, .38);--mat-datepicker-calendar-date-preview-state-outline-color:rgba(0, 0, 0, .24);--mat-datepicker-range-input-separator-color:rgba(0, 0, 0, .87);--mat-datepicker-range-input-disabled-state-separator-color:rgba(0, 0, 0, .38);--mat-datepicker-range-input-disabled-state-text-color:rgba(0, 0, 0, .38);--mat-datepicker-calendar-container-background-color:white;--mat-datepicker-calendar-container-text-color:rgba(0, 0, 0, .87)}.mat-datepicker-content.mat-accent{--mat-datepicker-calendar-date-selected-state-text-color:white;--mat-datepicker-calendar-date-selected-state-background-color:#ff4081;--mat-datepicker-calendar-date-selected-disabled-state-background-color:rgba(255, 64, 129, .4);--mat-datepicker-calendar-date-today-selected-state-outline-color:white;--mat-datepicker-calendar-date-focus-state-background-color:rgba(255, 64, 129, .3);--mat-datepicker-calendar-date-hover-state-background-color:rgba(255, 64, 129, .3);--mat-datepicker-calendar-date-in-range-state-background-color:rgba(255, 64, 129, .2);--mat-datepicker-calendar-date-in-comparison-range-state-background-color:rgba(249, 171, 0, .2);--mat-datepicker-calendar-date-in-overlap-range-state-background-color:#a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color:#46a35e}.mat-datepicker-content.mat-warn{--mat-datepicker-calendar-date-selected-state-text-color:white;--mat-datepicker-calendar-date-selected-state-background-color:#f44336;--mat-datepicker-calendar-date-selected-disabled-state-background-color:rgba(244, 67, 54, .4);--mat-datepicker-calendar-date-today-selected-state-outline-color:white;--mat-datepicker-calendar-date-focus-state-background-color:rgba(244, 67, 54, .3);--mat-datepicker-calendar-date-hover-state-background-color:rgba(244, 67, 54, .3);--mat-datepicker-calendar-date-in-range-state-background-color:rgba(244, 67, 54, .2);--mat-datepicker-calendar-date-in-comparison-range-state-background-color:rgba(249, 171, 0, .2);--mat-datepicker-calendar-date-in-overlap-range-state-background-color:#a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color:#46a35e}.mat-datepicker-toggle-active.mat-accent{--mat-datepicker-toggle-active-state-icon-color:#ff4081}.mat-datepicker-toggle-active.mat-warn{--mat-datepicker-toggle-active-state-icon-color:#f44336}.mat-calendar-controls{--mat-icon-button-touch-target-display:none}.mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base{--mdc-icon-button-state-layer-size: 40px;width:var(--mdc-icon-button-state-layer-size);height:var(--mdc-icon-button-state-layer-size);padding:8px}html{--mat-datepicker-calendar-text-font:Roboto, sans-serif;--mat-datepicker-calendar-text-size:13px;--mat-datepicker-calendar-body-label-text-size:14px;--mat-datepicker-calendar-body-label-text-weight:500;--mat-datepicker-calendar-period-button-text-size:14px;--mat-datepicker-calendar-period-button-text-weight:500;--mat-datepicker-calendar-header-text-size:11px;--mat-datepicker-calendar-header-text-weight:400}html{--mat-divider-width:1px}html{--mat-divider-color:rgba(0, 0, 0, .12)}html{--mat-expansion-container-shape:4px;--mat-expansion-legacy-header-indicator-display:inline-block;--mat-expansion-header-indicator-display:none}html{--mat-expansion-container-background-color:white;--mat-expansion-container-text-color:rgba(0, 0, 0, .87);--mat-expansion-actions-divider-color:rgba(0, 0, 0, .12);--mat-expansion-header-hover-state-layer-color:rgba(0, 0, 0, .04);--mat-expansion-header-focus-state-layer-color:rgba(0, 0, 0, .04);--mat-expansion-header-disabled-state-text-color:rgba(0, 0, 0, .26);--mat-expansion-header-text-color:rgba(0, 0, 0, .87);--mat-expansion-header-description-color:rgba(0, 0, 0, .54);--mat-expansion-header-indicator-color:rgba(0, 0, 0, .54)}html{--mat-expansion-header-collapsed-state-height:48px;--mat-expansion-header-expanded-state-height:64px}html{--mat-expansion-header-text-font:Roboto, sans-serif;--mat-expansion-header-text-size:14px;--mat-expansion-header-text-weight:500;--mat-expansion-header-text-line-height:inherit;--mat-expansion-header-text-tracking:inherit;--mat-expansion-container-text-font:Roboto, sans-serif;--mat-expansion-container-text-line-height:20px;--mat-expansion-container-text-size:14px;--mat-expansion-container-text-tracking:.0178571429em;--mat-expansion-container-text-weight:400}html{--mat-grid-list-tile-header-primary-text-size:14px;--mat-grid-list-tile-header-secondary-text-size:12px;--mat-grid-list-tile-footer-primary-text-size:14px;--mat-grid-list-tile-footer-secondary-text-size:12px}html{--mat-icon-color:inherit}.mat-icon.mat-primary{--mat-icon-color:#3f51b5}.mat-icon.mat-accent{--mat-icon-color:#ff4081}.mat-icon.mat-warn{--mat-icon-color:#f44336}html{--mat-sidenav-container-shape:0;--mat-sidenav-container-elevation-shadow:0px 8px 10px -5px rgba(0, 0, 0, .2), 0px 16px 24px 2px rgba(0, 0, 0, .14), 0px 6px 30px 5px rgba(0, 0, 0, .12);--mat-sidenav-container-width:auto}html{--mat-sidenav-container-divider-color:rgba(0, 0, 0, .12);--mat-sidenav-container-background-color:white;--mat-sidenav-container-text-color:rgba(0, 0, 0, .87);--mat-sidenav-content-background-color:#fafafa;--mat-sidenav-content-text-color:rgba(0, 0, 0, .87);--mat-sidenav-scrim-color:rgba(0, 0, 0, .6)}html{--mat-stepper-header-icon-foreground-color:white;--mat-stepper-header-selected-state-icon-background-color:#3f51b5;--mat-stepper-header-selected-state-icon-foreground-color:white;--mat-stepper-header-done-state-icon-background-color:#3f51b5;--mat-stepper-header-done-state-icon-foreground-color:white;--mat-stepper-header-edit-state-icon-background-color:#3f51b5;--mat-stepper-header-edit-state-icon-foreground-color:white;--mat-stepper-container-color:white;--mat-stepper-line-color:rgba(0, 0, 0, .12);--mat-stepper-header-hover-state-layer-color:rgba(0, 0, 0, .04);--mat-stepper-header-focus-state-layer-color:rgba(0, 0, 0, .04);--mat-stepper-header-label-text-color:rgba(0, 0, 0, .54);--mat-stepper-header-optional-label-text-color:rgba(0, 0, 0, .54);--mat-stepper-header-selected-state-label-text-color:rgba(0, 0, 0, .87);--mat-stepper-header-error-state-label-text-color:#f44336;--mat-stepper-header-icon-background-color:rgba(0, 0, 0, .54);--mat-stepper-header-error-state-icon-foreground-color:#f44336;--mat-stepper-header-error-state-icon-background-color:transparent}html .mat-step-header.mat-accent{--mat-stepper-header-icon-foreground-color:white;--mat-stepper-header-selected-state-icon-background-color:#ff4081;--mat-stepper-header-selected-state-icon-foreground-color:white;--mat-stepper-header-done-state-icon-background-color:#ff4081;--mat-stepper-header-done-state-icon-foreground-color:white;--mat-stepper-header-edit-state-icon-background-color:#ff4081;--mat-stepper-header-edit-state-icon-foreground-color:white}html .mat-step-header.mat-warn{--mat-stepper-header-icon-foreground-color:white;--mat-stepper-header-selected-state-icon-background-color:#f44336;--mat-stepper-header-selected-state-icon-foreground-color:white;--mat-stepper-header-done-state-icon-background-color:#f44336;--mat-stepper-header-done-state-icon-foreground-color:white;--mat-stepper-header-edit-state-icon-background-color:#f44336;--mat-stepper-header-edit-state-icon-foreground-color:white}html{--mat-stepper-header-height:72px}html{--mat-stepper-container-text-font:Roboto, sans-serif;--mat-stepper-header-label-text-font:Roboto, sans-serif;--mat-stepper-header-label-text-size:14px;--mat-stepper-header-label-text-weight:400;--mat-stepper-header-error-state-label-text-size:16px;--mat-stepper-header-selected-state-label-text-size:16px;--mat-stepper-header-selected-state-label-text-weight:400}html{--mat-sort-arrow-color:#757575}html{--mat-toolbar-container-background-color:whitesmoke;--mat-toolbar-container-text-color:rgba(0, 0, 0, .87)}.mat-toolbar.mat-primary{--mat-toolbar-container-background-color:#3f51b5;--mat-toolbar-container-text-color:white}.mat-toolbar.mat-accent{--mat-toolbar-container-background-color:#ff4081;--mat-toolbar-container-text-color:white}.mat-toolbar.mat-warn{--mat-toolbar-container-background-color:#f44336;--mat-toolbar-container-text-color:white}html{--mat-toolbar-standard-height:64px;--mat-toolbar-mobile-height:56px}html{--mat-toolbar-title-text-font:Roboto, sans-serif;--mat-toolbar-title-text-line-height:32px;--mat-toolbar-title-text-size:20px;--mat-toolbar-title-text-tracking:.0125em;--mat-toolbar-title-text-weight:500}html{--mat-tree-container-background-color:white;--mat-tree-node-text-color:rgba(0, 0, 0, .87)}html{--mat-tree-node-min-height:48px}html{--mat-tree-node-text-font:Roboto, sans-serif;--mat-tree-node-text-size:14px;--mat-tree-node-text-weight:400}.mat-h1,.mat-headline-5,.mat-typography .mat-h1,.mat-typography .mat-headline-5,.mat-typography h1{font:400 24px/32px Roboto,sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2,.mat-headline-6,.mat-typography .mat-h2,.mat-typography .mat-headline-6,.mat-typography h2{font:500 20px/32px Roboto,sans-serif;letter-spacing:.0125em;margin:0 0 16px}.mat-h3,.mat-subtitle-1,.mat-typography .mat-h3,.mat-typography .mat-subtitle-1,.mat-typography h3{font:400 16px/28px Roboto,sans-serif;letter-spacing:.009375em;margin:0 0 16px}.mat-h4,.mat-body-1,.mat-typography .mat-h4,.mat-typography .mat-body-1,.mat-typography h4{font:400 16px/24px Roboto,sans-serif;letter-spacing:.03125em;margin:0 0 16px}.mat-h5,.mat-typography .mat-h5,.mat-typography h5{font:400 11.62px/20px Roboto,sans-serif;margin:0 0 12px}.mat-h6,.mat-typography .mat-h6,.mat-typography h6{font:400 9.38px/20px Roboto,sans-serif;margin:0 0 12px}.mat-body-strong,.mat-subtitle-2,.mat-typography .mat-body-strong,.mat-typography .mat-subtitle-2{font:500 14px/22px Roboto,sans-serif;letter-spacing:.0071428571em}.mat-body,.mat-body-2,.mat-typography .mat-body,.mat-typography .mat-body-2,.mat-typography{font:400 14px/20px Roboto,sans-serif;letter-spacing:.0178571429em}.mat-body p,.mat-body-2 p,.mat-typography .mat-body p,.mat-typography .mat-body-2 p,.mat-typography p{margin:0 0 12px}.mat-small,.mat-caption,.mat-typography .mat-small,.mat-typography .mat-caption{font:400 12px/20px Roboto,sans-serif;letter-spacing:.0333333333em}.mat-headline-1,.mat-typography .mat-headline-1{font:300 96px/96px Roboto,sans-serif;letter-spacing:-.015625em;margin:0 0 56px}.mat-headline-2,.mat-typography .mat-headline-2{font:300 60px/60px Roboto,sans-serif;letter-spacing:-.0083333333em;margin:0 0 64px}.mat-headline-3,.mat-typography .mat-headline-3{font:400 48px/50px Roboto,sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-headline-4,.mat-typography .mat-headline-4{font:400 34px/40px Roboto,sans-serif;letter-spacing:.0073529412em;margin:0 0 64px}@font-face{font-family:LatinxText;src:url(LatinxText-Regular.9d80ef7021a2f431.otf) format("opentype")}@font-face{font-family:LatinxText-Bold;src:url(LatinxText-Bold.c79057f6c73ab6a8.otf) format("opentype")}*{font-family:LatinxText}html,body{height:100%}body{margin:0;font-family:Roboto,Helvetica Neue,sans-serif}.primaryBtn{color:#fff!important;background-color:#221e1e!important}.okBtn:not(:disabled){color:#fff!important;background-color:#3db0e4!important}#sorteoContainer{height:-webkit-fill-available;background-color:#fff;display:flex;align-items:center;flex-direction:column;width:inherit}#sorteoContainer .finDeSorteo{text-align:center;color:#221e1e!important}#sorteoContainer .finDeSorteo h1{font-size:59px;margin-bottom:25px}#sorteoContainer .finDeSorteo h2{font-size:39px;margin-bottom:10px}#sorteoContainer #randomGenerator,#sorteoContainer #randomGeneratorStrings{margin-left:3em;margin-right:3em}#sorteoContainer #randomGenerator span.clearBlue,#sorteoContainer #randomGeneratorStrings span.clearBlue{color:#3db0e4!important}#sorteoContainer #randomGenerator span.darkBlue,#sorteoContainer #randomGeneratorStrings span.darkBlue{color:#0a0089!important}#sorteoContainer #buttons{display:flex;margin:1.5em;align-items:center;justify-content:center}#sorteoContainer #buttons .okBtn{background-color:#3db0e4!important}#sorteoContainer #buttons .shuffleBtn{background-color:#221e1e!important}#sorteoContainer #buttons #randomGenerator{height:100px;overflow:hidden}#sorteoContainer #buttons #randomGenerator .cifra{font-size:80px;height:110px;width:110px;display:flex;justify-content:center;align-items:flex-end}#sorteoContainer #buttons #leftContainer{display:flex;align-items:center;justify-content:center;gap:2em}#sorteoContainer #buttons #randomGeneratorStrings{width:-webkit-fill-available;text-align:center}#sorteoContainer #buttons #randomGeneratorStrings span{font-size:55px;font-weight:700;white-space:nowrap} diff --git a/docs/styles.css b/docs/styles.css deleted file mode 100644 index c2154c3..0000000 --- a/docs/styles.css +++ /dev/null @@ -1,113 +0,0 @@ -/*!**********************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[5].rules[0].oneOf[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].rules[0].oneOf[0].use[2]!./node_modules/@angular/material/prebuilt-themes/indigo-pink.css?ngGlobalStyle ***! - \**********************************************************************************************************************************************************************************************************************************************************************/ -.mat-ripple{overflow:hidden;position:relative}.mat-ripple:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale3d(0, 0, 0);background-color:var(--mat-ripple-color, rgba(0, 0, 0, 0.1))}.cdk-high-contrast-active .mat-ripple-element{display:none}.cdk-drag-preview .mat-ripple-element,.cdk-drag-placeholder .mat-ripple-element{display:none}.cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl] .cdk-visually-hidden{left:auto;right:0}.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}@keyframes cdk-text-field-autofill-start{/*!*/}@keyframes cdk-text-field-autofill-end{/*!*/}.cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}.mat-focus-indicator{position:relative}.mat-focus-indicator::before{top:0;left:0;right:0;bottom:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-focus-indicator-display, none);border:var(--mat-focus-indicator-border-width, 3px) var(--mat-focus-indicator-border-style, solid) var(--mat-focus-indicator-border-color, transparent);border-radius:var(--mat-focus-indicator-border-radius, 4px)}.mat-focus-indicator:focus::before{content:""}.cdk-high-contrast-active{--mat-focus-indicator-display: block}.mat-mdc-focus-indicator{position:relative}.mat-mdc-focus-indicator::before{top:0;left:0;right:0;bottom:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-mdc-focus-indicator-display, none);border:var(--mat-mdc-focus-indicator-border-width, 3px) var(--mat-mdc-focus-indicator-border-style, solid) var(--mat-mdc-focus-indicator-border-color, transparent);border-radius:var(--mat-mdc-focus-indicator-border-radius, 4px)}.mat-mdc-focus-indicator:focus::before{content:""}.cdk-high-contrast-active{--mat-mdc-focus-indicator-display: block}.mat-app-background{background-color:var(--mat-app-background-color, var(--mat-app-background, transparent));color:var(--mat-app-text-color, var(--mat-app-on-background, inherit))}.mat-elevation-z0,.mat-mdc-elevation-specific.mat-elevation-z0{box-shadow:var(--mat-app-elevation-shadow-level-0, none)}.mat-elevation-z1,.mat-mdc-elevation-specific.mat-elevation-z1{box-shadow:var(--mat-app-elevation-shadow-level-1, none)}.mat-elevation-z2,.mat-mdc-elevation-specific.mat-elevation-z2{box-shadow:var(--mat-app-elevation-shadow-level-2, none)}.mat-elevation-z3,.mat-mdc-elevation-specific.mat-elevation-z3{box-shadow:var(--mat-app-elevation-shadow-level-3, none)}.mat-elevation-z4,.mat-mdc-elevation-specific.mat-elevation-z4{box-shadow:var(--mat-app-elevation-shadow-level-4, none)}.mat-elevation-z5,.mat-mdc-elevation-specific.mat-elevation-z5{box-shadow:var(--mat-app-elevation-shadow-level-5, none)}.mat-elevation-z6,.mat-mdc-elevation-specific.mat-elevation-z6{box-shadow:var(--mat-app-elevation-shadow-level-6, none)}.mat-elevation-z7,.mat-mdc-elevation-specific.mat-elevation-z7{box-shadow:var(--mat-app-elevation-shadow-level-7, none)}.mat-elevation-z8,.mat-mdc-elevation-specific.mat-elevation-z8{box-shadow:var(--mat-app-elevation-shadow-level-8, none)}.mat-elevation-z9,.mat-mdc-elevation-specific.mat-elevation-z9{box-shadow:var(--mat-app-elevation-shadow-level-9, none)}.mat-elevation-z10,.mat-mdc-elevation-specific.mat-elevation-z10{box-shadow:var(--mat-app-elevation-shadow-level-10, none)}.mat-elevation-z11,.mat-mdc-elevation-specific.mat-elevation-z11{box-shadow:var(--mat-app-elevation-shadow-level-11, none)}.mat-elevation-z12,.mat-mdc-elevation-specific.mat-elevation-z12{box-shadow:var(--mat-app-elevation-shadow-level-12, none)}.mat-elevation-z13,.mat-mdc-elevation-specific.mat-elevation-z13{box-shadow:var(--mat-app-elevation-shadow-level-13, none)}.mat-elevation-z14,.mat-mdc-elevation-specific.mat-elevation-z14{box-shadow:var(--mat-app-elevation-shadow-level-14, none)}.mat-elevation-z15,.mat-mdc-elevation-specific.mat-elevation-z15{box-shadow:var(--mat-app-elevation-shadow-level-15, none)}.mat-elevation-z16,.mat-mdc-elevation-specific.mat-elevation-z16{box-shadow:var(--mat-app-elevation-shadow-level-16, none)}.mat-elevation-z17,.mat-mdc-elevation-specific.mat-elevation-z17{box-shadow:var(--mat-app-elevation-shadow-level-17, none)}.mat-elevation-z18,.mat-mdc-elevation-specific.mat-elevation-z18{box-shadow:var(--mat-app-elevation-shadow-level-18, none)}.mat-elevation-z19,.mat-mdc-elevation-specific.mat-elevation-z19{box-shadow:var(--mat-app-elevation-shadow-level-19, none)}.mat-elevation-z20,.mat-mdc-elevation-specific.mat-elevation-z20{box-shadow:var(--mat-app-elevation-shadow-level-20, none)}.mat-elevation-z21,.mat-mdc-elevation-specific.mat-elevation-z21{box-shadow:var(--mat-app-elevation-shadow-level-21, none)}.mat-elevation-z22,.mat-mdc-elevation-specific.mat-elevation-z22{box-shadow:var(--mat-app-elevation-shadow-level-22, none)}.mat-elevation-z23,.mat-mdc-elevation-specific.mat-elevation-z23{box-shadow:var(--mat-app-elevation-shadow-level-23, none)}.mat-elevation-z24,.mat-mdc-elevation-specific.mat-elevation-z24{box-shadow:var(--mat-app-elevation-shadow-level-24, none)}.mat-theme-loaded-marker{display:none}html{--mat-ripple-color:rgba(0, 0, 0, 0.1)}html{--mat-option-selected-state-label-text-color:#3f51b5;--mat-option-label-text-color:rgba(0, 0, 0, 0.87);--mat-option-hover-state-layer-color:rgba(0, 0, 0, 0.04);--mat-option-focus-state-layer-color:rgba(0, 0, 0, 0.04);--mat-option-selected-state-layer-color:rgba(0, 0, 0, 0.04)}.mat-accent{--mat-option-selected-state-label-text-color:#ff4081;--mat-option-label-text-color:rgba(0, 0, 0, 0.87);--mat-option-hover-state-layer-color:rgba(0, 0, 0, 0.04);--mat-option-focus-state-layer-color:rgba(0, 0, 0, 0.04);--mat-option-selected-state-layer-color:rgba(0, 0, 0, 0.04)}.mat-warn{--mat-option-selected-state-label-text-color:#f44336;--mat-option-label-text-color:rgba(0, 0, 0, 0.87);--mat-option-hover-state-layer-color:rgba(0, 0, 0, 0.04);--mat-option-focus-state-layer-color:rgba(0, 0, 0, 0.04);--mat-option-selected-state-layer-color:rgba(0, 0, 0, 0.04)}html{--mat-optgroup-label-text-color:rgba(0, 0, 0, 0.87)}.mat-primary{--mat-full-pseudo-checkbox-selected-icon-color:#3f51b5;--mat-full-pseudo-checkbox-selected-checkmark-color:#fafafa;--mat-full-pseudo-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color:#fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color:#b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color:#b0b0b0;--mat-minimal-pseudo-checkbox-selected-checkmark-color:#3f51b5;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color:#b0b0b0}html{--mat-full-pseudo-checkbox-selected-icon-color:#ff4081;--mat-full-pseudo-checkbox-selected-checkmark-color:#fafafa;--mat-full-pseudo-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color:#fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color:#b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color:#b0b0b0;--mat-minimal-pseudo-checkbox-selected-checkmark-color:#ff4081;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color:#b0b0b0}.mat-accent{--mat-full-pseudo-checkbox-selected-icon-color:#ff4081;--mat-full-pseudo-checkbox-selected-checkmark-color:#fafafa;--mat-full-pseudo-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color:#fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color:#b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color:#b0b0b0;--mat-minimal-pseudo-checkbox-selected-checkmark-color:#ff4081;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color:#b0b0b0}.mat-warn{--mat-full-pseudo-checkbox-selected-icon-color:#f44336;--mat-full-pseudo-checkbox-selected-checkmark-color:#fafafa;--mat-full-pseudo-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color:#fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color:#b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color:#b0b0b0;--mat-minimal-pseudo-checkbox-selected-checkmark-color:#f44336;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color:#b0b0b0}html{--mat-app-background-color:#fafafa;--mat-app-text-color:rgba(0, 0, 0, 0.87);--mat-app-elevation-shadow-level-0:0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);--mat-app-elevation-shadow-level-1:0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);--mat-app-elevation-shadow-level-2:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);--mat-app-elevation-shadow-level-3:0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);--mat-app-elevation-shadow-level-4:0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);--mat-app-elevation-shadow-level-5:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 5px 8px 0px rgba(0, 0, 0, 0.14), 0px 1px 14px 0px rgba(0, 0, 0, 0.12);--mat-app-elevation-shadow-level-6:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);--mat-app-elevation-shadow-level-7:0px 4px 5px -2px rgba(0, 0, 0, 0.2), 0px 7px 10px 1px rgba(0, 0, 0, 0.14), 0px 2px 16px 1px rgba(0, 0, 0, 0.12);--mat-app-elevation-shadow-level-8:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);--mat-app-elevation-shadow-level-9:0px 5px 6px -3px rgba(0, 0, 0, 0.2), 0px 9px 12px 1px rgba(0, 0, 0, 0.14), 0px 3px 16px 2px rgba(0, 0, 0, 0.12);--mat-app-elevation-shadow-level-10:0px 6px 6px -3px rgba(0, 0, 0, 0.2), 0px 10px 14px 1px rgba(0, 0, 0, 0.14), 0px 4px 18px 3px rgba(0, 0, 0, 0.12);--mat-app-elevation-shadow-level-11:0px 6px 7px -4px rgba(0, 0, 0, 0.2), 0px 11px 15px 1px rgba(0, 0, 0, 0.14), 0px 4px 20px 3px rgba(0, 0, 0, 0.12);--mat-app-elevation-shadow-level-12:0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);--mat-app-elevation-shadow-level-13:0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 13px 19px 2px rgba(0, 0, 0, 0.14), 0px 5px 24px 4px rgba(0, 0, 0, 0.12);--mat-app-elevation-shadow-level-14:0px 7px 9px -4px rgba(0, 0, 0, 0.2), 0px 14px 21px 2px rgba(0, 0, 0, 0.14), 0px 5px 26px 4px rgba(0, 0, 0, 0.12);--mat-app-elevation-shadow-level-15:0px 8px 9px -5px rgba(0, 0, 0, 0.2), 0px 15px 22px 2px rgba(0, 0, 0, 0.14), 0px 6px 28px 5px rgba(0, 0, 0, 0.12);--mat-app-elevation-shadow-level-16:0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);--mat-app-elevation-shadow-level-17:0px 8px 11px -5px rgba(0, 0, 0, 0.2), 0px 17px 26px 2px rgba(0, 0, 0, 0.14), 0px 6px 32px 5px rgba(0, 0, 0, 0.12);--mat-app-elevation-shadow-level-18:0px 9px 11px -5px rgba(0, 0, 0, 0.2), 0px 18px 28px 2px rgba(0, 0, 0, 0.14), 0px 7px 34px 6px rgba(0, 0, 0, 0.12);--mat-app-elevation-shadow-level-19:0px 9px 12px -6px rgba(0, 0, 0, 0.2), 0px 19px 29px 2px rgba(0, 0, 0, 0.14), 0px 7px 36px 6px rgba(0, 0, 0, 0.12);--mat-app-elevation-shadow-level-20:0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 20px 31px 3px rgba(0, 0, 0, 0.14), 0px 8px 38px 7px rgba(0, 0, 0, 0.12);--mat-app-elevation-shadow-level-21:0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 21px 33px 3px rgba(0, 0, 0, 0.14), 0px 8px 40px 7px rgba(0, 0, 0, 0.12);--mat-app-elevation-shadow-level-22:0px 10px 14px -6px rgba(0, 0, 0, 0.2), 0px 22px 35px 3px rgba(0, 0, 0, 0.14), 0px 8px 42px 7px rgba(0, 0, 0, 0.12);--mat-app-elevation-shadow-level-23:0px 11px 14px -7px rgba(0, 0, 0, 0.2), 0px 23px 36px 3px rgba(0, 0, 0, 0.14), 0px 9px 44px 8px rgba(0, 0, 0, 0.12);--mat-app-elevation-shadow-level-24:0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12)}html{--mat-option-label-text-font:Roboto, sans-serif;--mat-option-label-text-line-height:24px;--mat-option-label-text-size:16px;--mat-option-label-text-tracking:0.03125em;--mat-option-label-text-weight:400}html{--mat-optgroup-label-text-font:Roboto, sans-serif;--mat-optgroup-label-text-line-height:24px;--mat-optgroup-label-text-size:16px;--mat-optgroup-label-text-tracking:0.03125em;--mat-optgroup-label-text-weight:400}html{--mdc-elevated-card-container-shape:4px;--mdc-outlined-card-container-shape:4px;--mdc-outlined-card-outline-width:1px}html{--mdc-elevated-card-container-color:white;--mdc-elevated-card-container-elevation:0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);--mdc-outlined-card-container-color:white;--mdc-outlined-card-outline-color:rgba(0, 0, 0, 0.12);--mdc-outlined-card-container-elevation:0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);--mat-card-subtitle-text-color:rgba(0, 0, 0, 0.54)}html{--mat-card-title-text-font:Roboto, sans-serif;--mat-card-title-text-line-height:32px;--mat-card-title-text-size:20px;--mat-card-title-text-tracking:0.0125em;--mat-card-title-text-weight:500;--mat-card-subtitle-text-font:Roboto, sans-serif;--mat-card-subtitle-text-line-height:22px;--mat-card-subtitle-text-size:14px;--mat-card-subtitle-text-tracking:0.0071428571em;--mat-card-subtitle-text-weight:500}html{--mdc-linear-progress-active-indicator-height:4px;--mdc-linear-progress-track-height:4px;--mdc-linear-progress-track-shape:0}.mat-mdc-progress-bar{--mdc-linear-progress-active-indicator-color:#3f51b5;--mdc-linear-progress-track-color:rgba(63, 81, 181, 0.25)}.mat-mdc-progress-bar.mat-accent{--mdc-linear-progress-active-indicator-color:#ff4081;--mdc-linear-progress-track-color:rgba(255, 64, 129, 0.25)}.mat-mdc-progress-bar.mat-warn{--mdc-linear-progress-active-indicator-color:#f44336;--mdc-linear-progress-track-color:rgba(244, 67, 54, 0.25)}html{--mdc-plain-tooltip-container-shape:4px;--mdc-plain-tooltip-supporting-text-line-height:16px}html{--mdc-plain-tooltip-container-color:#616161;--mdc-plain-tooltip-supporting-text-color:#fff}html{--mdc-plain-tooltip-supporting-text-font:Roboto, sans-serif;--mdc-plain-tooltip-supporting-text-size:12px;--mdc-plain-tooltip-supporting-text-weight:400;--mdc-plain-tooltip-supporting-text-tracking:0.0333333333em}html{--mdc-filled-text-field-active-indicator-height:1px;--mdc-filled-text-field-focus-active-indicator-height:2px;--mdc-filled-text-field-container-shape:4px;--mdc-outlined-text-field-outline-width:1px;--mdc-outlined-text-field-focus-outline-width:2px;--mdc-outlined-text-field-container-shape:4px}html{--mdc-filled-text-field-caret-color:#3f51b5;--mdc-filled-text-field-focus-active-indicator-color:#3f51b5;--mdc-filled-text-field-focus-label-text-color:rgba(63, 81, 181, 0.87);--mdc-filled-text-field-container-color:whitesmoke;--mdc-filled-text-field-disabled-container-color:#fafafa;--mdc-filled-text-field-label-text-color:rgba(0, 0, 0, 0.6);--mdc-filled-text-field-hover-label-text-color:rgba(0, 0, 0, 0.6);--mdc-filled-text-field-disabled-label-text-color:rgba(0, 0, 0, 0.38);--mdc-filled-text-field-input-text-color:rgba(0, 0, 0, 0.87);--mdc-filled-text-field-disabled-input-text-color:rgba(0, 0, 0, 0.38);--mdc-filled-text-field-input-text-placeholder-color:rgba(0, 0, 0, 0.6);--mdc-filled-text-field-error-hover-label-text-color:#f44336;--mdc-filled-text-field-error-focus-label-text-color:#f44336;--mdc-filled-text-field-error-label-text-color:#f44336;--mdc-filled-text-field-error-caret-color:#f44336;--mdc-filled-text-field-active-indicator-color:rgba(0, 0, 0, 0.42);--mdc-filled-text-field-disabled-active-indicator-color:rgba(0, 0, 0, 0.06);--mdc-filled-text-field-hover-active-indicator-color:rgba(0, 0, 0, 0.87);--mdc-filled-text-field-error-active-indicator-color:#f44336;--mdc-filled-text-field-error-focus-active-indicator-color:#f44336;--mdc-filled-text-field-error-hover-active-indicator-color:#f44336;--mdc-outlined-text-field-caret-color:#3f51b5;--mdc-outlined-text-field-focus-outline-color:#3f51b5;--mdc-outlined-text-field-focus-label-text-color:rgba(63, 81, 181, 0.87);--mdc-outlined-text-field-label-text-color:rgba(0, 0, 0, 0.6);--mdc-outlined-text-field-hover-label-text-color:rgba(0, 0, 0, 0.6);--mdc-outlined-text-field-disabled-label-text-color:rgba(0, 0, 0, 0.38);--mdc-outlined-text-field-input-text-color:rgba(0, 0, 0, 0.87);--mdc-outlined-text-field-disabled-input-text-color:rgba(0, 0, 0, 0.38);--mdc-outlined-text-field-input-text-placeholder-color:rgba(0, 0, 0, 0.6);--mdc-outlined-text-field-error-caret-color:#f44336;--mdc-outlined-text-field-error-focus-label-text-color:#f44336;--mdc-outlined-text-field-error-label-text-color:#f44336;--mdc-outlined-text-field-error-hover-label-text-color:#f44336;--mdc-outlined-text-field-outline-color:rgba(0, 0, 0, 0.38);--mdc-outlined-text-field-disabled-outline-color:rgba(0, 0, 0, 0.06);--mdc-outlined-text-field-hover-outline-color:rgba(0, 0, 0, 0.87);--mdc-outlined-text-field-error-focus-outline-color:#f44336;--mdc-outlined-text-field-error-hover-outline-color:#f44336;--mdc-outlined-text-field-error-outline-color:#f44336;--mat-form-field-focus-select-arrow-color:rgba(63, 81, 181, 0.87);--mat-form-field-disabled-input-text-placeholder-color:rgba(0, 0, 0, 0.38);--mat-form-field-state-layer-color:rgba(0, 0, 0, 0.87);--mat-form-field-error-text-color:#f44336;--mat-form-field-select-option-text-color:inherit;--mat-form-field-select-disabled-option-text-color:GrayText;--mat-form-field-leading-icon-color:unset;--mat-form-field-disabled-leading-icon-color:unset;--mat-form-field-trailing-icon-color:unset;--mat-form-field-disabled-trailing-icon-color:unset;--mat-form-field-error-focus-trailing-icon-color:unset;--mat-form-field-error-hover-trailing-icon-color:unset;--mat-form-field-error-trailing-icon-color:unset;--mat-form-field-enabled-select-arrow-color:rgba(0, 0, 0, 0.54);--mat-form-field-disabled-select-arrow-color:rgba(0, 0, 0, 0.38);--mat-form-field-hover-state-layer-opacity:0.04;--mat-form-field-focus-state-layer-opacity:0.08}.mat-mdc-form-field.mat-accent{--mdc-filled-text-field-caret-color:#ff4081;--mdc-filled-text-field-focus-active-indicator-color:#ff4081;--mdc-filled-text-field-focus-label-text-color:rgba(255, 64, 129, 0.87);--mdc-outlined-text-field-caret-color:#ff4081;--mdc-outlined-text-field-focus-outline-color:#ff4081;--mdc-outlined-text-field-focus-label-text-color:rgba(255, 64, 129, 0.87);--mat-form-field-focus-select-arrow-color:rgba(255, 64, 129, 0.87)}.mat-mdc-form-field.mat-warn{--mdc-filled-text-field-caret-color:#f44336;--mdc-filled-text-field-focus-active-indicator-color:#f44336;--mdc-filled-text-field-focus-label-text-color:rgba(244, 67, 54, 0.87);--mdc-outlined-text-field-caret-color:#f44336;--mdc-outlined-text-field-focus-outline-color:#f44336;--mdc-outlined-text-field-focus-label-text-color:rgba(244, 67, 54, 0.87);--mat-form-field-focus-select-arrow-color:rgba(244, 67, 54, 0.87)}html{--mat-form-field-container-height:56px;--mat-form-field-filled-label-display:block;--mat-form-field-container-vertical-padding:16px;--mat-form-field-filled-with-label-container-padding-top:24px;--mat-form-field-filled-with-label-container-padding-bottom:8px}html{--mdc-filled-text-field-label-text-font:Roboto, sans-serif;--mdc-filled-text-field-label-text-size:16px;--mdc-filled-text-field-label-text-tracking:0.03125em;--mdc-filled-text-field-label-text-weight:400;--mdc-outlined-text-field-label-text-font:Roboto, sans-serif;--mdc-outlined-text-field-label-text-size:16px;--mdc-outlined-text-field-label-text-tracking:0.03125em;--mdc-outlined-text-field-label-text-weight:400;--mat-form-field-container-text-font:Roboto, sans-serif;--mat-form-field-container-text-line-height:24px;--mat-form-field-container-text-size:16px;--mat-form-field-container-text-tracking:0.03125em;--mat-form-field-container-text-weight:400;--mat-form-field-outlined-label-text-populated-size:16px;--mat-form-field-subscript-text-font:Roboto, sans-serif;--mat-form-field-subscript-text-line-height:20px;--mat-form-field-subscript-text-size:12px;--mat-form-field-subscript-text-tracking:0.0333333333em;--mat-form-field-subscript-text-weight:400}html{--mat-select-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12)}html{--mat-select-panel-background-color:white;--mat-select-enabled-trigger-text-color:rgba(0, 0, 0, 0.87);--mat-select-disabled-trigger-text-color:rgba(0, 0, 0, 0.38);--mat-select-placeholder-text-color:rgba(0, 0, 0, 0.6);--mat-select-enabled-arrow-color:rgba(0, 0, 0, 0.54);--mat-select-disabled-arrow-color:rgba(0, 0, 0, 0.38);--mat-select-focused-arrow-color:rgba(63, 81, 181, 0.87);--mat-select-invalid-arrow-color:rgba(244, 67, 54, 0.87)}html .mat-mdc-form-field.mat-accent{--mat-select-panel-background-color:white;--mat-select-enabled-trigger-text-color:rgba(0, 0, 0, 0.87);--mat-select-disabled-trigger-text-color:rgba(0, 0, 0, 0.38);--mat-select-placeholder-text-color:rgba(0, 0, 0, 0.6);--mat-select-enabled-arrow-color:rgba(0, 0, 0, 0.54);--mat-select-disabled-arrow-color:rgba(0, 0, 0, 0.38);--mat-select-focused-arrow-color:rgba(255, 64, 129, 0.87);--mat-select-invalid-arrow-color:rgba(244, 67, 54, 0.87)}html .mat-mdc-form-field.mat-warn{--mat-select-panel-background-color:white;--mat-select-enabled-trigger-text-color:rgba(0, 0, 0, 0.87);--mat-select-disabled-trigger-text-color:rgba(0, 0, 0, 0.38);--mat-select-placeholder-text-color:rgba(0, 0, 0, 0.6);--mat-select-enabled-arrow-color:rgba(0, 0, 0, 0.54);--mat-select-disabled-arrow-color:rgba(0, 0, 0, 0.38);--mat-select-focused-arrow-color:rgba(244, 67, 54, 0.87);--mat-select-invalid-arrow-color:rgba(244, 67, 54, 0.87)}html{--mat-select-arrow-transform:translateY(-8px)}html{--mat-select-trigger-text-font:Roboto, sans-serif;--mat-select-trigger-text-line-height:24px;--mat-select-trigger-text-size:16px;--mat-select-trigger-text-tracking:0.03125em;--mat-select-trigger-text-weight:400}html{--mat-autocomplete-container-shape:4px;--mat-autocomplete-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12)}html{--mat-autocomplete-background-color:white}html{--mdc-dialog-container-shape:4px;--mat-dialog-container-elevation-shadow:0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);--mat-dialog-container-max-width:80vw;--mat-dialog-container-small-max-width:80vw;--mat-dialog-container-min-width:0;--mat-dialog-actions-alignment:start;--mat-dialog-actions-padding:8px;--mat-dialog-content-padding:20px 24px;--mat-dialog-with-actions-content-padding:20px 24px;--mat-dialog-headline-padding:0 24px 9px}html{--mdc-dialog-container-color:white;--mdc-dialog-subhead-color:rgba(0, 0, 0, 0.87);--mdc-dialog-supporting-text-color:rgba(0, 0, 0, 0.6)}html{--mdc-dialog-subhead-font:Roboto, sans-serif;--mdc-dialog-subhead-line-height:32px;--mdc-dialog-subhead-size:20px;--mdc-dialog-subhead-weight:500;--mdc-dialog-subhead-tracking:0.0125em;--mdc-dialog-supporting-text-font:Roboto, sans-serif;--mdc-dialog-supporting-text-line-height:24px;--mdc-dialog-supporting-text-size:16px;--mdc-dialog-supporting-text-weight:400;--mdc-dialog-supporting-text-tracking:0.03125em}.mat-mdc-standard-chip{--mdc-chip-container-shape-radius:16px;--mdc-chip-with-avatar-avatar-shape-radius:14px;--mdc-chip-with-avatar-avatar-size:28px;--mdc-chip-with-icon-icon-size:18px;--mdc-chip-outline-width:0;--mdc-chip-outline-color:transparent;--mdc-chip-disabled-outline-color:transparent;--mdc-chip-focus-outline-color:transparent;--mdc-chip-hover-state-layer-opacity:0.04;--mdc-chip-with-avatar-disabled-avatar-opacity:1;--mdc-chip-flat-selected-outline-width:0;--mdc-chip-selected-hover-state-layer-opacity:0.04;--mdc-chip-with-trailing-icon-disabled-trailing-icon-opacity:1;--mdc-chip-with-icon-disabled-icon-opacity:1;--mat-chip-disabled-container-opacity:0.4;--mat-chip-trailing-action-opacity:0.54;--mat-chip-trailing-action-focus-opacity:1;--mat-chip-trailing-action-state-layer-color:transparent;--mat-chip-selected-trailing-action-state-layer-color:transparent;--mat-chip-trailing-action-hover-state-layer-opacity:0;--mat-chip-trailing-action-focus-state-layer-opacity:0}.mat-mdc-standard-chip{--mdc-chip-disabled-label-text-color:#212121;--mdc-chip-elevated-container-color:#e0e0e0;--mdc-chip-elevated-selected-container-color:#e0e0e0;--mdc-chip-elevated-disabled-container-color:#e0e0e0;--mdc-chip-flat-disabled-selected-container-color:#e0e0e0;--mdc-chip-focus-state-layer-color:black;--mdc-chip-hover-state-layer-color:black;--mdc-chip-selected-hover-state-layer-color:black;--mdc-chip-focus-state-layer-opacity:0.12;--mdc-chip-selected-focus-state-layer-color:black;--mdc-chip-selected-focus-state-layer-opacity:0.12;--mdc-chip-label-text-color:#212121;--mdc-chip-selected-label-text-color:#212121;--mdc-chip-with-icon-icon-color:#212121;--mdc-chip-with-icon-disabled-icon-color:#212121;--mdc-chip-with-icon-selected-icon-color:#212121;--mdc-chip-with-trailing-icon-disabled-trailing-icon-color:#212121;--mdc-chip-with-trailing-icon-trailing-icon-color:#212121;--mat-chip-selected-disabled-trailing-icon-color:#212121;--mat-chip-selected-trailing-icon-color:#212121}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-primary,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-primary{--mdc-chip-disabled-label-text-color:white;--mdc-chip-elevated-container-color:#3f51b5;--mdc-chip-elevated-selected-container-color:#3f51b5;--mdc-chip-elevated-disabled-container-color:#3f51b5;--mdc-chip-flat-disabled-selected-container-color:#3f51b5;--mdc-chip-focus-state-layer-color:black;--mdc-chip-hover-state-layer-color:black;--mdc-chip-selected-hover-state-layer-color:black;--mdc-chip-focus-state-layer-opacity:0.12;--mdc-chip-selected-focus-state-layer-color:black;--mdc-chip-selected-focus-state-layer-opacity:0.12;--mdc-chip-label-text-color:white;--mdc-chip-selected-label-text-color:white;--mdc-chip-with-icon-icon-color:white;--mdc-chip-with-icon-disabled-icon-color:white;--mdc-chip-with-icon-selected-icon-color:white;--mdc-chip-with-trailing-icon-disabled-trailing-icon-color:white;--mdc-chip-with-trailing-icon-trailing-icon-color:white;--mat-chip-selected-disabled-trailing-icon-color:white;--mat-chip-selected-trailing-icon-color:white}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-accent,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-accent{--mdc-chip-disabled-label-text-color:white;--mdc-chip-elevated-container-color:#ff4081;--mdc-chip-elevated-selected-container-color:#ff4081;--mdc-chip-elevated-disabled-container-color:#ff4081;--mdc-chip-flat-disabled-selected-container-color:#ff4081;--mdc-chip-focus-state-layer-color:black;--mdc-chip-hover-state-layer-color:black;--mdc-chip-selected-hover-state-layer-color:black;--mdc-chip-focus-state-layer-opacity:0.12;--mdc-chip-selected-focus-state-layer-color:black;--mdc-chip-selected-focus-state-layer-opacity:0.12;--mdc-chip-label-text-color:white;--mdc-chip-selected-label-text-color:white;--mdc-chip-with-icon-icon-color:white;--mdc-chip-with-icon-disabled-icon-color:white;--mdc-chip-with-icon-selected-icon-color:white;--mdc-chip-with-trailing-icon-disabled-trailing-icon-color:white;--mdc-chip-with-trailing-icon-trailing-icon-color:white;--mat-chip-selected-disabled-trailing-icon-color:white;--mat-chip-selected-trailing-icon-color:white}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-warn,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-warn{--mdc-chip-disabled-label-text-color:white;--mdc-chip-elevated-container-color:#f44336;--mdc-chip-elevated-selected-container-color:#f44336;--mdc-chip-elevated-disabled-container-color:#f44336;--mdc-chip-flat-disabled-selected-container-color:#f44336;--mdc-chip-focus-state-layer-color:black;--mdc-chip-hover-state-layer-color:black;--mdc-chip-selected-hover-state-layer-color:black;--mdc-chip-focus-state-layer-opacity:0.12;--mdc-chip-selected-focus-state-layer-color:black;--mdc-chip-selected-focus-state-layer-opacity:0.12;--mdc-chip-label-text-color:white;--mdc-chip-selected-label-text-color:white;--mdc-chip-with-icon-icon-color:white;--mdc-chip-with-icon-disabled-icon-color:white;--mdc-chip-with-icon-selected-icon-color:white;--mdc-chip-with-trailing-icon-disabled-trailing-icon-color:white;--mdc-chip-with-trailing-icon-trailing-icon-color:white;--mat-chip-selected-disabled-trailing-icon-color:white;--mat-chip-selected-trailing-icon-color:white}.mat-mdc-chip.mat-mdc-standard-chip{--mdc-chip-container-height:32px}.mat-mdc-standard-chip{--mdc-chip-label-text-font:Roboto, sans-serif;--mdc-chip-label-text-line-height:20px;--mdc-chip-label-text-size:14px;--mdc-chip-label-text-tracking:0.0178571429em;--mdc-chip-label-text-weight:400}html{--mdc-switch-disabled-selected-icon-opacity:0.38;--mdc-switch-disabled-track-opacity:0.12;--mdc-switch-disabled-unselected-icon-opacity:0.38;--mdc-switch-handle-height:20px;--mdc-switch-handle-shape:10px;--mdc-switch-handle-width:20px;--mdc-switch-selected-icon-size:18px;--mdc-switch-track-height:14px;--mdc-switch-track-shape:7px;--mdc-switch-track-width:36px;--mdc-switch-unselected-icon-size:18px;--mdc-switch-selected-focus-state-layer-opacity:0.12;--mdc-switch-selected-hover-state-layer-opacity:0.04;--mdc-switch-selected-pressed-state-layer-opacity:0.1;--mdc-switch-unselected-focus-state-layer-opacity:0.12;--mdc-switch-unselected-hover-state-layer-opacity:0.04;--mdc-switch-unselected-pressed-state-layer-opacity:0.1}html .mat-mdc-slide-toggle{--mat-switch-disabled-selected-handle-opacity:0.38;--mat-switch-disabled-unselected-handle-opacity:0.38;--mat-switch-unselected-handle-size:20px;--mat-switch-selected-handle-size:20px;--mat-switch-pressed-handle-size:20px;--mat-switch-with-icon-handle-size:20px;--mat-switch-selected-handle-horizontal-margin:0;--mat-switch-selected-with-icon-handle-horizontal-margin:0;--mat-switch-selected-pressed-handle-horizontal-margin:0;--mat-switch-unselected-handle-horizontal-margin:0;--mat-switch-unselected-with-icon-handle-horizontal-margin:0;--mat-switch-unselected-pressed-handle-horizontal-margin:0;--mat-switch-visible-track-opacity:1;--mat-switch-hidden-track-opacity:1;--mat-switch-visible-track-transition:transform 75ms 0ms cubic-bezier(0, 0, 0.2, 1);--mat-switch-hidden-track-transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.6, 1);--mat-switch-track-outline-width:1px;--mat-switch-track-outline-color:transparent;--mat-switch-selected-track-outline-width:1px;--mat-switch-selected-track-outline-color:transparent;--mat-switch-disabled-unselected-track-outline-width:1px;--mat-switch-disabled-unselected-track-outline-color:transparent}html{--mdc-switch-selected-focus-state-layer-color:#3949ab;--mdc-switch-selected-handle-color:#3949ab;--mdc-switch-selected-hover-state-layer-color:#3949ab;--mdc-switch-selected-pressed-state-layer-color:#3949ab;--mdc-switch-selected-focus-handle-color:#1a237e;--mdc-switch-selected-hover-handle-color:#1a237e;--mdc-switch-selected-pressed-handle-color:#1a237e;--mdc-switch-selected-focus-track-color:#7986cb;--mdc-switch-selected-hover-track-color:#7986cb;--mdc-switch-selected-pressed-track-color:#7986cb;--mdc-switch-selected-track-color:#7986cb;--mdc-switch-disabled-selected-handle-color:#424242;--mdc-switch-disabled-selected-icon-color:#fff;--mdc-switch-disabled-selected-track-color:#424242;--mdc-switch-disabled-unselected-handle-color:#424242;--mdc-switch-disabled-unselected-icon-color:#fff;--mdc-switch-disabled-unselected-track-color:#424242;--mdc-switch-handle-surface-color:#fff;--mdc-switch-selected-icon-color:#fff;--mdc-switch-unselected-focus-handle-color:#212121;--mdc-switch-unselected-focus-state-layer-color:#424242;--mdc-switch-unselected-focus-track-color:#e0e0e0;--mdc-switch-unselected-handle-color:#616161;--mdc-switch-unselected-hover-handle-color:#212121;--mdc-switch-unselected-hover-state-layer-color:#424242;--mdc-switch-unselected-hover-track-color:#e0e0e0;--mdc-switch-unselected-icon-color:#fff;--mdc-switch-unselected-pressed-handle-color:#212121;--mdc-switch-unselected-pressed-state-layer-color:#424242;--mdc-switch-unselected-pressed-track-color:#e0e0e0;--mdc-switch-unselected-track-color:#e0e0e0;--mdc-switch-handle-elevation-shadow:0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);--mdc-switch-disabled-handle-elevation-shadow:0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);--mdc-switch-disabled-label-text-color: rgba(0, 0, 0, 0.38)}html .mat-mdc-slide-toggle{--mat-switch-label-text-color:rgba(0, 0, 0, 0.87)}html .mat-mdc-slide-toggle.mat-accent{--mdc-switch-selected-focus-state-layer-color:#d81b60;--mdc-switch-selected-handle-color:#d81b60;--mdc-switch-selected-hover-state-layer-color:#d81b60;--mdc-switch-selected-pressed-state-layer-color:#d81b60;--mdc-switch-selected-focus-handle-color:#880e4f;--mdc-switch-selected-hover-handle-color:#880e4f;--mdc-switch-selected-pressed-handle-color:#880e4f;--mdc-switch-selected-focus-track-color:#f06292;--mdc-switch-selected-hover-track-color:#f06292;--mdc-switch-selected-pressed-track-color:#f06292;--mdc-switch-selected-track-color:#f06292}html .mat-mdc-slide-toggle.mat-warn{--mdc-switch-selected-focus-state-layer-color:#e53935;--mdc-switch-selected-handle-color:#e53935;--mdc-switch-selected-hover-state-layer-color:#e53935;--mdc-switch-selected-pressed-state-layer-color:#e53935;--mdc-switch-selected-focus-handle-color:#b71c1c;--mdc-switch-selected-hover-handle-color:#b71c1c;--mdc-switch-selected-pressed-handle-color:#b71c1c;--mdc-switch-selected-focus-track-color:#e57373;--mdc-switch-selected-hover-track-color:#e57373;--mdc-switch-selected-pressed-track-color:#e57373;--mdc-switch-selected-track-color:#e57373}html{--mdc-switch-state-layer-size:40px}html .mat-mdc-slide-toggle{--mat-switch-label-text-font:Roboto, sans-serif;--mat-switch-label-text-line-height:20px;--mat-switch-label-text-size:14px;--mat-switch-label-text-tracking:0.0178571429em;--mat-switch-label-text-weight:400}html{--mdc-radio-disabled-selected-icon-opacity:0.38;--mdc-radio-disabled-unselected-icon-opacity:0.38;--mdc-radio-state-layer-size:40px}.mat-mdc-radio-button.mat-primary{--mdc-radio-disabled-selected-icon-color:black;--mdc-radio-disabled-unselected-icon-color:black;--mdc-radio-unselected-hover-icon-color:#212121;--mdc-radio-unselected-focus-icon-color:#212121;--mdc-radio-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-selected-focus-icon-color:#3f51b5;--mdc-radio-selected-hover-icon-color:#3f51b5;--mdc-radio-selected-icon-color:#3f51b5;--mdc-radio-selected-pressed-icon-color:#3f51b5;--mat-radio-ripple-color:black;--mat-radio-checked-ripple-color:#3f51b5;--mat-radio-disabled-label-color:rgba(0, 0, 0, 0.38);--mat-radio-label-text-color:rgba(0, 0, 0, 0.87)}.mat-mdc-radio-button.mat-accent{--mdc-radio-disabled-selected-icon-color:black;--mdc-radio-disabled-unselected-icon-color:black;--mdc-radio-unselected-hover-icon-color:#212121;--mdc-radio-unselected-focus-icon-color:#212121;--mdc-radio-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-selected-focus-icon-color:#ff4081;--mdc-radio-selected-hover-icon-color:#ff4081;--mdc-radio-selected-icon-color:#ff4081;--mdc-radio-selected-pressed-icon-color:#ff4081;--mat-radio-ripple-color:black;--mat-radio-checked-ripple-color:#ff4081;--mat-radio-disabled-label-color:rgba(0, 0, 0, 0.38);--mat-radio-label-text-color:rgba(0, 0, 0, 0.87)}.mat-mdc-radio-button.mat-warn{--mdc-radio-disabled-selected-icon-color:black;--mdc-radio-disabled-unselected-icon-color:black;--mdc-radio-unselected-hover-icon-color:#212121;--mdc-radio-unselected-focus-icon-color:#212121;--mdc-radio-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-selected-focus-icon-color:#f44336;--mdc-radio-selected-hover-icon-color:#f44336;--mdc-radio-selected-icon-color:#f44336;--mdc-radio-selected-pressed-icon-color:#f44336;--mat-radio-ripple-color:black;--mat-radio-checked-ripple-color:#f44336;--mat-radio-disabled-label-color:rgba(0, 0, 0, 0.38);--mat-radio-label-text-color:rgba(0, 0, 0, 0.87)}html{--mdc-radio-state-layer-size:40px;--mat-radio-touch-target-display:block}html{--mat-radio-label-text-font:Roboto, sans-serif;--mat-radio-label-text-line-height:20px;--mat-radio-label-text-size:14px;--mat-radio-label-text-tracking:0.0178571429em;--mat-radio-label-text-weight:400}html{--mdc-slider-active-track-height:6px;--mdc-slider-active-track-shape:9999px;--mdc-slider-handle-height:20px;--mdc-slider-handle-shape:50%;--mdc-slider-handle-width:20px;--mdc-slider-inactive-track-height:4px;--mdc-slider-inactive-track-shape:9999px;--mdc-slider-with-overlap-handle-outline-width:1px;--mdc-slider-with-tick-marks-active-container-opacity:0.6;--mdc-slider-with-tick-marks-container-shape:50%;--mdc-slider-with-tick-marks-container-size:2px;--mdc-slider-with-tick-marks-inactive-container-opacity:0.6;--mdc-slider-handle-elevation:0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);--mat-slider-value-indicator-width:auto;--mat-slider-value-indicator-height:32px;--mat-slider-value-indicator-caret-display:block;--mat-slider-value-indicator-border-radius:4px;--mat-slider-value-indicator-padding:0 12px;--mat-slider-value-indicator-text-transform:none;--mat-slider-value-indicator-container-transform:translateX(-50%)}html{--mdc-slider-handle-color:#3f51b5;--mdc-slider-focus-handle-color:#3f51b5;--mdc-slider-hover-handle-color:#3f51b5;--mdc-slider-active-track-color:#3f51b5;--mdc-slider-inactive-track-color:#3f51b5;--mdc-slider-with-tick-marks-inactive-container-color:#3f51b5;--mdc-slider-with-tick-marks-active-container-color:white;--mdc-slider-disabled-active-track-color:#000;--mdc-slider-disabled-handle-color:#000;--mdc-slider-disabled-inactive-track-color:#000;--mdc-slider-label-container-color:#000;--mdc-slider-label-label-text-color:#fff;--mdc-slider-with-overlap-handle-outline-color:#fff;--mdc-slider-with-tick-marks-disabled-container-color:#000;--mat-slider-ripple-color:#3f51b5;--mat-slider-hover-state-layer-color:rgba(63, 81, 181, 0.05);--mat-slider-focus-state-layer-color:rgba(63, 81, 181, 0.2);--mat-slider-value-indicator-opacity:0.6}html .mat-accent{--mdc-slider-handle-color:#ff4081;--mdc-slider-focus-handle-color:#ff4081;--mdc-slider-hover-handle-color:#ff4081;--mdc-slider-active-track-color:#ff4081;--mdc-slider-inactive-track-color:#ff4081;--mdc-slider-with-tick-marks-inactive-container-color:#ff4081;--mdc-slider-with-tick-marks-active-container-color:white;--mat-slider-ripple-color:#ff4081;--mat-slider-hover-state-layer-color:rgba(255, 64, 129, 0.05);--mat-slider-focus-state-layer-color:rgba(255, 64, 129, 0.2)}html .mat-warn{--mdc-slider-handle-color:#f44336;--mdc-slider-focus-handle-color:#f44336;--mdc-slider-hover-handle-color:#f44336;--mdc-slider-active-track-color:#f44336;--mdc-slider-inactive-track-color:#f44336;--mdc-slider-with-tick-marks-inactive-container-color:#f44336;--mdc-slider-with-tick-marks-active-container-color:white;--mat-slider-ripple-color:#f44336;--mat-slider-hover-state-layer-color:rgba(244, 67, 54, 0.05);--mat-slider-focus-state-layer-color:rgba(244, 67, 54, 0.2)}html{--mdc-slider-label-label-text-font:Roboto, sans-serif;--mdc-slider-label-label-text-size:14px;--mdc-slider-label-label-text-line-height:22px;--mdc-slider-label-label-text-tracking:0.0071428571em;--mdc-slider-label-label-text-weight:500}html{--mat-menu-container-shape:4px;--mat-menu-divider-bottom-spacing:0;--mat-menu-divider-top-spacing:0;--mat-menu-item-spacing:16px;--mat-menu-item-icon-size:24px;--mat-menu-item-leading-spacing:16px;--mat-menu-item-trailing-spacing:16px;--mat-menu-item-with-icon-leading-spacing:16px;--mat-menu-item-with-icon-trailing-spacing:16px;--mat-menu-base-elevation-level:8}html{--mat-menu-item-label-text-color:rgba(0, 0, 0, 0.87);--mat-menu-item-icon-color:rgba(0, 0, 0, 0.87);--mat-menu-item-hover-state-layer-color:rgba(0, 0, 0, 0.04);--mat-menu-item-focus-state-layer-color:rgba(0, 0, 0, 0.04);--mat-menu-container-color:white;--mat-menu-divider-color:rgba(0, 0, 0, 0.12)}html{--mat-menu-item-label-text-font:Roboto, sans-serif;--mat-menu-item-label-text-size:16px;--mat-menu-item-label-text-tracking:0.03125em;--mat-menu-item-label-text-line-height:24px;--mat-menu-item-label-text-weight:400}html{--mdc-list-list-item-container-shape:0;--mdc-list-list-item-leading-avatar-shape:50%;--mdc-list-list-item-container-color:transparent;--mdc-list-list-item-selected-container-color:transparent;--mdc-list-list-item-leading-avatar-color:transparent;--mdc-list-list-item-leading-icon-size:24px;--mdc-list-list-item-leading-avatar-size:40px;--mdc-list-list-item-trailing-icon-size:24px;--mdc-list-list-item-disabled-state-layer-color:transparent;--mdc-list-list-item-disabled-state-layer-opacity:0;--mdc-list-list-item-disabled-label-text-opacity:0.38;--mdc-list-list-item-disabled-leading-icon-opacity:0.38;--mdc-list-list-item-disabled-trailing-icon-opacity:0.38;--mat-list-active-indicator-color:transparent;--mat-list-active-indicator-shape:4px}html{--mdc-list-list-item-label-text-color:rgba(0, 0, 0, 0.87);--mdc-list-list-item-supporting-text-color:rgba(0, 0, 0, 0.54);--mdc-list-list-item-leading-icon-color:rgba(0, 0, 0, 0.38);--mdc-list-list-item-trailing-supporting-text-color:rgba(0, 0, 0, 0.38);--mdc-list-list-item-trailing-icon-color:rgba(0, 0, 0, 0.38);--mdc-list-list-item-selected-trailing-icon-color:rgba(0, 0, 0, 0.38);--mdc-list-list-item-disabled-label-text-color:black;--mdc-list-list-item-disabled-leading-icon-color:black;--mdc-list-list-item-disabled-trailing-icon-color:black;--mdc-list-list-item-hover-label-text-color:rgba(0, 0, 0, 0.87);--mdc-list-list-item-hover-leading-icon-color:rgba(0, 0, 0, 0.38);--mdc-list-list-item-hover-trailing-icon-color:rgba(0, 0, 0, 0.38);--mdc-list-list-item-focus-label-text-color:rgba(0, 0, 0, 0.87);--mdc-list-list-item-hover-state-layer-color:black;--mdc-list-list-item-hover-state-layer-opacity:0.04;--mdc-list-list-item-focus-state-layer-color:black;--mdc-list-list-item-focus-state-layer-opacity:0.12}.mdc-list-item__start,.mdc-list-item__end{--mdc-radio-disabled-selected-icon-color:black;--mdc-radio-disabled-unselected-icon-color:black;--mdc-radio-unselected-hover-icon-color:#212121;--mdc-radio-unselected-focus-icon-color:#212121;--mdc-radio-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-selected-focus-icon-color:#3f51b5;--mdc-radio-selected-hover-icon-color:#3f51b5;--mdc-radio-selected-icon-color:#3f51b5;--mdc-radio-selected-pressed-icon-color:#3f51b5}.mat-accent .mdc-list-item__start,.mat-accent .mdc-list-item__end{--mdc-radio-disabled-selected-icon-color:black;--mdc-radio-disabled-unselected-icon-color:black;--mdc-radio-unselected-hover-icon-color:#212121;--mdc-radio-unselected-focus-icon-color:#212121;--mdc-radio-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-selected-focus-icon-color:#ff4081;--mdc-radio-selected-hover-icon-color:#ff4081;--mdc-radio-selected-icon-color:#ff4081;--mdc-radio-selected-pressed-icon-color:#ff4081}.mat-warn .mdc-list-item__start,.mat-warn .mdc-list-item__end{--mdc-radio-disabled-selected-icon-color:black;--mdc-radio-disabled-unselected-icon-color:black;--mdc-radio-unselected-hover-icon-color:#212121;--mdc-radio-unselected-focus-icon-color:#212121;--mdc-radio-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-selected-focus-icon-color:#f44336;--mdc-radio-selected-hover-icon-color:#f44336;--mdc-radio-selected-icon-color:#f44336;--mdc-radio-selected-pressed-icon-color:#f44336}.mat-mdc-list-option{--mdc-checkbox-disabled-selected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-disabled-unselected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-selected-checkmark-color:white;--mdc-checkbox-selected-focus-icon-color:#3f51b5;--mdc-checkbox-selected-hover-icon-color:#3f51b5;--mdc-checkbox-selected-icon-color:#3f51b5;--mdc-checkbox-selected-pressed-icon-color:#3f51b5;--mdc-checkbox-unselected-focus-icon-color:#212121;--mdc-checkbox-unselected-hover-icon-color:#212121;--mdc-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-selected-focus-state-layer-color:#3f51b5;--mdc-checkbox-selected-hover-state-layer-color:#3f51b5;--mdc-checkbox-selected-pressed-state-layer-color:#3f51b5;--mdc-checkbox-unselected-focus-state-layer-color:black;--mdc-checkbox-unselected-hover-state-layer-color:black;--mdc-checkbox-unselected-pressed-state-layer-color:black}.mat-mdc-list-option.mat-accent{--mdc-checkbox-disabled-selected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-disabled-unselected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-selected-checkmark-color:white;--mdc-checkbox-selected-focus-icon-color:#ff4081;--mdc-checkbox-selected-hover-icon-color:#ff4081;--mdc-checkbox-selected-icon-color:#ff4081;--mdc-checkbox-selected-pressed-icon-color:#ff4081;--mdc-checkbox-unselected-focus-icon-color:#212121;--mdc-checkbox-unselected-hover-icon-color:#212121;--mdc-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-selected-focus-state-layer-color:#ff4081;--mdc-checkbox-selected-hover-state-layer-color:#ff4081;--mdc-checkbox-selected-pressed-state-layer-color:#ff4081;--mdc-checkbox-unselected-focus-state-layer-color:black;--mdc-checkbox-unselected-hover-state-layer-color:black;--mdc-checkbox-unselected-pressed-state-layer-color:black}.mat-mdc-list-option.mat-warn{--mdc-checkbox-disabled-selected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-disabled-unselected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-selected-checkmark-color:white;--mdc-checkbox-selected-focus-icon-color:#f44336;--mdc-checkbox-selected-hover-icon-color:#f44336;--mdc-checkbox-selected-icon-color:#f44336;--mdc-checkbox-selected-pressed-icon-color:#f44336;--mdc-checkbox-unselected-focus-icon-color:#212121;--mdc-checkbox-unselected-hover-icon-color:#212121;--mdc-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-selected-focus-state-layer-color:#f44336;--mdc-checkbox-selected-hover-state-layer-color:#f44336;--mdc-checkbox-selected-pressed-state-layer-color:#f44336;--mdc-checkbox-unselected-focus-state-layer-color:black;--mdc-checkbox-unselected-hover-state-layer-color:black;--mdc-checkbox-unselected-pressed-state-layer-color:black}.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--selected .mdc-list-item__primary-text,.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--selected .mdc-list-item__start,.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--activated .mdc-list-item__primary-text,.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--activated .mdc-list-item__start{color:#3f51b5}.mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__start,.mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__content,.mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__end{opacity:1}html{--mdc-list-list-item-one-line-container-height:48px;--mdc-list-list-item-two-line-container-height:64px;--mdc-list-list-item-three-line-container-height:88px;--mat-list-list-item-leading-icon-start-space:16px;--mat-list-list-item-leading-icon-end-space:32px}.mdc-list-item__start,.mdc-list-item__end{--mdc-radio-state-layer-size:40px}.mat-mdc-list-item.mdc-list-item--with-leading-avatar.mdc-list-item--with-one-line,.mat-mdc-list-item.mdc-list-item--with-leading-checkbox.mdc-list-item--with-one-line,.mat-mdc-list-item.mdc-list-item--with-leading-icon.mdc-list-item--with-one-line{height:56px}.mat-mdc-list-item.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines,.mat-mdc-list-item.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines,.mat-mdc-list-item.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines{height:72px}html{--mdc-list-list-item-label-text-font:Roboto, sans-serif;--mdc-list-list-item-label-text-line-height:24px;--mdc-list-list-item-label-text-size:16px;--mdc-list-list-item-label-text-tracking:0.03125em;--mdc-list-list-item-label-text-weight:400;--mdc-list-list-item-supporting-text-font:Roboto, sans-serif;--mdc-list-list-item-supporting-text-line-height:20px;--mdc-list-list-item-supporting-text-size:14px;--mdc-list-list-item-supporting-text-tracking:0.0178571429em;--mdc-list-list-item-supporting-text-weight:400;--mdc-list-list-item-trailing-supporting-text-font:Roboto, sans-serif;--mdc-list-list-item-trailing-supporting-text-line-height:20px;--mdc-list-list-item-trailing-supporting-text-size:12px;--mdc-list-list-item-trailing-supporting-text-tracking:0.0333333333em;--mdc-list-list-item-trailing-supporting-text-weight:400}.mdc-list-group__subheader{font:400 16px/28px Roboto, sans-serif;letter-spacing:.009375em}html{--mat-paginator-container-text-color:rgba(0, 0, 0, 0.87);--mat-paginator-container-background-color:white;--mat-paginator-enabled-icon-color:rgba(0, 0, 0, 0.54);--mat-paginator-disabled-icon-color:rgba(0, 0, 0, 0.12)}html{--mat-paginator-container-size:56px;--mat-paginator-form-field-container-height:40px;--mat-paginator-form-field-container-vertical-padding:8px;--mat-paginator-touch-target-display:block}html{--mat-paginator-container-text-font:Roboto, sans-serif;--mat-paginator-container-text-line-height:20px;--mat-paginator-container-text-size:12px;--mat-paginator-container-text-tracking:0.0333333333em;--mat-paginator-container-text-weight:400;--mat-paginator-select-trigger-text-size:12px}html{--mdc-secondary-navigation-tab-container-height:48px;--mdc-tab-indicator-active-indicator-height:2px;--mdc-tab-indicator-active-indicator-shape:0;--mat-tab-header-divider-color:transparent;--mat-tab-header-divider-height:0}.mat-mdc-tab-group,.mat-mdc-tab-nav-bar{--mdc-tab-indicator-active-indicator-color:#3f51b5;--mat-tab-header-disabled-ripple-color:rgba(0, 0, 0, 0.38);--mat-tab-header-pagination-icon-color:black;--mat-tab-header-inactive-label-text-color:rgba(0, 0, 0, 0.6);--mat-tab-header-active-label-text-color:#3f51b5;--mat-tab-header-active-ripple-color:#3f51b5;--mat-tab-header-inactive-ripple-color:#3f51b5;--mat-tab-header-inactive-focus-label-text-color:rgba(0, 0, 0, 0.6);--mat-tab-header-inactive-hover-label-text-color:rgba(0, 0, 0, 0.6);--mat-tab-header-active-focus-label-text-color:#3f51b5;--mat-tab-header-active-hover-label-text-color:#3f51b5;--mat-tab-header-active-focus-indicator-color:#3f51b5;--mat-tab-header-active-hover-indicator-color:#3f51b5}.mat-mdc-tab-group.mat-accent,.mat-mdc-tab-nav-bar.mat-accent{--mdc-tab-indicator-active-indicator-color:#ff4081;--mat-tab-header-disabled-ripple-color:rgba(0, 0, 0, 0.38);--mat-tab-header-pagination-icon-color:black;--mat-tab-header-inactive-label-text-color:rgba(0, 0, 0, 0.6);--mat-tab-header-active-label-text-color:#ff4081;--mat-tab-header-active-ripple-color:#ff4081;--mat-tab-header-inactive-ripple-color:#ff4081;--mat-tab-header-inactive-focus-label-text-color:rgba(0, 0, 0, 0.6);--mat-tab-header-inactive-hover-label-text-color:rgba(0, 0, 0, 0.6);--mat-tab-header-active-focus-label-text-color:#ff4081;--mat-tab-header-active-hover-label-text-color:#ff4081;--mat-tab-header-active-focus-indicator-color:#ff4081;--mat-tab-header-active-hover-indicator-color:#ff4081}.mat-mdc-tab-group.mat-warn,.mat-mdc-tab-nav-bar.mat-warn{--mdc-tab-indicator-active-indicator-color:#f44336;--mat-tab-header-disabled-ripple-color:rgba(0, 0, 0, 0.38);--mat-tab-header-pagination-icon-color:black;--mat-tab-header-inactive-label-text-color:rgba(0, 0, 0, 0.6);--mat-tab-header-active-label-text-color:#f44336;--mat-tab-header-active-ripple-color:#f44336;--mat-tab-header-inactive-ripple-color:#f44336;--mat-tab-header-inactive-focus-label-text-color:rgba(0, 0, 0, 0.6);--mat-tab-header-inactive-hover-label-text-color:rgba(0, 0, 0, 0.6);--mat-tab-header-active-focus-label-text-color:#f44336;--mat-tab-header-active-hover-label-text-color:#f44336;--mat-tab-header-active-focus-indicator-color:#f44336;--mat-tab-header-active-hover-indicator-color:#f44336}.mat-mdc-tab-group.mat-background-primary,.mat-mdc-tab-nav-bar.mat-background-primary{--mat-tab-header-with-background-background-color:#3f51b5;--mat-tab-header-with-background-foreground-color:white}.mat-mdc-tab-group.mat-background-accent,.mat-mdc-tab-nav-bar.mat-background-accent{--mat-tab-header-with-background-background-color:#ff4081;--mat-tab-header-with-background-foreground-color:white}.mat-mdc-tab-group.mat-background-warn,.mat-mdc-tab-nav-bar.mat-background-warn{--mat-tab-header-with-background-background-color:#f44336;--mat-tab-header-with-background-foreground-color:white}.mat-mdc-tab-header{--mdc-secondary-navigation-tab-container-height:48px}.mat-mdc-tab-header{--mat-tab-header-label-text-font:Roboto, sans-serif;--mat-tab-header-label-text-size:14px;--mat-tab-header-label-text-tracking:0.0892857143em;--mat-tab-header-label-text-line-height:36px;--mat-tab-header-label-text-weight:500}html{--mdc-checkbox-disabled-selected-checkmark-color:#fff;--mdc-checkbox-selected-focus-state-layer-opacity:0.16;--mdc-checkbox-selected-hover-state-layer-opacity:0.04;--mdc-checkbox-selected-pressed-state-layer-opacity:0.16;--mdc-checkbox-unselected-focus-state-layer-opacity:0.16;--mdc-checkbox-unselected-hover-state-layer-opacity:0.04;--mdc-checkbox-unselected-pressed-state-layer-opacity:0.16}html{--mdc-checkbox-disabled-selected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-disabled-unselected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-selected-checkmark-color:white;--mdc-checkbox-selected-focus-icon-color:#ff4081;--mdc-checkbox-selected-hover-icon-color:#ff4081;--mdc-checkbox-selected-icon-color:#ff4081;--mdc-checkbox-selected-pressed-icon-color:#ff4081;--mdc-checkbox-unselected-focus-icon-color:#212121;--mdc-checkbox-unselected-hover-icon-color:#212121;--mdc-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-selected-focus-state-layer-color:#ff4081;--mdc-checkbox-selected-hover-state-layer-color:#ff4081;--mdc-checkbox-selected-pressed-state-layer-color:#ff4081;--mdc-checkbox-unselected-focus-state-layer-color:black;--mdc-checkbox-unselected-hover-state-layer-color:black;--mdc-checkbox-unselected-pressed-state-layer-color:black;--mat-checkbox-disabled-label-color:rgba(0, 0, 0, 0.38);--mat-checkbox-label-text-color:rgba(0, 0, 0, 0.87)}.mat-mdc-checkbox.mat-primary{--mdc-checkbox-disabled-selected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-disabled-unselected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-selected-checkmark-color:white;--mdc-checkbox-selected-focus-icon-color:#3f51b5;--mdc-checkbox-selected-hover-icon-color:#3f51b5;--mdc-checkbox-selected-icon-color:#3f51b5;--mdc-checkbox-selected-pressed-icon-color:#3f51b5;--mdc-checkbox-unselected-focus-icon-color:#212121;--mdc-checkbox-unselected-hover-icon-color:#212121;--mdc-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-selected-focus-state-layer-color:#3f51b5;--mdc-checkbox-selected-hover-state-layer-color:#3f51b5;--mdc-checkbox-selected-pressed-state-layer-color:#3f51b5;--mdc-checkbox-unselected-focus-state-layer-color:black;--mdc-checkbox-unselected-hover-state-layer-color:black;--mdc-checkbox-unselected-pressed-state-layer-color:black}.mat-mdc-checkbox.mat-warn{--mdc-checkbox-disabled-selected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-disabled-unselected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-selected-checkmark-color:white;--mdc-checkbox-selected-focus-icon-color:#f44336;--mdc-checkbox-selected-hover-icon-color:#f44336;--mdc-checkbox-selected-icon-color:#f44336;--mdc-checkbox-selected-pressed-icon-color:#f44336;--mdc-checkbox-unselected-focus-icon-color:#212121;--mdc-checkbox-unselected-hover-icon-color:#212121;--mdc-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-selected-focus-state-layer-color:#f44336;--mdc-checkbox-selected-hover-state-layer-color:#f44336;--mdc-checkbox-selected-pressed-state-layer-color:#f44336;--mdc-checkbox-unselected-focus-state-layer-color:black;--mdc-checkbox-unselected-hover-state-layer-color:black;--mdc-checkbox-unselected-pressed-state-layer-color:black}html{--mdc-checkbox-state-layer-size:40px;--mat-checkbox-touch-target-display:block}html{--mat-checkbox-label-text-font:Roboto, sans-serif;--mat-checkbox-label-text-line-height:20px;--mat-checkbox-label-text-size:14px;--mat-checkbox-label-text-tracking:0.0178571429em;--mat-checkbox-label-text-weight:400}html{--mdc-text-button-container-shape:4px;--mdc-text-button-keep-touch-target:false;--mdc-filled-button-container-shape:4px;--mdc-filled-button-keep-touch-target:false;--mdc-protected-button-container-shape:4px;--mdc-protected-button-container-elevation-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);--mdc-protected-button-disabled-container-elevation-shadow:0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);--mdc-protected-button-focus-container-elevation-shadow:0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);--mdc-protected-button-hover-container-elevation-shadow:0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);--mdc-protected-button-pressed-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);--mdc-outlined-button-keep-touch-target:false;--mdc-outlined-button-outline-width:1px;--mdc-outlined-button-container-shape:4px;--mat-text-button-horizontal-padding:8px;--mat-text-button-with-icon-horizontal-padding:8px;--mat-text-button-icon-spacing:8px;--mat-text-button-icon-offset:0;--mat-filled-button-horizontal-padding:16px;--mat-filled-button-icon-spacing:8px;--mat-filled-button-icon-offset:-4px;--mat-protected-button-horizontal-padding:16px;--mat-protected-button-icon-spacing:8px;--mat-protected-button-icon-offset:-4px;--mat-outlined-button-horizontal-padding:15px;--mat-outlined-button-icon-spacing:8px;--mat-outlined-button-icon-offset:-4px}html{--mdc-text-button-label-text-color:black;--mdc-text-button-disabled-label-text-color:rgba(0, 0, 0, 0.38);--mat-text-button-state-layer-color:black;--mat-text-button-disabled-state-layer-color:black;--mat-text-button-ripple-color:rgba(0, 0, 0, 0.1);--mat-text-button-hover-state-layer-opacity:0.04;--mat-text-button-focus-state-layer-opacity:0.12;--mat-text-button-pressed-state-layer-opacity:0.12;--mdc-filled-button-container-color:white;--mdc-filled-button-label-text-color:black;--mdc-filled-button-disabled-container-color:rgba(0, 0, 0, 0.12);--mdc-filled-button-disabled-label-text-color:rgba(0, 0, 0, 0.38);--mat-filled-button-state-layer-color:black;--mat-filled-button-disabled-state-layer-color:black;--mat-filled-button-ripple-color:rgba(0, 0, 0, 0.1);--mat-filled-button-hover-state-layer-opacity:0.04;--mat-filled-button-focus-state-layer-opacity:0.12;--mat-filled-button-pressed-state-layer-opacity:0.12;--mdc-protected-button-container-color:white;--mdc-protected-button-label-text-color:black;--mdc-protected-button-disabled-container-color:rgba(0, 0, 0, 0.12);--mdc-protected-button-disabled-label-text-color:rgba(0, 0, 0, 0.38);--mat-protected-button-state-layer-color:black;--mat-protected-button-disabled-state-layer-color:black;--mat-protected-button-ripple-color:rgba(0, 0, 0, 0.1);--mat-protected-button-hover-state-layer-opacity:0.04;--mat-protected-button-focus-state-layer-opacity:0.12;--mat-protected-button-pressed-state-layer-opacity:0.12;--mdc-outlined-button-disabled-outline-color:rgba(0, 0, 0, 0.12);--mdc-outlined-button-disabled-label-text-color:rgba(0, 0, 0, 0.38);--mdc-outlined-button-label-text-color:black;--mdc-outlined-button-outline-color:rgba(0, 0, 0, 0.12);--mat-outlined-button-state-layer-color:black;--mat-outlined-button-disabled-state-layer-color:black;--mat-outlined-button-ripple-color:rgba(0, 0, 0, 0.1);--mat-outlined-button-hover-state-layer-opacity:0.04;--mat-outlined-button-focus-state-layer-opacity:0.12;--mat-outlined-button-pressed-state-layer-opacity:0.12}.mat-mdc-button.mat-primary{--mdc-text-button-label-text-color:#3f51b5;--mat-text-button-state-layer-color:#3f51b5;--mat-text-button-ripple-color:rgba(63, 81, 181, 0.1)}.mat-mdc-button.mat-accent{--mdc-text-button-label-text-color:#ff4081;--mat-text-button-state-layer-color:#ff4081;--mat-text-button-ripple-color:rgba(255, 64, 129, 0.1)}.mat-mdc-button.mat-warn{--mdc-text-button-label-text-color:#f44336;--mat-text-button-state-layer-color:#f44336;--mat-text-button-ripple-color:rgba(244, 67, 54, 0.1)}.mat-mdc-unelevated-button.mat-primary{--mdc-filled-button-container-color:#3f51b5;--mdc-filled-button-label-text-color:white;--mat-filled-button-state-layer-color:white;--mat-filled-button-ripple-color:rgba(255, 255, 255, 0.1)}.mat-mdc-unelevated-button.mat-accent{--mdc-filled-button-container-color:#ff4081;--mdc-filled-button-label-text-color:white;--mat-filled-button-state-layer-color:white;--mat-filled-button-ripple-color:rgba(255, 255, 255, 0.1)}.mat-mdc-unelevated-button.mat-warn{--mdc-filled-button-container-color:#f44336;--mdc-filled-button-label-text-color:white;--mat-filled-button-state-layer-color:white;--mat-filled-button-ripple-color:rgba(255, 255, 255, 0.1)}.mat-mdc-raised-button.mat-primary{--mdc-protected-button-container-color:#3f51b5;--mdc-protected-button-label-text-color:white;--mat-protected-button-state-layer-color:white;--mat-protected-button-ripple-color:rgba(255, 255, 255, 0.1)}.mat-mdc-raised-button.mat-accent{--mdc-protected-button-container-color:#ff4081;--mdc-protected-button-label-text-color:white;--mat-protected-button-state-layer-color:white;--mat-protected-button-ripple-color:rgba(255, 255, 255, 0.1)}.mat-mdc-raised-button.mat-warn{--mdc-protected-button-container-color:#f44336;--mdc-protected-button-label-text-color:white;--mat-protected-button-state-layer-color:white;--mat-protected-button-ripple-color:rgba(255, 255, 255, 0.1)}.mat-mdc-outlined-button.mat-primary{--mdc-outlined-button-label-text-color:#3f51b5;--mdc-outlined-button-outline-color:rgba(0, 0, 0, 0.12);--mat-outlined-button-state-layer-color:#3f51b5;--mat-outlined-button-ripple-color:rgba(63, 81, 181, 0.1)}.mat-mdc-outlined-button.mat-accent{--mdc-outlined-button-label-text-color:#ff4081;--mdc-outlined-button-outline-color:rgba(0, 0, 0, 0.12);--mat-outlined-button-state-layer-color:#ff4081;--mat-outlined-button-ripple-color:rgba(255, 64, 129, 0.1)}.mat-mdc-outlined-button.mat-warn{--mdc-outlined-button-label-text-color:#f44336;--mdc-outlined-button-outline-color:rgba(0, 0, 0, 0.12);--mat-outlined-button-state-layer-color:#f44336;--mat-outlined-button-ripple-color:rgba(244, 67, 54, 0.1)}html{--mdc-text-button-container-height:36px;--mdc-filled-button-container-height:36px;--mdc-protected-button-container-height:36px;--mdc-outlined-button-container-height:36px;--mat-text-button-touch-target-display:block;--mat-filled-button-touch-target-display:block;--mat-protected-button-touch-target-display:block;--mat-outlined-button-touch-target-display:block}html{--mdc-text-button-label-text-font:Roboto, sans-serif;--mdc-text-button-label-text-size:14px;--mdc-text-button-label-text-tracking:0.0892857143em;--mdc-text-button-label-text-weight:500;--mdc-text-button-label-text-transform:none;--mdc-filled-button-label-text-font:Roboto, sans-serif;--mdc-filled-button-label-text-size:14px;--mdc-filled-button-label-text-tracking:0.0892857143em;--mdc-filled-button-label-text-weight:500;--mdc-filled-button-label-text-transform:none;--mdc-protected-button-label-text-font:Roboto, sans-serif;--mdc-protected-button-label-text-size:14px;--mdc-protected-button-label-text-tracking:0.0892857143em;--mdc-protected-button-label-text-weight:500;--mdc-protected-button-label-text-transform:none;--mdc-outlined-button-label-text-font:Roboto, sans-serif;--mdc-outlined-button-label-text-size:14px;--mdc-outlined-button-label-text-tracking:0.0892857143em;--mdc-outlined-button-label-text-weight:500;--mdc-outlined-button-label-text-transform:none}html{--mdc-icon-button-icon-size:24px}html{--mdc-icon-button-icon-color:inherit;--mdc-icon-button-disabled-icon-color:rgba(0, 0, 0, 0.38);--mat-icon-button-state-layer-color:black;--mat-icon-button-disabled-state-layer-color:black;--mat-icon-button-ripple-color:rgba(0, 0, 0, 0.1);--mat-icon-button-hover-state-layer-opacity:0.04;--mat-icon-button-focus-state-layer-opacity:0.12;--mat-icon-button-pressed-state-layer-opacity:0.12}html .mat-mdc-icon-button.mat-primary{--mdc-icon-button-icon-color:#3f51b5;--mat-icon-button-state-layer-color:#3f51b5;--mat-icon-button-ripple-color:rgba(63, 81, 181, 0.1)}html .mat-mdc-icon-button.mat-accent{--mdc-icon-button-icon-color:#ff4081;--mat-icon-button-state-layer-color:#ff4081;--mat-icon-button-ripple-color:rgba(255, 64, 129, 0.1)}html .mat-mdc-icon-button.mat-warn{--mdc-icon-button-icon-color:#f44336;--mat-icon-button-state-layer-color:#f44336;--mat-icon-button-ripple-color:rgba(244, 67, 54, 0.1)}html{--mat-icon-button-touch-target-display:block}.mat-mdc-icon-button.mat-mdc-button-base{--mdc-icon-button-state-layer-size: 48px;width:var(--mdc-icon-button-state-layer-size);height:var(--mdc-icon-button-state-layer-size);padding:12px}html{--mdc-fab-container-shape:50%;--mdc-fab-container-elevation-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);--mdc-fab-focus-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);--mdc-fab-hover-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);--mdc-fab-pressed-container-elevation-shadow:0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);--mdc-fab-small-container-shape:50%;--mdc-fab-small-container-elevation-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);--mdc-fab-small-focus-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);--mdc-fab-small-hover-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);--mdc-fab-small-pressed-container-elevation-shadow:0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);--mdc-extended-fab-container-height:48px;--mdc-extended-fab-container-shape:24px;--mdc-extended-fab-container-elevation-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);--mdc-extended-fab-focus-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);--mdc-extended-fab-hover-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);--mdc-extended-fab-pressed-container-elevation-shadow:0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12)}html{--mdc-fab-container-color:white;--mat-fab-foreground-color:black;--mat-fab-state-layer-color:black;--mat-fab-disabled-state-layer-color:black;--mat-fab-ripple-color:rgba(0, 0, 0, 0.1);--mat-fab-hover-state-layer-opacity:0.04;--mat-fab-focus-state-layer-opacity:0.12;--mat-fab-pressed-state-layer-opacity:0.12;--mat-fab-disabled-state-container-color:rgba(0, 0, 0, 0.12);--mat-fab-disabled-state-foreground-color:rgba(0, 0, 0, 0.38);--mdc-fab-small-container-color:white;--mat-fab-small-foreground-color:black;--mat-fab-small-state-layer-color:black;--mat-fab-small-disabled-state-layer-color:black;--mat-fab-small-ripple-color:rgba(0, 0, 0, 0.1);--mat-fab-small-hover-state-layer-opacity:0.04;--mat-fab-small-focus-state-layer-opacity:0.12;--mat-fab-small-pressed-state-layer-opacity:0.12;--mat-fab-small-disabled-state-container-color:rgba(0, 0, 0, 0.12);--mat-fab-small-disabled-state-foreground-color:rgba(0, 0, 0, 0.38)}html .mat-mdc-fab.mat-primary{--mdc-fab-container-color:#3f51b5;--mat-fab-foreground-color:white;--mat-fab-state-layer-color:white;--mat-fab-ripple-color:rgba(255, 255, 255, 0.1)}html .mat-mdc-fab.mat-accent{--mdc-fab-container-color:#ff4081;--mat-fab-foreground-color:white;--mat-fab-state-layer-color:white;--mat-fab-ripple-color:rgba(255, 255, 255, 0.1)}html .mat-mdc-fab.mat-warn{--mdc-fab-container-color:#f44336;--mat-fab-foreground-color:white;--mat-fab-state-layer-color:white;--mat-fab-ripple-color:rgba(255, 255, 255, 0.1)}html .mat-mdc-mini-fab.mat-primary{--mdc-fab-small-container-color:#3f51b5;--mat-fab-small-foreground-color:white;--mat-fab-small-state-layer-color:white;--mat-fab-small-ripple-color:rgba(255, 255, 255, 0.1)}html .mat-mdc-mini-fab.mat-accent{--mdc-fab-small-container-color:#ff4081;--mat-fab-small-foreground-color:white;--mat-fab-small-state-layer-color:white;--mat-fab-small-ripple-color:rgba(255, 255, 255, 0.1)}html .mat-mdc-mini-fab.mat-warn{--mdc-fab-small-container-color:#f44336;--mat-fab-small-foreground-color:white;--mat-fab-small-state-layer-color:white;--mat-fab-small-ripple-color:rgba(255, 255, 255, 0.1)}html{--mat-fab-touch-target-display:block;--mat-fab-small-touch-target-display:block}html{--mdc-extended-fab-label-text-font:Roboto, sans-serif;--mdc-extended-fab-label-text-size:14px;--mdc-extended-fab-label-text-tracking:0.0892857143em;--mdc-extended-fab-label-text-weight:500}html{--mdc-snackbar-container-shape:4px}html{--mdc-snackbar-container-color:#333333;--mdc-snackbar-supporting-text-color:rgba(255, 255, 255, 0.87);--mat-snack-bar-button-color:#ff4081}html{--mdc-snackbar-supporting-text-font:Roboto, sans-serif;--mdc-snackbar-supporting-text-line-height:20px;--mdc-snackbar-supporting-text-size:14px;--mdc-snackbar-supporting-text-weight:400}html{--mat-table-row-item-outline-width:1px}html{--mat-table-background-color:white;--mat-table-header-headline-color:rgba(0, 0, 0, 0.87);--mat-table-row-item-label-text-color:rgba(0, 0, 0, 0.87);--mat-table-row-item-outline-color:rgba(0, 0, 0, 0.12)}html{--mat-table-header-container-height:56px;--mat-table-footer-container-height:52px;--mat-table-row-item-container-height:52px}html{--mat-table-header-headline-font:Roboto, sans-serif;--mat-table-header-headline-line-height:22px;--mat-table-header-headline-size:14px;--mat-table-header-headline-weight:500;--mat-table-header-headline-tracking:0.0071428571em;--mat-table-row-item-label-text-font:Roboto, sans-serif;--mat-table-row-item-label-text-line-height:20px;--mat-table-row-item-label-text-size:14px;--mat-table-row-item-label-text-weight:400;--mat-table-row-item-label-text-tracking:0.0178571429em;--mat-table-footer-supporting-text-font:Roboto, sans-serif;--mat-table-footer-supporting-text-line-height:20px;--mat-table-footer-supporting-text-size:14px;--mat-table-footer-supporting-text-weight:400;--mat-table-footer-supporting-text-tracking:0.0178571429em}html{--mdc-circular-progress-active-indicator-width:4px;--mdc-circular-progress-size:48px}html{--mdc-circular-progress-active-indicator-color:#3f51b5}html .mat-accent{--mdc-circular-progress-active-indicator-color:#ff4081}html .mat-warn{--mdc-circular-progress-active-indicator-color:#f44336}html{--mat-badge-container-shape:50%;--mat-badge-container-size:unset;--mat-badge-small-size-container-size:unset;--mat-badge-large-size-container-size:unset;--mat-badge-legacy-container-size:22px;--mat-badge-legacy-small-size-container-size:16px;--mat-badge-legacy-large-size-container-size:28px;--mat-badge-container-offset:-11px 0;--mat-badge-small-size-container-offset:-8px 0;--mat-badge-large-size-container-offset:-14px 0;--mat-badge-container-overlap-offset:-11px;--mat-badge-small-size-container-overlap-offset:-8px;--mat-badge-large-size-container-overlap-offset:-14px;--mat-badge-container-padding:0;--mat-badge-small-size-container-padding:0;--mat-badge-large-size-container-padding:0}html{--mat-badge-background-color:#3f51b5;--mat-badge-text-color:white;--mat-badge-disabled-state-background-color:#b9b9b9;--mat-badge-disabled-state-text-color:rgba(0, 0, 0, 0.38)}.mat-badge-accent{--mat-badge-background-color:#ff4081;--mat-badge-text-color:white}.mat-badge-warn{--mat-badge-background-color:#f44336;--mat-badge-text-color:white}html{--mat-badge-text-font:Roboto, sans-serif;--mat-badge-line-height:22px;--mat-badge-text-size:12px;--mat-badge-text-weight:600;--mat-badge-small-size-text-size:9px;--mat-badge-small-size-line-height:16px;--mat-badge-large-size-text-size:24px;--mat-badge-large-size-line-height:28px}html{--mat-bottom-sheet-container-shape:4px}html{--mat-bottom-sheet-container-text-color:rgba(0, 0, 0, 0.87);--mat-bottom-sheet-container-background-color:white}html{--mat-bottom-sheet-container-text-font:Roboto, sans-serif;--mat-bottom-sheet-container-text-line-height:20px;--mat-bottom-sheet-container-text-size:14px;--mat-bottom-sheet-container-text-tracking:0.0178571429em;--mat-bottom-sheet-container-text-weight:400}html{--mat-legacy-button-toggle-height:36px;--mat-legacy-button-toggle-shape:2px;--mat-legacy-button-toggle-focus-state-layer-opacity:1;--mat-standard-button-toggle-shape:4px;--mat-standard-button-toggle-hover-state-layer-opacity:0.04;--mat-standard-button-toggle-focus-state-layer-opacity:0.12}html{--mat-legacy-button-toggle-text-color:rgba(0, 0, 0, 0.38);--mat-legacy-button-toggle-state-layer-color:rgba(0, 0, 0, 0.12);--mat-legacy-button-toggle-selected-state-text-color:rgba(0, 0, 0, 0.54);--mat-legacy-button-toggle-selected-state-background-color:#e0e0e0;--mat-legacy-button-toggle-disabled-state-text-color:rgba(0, 0, 0, 0.26);--mat-legacy-button-toggle-disabled-state-background-color:#eeeeee;--mat-legacy-button-toggle-disabled-selected-state-background-color:#bdbdbd;--mat-standard-button-toggle-text-color:rgba(0, 0, 0, 0.87);--mat-standard-button-toggle-background-color:white;--mat-standard-button-toggle-state-layer-color:black;--mat-standard-button-toggle-selected-state-background-color:#e0e0e0;--mat-standard-button-toggle-selected-state-text-color:rgba(0, 0, 0, 0.87);--mat-standard-button-toggle-disabled-state-text-color:rgba(0, 0, 0, 0.26);--mat-standard-button-toggle-disabled-state-background-color:white;--mat-standard-button-toggle-disabled-selected-state-text-color:rgba(0, 0, 0, 0.87);--mat-standard-button-toggle-disabled-selected-state-background-color:#bdbdbd;--mat-standard-button-toggle-divider-color:#e0e0e0}html{--mat-standard-button-toggle-height:48px}html{--mat-legacy-button-toggle-label-text-font:Roboto, sans-serif;--mat-legacy-button-toggle-label-text-line-height:24px;--mat-legacy-button-toggle-label-text-size:16px;--mat-legacy-button-toggle-label-text-tracking:0.03125em;--mat-legacy-button-toggle-label-text-weight:400;--mat-standard-button-toggle-label-text-font:Roboto, sans-serif;--mat-standard-button-toggle-label-text-line-height:24px;--mat-standard-button-toggle-label-text-size:16px;--mat-standard-button-toggle-label-text-tracking:0.03125em;--mat-standard-button-toggle-label-text-weight:400}html{--mat-datepicker-calendar-container-shape:4px;--mat-datepicker-calendar-container-touch-shape:4px;--mat-datepicker-calendar-container-elevation-shadow:0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);--mat-datepicker-calendar-container-touch-elevation-shadow:0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12)}html{--mat-datepicker-calendar-date-selected-state-text-color:white;--mat-datepicker-calendar-date-selected-state-background-color:#3f51b5;--mat-datepicker-calendar-date-selected-disabled-state-background-color:rgba(63, 81, 181, 0.4);--mat-datepicker-calendar-date-today-selected-state-outline-color:white;--mat-datepicker-calendar-date-focus-state-background-color:rgba(63, 81, 181, 0.3);--mat-datepicker-calendar-date-hover-state-background-color:rgba(63, 81, 181, 0.3);--mat-datepicker-toggle-active-state-icon-color:#3f51b5;--mat-datepicker-calendar-date-in-range-state-background-color:rgba(63, 81, 181, 0.2);--mat-datepicker-calendar-date-in-comparison-range-state-background-color:rgba(249, 171, 0, 0.2);--mat-datepicker-calendar-date-in-overlap-range-state-background-color:#a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color:#46a35e;--mat-datepicker-toggle-icon-color:rgba(0, 0, 0, 0.54);--mat-datepicker-calendar-body-label-text-color:rgba(0, 0, 0, 0.54);--mat-datepicker-calendar-period-button-text-color:black;--mat-datepicker-calendar-period-button-icon-color:rgba(0, 0, 0, 0.54);--mat-datepicker-calendar-navigation-button-icon-color:rgba(0, 0, 0, 0.54);--mat-datepicker-calendar-header-divider-color:rgba(0, 0, 0, 0.12);--mat-datepicker-calendar-header-text-color:rgba(0, 0, 0, 0.54);--mat-datepicker-calendar-date-today-outline-color:rgba(0, 0, 0, 0.38);--mat-datepicker-calendar-date-today-disabled-state-outline-color:rgba(0, 0, 0, 0.18);--mat-datepicker-calendar-date-text-color:rgba(0, 0, 0, 0.87);--mat-datepicker-calendar-date-outline-color:transparent;--mat-datepicker-calendar-date-disabled-state-text-color:rgba(0, 0, 0, 0.38);--mat-datepicker-calendar-date-preview-state-outline-color:rgba(0, 0, 0, 0.24);--mat-datepicker-range-input-separator-color:rgba(0, 0, 0, 0.87);--mat-datepicker-range-input-disabled-state-separator-color:rgba(0, 0, 0, 0.38);--mat-datepicker-range-input-disabled-state-text-color:rgba(0, 0, 0, 0.38);--mat-datepicker-calendar-container-background-color:white;--mat-datepicker-calendar-container-text-color:rgba(0, 0, 0, 0.87)}.mat-datepicker-content.mat-accent{--mat-datepicker-calendar-date-selected-state-text-color:white;--mat-datepicker-calendar-date-selected-state-background-color:#ff4081;--mat-datepicker-calendar-date-selected-disabled-state-background-color:rgba(255, 64, 129, 0.4);--mat-datepicker-calendar-date-today-selected-state-outline-color:white;--mat-datepicker-calendar-date-focus-state-background-color:rgba(255, 64, 129, 0.3);--mat-datepicker-calendar-date-hover-state-background-color:rgba(255, 64, 129, 0.3);--mat-datepicker-calendar-date-in-range-state-background-color:rgba(255, 64, 129, 0.2);--mat-datepicker-calendar-date-in-comparison-range-state-background-color:rgba(249, 171, 0, 0.2);--mat-datepicker-calendar-date-in-overlap-range-state-background-color:#a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color:#46a35e}.mat-datepicker-content.mat-warn{--mat-datepicker-calendar-date-selected-state-text-color:white;--mat-datepicker-calendar-date-selected-state-background-color:#f44336;--mat-datepicker-calendar-date-selected-disabled-state-background-color:rgba(244, 67, 54, 0.4);--mat-datepicker-calendar-date-today-selected-state-outline-color:white;--mat-datepicker-calendar-date-focus-state-background-color:rgba(244, 67, 54, 0.3);--mat-datepicker-calendar-date-hover-state-background-color:rgba(244, 67, 54, 0.3);--mat-datepicker-calendar-date-in-range-state-background-color:rgba(244, 67, 54, 0.2);--mat-datepicker-calendar-date-in-comparison-range-state-background-color:rgba(249, 171, 0, 0.2);--mat-datepicker-calendar-date-in-overlap-range-state-background-color:#a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color:#46a35e}.mat-datepicker-toggle-active.mat-accent{--mat-datepicker-toggle-active-state-icon-color:#ff4081}.mat-datepicker-toggle-active.mat-warn{--mat-datepicker-toggle-active-state-icon-color:#f44336}.mat-calendar-controls{--mat-icon-button-touch-target-display:none}.mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base{--mdc-icon-button-state-layer-size: 40px;width:var(--mdc-icon-button-state-layer-size);height:var(--mdc-icon-button-state-layer-size);padding:8px}html{--mat-datepicker-calendar-text-font:Roboto, sans-serif;--mat-datepicker-calendar-text-size:13px;--mat-datepicker-calendar-body-label-text-size:14px;--mat-datepicker-calendar-body-label-text-weight:500;--mat-datepicker-calendar-period-button-text-size:14px;--mat-datepicker-calendar-period-button-text-weight:500;--mat-datepicker-calendar-header-text-size:11px;--mat-datepicker-calendar-header-text-weight:400}html{--mat-divider-width:1px}html{--mat-divider-color:rgba(0, 0, 0, 0.12)}html{--mat-expansion-container-shape:4px;--mat-expansion-legacy-header-indicator-display:inline-block;--mat-expansion-header-indicator-display:none}html{--mat-expansion-container-background-color:white;--mat-expansion-container-text-color:rgba(0, 0, 0, 0.87);--mat-expansion-actions-divider-color:rgba(0, 0, 0, 0.12);--mat-expansion-header-hover-state-layer-color:rgba(0, 0, 0, 0.04);--mat-expansion-header-focus-state-layer-color:rgba(0, 0, 0, 0.04);--mat-expansion-header-disabled-state-text-color:rgba(0, 0, 0, 0.26);--mat-expansion-header-text-color:rgba(0, 0, 0, 0.87);--mat-expansion-header-description-color:rgba(0, 0, 0, 0.54);--mat-expansion-header-indicator-color:rgba(0, 0, 0, 0.54)}html{--mat-expansion-header-collapsed-state-height:48px;--mat-expansion-header-expanded-state-height:64px}html{--mat-expansion-header-text-font:Roboto, sans-serif;--mat-expansion-header-text-size:14px;--mat-expansion-header-text-weight:500;--mat-expansion-header-text-line-height:inherit;--mat-expansion-header-text-tracking:inherit;--mat-expansion-container-text-font:Roboto, sans-serif;--mat-expansion-container-text-line-height:20px;--mat-expansion-container-text-size:14px;--mat-expansion-container-text-tracking:0.0178571429em;--mat-expansion-container-text-weight:400}html{--mat-grid-list-tile-header-primary-text-size:14px;--mat-grid-list-tile-header-secondary-text-size:12px;--mat-grid-list-tile-footer-primary-text-size:14px;--mat-grid-list-tile-footer-secondary-text-size:12px}html{--mat-icon-color:inherit}.mat-icon.mat-primary{--mat-icon-color:#3f51b5}.mat-icon.mat-accent{--mat-icon-color:#ff4081}.mat-icon.mat-warn{--mat-icon-color:#f44336}html{--mat-sidenav-container-shape:0;--mat-sidenav-container-elevation-shadow:0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);--mat-sidenav-container-width:auto}html{--mat-sidenav-container-divider-color:rgba(0, 0, 0, 0.12);--mat-sidenav-container-background-color:white;--mat-sidenav-container-text-color:rgba(0, 0, 0, 0.87);--mat-sidenav-content-background-color:#fafafa;--mat-sidenav-content-text-color:rgba(0, 0, 0, 0.87);--mat-sidenav-scrim-color:rgba(0, 0, 0, 0.6)}html{--mat-stepper-header-icon-foreground-color:white;--mat-stepper-header-selected-state-icon-background-color:#3f51b5;--mat-stepper-header-selected-state-icon-foreground-color:white;--mat-stepper-header-done-state-icon-background-color:#3f51b5;--mat-stepper-header-done-state-icon-foreground-color:white;--mat-stepper-header-edit-state-icon-background-color:#3f51b5;--mat-stepper-header-edit-state-icon-foreground-color:white;--mat-stepper-container-color:white;--mat-stepper-line-color:rgba(0, 0, 0, 0.12);--mat-stepper-header-hover-state-layer-color:rgba(0, 0, 0, 0.04);--mat-stepper-header-focus-state-layer-color:rgba(0, 0, 0, 0.04);--mat-stepper-header-label-text-color:rgba(0, 0, 0, 0.54);--mat-stepper-header-optional-label-text-color:rgba(0, 0, 0, 0.54);--mat-stepper-header-selected-state-label-text-color:rgba(0, 0, 0, 0.87);--mat-stepper-header-error-state-label-text-color:#f44336;--mat-stepper-header-icon-background-color:rgba(0, 0, 0, 0.54);--mat-stepper-header-error-state-icon-foreground-color:#f44336;--mat-stepper-header-error-state-icon-background-color:transparent}html .mat-step-header.mat-accent{--mat-stepper-header-icon-foreground-color:white;--mat-stepper-header-selected-state-icon-background-color:#ff4081;--mat-stepper-header-selected-state-icon-foreground-color:white;--mat-stepper-header-done-state-icon-background-color:#ff4081;--mat-stepper-header-done-state-icon-foreground-color:white;--mat-stepper-header-edit-state-icon-background-color:#ff4081;--mat-stepper-header-edit-state-icon-foreground-color:white}html .mat-step-header.mat-warn{--mat-stepper-header-icon-foreground-color:white;--mat-stepper-header-selected-state-icon-background-color:#f44336;--mat-stepper-header-selected-state-icon-foreground-color:white;--mat-stepper-header-done-state-icon-background-color:#f44336;--mat-stepper-header-done-state-icon-foreground-color:white;--mat-stepper-header-edit-state-icon-background-color:#f44336;--mat-stepper-header-edit-state-icon-foreground-color:white}html{--mat-stepper-header-height:72px}html{--mat-stepper-container-text-font:Roboto, sans-serif;--mat-stepper-header-label-text-font:Roboto, sans-serif;--mat-stepper-header-label-text-size:14px;--mat-stepper-header-label-text-weight:400;--mat-stepper-header-error-state-label-text-size:16px;--mat-stepper-header-selected-state-label-text-size:16px;--mat-stepper-header-selected-state-label-text-weight:400}html{--mat-sort-arrow-color:#757575}html{--mat-toolbar-container-background-color:whitesmoke;--mat-toolbar-container-text-color:rgba(0, 0, 0, 0.87)}.mat-toolbar.mat-primary{--mat-toolbar-container-background-color:#3f51b5;--mat-toolbar-container-text-color:white}.mat-toolbar.mat-accent{--mat-toolbar-container-background-color:#ff4081;--mat-toolbar-container-text-color:white}.mat-toolbar.mat-warn{--mat-toolbar-container-background-color:#f44336;--mat-toolbar-container-text-color:white}html{--mat-toolbar-standard-height:64px;--mat-toolbar-mobile-height:56px}html{--mat-toolbar-title-text-font:Roboto, sans-serif;--mat-toolbar-title-text-line-height:32px;--mat-toolbar-title-text-size:20px;--mat-toolbar-title-text-tracking:0.0125em;--mat-toolbar-title-text-weight:500}html{--mat-tree-container-background-color:white;--mat-tree-node-text-color:rgba(0, 0, 0, 0.87)}html{--mat-tree-node-min-height:48px}html{--mat-tree-node-text-font:Roboto, sans-serif;--mat-tree-node-text-size:14px;--mat-tree-node-text-weight:400}.mat-h1,.mat-headline-5,.mat-typography .mat-h1,.mat-typography .mat-headline-5,.mat-typography h1{font:400 24px/32px Roboto, sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2,.mat-headline-6,.mat-typography .mat-h2,.mat-typography .mat-headline-6,.mat-typography h2{font:500 20px/32px Roboto, sans-serif;letter-spacing:.0125em;margin:0 0 16px}.mat-h3,.mat-subtitle-1,.mat-typography .mat-h3,.mat-typography .mat-subtitle-1,.mat-typography h3{font:400 16px/28px Roboto, sans-serif;letter-spacing:.009375em;margin:0 0 16px}.mat-h4,.mat-body-1,.mat-typography .mat-h4,.mat-typography .mat-body-1,.mat-typography h4{font:400 16px/24px Roboto, sans-serif;letter-spacing:.03125em;margin:0 0 16px}.mat-h5,.mat-typography .mat-h5,.mat-typography h5{font:400 calc(14px*.83)/20px Roboto, sans-serif;margin:0 0 12px}.mat-h6,.mat-typography .mat-h6,.mat-typography h6{font:400 calc(14px*.67)/20px Roboto, sans-serif;margin:0 0 12px}.mat-body-strong,.mat-subtitle-2,.mat-typography .mat-body-strong,.mat-typography .mat-subtitle-2{font:500 14px/22px Roboto, sans-serif;letter-spacing:.0071428571em}.mat-body,.mat-body-2,.mat-typography .mat-body,.mat-typography .mat-body-2,.mat-typography{font:400 14px/20px Roboto, sans-serif;letter-spacing:.0178571429em}.mat-body p,.mat-body-2 p,.mat-typography .mat-body p,.mat-typography .mat-body-2 p,.mat-typography p{margin:0 0 12px}.mat-small,.mat-caption,.mat-typography .mat-small,.mat-typography .mat-caption{font:400 12px/20px Roboto, sans-serif;letter-spacing:.0333333333em}.mat-headline-1,.mat-typography .mat-headline-1{font:300 96px/96px Roboto, sans-serif;letter-spacing:-0.015625em;margin:0 0 56px}.mat-headline-2,.mat-typography .mat-headline-2{font:300 60px/60px Roboto, sans-serif;letter-spacing:-.0083333333em;margin:0 0 64px}.mat-headline-3,.mat-typography .mat-headline-3{font:400 48px/50px Roboto, sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-headline-4,.mat-typography .mat-headline-4{font:400 34px/40px Roboto, sans-serif;letter-spacing:.0073529412em;margin:0 0 64px} -/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[2]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[6].rules[1].use[0]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].rules[1].use[1]!./src/styles.scss?ngGlobalStyle ***! - \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -@font-face { - font-family: "LatinxText"; - src: url('LatinxText-Regular.otf') format("opentype"); -} -@font-face { - font-family: "LatinxText-Bold"; - src: url('LatinxText-Bold.otf') format("opentype"); -} -* { - font-family: "LatinxText"; -} - -html, body { - height: 100%; -} - -body { - margin: 0; - font-family: Roboto, "Helvetica Neue", sans-serif; -} - -.primaryBtn { - color: white !important; - background-color: #221E1E !important; -} - -.okBtn:not(:disabled) { - color: white !important; - background-color: #3DB0E4 !important; -} - -#sorteoContainer { - height: -webkit-fill-available; - background-color: white; - display: flex; - align-items: center; - flex-direction: column; - width: inherit; -} -#sorteoContainer .finDeSorteo { - text-align: center; - color: #221E1E !important; -} -#sorteoContainer .finDeSorteo h1 { - font-size: 59px; - margin-bottom: 25px; -} -#sorteoContainer .finDeSorteo h2 { - font-size: 39px; - margin-bottom: 10px; -} -#sorteoContainer #randomGenerator, #sorteoContainer #randomGeneratorStrings { - margin-left: 3em; - margin-right: 3em; -} -#sorteoContainer #randomGenerator span.clearBlue, #sorteoContainer #randomGeneratorStrings span.clearBlue { - color: #3DB0E4 !important; -} -#sorteoContainer #randomGenerator span.darkBlue, #sorteoContainer #randomGeneratorStrings span.darkBlue { - color: #0A0089 !important; -} -#sorteoContainer #buttons { - display: flex; - margin: 1.5em; - align-items: center; - justify-content: center; -} -#sorteoContainer #buttons .okBtn { - background-color: #3DB0E4 !important; -} -#sorteoContainer #buttons .shuffleBtn { - background-color: #221E1E !important; -} -#sorteoContainer #buttons #randomGenerator { - height: 100px; - overflow: hidden; -} -#sorteoContainer #buttons #randomGenerator .cifra { - font-size: 80px; - height: 110px; - width: 110px; - display: flex; - justify-content: center; - align-items: flex-end; -} -#sorteoContainer #buttons #leftContainer { - display: flex; - align-items: center; - justify-content: center; - gap: 2em; -} -#sorteoContainer #buttons #randomGeneratorStrings { - width: -webkit-fill-available; - text-align: center; -} -#sorteoContainer #buttons #randomGeneratorStrings span { - font-size: 55px; - font-weight: bold; - white-space: nowrap; -} -/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[2]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[6].rules[1].use[0]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].rules[1].use[1]!./src/themes/app-colors.scss?ngGlobalStyle ***! - \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ - - -/*# sourceMappingURL=styles.css.map*/ \ No newline at end of file diff --git a/docs/styles.css.map b/docs/styles.css.map deleted file mode 100644 index edceebd..0000000 --- a/docs/styles.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"styles.css","mappings":"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","sources":["./node_modules/@angular/material/prebuilt-themes/indigo-pink.css","./src/styles.scss"],"sourcesContent":[".mat-ripple{overflow:hidden;position:relative}.mat-ripple:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale3d(0, 0, 0);background-color:var(--mat-ripple-color, rgba(0, 0, 0, 0.1))}.cdk-high-contrast-active .mat-ripple-element{display:none}.cdk-drag-preview .mat-ripple-element,.cdk-drag-placeholder .mat-ripple-element{display:none}.cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl] .cdk-visually-hidden{left:auto;right:0}.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}@keyframes cdk-text-field-autofill-start{/*!*/}@keyframes cdk-text-field-autofill-end{/*!*/}.cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}.mat-focus-indicator{position:relative}.mat-focus-indicator::before{top:0;left:0;right:0;bottom:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-focus-indicator-display, none);border:var(--mat-focus-indicator-border-width, 3px) var(--mat-focus-indicator-border-style, solid) var(--mat-focus-indicator-border-color, transparent);border-radius:var(--mat-focus-indicator-border-radius, 4px)}.mat-focus-indicator:focus::before{content:\"\"}.cdk-high-contrast-active{--mat-focus-indicator-display: block}.mat-mdc-focus-indicator{position:relative}.mat-mdc-focus-indicator::before{top:0;left:0;right:0;bottom:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-mdc-focus-indicator-display, none);border:var(--mat-mdc-focus-indicator-border-width, 3px) var(--mat-mdc-focus-indicator-border-style, solid) var(--mat-mdc-focus-indicator-border-color, transparent);border-radius:var(--mat-mdc-focus-indicator-border-radius, 4px)}.mat-mdc-focus-indicator:focus::before{content:\"\"}.cdk-high-contrast-active{--mat-mdc-focus-indicator-display: block}.mat-app-background{background-color:var(--mat-app-background-color, var(--mat-app-background, transparent));color:var(--mat-app-text-color, var(--mat-app-on-background, inherit))}.mat-elevation-z0,.mat-mdc-elevation-specific.mat-elevation-z0{box-shadow:var(--mat-app-elevation-shadow-level-0, none)}.mat-elevation-z1,.mat-mdc-elevation-specific.mat-elevation-z1{box-shadow:var(--mat-app-elevation-shadow-level-1, none)}.mat-elevation-z2,.mat-mdc-elevation-specific.mat-elevation-z2{box-shadow:var(--mat-app-elevation-shadow-level-2, none)}.mat-elevation-z3,.mat-mdc-elevation-specific.mat-elevation-z3{box-shadow:var(--mat-app-elevation-shadow-level-3, none)}.mat-elevation-z4,.mat-mdc-elevation-specific.mat-elevation-z4{box-shadow:var(--mat-app-elevation-shadow-level-4, none)}.mat-elevation-z5,.mat-mdc-elevation-specific.mat-elevation-z5{box-shadow:var(--mat-app-elevation-shadow-level-5, none)}.mat-elevation-z6,.mat-mdc-elevation-specific.mat-elevation-z6{box-shadow:var(--mat-app-elevation-shadow-level-6, none)}.mat-elevation-z7,.mat-mdc-elevation-specific.mat-elevation-z7{box-shadow:var(--mat-app-elevation-shadow-level-7, none)}.mat-elevation-z8,.mat-mdc-elevation-specific.mat-elevation-z8{box-shadow:var(--mat-app-elevation-shadow-level-8, none)}.mat-elevation-z9,.mat-mdc-elevation-specific.mat-elevation-z9{box-shadow:var(--mat-app-elevation-shadow-level-9, none)}.mat-elevation-z10,.mat-mdc-elevation-specific.mat-elevation-z10{box-shadow:var(--mat-app-elevation-shadow-level-10, none)}.mat-elevation-z11,.mat-mdc-elevation-specific.mat-elevation-z11{box-shadow:var(--mat-app-elevation-shadow-level-11, none)}.mat-elevation-z12,.mat-mdc-elevation-specific.mat-elevation-z12{box-shadow:var(--mat-app-elevation-shadow-level-12, none)}.mat-elevation-z13,.mat-mdc-elevation-specific.mat-elevation-z13{box-shadow:var(--mat-app-elevation-shadow-level-13, none)}.mat-elevation-z14,.mat-mdc-elevation-specific.mat-elevation-z14{box-shadow:var(--mat-app-elevation-shadow-level-14, none)}.mat-elevation-z15,.mat-mdc-elevation-specific.mat-elevation-z15{box-shadow:var(--mat-app-elevation-shadow-level-15, none)}.mat-elevation-z16,.mat-mdc-elevation-specific.mat-elevation-z16{box-shadow:var(--mat-app-elevation-shadow-level-16, none)}.mat-elevation-z17,.mat-mdc-elevation-specific.mat-elevation-z17{box-shadow:var(--mat-app-elevation-shadow-level-17, none)}.mat-elevation-z18,.mat-mdc-elevation-specific.mat-elevation-z18{box-shadow:var(--mat-app-elevation-shadow-level-18, none)}.mat-elevation-z19,.mat-mdc-elevation-specific.mat-elevation-z19{box-shadow:var(--mat-app-elevation-shadow-level-19, none)}.mat-elevation-z20,.mat-mdc-elevation-specific.mat-elevation-z20{box-shadow:var(--mat-app-elevation-shadow-level-20, none)}.mat-elevation-z21,.mat-mdc-elevation-specific.mat-elevation-z21{box-shadow:var(--mat-app-elevation-shadow-level-21, none)}.mat-elevation-z22,.mat-mdc-elevation-specific.mat-elevation-z22{box-shadow:var(--mat-app-elevation-shadow-level-22, none)}.mat-elevation-z23,.mat-mdc-elevation-specific.mat-elevation-z23{box-shadow:var(--mat-app-elevation-shadow-level-23, none)}.mat-elevation-z24,.mat-mdc-elevation-specific.mat-elevation-z24{box-shadow:var(--mat-app-elevation-shadow-level-24, none)}.mat-theme-loaded-marker{display:none}html{--mat-ripple-color:rgba(0, 0, 0, 0.1)}html{--mat-option-selected-state-label-text-color:#3f51b5;--mat-option-label-text-color:rgba(0, 0, 0, 0.87);--mat-option-hover-state-layer-color:rgba(0, 0, 0, 0.04);--mat-option-focus-state-layer-color:rgba(0, 0, 0, 0.04);--mat-option-selected-state-layer-color:rgba(0, 0, 0, 0.04)}.mat-accent{--mat-option-selected-state-label-text-color:#ff4081;--mat-option-label-text-color:rgba(0, 0, 0, 0.87);--mat-option-hover-state-layer-color:rgba(0, 0, 0, 0.04);--mat-option-focus-state-layer-color:rgba(0, 0, 0, 0.04);--mat-option-selected-state-layer-color:rgba(0, 0, 0, 0.04)}.mat-warn{--mat-option-selected-state-label-text-color:#f44336;--mat-option-label-text-color:rgba(0, 0, 0, 0.87);--mat-option-hover-state-layer-color:rgba(0, 0, 0, 0.04);--mat-option-focus-state-layer-color:rgba(0, 0, 0, 0.04);--mat-option-selected-state-layer-color:rgba(0, 0, 0, 0.04)}html{--mat-optgroup-label-text-color:rgba(0, 0, 0, 0.87)}.mat-primary{--mat-full-pseudo-checkbox-selected-icon-color:#3f51b5;--mat-full-pseudo-checkbox-selected-checkmark-color:#fafafa;--mat-full-pseudo-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color:#fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color:#b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color:#b0b0b0;--mat-minimal-pseudo-checkbox-selected-checkmark-color:#3f51b5;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color:#b0b0b0}html{--mat-full-pseudo-checkbox-selected-icon-color:#ff4081;--mat-full-pseudo-checkbox-selected-checkmark-color:#fafafa;--mat-full-pseudo-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color:#fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color:#b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color:#b0b0b0;--mat-minimal-pseudo-checkbox-selected-checkmark-color:#ff4081;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color:#b0b0b0}.mat-accent{--mat-full-pseudo-checkbox-selected-icon-color:#ff4081;--mat-full-pseudo-checkbox-selected-checkmark-color:#fafafa;--mat-full-pseudo-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color:#fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color:#b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color:#b0b0b0;--mat-minimal-pseudo-checkbox-selected-checkmark-color:#ff4081;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color:#b0b0b0}.mat-warn{--mat-full-pseudo-checkbox-selected-icon-color:#f44336;--mat-full-pseudo-checkbox-selected-checkmark-color:#fafafa;--mat-full-pseudo-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color:#fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color:#b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color:#b0b0b0;--mat-minimal-pseudo-checkbox-selected-checkmark-color:#f44336;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color:#b0b0b0}html{--mat-app-background-color:#fafafa;--mat-app-text-color:rgba(0, 0, 0, 0.87);--mat-app-elevation-shadow-level-0:0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);--mat-app-elevation-shadow-level-1:0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);--mat-app-elevation-shadow-level-2:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);--mat-app-elevation-shadow-level-3:0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);--mat-app-elevation-shadow-level-4:0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);--mat-app-elevation-shadow-level-5:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 5px 8px 0px rgba(0, 0, 0, 0.14), 0px 1px 14px 0px rgba(0, 0, 0, 0.12);--mat-app-elevation-shadow-level-6:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);--mat-app-elevation-shadow-level-7:0px 4px 5px -2px rgba(0, 0, 0, 0.2), 0px 7px 10px 1px rgba(0, 0, 0, 0.14), 0px 2px 16px 1px rgba(0, 0, 0, 0.12);--mat-app-elevation-shadow-level-8:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);--mat-app-elevation-shadow-level-9:0px 5px 6px -3px rgba(0, 0, 0, 0.2), 0px 9px 12px 1px rgba(0, 0, 0, 0.14), 0px 3px 16px 2px rgba(0, 0, 0, 0.12);--mat-app-elevation-shadow-level-10:0px 6px 6px -3px rgba(0, 0, 0, 0.2), 0px 10px 14px 1px rgba(0, 0, 0, 0.14), 0px 4px 18px 3px rgba(0, 0, 0, 0.12);--mat-app-elevation-shadow-level-11:0px 6px 7px -4px rgba(0, 0, 0, 0.2), 0px 11px 15px 1px rgba(0, 0, 0, 0.14), 0px 4px 20px 3px rgba(0, 0, 0, 0.12);--mat-app-elevation-shadow-level-12:0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);--mat-app-elevation-shadow-level-13:0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 13px 19px 2px rgba(0, 0, 0, 0.14), 0px 5px 24px 4px rgba(0, 0, 0, 0.12);--mat-app-elevation-shadow-level-14:0px 7px 9px -4px rgba(0, 0, 0, 0.2), 0px 14px 21px 2px rgba(0, 0, 0, 0.14), 0px 5px 26px 4px rgba(0, 0, 0, 0.12);--mat-app-elevation-shadow-level-15:0px 8px 9px -5px rgba(0, 0, 0, 0.2), 0px 15px 22px 2px rgba(0, 0, 0, 0.14), 0px 6px 28px 5px rgba(0, 0, 0, 0.12);--mat-app-elevation-shadow-level-16:0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);--mat-app-elevation-shadow-level-17:0px 8px 11px -5px rgba(0, 0, 0, 0.2), 0px 17px 26px 2px rgba(0, 0, 0, 0.14), 0px 6px 32px 5px rgba(0, 0, 0, 0.12);--mat-app-elevation-shadow-level-18:0px 9px 11px -5px rgba(0, 0, 0, 0.2), 0px 18px 28px 2px rgba(0, 0, 0, 0.14), 0px 7px 34px 6px rgba(0, 0, 0, 0.12);--mat-app-elevation-shadow-level-19:0px 9px 12px -6px rgba(0, 0, 0, 0.2), 0px 19px 29px 2px rgba(0, 0, 0, 0.14), 0px 7px 36px 6px rgba(0, 0, 0, 0.12);--mat-app-elevation-shadow-level-20:0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 20px 31px 3px rgba(0, 0, 0, 0.14), 0px 8px 38px 7px rgba(0, 0, 0, 0.12);--mat-app-elevation-shadow-level-21:0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 21px 33px 3px rgba(0, 0, 0, 0.14), 0px 8px 40px 7px rgba(0, 0, 0, 0.12);--mat-app-elevation-shadow-level-22:0px 10px 14px -6px rgba(0, 0, 0, 0.2), 0px 22px 35px 3px rgba(0, 0, 0, 0.14), 0px 8px 42px 7px rgba(0, 0, 0, 0.12);--mat-app-elevation-shadow-level-23:0px 11px 14px -7px rgba(0, 0, 0, 0.2), 0px 23px 36px 3px rgba(0, 0, 0, 0.14), 0px 9px 44px 8px rgba(0, 0, 0, 0.12);--mat-app-elevation-shadow-level-24:0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12)}html{--mat-option-label-text-font:Roboto, sans-serif;--mat-option-label-text-line-height:24px;--mat-option-label-text-size:16px;--mat-option-label-text-tracking:0.03125em;--mat-option-label-text-weight:400}html{--mat-optgroup-label-text-font:Roboto, sans-serif;--mat-optgroup-label-text-line-height:24px;--mat-optgroup-label-text-size:16px;--mat-optgroup-label-text-tracking:0.03125em;--mat-optgroup-label-text-weight:400}html{--mdc-elevated-card-container-shape:4px;--mdc-outlined-card-container-shape:4px;--mdc-outlined-card-outline-width:1px}html{--mdc-elevated-card-container-color:white;--mdc-elevated-card-container-elevation:0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);--mdc-outlined-card-container-color:white;--mdc-outlined-card-outline-color:rgba(0, 0, 0, 0.12);--mdc-outlined-card-container-elevation:0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);--mat-card-subtitle-text-color:rgba(0, 0, 0, 0.54)}html{--mat-card-title-text-font:Roboto, sans-serif;--mat-card-title-text-line-height:32px;--mat-card-title-text-size:20px;--mat-card-title-text-tracking:0.0125em;--mat-card-title-text-weight:500;--mat-card-subtitle-text-font:Roboto, sans-serif;--mat-card-subtitle-text-line-height:22px;--mat-card-subtitle-text-size:14px;--mat-card-subtitle-text-tracking:0.0071428571em;--mat-card-subtitle-text-weight:500}html{--mdc-linear-progress-active-indicator-height:4px;--mdc-linear-progress-track-height:4px;--mdc-linear-progress-track-shape:0}.mat-mdc-progress-bar{--mdc-linear-progress-active-indicator-color:#3f51b5;--mdc-linear-progress-track-color:rgba(63, 81, 181, 0.25)}.mat-mdc-progress-bar.mat-accent{--mdc-linear-progress-active-indicator-color:#ff4081;--mdc-linear-progress-track-color:rgba(255, 64, 129, 0.25)}.mat-mdc-progress-bar.mat-warn{--mdc-linear-progress-active-indicator-color:#f44336;--mdc-linear-progress-track-color:rgba(244, 67, 54, 0.25)}html{--mdc-plain-tooltip-container-shape:4px;--mdc-plain-tooltip-supporting-text-line-height:16px}html{--mdc-plain-tooltip-container-color:#616161;--mdc-plain-tooltip-supporting-text-color:#fff}html{--mdc-plain-tooltip-supporting-text-font:Roboto, sans-serif;--mdc-plain-tooltip-supporting-text-size:12px;--mdc-plain-tooltip-supporting-text-weight:400;--mdc-plain-tooltip-supporting-text-tracking:0.0333333333em}html{--mdc-filled-text-field-active-indicator-height:1px;--mdc-filled-text-field-focus-active-indicator-height:2px;--mdc-filled-text-field-container-shape:4px;--mdc-outlined-text-field-outline-width:1px;--mdc-outlined-text-field-focus-outline-width:2px;--mdc-outlined-text-field-container-shape:4px}html{--mdc-filled-text-field-caret-color:#3f51b5;--mdc-filled-text-field-focus-active-indicator-color:#3f51b5;--mdc-filled-text-field-focus-label-text-color:rgba(63, 81, 181, 0.87);--mdc-filled-text-field-container-color:whitesmoke;--mdc-filled-text-field-disabled-container-color:#fafafa;--mdc-filled-text-field-label-text-color:rgba(0, 0, 0, 0.6);--mdc-filled-text-field-hover-label-text-color:rgba(0, 0, 0, 0.6);--mdc-filled-text-field-disabled-label-text-color:rgba(0, 0, 0, 0.38);--mdc-filled-text-field-input-text-color:rgba(0, 0, 0, 0.87);--mdc-filled-text-field-disabled-input-text-color:rgba(0, 0, 0, 0.38);--mdc-filled-text-field-input-text-placeholder-color:rgba(0, 0, 0, 0.6);--mdc-filled-text-field-error-hover-label-text-color:#f44336;--mdc-filled-text-field-error-focus-label-text-color:#f44336;--mdc-filled-text-field-error-label-text-color:#f44336;--mdc-filled-text-field-error-caret-color:#f44336;--mdc-filled-text-field-active-indicator-color:rgba(0, 0, 0, 0.42);--mdc-filled-text-field-disabled-active-indicator-color:rgba(0, 0, 0, 0.06);--mdc-filled-text-field-hover-active-indicator-color:rgba(0, 0, 0, 0.87);--mdc-filled-text-field-error-active-indicator-color:#f44336;--mdc-filled-text-field-error-focus-active-indicator-color:#f44336;--mdc-filled-text-field-error-hover-active-indicator-color:#f44336;--mdc-outlined-text-field-caret-color:#3f51b5;--mdc-outlined-text-field-focus-outline-color:#3f51b5;--mdc-outlined-text-field-focus-label-text-color:rgba(63, 81, 181, 0.87);--mdc-outlined-text-field-label-text-color:rgba(0, 0, 0, 0.6);--mdc-outlined-text-field-hover-label-text-color:rgba(0, 0, 0, 0.6);--mdc-outlined-text-field-disabled-label-text-color:rgba(0, 0, 0, 0.38);--mdc-outlined-text-field-input-text-color:rgba(0, 0, 0, 0.87);--mdc-outlined-text-field-disabled-input-text-color:rgba(0, 0, 0, 0.38);--mdc-outlined-text-field-input-text-placeholder-color:rgba(0, 0, 0, 0.6);--mdc-outlined-text-field-error-caret-color:#f44336;--mdc-outlined-text-field-error-focus-label-text-color:#f44336;--mdc-outlined-text-field-error-label-text-color:#f44336;--mdc-outlined-text-field-error-hover-label-text-color:#f44336;--mdc-outlined-text-field-outline-color:rgba(0, 0, 0, 0.38);--mdc-outlined-text-field-disabled-outline-color:rgba(0, 0, 0, 0.06);--mdc-outlined-text-field-hover-outline-color:rgba(0, 0, 0, 0.87);--mdc-outlined-text-field-error-focus-outline-color:#f44336;--mdc-outlined-text-field-error-hover-outline-color:#f44336;--mdc-outlined-text-field-error-outline-color:#f44336;--mat-form-field-focus-select-arrow-color:rgba(63, 81, 181, 0.87);--mat-form-field-disabled-input-text-placeholder-color:rgba(0, 0, 0, 0.38);--mat-form-field-state-layer-color:rgba(0, 0, 0, 0.87);--mat-form-field-error-text-color:#f44336;--mat-form-field-select-option-text-color:inherit;--mat-form-field-select-disabled-option-text-color:GrayText;--mat-form-field-leading-icon-color:unset;--mat-form-field-disabled-leading-icon-color:unset;--mat-form-field-trailing-icon-color:unset;--mat-form-field-disabled-trailing-icon-color:unset;--mat-form-field-error-focus-trailing-icon-color:unset;--mat-form-field-error-hover-trailing-icon-color:unset;--mat-form-field-error-trailing-icon-color:unset;--mat-form-field-enabled-select-arrow-color:rgba(0, 0, 0, 0.54);--mat-form-field-disabled-select-arrow-color:rgba(0, 0, 0, 0.38);--mat-form-field-hover-state-layer-opacity:0.04;--mat-form-field-focus-state-layer-opacity:0.08}.mat-mdc-form-field.mat-accent{--mdc-filled-text-field-caret-color:#ff4081;--mdc-filled-text-field-focus-active-indicator-color:#ff4081;--mdc-filled-text-field-focus-label-text-color:rgba(255, 64, 129, 0.87);--mdc-outlined-text-field-caret-color:#ff4081;--mdc-outlined-text-field-focus-outline-color:#ff4081;--mdc-outlined-text-field-focus-label-text-color:rgba(255, 64, 129, 0.87);--mat-form-field-focus-select-arrow-color:rgba(255, 64, 129, 0.87)}.mat-mdc-form-field.mat-warn{--mdc-filled-text-field-caret-color:#f44336;--mdc-filled-text-field-focus-active-indicator-color:#f44336;--mdc-filled-text-field-focus-label-text-color:rgba(244, 67, 54, 0.87);--mdc-outlined-text-field-caret-color:#f44336;--mdc-outlined-text-field-focus-outline-color:#f44336;--mdc-outlined-text-field-focus-label-text-color:rgba(244, 67, 54, 0.87);--mat-form-field-focus-select-arrow-color:rgba(244, 67, 54, 0.87)}html{--mat-form-field-container-height:56px;--mat-form-field-filled-label-display:block;--mat-form-field-container-vertical-padding:16px;--mat-form-field-filled-with-label-container-padding-top:24px;--mat-form-field-filled-with-label-container-padding-bottom:8px}html{--mdc-filled-text-field-label-text-font:Roboto, sans-serif;--mdc-filled-text-field-label-text-size:16px;--mdc-filled-text-field-label-text-tracking:0.03125em;--mdc-filled-text-field-label-text-weight:400;--mdc-outlined-text-field-label-text-font:Roboto, sans-serif;--mdc-outlined-text-field-label-text-size:16px;--mdc-outlined-text-field-label-text-tracking:0.03125em;--mdc-outlined-text-field-label-text-weight:400;--mat-form-field-container-text-font:Roboto, sans-serif;--mat-form-field-container-text-line-height:24px;--mat-form-field-container-text-size:16px;--mat-form-field-container-text-tracking:0.03125em;--mat-form-field-container-text-weight:400;--mat-form-field-outlined-label-text-populated-size:16px;--mat-form-field-subscript-text-font:Roboto, sans-serif;--mat-form-field-subscript-text-line-height:20px;--mat-form-field-subscript-text-size:12px;--mat-form-field-subscript-text-tracking:0.0333333333em;--mat-form-field-subscript-text-weight:400}html{--mat-select-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12)}html{--mat-select-panel-background-color:white;--mat-select-enabled-trigger-text-color:rgba(0, 0, 0, 0.87);--mat-select-disabled-trigger-text-color:rgba(0, 0, 0, 0.38);--mat-select-placeholder-text-color:rgba(0, 0, 0, 0.6);--mat-select-enabled-arrow-color:rgba(0, 0, 0, 0.54);--mat-select-disabled-arrow-color:rgba(0, 0, 0, 0.38);--mat-select-focused-arrow-color:rgba(63, 81, 181, 0.87);--mat-select-invalid-arrow-color:rgba(244, 67, 54, 0.87)}html .mat-mdc-form-field.mat-accent{--mat-select-panel-background-color:white;--mat-select-enabled-trigger-text-color:rgba(0, 0, 0, 0.87);--mat-select-disabled-trigger-text-color:rgba(0, 0, 0, 0.38);--mat-select-placeholder-text-color:rgba(0, 0, 0, 0.6);--mat-select-enabled-arrow-color:rgba(0, 0, 0, 0.54);--mat-select-disabled-arrow-color:rgba(0, 0, 0, 0.38);--mat-select-focused-arrow-color:rgba(255, 64, 129, 0.87);--mat-select-invalid-arrow-color:rgba(244, 67, 54, 0.87)}html .mat-mdc-form-field.mat-warn{--mat-select-panel-background-color:white;--mat-select-enabled-trigger-text-color:rgba(0, 0, 0, 0.87);--mat-select-disabled-trigger-text-color:rgba(0, 0, 0, 0.38);--mat-select-placeholder-text-color:rgba(0, 0, 0, 0.6);--mat-select-enabled-arrow-color:rgba(0, 0, 0, 0.54);--mat-select-disabled-arrow-color:rgba(0, 0, 0, 0.38);--mat-select-focused-arrow-color:rgba(244, 67, 54, 0.87);--mat-select-invalid-arrow-color:rgba(244, 67, 54, 0.87)}html{--mat-select-arrow-transform:translateY(-8px)}html{--mat-select-trigger-text-font:Roboto, sans-serif;--mat-select-trigger-text-line-height:24px;--mat-select-trigger-text-size:16px;--mat-select-trigger-text-tracking:0.03125em;--mat-select-trigger-text-weight:400}html{--mat-autocomplete-container-shape:4px;--mat-autocomplete-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12)}html{--mat-autocomplete-background-color:white}html{--mdc-dialog-container-shape:4px;--mat-dialog-container-elevation-shadow:0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);--mat-dialog-container-max-width:80vw;--mat-dialog-container-small-max-width:80vw;--mat-dialog-container-min-width:0;--mat-dialog-actions-alignment:start;--mat-dialog-actions-padding:8px;--mat-dialog-content-padding:20px 24px;--mat-dialog-with-actions-content-padding:20px 24px;--mat-dialog-headline-padding:0 24px 9px}html{--mdc-dialog-container-color:white;--mdc-dialog-subhead-color:rgba(0, 0, 0, 0.87);--mdc-dialog-supporting-text-color:rgba(0, 0, 0, 0.6)}html{--mdc-dialog-subhead-font:Roboto, sans-serif;--mdc-dialog-subhead-line-height:32px;--mdc-dialog-subhead-size:20px;--mdc-dialog-subhead-weight:500;--mdc-dialog-subhead-tracking:0.0125em;--mdc-dialog-supporting-text-font:Roboto, sans-serif;--mdc-dialog-supporting-text-line-height:24px;--mdc-dialog-supporting-text-size:16px;--mdc-dialog-supporting-text-weight:400;--mdc-dialog-supporting-text-tracking:0.03125em}.mat-mdc-standard-chip{--mdc-chip-container-shape-radius:16px;--mdc-chip-with-avatar-avatar-shape-radius:14px;--mdc-chip-with-avatar-avatar-size:28px;--mdc-chip-with-icon-icon-size:18px;--mdc-chip-outline-width:0;--mdc-chip-outline-color:transparent;--mdc-chip-disabled-outline-color:transparent;--mdc-chip-focus-outline-color:transparent;--mdc-chip-hover-state-layer-opacity:0.04;--mdc-chip-with-avatar-disabled-avatar-opacity:1;--mdc-chip-flat-selected-outline-width:0;--mdc-chip-selected-hover-state-layer-opacity:0.04;--mdc-chip-with-trailing-icon-disabled-trailing-icon-opacity:1;--mdc-chip-with-icon-disabled-icon-opacity:1;--mat-chip-disabled-container-opacity:0.4;--mat-chip-trailing-action-opacity:0.54;--mat-chip-trailing-action-focus-opacity:1;--mat-chip-trailing-action-state-layer-color:transparent;--mat-chip-selected-trailing-action-state-layer-color:transparent;--mat-chip-trailing-action-hover-state-layer-opacity:0;--mat-chip-trailing-action-focus-state-layer-opacity:0}.mat-mdc-standard-chip{--mdc-chip-disabled-label-text-color:#212121;--mdc-chip-elevated-container-color:#e0e0e0;--mdc-chip-elevated-selected-container-color:#e0e0e0;--mdc-chip-elevated-disabled-container-color:#e0e0e0;--mdc-chip-flat-disabled-selected-container-color:#e0e0e0;--mdc-chip-focus-state-layer-color:black;--mdc-chip-hover-state-layer-color:black;--mdc-chip-selected-hover-state-layer-color:black;--mdc-chip-focus-state-layer-opacity:0.12;--mdc-chip-selected-focus-state-layer-color:black;--mdc-chip-selected-focus-state-layer-opacity:0.12;--mdc-chip-label-text-color:#212121;--mdc-chip-selected-label-text-color:#212121;--mdc-chip-with-icon-icon-color:#212121;--mdc-chip-with-icon-disabled-icon-color:#212121;--mdc-chip-with-icon-selected-icon-color:#212121;--mdc-chip-with-trailing-icon-disabled-trailing-icon-color:#212121;--mdc-chip-with-trailing-icon-trailing-icon-color:#212121;--mat-chip-selected-disabled-trailing-icon-color:#212121;--mat-chip-selected-trailing-icon-color:#212121}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-primary,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-primary{--mdc-chip-disabled-label-text-color:white;--mdc-chip-elevated-container-color:#3f51b5;--mdc-chip-elevated-selected-container-color:#3f51b5;--mdc-chip-elevated-disabled-container-color:#3f51b5;--mdc-chip-flat-disabled-selected-container-color:#3f51b5;--mdc-chip-focus-state-layer-color:black;--mdc-chip-hover-state-layer-color:black;--mdc-chip-selected-hover-state-layer-color:black;--mdc-chip-focus-state-layer-opacity:0.12;--mdc-chip-selected-focus-state-layer-color:black;--mdc-chip-selected-focus-state-layer-opacity:0.12;--mdc-chip-label-text-color:white;--mdc-chip-selected-label-text-color:white;--mdc-chip-with-icon-icon-color:white;--mdc-chip-with-icon-disabled-icon-color:white;--mdc-chip-with-icon-selected-icon-color:white;--mdc-chip-with-trailing-icon-disabled-trailing-icon-color:white;--mdc-chip-with-trailing-icon-trailing-icon-color:white;--mat-chip-selected-disabled-trailing-icon-color:white;--mat-chip-selected-trailing-icon-color:white}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-accent,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-accent{--mdc-chip-disabled-label-text-color:white;--mdc-chip-elevated-container-color:#ff4081;--mdc-chip-elevated-selected-container-color:#ff4081;--mdc-chip-elevated-disabled-container-color:#ff4081;--mdc-chip-flat-disabled-selected-container-color:#ff4081;--mdc-chip-focus-state-layer-color:black;--mdc-chip-hover-state-layer-color:black;--mdc-chip-selected-hover-state-layer-color:black;--mdc-chip-focus-state-layer-opacity:0.12;--mdc-chip-selected-focus-state-layer-color:black;--mdc-chip-selected-focus-state-layer-opacity:0.12;--mdc-chip-label-text-color:white;--mdc-chip-selected-label-text-color:white;--mdc-chip-with-icon-icon-color:white;--mdc-chip-with-icon-disabled-icon-color:white;--mdc-chip-with-icon-selected-icon-color:white;--mdc-chip-with-trailing-icon-disabled-trailing-icon-color:white;--mdc-chip-with-trailing-icon-trailing-icon-color:white;--mat-chip-selected-disabled-trailing-icon-color:white;--mat-chip-selected-trailing-icon-color:white}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-warn,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-warn{--mdc-chip-disabled-label-text-color:white;--mdc-chip-elevated-container-color:#f44336;--mdc-chip-elevated-selected-container-color:#f44336;--mdc-chip-elevated-disabled-container-color:#f44336;--mdc-chip-flat-disabled-selected-container-color:#f44336;--mdc-chip-focus-state-layer-color:black;--mdc-chip-hover-state-layer-color:black;--mdc-chip-selected-hover-state-layer-color:black;--mdc-chip-focus-state-layer-opacity:0.12;--mdc-chip-selected-focus-state-layer-color:black;--mdc-chip-selected-focus-state-layer-opacity:0.12;--mdc-chip-label-text-color:white;--mdc-chip-selected-label-text-color:white;--mdc-chip-with-icon-icon-color:white;--mdc-chip-with-icon-disabled-icon-color:white;--mdc-chip-with-icon-selected-icon-color:white;--mdc-chip-with-trailing-icon-disabled-trailing-icon-color:white;--mdc-chip-with-trailing-icon-trailing-icon-color:white;--mat-chip-selected-disabled-trailing-icon-color:white;--mat-chip-selected-trailing-icon-color:white}.mat-mdc-chip.mat-mdc-standard-chip{--mdc-chip-container-height:32px}.mat-mdc-standard-chip{--mdc-chip-label-text-font:Roboto, sans-serif;--mdc-chip-label-text-line-height:20px;--mdc-chip-label-text-size:14px;--mdc-chip-label-text-tracking:0.0178571429em;--mdc-chip-label-text-weight:400}html{--mdc-switch-disabled-selected-icon-opacity:0.38;--mdc-switch-disabled-track-opacity:0.12;--mdc-switch-disabled-unselected-icon-opacity:0.38;--mdc-switch-handle-height:20px;--mdc-switch-handle-shape:10px;--mdc-switch-handle-width:20px;--mdc-switch-selected-icon-size:18px;--mdc-switch-track-height:14px;--mdc-switch-track-shape:7px;--mdc-switch-track-width:36px;--mdc-switch-unselected-icon-size:18px;--mdc-switch-selected-focus-state-layer-opacity:0.12;--mdc-switch-selected-hover-state-layer-opacity:0.04;--mdc-switch-selected-pressed-state-layer-opacity:0.1;--mdc-switch-unselected-focus-state-layer-opacity:0.12;--mdc-switch-unselected-hover-state-layer-opacity:0.04;--mdc-switch-unselected-pressed-state-layer-opacity:0.1}html .mat-mdc-slide-toggle{--mat-switch-disabled-selected-handle-opacity:0.38;--mat-switch-disabled-unselected-handle-opacity:0.38;--mat-switch-unselected-handle-size:20px;--mat-switch-selected-handle-size:20px;--mat-switch-pressed-handle-size:20px;--mat-switch-with-icon-handle-size:20px;--mat-switch-selected-handle-horizontal-margin:0;--mat-switch-selected-with-icon-handle-horizontal-margin:0;--mat-switch-selected-pressed-handle-horizontal-margin:0;--mat-switch-unselected-handle-horizontal-margin:0;--mat-switch-unselected-with-icon-handle-horizontal-margin:0;--mat-switch-unselected-pressed-handle-horizontal-margin:0;--mat-switch-visible-track-opacity:1;--mat-switch-hidden-track-opacity:1;--mat-switch-visible-track-transition:transform 75ms 0ms cubic-bezier(0, 0, 0.2, 1);--mat-switch-hidden-track-transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.6, 1);--mat-switch-track-outline-width:1px;--mat-switch-track-outline-color:transparent;--mat-switch-selected-track-outline-width:1px;--mat-switch-selected-track-outline-color:transparent;--mat-switch-disabled-unselected-track-outline-width:1px;--mat-switch-disabled-unselected-track-outline-color:transparent}html{--mdc-switch-selected-focus-state-layer-color:#3949ab;--mdc-switch-selected-handle-color:#3949ab;--mdc-switch-selected-hover-state-layer-color:#3949ab;--mdc-switch-selected-pressed-state-layer-color:#3949ab;--mdc-switch-selected-focus-handle-color:#1a237e;--mdc-switch-selected-hover-handle-color:#1a237e;--mdc-switch-selected-pressed-handle-color:#1a237e;--mdc-switch-selected-focus-track-color:#7986cb;--mdc-switch-selected-hover-track-color:#7986cb;--mdc-switch-selected-pressed-track-color:#7986cb;--mdc-switch-selected-track-color:#7986cb;--mdc-switch-disabled-selected-handle-color:#424242;--mdc-switch-disabled-selected-icon-color:#fff;--mdc-switch-disabled-selected-track-color:#424242;--mdc-switch-disabled-unselected-handle-color:#424242;--mdc-switch-disabled-unselected-icon-color:#fff;--mdc-switch-disabled-unselected-track-color:#424242;--mdc-switch-handle-surface-color:#fff;--mdc-switch-selected-icon-color:#fff;--mdc-switch-unselected-focus-handle-color:#212121;--mdc-switch-unselected-focus-state-layer-color:#424242;--mdc-switch-unselected-focus-track-color:#e0e0e0;--mdc-switch-unselected-handle-color:#616161;--mdc-switch-unselected-hover-handle-color:#212121;--mdc-switch-unselected-hover-state-layer-color:#424242;--mdc-switch-unselected-hover-track-color:#e0e0e0;--mdc-switch-unselected-icon-color:#fff;--mdc-switch-unselected-pressed-handle-color:#212121;--mdc-switch-unselected-pressed-state-layer-color:#424242;--mdc-switch-unselected-pressed-track-color:#e0e0e0;--mdc-switch-unselected-track-color:#e0e0e0;--mdc-switch-handle-elevation-shadow:0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);--mdc-switch-disabled-handle-elevation-shadow:0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);--mdc-switch-disabled-label-text-color: rgba(0, 0, 0, 0.38)}html .mat-mdc-slide-toggle{--mat-switch-label-text-color:rgba(0, 0, 0, 0.87)}html .mat-mdc-slide-toggle.mat-accent{--mdc-switch-selected-focus-state-layer-color:#d81b60;--mdc-switch-selected-handle-color:#d81b60;--mdc-switch-selected-hover-state-layer-color:#d81b60;--mdc-switch-selected-pressed-state-layer-color:#d81b60;--mdc-switch-selected-focus-handle-color:#880e4f;--mdc-switch-selected-hover-handle-color:#880e4f;--mdc-switch-selected-pressed-handle-color:#880e4f;--mdc-switch-selected-focus-track-color:#f06292;--mdc-switch-selected-hover-track-color:#f06292;--mdc-switch-selected-pressed-track-color:#f06292;--mdc-switch-selected-track-color:#f06292}html .mat-mdc-slide-toggle.mat-warn{--mdc-switch-selected-focus-state-layer-color:#e53935;--mdc-switch-selected-handle-color:#e53935;--mdc-switch-selected-hover-state-layer-color:#e53935;--mdc-switch-selected-pressed-state-layer-color:#e53935;--mdc-switch-selected-focus-handle-color:#b71c1c;--mdc-switch-selected-hover-handle-color:#b71c1c;--mdc-switch-selected-pressed-handle-color:#b71c1c;--mdc-switch-selected-focus-track-color:#e57373;--mdc-switch-selected-hover-track-color:#e57373;--mdc-switch-selected-pressed-track-color:#e57373;--mdc-switch-selected-track-color:#e57373}html{--mdc-switch-state-layer-size:40px}html .mat-mdc-slide-toggle{--mat-switch-label-text-font:Roboto, sans-serif;--mat-switch-label-text-line-height:20px;--mat-switch-label-text-size:14px;--mat-switch-label-text-tracking:0.0178571429em;--mat-switch-label-text-weight:400}html{--mdc-radio-disabled-selected-icon-opacity:0.38;--mdc-radio-disabled-unselected-icon-opacity:0.38;--mdc-radio-state-layer-size:40px}.mat-mdc-radio-button.mat-primary{--mdc-radio-disabled-selected-icon-color:black;--mdc-radio-disabled-unselected-icon-color:black;--mdc-radio-unselected-hover-icon-color:#212121;--mdc-radio-unselected-focus-icon-color:#212121;--mdc-radio-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-selected-focus-icon-color:#3f51b5;--mdc-radio-selected-hover-icon-color:#3f51b5;--mdc-radio-selected-icon-color:#3f51b5;--mdc-radio-selected-pressed-icon-color:#3f51b5;--mat-radio-ripple-color:black;--mat-radio-checked-ripple-color:#3f51b5;--mat-radio-disabled-label-color:rgba(0, 0, 0, 0.38);--mat-radio-label-text-color:rgba(0, 0, 0, 0.87)}.mat-mdc-radio-button.mat-accent{--mdc-radio-disabled-selected-icon-color:black;--mdc-radio-disabled-unselected-icon-color:black;--mdc-radio-unselected-hover-icon-color:#212121;--mdc-radio-unselected-focus-icon-color:#212121;--mdc-radio-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-selected-focus-icon-color:#ff4081;--mdc-radio-selected-hover-icon-color:#ff4081;--mdc-radio-selected-icon-color:#ff4081;--mdc-radio-selected-pressed-icon-color:#ff4081;--mat-radio-ripple-color:black;--mat-radio-checked-ripple-color:#ff4081;--mat-radio-disabled-label-color:rgba(0, 0, 0, 0.38);--mat-radio-label-text-color:rgba(0, 0, 0, 0.87)}.mat-mdc-radio-button.mat-warn{--mdc-radio-disabled-selected-icon-color:black;--mdc-radio-disabled-unselected-icon-color:black;--mdc-radio-unselected-hover-icon-color:#212121;--mdc-radio-unselected-focus-icon-color:#212121;--mdc-radio-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-selected-focus-icon-color:#f44336;--mdc-radio-selected-hover-icon-color:#f44336;--mdc-radio-selected-icon-color:#f44336;--mdc-radio-selected-pressed-icon-color:#f44336;--mat-radio-ripple-color:black;--mat-radio-checked-ripple-color:#f44336;--mat-radio-disabled-label-color:rgba(0, 0, 0, 0.38);--mat-radio-label-text-color:rgba(0, 0, 0, 0.87)}html{--mdc-radio-state-layer-size:40px;--mat-radio-touch-target-display:block}html{--mat-radio-label-text-font:Roboto, sans-serif;--mat-radio-label-text-line-height:20px;--mat-radio-label-text-size:14px;--mat-radio-label-text-tracking:0.0178571429em;--mat-radio-label-text-weight:400}html{--mdc-slider-active-track-height:6px;--mdc-slider-active-track-shape:9999px;--mdc-slider-handle-height:20px;--mdc-slider-handle-shape:50%;--mdc-slider-handle-width:20px;--mdc-slider-inactive-track-height:4px;--mdc-slider-inactive-track-shape:9999px;--mdc-slider-with-overlap-handle-outline-width:1px;--mdc-slider-with-tick-marks-active-container-opacity:0.6;--mdc-slider-with-tick-marks-container-shape:50%;--mdc-slider-with-tick-marks-container-size:2px;--mdc-slider-with-tick-marks-inactive-container-opacity:0.6;--mdc-slider-handle-elevation:0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);--mat-slider-value-indicator-width:auto;--mat-slider-value-indicator-height:32px;--mat-slider-value-indicator-caret-display:block;--mat-slider-value-indicator-border-radius:4px;--mat-slider-value-indicator-padding:0 12px;--mat-slider-value-indicator-text-transform:none;--mat-slider-value-indicator-container-transform:translateX(-50%)}html{--mdc-slider-handle-color:#3f51b5;--mdc-slider-focus-handle-color:#3f51b5;--mdc-slider-hover-handle-color:#3f51b5;--mdc-slider-active-track-color:#3f51b5;--mdc-slider-inactive-track-color:#3f51b5;--mdc-slider-with-tick-marks-inactive-container-color:#3f51b5;--mdc-slider-with-tick-marks-active-container-color:white;--mdc-slider-disabled-active-track-color:#000;--mdc-slider-disabled-handle-color:#000;--mdc-slider-disabled-inactive-track-color:#000;--mdc-slider-label-container-color:#000;--mdc-slider-label-label-text-color:#fff;--mdc-slider-with-overlap-handle-outline-color:#fff;--mdc-slider-with-tick-marks-disabled-container-color:#000;--mat-slider-ripple-color:#3f51b5;--mat-slider-hover-state-layer-color:rgba(63, 81, 181, 0.05);--mat-slider-focus-state-layer-color:rgba(63, 81, 181, 0.2);--mat-slider-value-indicator-opacity:0.6}html .mat-accent{--mdc-slider-handle-color:#ff4081;--mdc-slider-focus-handle-color:#ff4081;--mdc-slider-hover-handle-color:#ff4081;--mdc-slider-active-track-color:#ff4081;--mdc-slider-inactive-track-color:#ff4081;--mdc-slider-with-tick-marks-inactive-container-color:#ff4081;--mdc-slider-with-tick-marks-active-container-color:white;--mat-slider-ripple-color:#ff4081;--mat-slider-hover-state-layer-color:rgba(255, 64, 129, 0.05);--mat-slider-focus-state-layer-color:rgba(255, 64, 129, 0.2)}html .mat-warn{--mdc-slider-handle-color:#f44336;--mdc-slider-focus-handle-color:#f44336;--mdc-slider-hover-handle-color:#f44336;--mdc-slider-active-track-color:#f44336;--mdc-slider-inactive-track-color:#f44336;--mdc-slider-with-tick-marks-inactive-container-color:#f44336;--mdc-slider-with-tick-marks-active-container-color:white;--mat-slider-ripple-color:#f44336;--mat-slider-hover-state-layer-color:rgba(244, 67, 54, 0.05);--mat-slider-focus-state-layer-color:rgba(244, 67, 54, 0.2)}html{--mdc-slider-label-label-text-font:Roboto, sans-serif;--mdc-slider-label-label-text-size:14px;--mdc-slider-label-label-text-line-height:22px;--mdc-slider-label-label-text-tracking:0.0071428571em;--mdc-slider-label-label-text-weight:500}html{--mat-menu-container-shape:4px;--mat-menu-divider-bottom-spacing:0;--mat-menu-divider-top-spacing:0;--mat-menu-item-spacing:16px;--mat-menu-item-icon-size:24px;--mat-menu-item-leading-spacing:16px;--mat-menu-item-trailing-spacing:16px;--mat-menu-item-with-icon-leading-spacing:16px;--mat-menu-item-with-icon-trailing-spacing:16px;--mat-menu-base-elevation-level:8}html{--mat-menu-item-label-text-color:rgba(0, 0, 0, 0.87);--mat-menu-item-icon-color:rgba(0, 0, 0, 0.87);--mat-menu-item-hover-state-layer-color:rgba(0, 0, 0, 0.04);--mat-menu-item-focus-state-layer-color:rgba(0, 0, 0, 0.04);--mat-menu-container-color:white;--mat-menu-divider-color:rgba(0, 0, 0, 0.12)}html{--mat-menu-item-label-text-font:Roboto, sans-serif;--mat-menu-item-label-text-size:16px;--mat-menu-item-label-text-tracking:0.03125em;--mat-menu-item-label-text-line-height:24px;--mat-menu-item-label-text-weight:400}html{--mdc-list-list-item-container-shape:0;--mdc-list-list-item-leading-avatar-shape:50%;--mdc-list-list-item-container-color:transparent;--mdc-list-list-item-selected-container-color:transparent;--mdc-list-list-item-leading-avatar-color:transparent;--mdc-list-list-item-leading-icon-size:24px;--mdc-list-list-item-leading-avatar-size:40px;--mdc-list-list-item-trailing-icon-size:24px;--mdc-list-list-item-disabled-state-layer-color:transparent;--mdc-list-list-item-disabled-state-layer-opacity:0;--mdc-list-list-item-disabled-label-text-opacity:0.38;--mdc-list-list-item-disabled-leading-icon-opacity:0.38;--mdc-list-list-item-disabled-trailing-icon-opacity:0.38;--mat-list-active-indicator-color:transparent;--mat-list-active-indicator-shape:4px}html{--mdc-list-list-item-label-text-color:rgba(0, 0, 0, 0.87);--mdc-list-list-item-supporting-text-color:rgba(0, 0, 0, 0.54);--mdc-list-list-item-leading-icon-color:rgba(0, 0, 0, 0.38);--mdc-list-list-item-trailing-supporting-text-color:rgba(0, 0, 0, 0.38);--mdc-list-list-item-trailing-icon-color:rgba(0, 0, 0, 0.38);--mdc-list-list-item-selected-trailing-icon-color:rgba(0, 0, 0, 0.38);--mdc-list-list-item-disabled-label-text-color:black;--mdc-list-list-item-disabled-leading-icon-color:black;--mdc-list-list-item-disabled-trailing-icon-color:black;--mdc-list-list-item-hover-label-text-color:rgba(0, 0, 0, 0.87);--mdc-list-list-item-hover-leading-icon-color:rgba(0, 0, 0, 0.38);--mdc-list-list-item-hover-trailing-icon-color:rgba(0, 0, 0, 0.38);--mdc-list-list-item-focus-label-text-color:rgba(0, 0, 0, 0.87);--mdc-list-list-item-hover-state-layer-color:black;--mdc-list-list-item-hover-state-layer-opacity:0.04;--mdc-list-list-item-focus-state-layer-color:black;--mdc-list-list-item-focus-state-layer-opacity:0.12}.mdc-list-item__start,.mdc-list-item__end{--mdc-radio-disabled-selected-icon-color:black;--mdc-radio-disabled-unselected-icon-color:black;--mdc-radio-unselected-hover-icon-color:#212121;--mdc-radio-unselected-focus-icon-color:#212121;--mdc-radio-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-selected-focus-icon-color:#3f51b5;--mdc-radio-selected-hover-icon-color:#3f51b5;--mdc-radio-selected-icon-color:#3f51b5;--mdc-radio-selected-pressed-icon-color:#3f51b5}.mat-accent .mdc-list-item__start,.mat-accent .mdc-list-item__end{--mdc-radio-disabled-selected-icon-color:black;--mdc-radio-disabled-unselected-icon-color:black;--mdc-radio-unselected-hover-icon-color:#212121;--mdc-radio-unselected-focus-icon-color:#212121;--mdc-radio-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-selected-focus-icon-color:#ff4081;--mdc-radio-selected-hover-icon-color:#ff4081;--mdc-radio-selected-icon-color:#ff4081;--mdc-radio-selected-pressed-icon-color:#ff4081}.mat-warn .mdc-list-item__start,.mat-warn .mdc-list-item__end{--mdc-radio-disabled-selected-icon-color:black;--mdc-radio-disabled-unselected-icon-color:black;--mdc-radio-unselected-hover-icon-color:#212121;--mdc-radio-unselected-focus-icon-color:#212121;--mdc-radio-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-selected-focus-icon-color:#f44336;--mdc-radio-selected-hover-icon-color:#f44336;--mdc-radio-selected-icon-color:#f44336;--mdc-radio-selected-pressed-icon-color:#f44336}.mat-mdc-list-option{--mdc-checkbox-disabled-selected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-disabled-unselected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-selected-checkmark-color:white;--mdc-checkbox-selected-focus-icon-color:#3f51b5;--mdc-checkbox-selected-hover-icon-color:#3f51b5;--mdc-checkbox-selected-icon-color:#3f51b5;--mdc-checkbox-selected-pressed-icon-color:#3f51b5;--mdc-checkbox-unselected-focus-icon-color:#212121;--mdc-checkbox-unselected-hover-icon-color:#212121;--mdc-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-selected-focus-state-layer-color:#3f51b5;--mdc-checkbox-selected-hover-state-layer-color:#3f51b5;--mdc-checkbox-selected-pressed-state-layer-color:#3f51b5;--mdc-checkbox-unselected-focus-state-layer-color:black;--mdc-checkbox-unselected-hover-state-layer-color:black;--mdc-checkbox-unselected-pressed-state-layer-color:black}.mat-mdc-list-option.mat-accent{--mdc-checkbox-disabled-selected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-disabled-unselected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-selected-checkmark-color:white;--mdc-checkbox-selected-focus-icon-color:#ff4081;--mdc-checkbox-selected-hover-icon-color:#ff4081;--mdc-checkbox-selected-icon-color:#ff4081;--mdc-checkbox-selected-pressed-icon-color:#ff4081;--mdc-checkbox-unselected-focus-icon-color:#212121;--mdc-checkbox-unselected-hover-icon-color:#212121;--mdc-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-selected-focus-state-layer-color:#ff4081;--mdc-checkbox-selected-hover-state-layer-color:#ff4081;--mdc-checkbox-selected-pressed-state-layer-color:#ff4081;--mdc-checkbox-unselected-focus-state-layer-color:black;--mdc-checkbox-unselected-hover-state-layer-color:black;--mdc-checkbox-unselected-pressed-state-layer-color:black}.mat-mdc-list-option.mat-warn{--mdc-checkbox-disabled-selected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-disabled-unselected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-selected-checkmark-color:white;--mdc-checkbox-selected-focus-icon-color:#f44336;--mdc-checkbox-selected-hover-icon-color:#f44336;--mdc-checkbox-selected-icon-color:#f44336;--mdc-checkbox-selected-pressed-icon-color:#f44336;--mdc-checkbox-unselected-focus-icon-color:#212121;--mdc-checkbox-unselected-hover-icon-color:#212121;--mdc-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-selected-focus-state-layer-color:#f44336;--mdc-checkbox-selected-hover-state-layer-color:#f44336;--mdc-checkbox-selected-pressed-state-layer-color:#f44336;--mdc-checkbox-unselected-focus-state-layer-color:black;--mdc-checkbox-unselected-hover-state-layer-color:black;--mdc-checkbox-unselected-pressed-state-layer-color:black}.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--selected .mdc-list-item__primary-text,.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--selected .mdc-list-item__start,.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--activated .mdc-list-item__primary-text,.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--activated .mdc-list-item__start{color:#3f51b5}.mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__start,.mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__content,.mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__end{opacity:1}html{--mdc-list-list-item-one-line-container-height:48px;--mdc-list-list-item-two-line-container-height:64px;--mdc-list-list-item-three-line-container-height:88px;--mat-list-list-item-leading-icon-start-space:16px;--mat-list-list-item-leading-icon-end-space:32px}.mdc-list-item__start,.mdc-list-item__end{--mdc-radio-state-layer-size:40px}.mat-mdc-list-item.mdc-list-item--with-leading-avatar.mdc-list-item--with-one-line,.mat-mdc-list-item.mdc-list-item--with-leading-checkbox.mdc-list-item--with-one-line,.mat-mdc-list-item.mdc-list-item--with-leading-icon.mdc-list-item--with-one-line{height:56px}.mat-mdc-list-item.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines,.mat-mdc-list-item.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines,.mat-mdc-list-item.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines{height:72px}html{--mdc-list-list-item-label-text-font:Roboto, sans-serif;--mdc-list-list-item-label-text-line-height:24px;--mdc-list-list-item-label-text-size:16px;--mdc-list-list-item-label-text-tracking:0.03125em;--mdc-list-list-item-label-text-weight:400;--mdc-list-list-item-supporting-text-font:Roboto, sans-serif;--mdc-list-list-item-supporting-text-line-height:20px;--mdc-list-list-item-supporting-text-size:14px;--mdc-list-list-item-supporting-text-tracking:0.0178571429em;--mdc-list-list-item-supporting-text-weight:400;--mdc-list-list-item-trailing-supporting-text-font:Roboto, sans-serif;--mdc-list-list-item-trailing-supporting-text-line-height:20px;--mdc-list-list-item-trailing-supporting-text-size:12px;--mdc-list-list-item-trailing-supporting-text-tracking:0.0333333333em;--mdc-list-list-item-trailing-supporting-text-weight:400}.mdc-list-group__subheader{font:400 16px/28px Roboto, sans-serif;letter-spacing:.009375em}html{--mat-paginator-container-text-color:rgba(0, 0, 0, 0.87);--mat-paginator-container-background-color:white;--mat-paginator-enabled-icon-color:rgba(0, 0, 0, 0.54);--mat-paginator-disabled-icon-color:rgba(0, 0, 0, 0.12)}html{--mat-paginator-container-size:56px;--mat-paginator-form-field-container-height:40px;--mat-paginator-form-field-container-vertical-padding:8px;--mat-paginator-touch-target-display:block}html{--mat-paginator-container-text-font:Roboto, sans-serif;--mat-paginator-container-text-line-height:20px;--mat-paginator-container-text-size:12px;--mat-paginator-container-text-tracking:0.0333333333em;--mat-paginator-container-text-weight:400;--mat-paginator-select-trigger-text-size:12px}html{--mdc-secondary-navigation-tab-container-height:48px;--mdc-tab-indicator-active-indicator-height:2px;--mdc-tab-indicator-active-indicator-shape:0;--mat-tab-header-divider-color:transparent;--mat-tab-header-divider-height:0}.mat-mdc-tab-group,.mat-mdc-tab-nav-bar{--mdc-tab-indicator-active-indicator-color:#3f51b5;--mat-tab-header-disabled-ripple-color:rgba(0, 0, 0, 0.38);--mat-tab-header-pagination-icon-color:black;--mat-tab-header-inactive-label-text-color:rgba(0, 0, 0, 0.6);--mat-tab-header-active-label-text-color:#3f51b5;--mat-tab-header-active-ripple-color:#3f51b5;--mat-tab-header-inactive-ripple-color:#3f51b5;--mat-tab-header-inactive-focus-label-text-color:rgba(0, 0, 0, 0.6);--mat-tab-header-inactive-hover-label-text-color:rgba(0, 0, 0, 0.6);--mat-tab-header-active-focus-label-text-color:#3f51b5;--mat-tab-header-active-hover-label-text-color:#3f51b5;--mat-tab-header-active-focus-indicator-color:#3f51b5;--mat-tab-header-active-hover-indicator-color:#3f51b5}.mat-mdc-tab-group.mat-accent,.mat-mdc-tab-nav-bar.mat-accent{--mdc-tab-indicator-active-indicator-color:#ff4081;--mat-tab-header-disabled-ripple-color:rgba(0, 0, 0, 0.38);--mat-tab-header-pagination-icon-color:black;--mat-tab-header-inactive-label-text-color:rgba(0, 0, 0, 0.6);--mat-tab-header-active-label-text-color:#ff4081;--mat-tab-header-active-ripple-color:#ff4081;--mat-tab-header-inactive-ripple-color:#ff4081;--mat-tab-header-inactive-focus-label-text-color:rgba(0, 0, 0, 0.6);--mat-tab-header-inactive-hover-label-text-color:rgba(0, 0, 0, 0.6);--mat-tab-header-active-focus-label-text-color:#ff4081;--mat-tab-header-active-hover-label-text-color:#ff4081;--mat-tab-header-active-focus-indicator-color:#ff4081;--mat-tab-header-active-hover-indicator-color:#ff4081}.mat-mdc-tab-group.mat-warn,.mat-mdc-tab-nav-bar.mat-warn{--mdc-tab-indicator-active-indicator-color:#f44336;--mat-tab-header-disabled-ripple-color:rgba(0, 0, 0, 0.38);--mat-tab-header-pagination-icon-color:black;--mat-tab-header-inactive-label-text-color:rgba(0, 0, 0, 0.6);--mat-tab-header-active-label-text-color:#f44336;--mat-tab-header-active-ripple-color:#f44336;--mat-tab-header-inactive-ripple-color:#f44336;--mat-tab-header-inactive-focus-label-text-color:rgba(0, 0, 0, 0.6);--mat-tab-header-inactive-hover-label-text-color:rgba(0, 0, 0, 0.6);--mat-tab-header-active-focus-label-text-color:#f44336;--mat-tab-header-active-hover-label-text-color:#f44336;--mat-tab-header-active-focus-indicator-color:#f44336;--mat-tab-header-active-hover-indicator-color:#f44336}.mat-mdc-tab-group.mat-background-primary,.mat-mdc-tab-nav-bar.mat-background-primary{--mat-tab-header-with-background-background-color:#3f51b5;--mat-tab-header-with-background-foreground-color:white}.mat-mdc-tab-group.mat-background-accent,.mat-mdc-tab-nav-bar.mat-background-accent{--mat-tab-header-with-background-background-color:#ff4081;--mat-tab-header-with-background-foreground-color:white}.mat-mdc-tab-group.mat-background-warn,.mat-mdc-tab-nav-bar.mat-background-warn{--mat-tab-header-with-background-background-color:#f44336;--mat-tab-header-with-background-foreground-color:white}.mat-mdc-tab-header{--mdc-secondary-navigation-tab-container-height:48px}.mat-mdc-tab-header{--mat-tab-header-label-text-font:Roboto, sans-serif;--mat-tab-header-label-text-size:14px;--mat-tab-header-label-text-tracking:0.0892857143em;--mat-tab-header-label-text-line-height:36px;--mat-tab-header-label-text-weight:500}html{--mdc-checkbox-disabled-selected-checkmark-color:#fff;--mdc-checkbox-selected-focus-state-layer-opacity:0.16;--mdc-checkbox-selected-hover-state-layer-opacity:0.04;--mdc-checkbox-selected-pressed-state-layer-opacity:0.16;--mdc-checkbox-unselected-focus-state-layer-opacity:0.16;--mdc-checkbox-unselected-hover-state-layer-opacity:0.04;--mdc-checkbox-unselected-pressed-state-layer-opacity:0.16}html{--mdc-checkbox-disabled-selected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-disabled-unselected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-selected-checkmark-color:white;--mdc-checkbox-selected-focus-icon-color:#ff4081;--mdc-checkbox-selected-hover-icon-color:#ff4081;--mdc-checkbox-selected-icon-color:#ff4081;--mdc-checkbox-selected-pressed-icon-color:#ff4081;--mdc-checkbox-unselected-focus-icon-color:#212121;--mdc-checkbox-unselected-hover-icon-color:#212121;--mdc-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-selected-focus-state-layer-color:#ff4081;--mdc-checkbox-selected-hover-state-layer-color:#ff4081;--mdc-checkbox-selected-pressed-state-layer-color:#ff4081;--mdc-checkbox-unselected-focus-state-layer-color:black;--mdc-checkbox-unselected-hover-state-layer-color:black;--mdc-checkbox-unselected-pressed-state-layer-color:black;--mat-checkbox-disabled-label-color:rgba(0, 0, 0, 0.38);--mat-checkbox-label-text-color:rgba(0, 0, 0, 0.87)}.mat-mdc-checkbox.mat-primary{--mdc-checkbox-disabled-selected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-disabled-unselected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-selected-checkmark-color:white;--mdc-checkbox-selected-focus-icon-color:#3f51b5;--mdc-checkbox-selected-hover-icon-color:#3f51b5;--mdc-checkbox-selected-icon-color:#3f51b5;--mdc-checkbox-selected-pressed-icon-color:#3f51b5;--mdc-checkbox-unselected-focus-icon-color:#212121;--mdc-checkbox-unselected-hover-icon-color:#212121;--mdc-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-selected-focus-state-layer-color:#3f51b5;--mdc-checkbox-selected-hover-state-layer-color:#3f51b5;--mdc-checkbox-selected-pressed-state-layer-color:#3f51b5;--mdc-checkbox-unselected-focus-state-layer-color:black;--mdc-checkbox-unselected-hover-state-layer-color:black;--mdc-checkbox-unselected-pressed-state-layer-color:black}.mat-mdc-checkbox.mat-warn{--mdc-checkbox-disabled-selected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-disabled-unselected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-selected-checkmark-color:white;--mdc-checkbox-selected-focus-icon-color:#f44336;--mdc-checkbox-selected-hover-icon-color:#f44336;--mdc-checkbox-selected-icon-color:#f44336;--mdc-checkbox-selected-pressed-icon-color:#f44336;--mdc-checkbox-unselected-focus-icon-color:#212121;--mdc-checkbox-unselected-hover-icon-color:#212121;--mdc-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-selected-focus-state-layer-color:#f44336;--mdc-checkbox-selected-hover-state-layer-color:#f44336;--mdc-checkbox-selected-pressed-state-layer-color:#f44336;--mdc-checkbox-unselected-focus-state-layer-color:black;--mdc-checkbox-unselected-hover-state-layer-color:black;--mdc-checkbox-unselected-pressed-state-layer-color:black}html{--mdc-checkbox-state-layer-size:40px;--mat-checkbox-touch-target-display:block}html{--mat-checkbox-label-text-font:Roboto, sans-serif;--mat-checkbox-label-text-line-height:20px;--mat-checkbox-label-text-size:14px;--mat-checkbox-label-text-tracking:0.0178571429em;--mat-checkbox-label-text-weight:400}html{--mdc-text-button-container-shape:4px;--mdc-text-button-keep-touch-target:false;--mdc-filled-button-container-shape:4px;--mdc-filled-button-keep-touch-target:false;--mdc-protected-button-container-shape:4px;--mdc-protected-button-container-elevation-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);--mdc-protected-button-disabled-container-elevation-shadow:0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);--mdc-protected-button-focus-container-elevation-shadow:0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);--mdc-protected-button-hover-container-elevation-shadow:0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);--mdc-protected-button-pressed-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);--mdc-outlined-button-keep-touch-target:false;--mdc-outlined-button-outline-width:1px;--mdc-outlined-button-container-shape:4px;--mat-text-button-horizontal-padding:8px;--mat-text-button-with-icon-horizontal-padding:8px;--mat-text-button-icon-spacing:8px;--mat-text-button-icon-offset:0;--mat-filled-button-horizontal-padding:16px;--mat-filled-button-icon-spacing:8px;--mat-filled-button-icon-offset:-4px;--mat-protected-button-horizontal-padding:16px;--mat-protected-button-icon-spacing:8px;--mat-protected-button-icon-offset:-4px;--mat-outlined-button-horizontal-padding:15px;--mat-outlined-button-icon-spacing:8px;--mat-outlined-button-icon-offset:-4px}html{--mdc-text-button-label-text-color:black;--mdc-text-button-disabled-label-text-color:rgba(0, 0, 0, 0.38);--mat-text-button-state-layer-color:black;--mat-text-button-disabled-state-layer-color:black;--mat-text-button-ripple-color:rgba(0, 0, 0, 0.1);--mat-text-button-hover-state-layer-opacity:0.04;--mat-text-button-focus-state-layer-opacity:0.12;--mat-text-button-pressed-state-layer-opacity:0.12;--mdc-filled-button-container-color:white;--mdc-filled-button-label-text-color:black;--mdc-filled-button-disabled-container-color:rgba(0, 0, 0, 0.12);--mdc-filled-button-disabled-label-text-color:rgba(0, 0, 0, 0.38);--mat-filled-button-state-layer-color:black;--mat-filled-button-disabled-state-layer-color:black;--mat-filled-button-ripple-color:rgba(0, 0, 0, 0.1);--mat-filled-button-hover-state-layer-opacity:0.04;--mat-filled-button-focus-state-layer-opacity:0.12;--mat-filled-button-pressed-state-layer-opacity:0.12;--mdc-protected-button-container-color:white;--mdc-protected-button-label-text-color:black;--mdc-protected-button-disabled-container-color:rgba(0, 0, 0, 0.12);--mdc-protected-button-disabled-label-text-color:rgba(0, 0, 0, 0.38);--mat-protected-button-state-layer-color:black;--mat-protected-button-disabled-state-layer-color:black;--mat-protected-button-ripple-color:rgba(0, 0, 0, 0.1);--mat-protected-button-hover-state-layer-opacity:0.04;--mat-protected-button-focus-state-layer-opacity:0.12;--mat-protected-button-pressed-state-layer-opacity:0.12;--mdc-outlined-button-disabled-outline-color:rgba(0, 0, 0, 0.12);--mdc-outlined-button-disabled-label-text-color:rgba(0, 0, 0, 0.38);--mdc-outlined-button-label-text-color:black;--mdc-outlined-button-outline-color:rgba(0, 0, 0, 0.12);--mat-outlined-button-state-layer-color:black;--mat-outlined-button-disabled-state-layer-color:black;--mat-outlined-button-ripple-color:rgba(0, 0, 0, 0.1);--mat-outlined-button-hover-state-layer-opacity:0.04;--mat-outlined-button-focus-state-layer-opacity:0.12;--mat-outlined-button-pressed-state-layer-opacity:0.12}.mat-mdc-button.mat-primary{--mdc-text-button-label-text-color:#3f51b5;--mat-text-button-state-layer-color:#3f51b5;--mat-text-button-ripple-color:rgba(63, 81, 181, 0.1)}.mat-mdc-button.mat-accent{--mdc-text-button-label-text-color:#ff4081;--mat-text-button-state-layer-color:#ff4081;--mat-text-button-ripple-color:rgba(255, 64, 129, 0.1)}.mat-mdc-button.mat-warn{--mdc-text-button-label-text-color:#f44336;--mat-text-button-state-layer-color:#f44336;--mat-text-button-ripple-color:rgba(244, 67, 54, 0.1)}.mat-mdc-unelevated-button.mat-primary{--mdc-filled-button-container-color:#3f51b5;--mdc-filled-button-label-text-color:white;--mat-filled-button-state-layer-color:white;--mat-filled-button-ripple-color:rgba(255, 255, 255, 0.1)}.mat-mdc-unelevated-button.mat-accent{--mdc-filled-button-container-color:#ff4081;--mdc-filled-button-label-text-color:white;--mat-filled-button-state-layer-color:white;--mat-filled-button-ripple-color:rgba(255, 255, 255, 0.1)}.mat-mdc-unelevated-button.mat-warn{--mdc-filled-button-container-color:#f44336;--mdc-filled-button-label-text-color:white;--mat-filled-button-state-layer-color:white;--mat-filled-button-ripple-color:rgba(255, 255, 255, 0.1)}.mat-mdc-raised-button.mat-primary{--mdc-protected-button-container-color:#3f51b5;--mdc-protected-button-label-text-color:white;--mat-protected-button-state-layer-color:white;--mat-protected-button-ripple-color:rgba(255, 255, 255, 0.1)}.mat-mdc-raised-button.mat-accent{--mdc-protected-button-container-color:#ff4081;--mdc-protected-button-label-text-color:white;--mat-protected-button-state-layer-color:white;--mat-protected-button-ripple-color:rgba(255, 255, 255, 0.1)}.mat-mdc-raised-button.mat-warn{--mdc-protected-button-container-color:#f44336;--mdc-protected-button-label-text-color:white;--mat-protected-button-state-layer-color:white;--mat-protected-button-ripple-color:rgba(255, 255, 255, 0.1)}.mat-mdc-outlined-button.mat-primary{--mdc-outlined-button-label-text-color:#3f51b5;--mdc-outlined-button-outline-color:rgba(0, 0, 0, 0.12);--mat-outlined-button-state-layer-color:#3f51b5;--mat-outlined-button-ripple-color:rgba(63, 81, 181, 0.1)}.mat-mdc-outlined-button.mat-accent{--mdc-outlined-button-label-text-color:#ff4081;--mdc-outlined-button-outline-color:rgba(0, 0, 0, 0.12);--mat-outlined-button-state-layer-color:#ff4081;--mat-outlined-button-ripple-color:rgba(255, 64, 129, 0.1)}.mat-mdc-outlined-button.mat-warn{--mdc-outlined-button-label-text-color:#f44336;--mdc-outlined-button-outline-color:rgba(0, 0, 0, 0.12);--mat-outlined-button-state-layer-color:#f44336;--mat-outlined-button-ripple-color:rgba(244, 67, 54, 0.1)}html{--mdc-text-button-container-height:36px;--mdc-filled-button-container-height:36px;--mdc-protected-button-container-height:36px;--mdc-outlined-button-container-height:36px;--mat-text-button-touch-target-display:block;--mat-filled-button-touch-target-display:block;--mat-protected-button-touch-target-display:block;--mat-outlined-button-touch-target-display:block}html{--mdc-text-button-label-text-font:Roboto, sans-serif;--mdc-text-button-label-text-size:14px;--mdc-text-button-label-text-tracking:0.0892857143em;--mdc-text-button-label-text-weight:500;--mdc-text-button-label-text-transform:none;--mdc-filled-button-label-text-font:Roboto, sans-serif;--mdc-filled-button-label-text-size:14px;--mdc-filled-button-label-text-tracking:0.0892857143em;--mdc-filled-button-label-text-weight:500;--mdc-filled-button-label-text-transform:none;--mdc-protected-button-label-text-font:Roboto, sans-serif;--mdc-protected-button-label-text-size:14px;--mdc-protected-button-label-text-tracking:0.0892857143em;--mdc-protected-button-label-text-weight:500;--mdc-protected-button-label-text-transform:none;--mdc-outlined-button-label-text-font:Roboto, sans-serif;--mdc-outlined-button-label-text-size:14px;--mdc-outlined-button-label-text-tracking:0.0892857143em;--mdc-outlined-button-label-text-weight:500;--mdc-outlined-button-label-text-transform:none}html{--mdc-icon-button-icon-size:24px}html{--mdc-icon-button-icon-color:inherit;--mdc-icon-button-disabled-icon-color:rgba(0, 0, 0, 0.38);--mat-icon-button-state-layer-color:black;--mat-icon-button-disabled-state-layer-color:black;--mat-icon-button-ripple-color:rgba(0, 0, 0, 0.1);--mat-icon-button-hover-state-layer-opacity:0.04;--mat-icon-button-focus-state-layer-opacity:0.12;--mat-icon-button-pressed-state-layer-opacity:0.12}html .mat-mdc-icon-button.mat-primary{--mdc-icon-button-icon-color:#3f51b5;--mat-icon-button-state-layer-color:#3f51b5;--mat-icon-button-ripple-color:rgba(63, 81, 181, 0.1)}html .mat-mdc-icon-button.mat-accent{--mdc-icon-button-icon-color:#ff4081;--mat-icon-button-state-layer-color:#ff4081;--mat-icon-button-ripple-color:rgba(255, 64, 129, 0.1)}html .mat-mdc-icon-button.mat-warn{--mdc-icon-button-icon-color:#f44336;--mat-icon-button-state-layer-color:#f44336;--mat-icon-button-ripple-color:rgba(244, 67, 54, 0.1)}html{--mat-icon-button-touch-target-display:block}.mat-mdc-icon-button.mat-mdc-button-base{--mdc-icon-button-state-layer-size: 48px;width:var(--mdc-icon-button-state-layer-size);height:var(--mdc-icon-button-state-layer-size);padding:12px}html{--mdc-fab-container-shape:50%;--mdc-fab-container-elevation-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);--mdc-fab-focus-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);--mdc-fab-hover-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);--mdc-fab-pressed-container-elevation-shadow:0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);--mdc-fab-small-container-shape:50%;--mdc-fab-small-container-elevation-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);--mdc-fab-small-focus-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);--mdc-fab-small-hover-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);--mdc-fab-small-pressed-container-elevation-shadow:0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);--mdc-extended-fab-container-height:48px;--mdc-extended-fab-container-shape:24px;--mdc-extended-fab-container-elevation-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);--mdc-extended-fab-focus-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);--mdc-extended-fab-hover-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);--mdc-extended-fab-pressed-container-elevation-shadow:0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12)}html{--mdc-fab-container-color:white;--mat-fab-foreground-color:black;--mat-fab-state-layer-color:black;--mat-fab-disabled-state-layer-color:black;--mat-fab-ripple-color:rgba(0, 0, 0, 0.1);--mat-fab-hover-state-layer-opacity:0.04;--mat-fab-focus-state-layer-opacity:0.12;--mat-fab-pressed-state-layer-opacity:0.12;--mat-fab-disabled-state-container-color:rgba(0, 0, 0, 0.12);--mat-fab-disabled-state-foreground-color:rgba(0, 0, 0, 0.38);--mdc-fab-small-container-color:white;--mat-fab-small-foreground-color:black;--mat-fab-small-state-layer-color:black;--mat-fab-small-disabled-state-layer-color:black;--mat-fab-small-ripple-color:rgba(0, 0, 0, 0.1);--mat-fab-small-hover-state-layer-opacity:0.04;--mat-fab-small-focus-state-layer-opacity:0.12;--mat-fab-small-pressed-state-layer-opacity:0.12;--mat-fab-small-disabled-state-container-color:rgba(0, 0, 0, 0.12);--mat-fab-small-disabled-state-foreground-color:rgba(0, 0, 0, 0.38)}html .mat-mdc-fab.mat-primary{--mdc-fab-container-color:#3f51b5;--mat-fab-foreground-color:white;--mat-fab-state-layer-color:white;--mat-fab-ripple-color:rgba(255, 255, 255, 0.1)}html .mat-mdc-fab.mat-accent{--mdc-fab-container-color:#ff4081;--mat-fab-foreground-color:white;--mat-fab-state-layer-color:white;--mat-fab-ripple-color:rgba(255, 255, 255, 0.1)}html .mat-mdc-fab.mat-warn{--mdc-fab-container-color:#f44336;--mat-fab-foreground-color:white;--mat-fab-state-layer-color:white;--mat-fab-ripple-color:rgba(255, 255, 255, 0.1)}html .mat-mdc-mini-fab.mat-primary{--mdc-fab-small-container-color:#3f51b5;--mat-fab-small-foreground-color:white;--mat-fab-small-state-layer-color:white;--mat-fab-small-ripple-color:rgba(255, 255, 255, 0.1)}html .mat-mdc-mini-fab.mat-accent{--mdc-fab-small-container-color:#ff4081;--mat-fab-small-foreground-color:white;--mat-fab-small-state-layer-color:white;--mat-fab-small-ripple-color:rgba(255, 255, 255, 0.1)}html .mat-mdc-mini-fab.mat-warn{--mdc-fab-small-container-color:#f44336;--mat-fab-small-foreground-color:white;--mat-fab-small-state-layer-color:white;--mat-fab-small-ripple-color:rgba(255, 255, 255, 0.1)}html{--mat-fab-touch-target-display:block;--mat-fab-small-touch-target-display:block}html{--mdc-extended-fab-label-text-font:Roboto, sans-serif;--mdc-extended-fab-label-text-size:14px;--mdc-extended-fab-label-text-tracking:0.0892857143em;--mdc-extended-fab-label-text-weight:500}html{--mdc-snackbar-container-shape:4px}html{--mdc-snackbar-container-color:#333333;--mdc-snackbar-supporting-text-color:rgba(255, 255, 255, 0.87);--mat-snack-bar-button-color:#ff4081}html{--mdc-snackbar-supporting-text-font:Roboto, sans-serif;--mdc-snackbar-supporting-text-line-height:20px;--mdc-snackbar-supporting-text-size:14px;--mdc-snackbar-supporting-text-weight:400}html{--mat-table-row-item-outline-width:1px}html{--mat-table-background-color:white;--mat-table-header-headline-color:rgba(0, 0, 0, 0.87);--mat-table-row-item-label-text-color:rgba(0, 0, 0, 0.87);--mat-table-row-item-outline-color:rgba(0, 0, 0, 0.12)}html{--mat-table-header-container-height:56px;--mat-table-footer-container-height:52px;--mat-table-row-item-container-height:52px}html{--mat-table-header-headline-font:Roboto, sans-serif;--mat-table-header-headline-line-height:22px;--mat-table-header-headline-size:14px;--mat-table-header-headline-weight:500;--mat-table-header-headline-tracking:0.0071428571em;--mat-table-row-item-label-text-font:Roboto, sans-serif;--mat-table-row-item-label-text-line-height:20px;--mat-table-row-item-label-text-size:14px;--mat-table-row-item-label-text-weight:400;--mat-table-row-item-label-text-tracking:0.0178571429em;--mat-table-footer-supporting-text-font:Roboto, sans-serif;--mat-table-footer-supporting-text-line-height:20px;--mat-table-footer-supporting-text-size:14px;--mat-table-footer-supporting-text-weight:400;--mat-table-footer-supporting-text-tracking:0.0178571429em}html{--mdc-circular-progress-active-indicator-width:4px;--mdc-circular-progress-size:48px}html{--mdc-circular-progress-active-indicator-color:#3f51b5}html .mat-accent{--mdc-circular-progress-active-indicator-color:#ff4081}html .mat-warn{--mdc-circular-progress-active-indicator-color:#f44336}html{--mat-badge-container-shape:50%;--mat-badge-container-size:unset;--mat-badge-small-size-container-size:unset;--mat-badge-large-size-container-size:unset;--mat-badge-legacy-container-size:22px;--mat-badge-legacy-small-size-container-size:16px;--mat-badge-legacy-large-size-container-size:28px;--mat-badge-container-offset:-11px 0;--mat-badge-small-size-container-offset:-8px 0;--mat-badge-large-size-container-offset:-14px 0;--mat-badge-container-overlap-offset:-11px;--mat-badge-small-size-container-overlap-offset:-8px;--mat-badge-large-size-container-overlap-offset:-14px;--mat-badge-container-padding:0;--mat-badge-small-size-container-padding:0;--mat-badge-large-size-container-padding:0}html{--mat-badge-background-color:#3f51b5;--mat-badge-text-color:white;--mat-badge-disabled-state-background-color:#b9b9b9;--mat-badge-disabled-state-text-color:rgba(0, 0, 0, 0.38)}.mat-badge-accent{--mat-badge-background-color:#ff4081;--mat-badge-text-color:white}.mat-badge-warn{--mat-badge-background-color:#f44336;--mat-badge-text-color:white}html{--mat-badge-text-font:Roboto, sans-serif;--mat-badge-line-height:22px;--mat-badge-text-size:12px;--mat-badge-text-weight:600;--mat-badge-small-size-text-size:9px;--mat-badge-small-size-line-height:16px;--mat-badge-large-size-text-size:24px;--mat-badge-large-size-line-height:28px}html{--mat-bottom-sheet-container-shape:4px}html{--mat-bottom-sheet-container-text-color:rgba(0, 0, 0, 0.87);--mat-bottom-sheet-container-background-color:white}html{--mat-bottom-sheet-container-text-font:Roboto, sans-serif;--mat-bottom-sheet-container-text-line-height:20px;--mat-bottom-sheet-container-text-size:14px;--mat-bottom-sheet-container-text-tracking:0.0178571429em;--mat-bottom-sheet-container-text-weight:400}html{--mat-legacy-button-toggle-height:36px;--mat-legacy-button-toggle-shape:2px;--mat-legacy-button-toggle-focus-state-layer-opacity:1;--mat-standard-button-toggle-shape:4px;--mat-standard-button-toggle-hover-state-layer-opacity:0.04;--mat-standard-button-toggle-focus-state-layer-opacity:0.12}html{--mat-legacy-button-toggle-text-color:rgba(0, 0, 0, 0.38);--mat-legacy-button-toggle-state-layer-color:rgba(0, 0, 0, 0.12);--mat-legacy-button-toggle-selected-state-text-color:rgba(0, 0, 0, 0.54);--mat-legacy-button-toggle-selected-state-background-color:#e0e0e0;--mat-legacy-button-toggle-disabled-state-text-color:rgba(0, 0, 0, 0.26);--mat-legacy-button-toggle-disabled-state-background-color:#eeeeee;--mat-legacy-button-toggle-disabled-selected-state-background-color:#bdbdbd;--mat-standard-button-toggle-text-color:rgba(0, 0, 0, 0.87);--mat-standard-button-toggle-background-color:white;--mat-standard-button-toggle-state-layer-color:black;--mat-standard-button-toggle-selected-state-background-color:#e0e0e0;--mat-standard-button-toggle-selected-state-text-color:rgba(0, 0, 0, 0.87);--mat-standard-button-toggle-disabled-state-text-color:rgba(0, 0, 0, 0.26);--mat-standard-button-toggle-disabled-state-background-color:white;--mat-standard-button-toggle-disabled-selected-state-text-color:rgba(0, 0, 0, 0.87);--mat-standard-button-toggle-disabled-selected-state-background-color:#bdbdbd;--mat-standard-button-toggle-divider-color:#e0e0e0}html{--mat-standard-button-toggle-height:48px}html{--mat-legacy-button-toggle-label-text-font:Roboto, sans-serif;--mat-legacy-button-toggle-label-text-line-height:24px;--mat-legacy-button-toggle-label-text-size:16px;--mat-legacy-button-toggle-label-text-tracking:0.03125em;--mat-legacy-button-toggle-label-text-weight:400;--mat-standard-button-toggle-label-text-font:Roboto, sans-serif;--mat-standard-button-toggle-label-text-line-height:24px;--mat-standard-button-toggle-label-text-size:16px;--mat-standard-button-toggle-label-text-tracking:0.03125em;--mat-standard-button-toggle-label-text-weight:400}html{--mat-datepicker-calendar-container-shape:4px;--mat-datepicker-calendar-container-touch-shape:4px;--mat-datepicker-calendar-container-elevation-shadow:0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);--mat-datepicker-calendar-container-touch-elevation-shadow:0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12)}html{--mat-datepicker-calendar-date-selected-state-text-color:white;--mat-datepicker-calendar-date-selected-state-background-color:#3f51b5;--mat-datepicker-calendar-date-selected-disabled-state-background-color:rgba(63, 81, 181, 0.4);--mat-datepicker-calendar-date-today-selected-state-outline-color:white;--mat-datepicker-calendar-date-focus-state-background-color:rgba(63, 81, 181, 0.3);--mat-datepicker-calendar-date-hover-state-background-color:rgba(63, 81, 181, 0.3);--mat-datepicker-toggle-active-state-icon-color:#3f51b5;--mat-datepicker-calendar-date-in-range-state-background-color:rgba(63, 81, 181, 0.2);--mat-datepicker-calendar-date-in-comparison-range-state-background-color:rgba(249, 171, 0, 0.2);--mat-datepicker-calendar-date-in-overlap-range-state-background-color:#a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color:#46a35e;--mat-datepicker-toggle-icon-color:rgba(0, 0, 0, 0.54);--mat-datepicker-calendar-body-label-text-color:rgba(0, 0, 0, 0.54);--mat-datepicker-calendar-period-button-text-color:black;--mat-datepicker-calendar-period-button-icon-color:rgba(0, 0, 0, 0.54);--mat-datepicker-calendar-navigation-button-icon-color:rgba(0, 0, 0, 0.54);--mat-datepicker-calendar-header-divider-color:rgba(0, 0, 0, 0.12);--mat-datepicker-calendar-header-text-color:rgba(0, 0, 0, 0.54);--mat-datepicker-calendar-date-today-outline-color:rgba(0, 0, 0, 0.38);--mat-datepicker-calendar-date-today-disabled-state-outline-color:rgba(0, 0, 0, 0.18);--mat-datepicker-calendar-date-text-color:rgba(0, 0, 0, 0.87);--mat-datepicker-calendar-date-outline-color:transparent;--mat-datepicker-calendar-date-disabled-state-text-color:rgba(0, 0, 0, 0.38);--mat-datepicker-calendar-date-preview-state-outline-color:rgba(0, 0, 0, 0.24);--mat-datepicker-range-input-separator-color:rgba(0, 0, 0, 0.87);--mat-datepicker-range-input-disabled-state-separator-color:rgba(0, 0, 0, 0.38);--mat-datepicker-range-input-disabled-state-text-color:rgba(0, 0, 0, 0.38);--mat-datepicker-calendar-container-background-color:white;--mat-datepicker-calendar-container-text-color:rgba(0, 0, 0, 0.87)}.mat-datepicker-content.mat-accent{--mat-datepicker-calendar-date-selected-state-text-color:white;--mat-datepicker-calendar-date-selected-state-background-color:#ff4081;--mat-datepicker-calendar-date-selected-disabled-state-background-color:rgba(255, 64, 129, 0.4);--mat-datepicker-calendar-date-today-selected-state-outline-color:white;--mat-datepicker-calendar-date-focus-state-background-color:rgba(255, 64, 129, 0.3);--mat-datepicker-calendar-date-hover-state-background-color:rgba(255, 64, 129, 0.3);--mat-datepicker-calendar-date-in-range-state-background-color:rgba(255, 64, 129, 0.2);--mat-datepicker-calendar-date-in-comparison-range-state-background-color:rgba(249, 171, 0, 0.2);--mat-datepicker-calendar-date-in-overlap-range-state-background-color:#a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color:#46a35e}.mat-datepicker-content.mat-warn{--mat-datepicker-calendar-date-selected-state-text-color:white;--mat-datepicker-calendar-date-selected-state-background-color:#f44336;--mat-datepicker-calendar-date-selected-disabled-state-background-color:rgba(244, 67, 54, 0.4);--mat-datepicker-calendar-date-today-selected-state-outline-color:white;--mat-datepicker-calendar-date-focus-state-background-color:rgba(244, 67, 54, 0.3);--mat-datepicker-calendar-date-hover-state-background-color:rgba(244, 67, 54, 0.3);--mat-datepicker-calendar-date-in-range-state-background-color:rgba(244, 67, 54, 0.2);--mat-datepicker-calendar-date-in-comparison-range-state-background-color:rgba(249, 171, 0, 0.2);--mat-datepicker-calendar-date-in-overlap-range-state-background-color:#a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color:#46a35e}.mat-datepicker-toggle-active.mat-accent{--mat-datepicker-toggle-active-state-icon-color:#ff4081}.mat-datepicker-toggle-active.mat-warn{--mat-datepicker-toggle-active-state-icon-color:#f44336}.mat-calendar-controls{--mat-icon-button-touch-target-display:none}.mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base{--mdc-icon-button-state-layer-size: 40px;width:var(--mdc-icon-button-state-layer-size);height:var(--mdc-icon-button-state-layer-size);padding:8px}html{--mat-datepicker-calendar-text-font:Roboto, sans-serif;--mat-datepicker-calendar-text-size:13px;--mat-datepicker-calendar-body-label-text-size:14px;--mat-datepicker-calendar-body-label-text-weight:500;--mat-datepicker-calendar-period-button-text-size:14px;--mat-datepicker-calendar-period-button-text-weight:500;--mat-datepicker-calendar-header-text-size:11px;--mat-datepicker-calendar-header-text-weight:400}html{--mat-divider-width:1px}html{--mat-divider-color:rgba(0, 0, 0, 0.12)}html{--mat-expansion-container-shape:4px;--mat-expansion-legacy-header-indicator-display:inline-block;--mat-expansion-header-indicator-display:none}html{--mat-expansion-container-background-color:white;--mat-expansion-container-text-color:rgba(0, 0, 0, 0.87);--mat-expansion-actions-divider-color:rgba(0, 0, 0, 0.12);--mat-expansion-header-hover-state-layer-color:rgba(0, 0, 0, 0.04);--mat-expansion-header-focus-state-layer-color:rgba(0, 0, 0, 0.04);--mat-expansion-header-disabled-state-text-color:rgba(0, 0, 0, 0.26);--mat-expansion-header-text-color:rgba(0, 0, 0, 0.87);--mat-expansion-header-description-color:rgba(0, 0, 0, 0.54);--mat-expansion-header-indicator-color:rgba(0, 0, 0, 0.54)}html{--mat-expansion-header-collapsed-state-height:48px;--mat-expansion-header-expanded-state-height:64px}html{--mat-expansion-header-text-font:Roboto, sans-serif;--mat-expansion-header-text-size:14px;--mat-expansion-header-text-weight:500;--mat-expansion-header-text-line-height:inherit;--mat-expansion-header-text-tracking:inherit;--mat-expansion-container-text-font:Roboto, sans-serif;--mat-expansion-container-text-line-height:20px;--mat-expansion-container-text-size:14px;--mat-expansion-container-text-tracking:0.0178571429em;--mat-expansion-container-text-weight:400}html{--mat-grid-list-tile-header-primary-text-size:14px;--mat-grid-list-tile-header-secondary-text-size:12px;--mat-grid-list-tile-footer-primary-text-size:14px;--mat-grid-list-tile-footer-secondary-text-size:12px}html{--mat-icon-color:inherit}.mat-icon.mat-primary{--mat-icon-color:#3f51b5}.mat-icon.mat-accent{--mat-icon-color:#ff4081}.mat-icon.mat-warn{--mat-icon-color:#f44336}html{--mat-sidenav-container-shape:0;--mat-sidenav-container-elevation-shadow:0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);--mat-sidenav-container-width:auto}html{--mat-sidenav-container-divider-color:rgba(0, 0, 0, 0.12);--mat-sidenav-container-background-color:white;--mat-sidenav-container-text-color:rgba(0, 0, 0, 0.87);--mat-sidenav-content-background-color:#fafafa;--mat-sidenav-content-text-color:rgba(0, 0, 0, 0.87);--mat-sidenav-scrim-color:rgba(0, 0, 0, 0.6)}html{--mat-stepper-header-icon-foreground-color:white;--mat-stepper-header-selected-state-icon-background-color:#3f51b5;--mat-stepper-header-selected-state-icon-foreground-color:white;--mat-stepper-header-done-state-icon-background-color:#3f51b5;--mat-stepper-header-done-state-icon-foreground-color:white;--mat-stepper-header-edit-state-icon-background-color:#3f51b5;--mat-stepper-header-edit-state-icon-foreground-color:white;--mat-stepper-container-color:white;--mat-stepper-line-color:rgba(0, 0, 0, 0.12);--mat-stepper-header-hover-state-layer-color:rgba(0, 0, 0, 0.04);--mat-stepper-header-focus-state-layer-color:rgba(0, 0, 0, 0.04);--mat-stepper-header-label-text-color:rgba(0, 0, 0, 0.54);--mat-stepper-header-optional-label-text-color:rgba(0, 0, 0, 0.54);--mat-stepper-header-selected-state-label-text-color:rgba(0, 0, 0, 0.87);--mat-stepper-header-error-state-label-text-color:#f44336;--mat-stepper-header-icon-background-color:rgba(0, 0, 0, 0.54);--mat-stepper-header-error-state-icon-foreground-color:#f44336;--mat-stepper-header-error-state-icon-background-color:transparent}html .mat-step-header.mat-accent{--mat-stepper-header-icon-foreground-color:white;--mat-stepper-header-selected-state-icon-background-color:#ff4081;--mat-stepper-header-selected-state-icon-foreground-color:white;--mat-stepper-header-done-state-icon-background-color:#ff4081;--mat-stepper-header-done-state-icon-foreground-color:white;--mat-stepper-header-edit-state-icon-background-color:#ff4081;--mat-stepper-header-edit-state-icon-foreground-color:white}html .mat-step-header.mat-warn{--mat-stepper-header-icon-foreground-color:white;--mat-stepper-header-selected-state-icon-background-color:#f44336;--mat-stepper-header-selected-state-icon-foreground-color:white;--mat-stepper-header-done-state-icon-background-color:#f44336;--mat-stepper-header-done-state-icon-foreground-color:white;--mat-stepper-header-edit-state-icon-background-color:#f44336;--mat-stepper-header-edit-state-icon-foreground-color:white}html{--mat-stepper-header-height:72px}html{--mat-stepper-container-text-font:Roboto, sans-serif;--mat-stepper-header-label-text-font:Roboto, sans-serif;--mat-stepper-header-label-text-size:14px;--mat-stepper-header-label-text-weight:400;--mat-stepper-header-error-state-label-text-size:16px;--mat-stepper-header-selected-state-label-text-size:16px;--mat-stepper-header-selected-state-label-text-weight:400}html{--mat-sort-arrow-color:#757575}html{--mat-toolbar-container-background-color:whitesmoke;--mat-toolbar-container-text-color:rgba(0, 0, 0, 0.87)}.mat-toolbar.mat-primary{--mat-toolbar-container-background-color:#3f51b5;--mat-toolbar-container-text-color:white}.mat-toolbar.mat-accent{--mat-toolbar-container-background-color:#ff4081;--mat-toolbar-container-text-color:white}.mat-toolbar.mat-warn{--mat-toolbar-container-background-color:#f44336;--mat-toolbar-container-text-color:white}html{--mat-toolbar-standard-height:64px;--mat-toolbar-mobile-height:56px}html{--mat-toolbar-title-text-font:Roboto, sans-serif;--mat-toolbar-title-text-line-height:32px;--mat-toolbar-title-text-size:20px;--mat-toolbar-title-text-tracking:0.0125em;--mat-toolbar-title-text-weight:500}html{--mat-tree-container-background-color:white;--mat-tree-node-text-color:rgba(0, 0, 0, 0.87)}html{--mat-tree-node-min-height:48px}html{--mat-tree-node-text-font:Roboto, sans-serif;--mat-tree-node-text-size:14px;--mat-tree-node-text-weight:400}.mat-h1,.mat-headline-5,.mat-typography .mat-h1,.mat-typography .mat-headline-5,.mat-typography h1{font:400 24px/32px Roboto, sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2,.mat-headline-6,.mat-typography .mat-h2,.mat-typography .mat-headline-6,.mat-typography h2{font:500 20px/32px Roboto, sans-serif;letter-spacing:.0125em;margin:0 0 16px}.mat-h3,.mat-subtitle-1,.mat-typography .mat-h3,.mat-typography .mat-subtitle-1,.mat-typography h3{font:400 16px/28px Roboto, sans-serif;letter-spacing:.009375em;margin:0 0 16px}.mat-h4,.mat-body-1,.mat-typography .mat-h4,.mat-typography .mat-body-1,.mat-typography h4{font:400 16px/24px Roboto, sans-serif;letter-spacing:.03125em;margin:0 0 16px}.mat-h5,.mat-typography .mat-h5,.mat-typography h5{font:400 calc(14px*.83)/20px Roboto, sans-serif;margin:0 0 12px}.mat-h6,.mat-typography .mat-h6,.mat-typography h6{font:400 calc(14px*.67)/20px Roboto, sans-serif;margin:0 0 12px}.mat-body-strong,.mat-subtitle-2,.mat-typography .mat-body-strong,.mat-typography .mat-subtitle-2{font:500 14px/22px Roboto, sans-serif;letter-spacing:.0071428571em}.mat-body,.mat-body-2,.mat-typography .mat-body,.mat-typography .mat-body-2,.mat-typography{font:400 14px/20px Roboto, sans-serif;letter-spacing:.0178571429em}.mat-body p,.mat-body-2 p,.mat-typography .mat-body p,.mat-typography .mat-body-2 p,.mat-typography p{margin:0 0 12px}.mat-small,.mat-caption,.mat-typography .mat-small,.mat-typography .mat-caption{font:400 12px/20px Roboto, sans-serif;letter-spacing:.0333333333em}.mat-headline-1,.mat-typography .mat-headline-1{font:300 96px/96px Roboto, sans-serif;letter-spacing:-0.015625em;margin:0 0 56px}.mat-headline-2,.mat-typography .mat-headline-2{font:300 60px/60px Roboto, sans-serif;letter-spacing:-.0083333333em;margin:0 0 64px}.mat-headline-3,.mat-typography .mat-headline-3{font:400 48px/50px Roboto, sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-headline-4,.mat-typography .mat-headline-4{font:400 34px/40px Roboto, sans-serif;letter-spacing:.0073529412em;margin:0 0 64px}","@import \"app-colors.scss\";\r\n\r\n@font-face {\r\n font-family: 'LatinxText';\r\n src: url('assets/fonts/LatinxText-Regular.otf') format('opentype');\r\n}\r\n@font-face {\r\n font-family: 'LatinxText-Bold';\r\n src: url('assets/fonts/LatinxText-Bold.otf') format('opentype');\r\n}\r\n\r\n* {\r\n font-family: 'LatinxText';\r\n}\r\n\r\nhtml, body { height: 100%; }\r\nbody { margin: 0; font-family: Roboto, \"Helvetica Neue\", sans-serif; }\r\n\r\n.primaryBtn{\r\n color: white !important;\r\n background-color: $color-primary-black !important;\r\n}\r\n\r\n.okBtn:not(:disabled) {\r\n color: white !important;\r\n background-color: $color-exito !important;\r\n}\r\n\r\n#sorteoContainer {\r\n height: -webkit-fill-available;\r\n background-color: white;\r\n display: flex;\r\n align-items: center;\r\n flex-direction: column;\r\n width: inherit;\r\n\r\n .finDeSorteo {\r\n text-align: center;\r\n color: $color-primary-black !important;\r\n \r\n h1 {\r\n font-size: 59px;\r\n margin-bottom: 25px;\r\n }\r\n \r\n h2 {\r\n font-size: 39px;\r\n margin-bottom: 10px;\r\n }\r\n }\r\n\r\n #randomGenerator, #randomGeneratorStrings {\r\n margin-left: 3em;\r\n margin-right: 3em;\r\n\r\n span.clearBlue {\r\n color: $color-secondary-blue !important;\r\n }\r\n\r\n span.darkBlue {\r\n color: $color-primary-blue !important;\r\n }\r\n } \r\n\r\n #buttons {\r\n display: flex;\r\n margin: 1.5em;\r\n align-items: center;\r\n justify-content: center;\r\n\r\n .okBtn {\r\n background-color: $color-exito !important;\r\n }\r\n .shuffleBtn {\r\n background-color: $color-primary-black !important;\r\n }\r\n\r\n #randomGenerator {\r\n height: 100px;\r\n overflow: hidden;\r\n\r\n .cifra{\r\n font-size: 80px;\r\n height: 110px;\r\n width: 110px;\r\n display: flex;\r\n justify-content: center;\r\n align-items: flex-end;\r\n }\r\n }\r\n\r\n #leftContainer {\r\n display: flex; \r\n // flex-direction: column; \r\n align-items: center;\r\n justify-content: center; \r\n gap: 2em;\r\n }\r\n \r\n #randomGeneratorStrings {\r\n width: -webkit-fill-available;\r\n text-align: center;\r\n \r\n span {\r\n font-size: 55px;\r\n font-weight: bold;\r\n white-space: nowrap;\r\n }\r\n }\r\n\r\n }\r\n\r\n}"],"names":[],"sourceRoot":"webpack:///","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/docs/vendor.js b/docs/vendor.js deleted file mode 100644 index cd346fc..0000000 --- a/docs/vendor.js +++ /dev/null @@ -1,112325 +0,0 @@ -(self["webpackChunksorteo_wen"] = self["webpackChunksorteo_wen"] || []).push([["vendor"],{ - -/***/ 6227: -/*!***************************************!*\ - !*** ./node_modules/lodash/lodash.js ***! - \***************************************/ -/***/ (function(module, exports, __webpack_require__) { - -/* module decorator */ module = __webpack_require__.nmd(module); -var __WEBPACK_AMD_DEFINE_RESULT__;/** - * @license - * Lodash - * Copyright OpenJS Foundation and other contributors - * Released under MIT license - * Based on Underscore.js 1.8.3 - * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - */ -; -(function () { - /** Used as a safe reference for `undefined` in pre-ES5 environments. */ - var undefined; - - /** Used as the semantic version number. */ - var VERSION = '4.17.21'; - - /** Used as the size to enable large array optimizations. */ - var LARGE_ARRAY_SIZE = 200; - - /** Error message constants. */ - var CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.', - FUNC_ERROR_TEXT = 'Expected a function', - INVALID_TEMPL_VAR_ERROR_TEXT = 'Invalid `variable` option passed into `_.template`'; - - /** Used to stand-in for `undefined` hash values. */ - var HASH_UNDEFINED = '__lodash_hash_undefined__'; - - /** Used as the maximum memoize cache size. */ - var MAX_MEMOIZE_SIZE = 500; - - /** Used as the internal argument placeholder. */ - var PLACEHOLDER = '__lodash_placeholder__'; - - /** Used to compose bitmasks for cloning. */ - var CLONE_DEEP_FLAG = 1, - CLONE_FLAT_FLAG = 2, - CLONE_SYMBOLS_FLAG = 4; - - /** Used to compose bitmasks for value comparisons. */ - var COMPARE_PARTIAL_FLAG = 1, - COMPARE_UNORDERED_FLAG = 2; - - /** Used to compose bitmasks for function metadata. */ - var WRAP_BIND_FLAG = 1, - WRAP_BIND_KEY_FLAG = 2, - WRAP_CURRY_BOUND_FLAG = 4, - WRAP_CURRY_FLAG = 8, - WRAP_CURRY_RIGHT_FLAG = 16, - WRAP_PARTIAL_FLAG = 32, - WRAP_PARTIAL_RIGHT_FLAG = 64, - WRAP_ARY_FLAG = 128, - WRAP_REARG_FLAG = 256, - WRAP_FLIP_FLAG = 512; - - /** Used as default options for `_.truncate`. */ - var DEFAULT_TRUNC_LENGTH = 30, - DEFAULT_TRUNC_OMISSION = '...'; - - /** Used to detect hot functions by number of calls within a span of milliseconds. */ - var HOT_COUNT = 800, - HOT_SPAN = 16; - - /** Used to indicate the type of lazy iteratees. */ - var LAZY_FILTER_FLAG = 1, - LAZY_MAP_FLAG = 2, - LAZY_WHILE_FLAG = 3; - - /** Used as references for various `Number` constants. */ - var INFINITY = 1 / 0, - MAX_SAFE_INTEGER = 9007199254740991, - MAX_INTEGER = 1.7976931348623157e+308, - NAN = 0 / 0; - - /** Used as references for the maximum length and index of an array. */ - var MAX_ARRAY_LENGTH = 4294967295, - MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1, - HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1; - - /** Used to associate wrap methods with their bit flags. */ - var wrapFlags = [['ary', WRAP_ARY_FLAG], ['bind', WRAP_BIND_FLAG], ['bindKey', WRAP_BIND_KEY_FLAG], ['curry', WRAP_CURRY_FLAG], ['curryRight', WRAP_CURRY_RIGHT_FLAG], ['flip', WRAP_FLIP_FLAG], ['partial', WRAP_PARTIAL_FLAG], ['partialRight', WRAP_PARTIAL_RIGHT_FLAG], ['rearg', WRAP_REARG_FLAG]]; - - /** `Object#toString` result references. */ - var argsTag = '[object Arguments]', - arrayTag = '[object Array]', - asyncTag = '[object AsyncFunction]', - boolTag = '[object Boolean]', - dateTag = '[object Date]', - domExcTag = '[object DOMException]', - errorTag = '[object Error]', - funcTag = '[object Function]', - genTag = '[object GeneratorFunction]', - mapTag = '[object Map]', - numberTag = '[object Number]', - nullTag = '[object Null]', - objectTag = '[object Object]', - promiseTag = '[object Promise]', - proxyTag = '[object Proxy]', - regexpTag = '[object RegExp]', - setTag = '[object Set]', - stringTag = '[object String]', - symbolTag = '[object Symbol]', - undefinedTag = '[object Undefined]', - weakMapTag = '[object WeakMap]', - weakSetTag = '[object WeakSet]'; - var arrayBufferTag = '[object ArrayBuffer]', - dataViewTag = '[object DataView]', - float32Tag = '[object Float32Array]', - float64Tag = '[object Float64Array]', - int8Tag = '[object Int8Array]', - int16Tag = '[object Int16Array]', - int32Tag = '[object Int32Array]', - uint8Tag = '[object Uint8Array]', - uint8ClampedTag = '[object Uint8ClampedArray]', - uint16Tag = '[object Uint16Array]', - uint32Tag = '[object Uint32Array]'; - - /** Used to match empty string literals in compiled template source. */ - var reEmptyStringLeading = /\b__p \+= '';/g, - reEmptyStringMiddle = /\b(__p \+=) '' \+/g, - reEmptyStringTrailing = /(__e\(.*?\)|\b__t\)) \+\n'';/g; - - /** Used to match HTML entities and HTML characters. */ - var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g, - reUnescapedHtml = /[&<>"']/g, - reHasEscapedHtml = RegExp(reEscapedHtml.source), - reHasUnescapedHtml = RegExp(reUnescapedHtml.source); - - /** Used to match template delimiters. */ - var reEscape = /<%-([\s\S]+?)%>/g, - reEvaluate = /<%([\s\S]+?)%>/g, - reInterpolate = /<%=([\s\S]+?)%>/g; - - /** Used to match property names within property paths. */ - var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, - reIsPlainProp = /^\w*$/, - rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; - - /** - * Used to match `RegExp` - * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). - */ - var reRegExpChar = /[\\^$.*+?()[\]{}|]/g, - reHasRegExpChar = RegExp(reRegExpChar.source); - - /** Used to match leading whitespace. */ - var reTrimStart = /^\s+/; - - /** Used to match a single whitespace character. */ - var reWhitespace = /\s/; - - /** Used to match wrap detail comments. */ - var reWrapComment = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/, - reWrapDetails = /\{\n\/\* \[wrapped with (.+)\] \*/, - reSplitDetails = /,? & /; - - /** Used to match words composed of alphanumeric characters. */ - var reAsciiWord = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g; - - /** - * Used to validate the `validate` option in `_.template` variable. - * - * Forbids characters which could potentially change the meaning of the function argument definition: - * - "()," (modification of function parameters) - * - "=" (default value) - * - "[]{}" (destructuring of function parameters) - * - "/" (beginning of a comment) - * - whitespace - */ - var reForbiddenIdentifierChars = /[()=,{}\[\]\/\s]/; - - /** Used to match backslashes in property paths. */ - var reEscapeChar = /\\(\\)?/g; - - /** - * Used to match - * [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components). - */ - var reEsTemplate = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g; - - /** Used to match `RegExp` flags from their coerced string values. */ - var reFlags = /\w*$/; - - /** Used to detect bad signed hexadecimal string values. */ - var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; - - /** Used to detect binary string values. */ - var reIsBinary = /^0b[01]+$/i; - - /** Used to detect host constructors (Safari). */ - var reIsHostCtor = /^\[object .+?Constructor\]$/; - - /** Used to detect octal string values. */ - var reIsOctal = /^0o[0-7]+$/i; - - /** Used to detect unsigned integer values. */ - var reIsUint = /^(?:0|[1-9]\d*)$/; - - /** Used to match Latin Unicode letters (excluding mathematical operators). */ - var reLatin = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g; - - /** Used to ensure capturing order of template delimiters. */ - var reNoMatch = /($^)/; - - /** Used to match unescaped characters in compiled string literals. */ - var reUnescapedString = /['\n\r\u2028\u2029\\]/g; - - /** Used to compose unicode character classes. */ - var rsAstralRange = '\\ud800-\\udfff', - rsComboMarksRange = '\\u0300-\\u036f', - reComboHalfMarksRange = '\\ufe20-\\ufe2f', - rsComboSymbolsRange = '\\u20d0-\\u20ff', - rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, - rsDingbatRange = '\\u2700-\\u27bf', - rsLowerRange = 'a-z\\xdf-\\xf6\\xf8-\\xff', - rsMathOpRange = '\\xac\\xb1\\xd7\\xf7', - rsNonCharRange = '\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf', - rsPunctuationRange = '\\u2000-\\u206f', - rsSpaceRange = ' \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000', - rsUpperRange = 'A-Z\\xc0-\\xd6\\xd8-\\xde', - rsVarRange = '\\ufe0e\\ufe0f', - rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange; - - /** Used to compose unicode capture groups. */ - var rsApos = "['\u2019]", - rsAstral = '[' + rsAstralRange + ']', - rsBreak = '[' + rsBreakRange + ']', - rsCombo = '[' + rsComboRange + ']', - rsDigits = '\\d+', - rsDingbat = '[' + rsDingbatRange + ']', - rsLower = '[' + rsLowerRange + ']', - rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']', - rsFitz = '\\ud83c[\\udffb-\\udfff]', - rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')', - rsNonAstral = '[^' + rsAstralRange + ']', - rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}', - rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]', - rsUpper = '[' + rsUpperRange + ']', - rsZWJ = '\\u200d'; - - /** Used to compose unicode regexes. */ - var rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')', - rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')', - rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?', - rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?', - reOptMod = rsModifier + '?', - rsOptVar = '[' + rsVarRange + ']?', - rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*', - rsOrdLower = '\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])', - rsOrdUpper = '\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])', - rsSeq = rsOptVar + reOptMod + rsOptJoin, - rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq, - rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')'; - - /** Used to match apostrophes. */ - var reApos = RegExp(rsApos, 'g'); - - /** - * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and - * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols). - */ - var reComboMark = RegExp(rsCombo, 'g'); - - /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */ - var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g'); - - /** Used to match complex or compound words. */ - var reUnicodeWord = RegExp([rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')', rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')', rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower, rsUpper + '+' + rsOptContrUpper, rsOrdUpper, rsOrdLower, rsDigits, rsEmoji].join('|'), 'g'); - - /** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */ - var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']'); - - /** Used to detect strings that need a more robust regexp to match words. */ - var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/; - - /** Used to assign default `context` object properties. */ - var contextProps = ['Array', 'Buffer', 'DataView', 'Date', 'Error', 'Float32Array', 'Float64Array', 'Function', 'Int8Array', 'Int16Array', 'Int32Array', 'Map', 'Math', 'Object', 'Promise', 'RegExp', 'Set', 'String', 'Symbol', 'TypeError', 'Uint8Array', 'Uint8ClampedArray', 'Uint16Array', 'Uint32Array', 'WeakMap', '_', 'clearTimeout', 'isFinite', 'parseInt', 'setTimeout']; - - /** Used to make template sourceURLs easier to identify. */ - var templateCounter = -1; - - /** Used to identify `toStringTag` values of typed arrays. */ - var typedArrayTags = {}; - typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true; - typedArrayTags[argsTag] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag] = typedArrayTags[mapTag] = typedArrayTags[numberTag] = typedArrayTags[objectTag] = typedArrayTags[regexpTag] = typedArrayTags[setTag] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false; - - /** Used to identify `toStringTag` values supported by `_.clone`. */ - var cloneableTags = {}; - cloneableTags[argsTag] = cloneableTags[arrayTag] = cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] = cloneableTags[boolTag] = cloneableTags[dateTag] = cloneableTags[float32Tag] = cloneableTags[float64Tag] = cloneableTags[int8Tag] = cloneableTags[int16Tag] = cloneableTags[int32Tag] = cloneableTags[mapTag] = cloneableTags[numberTag] = cloneableTags[objectTag] = cloneableTags[regexpTag] = cloneableTags[setTag] = cloneableTags[stringTag] = cloneableTags[symbolTag] = cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true; - cloneableTags[errorTag] = cloneableTags[funcTag] = cloneableTags[weakMapTag] = false; - - /** Used to map Latin Unicode letters to basic Latin letters. */ - var deburredLetters = { - // Latin-1 Supplement block. - '\xc0': 'A', - '\xc1': 'A', - '\xc2': 'A', - '\xc3': 'A', - '\xc4': 'A', - '\xc5': 'A', - '\xe0': 'a', - '\xe1': 'a', - '\xe2': 'a', - '\xe3': 'a', - '\xe4': 'a', - '\xe5': 'a', - '\xc7': 'C', - '\xe7': 'c', - '\xd0': 'D', - '\xf0': 'd', - '\xc8': 'E', - '\xc9': 'E', - '\xca': 'E', - '\xcb': 'E', - '\xe8': 'e', - '\xe9': 'e', - '\xea': 'e', - '\xeb': 'e', - '\xcc': 'I', - '\xcd': 'I', - '\xce': 'I', - '\xcf': 'I', - '\xec': 'i', - '\xed': 'i', - '\xee': 'i', - '\xef': 'i', - '\xd1': 'N', - '\xf1': 'n', - '\xd2': 'O', - '\xd3': 'O', - '\xd4': 'O', - '\xd5': 'O', - '\xd6': 'O', - '\xd8': 'O', - '\xf2': 'o', - '\xf3': 'o', - '\xf4': 'o', - '\xf5': 'o', - '\xf6': 'o', - '\xf8': 'o', - '\xd9': 'U', - '\xda': 'U', - '\xdb': 'U', - '\xdc': 'U', - '\xf9': 'u', - '\xfa': 'u', - '\xfb': 'u', - '\xfc': 'u', - '\xdd': 'Y', - '\xfd': 'y', - '\xff': 'y', - '\xc6': 'Ae', - '\xe6': 'ae', - '\xde': 'Th', - '\xfe': 'th', - '\xdf': 'ss', - // Latin Extended-A block. - '\u0100': 'A', - '\u0102': 'A', - '\u0104': 'A', - '\u0101': 'a', - '\u0103': 'a', - '\u0105': 'a', - '\u0106': 'C', - '\u0108': 'C', - '\u010a': 'C', - '\u010c': 'C', - '\u0107': 'c', - '\u0109': 'c', - '\u010b': 'c', - '\u010d': 'c', - '\u010e': 'D', - '\u0110': 'D', - '\u010f': 'd', - '\u0111': 'd', - '\u0112': 'E', - '\u0114': 'E', - '\u0116': 'E', - '\u0118': 'E', - '\u011a': 'E', - '\u0113': 'e', - '\u0115': 'e', - '\u0117': 'e', - '\u0119': 'e', - '\u011b': 'e', - '\u011c': 'G', - '\u011e': 'G', - '\u0120': 'G', - '\u0122': 'G', - '\u011d': 'g', - '\u011f': 'g', - '\u0121': 'g', - '\u0123': 'g', - '\u0124': 'H', - '\u0126': 'H', - '\u0125': 'h', - '\u0127': 'h', - '\u0128': 'I', - '\u012a': 'I', - '\u012c': 'I', - '\u012e': 'I', - '\u0130': 'I', - '\u0129': 'i', - '\u012b': 'i', - '\u012d': 'i', - '\u012f': 'i', - '\u0131': 'i', - '\u0134': 'J', - '\u0135': 'j', - '\u0136': 'K', - '\u0137': 'k', - '\u0138': 'k', - '\u0139': 'L', - '\u013b': 'L', - '\u013d': 'L', - '\u013f': 'L', - '\u0141': 'L', - '\u013a': 'l', - '\u013c': 'l', - '\u013e': 'l', - '\u0140': 'l', - '\u0142': 'l', - '\u0143': 'N', - '\u0145': 'N', - '\u0147': 'N', - '\u014a': 'N', - '\u0144': 'n', - '\u0146': 'n', - '\u0148': 'n', - '\u014b': 'n', - '\u014c': 'O', - '\u014e': 'O', - '\u0150': 'O', - '\u014d': 'o', - '\u014f': 'o', - '\u0151': 'o', - '\u0154': 'R', - '\u0156': 'R', - '\u0158': 'R', - '\u0155': 'r', - '\u0157': 'r', - '\u0159': 'r', - '\u015a': 'S', - '\u015c': 'S', - '\u015e': 'S', - '\u0160': 'S', - '\u015b': 's', - '\u015d': 's', - '\u015f': 's', - '\u0161': 's', - '\u0162': 'T', - '\u0164': 'T', - '\u0166': 'T', - '\u0163': 't', - '\u0165': 't', - '\u0167': 't', - '\u0168': 'U', - '\u016a': 'U', - '\u016c': 'U', - '\u016e': 'U', - '\u0170': 'U', - '\u0172': 'U', - '\u0169': 'u', - '\u016b': 'u', - '\u016d': 'u', - '\u016f': 'u', - '\u0171': 'u', - '\u0173': 'u', - '\u0174': 'W', - '\u0175': 'w', - '\u0176': 'Y', - '\u0177': 'y', - '\u0178': 'Y', - '\u0179': 'Z', - '\u017b': 'Z', - '\u017d': 'Z', - '\u017a': 'z', - '\u017c': 'z', - '\u017e': 'z', - '\u0132': 'IJ', - '\u0133': 'ij', - '\u0152': 'Oe', - '\u0153': 'oe', - '\u0149': "'n", - '\u017f': 's' - }; - - /** Used to map characters to HTML entities. */ - var htmlEscapes = { - '&': '&', - '<': '<', - '>': '>', - '"': '"', - "'": ''' - }; - - /** Used to map HTML entities to characters. */ - var htmlUnescapes = { - '&': '&', - '<': '<', - '>': '>', - '"': '"', - ''': "'" - }; - - /** Used to escape characters for inclusion in compiled string literals. */ - var stringEscapes = { - '\\': '\\', - "'": "'", - '\n': 'n', - '\r': 'r', - '\u2028': 'u2028', - '\u2029': 'u2029' - }; - - /** Built-in method references without a dependency on `root`. */ - var freeParseFloat = parseFloat, - freeParseInt = parseInt; - - /** Detect free variable `global` from Node.js. */ - var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; - - /** Detect free variable `self`. */ - var freeSelf = typeof self == 'object' && self && self.Object === Object && self; - - /** Used as a reference to the global object. */ - var root = freeGlobal || freeSelf || Function('return this')(); - - /** Detect free variable `exports`. */ - var freeExports = true && exports && !exports.nodeType && exports; - - /** Detect free variable `module`. */ - var freeModule = freeExports && "object" == 'object' && module && !module.nodeType && module; - - /** Detect the popular CommonJS extension `module.exports`. */ - var moduleExports = freeModule && freeModule.exports === freeExports; - - /** Detect free variable `process` from Node.js. */ - var freeProcess = moduleExports && freeGlobal.process; - - /** Used to access faster Node.js helpers. */ - var nodeUtil = function () { - try { - // Use `util.types` for Node.js 10+. - var types = freeModule && freeModule.require && freeModule.require('util').types; - if (types) { - return types; - } - - // Legacy `process.binding('util')` for Node.js < 10. - return freeProcess && freeProcess.binding && freeProcess.binding('util'); - } catch (e) {} - }(); - - /* Node.js helper references. */ - var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer, - nodeIsDate = nodeUtil && nodeUtil.isDate, - nodeIsMap = nodeUtil && nodeUtil.isMap, - nodeIsRegExp = nodeUtil && nodeUtil.isRegExp, - nodeIsSet = nodeUtil && nodeUtil.isSet, - nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; - - /*--------------------------------------------------------------------------*/ - - /** - * A faster alternative to `Function#apply`, this function invokes `func` - * with the `this` binding of `thisArg` and the arguments of `args`. - * - * @private - * @param {Function} func The function to invoke. - * @param {*} thisArg The `this` binding of `func`. - * @param {Array} args The arguments to invoke `func` with. - * @returns {*} Returns the result of `func`. - */ - function apply(func, thisArg, args) { - switch (args.length) { - case 0: - return func.call(thisArg); - case 1: - return func.call(thisArg, args[0]); - case 2: - return func.call(thisArg, args[0], args[1]); - case 3: - return func.call(thisArg, args[0], args[1], args[2]); - } - return func.apply(thisArg, args); - } - - /** - * A specialized version of `baseAggregator` for arrays. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} setter The function to set `accumulator` values. - * @param {Function} iteratee The iteratee to transform keys. - * @param {Object} accumulator The initial aggregated object. - * @returns {Function} Returns `accumulator`. - */ - function arrayAggregator(array, setter, iteratee, accumulator) { - var index = -1, - length = array == null ? 0 : array.length; - while (++index < length) { - var value = array[index]; - setter(accumulator, value, iteratee(value), array); - } - return accumulator; - } - - /** - * A specialized version of `_.forEach` for arrays without support for - * iteratee shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns `array`. - */ - function arrayEach(array, iteratee) { - var index = -1, - length = array == null ? 0 : array.length; - while (++index < length) { - if (iteratee(array[index], index, array) === false) { - break; - } - } - return array; - } - - /** - * A specialized version of `_.forEachRight` for arrays without support for - * iteratee shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns `array`. - */ - function arrayEachRight(array, iteratee) { - var length = array == null ? 0 : array.length; - while (length--) { - if (iteratee(array[length], length, array) === false) { - break; - } - } - return array; - } - - /** - * A specialized version of `_.every` for arrays without support for - * iteratee shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {boolean} Returns `true` if all elements pass the predicate check, - * else `false`. - */ - function arrayEvery(array, predicate) { - var index = -1, - length = array == null ? 0 : array.length; - while (++index < length) { - if (!predicate(array[index], index, array)) { - return false; - } - } - return true; - } - - /** - * A specialized version of `_.filter` for arrays without support for - * iteratee shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {Array} Returns the new filtered array. - */ - function arrayFilter(array, predicate) { - var index = -1, - length = array == null ? 0 : array.length, - resIndex = 0, - result = []; - while (++index < length) { - var value = array[index]; - if (predicate(value, index, array)) { - result[resIndex++] = value; - } - } - return result; - } - - /** - * A specialized version of `_.includes` for arrays without support for - * specifying an index to search from. - * - * @private - * @param {Array} [array] The array to inspect. - * @param {*} target The value to search for. - * @returns {boolean} Returns `true` if `target` is found, else `false`. - */ - function arrayIncludes(array, value) { - var length = array == null ? 0 : array.length; - return !!length && baseIndexOf(array, value, 0) > -1; - } - - /** - * This function is like `arrayIncludes` except that it accepts a comparator. - * - * @private - * @param {Array} [array] The array to inspect. - * @param {*} target The value to search for. - * @param {Function} comparator The comparator invoked per element. - * @returns {boolean} Returns `true` if `target` is found, else `false`. - */ - function arrayIncludesWith(array, value, comparator) { - var index = -1, - length = array == null ? 0 : array.length; - while (++index < length) { - if (comparator(value, array[index])) { - return true; - } - } - return false; - } - - /** - * A specialized version of `_.map` for arrays without support for iteratee - * shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns the new mapped array. - */ - function arrayMap(array, iteratee) { - var index = -1, - length = array == null ? 0 : array.length, - result = Array(length); - while (++index < length) { - result[index] = iteratee(array[index], index, array); - } - return result; - } - - /** - * Appends the elements of `values` to `array`. - * - * @private - * @param {Array} array The array to modify. - * @param {Array} values The values to append. - * @returns {Array} Returns `array`. - */ - function arrayPush(array, values) { - var index = -1, - length = values.length, - offset = array.length; - while (++index < length) { - array[offset + index] = values[index]; - } - return array; - } - - /** - * A specialized version of `_.reduce` for arrays without support for - * iteratee shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @param {*} [accumulator] The initial value. - * @param {boolean} [initAccum] Specify using the first element of `array` as - * the initial value. - * @returns {*} Returns the accumulated value. - */ - function arrayReduce(array, iteratee, accumulator, initAccum) { - var index = -1, - length = array == null ? 0 : array.length; - if (initAccum && length) { - accumulator = array[++index]; - } - while (++index < length) { - accumulator = iteratee(accumulator, array[index], index, array); - } - return accumulator; - } - - /** - * A specialized version of `_.reduceRight` for arrays without support for - * iteratee shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @param {*} [accumulator] The initial value. - * @param {boolean} [initAccum] Specify using the last element of `array` as - * the initial value. - * @returns {*} Returns the accumulated value. - */ - function arrayReduceRight(array, iteratee, accumulator, initAccum) { - var length = array == null ? 0 : array.length; - if (initAccum && length) { - accumulator = array[--length]; - } - while (length--) { - accumulator = iteratee(accumulator, array[length], length, array); - } - return accumulator; - } - - /** - * A specialized version of `_.some` for arrays without support for iteratee - * shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {boolean} Returns `true` if any element passes the predicate check, - * else `false`. - */ - function arraySome(array, predicate) { - var index = -1, - length = array == null ? 0 : array.length; - while (++index < length) { - if (predicate(array[index], index, array)) { - return true; - } - } - return false; - } - - /** - * Gets the size of an ASCII `string`. - * - * @private - * @param {string} string The string inspect. - * @returns {number} Returns the string size. - */ - var asciiSize = baseProperty('length'); - - /** - * Converts an ASCII `string` to an array. - * - * @private - * @param {string} string The string to convert. - * @returns {Array} Returns the converted array. - */ - function asciiToArray(string) { - return string.split(''); - } - - /** - * Splits an ASCII `string` into an array of its words. - * - * @private - * @param {string} The string to inspect. - * @returns {Array} Returns the words of `string`. - */ - function asciiWords(string) { - return string.match(reAsciiWord) || []; - } - - /** - * The base implementation of methods like `_.findKey` and `_.findLastKey`, - * without support for iteratee shorthands, which iterates over `collection` - * using `eachFunc`. - * - * @private - * @param {Array|Object} collection The collection to inspect. - * @param {Function} predicate The function invoked per iteration. - * @param {Function} eachFunc The function to iterate over `collection`. - * @returns {*} Returns the found element or its key, else `undefined`. - */ - function baseFindKey(collection, predicate, eachFunc) { - var result; - eachFunc(collection, function (value, key, collection) { - if (predicate(value, key, collection)) { - result = key; - return false; - } - }); - return result; - } - - /** - * The base implementation of `_.findIndex` and `_.findLastIndex` without - * support for iteratee shorthands. - * - * @private - * @param {Array} array The array to inspect. - * @param {Function} predicate The function invoked per iteration. - * @param {number} fromIndex The index to search from. - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {number} Returns the index of the matched value, else `-1`. - */ - function baseFindIndex(array, predicate, fromIndex, fromRight) { - var length = array.length, - index = fromIndex + (fromRight ? 1 : -1); - while (fromRight ? index-- : ++index < length) { - if (predicate(array[index], index, array)) { - return index; - } - } - return -1; - } - - /** - * The base implementation of `_.indexOf` without `fromIndex` bounds checks. - * - * @private - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @param {number} fromIndex The index to search from. - * @returns {number} Returns the index of the matched value, else `-1`. - */ - function baseIndexOf(array, value, fromIndex) { - return value === value ? strictIndexOf(array, value, fromIndex) : baseFindIndex(array, baseIsNaN, fromIndex); - } - - /** - * This function is like `baseIndexOf` except that it accepts a comparator. - * - * @private - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @param {number} fromIndex The index to search from. - * @param {Function} comparator The comparator invoked per element. - * @returns {number} Returns the index of the matched value, else `-1`. - */ - function baseIndexOfWith(array, value, fromIndex, comparator) { - var index = fromIndex - 1, - length = array.length; - while (++index < length) { - if (comparator(array[index], value)) { - return index; - } - } - return -1; - } - - /** - * The base implementation of `_.isNaN` without support for number objects. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`. - */ - function baseIsNaN(value) { - return value !== value; - } - - /** - * The base implementation of `_.mean` and `_.meanBy` without support for - * iteratee shorthands. - * - * @private - * @param {Array} array The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {number} Returns the mean. - */ - function baseMean(array, iteratee) { - var length = array == null ? 0 : array.length; - return length ? baseSum(array, iteratee) / length : NAN; - } - - /** - * The base implementation of `_.property` without support for deep paths. - * - * @private - * @param {string} key The key of the property to get. - * @returns {Function} Returns the new accessor function. - */ - function baseProperty(key) { - return function (object) { - return object == null ? undefined : object[key]; - }; - } - - /** - * The base implementation of `_.propertyOf` without support for deep paths. - * - * @private - * @param {Object} object The object to query. - * @returns {Function} Returns the new accessor function. - */ - function basePropertyOf(object) { - return function (key) { - return object == null ? undefined : object[key]; - }; - } - - /** - * The base implementation of `_.reduce` and `_.reduceRight`, without support - * for iteratee shorthands, which iterates over `collection` using `eachFunc`. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @param {*} accumulator The initial value. - * @param {boolean} initAccum Specify using the first or last element of - * `collection` as the initial value. - * @param {Function} eachFunc The function to iterate over `collection`. - * @returns {*} Returns the accumulated value. - */ - function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) { - eachFunc(collection, function (value, index, collection) { - accumulator = initAccum ? (initAccum = false, value) : iteratee(accumulator, value, index, collection); - }); - return accumulator; - } - - /** - * The base implementation of `_.sortBy` which uses `comparer` to define the - * sort order of `array` and replaces criteria objects with their corresponding - * values. - * - * @private - * @param {Array} array The array to sort. - * @param {Function} comparer The function to define sort order. - * @returns {Array} Returns `array`. - */ - function baseSortBy(array, comparer) { - var length = array.length; - array.sort(comparer); - while (length--) { - array[length] = array[length].value; - } - return array; - } - - /** - * The base implementation of `_.sum` and `_.sumBy` without support for - * iteratee shorthands. - * - * @private - * @param {Array} array The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {number} Returns the sum. - */ - function baseSum(array, iteratee) { - var result, - index = -1, - length = array.length; - while (++index < length) { - var current = iteratee(array[index]); - if (current !== undefined) { - result = result === undefined ? current : result + current; - } - } - return result; - } - - /** - * The base implementation of `_.times` without support for iteratee shorthands - * or max array length checks. - * - * @private - * @param {number} n The number of times to invoke `iteratee`. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns the array of results. - */ - function baseTimes(n, iteratee) { - var index = -1, - result = Array(n); - while (++index < n) { - result[index] = iteratee(index); - } - return result; - } - - /** - * The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array - * of key-value pairs for `object` corresponding to the property names of `props`. - * - * @private - * @param {Object} object The object to query. - * @param {Array} props The property names to get values for. - * @returns {Object} Returns the key-value pairs. - */ - function baseToPairs(object, props) { - return arrayMap(props, function (key) { - return [key, object[key]]; - }); - } - - /** - * The base implementation of `_.trim`. - * - * @private - * @param {string} string The string to trim. - * @returns {string} Returns the trimmed string. - */ - function baseTrim(string) { - return string ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '') : string; - } - - /** - * The base implementation of `_.unary` without support for storing metadata. - * - * @private - * @param {Function} func The function to cap arguments for. - * @returns {Function} Returns the new capped function. - */ - function baseUnary(func) { - return function (value) { - return func(value); - }; - } - - /** - * The base implementation of `_.values` and `_.valuesIn` which creates an - * array of `object` property values corresponding to the property names - * of `props`. - * - * @private - * @param {Object} object The object to query. - * @param {Array} props The property names to get values for. - * @returns {Object} Returns the array of property values. - */ - function baseValues(object, props) { - return arrayMap(props, function (key) { - return object[key]; - }); - } - - /** - * Checks if a `cache` value for `key` exists. - * - * @private - * @param {Object} cache The cache to query. - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ - function cacheHas(cache, key) { - return cache.has(key); - } - - /** - * Used by `_.trim` and `_.trimStart` to get the index of the first string symbol - * that is not found in the character symbols. - * - * @private - * @param {Array} strSymbols The string symbols to inspect. - * @param {Array} chrSymbols The character symbols to find. - * @returns {number} Returns the index of the first unmatched string symbol. - */ - function charsStartIndex(strSymbols, chrSymbols) { - var index = -1, - length = strSymbols.length; - while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {} - return index; - } - - /** - * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol - * that is not found in the character symbols. - * - * @private - * @param {Array} strSymbols The string symbols to inspect. - * @param {Array} chrSymbols The character symbols to find. - * @returns {number} Returns the index of the last unmatched string symbol. - */ - function charsEndIndex(strSymbols, chrSymbols) { - var index = strSymbols.length; - while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {} - return index; - } - - /** - * Gets the number of `placeholder` occurrences in `array`. - * - * @private - * @param {Array} array The array to inspect. - * @param {*} placeholder The placeholder to search for. - * @returns {number} Returns the placeholder count. - */ - function countHolders(array, placeholder) { - var length = array.length, - result = 0; - while (length--) { - if (array[length] === placeholder) { - ++result; - } - } - return result; - } - - /** - * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A - * letters to basic Latin letters. - * - * @private - * @param {string} letter The matched letter to deburr. - * @returns {string} Returns the deburred letter. - */ - var deburrLetter = basePropertyOf(deburredLetters); - - /** - * Used by `_.escape` to convert characters to HTML entities. - * - * @private - * @param {string} chr The matched character to escape. - * @returns {string} Returns the escaped character. - */ - var escapeHtmlChar = basePropertyOf(htmlEscapes); - - /** - * Used by `_.template` to escape characters for inclusion in compiled string literals. - * - * @private - * @param {string} chr The matched character to escape. - * @returns {string} Returns the escaped character. - */ - function escapeStringChar(chr) { - return '\\' + stringEscapes[chr]; - } - - /** - * Gets the value at `key` of `object`. - * - * @private - * @param {Object} [object] The object to query. - * @param {string} key The key of the property to get. - * @returns {*} Returns the property value. - */ - function getValue(object, key) { - return object == null ? undefined : object[key]; - } - - /** - * Checks if `string` contains Unicode symbols. - * - * @private - * @param {string} string The string to inspect. - * @returns {boolean} Returns `true` if a symbol is found, else `false`. - */ - function hasUnicode(string) { - return reHasUnicode.test(string); - } - - /** - * Checks if `string` contains a word composed of Unicode symbols. - * - * @private - * @param {string} string The string to inspect. - * @returns {boolean} Returns `true` if a word is found, else `false`. - */ - function hasUnicodeWord(string) { - return reHasUnicodeWord.test(string); - } - - /** - * Converts `iterator` to an array. - * - * @private - * @param {Object} iterator The iterator to convert. - * @returns {Array} Returns the converted array. - */ - function iteratorToArray(iterator) { - var data, - result = []; - while (!(data = iterator.next()).done) { - result.push(data.value); - } - return result; - } - - /** - * Converts `map` to its key-value pairs. - * - * @private - * @param {Object} map The map to convert. - * @returns {Array} Returns the key-value pairs. - */ - function mapToArray(map) { - var index = -1, - result = Array(map.size); - map.forEach(function (value, key) { - result[++index] = [key, value]; - }); - return result; - } - - /** - * Creates a unary function that invokes `func` with its argument transformed. - * - * @private - * @param {Function} func The function to wrap. - * @param {Function} transform The argument transform. - * @returns {Function} Returns the new function. - */ - function overArg(func, transform) { - return function (arg) { - return func(transform(arg)); - }; - } - - /** - * Replaces all `placeholder` elements in `array` with an internal placeholder - * and returns an array of their indexes. - * - * @private - * @param {Array} array The array to modify. - * @param {*} placeholder The placeholder to replace. - * @returns {Array} Returns the new array of placeholder indexes. - */ - function replaceHolders(array, placeholder) { - var index = -1, - length = array.length, - resIndex = 0, - result = []; - while (++index < length) { - var value = array[index]; - if (value === placeholder || value === PLACEHOLDER) { - array[index] = PLACEHOLDER; - result[resIndex++] = index; - } - } - return result; - } - - /** - * Converts `set` to an array of its values. - * - * @private - * @param {Object} set The set to convert. - * @returns {Array} Returns the values. - */ - function setToArray(set) { - var index = -1, - result = Array(set.size); - set.forEach(function (value) { - result[++index] = value; - }); - return result; - } - - /** - * Converts `set` to its value-value pairs. - * - * @private - * @param {Object} set The set to convert. - * @returns {Array} Returns the value-value pairs. - */ - function setToPairs(set) { - var index = -1, - result = Array(set.size); - set.forEach(function (value) { - result[++index] = [value, value]; - }); - return result; - } - - /** - * A specialized version of `_.indexOf` which performs strict equality - * comparisons of values, i.e. `===`. - * - * @private - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @param {number} fromIndex The index to search from. - * @returns {number} Returns the index of the matched value, else `-1`. - */ - function strictIndexOf(array, value, fromIndex) { - var index = fromIndex - 1, - length = array.length; - while (++index < length) { - if (array[index] === value) { - return index; - } - } - return -1; - } - - /** - * A specialized version of `_.lastIndexOf` which performs strict equality - * comparisons of values, i.e. `===`. - * - * @private - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @param {number} fromIndex The index to search from. - * @returns {number} Returns the index of the matched value, else `-1`. - */ - function strictLastIndexOf(array, value, fromIndex) { - var index = fromIndex + 1; - while (index--) { - if (array[index] === value) { - return index; - } - } - return index; - } - - /** - * Gets the number of symbols in `string`. - * - * @private - * @param {string} string The string to inspect. - * @returns {number} Returns the string size. - */ - function stringSize(string) { - return hasUnicode(string) ? unicodeSize(string) : asciiSize(string); - } - - /** - * Converts `string` to an array. - * - * @private - * @param {string} string The string to convert. - * @returns {Array} Returns the converted array. - */ - function stringToArray(string) { - return hasUnicode(string) ? unicodeToArray(string) : asciiToArray(string); - } - - /** - * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace - * character of `string`. - * - * @private - * @param {string} string The string to inspect. - * @returns {number} Returns the index of the last non-whitespace character. - */ - function trimmedEndIndex(string) { - var index = string.length; - while (index-- && reWhitespace.test(string.charAt(index))) {} - return index; - } - - /** - * Used by `_.unescape` to convert HTML entities to characters. - * - * @private - * @param {string} chr The matched character to unescape. - * @returns {string} Returns the unescaped character. - */ - var unescapeHtmlChar = basePropertyOf(htmlUnescapes); - - /** - * Gets the size of a Unicode `string`. - * - * @private - * @param {string} string The string inspect. - * @returns {number} Returns the string size. - */ - function unicodeSize(string) { - var result = reUnicode.lastIndex = 0; - while (reUnicode.test(string)) { - ++result; - } - return result; - } - - /** - * Converts a Unicode `string` to an array. - * - * @private - * @param {string} string The string to convert. - * @returns {Array} Returns the converted array. - */ - function unicodeToArray(string) { - return string.match(reUnicode) || []; - } - - /** - * Splits a Unicode `string` into an array of its words. - * - * @private - * @param {string} The string to inspect. - * @returns {Array} Returns the words of `string`. - */ - function unicodeWords(string) { - return string.match(reUnicodeWord) || []; - } - - /*--------------------------------------------------------------------------*/ - - /** - * Create a new pristine `lodash` function using the `context` object. - * - * @static - * @memberOf _ - * @since 1.1.0 - * @category Util - * @param {Object} [context=root] The context object. - * @returns {Function} Returns a new `lodash` function. - * @example - * - * _.mixin({ 'foo': _.constant('foo') }); - * - * var lodash = _.runInContext(); - * lodash.mixin({ 'bar': lodash.constant('bar') }); - * - * _.isFunction(_.foo); - * // => true - * _.isFunction(_.bar); - * // => false - * - * lodash.isFunction(lodash.foo); - * // => false - * lodash.isFunction(lodash.bar); - * // => true - * - * // Create a suped-up `defer` in Node.js. - * var defer = _.runInContext({ 'setTimeout': setImmediate }).defer; - */ - var runInContext = function runInContext(context) { - context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps)); - - /** Built-in constructor references. */ - var Array = context.Array, - Date = context.Date, - Error = context.Error, - Function = context.Function, - Math = context.Math, - Object = context.Object, - RegExp = context.RegExp, - String = context.String, - TypeError = context.TypeError; - - /** Used for built-in method references. */ - var arrayProto = Array.prototype, - funcProto = Function.prototype, - objectProto = Object.prototype; - - /** Used to detect overreaching core-js shims. */ - var coreJsData = context['__core-js_shared__']; - - /** Used to resolve the decompiled source of functions. */ - var funcToString = funcProto.toString; - - /** Used to check objects for own properties. */ - var hasOwnProperty = objectProto.hasOwnProperty; - - /** Used to generate unique IDs. */ - var idCounter = 0; - - /** Used to detect methods masquerading as native. */ - var maskSrcKey = function () { - var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ''); - return uid ? 'Symbol(src)_1.' + uid : ''; - }(); - - /** - * Used to resolve the - * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) - * of values. - */ - var nativeObjectToString = objectProto.toString; - - /** Used to infer the `Object` constructor. */ - var objectCtorString = funcToString.call(Object); - - /** Used to restore the original `_` reference in `_.noConflict`. */ - var oldDash = root._; - - /** Used to detect if a method is native. */ - var reIsNative = RegExp('^' + funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&').replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'); - - /** Built-in value references. */ - var Buffer = moduleExports ? context.Buffer : undefined, - Symbol = context.Symbol, - Uint8Array = context.Uint8Array, - allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined, - getPrototype = overArg(Object.getPrototypeOf, Object), - objectCreate = Object.create, - propertyIsEnumerable = objectProto.propertyIsEnumerable, - splice = arrayProto.splice, - spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined, - symIterator = Symbol ? Symbol.iterator : undefined, - symToStringTag = Symbol ? Symbol.toStringTag : undefined; - var defineProperty = function () { - try { - var func = getNative(Object, 'defineProperty'); - func({}, '', {}); - return func; - } catch (e) {} - }(); - - /** Mocked built-ins. */ - var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout, - ctxNow = Date && Date.now !== root.Date.now && Date.now, - ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout; - - /* Built-in method references for those with the same name as other `lodash` methods. */ - var nativeCeil = Math.ceil, - nativeFloor = Math.floor, - nativeGetSymbols = Object.getOwnPropertySymbols, - nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined, - nativeIsFinite = context.isFinite, - nativeJoin = arrayProto.join, - nativeKeys = overArg(Object.keys, Object), - nativeMax = Math.max, - nativeMin = Math.min, - nativeNow = Date.now, - nativeParseInt = context.parseInt, - nativeRandom = Math.random, - nativeReverse = arrayProto.reverse; - - /* Built-in method references that are verified to be native. */ - var DataView = getNative(context, 'DataView'), - Map = getNative(context, 'Map'), - Promise = getNative(context, 'Promise'), - Set = getNative(context, 'Set'), - WeakMap = getNative(context, 'WeakMap'), - nativeCreate = getNative(Object, 'create'); - - /** Used to store function metadata. */ - var metaMap = WeakMap && new WeakMap(); - - /** Used to lookup unminified function names. */ - var realNames = {}; - - /** Used to detect maps, sets, and weakmaps. */ - var dataViewCtorString = toSource(DataView), - mapCtorString = toSource(Map), - promiseCtorString = toSource(Promise), - setCtorString = toSource(Set), - weakMapCtorString = toSource(WeakMap); - - /** Used to convert symbols to primitives and strings. */ - var symbolProto = Symbol ? Symbol.prototype : undefined, - symbolValueOf = symbolProto ? symbolProto.valueOf : undefined, - symbolToString = symbolProto ? symbolProto.toString : undefined; - - /*------------------------------------------------------------------------*/ - - /** - * Creates a `lodash` object which wraps `value` to enable implicit method - * chain sequences. Methods that operate on and return arrays, collections, - * and functions can be chained together. Methods that retrieve a single value - * or may return a primitive value will automatically end the chain sequence - * and return the unwrapped value. Otherwise, the value must be unwrapped - * with `_#value`. - * - * Explicit chain sequences, which must be unwrapped with `_#value`, may be - * enabled using `_.chain`. - * - * The execution of chained methods is lazy, that is, it's deferred until - * `_#value` is implicitly or explicitly called. - * - * Lazy evaluation allows several methods to support shortcut fusion. - * Shortcut fusion is an optimization to merge iteratee calls; this avoids - * the creation of intermediate arrays and can greatly reduce the number of - * iteratee executions. Sections of a chain sequence qualify for shortcut - * fusion if the section is applied to an array and iteratees accept only - * one argument. The heuristic for whether a section qualifies for shortcut - * fusion is subject to change. - * - * Chaining is supported in custom builds as long as the `_#value` method is - * directly or indirectly included in the build. - * - * In addition to lodash methods, wrappers have `Array` and `String` methods. - * - * The wrapper `Array` methods are: - * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift` - * - * The wrapper `String` methods are: - * `replace` and `split` - * - * The wrapper methods that support shortcut fusion are: - * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`, - * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`, - * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray` - * - * The chainable wrapper methods are: - * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`, - * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`, - * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`, - * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`, - * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`, - * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`, - * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`, - * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`, - * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`, - * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`, - * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`, - * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`, - * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`, - * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`, - * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`, - * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`, - * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`, - * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`, - * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`, - * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`, - * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`, - * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`, - * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`, - * `zipObject`, `zipObjectDeep`, and `zipWith` - * - * The wrapper methods that are **not** chainable by default are: - * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`, - * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`, - * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`, - * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`, - * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`, - * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`, - * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`, - * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`, - * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`, - * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`, - * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`, - * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`, - * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`, - * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`, - * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`, - * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`, - * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`, - * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`, - * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`, - * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`, - * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`, - * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`, - * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`, - * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`, - * `upperFirst`, `value`, and `words` - * - * @name _ - * @constructor - * @category Seq - * @param {*} value The value to wrap in a `lodash` instance. - * @returns {Object} Returns the new `lodash` wrapper instance. - * @example - * - * function square(n) { - * return n * n; - * } - * - * var wrapped = _([1, 2, 3]); - * - * // Returns an unwrapped value. - * wrapped.reduce(_.add); - * // => 6 - * - * // Returns a wrapped value. - * var squares = wrapped.map(square); - * - * _.isArray(squares); - * // => false - * - * _.isArray(squares.value()); - * // => true - */ - function lodash(value) { - if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) { - if (value instanceof LodashWrapper) { - return value; - } - if (hasOwnProperty.call(value, '__wrapped__')) { - return wrapperClone(value); - } - } - return new LodashWrapper(value); - } - - /** - * The base implementation of `_.create` without support for assigning - * properties to the created object. - * - * @private - * @param {Object} proto The object to inherit from. - * @returns {Object} Returns the new object. - */ - var baseCreate = function () { - function object() {} - return function (proto) { - if (!isObject(proto)) { - return {}; - } - if (objectCreate) { - return objectCreate(proto); - } - object.prototype = proto; - var result = new object(); - object.prototype = undefined; - return result; - }; - }(); - - /** - * The function whose prototype chain sequence wrappers inherit from. - * - * @private - */ - function baseLodash() { - // No operation performed. - } - - /** - * The base constructor for creating `lodash` wrapper objects. - * - * @private - * @param {*} value The value to wrap. - * @param {boolean} [chainAll] Enable explicit method chain sequences. - */ - function LodashWrapper(value, chainAll) { - this.__wrapped__ = value; - this.__actions__ = []; - this.__chain__ = !!chainAll; - this.__index__ = 0; - this.__values__ = undefined; - } - - /** - * By default, the template delimiters used by lodash are like those in - * embedded Ruby (ERB) as well as ES2015 template strings. Change the - * following template settings to use alternative delimiters. - * - * @static - * @memberOf _ - * @type {Object} - */ - lodash.templateSettings = { - /** - * Used to detect `data` property values to be HTML-escaped. - * - * @memberOf _.templateSettings - * @type {RegExp} - */ - 'escape': reEscape, - /** - * Used to detect code to be evaluated. - * - * @memberOf _.templateSettings - * @type {RegExp} - */ - 'evaluate': reEvaluate, - /** - * Used to detect `data` property values to inject. - * - * @memberOf _.templateSettings - * @type {RegExp} - */ - 'interpolate': reInterpolate, - /** - * Used to reference the data object in the template text. - * - * @memberOf _.templateSettings - * @type {string} - */ - 'variable': '', - /** - * Used to import variables into the compiled template. - * - * @memberOf _.templateSettings - * @type {Object} - */ - 'imports': { - /** - * A reference to the `lodash` function. - * - * @memberOf _.templateSettings.imports - * @type {Function} - */ - '_': lodash - } - }; - - // Ensure wrappers are instances of `baseLodash`. - lodash.prototype = baseLodash.prototype; - lodash.prototype.constructor = lodash; - LodashWrapper.prototype = baseCreate(baseLodash.prototype); - LodashWrapper.prototype.constructor = LodashWrapper; - - /*------------------------------------------------------------------------*/ - - /** - * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation. - * - * @private - * @constructor - * @param {*} value The value to wrap. - */ - function LazyWrapper(value) { - this.__wrapped__ = value; - this.__actions__ = []; - this.__dir__ = 1; - this.__filtered__ = false; - this.__iteratees__ = []; - this.__takeCount__ = MAX_ARRAY_LENGTH; - this.__views__ = []; - } - - /** - * Creates a clone of the lazy wrapper object. - * - * @private - * @name clone - * @memberOf LazyWrapper - * @returns {Object} Returns the cloned `LazyWrapper` object. - */ - function lazyClone() { - var result = new LazyWrapper(this.__wrapped__); - result.__actions__ = copyArray(this.__actions__); - result.__dir__ = this.__dir__; - result.__filtered__ = this.__filtered__; - result.__iteratees__ = copyArray(this.__iteratees__); - result.__takeCount__ = this.__takeCount__; - result.__views__ = copyArray(this.__views__); - return result; - } - - /** - * Reverses the direction of lazy iteration. - * - * @private - * @name reverse - * @memberOf LazyWrapper - * @returns {Object} Returns the new reversed `LazyWrapper` object. - */ - function lazyReverse() { - if (this.__filtered__) { - var result = new LazyWrapper(this); - result.__dir__ = -1; - result.__filtered__ = true; - } else { - result = this.clone(); - result.__dir__ *= -1; - } - return result; - } - - /** - * Extracts the unwrapped value from its lazy wrapper. - * - * @private - * @name value - * @memberOf LazyWrapper - * @returns {*} Returns the unwrapped value. - */ - function lazyValue() { - var array = this.__wrapped__.value(), - dir = this.__dir__, - isArr = isArray(array), - isRight = dir < 0, - arrLength = isArr ? array.length : 0, - view = getView(0, arrLength, this.__views__), - start = view.start, - end = view.end, - length = end - start, - index = isRight ? end : start - 1, - iteratees = this.__iteratees__, - iterLength = iteratees.length, - resIndex = 0, - takeCount = nativeMin(length, this.__takeCount__); - if (!isArr || !isRight && arrLength == length && takeCount == length) { - return baseWrapperValue(array, this.__actions__); - } - var result = []; - outer: while (length-- && resIndex < takeCount) { - index += dir; - var iterIndex = -1, - value = array[index]; - while (++iterIndex < iterLength) { - var data = iteratees[iterIndex], - iteratee = data.iteratee, - type = data.type, - computed = iteratee(value); - if (type == LAZY_MAP_FLAG) { - value = computed; - } else if (!computed) { - if (type == LAZY_FILTER_FLAG) { - continue outer; - } else { - break outer; - } - } - } - result[resIndex++] = value; - } - return result; - } - - // Ensure `LazyWrapper` is an instance of `baseLodash`. - LazyWrapper.prototype = baseCreate(baseLodash.prototype); - LazyWrapper.prototype.constructor = LazyWrapper; - - /*------------------------------------------------------------------------*/ - - /** - * Creates a hash object. - * - * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. - */ - function Hash(entries) { - var index = -1, - length = entries == null ? 0 : entries.length; - this.clear(); - while (++index < length) { - var entry = entries[index]; - this.set(entry[0], entry[1]); - } - } - - /** - * Removes all key-value entries from the hash. - * - * @private - * @name clear - * @memberOf Hash - */ - function hashClear() { - this.__data__ = nativeCreate ? nativeCreate(null) : {}; - this.size = 0; - } - - /** - * Removes `key` and its value from the hash. - * - * @private - * @name delete - * @memberOf Hash - * @param {Object} hash The hash to modify. - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. - */ - function hashDelete(key) { - var result = this.has(key) && delete this.__data__[key]; - this.size -= result ? 1 : 0; - return result; - } - - /** - * Gets the hash value for `key`. - * - * @private - * @name get - * @memberOf Hash - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ - function hashGet(key) { - var data = this.__data__; - if (nativeCreate) { - var result = data[key]; - return result === HASH_UNDEFINED ? undefined : result; - } - return hasOwnProperty.call(data, key) ? data[key] : undefined; - } - - /** - * Checks if a hash value for `key` exists. - * - * @private - * @name has - * @memberOf Hash - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ - function hashHas(key) { - var data = this.__data__; - return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key); - } - - /** - * Sets the hash `key` to `value`. - * - * @private - * @name set - * @memberOf Hash - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the hash instance. - */ - function hashSet(key, value) { - var data = this.__data__; - this.size += this.has(key) ? 0 : 1; - data[key] = nativeCreate && value === undefined ? HASH_UNDEFINED : value; - return this; - } - - // Add methods to `Hash`. - Hash.prototype.clear = hashClear; - Hash.prototype['delete'] = hashDelete; - Hash.prototype.get = hashGet; - Hash.prototype.has = hashHas; - Hash.prototype.set = hashSet; - - /*------------------------------------------------------------------------*/ - - /** - * Creates an list cache object. - * - * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. - */ - function ListCache(entries) { - var index = -1, - length = entries == null ? 0 : entries.length; - this.clear(); - while (++index < length) { - var entry = entries[index]; - this.set(entry[0], entry[1]); - } - } - - /** - * Removes all key-value entries from the list cache. - * - * @private - * @name clear - * @memberOf ListCache - */ - function listCacheClear() { - this.__data__ = []; - this.size = 0; - } - - /** - * Removes `key` and its value from the list cache. - * - * @private - * @name delete - * @memberOf ListCache - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. - */ - function listCacheDelete(key) { - var data = this.__data__, - index = assocIndexOf(data, key); - if (index < 0) { - return false; - } - var lastIndex = data.length - 1; - if (index == lastIndex) { - data.pop(); - } else { - splice.call(data, index, 1); - } - --this.size; - return true; - } - - /** - * Gets the list cache value for `key`. - * - * @private - * @name get - * @memberOf ListCache - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ - function listCacheGet(key) { - var data = this.__data__, - index = assocIndexOf(data, key); - return index < 0 ? undefined : data[index][1]; - } - - /** - * Checks if a list cache value for `key` exists. - * - * @private - * @name has - * @memberOf ListCache - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ - function listCacheHas(key) { - return assocIndexOf(this.__data__, key) > -1; - } - - /** - * Sets the list cache `key` to `value`. - * - * @private - * @name set - * @memberOf ListCache - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the list cache instance. - */ - function listCacheSet(key, value) { - var data = this.__data__, - index = assocIndexOf(data, key); - if (index < 0) { - ++this.size; - data.push([key, value]); - } else { - data[index][1] = value; - } - return this; - } - - // Add methods to `ListCache`. - ListCache.prototype.clear = listCacheClear; - ListCache.prototype['delete'] = listCacheDelete; - ListCache.prototype.get = listCacheGet; - ListCache.prototype.has = listCacheHas; - ListCache.prototype.set = listCacheSet; - - /*------------------------------------------------------------------------*/ - - /** - * Creates a map cache object to store key-value pairs. - * - * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. - */ - function MapCache(entries) { - var index = -1, - length = entries == null ? 0 : entries.length; - this.clear(); - while (++index < length) { - var entry = entries[index]; - this.set(entry[0], entry[1]); - } - } - - /** - * Removes all key-value entries from the map. - * - * @private - * @name clear - * @memberOf MapCache - */ - function mapCacheClear() { - this.size = 0; - this.__data__ = { - 'hash': new Hash(), - 'map': new (Map || ListCache)(), - 'string': new Hash() - }; - } - - /** - * Removes `key` and its value from the map. - * - * @private - * @name delete - * @memberOf MapCache - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. - */ - function mapCacheDelete(key) { - var result = getMapData(this, key)['delete'](key); - this.size -= result ? 1 : 0; - return result; - } - - /** - * Gets the map value for `key`. - * - * @private - * @name get - * @memberOf MapCache - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ - function mapCacheGet(key) { - return getMapData(this, key).get(key); - } - - /** - * Checks if a map value for `key` exists. - * - * @private - * @name has - * @memberOf MapCache - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ - function mapCacheHas(key) { - return getMapData(this, key).has(key); - } - - /** - * Sets the map `key` to `value`. - * - * @private - * @name set - * @memberOf MapCache - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the map cache instance. - */ - function mapCacheSet(key, value) { - var data = getMapData(this, key), - size = data.size; - data.set(key, value); - this.size += data.size == size ? 0 : 1; - return this; - } - - // Add methods to `MapCache`. - MapCache.prototype.clear = mapCacheClear; - MapCache.prototype['delete'] = mapCacheDelete; - MapCache.prototype.get = mapCacheGet; - MapCache.prototype.has = mapCacheHas; - MapCache.prototype.set = mapCacheSet; - - /*------------------------------------------------------------------------*/ - - /** - * - * Creates an array cache object to store unique values. - * - * @private - * @constructor - * @param {Array} [values] The values to cache. - */ - function SetCache(values) { - var index = -1, - length = values == null ? 0 : values.length; - this.__data__ = new MapCache(); - while (++index < length) { - this.add(values[index]); - } - } - - /** - * Adds `value` to the array cache. - * - * @private - * @name add - * @memberOf SetCache - * @alias push - * @param {*} value The value to cache. - * @returns {Object} Returns the cache instance. - */ - function setCacheAdd(value) { - this.__data__.set(value, HASH_UNDEFINED); - return this; - } - - /** - * Checks if `value` is in the array cache. - * - * @private - * @name has - * @memberOf SetCache - * @param {*} value The value to search for. - * @returns {number} Returns `true` if `value` is found, else `false`. - */ - function setCacheHas(value) { - return this.__data__.has(value); - } - - // Add methods to `SetCache`. - SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; - SetCache.prototype.has = setCacheHas; - - /*------------------------------------------------------------------------*/ - - /** - * Creates a stack cache object to store key-value pairs. - * - * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. - */ - function Stack(entries) { - var data = this.__data__ = new ListCache(entries); - this.size = data.size; - } - - /** - * Removes all key-value entries from the stack. - * - * @private - * @name clear - * @memberOf Stack - */ - function stackClear() { - this.__data__ = new ListCache(); - this.size = 0; - } - - /** - * Removes `key` and its value from the stack. - * - * @private - * @name delete - * @memberOf Stack - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. - */ - function stackDelete(key) { - var data = this.__data__, - result = data['delete'](key); - this.size = data.size; - return result; - } - - /** - * Gets the stack value for `key`. - * - * @private - * @name get - * @memberOf Stack - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ - function stackGet(key) { - return this.__data__.get(key); - } - - /** - * Checks if a stack value for `key` exists. - * - * @private - * @name has - * @memberOf Stack - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ - function stackHas(key) { - return this.__data__.has(key); - } - - /** - * Sets the stack `key` to `value`. - * - * @private - * @name set - * @memberOf Stack - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the stack cache instance. - */ - function stackSet(key, value) { - var data = this.__data__; - if (data instanceof ListCache) { - var pairs = data.__data__; - if (!Map || pairs.length < LARGE_ARRAY_SIZE - 1) { - pairs.push([key, value]); - this.size = ++data.size; - return this; - } - data = this.__data__ = new MapCache(pairs); - } - data.set(key, value); - this.size = data.size; - return this; - } - - // Add methods to `Stack`. - Stack.prototype.clear = stackClear; - Stack.prototype['delete'] = stackDelete; - Stack.prototype.get = stackGet; - Stack.prototype.has = stackHas; - Stack.prototype.set = stackSet; - - /*------------------------------------------------------------------------*/ - - /** - * Creates an array of the enumerable property names of the array-like `value`. - * - * @private - * @param {*} value The value to query. - * @param {boolean} inherited Specify returning inherited property names. - * @returns {Array} Returns the array of property names. - */ - function arrayLikeKeys(value, inherited) { - var isArr = isArray(value), - isArg = !isArr && isArguments(value), - isBuff = !isArr && !isArg && isBuffer(value), - isType = !isArr && !isArg && !isBuff && isTypedArray(value), - skipIndexes = isArr || isArg || isBuff || isType, - result = skipIndexes ? baseTimes(value.length, String) : [], - length = result.length; - for (var key in value) { - if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && ( - // Safari 9 has enumerable `arguments.length` in strict mode. - key == 'length' || - // Node.js 0.10 has enumerable non-index properties on buffers. - isBuff && (key == 'offset' || key == 'parent') || - // PhantomJS 2 has enumerable non-index properties on typed arrays. - isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset') || - // Skip index properties. - isIndex(key, length)))) { - result.push(key); - } - } - return result; - } - - /** - * A specialized version of `_.sample` for arrays. - * - * @private - * @param {Array} array The array to sample. - * @returns {*} Returns the random element. - */ - function arraySample(array) { - var length = array.length; - return length ? array[baseRandom(0, length - 1)] : undefined; - } - - /** - * A specialized version of `_.sampleSize` for arrays. - * - * @private - * @param {Array} array The array to sample. - * @param {number} n The number of elements to sample. - * @returns {Array} Returns the random elements. - */ - function arraySampleSize(array, n) { - return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length)); - } - - /** - * A specialized version of `_.shuffle` for arrays. - * - * @private - * @param {Array} array The array to shuffle. - * @returns {Array} Returns the new shuffled array. - */ - function arrayShuffle(array) { - return shuffleSelf(copyArray(array)); - } - - /** - * This function is like `assignValue` except that it doesn't assign - * `undefined` values. - * - * @private - * @param {Object} object The object to modify. - * @param {string} key The key of the property to assign. - * @param {*} value The value to assign. - */ - function assignMergeValue(object, key, value) { - if (value !== undefined && !eq(object[key], value) || value === undefined && !(key in object)) { - baseAssignValue(object, key, value); - } - } - - /** - * Assigns `value` to `key` of `object` if the existing value is not equivalent - * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * for equality comparisons. - * - * @private - * @param {Object} object The object to modify. - * @param {string} key The key of the property to assign. - * @param {*} value The value to assign. - */ - function assignValue(object, key, value) { - var objValue = object[key]; - if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || value === undefined && !(key in object)) { - baseAssignValue(object, key, value); - } - } - - /** - * Gets the index at which the `key` is found in `array` of key-value pairs. - * - * @private - * @param {Array} array The array to inspect. - * @param {*} key The key to search for. - * @returns {number} Returns the index of the matched value, else `-1`. - */ - function assocIndexOf(array, key) { - var length = array.length; - while (length--) { - if (eq(array[length][0], key)) { - return length; - } - } - return -1; - } - - /** - * Aggregates elements of `collection` on `accumulator` with keys transformed - * by `iteratee` and values set by `setter`. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} setter The function to set `accumulator` values. - * @param {Function} iteratee The iteratee to transform keys. - * @param {Object} accumulator The initial aggregated object. - * @returns {Function} Returns `accumulator`. - */ - function baseAggregator(collection, setter, iteratee, accumulator) { - baseEach(collection, function (value, key, collection) { - setter(accumulator, value, iteratee(value), collection); - }); - return accumulator; - } - - /** - * The base implementation of `_.assign` without support for multiple sources - * or `customizer` functions. - * - * @private - * @param {Object} object The destination object. - * @param {Object} source The source object. - * @returns {Object} Returns `object`. - */ - function baseAssign(object, source) { - return object && copyObject(source, keys(source), object); - } - - /** - * The base implementation of `_.assignIn` without support for multiple sources - * or `customizer` functions. - * - * @private - * @param {Object} object The destination object. - * @param {Object} source The source object. - * @returns {Object} Returns `object`. - */ - function baseAssignIn(object, source) { - return object && copyObject(source, keysIn(source), object); - } - - /** - * The base implementation of `assignValue` and `assignMergeValue` without - * value checks. - * - * @private - * @param {Object} object The object to modify. - * @param {string} key The key of the property to assign. - * @param {*} value The value to assign. - */ - function baseAssignValue(object, key, value) { - if (key == '__proto__' && defineProperty) { - defineProperty(object, key, { - 'configurable': true, - 'enumerable': true, - 'value': value, - 'writable': true - }); - } else { - object[key] = value; - } - } - - /** - * The base implementation of `_.at` without support for individual paths. - * - * @private - * @param {Object} object The object to iterate over. - * @param {string[]} paths The property paths to pick. - * @returns {Array} Returns the picked elements. - */ - function baseAt(object, paths) { - var index = -1, - length = paths.length, - result = Array(length), - skip = object == null; - while (++index < length) { - result[index] = skip ? undefined : get(object, paths[index]); - } - return result; - } - - /** - * The base implementation of `_.clamp` which doesn't coerce arguments. - * - * @private - * @param {number} number The number to clamp. - * @param {number} [lower] The lower bound. - * @param {number} upper The upper bound. - * @returns {number} Returns the clamped number. - */ - function baseClamp(number, lower, upper) { - if (number === number) { - if (upper !== undefined) { - number = number <= upper ? number : upper; - } - if (lower !== undefined) { - number = number >= lower ? number : lower; - } - } - return number; - } - - /** - * The base implementation of `_.clone` and `_.cloneDeep` which tracks - * traversed objects. - * - * @private - * @param {*} value The value to clone. - * @param {boolean} bitmask The bitmask flags. - * 1 - Deep clone - * 2 - Flatten inherited properties - * 4 - Clone symbols - * @param {Function} [customizer] The function to customize cloning. - * @param {string} [key] The key of `value`. - * @param {Object} [object] The parent object of `value`. - * @param {Object} [stack] Tracks traversed objects and their clone counterparts. - * @returns {*} Returns the cloned value. - */ - function baseClone(value, bitmask, customizer, key, object, stack) { - var result, - isDeep = bitmask & CLONE_DEEP_FLAG, - isFlat = bitmask & CLONE_FLAT_FLAG, - isFull = bitmask & CLONE_SYMBOLS_FLAG; - if (customizer) { - result = object ? customizer(value, key, object, stack) : customizer(value); - } - if (result !== undefined) { - return result; - } - if (!isObject(value)) { - return value; - } - var isArr = isArray(value); - if (isArr) { - result = initCloneArray(value); - if (!isDeep) { - return copyArray(value, result); - } - } else { - var tag = getTag(value), - isFunc = tag == funcTag || tag == genTag; - if (isBuffer(value)) { - return cloneBuffer(value, isDeep); - } - if (tag == objectTag || tag == argsTag || isFunc && !object) { - result = isFlat || isFunc ? {} : initCloneObject(value); - if (!isDeep) { - return isFlat ? copySymbolsIn(value, baseAssignIn(result, value)) : copySymbols(value, baseAssign(result, value)); - } - } else { - if (!cloneableTags[tag]) { - return object ? value : {}; - } - result = initCloneByTag(value, tag, isDeep); - } - } - // Check for circular references and return its corresponding clone. - stack || (stack = new Stack()); - var stacked = stack.get(value); - if (stacked) { - return stacked; - } - stack.set(value, result); - if (isSet(value)) { - value.forEach(function (subValue) { - result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack)); - }); - } else if (isMap(value)) { - value.forEach(function (subValue, key) { - result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack)); - }); - } - var keysFunc = isFull ? isFlat ? getAllKeysIn : getAllKeys : isFlat ? keysIn : keys; - var props = isArr ? undefined : keysFunc(value); - arrayEach(props || value, function (subValue, key) { - if (props) { - key = subValue; - subValue = value[key]; - } - // Recursively populate clone (susceptible to call stack limits). - assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack)); - }); - return result; - } - - /** - * The base implementation of `_.conforms` which doesn't clone `source`. - * - * @private - * @param {Object} source The object of property predicates to conform to. - * @returns {Function} Returns the new spec function. - */ - function baseConforms(source) { - var props = keys(source); - return function (object) { - return baseConformsTo(object, source, props); - }; - } - - /** - * The base implementation of `_.conformsTo` which accepts `props` to check. - * - * @private - * @param {Object} object The object to inspect. - * @param {Object} source The object of property predicates to conform to. - * @returns {boolean} Returns `true` if `object` conforms, else `false`. - */ - function baseConformsTo(object, source, props) { - var length = props.length; - if (object == null) { - return !length; - } - object = Object(object); - while (length--) { - var key = props[length], - predicate = source[key], - value = object[key]; - if (value === undefined && !(key in object) || !predicate(value)) { - return false; - } - } - return true; - } - - /** - * The base implementation of `_.delay` and `_.defer` which accepts `args` - * to provide to `func`. - * - * @private - * @param {Function} func The function to delay. - * @param {number} wait The number of milliseconds to delay invocation. - * @param {Array} args The arguments to provide to `func`. - * @returns {number|Object} Returns the timer id or timeout object. - */ - function baseDelay(func, wait, args) { - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - return setTimeout(function () { - func.apply(undefined, args); - }, wait); - } - - /** - * The base implementation of methods like `_.difference` without support - * for excluding multiple arrays or iteratee shorthands. - * - * @private - * @param {Array} array The array to inspect. - * @param {Array} values The values to exclude. - * @param {Function} [iteratee] The iteratee invoked per element. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns the new array of filtered values. - */ - function baseDifference(array, values, iteratee, comparator) { - var index = -1, - includes = arrayIncludes, - isCommon = true, - length = array.length, - result = [], - valuesLength = values.length; - if (!length) { - return result; - } - if (iteratee) { - values = arrayMap(values, baseUnary(iteratee)); - } - if (comparator) { - includes = arrayIncludesWith; - isCommon = false; - } else if (values.length >= LARGE_ARRAY_SIZE) { - includes = cacheHas; - isCommon = false; - values = new SetCache(values); - } - outer: while (++index < length) { - var value = array[index], - computed = iteratee == null ? value : iteratee(value); - value = comparator || value !== 0 ? value : 0; - if (isCommon && computed === computed) { - var valuesIndex = valuesLength; - while (valuesIndex--) { - if (values[valuesIndex] === computed) { - continue outer; - } - } - result.push(value); - } else if (!includes(values, computed, comparator)) { - result.push(value); - } - } - return result; - } - - /** - * The base implementation of `_.forEach` without support for iteratee shorthands. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array|Object} Returns `collection`. - */ - var baseEach = createBaseEach(baseForOwn); - - /** - * The base implementation of `_.forEachRight` without support for iteratee shorthands. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array|Object} Returns `collection`. - */ - var baseEachRight = createBaseEach(baseForOwnRight, true); - - /** - * The base implementation of `_.every` without support for iteratee shorthands. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {boolean} Returns `true` if all elements pass the predicate check, - * else `false` - */ - function baseEvery(collection, predicate) { - var result = true; - baseEach(collection, function (value, index, collection) { - result = !!predicate(value, index, collection); - return result; - }); - return result; - } - - /** - * The base implementation of methods like `_.max` and `_.min` which accepts a - * `comparator` to determine the extremum value. - * - * @private - * @param {Array} array The array to iterate over. - * @param {Function} iteratee The iteratee invoked per iteration. - * @param {Function} comparator The comparator used to compare values. - * @returns {*} Returns the extremum value. - */ - function baseExtremum(array, iteratee, comparator) { - var index = -1, - length = array.length; - while (++index < length) { - var value = array[index], - current = iteratee(value); - if (current != null && (computed === undefined ? current === current && !isSymbol(current) : comparator(current, computed))) { - var computed = current, - result = value; - } - } - return result; - } - - /** - * The base implementation of `_.fill` without an iteratee call guard. - * - * @private - * @param {Array} array The array to fill. - * @param {*} value The value to fill `array` with. - * @param {number} [start=0] The start position. - * @param {number} [end=array.length] The end position. - * @returns {Array} Returns `array`. - */ - function baseFill(array, value, start, end) { - var length = array.length; - start = toInteger(start); - if (start < 0) { - start = -start > length ? 0 : length + start; - } - end = end === undefined || end > length ? length : toInteger(end); - if (end < 0) { - end += length; - } - end = start > end ? 0 : toLength(end); - while (start < end) { - array[start++] = value; - } - return array; - } - - /** - * The base implementation of `_.filter` without support for iteratee shorthands. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {Array} Returns the new filtered array. - */ - function baseFilter(collection, predicate) { - var result = []; - baseEach(collection, function (value, index, collection) { - if (predicate(value, index, collection)) { - result.push(value); - } - }); - return result; - } - - /** - * The base implementation of `_.flatten` with support for restricting flattening. - * - * @private - * @param {Array} array The array to flatten. - * @param {number} depth The maximum recursion depth. - * @param {boolean} [predicate=isFlattenable] The function invoked per iteration. - * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks. - * @param {Array} [result=[]] The initial result value. - * @returns {Array} Returns the new flattened array. - */ - function baseFlatten(array, depth, predicate, isStrict, result) { - var index = -1, - length = array.length; - predicate || (predicate = isFlattenable); - result || (result = []); - while (++index < length) { - var value = array[index]; - if (depth > 0 && predicate(value)) { - if (depth > 1) { - // Recursively flatten arrays (susceptible to call stack limits). - baseFlatten(value, depth - 1, predicate, isStrict, result); - } else { - arrayPush(result, value); - } - } else if (!isStrict) { - result[result.length] = value; - } - } - return result; - } - - /** - * The base implementation of `baseForOwn` which iterates over `object` - * properties returned by `keysFunc` and invokes `iteratee` for each property. - * Iteratee functions may exit iteration early by explicitly returning `false`. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @param {Function} keysFunc The function to get the keys of `object`. - * @returns {Object} Returns `object`. - */ - var baseFor = createBaseFor(); - - /** - * This function is like `baseFor` except that it iterates over properties - * in the opposite order. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @param {Function} keysFunc The function to get the keys of `object`. - * @returns {Object} Returns `object`. - */ - var baseForRight = createBaseFor(true); - - /** - * The base implementation of `_.forOwn` without support for iteratee shorthands. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Object} Returns `object`. - */ - function baseForOwn(object, iteratee) { - return object && baseFor(object, iteratee, keys); - } - - /** - * The base implementation of `_.forOwnRight` without support for iteratee shorthands. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Object} Returns `object`. - */ - function baseForOwnRight(object, iteratee) { - return object && baseForRight(object, iteratee, keys); - } - - /** - * The base implementation of `_.functions` which creates an array of - * `object` function property names filtered from `props`. - * - * @private - * @param {Object} object The object to inspect. - * @param {Array} props The property names to filter. - * @returns {Array} Returns the function names. - */ - function baseFunctions(object, props) { - return arrayFilter(props, function (key) { - return isFunction(object[key]); - }); - } - - /** - * The base implementation of `_.get` without support for default values. - * - * @private - * @param {Object} object The object to query. - * @param {Array|string} path The path of the property to get. - * @returns {*} Returns the resolved value. - */ - function baseGet(object, path) { - path = castPath(path, object); - var index = 0, - length = path.length; - while (object != null && index < length) { - object = object[toKey(path[index++])]; - } - return index && index == length ? object : undefined; - } - - /** - * The base implementation of `getAllKeys` and `getAllKeysIn` which uses - * `keysFunc` and `symbolsFunc` to get the enumerable property names and - * symbols of `object`. - * - * @private - * @param {Object} object The object to query. - * @param {Function} keysFunc The function to get the keys of `object`. - * @param {Function} symbolsFunc The function to get the symbols of `object`. - * @returns {Array} Returns the array of property names and symbols. - */ - function baseGetAllKeys(object, keysFunc, symbolsFunc) { - var result = keysFunc(object); - return isArray(object) ? result : arrayPush(result, symbolsFunc(object)); - } - - /** - * The base implementation of `getTag` without fallbacks for buggy environments. - * - * @private - * @param {*} value The value to query. - * @returns {string} Returns the `toStringTag`. - */ - function baseGetTag(value) { - if (value == null) { - return value === undefined ? undefinedTag : nullTag; - } - return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value); - } - - /** - * The base implementation of `_.gt` which doesn't coerce arguments. - * - * @private - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if `value` is greater than `other`, - * else `false`. - */ - function baseGt(value, other) { - return value > other; - } - - /** - * The base implementation of `_.has` without support for deep paths. - * - * @private - * @param {Object} [object] The object to query. - * @param {Array|string} key The key to check. - * @returns {boolean} Returns `true` if `key` exists, else `false`. - */ - function baseHas(object, key) { - return object != null && hasOwnProperty.call(object, key); - } - - /** - * The base implementation of `_.hasIn` without support for deep paths. - * - * @private - * @param {Object} [object] The object to query. - * @param {Array|string} key The key to check. - * @returns {boolean} Returns `true` if `key` exists, else `false`. - */ - function baseHasIn(object, key) { - return object != null && key in Object(object); - } - - /** - * The base implementation of `_.inRange` which doesn't coerce arguments. - * - * @private - * @param {number} number The number to check. - * @param {number} start The start of the range. - * @param {number} end The end of the range. - * @returns {boolean} Returns `true` if `number` is in the range, else `false`. - */ - function baseInRange(number, start, end) { - return number >= nativeMin(start, end) && number < nativeMax(start, end); - } - - /** - * The base implementation of methods like `_.intersection`, without support - * for iteratee shorthands, that accepts an array of arrays to inspect. - * - * @private - * @param {Array} arrays The arrays to inspect. - * @param {Function} [iteratee] The iteratee invoked per element. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns the new array of shared values. - */ - function baseIntersection(arrays, iteratee, comparator) { - var includes = comparator ? arrayIncludesWith : arrayIncludes, - length = arrays[0].length, - othLength = arrays.length, - othIndex = othLength, - caches = Array(othLength), - maxLength = Infinity, - result = []; - while (othIndex--) { - var array = arrays[othIndex]; - if (othIndex && iteratee) { - array = arrayMap(array, baseUnary(iteratee)); - } - maxLength = nativeMin(array.length, maxLength); - caches[othIndex] = !comparator && (iteratee || length >= 120 && array.length >= 120) ? new SetCache(othIndex && array) : undefined; - } - array = arrays[0]; - var index = -1, - seen = caches[0]; - outer: while (++index < length && result.length < maxLength) { - var value = array[index], - computed = iteratee ? iteratee(value) : value; - value = comparator || value !== 0 ? value : 0; - if (!(seen ? cacheHas(seen, computed) : includes(result, computed, comparator))) { - othIndex = othLength; - while (--othIndex) { - var cache = caches[othIndex]; - if (!(cache ? cacheHas(cache, computed) : includes(arrays[othIndex], computed, comparator))) { - continue outer; - } - } - if (seen) { - seen.push(computed); - } - result.push(value); - } - } - return result; - } - - /** - * The base implementation of `_.invert` and `_.invertBy` which inverts - * `object` with values transformed by `iteratee` and set by `setter`. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} setter The function to set `accumulator` values. - * @param {Function} iteratee The iteratee to transform values. - * @param {Object} accumulator The initial inverted object. - * @returns {Function} Returns `accumulator`. - */ - function baseInverter(object, setter, iteratee, accumulator) { - baseForOwn(object, function (value, key, object) { - setter(accumulator, iteratee(value), key, object); - }); - return accumulator; - } - - /** - * The base implementation of `_.invoke` without support for individual - * method arguments. - * - * @private - * @param {Object} object The object to query. - * @param {Array|string} path The path of the method to invoke. - * @param {Array} args The arguments to invoke the method with. - * @returns {*} Returns the result of the invoked method. - */ - function baseInvoke(object, path, args) { - path = castPath(path, object); - object = parent(object, path); - var func = object == null ? object : object[toKey(last(path))]; - return func == null ? undefined : apply(func, object, args); - } - - /** - * The base implementation of `_.isArguments`. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an `arguments` object, - */ - function baseIsArguments(value) { - return isObjectLike(value) && baseGetTag(value) == argsTag; - } - - /** - * The base implementation of `_.isArrayBuffer` without Node.js optimizations. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`. - */ - function baseIsArrayBuffer(value) { - return isObjectLike(value) && baseGetTag(value) == arrayBufferTag; - } - - /** - * The base implementation of `_.isDate` without Node.js optimizations. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a date object, else `false`. - */ - function baseIsDate(value) { - return isObjectLike(value) && baseGetTag(value) == dateTag; - } - - /** - * The base implementation of `_.isEqual` which supports partial comparisons - * and tracks traversed objects. - * - * @private - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @param {boolean} bitmask The bitmask flags. - * 1 - Unordered comparison - * 2 - Partial comparison - * @param {Function} [customizer] The function to customize comparisons. - * @param {Object} [stack] Tracks traversed `value` and `other` objects. - * @returns {boolean} Returns `true` if the values are equivalent, else `false`. - */ - function baseIsEqual(value, other, bitmask, customizer, stack) { - if (value === other) { - return true; - } - if (value == null || other == null || !isObjectLike(value) && !isObjectLike(other)) { - return value !== value && other !== other; - } - return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); - } - - /** - * A specialized version of `baseIsEqual` for arrays and objects which performs - * deep comparisons and tracks traversed objects enabling objects with circular - * references to be compared. - * - * @private - * @param {Object} object The object to compare. - * @param {Object} other The other object to compare. - * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. - * @param {Function} customizer The function to customize comparisons. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Object} [stack] Tracks traversed `object` and `other` objects. - * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. - */ - function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { - var objIsArr = isArray(object), - othIsArr = isArray(other), - objTag = objIsArr ? arrayTag : getTag(object), - othTag = othIsArr ? arrayTag : getTag(other); - objTag = objTag == argsTag ? objectTag : objTag; - othTag = othTag == argsTag ? objectTag : othTag; - var objIsObj = objTag == objectTag, - othIsObj = othTag == objectTag, - isSameTag = objTag == othTag; - if (isSameTag && isBuffer(object)) { - if (!isBuffer(other)) { - return false; - } - objIsArr = true; - objIsObj = false; - } - if (isSameTag && !objIsObj) { - stack || (stack = new Stack()); - return objIsArr || isTypedArray(object) ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); - } - if (!(bitmask & COMPARE_PARTIAL_FLAG)) { - var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'), - othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__'); - if (objIsWrapped || othIsWrapped) { - var objUnwrapped = objIsWrapped ? object.value() : object, - othUnwrapped = othIsWrapped ? other.value() : other; - stack || (stack = new Stack()); - return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); - } - } - if (!isSameTag) { - return false; - } - stack || (stack = new Stack()); - return equalObjects(object, other, bitmask, customizer, equalFunc, stack); - } - - /** - * The base implementation of `_.isMap` without Node.js optimizations. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a map, else `false`. - */ - function baseIsMap(value) { - return isObjectLike(value) && getTag(value) == mapTag; - } - - /** - * The base implementation of `_.isMatch` without support for iteratee shorthands. - * - * @private - * @param {Object} object The object to inspect. - * @param {Object} source The object of property values to match. - * @param {Array} matchData The property names, values, and compare flags to match. - * @param {Function} [customizer] The function to customize comparisons. - * @returns {boolean} Returns `true` if `object` is a match, else `false`. - */ - function baseIsMatch(object, source, matchData, customizer) { - var index = matchData.length, - length = index, - noCustomizer = !customizer; - if (object == null) { - return !length; - } - object = Object(object); - while (index--) { - var data = matchData[index]; - if (noCustomizer && data[2] ? data[1] !== object[data[0]] : !(data[0] in object)) { - return false; - } - } - while (++index < length) { - data = matchData[index]; - var key = data[0], - objValue = object[key], - srcValue = data[1]; - if (noCustomizer && data[2]) { - if (objValue === undefined && !(key in object)) { - return false; - } - } else { - var stack = new Stack(); - if (customizer) { - var result = customizer(objValue, srcValue, key, object, source, stack); - } - if (!(result === undefined ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack) : result)) { - return false; - } - } - } - return true; - } - - /** - * The base implementation of `_.isNative` without bad shim checks. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a native function, - * else `false`. - */ - function baseIsNative(value) { - if (!isObject(value) || isMasked(value)) { - return false; - } - var pattern = isFunction(value) ? reIsNative : reIsHostCtor; - return pattern.test(toSource(value)); - } - - /** - * The base implementation of `_.isRegExp` without Node.js optimizations. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a regexp, else `false`. - */ - function baseIsRegExp(value) { - return isObjectLike(value) && baseGetTag(value) == regexpTag; - } - - /** - * The base implementation of `_.isSet` without Node.js optimizations. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a set, else `false`. - */ - function baseIsSet(value) { - return isObjectLike(value) && getTag(value) == setTag; - } - - /** - * The base implementation of `_.isTypedArray` without Node.js optimizations. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. - */ - function baseIsTypedArray(value) { - return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; - } - - /** - * The base implementation of `_.iteratee`. - * - * @private - * @param {*} [value=_.identity] The value to convert to an iteratee. - * @returns {Function} Returns the iteratee. - */ - function baseIteratee(value) { - // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9. - // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details. - if (typeof value == 'function') { - return value; - } - if (value == null) { - return identity; - } - if (typeof value == 'object') { - return isArray(value) ? baseMatchesProperty(value[0], value[1]) : baseMatches(value); - } - return property(value); - } - - /** - * The base implementation of `_.keys` which doesn't treat sparse arrays as dense. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - */ - function baseKeys(object) { - if (!isPrototype(object)) { - return nativeKeys(object); - } - var result = []; - for (var key in Object(object)) { - if (hasOwnProperty.call(object, key) && key != 'constructor') { - result.push(key); - } - } - return result; - } - - /** - * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - */ - function baseKeysIn(object) { - if (!isObject(object)) { - return nativeKeysIn(object); - } - var isProto = isPrototype(object), - result = []; - for (var key in object) { - if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) { - result.push(key); - } - } - return result; - } - - /** - * The base implementation of `_.lt` which doesn't coerce arguments. - * - * @private - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if `value` is less than `other`, - * else `false`. - */ - function baseLt(value, other) { - return value < other; - } - - /** - * The base implementation of `_.map` without support for iteratee shorthands. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns the new mapped array. - */ - function baseMap(collection, iteratee) { - var index = -1, - result = isArrayLike(collection) ? Array(collection.length) : []; - baseEach(collection, function (value, key, collection) { - result[++index] = iteratee(value, key, collection); - }); - return result; - } - - /** - * The base implementation of `_.matches` which doesn't clone `source`. - * - * @private - * @param {Object} source The object of property values to match. - * @returns {Function} Returns the new spec function. - */ - function baseMatches(source) { - var matchData = getMatchData(source); - if (matchData.length == 1 && matchData[0][2]) { - return matchesStrictComparable(matchData[0][0], matchData[0][1]); - } - return function (object) { - return object === source || baseIsMatch(object, source, matchData); - }; - } - - /** - * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`. - * - * @private - * @param {string} path The path of the property to get. - * @param {*} srcValue The value to match. - * @returns {Function} Returns the new spec function. - */ - function baseMatchesProperty(path, srcValue) { - if (isKey(path) && isStrictComparable(srcValue)) { - return matchesStrictComparable(toKey(path), srcValue); - } - return function (object) { - var objValue = get(object, path); - return objValue === undefined && objValue === srcValue ? hasIn(object, path) : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG); - }; - } - - /** - * The base implementation of `_.merge` without support for multiple sources. - * - * @private - * @param {Object} object The destination object. - * @param {Object} source The source object. - * @param {number} srcIndex The index of `source`. - * @param {Function} [customizer] The function to customize merged values. - * @param {Object} [stack] Tracks traversed source values and their merged - * counterparts. - */ - function baseMerge(object, source, srcIndex, customizer, stack) { - if (object === source) { - return; - } - baseFor(source, function (srcValue, key) { - stack || (stack = new Stack()); - if (isObject(srcValue)) { - baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack); - } else { - var newValue = customizer ? customizer(safeGet(object, key), srcValue, key + '', object, source, stack) : undefined; - if (newValue === undefined) { - newValue = srcValue; - } - assignMergeValue(object, key, newValue); - } - }, keysIn); - } - - /** - * A specialized version of `baseMerge` for arrays and objects which performs - * deep merges and tracks traversed objects enabling objects with circular - * references to be merged. - * - * @private - * @param {Object} object The destination object. - * @param {Object} source The source object. - * @param {string} key The key of the value to merge. - * @param {number} srcIndex The index of `source`. - * @param {Function} mergeFunc The function to merge values. - * @param {Function} [customizer] The function to customize assigned values. - * @param {Object} [stack] Tracks traversed source values and their merged - * counterparts. - */ - function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) { - var objValue = safeGet(object, key), - srcValue = safeGet(source, key), - stacked = stack.get(srcValue); - if (stacked) { - assignMergeValue(object, key, stacked); - return; - } - var newValue = customizer ? customizer(objValue, srcValue, key + '', object, source, stack) : undefined; - var isCommon = newValue === undefined; - if (isCommon) { - var isArr = isArray(srcValue), - isBuff = !isArr && isBuffer(srcValue), - isTyped = !isArr && !isBuff && isTypedArray(srcValue); - newValue = srcValue; - if (isArr || isBuff || isTyped) { - if (isArray(objValue)) { - newValue = objValue; - } else if (isArrayLikeObject(objValue)) { - newValue = copyArray(objValue); - } else if (isBuff) { - isCommon = false; - newValue = cloneBuffer(srcValue, true); - } else if (isTyped) { - isCommon = false; - newValue = cloneTypedArray(srcValue, true); - } else { - newValue = []; - } - } else if (isPlainObject(srcValue) || isArguments(srcValue)) { - newValue = objValue; - if (isArguments(objValue)) { - newValue = toPlainObject(objValue); - } else if (!isObject(objValue) || isFunction(objValue)) { - newValue = initCloneObject(srcValue); - } - } else { - isCommon = false; - } - } - if (isCommon) { - // Recursively merge objects and arrays (susceptible to call stack limits). - stack.set(srcValue, newValue); - mergeFunc(newValue, srcValue, srcIndex, customizer, stack); - stack['delete'](srcValue); - } - assignMergeValue(object, key, newValue); - } - - /** - * The base implementation of `_.nth` which doesn't coerce arguments. - * - * @private - * @param {Array} array The array to query. - * @param {number} n The index of the element to return. - * @returns {*} Returns the nth element of `array`. - */ - function baseNth(array, n) { - var length = array.length; - if (!length) { - return; - } - n += n < 0 ? length : 0; - return isIndex(n, length) ? array[n] : undefined; - } - - /** - * The base implementation of `_.orderBy` without param guards. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by. - * @param {string[]} orders The sort orders of `iteratees`. - * @returns {Array} Returns the new sorted array. - */ - function baseOrderBy(collection, iteratees, orders) { - if (iteratees.length) { - iteratees = arrayMap(iteratees, function (iteratee) { - if (isArray(iteratee)) { - return function (value) { - return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee); - }; - } - return iteratee; - }); - } else { - iteratees = [identity]; - } - var index = -1; - iteratees = arrayMap(iteratees, baseUnary(getIteratee())); - var result = baseMap(collection, function (value, key, collection) { - var criteria = arrayMap(iteratees, function (iteratee) { - return iteratee(value); - }); - return { - 'criteria': criteria, - 'index': ++index, - 'value': value - }; - }); - return baseSortBy(result, function (object, other) { - return compareMultiple(object, other, orders); - }); - } - - /** - * The base implementation of `_.pick` without support for individual - * property identifiers. - * - * @private - * @param {Object} object The source object. - * @param {string[]} paths The property paths to pick. - * @returns {Object} Returns the new object. - */ - function basePick(object, paths) { - return basePickBy(object, paths, function (value, path) { - return hasIn(object, path); - }); - } - - /** - * The base implementation of `_.pickBy` without support for iteratee shorthands. - * - * @private - * @param {Object} object The source object. - * @param {string[]} paths The property paths to pick. - * @param {Function} predicate The function invoked per property. - * @returns {Object} Returns the new object. - */ - function basePickBy(object, paths, predicate) { - var index = -1, - length = paths.length, - result = {}; - while (++index < length) { - var path = paths[index], - value = baseGet(object, path); - if (predicate(value, path)) { - baseSet(result, castPath(path, object), value); - } - } - return result; - } - - /** - * A specialized version of `baseProperty` which supports deep paths. - * - * @private - * @param {Array|string} path The path of the property to get. - * @returns {Function} Returns the new accessor function. - */ - function basePropertyDeep(path) { - return function (object) { - return baseGet(object, path); - }; - } - - /** - * The base implementation of `_.pullAllBy` without support for iteratee - * shorthands. - * - * @private - * @param {Array} array The array to modify. - * @param {Array} values The values to remove. - * @param {Function} [iteratee] The iteratee invoked per element. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns `array`. - */ - function basePullAll(array, values, iteratee, comparator) { - var indexOf = comparator ? baseIndexOfWith : baseIndexOf, - index = -1, - length = values.length, - seen = array; - if (array === values) { - values = copyArray(values); - } - if (iteratee) { - seen = arrayMap(array, baseUnary(iteratee)); - } - while (++index < length) { - var fromIndex = 0, - value = values[index], - computed = iteratee ? iteratee(value) : value; - while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) { - if (seen !== array) { - splice.call(seen, fromIndex, 1); - } - splice.call(array, fromIndex, 1); - } - } - return array; - } - - /** - * The base implementation of `_.pullAt` without support for individual - * indexes or capturing the removed elements. - * - * @private - * @param {Array} array The array to modify. - * @param {number[]} indexes The indexes of elements to remove. - * @returns {Array} Returns `array`. - */ - function basePullAt(array, indexes) { - var length = array ? indexes.length : 0, - lastIndex = length - 1; - while (length--) { - var index = indexes[length]; - if (length == lastIndex || index !== previous) { - var previous = index; - if (isIndex(index)) { - splice.call(array, index, 1); - } else { - baseUnset(array, index); - } - } - } - return array; - } - - /** - * The base implementation of `_.random` without support for returning - * floating-point numbers. - * - * @private - * @param {number} lower The lower bound. - * @param {number} upper The upper bound. - * @returns {number} Returns the random number. - */ - function baseRandom(lower, upper) { - return lower + nativeFloor(nativeRandom() * (upper - lower + 1)); - } - - /** - * The base implementation of `_.range` and `_.rangeRight` which doesn't - * coerce arguments. - * - * @private - * @param {number} start The start of the range. - * @param {number} end The end of the range. - * @param {number} step The value to increment or decrement by. - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Array} Returns the range of numbers. - */ - function baseRange(start, end, step, fromRight) { - var index = -1, - length = nativeMax(nativeCeil((end - start) / (step || 1)), 0), - result = Array(length); - while (length--) { - result[fromRight ? length : ++index] = start; - start += step; - } - return result; - } - - /** - * The base implementation of `_.repeat` which doesn't coerce arguments. - * - * @private - * @param {string} string The string to repeat. - * @param {number} n The number of times to repeat the string. - * @returns {string} Returns the repeated string. - */ - function baseRepeat(string, n) { - var result = ''; - if (!string || n < 1 || n > MAX_SAFE_INTEGER) { - return result; - } - // Leverage the exponentiation by squaring algorithm for a faster repeat. - // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details. - do { - if (n % 2) { - result += string; - } - n = nativeFloor(n / 2); - if (n) { - string += string; - } - } while (n); - return result; - } - - /** - * The base implementation of `_.rest` which doesn't validate or coerce arguments. - * - * @private - * @param {Function} func The function to apply a rest parameter to. - * @param {number} [start=func.length-1] The start position of the rest parameter. - * @returns {Function} Returns the new function. - */ - function baseRest(func, start) { - return setToString(overRest(func, start, identity), func + ''); - } - - /** - * The base implementation of `_.sample`. - * - * @private - * @param {Array|Object} collection The collection to sample. - * @returns {*} Returns the random element. - */ - function baseSample(collection) { - return arraySample(values(collection)); - } - - /** - * The base implementation of `_.sampleSize` without param guards. - * - * @private - * @param {Array|Object} collection The collection to sample. - * @param {number} n The number of elements to sample. - * @returns {Array} Returns the random elements. - */ - function baseSampleSize(collection, n) { - var array = values(collection); - return shuffleSelf(array, baseClamp(n, 0, array.length)); - } - - /** - * The base implementation of `_.set`. - * - * @private - * @param {Object} object The object to modify. - * @param {Array|string} path The path of the property to set. - * @param {*} value The value to set. - * @param {Function} [customizer] The function to customize path creation. - * @returns {Object} Returns `object`. - */ - function baseSet(object, path, value, customizer) { - if (!isObject(object)) { - return object; - } - path = castPath(path, object); - var index = -1, - length = path.length, - lastIndex = length - 1, - nested = object; - while (nested != null && ++index < length) { - var key = toKey(path[index]), - newValue = value; - if (key === '__proto__' || key === 'constructor' || key === 'prototype') { - return object; - } - if (index != lastIndex) { - var objValue = nested[key]; - newValue = customizer ? customizer(objValue, key, nested) : undefined; - if (newValue === undefined) { - newValue = isObject(objValue) ? objValue : isIndex(path[index + 1]) ? [] : {}; - } - } - assignValue(nested, key, newValue); - nested = nested[key]; - } - return object; - } - - /** - * The base implementation of `setData` without support for hot loop shorting. - * - * @private - * @param {Function} func The function to associate metadata with. - * @param {*} data The metadata. - * @returns {Function} Returns `func`. - */ - var baseSetData = !metaMap ? identity : function (func, data) { - metaMap.set(func, data); - return func; - }; - - /** - * The base implementation of `setToString` without support for hot loop shorting. - * - * @private - * @param {Function} func The function to modify. - * @param {Function} string The `toString` result. - * @returns {Function} Returns `func`. - */ - var baseSetToString = !defineProperty ? identity : function (func, string) { - return defineProperty(func, 'toString', { - 'configurable': true, - 'enumerable': false, - 'value': constant(string), - 'writable': true - }); - }; - - /** - * The base implementation of `_.shuffle`. - * - * @private - * @param {Array|Object} collection The collection to shuffle. - * @returns {Array} Returns the new shuffled array. - */ - function baseShuffle(collection) { - return shuffleSelf(values(collection)); - } - - /** - * The base implementation of `_.slice` without an iteratee call guard. - * - * @private - * @param {Array} array The array to slice. - * @param {number} [start=0] The start position. - * @param {number} [end=array.length] The end position. - * @returns {Array} Returns the slice of `array`. - */ - function baseSlice(array, start, end) { - var index = -1, - length = array.length; - if (start < 0) { - start = -start > length ? 0 : length + start; - } - end = end > length ? length : end; - if (end < 0) { - end += length; - } - length = start > end ? 0 : end - start >>> 0; - start >>>= 0; - var result = Array(length); - while (++index < length) { - result[index] = array[index + start]; - } - return result; - } - - /** - * The base implementation of `_.some` without support for iteratee shorthands. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {boolean} Returns `true` if any element passes the predicate check, - * else `false`. - */ - function baseSome(collection, predicate) { - var result; - baseEach(collection, function (value, index, collection) { - result = predicate(value, index, collection); - return !result; - }); - return !!result; - } - - /** - * The base implementation of `_.sortedIndex` and `_.sortedLastIndex` which - * performs a binary search of `array` to determine the index at which `value` - * should be inserted into `array` in order to maintain its sort order. - * - * @private - * @param {Array} array The sorted array to inspect. - * @param {*} value The value to evaluate. - * @param {boolean} [retHighest] Specify returning the highest qualified index. - * @returns {number} Returns the index at which `value` should be inserted - * into `array`. - */ - function baseSortedIndex(array, value, retHighest) { - var low = 0, - high = array == null ? low : array.length; - if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) { - while (low < high) { - var mid = low + high >>> 1, - computed = array[mid]; - if (computed !== null && !isSymbol(computed) && (retHighest ? computed <= value : computed < value)) { - low = mid + 1; - } else { - high = mid; - } - } - return high; - } - return baseSortedIndexBy(array, value, identity, retHighest); - } - - /** - * The base implementation of `_.sortedIndexBy` and `_.sortedLastIndexBy` - * which invokes `iteratee` for `value` and each element of `array` to compute - * their sort ranking. The iteratee is invoked with one argument; (value). - * - * @private - * @param {Array} array The sorted array to inspect. - * @param {*} value The value to evaluate. - * @param {Function} iteratee The iteratee invoked per element. - * @param {boolean} [retHighest] Specify returning the highest qualified index. - * @returns {number} Returns the index at which `value` should be inserted - * into `array`. - */ - function baseSortedIndexBy(array, value, iteratee, retHighest) { - var low = 0, - high = array == null ? 0 : array.length; - if (high === 0) { - return 0; - } - value = iteratee(value); - var valIsNaN = value !== value, - valIsNull = value === null, - valIsSymbol = isSymbol(value), - valIsUndefined = value === undefined; - while (low < high) { - var mid = nativeFloor((low + high) / 2), - computed = iteratee(array[mid]), - othIsDefined = computed !== undefined, - othIsNull = computed === null, - othIsReflexive = computed === computed, - othIsSymbol = isSymbol(computed); - if (valIsNaN) { - var setLow = retHighest || othIsReflexive; - } else if (valIsUndefined) { - setLow = othIsReflexive && (retHighest || othIsDefined); - } else if (valIsNull) { - setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull); - } else if (valIsSymbol) { - setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol); - } else if (othIsNull || othIsSymbol) { - setLow = false; - } else { - setLow = retHighest ? computed <= value : computed < value; - } - if (setLow) { - low = mid + 1; - } else { - high = mid; - } - } - return nativeMin(high, MAX_ARRAY_INDEX); - } - - /** - * The base implementation of `_.sortedUniq` and `_.sortedUniqBy` without - * support for iteratee shorthands. - * - * @private - * @param {Array} array The array to inspect. - * @param {Function} [iteratee] The iteratee invoked per element. - * @returns {Array} Returns the new duplicate free array. - */ - function baseSortedUniq(array, iteratee) { - var index = -1, - length = array.length, - resIndex = 0, - result = []; - while (++index < length) { - var value = array[index], - computed = iteratee ? iteratee(value) : value; - if (!index || !eq(computed, seen)) { - var seen = computed; - result[resIndex++] = value === 0 ? 0 : value; - } - } - return result; - } - - /** - * The base implementation of `_.toNumber` which doesn't ensure correct - * conversions of binary, hexadecimal, or octal string values. - * - * @private - * @param {*} value The value to process. - * @returns {number} Returns the number. - */ - function baseToNumber(value) { - if (typeof value == 'number') { - return value; - } - if (isSymbol(value)) { - return NAN; - } - return +value; - } - - /** - * The base implementation of `_.toString` which doesn't convert nullish - * values to empty strings. - * - * @private - * @param {*} value The value to process. - * @returns {string} Returns the string. - */ - function baseToString(value) { - // Exit early for strings to avoid a performance hit in some environments. - if (typeof value == 'string') { - return value; - } - if (isArray(value)) { - // Recursively convert values (susceptible to call stack limits). - return arrayMap(value, baseToString) + ''; - } - if (isSymbol(value)) { - return symbolToString ? symbolToString.call(value) : ''; - } - var result = value + ''; - return result == '0' && 1 / value == -INFINITY ? '-0' : result; - } - - /** - * The base implementation of `_.uniqBy` without support for iteratee shorthands. - * - * @private - * @param {Array} array The array to inspect. - * @param {Function} [iteratee] The iteratee invoked per element. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns the new duplicate free array. - */ - function baseUniq(array, iteratee, comparator) { - var index = -1, - includes = arrayIncludes, - length = array.length, - isCommon = true, - result = [], - seen = result; - if (comparator) { - isCommon = false; - includes = arrayIncludesWith; - } else if (length >= LARGE_ARRAY_SIZE) { - var set = iteratee ? null : createSet(array); - if (set) { - return setToArray(set); - } - isCommon = false; - includes = cacheHas; - seen = new SetCache(); - } else { - seen = iteratee ? [] : result; - } - outer: while (++index < length) { - var value = array[index], - computed = iteratee ? iteratee(value) : value; - value = comparator || value !== 0 ? value : 0; - if (isCommon && computed === computed) { - var seenIndex = seen.length; - while (seenIndex--) { - if (seen[seenIndex] === computed) { - continue outer; - } - } - if (iteratee) { - seen.push(computed); - } - result.push(value); - } else if (!includes(seen, computed, comparator)) { - if (seen !== result) { - seen.push(computed); - } - result.push(value); - } - } - return result; - } - - /** - * The base implementation of `_.unset`. - * - * @private - * @param {Object} object The object to modify. - * @param {Array|string} path The property path to unset. - * @returns {boolean} Returns `true` if the property is deleted, else `false`. - */ - function baseUnset(object, path) { - path = castPath(path, object); - object = parent(object, path); - return object == null || delete object[toKey(last(path))]; - } - - /** - * The base implementation of `_.update`. - * - * @private - * @param {Object} object The object to modify. - * @param {Array|string} path The path of the property to update. - * @param {Function} updater The function to produce the updated value. - * @param {Function} [customizer] The function to customize path creation. - * @returns {Object} Returns `object`. - */ - function baseUpdate(object, path, updater, customizer) { - return baseSet(object, path, updater(baseGet(object, path)), customizer); - } - - /** - * The base implementation of methods like `_.dropWhile` and `_.takeWhile` - * without support for iteratee shorthands. - * - * @private - * @param {Array} array The array to query. - * @param {Function} predicate The function invoked per iteration. - * @param {boolean} [isDrop] Specify dropping elements instead of taking them. - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Array} Returns the slice of `array`. - */ - function baseWhile(array, predicate, isDrop, fromRight) { - var length = array.length, - index = fromRight ? length : -1; - while ((fromRight ? index-- : ++index < length) && predicate(array[index], index, array)) {} - return isDrop ? baseSlice(array, fromRight ? 0 : index, fromRight ? index + 1 : length) : baseSlice(array, fromRight ? index + 1 : 0, fromRight ? length : index); - } - - /** - * The base implementation of `wrapperValue` which returns the result of - * performing a sequence of actions on the unwrapped `value`, where each - * successive action is supplied the return value of the previous. - * - * @private - * @param {*} value The unwrapped value. - * @param {Array} actions Actions to perform to resolve the unwrapped value. - * @returns {*} Returns the resolved value. - */ - function baseWrapperValue(value, actions) { - var result = value; - if (result instanceof LazyWrapper) { - result = result.value(); - } - return arrayReduce(actions, function (result, action) { - return action.func.apply(action.thisArg, arrayPush([result], action.args)); - }, result); - } - - /** - * The base implementation of methods like `_.xor`, without support for - * iteratee shorthands, that accepts an array of arrays to inspect. - * - * @private - * @param {Array} arrays The arrays to inspect. - * @param {Function} [iteratee] The iteratee invoked per element. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns the new array of values. - */ - function baseXor(arrays, iteratee, comparator) { - var length = arrays.length; - if (length < 2) { - return length ? baseUniq(arrays[0]) : []; - } - var index = -1, - result = Array(length); - while (++index < length) { - var array = arrays[index], - othIndex = -1; - while (++othIndex < length) { - if (othIndex != index) { - result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator); - } - } - } - return baseUniq(baseFlatten(result, 1), iteratee, comparator); - } - - /** - * This base implementation of `_.zipObject` which assigns values using `assignFunc`. - * - * @private - * @param {Array} props The property identifiers. - * @param {Array} values The property values. - * @param {Function} assignFunc The function to assign values. - * @returns {Object} Returns the new object. - */ - function baseZipObject(props, values, assignFunc) { - var index = -1, - length = props.length, - valsLength = values.length, - result = {}; - while (++index < length) { - var value = index < valsLength ? values[index] : undefined; - assignFunc(result, props[index], value); - } - return result; - } - - /** - * Casts `value` to an empty array if it's not an array like object. - * - * @private - * @param {*} value The value to inspect. - * @returns {Array|Object} Returns the cast array-like object. - */ - function castArrayLikeObject(value) { - return isArrayLikeObject(value) ? value : []; - } - - /** - * Casts `value` to `identity` if it's not a function. - * - * @private - * @param {*} value The value to inspect. - * @returns {Function} Returns cast function. - */ - function castFunction(value) { - return typeof value == 'function' ? value : identity; - } - - /** - * Casts `value` to a path array if it's not one. - * - * @private - * @param {*} value The value to inspect. - * @param {Object} [object] The object to query keys on. - * @returns {Array} Returns the cast property path array. - */ - function castPath(value, object) { - if (isArray(value)) { - return value; - } - return isKey(value, object) ? [value] : stringToPath(toString(value)); - } - - /** - * A `baseRest` alias which can be replaced with `identity` by module - * replacement plugins. - * - * @private - * @type {Function} - * @param {Function} func The function to apply a rest parameter to. - * @returns {Function} Returns the new function. - */ - var castRest = baseRest; - - /** - * Casts `array` to a slice if it's needed. - * - * @private - * @param {Array} array The array to inspect. - * @param {number} start The start position. - * @param {number} [end=array.length] The end position. - * @returns {Array} Returns the cast slice. - */ - function castSlice(array, start, end) { - var length = array.length; - end = end === undefined ? length : end; - return !start && end >= length ? array : baseSlice(array, start, end); - } - - /** - * A simple wrapper around the global [`clearTimeout`](https://mdn.io/clearTimeout). - * - * @private - * @param {number|Object} id The timer id or timeout object of the timer to clear. - */ - var clearTimeout = ctxClearTimeout || function (id) { - return root.clearTimeout(id); - }; - - /** - * Creates a clone of `buffer`. - * - * @private - * @param {Buffer} buffer The buffer to clone. - * @param {boolean} [isDeep] Specify a deep clone. - * @returns {Buffer} Returns the cloned buffer. - */ - function cloneBuffer(buffer, isDeep) { - if (isDeep) { - return buffer.slice(); - } - var length = buffer.length, - result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length); - buffer.copy(result); - return result; - } - - /** - * Creates a clone of `arrayBuffer`. - * - * @private - * @param {ArrayBuffer} arrayBuffer The array buffer to clone. - * @returns {ArrayBuffer} Returns the cloned array buffer. - */ - function cloneArrayBuffer(arrayBuffer) { - var result = new arrayBuffer.constructor(arrayBuffer.byteLength); - new Uint8Array(result).set(new Uint8Array(arrayBuffer)); - return result; - } - - /** - * Creates a clone of `dataView`. - * - * @private - * @param {Object} dataView The data view to clone. - * @param {boolean} [isDeep] Specify a deep clone. - * @returns {Object} Returns the cloned data view. - */ - function cloneDataView(dataView, isDeep) { - var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer; - return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength); - } - - /** - * Creates a clone of `regexp`. - * - * @private - * @param {Object} regexp The regexp to clone. - * @returns {Object} Returns the cloned regexp. - */ - function cloneRegExp(regexp) { - var result = new regexp.constructor(regexp.source, reFlags.exec(regexp)); - result.lastIndex = regexp.lastIndex; - return result; - } - - /** - * Creates a clone of the `symbol` object. - * - * @private - * @param {Object} symbol The symbol object to clone. - * @returns {Object} Returns the cloned symbol object. - */ - function cloneSymbol(symbol) { - return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {}; - } - - /** - * Creates a clone of `typedArray`. - * - * @private - * @param {Object} typedArray The typed array to clone. - * @param {boolean} [isDeep] Specify a deep clone. - * @returns {Object} Returns the cloned typed array. - */ - function cloneTypedArray(typedArray, isDeep) { - var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer; - return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length); - } - - /** - * Compares values to sort them in ascending order. - * - * @private - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {number} Returns the sort order indicator for `value`. - */ - function compareAscending(value, other) { - if (value !== other) { - var valIsDefined = value !== undefined, - valIsNull = value === null, - valIsReflexive = value === value, - valIsSymbol = isSymbol(value); - var othIsDefined = other !== undefined, - othIsNull = other === null, - othIsReflexive = other === other, - othIsSymbol = isSymbol(other); - if (!othIsNull && !othIsSymbol && !valIsSymbol && value > other || valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol || valIsNull && othIsDefined && othIsReflexive || !valIsDefined && othIsReflexive || !valIsReflexive) { - return 1; - } - if (!valIsNull && !valIsSymbol && !othIsSymbol && value < other || othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol || othIsNull && valIsDefined && valIsReflexive || !othIsDefined && valIsReflexive || !othIsReflexive) { - return -1; - } - } - return 0; - } - - /** - * Used by `_.orderBy` to compare multiple properties of a value to another - * and stable sort them. - * - * If `orders` is unspecified, all values are sorted in ascending order. Otherwise, - * specify an order of "desc" for descending or "asc" for ascending sort order - * of corresponding values. - * - * @private - * @param {Object} object The object to compare. - * @param {Object} other The other object to compare. - * @param {boolean[]|string[]} orders The order to sort by for each property. - * @returns {number} Returns the sort order indicator for `object`. - */ - function compareMultiple(object, other, orders) { - var index = -1, - objCriteria = object.criteria, - othCriteria = other.criteria, - length = objCriteria.length, - ordersLength = orders.length; - while (++index < length) { - var result = compareAscending(objCriteria[index], othCriteria[index]); - if (result) { - if (index >= ordersLength) { - return result; - } - var order = orders[index]; - return result * (order == 'desc' ? -1 : 1); - } - } - // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications - // that causes it, under certain circumstances, to provide the same value for - // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247 - // for more details. - // - // This also ensures a stable sort in V8 and other engines. - // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details. - return object.index - other.index; - } - - /** - * Creates an array that is the composition of partially applied arguments, - * placeholders, and provided arguments into a single array of arguments. - * - * @private - * @param {Array} args The provided arguments. - * @param {Array} partials The arguments to prepend to those provided. - * @param {Array} holders The `partials` placeholder indexes. - * @params {boolean} [isCurried] Specify composing for a curried function. - * @returns {Array} Returns the new array of composed arguments. - */ - function composeArgs(args, partials, holders, isCurried) { - var argsIndex = -1, - argsLength = args.length, - holdersLength = holders.length, - leftIndex = -1, - leftLength = partials.length, - rangeLength = nativeMax(argsLength - holdersLength, 0), - result = Array(leftLength + rangeLength), - isUncurried = !isCurried; - while (++leftIndex < leftLength) { - result[leftIndex] = partials[leftIndex]; - } - while (++argsIndex < holdersLength) { - if (isUncurried || argsIndex < argsLength) { - result[holders[argsIndex]] = args[argsIndex]; - } - } - while (rangeLength--) { - result[leftIndex++] = args[argsIndex++]; - } - return result; - } - - /** - * This function is like `composeArgs` except that the arguments composition - * is tailored for `_.partialRight`. - * - * @private - * @param {Array} args The provided arguments. - * @param {Array} partials The arguments to append to those provided. - * @param {Array} holders The `partials` placeholder indexes. - * @params {boolean} [isCurried] Specify composing for a curried function. - * @returns {Array} Returns the new array of composed arguments. - */ - function composeArgsRight(args, partials, holders, isCurried) { - var argsIndex = -1, - argsLength = args.length, - holdersIndex = -1, - holdersLength = holders.length, - rightIndex = -1, - rightLength = partials.length, - rangeLength = nativeMax(argsLength - holdersLength, 0), - result = Array(rangeLength + rightLength), - isUncurried = !isCurried; - while (++argsIndex < rangeLength) { - result[argsIndex] = args[argsIndex]; - } - var offset = argsIndex; - while (++rightIndex < rightLength) { - result[offset + rightIndex] = partials[rightIndex]; - } - while (++holdersIndex < holdersLength) { - if (isUncurried || argsIndex < argsLength) { - result[offset + holders[holdersIndex]] = args[argsIndex++]; - } - } - return result; - } - - /** - * Copies the values of `source` to `array`. - * - * @private - * @param {Array} source The array to copy values from. - * @param {Array} [array=[]] The array to copy values to. - * @returns {Array} Returns `array`. - */ - function copyArray(source, array) { - var index = -1, - length = source.length; - array || (array = Array(length)); - while (++index < length) { - array[index] = source[index]; - } - return array; - } - - /** - * Copies properties of `source` to `object`. - * - * @private - * @param {Object} source The object to copy properties from. - * @param {Array} props The property identifiers to copy. - * @param {Object} [object={}] The object to copy properties to. - * @param {Function} [customizer] The function to customize copied values. - * @returns {Object} Returns `object`. - */ - function copyObject(source, props, object, customizer) { - var isNew = !object; - object || (object = {}); - var index = -1, - length = props.length; - while (++index < length) { - var key = props[index]; - var newValue = customizer ? customizer(object[key], source[key], key, object, source) : undefined; - if (newValue === undefined) { - newValue = source[key]; - } - if (isNew) { - baseAssignValue(object, key, newValue); - } else { - assignValue(object, key, newValue); - } - } - return object; - } - - /** - * Copies own symbols of `source` to `object`. - * - * @private - * @param {Object} source The object to copy symbols from. - * @param {Object} [object={}] The object to copy symbols to. - * @returns {Object} Returns `object`. - */ - function copySymbols(source, object) { - return copyObject(source, getSymbols(source), object); - } - - /** - * Copies own and inherited symbols of `source` to `object`. - * - * @private - * @param {Object} source The object to copy symbols from. - * @param {Object} [object={}] The object to copy symbols to. - * @returns {Object} Returns `object`. - */ - function copySymbolsIn(source, object) { - return copyObject(source, getSymbolsIn(source), object); - } - - /** - * Creates a function like `_.groupBy`. - * - * @private - * @param {Function} setter The function to set accumulator values. - * @param {Function} [initializer] The accumulator object initializer. - * @returns {Function} Returns the new aggregator function. - */ - function createAggregator(setter, initializer) { - return function (collection, iteratee) { - var func = isArray(collection) ? arrayAggregator : baseAggregator, - accumulator = initializer ? initializer() : {}; - return func(collection, setter, getIteratee(iteratee, 2), accumulator); - }; - } - - /** - * Creates a function like `_.assign`. - * - * @private - * @param {Function} assigner The function to assign values. - * @returns {Function} Returns the new assigner function. - */ - function createAssigner(assigner) { - return baseRest(function (object, sources) { - var index = -1, - length = sources.length, - customizer = length > 1 ? sources[length - 1] : undefined, - guard = length > 2 ? sources[2] : undefined; - customizer = assigner.length > 3 && typeof customizer == 'function' ? (length--, customizer) : undefined; - if (guard && isIterateeCall(sources[0], sources[1], guard)) { - customizer = length < 3 ? undefined : customizer; - length = 1; - } - object = Object(object); - while (++index < length) { - var source = sources[index]; - if (source) { - assigner(object, source, index, customizer); - } - } - return object; - }); - } - - /** - * Creates a `baseEach` or `baseEachRight` function. - * - * @private - * @param {Function} eachFunc The function to iterate over a collection. - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Function} Returns the new base function. - */ - function createBaseEach(eachFunc, fromRight) { - return function (collection, iteratee) { - if (collection == null) { - return collection; - } - if (!isArrayLike(collection)) { - return eachFunc(collection, iteratee); - } - var length = collection.length, - index = fromRight ? length : -1, - iterable = Object(collection); - while (fromRight ? index-- : ++index < length) { - if (iteratee(iterable[index], index, iterable) === false) { - break; - } - } - return collection; - }; - } - - /** - * Creates a base function for methods like `_.forIn` and `_.forOwn`. - * - * @private - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Function} Returns the new base function. - */ - function createBaseFor(fromRight) { - return function (object, iteratee, keysFunc) { - var index = -1, - iterable = Object(object), - props = keysFunc(object), - length = props.length; - while (length--) { - var key = props[fromRight ? length : ++index]; - if (iteratee(iterable[key], key, iterable) === false) { - break; - } - } - return object; - }; - } - - /** - * Creates a function that wraps `func` to invoke it with the optional `this` - * binding of `thisArg`. - * - * @private - * @param {Function} func The function to wrap. - * @param {number} bitmask The bitmask flags. See `createWrap` for more details. - * @param {*} [thisArg] The `this` binding of `func`. - * @returns {Function} Returns the new wrapped function. - */ - function createBind(func, bitmask, thisArg) { - var isBind = bitmask & WRAP_BIND_FLAG, - Ctor = createCtor(func); - function wrapper() { - var fn = this && this !== root && this instanceof wrapper ? Ctor : func; - return fn.apply(isBind ? thisArg : this, arguments); - } - return wrapper; - } - - /** - * Creates a function like `_.lowerFirst`. - * - * @private - * @param {string} methodName The name of the `String` case method to use. - * @returns {Function} Returns the new case function. - */ - function createCaseFirst(methodName) { - return function (string) { - string = toString(string); - var strSymbols = hasUnicode(string) ? stringToArray(string) : undefined; - var chr = strSymbols ? strSymbols[0] : string.charAt(0); - var trailing = strSymbols ? castSlice(strSymbols, 1).join('') : string.slice(1); - return chr[methodName]() + trailing; - }; - } - - /** - * Creates a function like `_.camelCase`. - * - * @private - * @param {Function} callback The function to combine each word. - * @returns {Function} Returns the new compounder function. - */ - function createCompounder(callback) { - return function (string) { - return arrayReduce(words(deburr(string).replace(reApos, '')), callback, ''); - }; - } - - /** - * Creates a function that produces an instance of `Ctor` regardless of - * whether it was invoked as part of a `new` expression or by `call` or `apply`. - * - * @private - * @param {Function} Ctor The constructor to wrap. - * @returns {Function} Returns the new wrapped function. - */ - function createCtor(Ctor) { - return function () { - // Use a `switch` statement to work with class constructors. See - // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist - // for more details. - var args = arguments; - switch (args.length) { - case 0: - return new Ctor(); - case 1: - return new Ctor(args[0]); - case 2: - return new Ctor(args[0], args[1]); - case 3: - return new Ctor(args[0], args[1], args[2]); - case 4: - return new Ctor(args[0], args[1], args[2], args[3]); - case 5: - return new Ctor(args[0], args[1], args[2], args[3], args[4]); - case 6: - return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]); - case 7: - return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]); - } - var thisBinding = baseCreate(Ctor.prototype), - result = Ctor.apply(thisBinding, args); - - // Mimic the constructor's `return` behavior. - // See https://es5.github.io/#x13.2.2 for more details. - return isObject(result) ? result : thisBinding; - }; - } - - /** - * Creates a function that wraps `func` to enable currying. - * - * @private - * @param {Function} func The function to wrap. - * @param {number} bitmask The bitmask flags. See `createWrap` for more details. - * @param {number} arity The arity of `func`. - * @returns {Function} Returns the new wrapped function. - */ - function createCurry(func, bitmask, arity) { - var Ctor = createCtor(func); - function wrapper() { - var length = arguments.length, - args = Array(length), - index = length, - placeholder = getHolder(wrapper); - while (index--) { - args[index] = arguments[index]; - } - var holders = length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder ? [] : replaceHolders(args, placeholder); - length -= holders.length; - if (length < arity) { - return createRecurry(func, bitmask, createHybrid, wrapper.placeholder, undefined, args, holders, undefined, undefined, arity - length); - } - var fn = this && this !== root && this instanceof wrapper ? Ctor : func; - return apply(fn, this, args); - } - return wrapper; - } - - /** - * Creates a `_.find` or `_.findLast` function. - * - * @private - * @param {Function} findIndexFunc The function to find the collection index. - * @returns {Function} Returns the new find function. - */ - function createFind(findIndexFunc) { - return function (collection, predicate, fromIndex) { - var iterable = Object(collection); - if (!isArrayLike(collection)) { - var iteratee = getIteratee(predicate, 3); - collection = keys(collection); - predicate = function (key) { - return iteratee(iterable[key], key, iterable); - }; - } - var index = findIndexFunc(collection, predicate, fromIndex); - return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined; - }; - } - - /** - * Creates a `_.flow` or `_.flowRight` function. - * - * @private - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Function} Returns the new flow function. - */ - function createFlow(fromRight) { - return flatRest(function (funcs) { - var length = funcs.length, - index = length, - prereq = LodashWrapper.prototype.thru; - if (fromRight) { - funcs.reverse(); - } - while (index--) { - var func = funcs[index]; - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - if (prereq && !wrapper && getFuncName(func) == 'wrapper') { - var wrapper = new LodashWrapper([], true); - } - } - index = wrapper ? index : length; - while (++index < length) { - func = funcs[index]; - var funcName = getFuncName(func), - data = funcName == 'wrapper' ? getData(func) : undefined; - if (data && isLaziable(data[0]) && data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) && !data[4].length && data[9] == 1) { - wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]); - } else { - wrapper = func.length == 1 && isLaziable(func) ? wrapper[funcName]() : wrapper.thru(func); - } - } - return function () { - var args = arguments, - value = args[0]; - if (wrapper && args.length == 1 && isArray(value)) { - return wrapper.plant(value).value(); - } - var index = 0, - result = length ? funcs[index].apply(this, args) : value; - while (++index < length) { - result = funcs[index].call(this, result); - } - return result; - }; - }); - } - - /** - * Creates a function that wraps `func` to invoke it with optional `this` - * binding of `thisArg`, partial application, and currying. - * - * @private - * @param {Function|string} func The function or method name to wrap. - * @param {number} bitmask The bitmask flags. See `createWrap` for more details. - * @param {*} [thisArg] The `this` binding of `func`. - * @param {Array} [partials] The arguments to prepend to those provided to - * the new function. - * @param {Array} [holders] The `partials` placeholder indexes. - * @param {Array} [partialsRight] The arguments to append to those provided - * to the new function. - * @param {Array} [holdersRight] The `partialsRight` placeholder indexes. - * @param {Array} [argPos] The argument positions of the new function. - * @param {number} [ary] The arity cap of `func`. - * @param {number} [arity] The arity of `func`. - * @returns {Function} Returns the new wrapped function. - */ - function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) { - var isAry = bitmask & WRAP_ARY_FLAG, - isBind = bitmask & WRAP_BIND_FLAG, - isBindKey = bitmask & WRAP_BIND_KEY_FLAG, - isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG), - isFlip = bitmask & WRAP_FLIP_FLAG, - Ctor = isBindKey ? undefined : createCtor(func); - function wrapper() { - var length = arguments.length, - args = Array(length), - index = length; - while (index--) { - args[index] = arguments[index]; - } - if (isCurried) { - var placeholder = getHolder(wrapper), - holdersCount = countHolders(args, placeholder); - } - if (partials) { - args = composeArgs(args, partials, holders, isCurried); - } - if (partialsRight) { - args = composeArgsRight(args, partialsRight, holdersRight, isCurried); - } - length -= holdersCount; - if (isCurried && length < arity) { - var newHolders = replaceHolders(args, placeholder); - return createRecurry(func, bitmask, createHybrid, wrapper.placeholder, thisArg, args, newHolders, argPos, ary, arity - length); - } - var thisBinding = isBind ? thisArg : this, - fn = isBindKey ? thisBinding[func] : func; - length = args.length; - if (argPos) { - args = reorder(args, argPos); - } else if (isFlip && length > 1) { - args.reverse(); - } - if (isAry && ary < length) { - args.length = ary; - } - if (this && this !== root && this instanceof wrapper) { - fn = Ctor || createCtor(fn); - } - return fn.apply(thisBinding, args); - } - return wrapper; - } - - /** - * Creates a function like `_.invertBy`. - * - * @private - * @param {Function} setter The function to set accumulator values. - * @param {Function} toIteratee The function to resolve iteratees. - * @returns {Function} Returns the new inverter function. - */ - function createInverter(setter, toIteratee) { - return function (object, iteratee) { - return baseInverter(object, setter, toIteratee(iteratee), {}); - }; - } - - /** - * Creates a function that performs a mathematical operation on two values. - * - * @private - * @param {Function} operator The function to perform the operation. - * @param {number} [defaultValue] The value used for `undefined` arguments. - * @returns {Function} Returns the new mathematical operation function. - */ - function createMathOperation(operator, defaultValue) { - return function (value, other) { - var result; - if (value === undefined && other === undefined) { - return defaultValue; - } - if (value !== undefined) { - result = value; - } - if (other !== undefined) { - if (result === undefined) { - return other; - } - if (typeof value == 'string' || typeof other == 'string') { - value = baseToString(value); - other = baseToString(other); - } else { - value = baseToNumber(value); - other = baseToNumber(other); - } - result = operator(value, other); - } - return result; - }; - } - - /** - * Creates a function like `_.over`. - * - * @private - * @param {Function} arrayFunc The function to iterate over iteratees. - * @returns {Function} Returns the new over function. - */ - function createOver(arrayFunc) { - return flatRest(function (iteratees) { - iteratees = arrayMap(iteratees, baseUnary(getIteratee())); - return baseRest(function (args) { - var thisArg = this; - return arrayFunc(iteratees, function (iteratee) { - return apply(iteratee, thisArg, args); - }); - }); - }); - } - - /** - * Creates the padding for `string` based on `length`. The `chars` string - * is truncated if the number of characters exceeds `length`. - * - * @private - * @param {number} length The padding length. - * @param {string} [chars=' '] The string used as padding. - * @returns {string} Returns the padding for `string`. - */ - function createPadding(length, chars) { - chars = chars === undefined ? ' ' : baseToString(chars); - var charsLength = chars.length; - if (charsLength < 2) { - return charsLength ? baseRepeat(chars, length) : chars; - } - var result = baseRepeat(chars, nativeCeil(length / stringSize(chars))); - return hasUnicode(chars) ? castSlice(stringToArray(result), 0, length).join('') : result.slice(0, length); - } - - /** - * Creates a function that wraps `func` to invoke it with the `this` binding - * of `thisArg` and `partials` prepended to the arguments it receives. - * - * @private - * @param {Function} func The function to wrap. - * @param {number} bitmask The bitmask flags. See `createWrap` for more details. - * @param {*} thisArg The `this` binding of `func`. - * @param {Array} partials The arguments to prepend to those provided to - * the new function. - * @returns {Function} Returns the new wrapped function. - */ - function createPartial(func, bitmask, thisArg, partials) { - var isBind = bitmask & WRAP_BIND_FLAG, - Ctor = createCtor(func); - function wrapper() { - var argsIndex = -1, - argsLength = arguments.length, - leftIndex = -1, - leftLength = partials.length, - args = Array(leftLength + argsLength), - fn = this && this !== root && this instanceof wrapper ? Ctor : func; - while (++leftIndex < leftLength) { - args[leftIndex] = partials[leftIndex]; - } - while (argsLength--) { - args[leftIndex++] = arguments[++argsIndex]; - } - return apply(fn, isBind ? thisArg : this, args); - } - return wrapper; - } - - /** - * Creates a `_.range` or `_.rangeRight` function. - * - * @private - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Function} Returns the new range function. - */ - function createRange(fromRight) { - return function (start, end, step) { - if (step && typeof step != 'number' && isIterateeCall(start, end, step)) { - end = step = undefined; - } - // Ensure the sign of `-0` is preserved. - start = toFinite(start); - if (end === undefined) { - end = start; - start = 0; - } else { - end = toFinite(end); - } - step = step === undefined ? start < end ? 1 : -1 : toFinite(step); - return baseRange(start, end, step, fromRight); - }; - } - - /** - * Creates a function that performs a relational operation on two values. - * - * @private - * @param {Function} operator The function to perform the operation. - * @returns {Function} Returns the new relational operation function. - */ - function createRelationalOperation(operator) { - return function (value, other) { - if (!(typeof value == 'string' && typeof other == 'string')) { - value = toNumber(value); - other = toNumber(other); - } - return operator(value, other); - }; - } - - /** - * Creates a function that wraps `func` to continue currying. - * - * @private - * @param {Function} func The function to wrap. - * @param {number} bitmask The bitmask flags. See `createWrap` for more details. - * @param {Function} wrapFunc The function to create the `func` wrapper. - * @param {*} placeholder The placeholder value. - * @param {*} [thisArg] The `this` binding of `func`. - * @param {Array} [partials] The arguments to prepend to those provided to - * the new function. - * @param {Array} [holders] The `partials` placeholder indexes. - * @param {Array} [argPos] The argument positions of the new function. - * @param {number} [ary] The arity cap of `func`. - * @param {number} [arity] The arity of `func`. - * @returns {Function} Returns the new wrapped function. - */ - function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) { - var isCurry = bitmask & WRAP_CURRY_FLAG, - newHolders = isCurry ? holders : undefined, - newHoldersRight = isCurry ? undefined : holders, - newPartials = isCurry ? partials : undefined, - newPartialsRight = isCurry ? undefined : partials; - bitmask |= isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG; - bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG); - if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) { - bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG); - } - var newData = [func, bitmask, thisArg, newPartials, newHolders, newPartialsRight, newHoldersRight, argPos, ary, arity]; - var result = wrapFunc.apply(undefined, newData); - if (isLaziable(func)) { - setData(result, newData); - } - result.placeholder = placeholder; - return setWrapToString(result, func, bitmask); - } - - /** - * Creates a function like `_.round`. - * - * @private - * @param {string} methodName The name of the `Math` method to use when rounding. - * @returns {Function} Returns the new round function. - */ - function createRound(methodName) { - var func = Math[methodName]; - return function (number, precision) { - number = toNumber(number); - precision = precision == null ? 0 : nativeMin(toInteger(precision), 292); - if (precision && nativeIsFinite(number)) { - // Shift with exponential notation to avoid floating-point issues. - // See [MDN](https://mdn.io/round#Examples) for more details. - var pair = (toString(number) + 'e').split('e'), - value = func(pair[0] + 'e' + (+pair[1] + precision)); - pair = (toString(value) + 'e').split('e'); - return +(pair[0] + 'e' + (+pair[1] - precision)); - } - return func(number); - }; - } - - /** - * Creates a set object of `values`. - * - * @private - * @param {Array} values The values to add to the set. - * @returns {Object} Returns the new set. - */ - var createSet = !(Set && 1 / setToArray(new Set([, -0]))[1] == INFINITY) ? noop : function (values) { - return new Set(values); - }; - - /** - * Creates a `_.toPairs` or `_.toPairsIn` function. - * - * @private - * @param {Function} keysFunc The function to get the keys of a given object. - * @returns {Function} Returns the new pairs function. - */ - function createToPairs(keysFunc) { - return function (object) { - var tag = getTag(object); - if (tag == mapTag) { - return mapToArray(object); - } - if (tag == setTag) { - return setToPairs(object); - } - return baseToPairs(object, keysFunc(object)); - }; - } - - /** - * Creates a function that either curries or invokes `func` with optional - * `this` binding and partially applied arguments. - * - * @private - * @param {Function|string} func The function or method name to wrap. - * @param {number} bitmask The bitmask flags. - * 1 - `_.bind` - * 2 - `_.bindKey` - * 4 - `_.curry` or `_.curryRight` of a bound function - * 8 - `_.curry` - * 16 - `_.curryRight` - * 32 - `_.partial` - * 64 - `_.partialRight` - * 128 - `_.rearg` - * 256 - `_.ary` - * 512 - `_.flip` - * @param {*} [thisArg] The `this` binding of `func`. - * @param {Array} [partials] The arguments to be partially applied. - * @param {Array} [holders] The `partials` placeholder indexes. - * @param {Array} [argPos] The argument positions of the new function. - * @param {number} [ary] The arity cap of `func`. - * @param {number} [arity] The arity of `func`. - * @returns {Function} Returns the new wrapped function. - */ - function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) { - var isBindKey = bitmask & WRAP_BIND_KEY_FLAG; - if (!isBindKey && typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - var length = partials ? partials.length : 0; - if (!length) { - bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG); - partials = holders = undefined; - } - ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0); - arity = arity === undefined ? arity : toInteger(arity); - length -= holders ? holders.length : 0; - if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) { - var partialsRight = partials, - holdersRight = holders; - partials = holders = undefined; - } - var data = isBindKey ? undefined : getData(func); - var newData = [func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity]; - if (data) { - mergeData(newData, data); - } - func = newData[0]; - bitmask = newData[1]; - thisArg = newData[2]; - partials = newData[3]; - holders = newData[4]; - arity = newData[9] = newData[9] === undefined ? isBindKey ? 0 : func.length : nativeMax(newData[9] - length, 0); - if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) { - bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG); - } - if (!bitmask || bitmask == WRAP_BIND_FLAG) { - var result = createBind(func, bitmask, thisArg); - } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) { - result = createCurry(func, bitmask, arity); - } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) { - result = createPartial(func, bitmask, thisArg, partials); - } else { - result = createHybrid.apply(undefined, newData); - } - var setter = data ? baseSetData : setData; - return setWrapToString(setter(result, newData), func, bitmask); - } - - /** - * Used by `_.defaults` to customize its `_.assignIn` use to assign properties - * of source objects to the destination object for all destination properties - * that resolve to `undefined`. - * - * @private - * @param {*} objValue The destination value. - * @param {*} srcValue The source value. - * @param {string} key The key of the property to assign. - * @param {Object} object The parent object of `objValue`. - * @returns {*} Returns the value to assign. - */ - function customDefaultsAssignIn(objValue, srcValue, key, object) { - if (objValue === undefined || eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key)) { - return srcValue; - } - return objValue; - } - - /** - * Used by `_.defaultsDeep` to customize its `_.merge` use to merge source - * objects into destination objects that are passed thru. - * - * @private - * @param {*} objValue The destination value. - * @param {*} srcValue The source value. - * @param {string} key The key of the property to merge. - * @param {Object} object The parent object of `objValue`. - * @param {Object} source The parent object of `srcValue`. - * @param {Object} [stack] Tracks traversed source values and their merged - * counterparts. - * @returns {*} Returns the value to assign. - */ - function customDefaultsMerge(objValue, srcValue, key, object, source, stack) { - if (isObject(objValue) && isObject(srcValue)) { - // Recursively merge objects and arrays (susceptible to call stack limits). - stack.set(srcValue, objValue); - baseMerge(objValue, srcValue, undefined, customDefaultsMerge, stack); - stack['delete'](srcValue); - } - return objValue; - } - - /** - * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain - * objects. - * - * @private - * @param {*} value The value to inspect. - * @param {string} key The key of the property to inspect. - * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`. - */ - function customOmitClone(value) { - return isPlainObject(value) ? undefined : value; - } - - /** - * A specialized version of `baseIsEqualDeep` for arrays with support for - * partial deep comparisons. - * - * @private - * @param {Array} array The array to compare. - * @param {Array} other The other array to compare. - * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. - * @param {Function} customizer The function to customize comparisons. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Object} stack Tracks traversed `array` and `other` objects. - * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. - */ - function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { - var isPartial = bitmask & COMPARE_PARTIAL_FLAG, - arrLength = array.length, - othLength = other.length; - if (arrLength != othLength && !(isPartial && othLength > arrLength)) { - return false; - } - // Check that cyclic values are equal. - var arrStacked = stack.get(array); - var othStacked = stack.get(other); - if (arrStacked && othStacked) { - return arrStacked == other && othStacked == array; - } - var index = -1, - result = true, - seen = bitmask & COMPARE_UNORDERED_FLAG ? new SetCache() : undefined; - stack.set(array, other); - stack.set(other, array); - - // Ignore non-index properties. - while (++index < arrLength) { - var arrValue = array[index], - othValue = other[index]; - if (customizer) { - var compared = isPartial ? customizer(othValue, arrValue, index, other, array, stack) : customizer(arrValue, othValue, index, array, other, stack); - } - if (compared !== undefined) { - if (compared) { - continue; - } - result = false; - break; - } - // Recursively compare arrays (susceptible to call stack limits). - if (seen) { - if (!arraySome(other, function (othValue, othIndex) { - if (!cacheHas(seen, othIndex) && (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { - return seen.push(othIndex); - } - })) { - result = false; - break; - } - } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { - result = false; - break; - } - } - stack['delete'](array); - stack['delete'](other); - return result; - } - - /** - * A specialized version of `baseIsEqualDeep` for comparing objects of - * the same `toStringTag`. - * - * **Note:** This function only supports comparing values with tags of - * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. - * - * @private - * @param {Object} object The object to compare. - * @param {Object} other The other object to compare. - * @param {string} tag The `toStringTag` of the objects to compare. - * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. - * @param {Function} customizer The function to customize comparisons. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Object} stack Tracks traversed `object` and `other` objects. - * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. - */ - function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { - switch (tag) { - case dataViewTag: - if (object.byteLength != other.byteLength || object.byteOffset != other.byteOffset) { - return false; - } - object = object.buffer; - other = other.buffer; - case arrayBufferTag: - if (object.byteLength != other.byteLength || !equalFunc(new Uint8Array(object), new Uint8Array(other))) { - return false; - } - return true; - case boolTag: - case dateTag: - case numberTag: - // Coerce booleans to `1` or `0` and dates to milliseconds. - // Invalid dates are coerced to `NaN`. - return eq(+object, +other); - case errorTag: - return object.name == other.name && object.message == other.message; - case regexpTag: - case stringTag: - // Coerce regexes to strings and treat strings, primitives and objects, - // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring - // for more details. - return object == other + ''; - case mapTag: - var convert = mapToArray; - case setTag: - var isPartial = bitmask & COMPARE_PARTIAL_FLAG; - convert || (convert = setToArray); - if (object.size != other.size && !isPartial) { - return false; - } - // Assume cyclic values are equal. - var stacked = stack.get(object); - if (stacked) { - return stacked == other; - } - bitmask |= COMPARE_UNORDERED_FLAG; - - // Recursively compare objects (susceptible to call stack limits). - stack.set(object, other); - var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack); - stack['delete'](object); - return result; - case symbolTag: - if (symbolValueOf) { - return symbolValueOf.call(object) == symbolValueOf.call(other); - } - } - return false; - } - - /** - * A specialized version of `baseIsEqualDeep` for objects with support for - * partial deep comparisons. - * - * @private - * @param {Object} object The object to compare. - * @param {Object} other The other object to compare. - * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. - * @param {Function} customizer The function to customize comparisons. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Object} stack Tracks traversed `object` and `other` objects. - * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. - */ - function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { - var isPartial = bitmask & COMPARE_PARTIAL_FLAG, - objProps = getAllKeys(object), - objLength = objProps.length, - othProps = getAllKeys(other), - othLength = othProps.length; - if (objLength != othLength && !isPartial) { - return false; - } - var index = objLength; - while (index--) { - var key = objProps[index]; - if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) { - return false; - } - } - // Check that cyclic values are equal. - var objStacked = stack.get(object); - var othStacked = stack.get(other); - if (objStacked && othStacked) { - return objStacked == other && othStacked == object; - } - var result = true; - stack.set(object, other); - stack.set(other, object); - var skipCtor = isPartial; - while (++index < objLength) { - key = objProps[index]; - var objValue = object[key], - othValue = other[key]; - if (customizer) { - var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack); - } - // Recursively compare objects (susceptible to call stack limits). - if (!(compared === undefined ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) { - result = false; - break; - } - skipCtor || (skipCtor = key == 'constructor'); - } - if (result && !skipCtor) { - var objCtor = object.constructor, - othCtor = other.constructor; - - // Non `Object` object instances with different constructors are not equal. - if (objCtor != othCtor && 'constructor' in object && 'constructor' in other && !(typeof objCtor == 'function' && objCtor instanceof objCtor && typeof othCtor == 'function' && othCtor instanceof othCtor)) { - result = false; - } - } - stack['delete'](object); - stack['delete'](other); - return result; - } - - /** - * A specialized version of `baseRest` which flattens the rest array. - * - * @private - * @param {Function} func The function to apply a rest parameter to. - * @returns {Function} Returns the new function. - */ - function flatRest(func) { - return setToString(overRest(func, undefined, flatten), func + ''); - } - - /** - * Creates an array of own enumerable property names and symbols of `object`. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names and symbols. - */ - function getAllKeys(object) { - return baseGetAllKeys(object, keys, getSymbols); - } - - /** - * Creates an array of own and inherited enumerable property names and - * symbols of `object`. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names and symbols. - */ - function getAllKeysIn(object) { - return baseGetAllKeys(object, keysIn, getSymbolsIn); - } - - /** - * Gets metadata for `func`. - * - * @private - * @param {Function} func The function to query. - * @returns {*} Returns the metadata for `func`. - */ - var getData = !metaMap ? noop : function (func) { - return metaMap.get(func); - }; - - /** - * Gets the name of `func`. - * - * @private - * @param {Function} func The function to query. - * @returns {string} Returns the function name. - */ - function getFuncName(func) { - var result = func.name + '', - array = realNames[result], - length = hasOwnProperty.call(realNames, result) ? array.length : 0; - while (length--) { - var data = array[length], - otherFunc = data.func; - if (otherFunc == null || otherFunc == func) { - return data.name; - } - } - return result; - } - - /** - * Gets the argument placeholder value for `func`. - * - * @private - * @param {Function} func The function to inspect. - * @returns {*} Returns the placeholder value. - */ - function getHolder(func) { - var object = hasOwnProperty.call(lodash, 'placeholder') ? lodash : func; - return object.placeholder; - } - - /** - * Gets the appropriate "iteratee" function. If `_.iteratee` is customized, - * this function returns the custom method, otherwise it returns `baseIteratee`. - * If arguments are provided, the chosen function is invoked with them and - * its result is returned. - * - * @private - * @param {*} [value] The value to convert to an iteratee. - * @param {number} [arity] The arity of the created iteratee. - * @returns {Function} Returns the chosen function or its result. - */ - function getIteratee() { - var result = lodash.iteratee || iteratee; - result = result === iteratee ? baseIteratee : result; - return arguments.length ? result(arguments[0], arguments[1]) : result; - } - - /** - * Gets the data for `map`. - * - * @private - * @param {Object} map The map to query. - * @param {string} key The reference key. - * @returns {*} Returns the map data. - */ - function getMapData(map, key) { - var data = map.__data__; - return isKeyable(key) ? data[typeof key == 'string' ? 'string' : 'hash'] : data.map; - } - - /** - * Gets the property names, values, and compare flags of `object`. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the match data of `object`. - */ - function getMatchData(object) { - var result = keys(object), - length = result.length; - while (length--) { - var key = result[length], - value = object[key]; - result[length] = [key, value, isStrictComparable(value)]; - } - return result; - } - - /** - * Gets the native function at `key` of `object`. - * - * @private - * @param {Object} object The object to query. - * @param {string} key The key of the method to get. - * @returns {*} Returns the function if it's native, else `undefined`. - */ - function getNative(object, key) { - var value = getValue(object, key); - return baseIsNative(value) ? value : undefined; - } - - /** - * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. - * - * @private - * @param {*} value The value to query. - * @returns {string} Returns the raw `toStringTag`. - */ - function getRawTag(value) { - var isOwn = hasOwnProperty.call(value, symToStringTag), - tag = value[symToStringTag]; - try { - value[symToStringTag] = undefined; - var unmasked = true; - } catch (e) {} - var result = nativeObjectToString.call(value); - if (unmasked) { - if (isOwn) { - value[symToStringTag] = tag; - } else { - delete value[symToStringTag]; - } - } - return result; - } - - /** - * Creates an array of the own enumerable symbols of `object`. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of symbols. - */ - var getSymbols = !nativeGetSymbols ? stubArray : function (object) { - if (object == null) { - return []; - } - object = Object(object); - return arrayFilter(nativeGetSymbols(object), function (symbol) { - return propertyIsEnumerable.call(object, symbol); - }); - }; - - /** - * Creates an array of the own and inherited enumerable symbols of `object`. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of symbols. - */ - var getSymbolsIn = !nativeGetSymbols ? stubArray : function (object) { - var result = []; - while (object) { - arrayPush(result, getSymbols(object)); - object = getPrototype(object); - } - return result; - }; - - /** - * Gets the `toStringTag` of `value`. - * - * @private - * @param {*} value The value to query. - * @returns {string} Returns the `toStringTag`. - */ - var getTag = baseGetTag; - - // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6. - if (DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag || Map && getTag(new Map()) != mapTag || Promise && getTag(Promise.resolve()) != promiseTag || Set && getTag(new Set()) != setTag || WeakMap && getTag(new WeakMap()) != weakMapTag) { - getTag = function (value) { - var result = baseGetTag(value), - Ctor = result == objectTag ? value.constructor : undefined, - ctorString = Ctor ? toSource(Ctor) : ''; - if (ctorString) { - switch (ctorString) { - case dataViewCtorString: - return dataViewTag; - case mapCtorString: - return mapTag; - case promiseCtorString: - return promiseTag; - case setCtorString: - return setTag; - case weakMapCtorString: - return weakMapTag; - } - } - return result; - }; - } - - /** - * Gets the view, applying any `transforms` to the `start` and `end` positions. - * - * @private - * @param {number} start The start of the view. - * @param {number} end The end of the view. - * @param {Array} transforms The transformations to apply to the view. - * @returns {Object} Returns an object containing the `start` and `end` - * positions of the view. - */ - function getView(start, end, transforms) { - var index = -1, - length = transforms.length; - while (++index < length) { - var data = transforms[index], - size = data.size; - switch (data.type) { - case 'drop': - start += size; - break; - case 'dropRight': - end -= size; - break; - case 'take': - end = nativeMin(end, start + size); - break; - case 'takeRight': - start = nativeMax(start, end - size); - break; - } - } - return { - 'start': start, - 'end': end - }; - } - - /** - * Extracts wrapper details from the `source` body comment. - * - * @private - * @param {string} source The source to inspect. - * @returns {Array} Returns the wrapper details. - */ - function getWrapDetails(source) { - var match = source.match(reWrapDetails); - return match ? match[1].split(reSplitDetails) : []; - } - - /** - * Checks if `path` exists on `object`. - * - * @private - * @param {Object} object The object to query. - * @param {Array|string} path The path to check. - * @param {Function} hasFunc The function to check properties. - * @returns {boolean} Returns `true` if `path` exists, else `false`. - */ - function hasPath(object, path, hasFunc) { - path = castPath(path, object); - var index = -1, - length = path.length, - result = false; - while (++index < length) { - var key = toKey(path[index]); - if (!(result = object != null && hasFunc(object, key))) { - break; - } - object = object[key]; - } - if (result || ++index != length) { - return result; - } - length = object == null ? 0 : object.length; - return !!length && isLength(length) && isIndex(key, length) && (isArray(object) || isArguments(object)); - } - - /** - * Initializes an array clone. - * - * @private - * @param {Array} array The array to clone. - * @returns {Array} Returns the initialized clone. - */ - function initCloneArray(array) { - var length = array.length, - result = new array.constructor(length); - - // Add properties assigned by `RegExp#exec`. - if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) { - result.index = array.index; - result.input = array.input; - } - return result; - } - - /** - * Initializes an object clone. - * - * @private - * @param {Object} object The object to clone. - * @returns {Object} Returns the initialized clone. - */ - function initCloneObject(object) { - return typeof object.constructor == 'function' && !isPrototype(object) ? baseCreate(getPrototype(object)) : {}; - } - - /** - * Initializes an object clone based on its `toStringTag`. - * - * **Note:** This function only supports cloning values with tags of - * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`. - * - * @private - * @param {Object} object The object to clone. - * @param {string} tag The `toStringTag` of the object to clone. - * @param {boolean} [isDeep] Specify a deep clone. - * @returns {Object} Returns the initialized clone. - */ - function initCloneByTag(object, tag, isDeep) { - var Ctor = object.constructor; - switch (tag) { - case arrayBufferTag: - return cloneArrayBuffer(object); - case boolTag: - case dateTag: - return new Ctor(+object); - case dataViewTag: - return cloneDataView(object, isDeep); - case float32Tag: - case float64Tag: - case int8Tag: - case int16Tag: - case int32Tag: - case uint8Tag: - case uint8ClampedTag: - case uint16Tag: - case uint32Tag: - return cloneTypedArray(object, isDeep); - case mapTag: - return new Ctor(); - case numberTag: - case stringTag: - return new Ctor(object); - case regexpTag: - return cloneRegExp(object); - case setTag: - return new Ctor(); - case symbolTag: - return cloneSymbol(object); - } - } - - /** - * Inserts wrapper `details` in a comment at the top of the `source` body. - * - * @private - * @param {string} source The source to modify. - * @returns {Array} details The details to insert. - * @returns {string} Returns the modified source. - */ - function insertWrapDetails(source, details) { - var length = details.length; - if (!length) { - return source; - } - var lastIndex = length - 1; - details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex]; - details = details.join(length > 2 ? ', ' : ' '); - return source.replace(reWrapComment, '{\n/* [wrapped with ' + details + '] */\n'); - } - - /** - * Checks if `value` is a flattenable `arguments` object or array. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is flattenable, else `false`. - */ - function isFlattenable(value) { - return isArray(value) || isArguments(value) || !!(spreadableSymbol && value && value[spreadableSymbol]); - } - - /** - * Checks if `value` is a valid array-like index. - * - * @private - * @param {*} value The value to check. - * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. - * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. - */ - function isIndex(value, length) { - var type = typeof value; - length = length == null ? MAX_SAFE_INTEGER : length; - return !!length && (type == 'number' || type != 'symbol' && reIsUint.test(value)) && value > -1 && value % 1 == 0 && value < length; - } - - /** - * Checks if the given arguments are from an iteratee call. - * - * @private - * @param {*} value The potential iteratee value argument. - * @param {*} index The potential iteratee index or key argument. - * @param {*} object The potential iteratee object argument. - * @returns {boolean} Returns `true` if the arguments are from an iteratee call, - * else `false`. - */ - function isIterateeCall(value, index, object) { - if (!isObject(object)) { - return false; - } - var type = typeof index; - if (type == 'number' ? isArrayLike(object) && isIndex(index, object.length) : type == 'string' && index in object) { - return eq(object[index], value); - } - return false; - } - - /** - * Checks if `value` is a property name and not a property path. - * - * @private - * @param {*} value The value to check. - * @param {Object} [object] The object to query keys on. - * @returns {boolean} Returns `true` if `value` is a property name, else `false`. - */ - function isKey(value, object) { - if (isArray(value)) { - return false; - } - var type = typeof value; - if (type == 'number' || type == 'symbol' || type == 'boolean' || value == null || isSymbol(value)) { - return true; - } - return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object != null && value in Object(object); - } - - /** - * Checks if `value` is suitable for use as unique object key. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is suitable, else `false`. - */ - function isKeyable(value) { - var type = typeof value; - return type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean' ? value !== '__proto__' : value === null; - } - - /** - * Checks if `func` has a lazy counterpart. - * - * @private - * @param {Function} func The function to check. - * @returns {boolean} Returns `true` if `func` has a lazy counterpart, - * else `false`. - */ - function isLaziable(func) { - var funcName = getFuncName(func), - other = lodash[funcName]; - if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) { - return false; - } - if (func === other) { - return true; - } - var data = getData(other); - return !!data && func === data[0]; - } - - /** - * Checks if `func` has its source masked. - * - * @private - * @param {Function} func The function to check. - * @returns {boolean} Returns `true` if `func` is masked, else `false`. - */ - function isMasked(func) { - return !!maskSrcKey && maskSrcKey in func; - } - - /** - * Checks if `func` is capable of being masked. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `func` is maskable, else `false`. - */ - var isMaskable = coreJsData ? isFunction : stubFalse; - - /** - * Checks if `value` is likely a prototype object. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. - */ - function isPrototype(value) { - var Ctor = value && value.constructor, - proto = typeof Ctor == 'function' && Ctor.prototype || objectProto; - return value === proto; - } - - /** - * Checks if `value` is suitable for strict equality comparisons, i.e. `===`. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` if suitable for strict - * equality comparisons, else `false`. - */ - function isStrictComparable(value) { - return value === value && !isObject(value); - } - - /** - * A specialized version of `matchesProperty` for source values suitable - * for strict equality comparisons, i.e. `===`. - * - * @private - * @param {string} key The key of the property to get. - * @param {*} srcValue The value to match. - * @returns {Function} Returns the new spec function. - */ - function matchesStrictComparable(key, srcValue) { - return function (object) { - if (object == null) { - return false; - } - return object[key] === srcValue && (srcValue !== undefined || key in Object(object)); - }; - } - - /** - * A specialized version of `_.memoize` which clears the memoized function's - * cache when it exceeds `MAX_MEMOIZE_SIZE`. - * - * @private - * @param {Function} func The function to have its output memoized. - * @returns {Function} Returns the new memoized function. - */ - function memoizeCapped(func) { - var result = memoize(func, function (key) { - if (cache.size === MAX_MEMOIZE_SIZE) { - cache.clear(); - } - return key; - }); - var cache = result.cache; - return result; - } - - /** - * Merges the function metadata of `source` into `data`. - * - * Merging metadata reduces the number of wrappers used to invoke a function. - * This is possible because methods like `_.bind`, `_.curry`, and `_.partial` - * may be applied regardless of execution order. Methods like `_.ary` and - * `_.rearg` modify function arguments, making the order in which they are - * executed important, preventing the merging of metadata. However, we make - * an exception for a safe combined case where curried functions have `_.ary` - * and or `_.rearg` applied. - * - * @private - * @param {Array} data The destination metadata. - * @param {Array} source The source metadata. - * @returns {Array} Returns `data`. - */ - function mergeData(data, source) { - var bitmask = data[1], - srcBitmask = source[1], - newBitmask = bitmask | srcBitmask, - isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG); - var isCombo = srcBitmask == WRAP_ARY_FLAG && bitmask == WRAP_CURRY_FLAG || srcBitmask == WRAP_ARY_FLAG && bitmask == WRAP_REARG_FLAG && data[7].length <= source[8] || srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG) && source[7].length <= source[8] && bitmask == WRAP_CURRY_FLAG; - - // Exit early if metadata can't be merged. - if (!(isCommon || isCombo)) { - return data; - } - // Use source `thisArg` if available. - if (srcBitmask & WRAP_BIND_FLAG) { - data[2] = source[2]; - // Set when currying a bound function. - newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG; - } - // Compose partial arguments. - var value = source[3]; - if (value) { - var partials = data[3]; - data[3] = partials ? composeArgs(partials, value, source[4]) : value; - data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4]; - } - // Compose partial right arguments. - value = source[5]; - if (value) { - partials = data[5]; - data[5] = partials ? composeArgsRight(partials, value, source[6]) : value; - data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6]; - } - // Use source `argPos` if available. - value = source[7]; - if (value) { - data[7] = value; - } - // Use source `ary` if it's smaller. - if (srcBitmask & WRAP_ARY_FLAG) { - data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]); - } - // Use source `arity` if one is not provided. - if (data[9] == null) { - data[9] = source[9]; - } - // Use source `func` and merge bitmasks. - data[0] = source[0]; - data[1] = newBitmask; - return data; - } - - /** - * This function is like - * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) - * except that it includes inherited enumerable properties. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - */ - function nativeKeysIn(object) { - var result = []; - if (object != null) { - for (var key in Object(object)) { - result.push(key); - } - } - return result; - } - - /** - * Converts `value` to a string using `Object.prototype.toString`. - * - * @private - * @param {*} value The value to convert. - * @returns {string} Returns the converted string. - */ - function objectToString(value) { - return nativeObjectToString.call(value); - } - - /** - * A specialized version of `baseRest` which transforms the rest array. - * - * @private - * @param {Function} func The function to apply a rest parameter to. - * @param {number} [start=func.length-1] The start position of the rest parameter. - * @param {Function} transform The rest array transform. - * @returns {Function} Returns the new function. - */ - function overRest(func, start, transform) { - start = nativeMax(start === undefined ? func.length - 1 : start, 0); - return function () { - var args = arguments, - index = -1, - length = nativeMax(args.length - start, 0), - array = Array(length); - while (++index < length) { - array[index] = args[start + index]; - } - index = -1; - var otherArgs = Array(start + 1); - while (++index < start) { - otherArgs[index] = args[index]; - } - otherArgs[start] = transform(array); - return apply(func, this, otherArgs); - }; - } - - /** - * Gets the parent value at `path` of `object`. - * - * @private - * @param {Object} object The object to query. - * @param {Array} path The path to get the parent value of. - * @returns {*} Returns the parent value. - */ - function parent(object, path) { - return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1)); - } - - /** - * Reorder `array` according to the specified indexes where the element at - * the first index is assigned as the first element, the element at - * the second index is assigned as the second element, and so on. - * - * @private - * @param {Array} array The array to reorder. - * @param {Array} indexes The arranged array indexes. - * @returns {Array} Returns `array`. - */ - function reorder(array, indexes) { - var arrLength = array.length, - length = nativeMin(indexes.length, arrLength), - oldArray = copyArray(array); - while (length--) { - var index = indexes[length]; - array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined; - } - return array; - } - - /** - * Gets the value at `key`, unless `key` is "__proto__" or "constructor". - * - * @private - * @param {Object} object The object to query. - * @param {string} key The key of the property to get. - * @returns {*} Returns the property value. - */ - function safeGet(object, key) { - if (key === 'constructor' && typeof object[key] === 'function') { - return; - } - if (key == '__proto__') { - return; - } - return object[key]; - } - - /** - * Sets metadata for `func`. - * - * **Note:** If this function becomes hot, i.e. is invoked a lot in a short - * period of time, it will trip its breaker and transition to an identity - * function to avoid garbage collection pauses in V8. See - * [V8 issue 2070](https://bugs.chromium.org/p/v8/issues/detail?id=2070) - * for more details. - * - * @private - * @param {Function} func The function to associate metadata with. - * @param {*} data The metadata. - * @returns {Function} Returns `func`. - */ - var setData = shortOut(baseSetData); - - /** - * A simple wrapper around the global [`setTimeout`](https://mdn.io/setTimeout). - * - * @private - * @param {Function} func The function to delay. - * @param {number} wait The number of milliseconds to delay invocation. - * @returns {number|Object} Returns the timer id or timeout object. - */ - var setTimeout = ctxSetTimeout || function (func, wait) { - return root.setTimeout(func, wait); - }; - - /** - * Sets the `toString` method of `func` to return `string`. - * - * @private - * @param {Function} func The function to modify. - * @param {Function} string The `toString` result. - * @returns {Function} Returns `func`. - */ - var setToString = shortOut(baseSetToString); - - /** - * Sets the `toString` method of `wrapper` to mimic the source of `reference` - * with wrapper details in a comment at the top of the source body. - * - * @private - * @param {Function} wrapper The function to modify. - * @param {Function} reference The reference function. - * @param {number} bitmask The bitmask flags. See `createWrap` for more details. - * @returns {Function} Returns `wrapper`. - */ - function setWrapToString(wrapper, reference, bitmask) { - var source = reference + ''; - return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask))); - } - - /** - * Creates a function that'll short out and invoke `identity` instead - * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN` - * milliseconds. - * - * @private - * @param {Function} func The function to restrict. - * @returns {Function} Returns the new shortable function. - */ - function shortOut(func) { - var count = 0, - lastCalled = 0; - return function () { - var stamp = nativeNow(), - remaining = HOT_SPAN - (stamp - lastCalled); - lastCalled = stamp; - if (remaining > 0) { - if (++count >= HOT_COUNT) { - return arguments[0]; - } - } else { - count = 0; - } - return func.apply(undefined, arguments); - }; - } - - /** - * A specialized version of `_.shuffle` which mutates and sets the size of `array`. - * - * @private - * @param {Array} array The array to shuffle. - * @param {number} [size=array.length] The size of `array`. - * @returns {Array} Returns `array`. - */ - function shuffleSelf(array, size) { - var index = -1, - length = array.length, - lastIndex = length - 1; - size = size === undefined ? length : size; - while (++index < size) { - var rand = baseRandom(index, lastIndex), - value = array[rand]; - array[rand] = array[index]; - array[index] = value; - } - array.length = size; - return array; - } - - /** - * Converts `string` to a property path array. - * - * @private - * @param {string} string The string to convert. - * @returns {Array} Returns the property path array. - */ - var stringToPath = memoizeCapped(function (string) { - var result = []; - if (string.charCodeAt(0) === 46 /* . */) { - result.push(''); - } - string.replace(rePropName, function (match, number, quote, subString) { - result.push(quote ? subString.replace(reEscapeChar, '$1') : number || match); - }); - return result; - }); - - /** - * Converts `value` to a string key if it's not a string or symbol. - * - * @private - * @param {*} value The value to inspect. - * @returns {string|symbol} Returns the key. - */ - function toKey(value) { - if (typeof value == 'string' || isSymbol(value)) { - return value; - } - var result = value + ''; - return result == '0' && 1 / value == -INFINITY ? '-0' : result; - } - - /** - * Converts `func` to its source code. - * - * @private - * @param {Function} func The function to convert. - * @returns {string} Returns the source code. - */ - function toSource(func) { - if (func != null) { - try { - return funcToString.call(func); - } catch (e) {} - try { - return func + ''; - } catch (e) {} - } - return ''; - } - - /** - * Updates wrapper `details` based on `bitmask` flags. - * - * @private - * @returns {Array} details The details to modify. - * @param {number} bitmask The bitmask flags. See `createWrap` for more details. - * @returns {Array} Returns `details`. - */ - function updateWrapDetails(details, bitmask) { - arrayEach(wrapFlags, function (pair) { - var value = '_.' + pair[0]; - if (bitmask & pair[1] && !arrayIncludes(details, value)) { - details.push(value); - } - }); - return details.sort(); - } - - /** - * Creates a clone of `wrapper`. - * - * @private - * @param {Object} wrapper The wrapper to clone. - * @returns {Object} Returns the cloned wrapper. - */ - function wrapperClone(wrapper) { - if (wrapper instanceof LazyWrapper) { - return wrapper.clone(); - } - var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__); - result.__actions__ = copyArray(wrapper.__actions__); - result.__index__ = wrapper.__index__; - result.__values__ = wrapper.__values__; - return result; - } - - /*------------------------------------------------------------------------*/ - - /** - * Creates an array of elements split into groups the length of `size`. - * If `array` can't be split evenly, the final chunk will be the remaining - * elements. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The array to process. - * @param {number} [size=1] The length of each chunk - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {Array} Returns the new array of chunks. - * @example - * - * _.chunk(['a', 'b', 'c', 'd'], 2); - * // => [['a', 'b'], ['c', 'd']] - * - * _.chunk(['a', 'b', 'c', 'd'], 3); - * // => [['a', 'b', 'c'], ['d']] - */ - function chunk(array, size, guard) { - if (guard ? isIterateeCall(array, size, guard) : size === undefined) { - size = 1; - } else { - size = nativeMax(toInteger(size), 0); - } - var length = array == null ? 0 : array.length; - if (!length || size < 1) { - return []; - } - var index = 0, - resIndex = 0, - result = Array(nativeCeil(length / size)); - while (index < length) { - result[resIndex++] = baseSlice(array, index, index += size); - } - return result; - } - - /** - * Creates an array with all falsey values removed. The values `false`, `null`, - * `0`, `""`, `undefined`, and `NaN` are falsey. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to compact. - * @returns {Array} Returns the new array of filtered values. - * @example - * - * _.compact([0, 1, false, 2, '', 3]); - * // => [1, 2, 3] - */ - function compact(array) { - var index = -1, - length = array == null ? 0 : array.length, - resIndex = 0, - result = []; - while (++index < length) { - var value = array[index]; - if (value) { - result[resIndex++] = value; - } - } - return result; - } - - /** - * Creates a new array concatenating `array` with any additional arrays - * and/or values. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to concatenate. - * @param {...*} [values] The values to concatenate. - * @returns {Array} Returns the new concatenated array. - * @example - * - * var array = [1]; - * var other = _.concat(array, 2, [3], [[4]]); - * - * console.log(other); - * // => [1, 2, 3, [4]] - * - * console.log(array); - * // => [1] - */ - function concat() { - var length = arguments.length; - if (!length) { - return []; - } - var args = Array(length - 1), - array = arguments[0], - index = length; - while (index--) { - args[index - 1] = arguments[index]; - } - return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1)); - } - - /** - * Creates an array of `array` values not included in the other given arrays - * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * for equality comparisons. The order and references of result values are - * determined by the first array. - * - * **Note:** Unlike `_.pullAll`, this method returns a new array. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {...Array} [values] The values to exclude. - * @returns {Array} Returns the new array of filtered values. - * @see _.without, _.xor - * @example - * - * _.difference([2, 1], [2, 3]); - * // => [1] - */ - var difference = baseRest(function (array, values) { - return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true)) : []; - }); - - /** - * This method is like `_.difference` except that it accepts `iteratee` which - * is invoked for each element of `array` and `values` to generate the criterion - * by which they're compared. The order and references of result values are - * determined by the first array. The iteratee is invoked with one argument: - * (value). - * - * **Note:** Unlike `_.pullAllBy`, this method returns a new array. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {...Array} [values] The values to exclude. - * @param {Function} [iteratee=_.identity] The iteratee invoked per element. - * @returns {Array} Returns the new array of filtered values. - * @example - * - * _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor); - * // => [1.2] - * - * // The `_.property` iteratee shorthand. - * _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x'); - * // => [{ 'x': 2 }] - */ - var differenceBy = baseRest(function (array, values) { - var iteratee = last(values); - if (isArrayLikeObject(iteratee)) { - iteratee = undefined; - } - return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), getIteratee(iteratee, 2)) : []; - }); - - /** - * This method is like `_.difference` except that it accepts `comparator` - * which is invoked to compare elements of `array` to `values`. The order and - * references of result values are determined by the first array. The comparator - * is invoked with two arguments: (arrVal, othVal). - * - * **Note:** Unlike `_.pullAllWith`, this method returns a new array. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {...Array} [values] The values to exclude. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns the new array of filtered values. - * @example - * - * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; - * - * _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual); - * // => [{ 'x': 2, 'y': 1 }] - */ - var differenceWith = baseRest(function (array, values) { - var comparator = last(values); - if (isArrayLikeObject(comparator)) { - comparator = undefined; - } - return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), undefined, comparator) : []; - }); - - /** - * Creates a slice of `array` with `n` elements dropped from the beginning. - * - * @static - * @memberOf _ - * @since 0.5.0 - * @category Array - * @param {Array} array The array to query. - * @param {number} [n=1] The number of elements to drop. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {Array} Returns the slice of `array`. - * @example - * - * _.drop([1, 2, 3]); - * // => [2, 3] - * - * _.drop([1, 2, 3], 2); - * // => [3] - * - * _.drop([1, 2, 3], 5); - * // => [] - * - * _.drop([1, 2, 3], 0); - * // => [1, 2, 3] - */ - function drop(array, n, guard) { - var length = array == null ? 0 : array.length; - if (!length) { - return []; - } - n = guard || n === undefined ? 1 : toInteger(n); - return baseSlice(array, n < 0 ? 0 : n, length); - } - - /** - * Creates a slice of `array` with `n` elements dropped from the end. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The array to query. - * @param {number} [n=1] The number of elements to drop. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {Array} Returns the slice of `array`. - * @example - * - * _.dropRight([1, 2, 3]); - * // => [1, 2] - * - * _.dropRight([1, 2, 3], 2); - * // => [1] - * - * _.dropRight([1, 2, 3], 5); - * // => [] - * - * _.dropRight([1, 2, 3], 0); - * // => [1, 2, 3] - */ - function dropRight(array, n, guard) { - var length = array == null ? 0 : array.length; - if (!length) { - return []; - } - n = guard || n === undefined ? 1 : toInteger(n); - n = length - n; - return baseSlice(array, 0, n < 0 ? 0 : n); - } - - /** - * Creates a slice of `array` excluding elements dropped from the end. - * Elements are dropped until `predicate` returns falsey. The predicate is - * invoked with three arguments: (value, index, array). - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The array to query. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @returns {Array} Returns the slice of `array`. - * @example - * - * var users = [ - * { 'user': 'barney', 'active': true }, - * { 'user': 'fred', 'active': false }, - * { 'user': 'pebbles', 'active': false } - * ]; - * - * _.dropRightWhile(users, function(o) { return !o.active; }); - * // => objects for ['barney'] - * - * // The `_.matches` iteratee shorthand. - * _.dropRightWhile(users, { 'user': 'pebbles', 'active': false }); - * // => objects for ['barney', 'fred'] - * - * // The `_.matchesProperty` iteratee shorthand. - * _.dropRightWhile(users, ['active', false]); - * // => objects for ['barney'] - * - * // The `_.property` iteratee shorthand. - * _.dropRightWhile(users, 'active'); - * // => objects for ['barney', 'fred', 'pebbles'] - */ - function dropRightWhile(array, predicate) { - return array && array.length ? baseWhile(array, getIteratee(predicate, 3), true, true) : []; - } - - /** - * Creates a slice of `array` excluding elements dropped from the beginning. - * Elements are dropped until `predicate` returns falsey. The predicate is - * invoked with three arguments: (value, index, array). - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The array to query. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @returns {Array} Returns the slice of `array`. - * @example - * - * var users = [ - * { 'user': 'barney', 'active': false }, - * { 'user': 'fred', 'active': false }, - * { 'user': 'pebbles', 'active': true } - * ]; - * - * _.dropWhile(users, function(o) { return !o.active; }); - * // => objects for ['pebbles'] - * - * // The `_.matches` iteratee shorthand. - * _.dropWhile(users, { 'user': 'barney', 'active': false }); - * // => objects for ['fred', 'pebbles'] - * - * // The `_.matchesProperty` iteratee shorthand. - * _.dropWhile(users, ['active', false]); - * // => objects for ['pebbles'] - * - * // The `_.property` iteratee shorthand. - * _.dropWhile(users, 'active'); - * // => objects for ['barney', 'fred', 'pebbles'] - */ - function dropWhile(array, predicate) { - return array && array.length ? baseWhile(array, getIteratee(predicate, 3), true) : []; - } - - /** - * Fills elements of `array` with `value` from `start` up to, but not - * including, `end`. - * - * **Note:** This method mutates `array`. - * - * @static - * @memberOf _ - * @since 3.2.0 - * @category Array - * @param {Array} array The array to fill. - * @param {*} value The value to fill `array` with. - * @param {number} [start=0] The start position. - * @param {number} [end=array.length] The end position. - * @returns {Array} Returns `array`. - * @example - * - * var array = [1, 2, 3]; - * - * _.fill(array, 'a'); - * console.log(array); - * // => ['a', 'a', 'a'] - * - * _.fill(Array(3), 2); - * // => [2, 2, 2] - * - * _.fill([4, 6, 8, 10], '*', 1, 3); - * // => [4, '*', '*', 10] - */ - function fill(array, value, start, end) { - var length = array == null ? 0 : array.length; - if (!length) { - return []; - } - if (start && typeof start != 'number' && isIterateeCall(array, value, start)) { - start = 0; - end = length; - } - return baseFill(array, value, start, end); - } - - /** - * This method is like `_.find` except that it returns the index of the first - * element `predicate` returns truthy for instead of the element itself. - * - * @static - * @memberOf _ - * @since 1.1.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @param {number} [fromIndex=0] The index to search from. - * @returns {number} Returns the index of the found element, else `-1`. - * @example - * - * var users = [ - * { 'user': 'barney', 'active': false }, - * { 'user': 'fred', 'active': false }, - * { 'user': 'pebbles', 'active': true } - * ]; - * - * _.findIndex(users, function(o) { return o.user == 'barney'; }); - * // => 0 - * - * // The `_.matches` iteratee shorthand. - * _.findIndex(users, { 'user': 'fred', 'active': false }); - * // => 1 - * - * // The `_.matchesProperty` iteratee shorthand. - * _.findIndex(users, ['active', false]); - * // => 0 - * - * // The `_.property` iteratee shorthand. - * _.findIndex(users, 'active'); - * // => 2 - */ - function findIndex(array, predicate, fromIndex) { - var length = array == null ? 0 : array.length; - if (!length) { - return -1; - } - var index = fromIndex == null ? 0 : toInteger(fromIndex); - if (index < 0) { - index = nativeMax(length + index, 0); - } - return baseFindIndex(array, getIteratee(predicate, 3), index); - } - - /** - * This method is like `_.findIndex` except that it iterates over elements - * of `collection` from right to left. - * - * @static - * @memberOf _ - * @since 2.0.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @param {number} [fromIndex=array.length-1] The index to search from. - * @returns {number} Returns the index of the found element, else `-1`. - * @example - * - * var users = [ - * { 'user': 'barney', 'active': true }, - * { 'user': 'fred', 'active': false }, - * { 'user': 'pebbles', 'active': false } - * ]; - * - * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; }); - * // => 2 - * - * // The `_.matches` iteratee shorthand. - * _.findLastIndex(users, { 'user': 'barney', 'active': true }); - * // => 0 - * - * // The `_.matchesProperty` iteratee shorthand. - * _.findLastIndex(users, ['active', false]); - * // => 2 - * - * // The `_.property` iteratee shorthand. - * _.findLastIndex(users, 'active'); - * // => 0 - */ - function findLastIndex(array, predicate, fromIndex) { - var length = array == null ? 0 : array.length; - if (!length) { - return -1; - } - var index = length - 1; - if (fromIndex !== undefined) { - index = toInteger(fromIndex); - index = fromIndex < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1); - } - return baseFindIndex(array, getIteratee(predicate, 3), index, true); - } - - /** - * Flattens `array` a single level deep. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to flatten. - * @returns {Array} Returns the new flattened array. - * @example - * - * _.flatten([1, [2, [3, [4]], 5]]); - * // => [1, 2, [3, [4]], 5] - */ - function flatten(array) { - var length = array == null ? 0 : array.length; - return length ? baseFlatten(array, 1) : []; - } - - /** - * Recursively flattens `array`. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The array to flatten. - * @returns {Array} Returns the new flattened array. - * @example - * - * _.flattenDeep([1, [2, [3, [4]], 5]]); - * // => [1, 2, 3, 4, 5] - */ - function flattenDeep(array) { - var length = array == null ? 0 : array.length; - return length ? baseFlatten(array, INFINITY) : []; - } - - /** - * Recursively flatten `array` up to `depth` times. - * - * @static - * @memberOf _ - * @since 4.4.0 - * @category Array - * @param {Array} array The array to flatten. - * @param {number} [depth=1] The maximum recursion depth. - * @returns {Array} Returns the new flattened array. - * @example - * - * var array = [1, [2, [3, [4]], 5]]; - * - * _.flattenDepth(array, 1); - * // => [1, 2, [3, [4]], 5] - * - * _.flattenDepth(array, 2); - * // => [1, 2, 3, [4], 5] - */ - function flattenDepth(array, depth) { - var length = array == null ? 0 : array.length; - if (!length) { - return []; - } - depth = depth === undefined ? 1 : toInteger(depth); - return baseFlatten(array, depth); - } - - /** - * The inverse of `_.toPairs`; this method returns an object composed - * from key-value `pairs`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} pairs The key-value pairs. - * @returns {Object} Returns the new object. - * @example - * - * _.fromPairs([['a', 1], ['b', 2]]); - * // => { 'a': 1, 'b': 2 } - */ - function fromPairs(pairs) { - var index = -1, - length = pairs == null ? 0 : pairs.length, - result = {}; - while (++index < length) { - var pair = pairs[index]; - result[pair[0]] = pair[1]; - } - return result; - } - - /** - * Gets the first element of `array`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @alias first - * @category Array - * @param {Array} array The array to query. - * @returns {*} Returns the first element of `array`. - * @example - * - * _.head([1, 2, 3]); - * // => 1 - * - * _.head([]); - * // => undefined - */ - function head(array) { - return array && array.length ? array[0] : undefined; - } - - /** - * Gets the index at which the first occurrence of `value` is found in `array` - * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * for equality comparisons. If `fromIndex` is negative, it's used as the - * offset from the end of `array`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @param {number} [fromIndex=0] The index to search from. - * @returns {number} Returns the index of the matched value, else `-1`. - * @example - * - * _.indexOf([1, 2, 1, 2], 2); - * // => 1 - * - * // Search from the `fromIndex`. - * _.indexOf([1, 2, 1, 2], 2, 2); - * // => 3 - */ - function indexOf(array, value, fromIndex) { - var length = array == null ? 0 : array.length; - if (!length) { - return -1; - } - var index = fromIndex == null ? 0 : toInteger(fromIndex); - if (index < 0) { - index = nativeMax(length + index, 0); - } - return baseIndexOf(array, value, index); - } - - /** - * Gets all but the last element of `array`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to query. - * @returns {Array} Returns the slice of `array`. - * @example - * - * _.initial([1, 2, 3]); - * // => [1, 2] - */ - function initial(array) { - var length = array == null ? 0 : array.length; - return length ? baseSlice(array, 0, -1) : []; - } - - /** - * Creates an array of unique values that are included in all given arrays - * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * for equality comparisons. The order and references of result values are - * determined by the first array. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {...Array} [arrays] The arrays to inspect. - * @returns {Array} Returns the new array of intersecting values. - * @example - * - * _.intersection([2, 1], [2, 3]); - * // => [2] - */ - var intersection = baseRest(function (arrays) { - var mapped = arrayMap(arrays, castArrayLikeObject); - return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped) : []; - }); - - /** - * This method is like `_.intersection` except that it accepts `iteratee` - * which is invoked for each element of each `arrays` to generate the criterion - * by which they're compared. The order and references of result values are - * determined by the first array. The iteratee is invoked with one argument: - * (value). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {...Array} [arrays] The arrays to inspect. - * @param {Function} [iteratee=_.identity] The iteratee invoked per element. - * @returns {Array} Returns the new array of intersecting values. - * @example - * - * _.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor); - * // => [2.1] - * - * // The `_.property` iteratee shorthand. - * _.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x'); - * // => [{ 'x': 1 }] - */ - var intersectionBy = baseRest(function (arrays) { - var iteratee = last(arrays), - mapped = arrayMap(arrays, castArrayLikeObject); - if (iteratee === last(mapped)) { - iteratee = undefined; - } else { - mapped.pop(); - } - return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped, getIteratee(iteratee, 2)) : []; - }); - - /** - * This method is like `_.intersection` except that it accepts `comparator` - * which is invoked to compare elements of `arrays`. The order and references - * of result values are determined by the first array. The comparator is - * invoked with two arguments: (arrVal, othVal). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {...Array} [arrays] The arrays to inspect. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns the new array of intersecting values. - * @example - * - * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; - * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }]; - * - * _.intersectionWith(objects, others, _.isEqual); - * // => [{ 'x': 1, 'y': 2 }] - */ - var intersectionWith = baseRest(function (arrays) { - var comparator = last(arrays), - mapped = arrayMap(arrays, castArrayLikeObject); - comparator = typeof comparator == 'function' ? comparator : undefined; - if (comparator) { - mapped.pop(); - } - return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped, undefined, comparator) : []; - }); - - /** - * Converts all elements in `array` into a string separated by `separator`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to convert. - * @param {string} [separator=','] The element separator. - * @returns {string} Returns the joined string. - * @example - * - * _.join(['a', 'b', 'c'], '~'); - * // => 'a~b~c' - */ - function join(array, separator) { - return array == null ? '' : nativeJoin.call(array, separator); - } - - /** - * Gets the last element of `array`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to query. - * @returns {*} Returns the last element of `array`. - * @example - * - * _.last([1, 2, 3]); - * // => 3 - */ - function last(array) { - var length = array == null ? 0 : array.length; - return length ? array[length - 1] : undefined; - } - - /** - * This method is like `_.indexOf` except that it iterates over elements of - * `array` from right to left. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @param {number} [fromIndex=array.length-1] The index to search from. - * @returns {number} Returns the index of the matched value, else `-1`. - * @example - * - * _.lastIndexOf([1, 2, 1, 2], 2); - * // => 3 - * - * // Search from the `fromIndex`. - * _.lastIndexOf([1, 2, 1, 2], 2, 2); - * // => 1 - */ - function lastIndexOf(array, value, fromIndex) { - var length = array == null ? 0 : array.length; - if (!length) { - return -1; - } - var index = length; - if (fromIndex !== undefined) { - index = toInteger(fromIndex); - index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1); - } - return value === value ? strictLastIndexOf(array, value, index) : baseFindIndex(array, baseIsNaN, index, true); - } - - /** - * Gets the element at index `n` of `array`. If `n` is negative, the nth - * element from the end is returned. - * - * @static - * @memberOf _ - * @since 4.11.0 - * @category Array - * @param {Array} array The array to query. - * @param {number} [n=0] The index of the element to return. - * @returns {*} Returns the nth element of `array`. - * @example - * - * var array = ['a', 'b', 'c', 'd']; - * - * _.nth(array, 1); - * // => 'b' - * - * _.nth(array, -2); - * // => 'c'; - */ - function nth(array, n) { - return array && array.length ? baseNth(array, toInteger(n)) : undefined; - } - - /** - * Removes all given values from `array` using - * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * for equality comparisons. - * - * **Note:** Unlike `_.without`, this method mutates `array`. Use `_.remove` - * to remove elements from an array by predicate. - * - * @static - * @memberOf _ - * @since 2.0.0 - * @category Array - * @param {Array} array The array to modify. - * @param {...*} [values] The values to remove. - * @returns {Array} Returns `array`. - * @example - * - * var array = ['a', 'b', 'c', 'a', 'b', 'c']; - * - * _.pull(array, 'a', 'c'); - * console.log(array); - * // => ['b', 'b'] - */ - var pull = baseRest(pullAll); - - /** - * This method is like `_.pull` except that it accepts an array of values to remove. - * - * **Note:** Unlike `_.difference`, this method mutates `array`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to modify. - * @param {Array} values The values to remove. - * @returns {Array} Returns `array`. - * @example - * - * var array = ['a', 'b', 'c', 'a', 'b', 'c']; - * - * _.pullAll(array, ['a', 'c']); - * console.log(array); - * // => ['b', 'b'] - */ - function pullAll(array, values) { - return array && array.length && values && values.length ? basePullAll(array, values) : array; - } - - /** - * This method is like `_.pullAll` except that it accepts `iteratee` which is - * invoked for each element of `array` and `values` to generate the criterion - * by which they're compared. The iteratee is invoked with one argument: (value). - * - * **Note:** Unlike `_.differenceBy`, this method mutates `array`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to modify. - * @param {Array} values The values to remove. - * @param {Function} [iteratee=_.identity] The iteratee invoked per element. - * @returns {Array} Returns `array`. - * @example - * - * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }]; - * - * _.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x'); - * console.log(array); - * // => [{ 'x': 2 }] - */ - function pullAllBy(array, values, iteratee) { - return array && array.length && values && values.length ? basePullAll(array, values, getIteratee(iteratee, 2)) : array; - } - - /** - * This method is like `_.pullAll` except that it accepts `comparator` which - * is invoked to compare elements of `array` to `values`. The comparator is - * invoked with two arguments: (arrVal, othVal). - * - * **Note:** Unlike `_.differenceWith`, this method mutates `array`. - * - * @static - * @memberOf _ - * @since 4.6.0 - * @category Array - * @param {Array} array The array to modify. - * @param {Array} values The values to remove. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns `array`. - * @example - * - * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }]; - * - * _.pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual); - * console.log(array); - * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }] - */ - function pullAllWith(array, values, comparator) { - return array && array.length && values && values.length ? basePullAll(array, values, undefined, comparator) : array; - } - - /** - * Removes elements from `array` corresponding to `indexes` and returns an - * array of removed elements. - * - * **Note:** Unlike `_.at`, this method mutates `array`. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The array to modify. - * @param {...(number|number[])} [indexes] The indexes of elements to remove. - * @returns {Array} Returns the new array of removed elements. - * @example - * - * var array = ['a', 'b', 'c', 'd']; - * var pulled = _.pullAt(array, [1, 3]); - * - * console.log(array); - * // => ['a', 'c'] - * - * console.log(pulled); - * // => ['b', 'd'] - */ - var pullAt = flatRest(function (array, indexes) { - var length = array == null ? 0 : array.length, - result = baseAt(array, indexes); - basePullAt(array, arrayMap(indexes, function (index) { - return isIndex(index, length) ? +index : index; - }).sort(compareAscending)); - return result; - }); - - /** - * Removes all elements from `array` that `predicate` returns truthy for - * and returns an array of the removed elements. The predicate is invoked - * with three arguments: (value, index, array). - * - * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull` - * to pull elements from an array by value. - * - * @static - * @memberOf _ - * @since 2.0.0 - * @category Array - * @param {Array} array The array to modify. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @returns {Array} Returns the new array of removed elements. - * @example - * - * var array = [1, 2, 3, 4]; - * var evens = _.remove(array, function(n) { - * return n % 2 == 0; - * }); - * - * console.log(array); - * // => [1, 3] - * - * console.log(evens); - * // => [2, 4] - */ - function remove(array, predicate) { - var result = []; - if (!(array && array.length)) { - return result; - } - var index = -1, - indexes = [], - length = array.length; - predicate = getIteratee(predicate, 3); - while (++index < length) { - var value = array[index]; - if (predicate(value, index, array)) { - result.push(value); - indexes.push(index); - } - } - basePullAt(array, indexes); - return result; - } - - /** - * Reverses `array` so that the first element becomes the last, the second - * element becomes the second to last, and so on. - * - * **Note:** This method mutates `array` and is based on - * [`Array#reverse`](https://mdn.io/Array/reverse). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to modify. - * @returns {Array} Returns `array`. - * @example - * - * var array = [1, 2, 3]; - * - * _.reverse(array); - * // => [3, 2, 1] - * - * console.log(array); - * // => [3, 2, 1] - */ - function reverse(array) { - return array == null ? array : nativeReverse.call(array); - } - - /** - * Creates a slice of `array` from `start` up to, but not including, `end`. - * - * **Note:** This method is used instead of - * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are - * returned. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The array to slice. - * @param {number} [start=0] The start position. - * @param {number} [end=array.length] The end position. - * @returns {Array} Returns the slice of `array`. - */ - function slice(array, start, end) { - var length = array == null ? 0 : array.length; - if (!length) { - return []; - } - if (end && typeof end != 'number' && isIterateeCall(array, start, end)) { - start = 0; - end = length; - } else { - start = start == null ? 0 : toInteger(start); - end = end === undefined ? length : toInteger(end); - } - return baseSlice(array, start, end); - } - - /** - * Uses a binary search to determine the lowest index at which `value` - * should be inserted into `array` in order to maintain its sort order. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The sorted array to inspect. - * @param {*} value The value to evaluate. - * @returns {number} Returns the index at which `value` should be inserted - * into `array`. - * @example - * - * _.sortedIndex([30, 50], 40); - * // => 1 - */ - function sortedIndex(array, value) { - return baseSortedIndex(array, value); - } - - /** - * This method is like `_.sortedIndex` except that it accepts `iteratee` - * which is invoked for `value` and each element of `array` to compute their - * sort ranking. The iteratee is invoked with one argument: (value). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The sorted array to inspect. - * @param {*} value The value to evaluate. - * @param {Function} [iteratee=_.identity] The iteratee invoked per element. - * @returns {number} Returns the index at which `value` should be inserted - * into `array`. - * @example - * - * var objects = [{ 'x': 4 }, { 'x': 5 }]; - * - * _.sortedIndexBy(objects, { 'x': 4 }, function(o) { return o.x; }); - * // => 0 - * - * // The `_.property` iteratee shorthand. - * _.sortedIndexBy(objects, { 'x': 4 }, 'x'); - * // => 0 - */ - function sortedIndexBy(array, value, iteratee) { - return baseSortedIndexBy(array, value, getIteratee(iteratee, 2)); - } - - /** - * This method is like `_.indexOf` except that it performs a binary - * search on a sorted `array`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @returns {number} Returns the index of the matched value, else `-1`. - * @example - * - * _.sortedIndexOf([4, 5, 5, 5, 6], 5); - * // => 1 - */ - function sortedIndexOf(array, value) { - var length = array == null ? 0 : array.length; - if (length) { - var index = baseSortedIndex(array, value); - if (index < length && eq(array[index], value)) { - return index; - } - } - return -1; - } - - /** - * This method is like `_.sortedIndex` except that it returns the highest - * index at which `value` should be inserted into `array` in order to - * maintain its sort order. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The sorted array to inspect. - * @param {*} value The value to evaluate. - * @returns {number} Returns the index at which `value` should be inserted - * into `array`. - * @example - * - * _.sortedLastIndex([4, 5, 5, 5, 6], 5); - * // => 4 - */ - function sortedLastIndex(array, value) { - return baseSortedIndex(array, value, true); - } - - /** - * This method is like `_.sortedLastIndex` except that it accepts `iteratee` - * which is invoked for `value` and each element of `array` to compute their - * sort ranking. The iteratee is invoked with one argument: (value). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The sorted array to inspect. - * @param {*} value The value to evaluate. - * @param {Function} [iteratee=_.identity] The iteratee invoked per element. - * @returns {number} Returns the index at which `value` should be inserted - * into `array`. - * @example - * - * var objects = [{ 'x': 4 }, { 'x': 5 }]; - * - * _.sortedLastIndexBy(objects, { 'x': 4 }, function(o) { return o.x; }); - * // => 1 - * - * // The `_.property` iteratee shorthand. - * _.sortedLastIndexBy(objects, { 'x': 4 }, 'x'); - * // => 1 - */ - function sortedLastIndexBy(array, value, iteratee) { - return baseSortedIndexBy(array, value, getIteratee(iteratee, 2), true); - } - - /** - * This method is like `_.lastIndexOf` except that it performs a binary - * search on a sorted `array`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @returns {number} Returns the index of the matched value, else `-1`. - * @example - * - * _.sortedLastIndexOf([4, 5, 5, 5, 6], 5); - * // => 3 - */ - function sortedLastIndexOf(array, value) { - var length = array == null ? 0 : array.length; - if (length) { - var index = baseSortedIndex(array, value, true) - 1; - if (eq(array[index], value)) { - return index; - } - } - return -1; - } - - /** - * This method is like `_.uniq` except that it's designed and optimized - * for sorted arrays. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to inspect. - * @returns {Array} Returns the new duplicate free array. - * @example - * - * _.sortedUniq([1, 1, 2]); - * // => [1, 2] - */ - function sortedUniq(array) { - return array && array.length ? baseSortedUniq(array) : []; - } - - /** - * This method is like `_.uniqBy` except that it's designed and optimized - * for sorted arrays. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {Function} [iteratee] The iteratee invoked per element. - * @returns {Array} Returns the new duplicate free array. - * @example - * - * _.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor); - * // => [1.1, 2.3] - */ - function sortedUniqBy(array, iteratee) { - return array && array.length ? baseSortedUniq(array, getIteratee(iteratee, 2)) : []; - } - - /** - * Gets all but the first element of `array`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to query. - * @returns {Array} Returns the slice of `array`. - * @example - * - * _.tail([1, 2, 3]); - * // => [2, 3] - */ - function tail(array) { - var length = array == null ? 0 : array.length; - return length ? baseSlice(array, 1, length) : []; - } - - /** - * Creates a slice of `array` with `n` elements taken from the beginning. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to query. - * @param {number} [n=1] The number of elements to take. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {Array} Returns the slice of `array`. - * @example - * - * _.take([1, 2, 3]); - * // => [1] - * - * _.take([1, 2, 3], 2); - * // => [1, 2] - * - * _.take([1, 2, 3], 5); - * // => [1, 2, 3] - * - * _.take([1, 2, 3], 0); - * // => [] - */ - function take(array, n, guard) { - if (!(array && array.length)) { - return []; - } - n = guard || n === undefined ? 1 : toInteger(n); - return baseSlice(array, 0, n < 0 ? 0 : n); - } - - /** - * Creates a slice of `array` with `n` elements taken from the end. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The array to query. - * @param {number} [n=1] The number of elements to take. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {Array} Returns the slice of `array`. - * @example - * - * _.takeRight([1, 2, 3]); - * // => [3] - * - * _.takeRight([1, 2, 3], 2); - * // => [2, 3] - * - * _.takeRight([1, 2, 3], 5); - * // => [1, 2, 3] - * - * _.takeRight([1, 2, 3], 0); - * // => [] - */ - function takeRight(array, n, guard) { - var length = array == null ? 0 : array.length; - if (!length) { - return []; - } - n = guard || n === undefined ? 1 : toInteger(n); - n = length - n; - return baseSlice(array, n < 0 ? 0 : n, length); - } - - /** - * Creates a slice of `array` with elements taken from the end. Elements are - * taken until `predicate` returns falsey. The predicate is invoked with - * three arguments: (value, index, array). - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The array to query. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @returns {Array} Returns the slice of `array`. - * @example - * - * var users = [ - * { 'user': 'barney', 'active': true }, - * { 'user': 'fred', 'active': false }, - * { 'user': 'pebbles', 'active': false } - * ]; - * - * _.takeRightWhile(users, function(o) { return !o.active; }); - * // => objects for ['fred', 'pebbles'] - * - * // The `_.matches` iteratee shorthand. - * _.takeRightWhile(users, { 'user': 'pebbles', 'active': false }); - * // => objects for ['pebbles'] - * - * // The `_.matchesProperty` iteratee shorthand. - * _.takeRightWhile(users, ['active', false]); - * // => objects for ['fred', 'pebbles'] - * - * // The `_.property` iteratee shorthand. - * _.takeRightWhile(users, 'active'); - * // => [] - */ - function takeRightWhile(array, predicate) { - return array && array.length ? baseWhile(array, getIteratee(predicate, 3), false, true) : []; - } - - /** - * Creates a slice of `array` with elements taken from the beginning. Elements - * are taken until `predicate` returns falsey. The predicate is invoked with - * three arguments: (value, index, array). - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The array to query. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @returns {Array} Returns the slice of `array`. - * @example - * - * var users = [ - * { 'user': 'barney', 'active': false }, - * { 'user': 'fred', 'active': false }, - * { 'user': 'pebbles', 'active': true } - * ]; - * - * _.takeWhile(users, function(o) { return !o.active; }); - * // => objects for ['barney', 'fred'] - * - * // The `_.matches` iteratee shorthand. - * _.takeWhile(users, { 'user': 'barney', 'active': false }); - * // => objects for ['barney'] - * - * // The `_.matchesProperty` iteratee shorthand. - * _.takeWhile(users, ['active', false]); - * // => objects for ['barney', 'fred'] - * - * // The `_.property` iteratee shorthand. - * _.takeWhile(users, 'active'); - * // => [] - */ - function takeWhile(array, predicate) { - return array && array.length ? baseWhile(array, getIteratee(predicate, 3)) : []; - } - - /** - * Creates an array of unique values, in order, from all given arrays using - * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * for equality comparisons. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {...Array} [arrays] The arrays to inspect. - * @returns {Array} Returns the new array of combined values. - * @example - * - * _.union([2], [1, 2]); - * // => [2, 1] - */ - var union = baseRest(function (arrays) { - return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true)); - }); - - /** - * This method is like `_.union` except that it accepts `iteratee` which is - * invoked for each element of each `arrays` to generate the criterion by - * which uniqueness is computed. Result values are chosen from the first - * array in which the value occurs. The iteratee is invoked with one argument: - * (value). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {...Array} [arrays] The arrays to inspect. - * @param {Function} [iteratee=_.identity] The iteratee invoked per element. - * @returns {Array} Returns the new array of combined values. - * @example - * - * _.unionBy([2.1], [1.2, 2.3], Math.floor); - * // => [2.1, 1.2] - * - * // The `_.property` iteratee shorthand. - * _.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x'); - * // => [{ 'x': 1 }, { 'x': 2 }] - */ - var unionBy = baseRest(function (arrays) { - var iteratee = last(arrays); - if (isArrayLikeObject(iteratee)) { - iteratee = undefined; - } - return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), getIteratee(iteratee, 2)); - }); - - /** - * This method is like `_.union` except that it accepts `comparator` which - * is invoked to compare elements of `arrays`. Result values are chosen from - * the first array in which the value occurs. The comparator is invoked - * with two arguments: (arrVal, othVal). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {...Array} [arrays] The arrays to inspect. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns the new array of combined values. - * @example - * - * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; - * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }]; - * - * _.unionWith(objects, others, _.isEqual); - * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }] - */ - var unionWith = baseRest(function (arrays) { - var comparator = last(arrays); - comparator = typeof comparator == 'function' ? comparator : undefined; - return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined, comparator); - }); - - /** - * Creates a duplicate-free version of an array, using - * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * for equality comparisons, in which only the first occurrence of each element - * is kept. The order of result values is determined by the order they occur - * in the array. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to inspect. - * @returns {Array} Returns the new duplicate free array. - * @example - * - * _.uniq([2, 1, 2]); - * // => [2, 1] - */ - function uniq(array) { - return array && array.length ? baseUniq(array) : []; - } - - /** - * This method is like `_.uniq` except that it accepts `iteratee` which is - * invoked for each element in `array` to generate the criterion by which - * uniqueness is computed. The order of result values is determined by the - * order they occur in the array. The iteratee is invoked with one argument: - * (value). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {Function} [iteratee=_.identity] The iteratee invoked per element. - * @returns {Array} Returns the new duplicate free array. - * @example - * - * _.uniqBy([2.1, 1.2, 2.3], Math.floor); - * // => [2.1, 1.2] - * - * // The `_.property` iteratee shorthand. - * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x'); - * // => [{ 'x': 1 }, { 'x': 2 }] - */ - function uniqBy(array, iteratee) { - return array && array.length ? baseUniq(array, getIteratee(iteratee, 2)) : []; - } - - /** - * This method is like `_.uniq` except that it accepts `comparator` which - * is invoked to compare elements of `array`. The order of result values is - * determined by the order they occur in the array.The comparator is invoked - * with two arguments: (arrVal, othVal). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns the new duplicate free array. - * @example - * - * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }]; - * - * _.uniqWith(objects, _.isEqual); - * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }] - */ - function uniqWith(array, comparator) { - comparator = typeof comparator == 'function' ? comparator : undefined; - return array && array.length ? baseUniq(array, undefined, comparator) : []; - } - - /** - * This method is like `_.zip` except that it accepts an array of grouped - * elements and creates an array regrouping the elements to their pre-zip - * configuration. - * - * @static - * @memberOf _ - * @since 1.2.0 - * @category Array - * @param {Array} array The array of grouped elements to process. - * @returns {Array} Returns the new array of regrouped elements. - * @example - * - * var zipped = _.zip(['a', 'b'], [1, 2], [true, false]); - * // => [['a', 1, true], ['b', 2, false]] - * - * _.unzip(zipped); - * // => [['a', 'b'], [1, 2], [true, false]] - */ - function unzip(array) { - if (!(array && array.length)) { - return []; - } - var length = 0; - array = arrayFilter(array, function (group) { - if (isArrayLikeObject(group)) { - length = nativeMax(group.length, length); - return true; - } - }); - return baseTimes(length, function (index) { - return arrayMap(array, baseProperty(index)); - }); - } - - /** - * This method is like `_.unzip` except that it accepts `iteratee` to specify - * how regrouped values should be combined. The iteratee is invoked with the - * elements of each group: (...group). - * - * @static - * @memberOf _ - * @since 3.8.0 - * @category Array - * @param {Array} array The array of grouped elements to process. - * @param {Function} [iteratee=_.identity] The function to combine - * regrouped values. - * @returns {Array} Returns the new array of regrouped elements. - * @example - * - * var zipped = _.zip([1, 2], [10, 20], [100, 200]); - * // => [[1, 10, 100], [2, 20, 200]] - * - * _.unzipWith(zipped, _.add); - * // => [3, 30, 300] - */ - function unzipWith(array, iteratee) { - if (!(array && array.length)) { - return []; - } - var result = unzip(array); - if (iteratee == null) { - return result; - } - return arrayMap(result, function (group) { - return apply(iteratee, undefined, group); - }); - } - - /** - * Creates an array excluding all given values using - * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * for equality comparisons. - * - * **Note:** Unlike `_.pull`, this method returns a new array. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {...*} [values] The values to exclude. - * @returns {Array} Returns the new array of filtered values. - * @see _.difference, _.xor - * @example - * - * _.without([2, 1, 2, 3], 1, 2); - * // => [3] - */ - var without = baseRest(function (array, values) { - return isArrayLikeObject(array) ? baseDifference(array, values) : []; - }); - - /** - * Creates an array of unique values that is the - * [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference) - * of the given arrays. The order of result values is determined by the order - * they occur in the arrays. - * - * @static - * @memberOf _ - * @since 2.4.0 - * @category Array - * @param {...Array} [arrays] The arrays to inspect. - * @returns {Array} Returns the new array of filtered values. - * @see _.difference, _.without - * @example - * - * _.xor([2, 1], [2, 3]); - * // => [1, 3] - */ - var xor = baseRest(function (arrays) { - return baseXor(arrayFilter(arrays, isArrayLikeObject)); - }); - - /** - * This method is like `_.xor` except that it accepts `iteratee` which is - * invoked for each element of each `arrays` to generate the criterion by - * which by which they're compared. The order of result values is determined - * by the order they occur in the arrays. The iteratee is invoked with one - * argument: (value). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {...Array} [arrays] The arrays to inspect. - * @param {Function} [iteratee=_.identity] The iteratee invoked per element. - * @returns {Array} Returns the new array of filtered values. - * @example - * - * _.xorBy([2.1, 1.2], [2.3, 3.4], Math.floor); - * // => [1.2, 3.4] - * - * // The `_.property` iteratee shorthand. - * _.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x'); - * // => [{ 'x': 2 }] - */ - var xorBy = baseRest(function (arrays) { - var iteratee = last(arrays); - if (isArrayLikeObject(iteratee)) { - iteratee = undefined; - } - return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee, 2)); - }); - - /** - * This method is like `_.xor` except that it accepts `comparator` which is - * invoked to compare elements of `arrays`. The order of result values is - * determined by the order they occur in the arrays. The comparator is invoked - * with two arguments: (arrVal, othVal). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {...Array} [arrays] The arrays to inspect. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns the new array of filtered values. - * @example - * - * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; - * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }]; - * - * _.xorWith(objects, others, _.isEqual); - * // => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }] - */ - var xorWith = baseRest(function (arrays) { - var comparator = last(arrays); - comparator = typeof comparator == 'function' ? comparator : undefined; - return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined, comparator); - }); - - /** - * Creates an array of grouped elements, the first of which contains the - * first elements of the given arrays, the second of which contains the - * second elements of the given arrays, and so on. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {...Array} [arrays] The arrays to process. - * @returns {Array} Returns the new array of grouped elements. - * @example - * - * _.zip(['a', 'b'], [1, 2], [true, false]); - * // => [['a', 1, true], ['b', 2, false]] - */ - var zip = baseRest(unzip); - - /** - * This method is like `_.fromPairs` except that it accepts two arrays, - * one of property identifiers and one of corresponding values. - * - * @static - * @memberOf _ - * @since 0.4.0 - * @category Array - * @param {Array} [props=[]] The property identifiers. - * @param {Array} [values=[]] The property values. - * @returns {Object} Returns the new object. - * @example - * - * _.zipObject(['a', 'b'], [1, 2]); - * // => { 'a': 1, 'b': 2 } - */ - function zipObject(props, values) { - return baseZipObject(props || [], values || [], assignValue); - } - - /** - * This method is like `_.zipObject` except that it supports property paths. - * - * @static - * @memberOf _ - * @since 4.1.0 - * @category Array - * @param {Array} [props=[]] The property identifiers. - * @param {Array} [values=[]] The property values. - * @returns {Object} Returns the new object. - * @example - * - * _.zipObjectDeep(['a.b[0].c', 'a.b[1].d'], [1, 2]); - * // => { 'a': { 'b': [{ 'c': 1 }, { 'd': 2 }] } } - */ - function zipObjectDeep(props, values) { - return baseZipObject(props || [], values || [], baseSet); - } - - /** - * This method is like `_.zip` except that it accepts `iteratee` to specify - * how grouped values should be combined. The iteratee is invoked with the - * elements of each group: (...group). - * - * @static - * @memberOf _ - * @since 3.8.0 - * @category Array - * @param {...Array} [arrays] The arrays to process. - * @param {Function} [iteratee=_.identity] The function to combine - * grouped values. - * @returns {Array} Returns the new array of grouped elements. - * @example - * - * _.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) { - * return a + b + c; - * }); - * // => [111, 222] - */ - var zipWith = baseRest(function (arrays) { - var length = arrays.length, - iteratee = length > 1 ? arrays[length - 1] : undefined; - iteratee = typeof iteratee == 'function' ? (arrays.pop(), iteratee) : undefined; - return unzipWith(arrays, iteratee); - }); - - /*------------------------------------------------------------------------*/ - - /** - * Creates a `lodash` wrapper instance that wraps `value` with explicit method - * chain sequences enabled. The result of such sequences must be unwrapped - * with `_#value`. - * - * @static - * @memberOf _ - * @since 1.3.0 - * @category Seq - * @param {*} value The value to wrap. - * @returns {Object} Returns the new `lodash` wrapper instance. - * @example - * - * var users = [ - * { 'user': 'barney', 'age': 36 }, - * { 'user': 'fred', 'age': 40 }, - * { 'user': 'pebbles', 'age': 1 } - * ]; - * - * var youngest = _ - * .chain(users) - * .sortBy('age') - * .map(function(o) { - * return o.user + ' is ' + o.age; - * }) - * .head() - * .value(); - * // => 'pebbles is 1' - */ - function chain(value) { - var result = lodash(value); - result.__chain__ = true; - return result; - } - - /** - * This method invokes `interceptor` and returns `value`. The interceptor - * is invoked with one argument; (value). The purpose of this method is to - * "tap into" a method chain sequence in order to modify intermediate results. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Seq - * @param {*} value The value to provide to `interceptor`. - * @param {Function} interceptor The function to invoke. - * @returns {*} Returns `value`. - * @example - * - * _([1, 2, 3]) - * .tap(function(array) { - * // Mutate input array. - * array.pop(); - * }) - * .reverse() - * .value(); - * // => [2, 1] - */ - function tap(value, interceptor) { - interceptor(value); - return value; - } - - /** - * This method is like `_.tap` except that it returns the result of `interceptor`. - * The purpose of this method is to "pass thru" values replacing intermediate - * results in a method chain sequence. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Seq - * @param {*} value The value to provide to `interceptor`. - * @param {Function} interceptor The function to invoke. - * @returns {*} Returns the result of `interceptor`. - * @example - * - * _(' abc ') - * .chain() - * .trim() - * .thru(function(value) { - * return [value]; - * }) - * .value(); - * // => ['abc'] - */ - function thru(value, interceptor) { - return interceptor(value); - } - - /** - * This method is the wrapper version of `_.at`. - * - * @name at - * @memberOf _ - * @since 1.0.0 - * @category Seq - * @param {...(string|string[])} [paths] The property paths to pick. - * @returns {Object} Returns the new `lodash` wrapper instance. - * @example - * - * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] }; - * - * _(object).at(['a[0].b.c', 'a[1]']).value(); - * // => [3, 4] - */ - var wrapperAt = flatRest(function (paths) { - var length = paths.length, - start = length ? paths[0] : 0, - value = this.__wrapped__, - interceptor = function (object) { - return baseAt(object, paths); - }; - if (length > 1 || this.__actions__.length || !(value instanceof LazyWrapper) || !isIndex(start)) { - return this.thru(interceptor); - } - value = value.slice(start, +start + (length ? 1 : 0)); - value.__actions__.push({ - 'func': thru, - 'args': [interceptor], - 'thisArg': undefined - }); - return new LodashWrapper(value, this.__chain__).thru(function (array) { - if (length && !array.length) { - array.push(undefined); - } - return array; - }); - }); - - /** - * Creates a `lodash` wrapper instance with explicit method chain sequences enabled. - * - * @name chain - * @memberOf _ - * @since 0.1.0 - * @category Seq - * @returns {Object} Returns the new `lodash` wrapper instance. - * @example - * - * var users = [ - * { 'user': 'barney', 'age': 36 }, - * { 'user': 'fred', 'age': 40 } - * ]; - * - * // A sequence without explicit chaining. - * _(users).head(); - * // => { 'user': 'barney', 'age': 36 } - * - * // A sequence with explicit chaining. - * _(users) - * .chain() - * .head() - * .pick('user') - * .value(); - * // => { 'user': 'barney' } - */ - function wrapperChain() { - return chain(this); - } - - /** - * Executes the chain sequence and returns the wrapped result. - * - * @name commit - * @memberOf _ - * @since 3.2.0 - * @category Seq - * @returns {Object} Returns the new `lodash` wrapper instance. - * @example - * - * var array = [1, 2]; - * var wrapped = _(array).push(3); - * - * console.log(array); - * // => [1, 2] - * - * wrapped = wrapped.commit(); - * console.log(array); - * // => [1, 2, 3] - * - * wrapped.last(); - * // => 3 - * - * console.log(array); - * // => [1, 2, 3] - */ - function wrapperCommit() { - return new LodashWrapper(this.value(), this.__chain__); - } - - /** - * Gets the next value on a wrapped object following the - * [iterator protocol](https://mdn.io/iteration_protocols#iterator). - * - * @name next - * @memberOf _ - * @since 4.0.0 - * @category Seq - * @returns {Object} Returns the next iterator value. - * @example - * - * var wrapped = _([1, 2]); - * - * wrapped.next(); - * // => { 'done': false, 'value': 1 } - * - * wrapped.next(); - * // => { 'done': false, 'value': 2 } - * - * wrapped.next(); - * // => { 'done': true, 'value': undefined } - */ - function wrapperNext() { - if (this.__values__ === undefined) { - this.__values__ = toArray(this.value()); - } - var done = this.__index__ >= this.__values__.length, - value = done ? undefined : this.__values__[this.__index__++]; - return { - 'done': done, - 'value': value - }; - } - - /** - * Enables the wrapper to be iterable. - * - * @name Symbol.iterator - * @memberOf _ - * @since 4.0.0 - * @category Seq - * @returns {Object} Returns the wrapper object. - * @example - * - * var wrapped = _([1, 2]); - * - * wrapped[Symbol.iterator]() === wrapped; - * // => true - * - * Array.from(wrapped); - * // => [1, 2] - */ - function wrapperToIterator() { - return this; - } - - /** - * Creates a clone of the chain sequence planting `value` as the wrapped value. - * - * @name plant - * @memberOf _ - * @since 3.2.0 - * @category Seq - * @param {*} value The value to plant. - * @returns {Object} Returns the new `lodash` wrapper instance. - * @example - * - * function square(n) { - * return n * n; - * } - * - * var wrapped = _([1, 2]).map(square); - * var other = wrapped.plant([3, 4]); - * - * other.value(); - * // => [9, 16] - * - * wrapped.value(); - * // => [1, 4] - */ - function wrapperPlant(value) { - var result, - parent = this; - while (parent instanceof baseLodash) { - var clone = wrapperClone(parent); - clone.__index__ = 0; - clone.__values__ = undefined; - if (result) { - previous.__wrapped__ = clone; - } else { - result = clone; - } - var previous = clone; - parent = parent.__wrapped__; - } - previous.__wrapped__ = value; - return result; - } - - /** - * This method is the wrapper version of `_.reverse`. - * - * **Note:** This method mutates the wrapped array. - * - * @name reverse - * @memberOf _ - * @since 0.1.0 - * @category Seq - * @returns {Object} Returns the new `lodash` wrapper instance. - * @example - * - * var array = [1, 2, 3]; - * - * _(array).reverse().value() - * // => [3, 2, 1] - * - * console.log(array); - * // => [3, 2, 1] - */ - function wrapperReverse() { - var value = this.__wrapped__; - if (value instanceof LazyWrapper) { - var wrapped = value; - if (this.__actions__.length) { - wrapped = new LazyWrapper(this); - } - wrapped = wrapped.reverse(); - wrapped.__actions__.push({ - 'func': thru, - 'args': [reverse], - 'thisArg': undefined - }); - return new LodashWrapper(wrapped, this.__chain__); - } - return this.thru(reverse); - } - - /** - * Executes the chain sequence to resolve the unwrapped value. - * - * @name value - * @memberOf _ - * @since 0.1.0 - * @alias toJSON, valueOf - * @category Seq - * @returns {*} Returns the resolved unwrapped value. - * @example - * - * _([1, 2, 3]).value(); - * // => [1, 2, 3] - */ - function wrapperValue() { - return baseWrapperValue(this.__wrapped__, this.__actions__); - } - - /*------------------------------------------------------------------------*/ - - /** - * Creates an object composed of keys generated from the results of running - * each element of `collection` thru `iteratee`. The corresponding value of - * each key is the number of times the key was returned by `iteratee`. The - * iteratee is invoked with one argument: (value). - * - * @static - * @memberOf _ - * @since 0.5.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The iteratee to transform keys. - * @returns {Object} Returns the composed aggregate object. - * @example - * - * _.countBy([6.1, 4.2, 6.3], Math.floor); - * // => { '4': 1, '6': 2 } - * - * // The `_.property` iteratee shorthand. - * _.countBy(['one', 'two', 'three'], 'length'); - * // => { '3': 2, '5': 1 } - */ - var countBy = createAggregator(function (result, value, key) { - if (hasOwnProperty.call(result, key)) { - ++result[key]; - } else { - baseAssignValue(result, key, 1); - } - }); - - /** - * Checks if `predicate` returns truthy for **all** elements of `collection`. - * Iteration is stopped once `predicate` returns falsey. The predicate is - * invoked with three arguments: (value, index|key, collection). - * - * **Note:** This method returns `true` for - * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because - * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of - * elements of empty collections. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {boolean} Returns `true` if all elements pass the predicate check, - * else `false`. - * @example - * - * _.every([true, 1, null, 'yes'], Boolean); - * // => false - * - * var users = [ - * { 'user': 'barney', 'age': 36, 'active': false }, - * { 'user': 'fred', 'age': 40, 'active': false } - * ]; - * - * // The `_.matches` iteratee shorthand. - * _.every(users, { 'user': 'barney', 'active': false }); - * // => false - * - * // The `_.matchesProperty` iteratee shorthand. - * _.every(users, ['active', false]); - * // => true - * - * // The `_.property` iteratee shorthand. - * _.every(users, 'active'); - * // => false - */ - function every(collection, predicate, guard) { - var func = isArray(collection) ? arrayEvery : baseEvery; - if (guard && isIterateeCall(collection, predicate, guard)) { - predicate = undefined; - } - return func(collection, getIteratee(predicate, 3)); - } - - /** - * Iterates over elements of `collection`, returning an array of all elements - * `predicate` returns truthy for. The predicate is invoked with three - * arguments: (value, index|key, collection). - * - * **Note:** Unlike `_.remove`, this method returns a new array. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @returns {Array} Returns the new filtered array. - * @see _.reject - * @example - * - * var users = [ - * { 'user': 'barney', 'age': 36, 'active': true }, - * { 'user': 'fred', 'age': 40, 'active': false } - * ]; - * - * _.filter(users, function(o) { return !o.active; }); - * // => objects for ['fred'] - * - * // The `_.matches` iteratee shorthand. - * _.filter(users, { 'age': 36, 'active': true }); - * // => objects for ['barney'] - * - * // The `_.matchesProperty` iteratee shorthand. - * _.filter(users, ['active', false]); - * // => objects for ['fred'] - * - * // The `_.property` iteratee shorthand. - * _.filter(users, 'active'); - * // => objects for ['barney'] - * - * // Combining several predicates using `_.overEvery` or `_.overSome`. - * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]])); - * // => objects for ['fred', 'barney'] - */ - function filter(collection, predicate) { - var func = isArray(collection) ? arrayFilter : baseFilter; - return func(collection, getIteratee(predicate, 3)); - } - - /** - * Iterates over elements of `collection`, returning the first element - * `predicate` returns truthy for. The predicate is invoked with three - * arguments: (value, index|key, collection). - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to inspect. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @param {number} [fromIndex=0] The index to search from. - * @returns {*} Returns the matched element, else `undefined`. - * @example - * - * var users = [ - * { 'user': 'barney', 'age': 36, 'active': true }, - * { 'user': 'fred', 'age': 40, 'active': false }, - * { 'user': 'pebbles', 'age': 1, 'active': true } - * ]; - * - * _.find(users, function(o) { return o.age < 40; }); - * // => object for 'barney' - * - * // The `_.matches` iteratee shorthand. - * _.find(users, { 'age': 1, 'active': true }); - * // => object for 'pebbles' - * - * // The `_.matchesProperty` iteratee shorthand. - * _.find(users, ['active', false]); - * // => object for 'fred' - * - * // The `_.property` iteratee shorthand. - * _.find(users, 'active'); - * // => object for 'barney' - */ - var find = createFind(findIndex); - - /** - * This method is like `_.find` except that it iterates over elements of - * `collection` from right to left. - * - * @static - * @memberOf _ - * @since 2.0.0 - * @category Collection - * @param {Array|Object} collection The collection to inspect. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @param {number} [fromIndex=collection.length-1] The index to search from. - * @returns {*} Returns the matched element, else `undefined`. - * @example - * - * _.findLast([1, 2, 3, 4], function(n) { - * return n % 2 == 1; - * }); - * // => 3 - */ - var findLast = createFind(findLastIndex); - - /** - * Creates a flattened array of values by running each element in `collection` - * thru `iteratee` and flattening the mapped results. The iteratee is invoked - * with three arguments: (value, index|key, collection). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Array} Returns the new flattened array. - * @example - * - * function duplicate(n) { - * return [n, n]; - * } - * - * _.flatMap([1, 2], duplicate); - * // => [1, 1, 2, 2] - */ - function flatMap(collection, iteratee) { - return baseFlatten(map(collection, iteratee), 1); - } - - /** - * This method is like `_.flatMap` except that it recursively flattens the - * mapped results. - * - * @static - * @memberOf _ - * @since 4.7.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Array} Returns the new flattened array. - * @example - * - * function duplicate(n) { - * return [[[n, n]]]; - * } - * - * _.flatMapDeep([1, 2], duplicate); - * // => [1, 1, 2, 2] - */ - function flatMapDeep(collection, iteratee) { - return baseFlatten(map(collection, iteratee), INFINITY); - } - - /** - * This method is like `_.flatMap` except that it recursively flattens the - * mapped results up to `depth` times. - * - * @static - * @memberOf _ - * @since 4.7.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @param {number} [depth=1] The maximum recursion depth. - * @returns {Array} Returns the new flattened array. - * @example - * - * function duplicate(n) { - * return [[[n, n]]]; - * } - * - * _.flatMapDepth([1, 2], duplicate, 2); - * // => [[1, 1], [2, 2]] - */ - function flatMapDepth(collection, iteratee, depth) { - depth = depth === undefined ? 1 : toInteger(depth); - return baseFlatten(map(collection, iteratee), depth); - } - - /** - * Iterates over elements of `collection` and invokes `iteratee` for each element. - * The iteratee is invoked with three arguments: (value, index|key, collection). - * Iteratee functions may exit iteration early by explicitly returning `false`. - * - * **Note:** As with other "Collections" methods, objects with a "length" - * property are iterated like arrays. To avoid this behavior use `_.forIn` - * or `_.forOwn` for object iteration. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @alias each - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Array|Object} Returns `collection`. - * @see _.forEachRight - * @example - * - * _.forEach([1, 2], function(value) { - * console.log(value); - * }); - * // => Logs `1` then `2`. - * - * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) { - * console.log(key); - * }); - * // => Logs 'a' then 'b' (iteration order is not guaranteed). - */ - function forEach(collection, iteratee) { - var func = isArray(collection) ? arrayEach : baseEach; - return func(collection, getIteratee(iteratee, 3)); - } - - /** - * This method is like `_.forEach` except that it iterates over elements of - * `collection` from right to left. - * - * @static - * @memberOf _ - * @since 2.0.0 - * @alias eachRight - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Array|Object} Returns `collection`. - * @see _.forEach - * @example - * - * _.forEachRight([1, 2], function(value) { - * console.log(value); - * }); - * // => Logs `2` then `1`. - */ - function forEachRight(collection, iteratee) { - var func = isArray(collection) ? arrayEachRight : baseEachRight; - return func(collection, getIteratee(iteratee, 3)); - } - - /** - * Creates an object composed of keys generated from the results of running - * each element of `collection` thru `iteratee`. The order of grouped values - * is determined by the order they occur in `collection`. The corresponding - * value of each key is an array of elements responsible for generating the - * key. The iteratee is invoked with one argument: (value). - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The iteratee to transform keys. - * @returns {Object} Returns the composed aggregate object. - * @example - * - * _.groupBy([6.1, 4.2, 6.3], Math.floor); - * // => { '4': [4.2], '6': [6.1, 6.3] } - * - * // The `_.property` iteratee shorthand. - * _.groupBy(['one', 'two', 'three'], 'length'); - * // => { '3': ['one', 'two'], '5': ['three'] } - */ - var groupBy = createAggregator(function (result, value, key) { - if (hasOwnProperty.call(result, key)) { - result[key].push(value); - } else { - baseAssignValue(result, key, [value]); - } - }); - - /** - * Checks if `value` is in `collection`. If `collection` is a string, it's - * checked for a substring of `value`, otherwise - * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * is used for equality comparisons. If `fromIndex` is negative, it's used as - * the offset from the end of `collection`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object|string} collection The collection to inspect. - * @param {*} value The value to search for. - * @param {number} [fromIndex=0] The index to search from. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`. - * @returns {boolean} Returns `true` if `value` is found, else `false`. - * @example - * - * _.includes([1, 2, 3], 1); - * // => true - * - * _.includes([1, 2, 3], 1, 2); - * // => false - * - * _.includes({ 'a': 1, 'b': 2 }, 1); - * // => true - * - * _.includes('abcd', 'bc'); - * // => true - */ - function includes(collection, value, fromIndex, guard) { - collection = isArrayLike(collection) ? collection : values(collection); - fromIndex = fromIndex && !guard ? toInteger(fromIndex) : 0; - var length = collection.length; - if (fromIndex < 0) { - fromIndex = nativeMax(length + fromIndex, 0); - } - return isString(collection) ? fromIndex <= length && collection.indexOf(value, fromIndex) > -1 : !!length && baseIndexOf(collection, value, fromIndex) > -1; - } - - /** - * Invokes the method at `path` of each element in `collection`, returning - * an array of the results of each invoked method. Any additional arguments - * are provided to each invoked method. If `path` is a function, it's invoked - * for, and `this` bound to, each element in `collection`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Array|Function|string} path The path of the method to invoke or - * the function invoked per iteration. - * @param {...*} [args] The arguments to invoke each method with. - * @returns {Array} Returns the array of results. - * @example - * - * _.invokeMap([[5, 1, 7], [3, 2, 1]], 'sort'); - * // => [[1, 5, 7], [1, 2, 3]] - * - * _.invokeMap([123, 456], String.prototype.split, ''); - * // => [['1', '2', '3'], ['4', '5', '6']] - */ - var invokeMap = baseRest(function (collection, path, args) { - var index = -1, - isFunc = typeof path == 'function', - result = isArrayLike(collection) ? Array(collection.length) : []; - baseEach(collection, function (value) { - result[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args); - }); - return result; - }); - - /** - * Creates an object composed of keys generated from the results of running - * each element of `collection` thru `iteratee`. The corresponding value of - * each key is the last element responsible for generating the key. The - * iteratee is invoked with one argument: (value). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The iteratee to transform keys. - * @returns {Object} Returns the composed aggregate object. - * @example - * - * var array = [ - * { 'dir': 'left', 'code': 97 }, - * { 'dir': 'right', 'code': 100 } - * ]; - * - * _.keyBy(array, function(o) { - * return String.fromCharCode(o.code); - * }); - * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } } - * - * _.keyBy(array, 'dir'); - * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } } - */ - var keyBy = createAggregator(function (result, value, key) { - baseAssignValue(result, key, value); - }); - - /** - * Creates an array of values by running each element in `collection` thru - * `iteratee`. The iteratee is invoked with three arguments: - * (value, index|key, collection). - * - * Many lodash methods are guarded to work as iteratees for methods like - * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`. - * - * The guarded methods are: - * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`, - * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`, - * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`, - * `template`, `trim`, `trimEnd`, `trimStart`, and `words` - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Array} Returns the new mapped array. - * @example - * - * function square(n) { - * return n * n; - * } - * - * _.map([4, 8], square); - * // => [16, 64] - * - * _.map({ 'a': 4, 'b': 8 }, square); - * // => [16, 64] (iteration order is not guaranteed) - * - * var users = [ - * { 'user': 'barney' }, - * { 'user': 'fred' } - * ]; - * - * // The `_.property` iteratee shorthand. - * _.map(users, 'user'); - * // => ['barney', 'fred'] - */ - function map(collection, iteratee) { - var func = isArray(collection) ? arrayMap : baseMap; - return func(collection, getIteratee(iteratee, 3)); - } - - /** - * This method is like `_.sortBy` except that it allows specifying the sort - * orders of the iteratees to sort by. If `orders` is unspecified, all values - * are sorted in ascending order. Otherwise, specify an order of "desc" for - * descending or "asc" for ascending sort order of corresponding values. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]] - * The iteratees to sort by. - * @param {string[]} [orders] The sort orders of `iteratees`. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`. - * @returns {Array} Returns the new sorted array. - * @example - * - * var users = [ - * { 'user': 'fred', 'age': 48 }, - * { 'user': 'barney', 'age': 34 }, - * { 'user': 'fred', 'age': 40 }, - * { 'user': 'barney', 'age': 36 } - * ]; - * - * // Sort by `user` in ascending order and by `age` in descending order. - * _.orderBy(users, ['user', 'age'], ['asc', 'desc']); - * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]] - */ - function orderBy(collection, iteratees, orders, guard) { - if (collection == null) { - return []; - } - if (!isArray(iteratees)) { - iteratees = iteratees == null ? [] : [iteratees]; - } - orders = guard ? undefined : orders; - if (!isArray(orders)) { - orders = orders == null ? [] : [orders]; - } - return baseOrderBy(collection, iteratees, orders); - } - - /** - * Creates an array of elements split into two groups, the first of which - * contains elements `predicate` returns truthy for, the second of which - * contains elements `predicate` returns falsey for. The predicate is - * invoked with one argument: (value). - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @returns {Array} Returns the array of grouped elements. - * @example - * - * var users = [ - * { 'user': 'barney', 'age': 36, 'active': false }, - * { 'user': 'fred', 'age': 40, 'active': true }, - * { 'user': 'pebbles', 'age': 1, 'active': false } - * ]; - * - * _.partition(users, function(o) { return o.active; }); - * // => objects for [['fred'], ['barney', 'pebbles']] - * - * // The `_.matches` iteratee shorthand. - * _.partition(users, { 'age': 1, 'active': false }); - * // => objects for [['pebbles'], ['barney', 'fred']] - * - * // The `_.matchesProperty` iteratee shorthand. - * _.partition(users, ['active', false]); - * // => objects for [['barney', 'pebbles'], ['fred']] - * - * // The `_.property` iteratee shorthand. - * _.partition(users, 'active'); - * // => objects for [['fred'], ['barney', 'pebbles']] - */ - var partition = createAggregator(function (result, value, key) { - result[key ? 0 : 1].push(value); - }, function () { - return [[], []]; - }); - - /** - * Reduces `collection` to a value which is the accumulated result of running - * each element in `collection` thru `iteratee`, where each successive - * invocation is supplied the return value of the previous. If `accumulator` - * is not given, the first element of `collection` is used as the initial - * value. The iteratee is invoked with four arguments: - * (accumulator, value, index|key, collection). - * - * Many lodash methods are guarded to work as iteratees for methods like - * `_.reduce`, `_.reduceRight`, and `_.transform`. - * - * The guarded methods are: - * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`, - * and `sortBy` - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @param {*} [accumulator] The initial value. - * @returns {*} Returns the accumulated value. - * @see _.reduceRight - * @example - * - * _.reduce([1, 2], function(sum, n) { - * return sum + n; - * }, 0); - * // => 3 - * - * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) { - * (result[value] || (result[value] = [])).push(key); - * return result; - * }, {}); - * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed) - */ - function reduce(collection, iteratee, accumulator) { - var func = isArray(collection) ? arrayReduce : baseReduce, - initAccum = arguments.length < 3; - return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEach); - } - - /** - * This method is like `_.reduce` except that it iterates over elements of - * `collection` from right to left. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @param {*} [accumulator] The initial value. - * @returns {*} Returns the accumulated value. - * @see _.reduce - * @example - * - * var array = [[0, 1], [2, 3], [4, 5]]; - * - * _.reduceRight(array, function(flattened, other) { - * return flattened.concat(other); - * }, []); - * // => [4, 5, 2, 3, 0, 1] - */ - function reduceRight(collection, iteratee, accumulator) { - var func = isArray(collection) ? arrayReduceRight : baseReduce, - initAccum = arguments.length < 3; - return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEachRight); - } - - /** - * The opposite of `_.filter`; this method returns the elements of `collection` - * that `predicate` does **not** return truthy for. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @returns {Array} Returns the new filtered array. - * @see _.filter - * @example - * - * var users = [ - * { 'user': 'barney', 'age': 36, 'active': false }, - * { 'user': 'fred', 'age': 40, 'active': true } - * ]; - * - * _.reject(users, function(o) { return !o.active; }); - * // => objects for ['fred'] - * - * // The `_.matches` iteratee shorthand. - * _.reject(users, { 'age': 40, 'active': true }); - * // => objects for ['barney'] - * - * // The `_.matchesProperty` iteratee shorthand. - * _.reject(users, ['active', false]); - * // => objects for ['fred'] - * - * // The `_.property` iteratee shorthand. - * _.reject(users, 'active'); - * // => objects for ['barney'] - */ - function reject(collection, predicate) { - var func = isArray(collection) ? arrayFilter : baseFilter; - return func(collection, negate(getIteratee(predicate, 3))); - } - - /** - * Gets a random element from `collection`. - * - * @static - * @memberOf _ - * @since 2.0.0 - * @category Collection - * @param {Array|Object} collection The collection to sample. - * @returns {*} Returns the random element. - * @example - * - * _.sample([1, 2, 3, 4]); - * // => 2 - */ - function sample(collection) { - var func = isArray(collection) ? arraySample : baseSample; - return func(collection); - } - - /** - * Gets `n` random elements at unique keys from `collection` up to the - * size of `collection`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Collection - * @param {Array|Object} collection The collection to sample. - * @param {number} [n=1] The number of elements to sample. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {Array} Returns the random elements. - * @example - * - * _.sampleSize([1, 2, 3], 2); - * // => [3, 1] - * - * _.sampleSize([1, 2, 3], 4); - * // => [2, 3, 1] - */ - function sampleSize(collection, n, guard) { - if (guard ? isIterateeCall(collection, n, guard) : n === undefined) { - n = 1; - } else { - n = toInteger(n); - } - var func = isArray(collection) ? arraySampleSize : baseSampleSize; - return func(collection, n); - } - - /** - * Creates an array of shuffled values, using a version of the - * [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle). - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to shuffle. - * @returns {Array} Returns the new shuffled array. - * @example - * - * _.shuffle([1, 2, 3, 4]); - * // => [4, 1, 3, 2] - */ - function shuffle(collection) { - var func = isArray(collection) ? arrayShuffle : baseShuffle; - return func(collection); - } - - /** - * Gets the size of `collection` by returning its length for array-like - * values or the number of own enumerable string keyed properties for objects. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object|string} collection The collection to inspect. - * @returns {number} Returns the collection size. - * @example - * - * _.size([1, 2, 3]); - * // => 3 - * - * _.size({ 'a': 1, 'b': 2 }); - * // => 2 - * - * _.size('pebbles'); - * // => 7 - */ - function size(collection) { - if (collection == null) { - return 0; - } - if (isArrayLike(collection)) { - return isString(collection) ? stringSize(collection) : collection.length; - } - var tag = getTag(collection); - if (tag == mapTag || tag == setTag) { - return collection.size; - } - return baseKeys(collection).length; - } - - /** - * Checks if `predicate` returns truthy for **any** element of `collection`. - * Iteration is stopped once `predicate` returns truthy. The predicate is - * invoked with three arguments: (value, index|key, collection). - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {boolean} Returns `true` if any element passes the predicate check, - * else `false`. - * @example - * - * _.some([null, 0, 'yes', false], Boolean); - * // => true - * - * var users = [ - * { 'user': 'barney', 'active': true }, - * { 'user': 'fred', 'active': false } - * ]; - * - * // The `_.matches` iteratee shorthand. - * _.some(users, { 'user': 'barney', 'active': false }); - * // => false - * - * // The `_.matchesProperty` iteratee shorthand. - * _.some(users, ['active', false]); - * // => true - * - * // The `_.property` iteratee shorthand. - * _.some(users, 'active'); - * // => true - */ - function some(collection, predicate, guard) { - var func = isArray(collection) ? arraySome : baseSome; - if (guard && isIterateeCall(collection, predicate, guard)) { - predicate = undefined; - } - return func(collection, getIteratee(predicate, 3)); - } - - /** - * Creates an array of elements, sorted in ascending order by the results of - * running each element in a collection thru each iteratee. This method - * performs a stable sort, that is, it preserves the original sort order of - * equal elements. The iteratees are invoked with one argument: (value). - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {...(Function|Function[])} [iteratees=[_.identity]] - * The iteratees to sort by. - * @returns {Array} Returns the new sorted array. - * @example - * - * var users = [ - * { 'user': 'fred', 'age': 48 }, - * { 'user': 'barney', 'age': 36 }, - * { 'user': 'fred', 'age': 30 }, - * { 'user': 'barney', 'age': 34 } - * ]; - * - * _.sortBy(users, [function(o) { return o.user; }]); - * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]] - * - * _.sortBy(users, ['user', 'age']); - * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]] - */ - var sortBy = baseRest(function (collection, iteratees) { - if (collection == null) { - return []; - } - var length = iteratees.length; - if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) { - iteratees = []; - } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) { - iteratees = [iteratees[0]]; - } - return baseOrderBy(collection, baseFlatten(iteratees, 1), []); - }); - - /*------------------------------------------------------------------------*/ - - /** - * Gets the timestamp of the number of milliseconds that have elapsed since - * the Unix epoch (1 January 1970 00:00:00 UTC). - * - * @static - * @memberOf _ - * @since 2.4.0 - * @category Date - * @returns {number} Returns the timestamp. - * @example - * - * _.defer(function(stamp) { - * console.log(_.now() - stamp); - * }, _.now()); - * // => Logs the number of milliseconds it took for the deferred invocation. - */ - var now = ctxNow || function () { - return root.Date.now(); - }; - - /*------------------------------------------------------------------------*/ - - /** - * The opposite of `_.before`; this method creates a function that invokes - * `func` once it's called `n` or more times. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {number} n The number of calls before `func` is invoked. - * @param {Function} func The function to restrict. - * @returns {Function} Returns the new restricted function. - * @example - * - * var saves = ['profile', 'settings']; - * - * var done = _.after(saves.length, function() { - * console.log('done saving!'); - * }); - * - * _.forEach(saves, function(type) { - * asyncSave({ 'type': type, 'complete': done }); - * }); - * // => Logs 'done saving!' after the two async saves have completed. - */ - function after(n, func) { - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - n = toInteger(n); - return function () { - if (--n < 1) { - return func.apply(this, arguments); - } - }; - } - - /** - * Creates a function that invokes `func`, with up to `n` arguments, - * ignoring any additional arguments. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Function - * @param {Function} func The function to cap arguments for. - * @param {number} [n=func.length] The arity cap. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {Function} Returns the new capped function. - * @example - * - * _.map(['6', '8', '10'], _.ary(parseInt, 1)); - * // => [6, 8, 10] - */ - function ary(func, n, guard) { - n = guard ? undefined : n; - n = func && n == null ? func.length : n; - return createWrap(func, WRAP_ARY_FLAG, undefined, undefined, undefined, undefined, n); - } - - /** - * Creates a function that invokes `func`, with the `this` binding and arguments - * of the created function, while it's called less than `n` times. Subsequent - * calls to the created function return the result of the last `func` invocation. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Function - * @param {number} n The number of calls at which `func` is no longer invoked. - * @param {Function} func The function to restrict. - * @returns {Function} Returns the new restricted function. - * @example - * - * jQuery(element).on('click', _.before(5, addContactToList)); - * // => Allows adding up to 4 contacts to the list. - */ - function before(n, func) { - var result; - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - n = toInteger(n); - return function () { - if (--n > 0) { - result = func.apply(this, arguments); - } - if (n <= 1) { - func = undefined; - } - return result; - }; - } - - /** - * Creates a function that invokes `func` with the `this` binding of `thisArg` - * and `partials` prepended to the arguments it receives. - * - * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds, - * may be used as a placeholder for partially applied arguments. - * - * **Note:** Unlike native `Function#bind`, this method doesn't set the "length" - * property of bound functions. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {Function} func The function to bind. - * @param {*} thisArg The `this` binding of `func`. - * @param {...*} [partials] The arguments to be partially applied. - * @returns {Function} Returns the new bound function. - * @example - * - * function greet(greeting, punctuation) { - * return greeting + ' ' + this.user + punctuation; - * } - * - * var object = { 'user': 'fred' }; - * - * var bound = _.bind(greet, object, 'hi'); - * bound('!'); - * // => 'hi fred!' - * - * // Bound with placeholders. - * var bound = _.bind(greet, object, _, '!'); - * bound('hi'); - * // => 'hi fred!' - */ - var bind = baseRest(function (func, thisArg, partials) { - var bitmask = WRAP_BIND_FLAG; - if (partials.length) { - var holders = replaceHolders(partials, getHolder(bind)); - bitmask |= WRAP_PARTIAL_FLAG; - } - return createWrap(func, bitmask, thisArg, partials, holders); - }); - - /** - * Creates a function that invokes the method at `object[key]` with `partials` - * prepended to the arguments it receives. - * - * This method differs from `_.bind` by allowing bound functions to reference - * methods that may be redefined or don't yet exist. See - * [Peter Michaux's article](http://peter.michaux.ca/articles/lazy-function-definition-pattern) - * for more details. - * - * The `_.bindKey.placeholder` value, which defaults to `_` in monolithic - * builds, may be used as a placeholder for partially applied arguments. - * - * @static - * @memberOf _ - * @since 0.10.0 - * @category Function - * @param {Object} object The object to invoke the method on. - * @param {string} key The key of the method. - * @param {...*} [partials] The arguments to be partially applied. - * @returns {Function} Returns the new bound function. - * @example - * - * var object = { - * 'user': 'fred', - * 'greet': function(greeting, punctuation) { - * return greeting + ' ' + this.user + punctuation; - * } - * }; - * - * var bound = _.bindKey(object, 'greet', 'hi'); - * bound('!'); - * // => 'hi fred!' - * - * object.greet = function(greeting, punctuation) { - * return greeting + 'ya ' + this.user + punctuation; - * }; - * - * bound('!'); - * // => 'hiya fred!' - * - * // Bound with placeholders. - * var bound = _.bindKey(object, 'greet', _, '!'); - * bound('hi'); - * // => 'hiya fred!' - */ - var bindKey = baseRest(function (object, key, partials) { - var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG; - if (partials.length) { - var holders = replaceHolders(partials, getHolder(bindKey)); - bitmask |= WRAP_PARTIAL_FLAG; - } - return createWrap(key, bitmask, object, partials, holders); - }); - - /** - * Creates a function that accepts arguments of `func` and either invokes - * `func` returning its result, if at least `arity` number of arguments have - * been provided, or returns a function that accepts the remaining `func` - * arguments, and so on. The arity of `func` may be specified if `func.length` - * is not sufficient. - * - * The `_.curry.placeholder` value, which defaults to `_` in monolithic builds, - * may be used as a placeholder for provided arguments. - * - * **Note:** This method doesn't set the "length" property of curried functions. - * - * @static - * @memberOf _ - * @since 2.0.0 - * @category Function - * @param {Function} func The function to curry. - * @param {number} [arity=func.length] The arity of `func`. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {Function} Returns the new curried function. - * @example - * - * var abc = function(a, b, c) { - * return [a, b, c]; - * }; - * - * var curried = _.curry(abc); - * - * curried(1)(2)(3); - * // => [1, 2, 3] - * - * curried(1, 2)(3); - * // => [1, 2, 3] - * - * curried(1, 2, 3); - * // => [1, 2, 3] - * - * // Curried with placeholders. - * curried(1)(_, 3)(2); - * // => [1, 2, 3] - */ - function curry(func, arity, guard) { - arity = guard ? undefined : arity; - var result = createWrap(func, WRAP_CURRY_FLAG, undefined, undefined, undefined, undefined, undefined, arity); - result.placeholder = curry.placeholder; - return result; - } - - /** - * This method is like `_.curry` except that arguments are applied to `func` - * in the manner of `_.partialRight` instead of `_.partial`. - * - * The `_.curryRight.placeholder` value, which defaults to `_` in monolithic - * builds, may be used as a placeholder for provided arguments. - * - * **Note:** This method doesn't set the "length" property of curried functions. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Function - * @param {Function} func The function to curry. - * @param {number} [arity=func.length] The arity of `func`. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {Function} Returns the new curried function. - * @example - * - * var abc = function(a, b, c) { - * return [a, b, c]; - * }; - * - * var curried = _.curryRight(abc); - * - * curried(3)(2)(1); - * // => [1, 2, 3] - * - * curried(2, 3)(1); - * // => [1, 2, 3] - * - * curried(1, 2, 3); - * // => [1, 2, 3] - * - * // Curried with placeholders. - * curried(3)(1, _)(2); - * // => [1, 2, 3] - */ - function curryRight(func, arity, guard) { - arity = guard ? undefined : arity; - var result = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined, undefined, undefined, undefined, undefined, arity); - result.placeholder = curryRight.placeholder; - return result; - } - - /** - * Creates a debounced function that delays invoking `func` until after `wait` - * milliseconds have elapsed since the last time the debounced function was - * invoked. The debounced function comes with a `cancel` method to cancel - * delayed `func` invocations and a `flush` method to immediately invoke them. - * Provide `options` to indicate whether `func` should be invoked on the - * leading and/or trailing edge of the `wait` timeout. The `func` is invoked - * with the last arguments provided to the debounced function. Subsequent - * calls to the debounced function return the result of the last `func` - * invocation. - * - * **Note:** If `leading` and `trailing` options are `true`, `func` is - * invoked on the trailing edge of the timeout only if the debounced function - * is invoked more than once during the `wait` timeout. - * - * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred - * until to the next tick, similar to `setTimeout` with a timeout of `0`. - * - * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) - * for details over the differences between `_.debounce` and `_.throttle`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {Function} func The function to debounce. - * @param {number} [wait=0] The number of milliseconds to delay. - * @param {Object} [options={}] The options object. - * @param {boolean} [options.leading=false] - * Specify invoking on the leading edge of the timeout. - * @param {number} [options.maxWait] - * The maximum time `func` is allowed to be delayed before it's invoked. - * @param {boolean} [options.trailing=true] - * Specify invoking on the trailing edge of the timeout. - * @returns {Function} Returns the new debounced function. - * @example - * - * // Avoid costly calculations while the window size is in flux. - * jQuery(window).on('resize', _.debounce(calculateLayout, 150)); - * - * // Invoke `sendMail` when clicked, debouncing subsequent calls. - * jQuery(element).on('click', _.debounce(sendMail, 300, { - * 'leading': true, - * 'trailing': false - * })); - * - * // Ensure `batchLog` is invoked once after 1 second of debounced calls. - * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 }); - * var source = new EventSource('/stream'); - * jQuery(source).on('message', debounced); - * - * // Cancel the trailing debounced invocation. - * jQuery(window).on('popstate', debounced.cancel); - */ - function debounce(func, wait, options) { - var lastArgs, - lastThis, - maxWait, - result, - timerId, - lastCallTime, - lastInvokeTime = 0, - leading = false, - maxing = false, - trailing = true; - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - wait = toNumber(wait) || 0; - if (isObject(options)) { - leading = !!options.leading; - maxing = 'maxWait' in options; - maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait; - trailing = 'trailing' in options ? !!options.trailing : trailing; - } - function invokeFunc(time) { - var args = lastArgs, - thisArg = lastThis; - lastArgs = lastThis = undefined; - lastInvokeTime = time; - result = func.apply(thisArg, args); - return result; - } - function leadingEdge(time) { - // Reset any `maxWait` timer. - lastInvokeTime = time; - // Start the timer for the trailing edge. - timerId = setTimeout(timerExpired, wait); - // Invoke the leading edge. - return leading ? invokeFunc(time) : result; - } - function remainingWait(time) { - var timeSinceLastCall = time - lastCallTime, - timeSinceLastInvoke = time - lastInvokeTime, - timeWaiting = wait - timeSinceLastCall; - return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting; - } - function shouldInvoke(time) { - var timeSinceLastCall = time - lastCallTime, - timeSinceLastInvoke = time - lastInvokeTime; - - // Either this is the first call, activity has stopped and we're at the - // trailing edge, the system time has gone backwards and we're treating - // it as the trailing edge, or we've hit the `maxWait` limit. - return lastCallTime === undefined || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait; - } - function timerExpired() { - var time = now(); - if (shouldInvoke(time)) { - return trailingEdge(time); - } - // Restart the timer. - timerId = setTimeout(timerExpired, remainingWait(time)); - } - function trailingEdge(time) { - timerId = undefined; - - // Only invoke if we have `lastArgs` which means `func` has been - // debounced at least once. - if (trailing && lastArgs) { - return invokeFunc(time); - } - lastArgs = lastThis = undefined; - return result; - } - function cancel() { - if (timerId !== undefined) { - clearTimeout(timerId); - } - lastInvokeTime = 0; - lastArgs = lastCallTime = lastThis = timerId = undefined; - } - function flush() { - return timerId === undefined ? result : trailingEdge(now()); - } - function debounced() { - var time = now(), - isInvoking = shouldInvoke(time); - lastArgs = arguments; - lastThis = this; - lastCallTime = time; - if (isInvoking) { - if (timerId === undefined) { - return leadingEdge(lastCallTime); - } - if (maxing) { - // Handle invocations in a tight loop. - clearTimeout(timerId); - timerId = setTimeout(timerExpired, wait); - return invokeFunc(lastCallTime); - } - } - if (timerId === undefined) { - timerId = setTimeout(timerExpired, wait); - } - return result; - } - debounced.cancel = cancel; - debounced.flush = flush; - return debounced; - } - - /** - * Defers invoking the `func` until the current call stack has cleared. Any - * additional arguments are provided to `func` when it's invoked. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {Function} func The function to defer. - * @param {...*} [args] The arguments to invoke `func` with. - * @returns {number} Returns the timer id. - * @example - * - * _.defer(function(text) { - * console.log(text); - * }, 'deferred'); - * // => Logs 'deferred' after one millisecond. - */ - var defer = baseRest(function (func, args) { - return baseDelay(func, 1, args); - }); - - /** - * Invokes `func` after `wait` milliseconds. Any additional arguments are - * provided to `func` when it's invoked. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {Function} func The function to delay. - * @param {number} wait The number of milliseconds to delay invocation. - * @param {...*} [args] The arguments to invoke `func` with. - * @returns {number} Returns the timer id. - * @example - * - * _.delay(function(text) { - * console.log(text); - * }, 1000, 'later'); - * // => Logs 'later' after one second. - */ - var delay = baseRest(function (func, wait, args) { - return baseDelay(func, toNumber(wait) || 0, args); - }); - - /** - * Creates a function that invokes `func` with arguments reversed. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Function - * @param {Function} func The function to flip arguments for. - * @returns {Function} Returns the new flipped function. - * @example - * - * var flipped = _.flip(function() { - * return _.toArray(arguments); - * }); - * - * flipped('a', 'b', 'c', 'd'); - * // => ['d', 'c', 'b', 'a'] - */ - function flip(func) { - return createWrap(func, WRAP_FLIP_FLAG); - } - - /** - * Creates a function that memoizes the result of `func`. If `resolver` is - * provided, it determines the cache key for storing the result based on the - * arguments provided to the memoized function. By default, the first argument - * provided to the memoized function is used as the map cache key. The `func` - * is invoked with the `this` binding of the memoized function. - * - * **Note:** The cache is exposed as the `cache` property on the memoized - * function. Its creation may be customized by replacing the `_.memoize.Cache` - * constructor with one whose instances implement the - * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object) - * method interface of `clear`, `delete`, `get`, `has`, and `set`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {Function} func The function to have its output memoized. - * @param {Function} [resolver] The function to resolve the cache key. - * @returns {Function} Returns the new memoized function. - * @example - * - * var object = { 'a': 1, 'b': 2 }; - * var other = { 'c': 3, 'd': 4 }; - * - * var values = _.memoize(_.values); - * values(object); - * // => [1, 2] - * - * values(other); - * // => [3, 4] - * - * object.a = 2; - * values(object); - * // => [1, 2] - * - * // Modify the result cache. - * values.cache.set(object, ['a', 'b']); - * values(object); - * // => ['a', 'b'] - * - * // Replace `_.memoize.Cache`. - * _.memoize.Cache = WeakMap; - */ - function memoize(func, resolver) { - if (typeof func != 'function' || resolver != null && typeof resolver != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - var memoized = function () { - var args = arguments, - key = resolver ? resolver.apply(this, args) : args[0], - cache = memoized.cache; - if (cache.has(key)) { - return cache.get(key); - } - var result = func.apply(this, args); - memoized.cache = cache.set(key, result) || cache; - return result; - }; - memoized.cache = new (memoize.Cache || MapCache)(); - return memoized; - } - - // Expose `MapCache`. - memoize.Cache = MapCache; - - /** - * Creates a function that negates the result of the predicate `func`. The - * `func` predicate is invoked with the `this` binding and arguments of the - * created function. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Function - * @param {Function} predicate The predicate to negate. - * @returns {Function} Returns the new negated function. - * @example - * - * function isEven(n) { - * return n % 2 == 0; - * } - * - * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven)); - * // => [1, 3, 5] - */ - function negate(predicate) { - if (typeof predicate != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - return function () { - var args = arguments; - switch (args.length) { - case 0: - return !predicate.call(this); - case 1: - return !predicate.call(this, args[0]); - case 2: - return !predicate.call(this, args[0], args[1]); - case 3: - return !predicate.call(this, args[0], args[1], args[2]); - } - return !predicate.apply(this, args); - }; - } - - /** - * Creates a function that is restricted to invoking `func` once. Repeat calls - * to the function return the value of the first invocation. The `func` is - * invoked with the `this` binding and arguments of the created function. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {Function} func The function to restrict. - * @returns {Function} Returns the new restricted function. - * @example - * - * var initialize = _.once(createApplication); - * initialize(); - * initialize(); - * // => `createApplication` is invoked once - */ - function once(func) { - return before(2, func); - } - - /** - * Creates a function that invokes `func` with its arguments transformed. - * - * @static - * @since 4.0.0 - * @memberOf _ - * @category Function - * @param {Function} func The function to wrap. - * @param {...(Function|Function[])} [transforms=[_.identity]] - * The argument transforms. - * @returns {Function} Returns the new function. - * @example - * - * function doubled(n) { - * return n * 2; - * } - * - * function square(n) { - * return n * n; - * } - * - * var func = _.overArgs(function(x, y) { - * return [x, y]; - * }, [square, doubled]); - * - * func(9, 3); - * // => [81, 6] - * - * func(10, 5); - * // => [100, 10] - */ - var overArgs = castRest(function (func, transforms) { - transforms = transforms.length == 1 && isArray(transforms[0]) ? arrayMap(transforms[0], baseUnary(getIteratee())) : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee())); - var funcsLength = transforms.length; - return baseRest(function (args) { - var index = -1, - length = nativeMin(args.length, funcsLength); - while (++index < length) { - args[index] = transforms[index].call(this, args[index]); - } - return apply(func, this, args); - }); - }); - - /** - * Creates a function that invokes `func` with `partials` prepended to the - * arguments it receives. This method is like `_.bind` except it does **not** - * alter the `this` binding. - * - * The `_.partial.placeholder` value, which defaults to `_` in monolithic - * builds, may be used as a placeholder for partially applied arguments. - * - * **Note:** This method doesn't set the "length" property of partially - * applied functions. - * - * @static - * @memberOf _ - * @since 0.2.0 - * @category Function - * @param {Function} func The function to partially apply arguments to. - * @param {...*} [partials] The arguments to be partially applied. - * @returns {Function} Returns the new partially applied function. - * @example - * - * function greet(greeting, name) { - * return greeting + ' ' + name; - * } - * - * var sayHelloTo = _.partial(greet, 'hello'); - * sayHelloTo('fred'); - * // => 'hello fred' - * - * // Partially applied with placeholders. - * var greetFred = _.partial(greet, _, 'fred'); - * greetFred('hi'); - * // => 'hi fred' - */ - var partial = baseRest(function (func, partials) { - var holders = replaceHolders(partials, getHolder(partial)); - return createWrap(func, WRAP_PARTIAL_FLAG, undefined, partials, holders); - }); - - /** - * This method is like `_.partial` except that partially applied arguments - * are appended to the arguments it receives. - * - * The `_.partialRight.placeholder` value, which defaults to `_` in monolithic - * builds, may be used as a placeholder for partially applied arguments. - * - * **Note:** This method doesn't set the "length" property of partially - * applied functions. - * - * @static - * @memberOf _ - * @since 1.0.0 - * @category Function - * @param {Function} func The function to partially apply arguments to. - * @param {...*} [partials] The arguments to be partially applied. - * @returns {Function} Returns the new partially applied function. - * @example - * - * function greet(greeting, name) { - * return greeting + ' ' + name; - * } - * - * var greetFred = _.partialRight(greet, 'fred'); - * greetFred('hi'); - * // => 'hi fred' - * - * // Partially applied with placeholders. - * var sayHelloTo = _.partialRight(greet, 'hello', _); - * sayHelloTo('fred'); - * // => 'hello fred' - */ - var partialRight = baseRest(function (func, partials) { - var holders = replaceHolders(partials, getHolder(partialRight)); - return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined, partials, holders); - }); - - /** - * Creates a function that invokes `func` with arguments arranged according - * to the specified `indexes` where the argument value at the first index is - * provided as the first argument, the argument value at the second index is - * provided as the second argument, and so on. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Function - * @param {Function} func The function to rearrange arguments for. - * @param {...(number|number[])} indexes The arranged argument indexes. - * @returns {Function} Returns the new function. - * @example - * - * var rearged = _.rearg(function(a, b, c) { - * return [a, b, c]; - * }, [2, 0, 1]); - * - * rearged('b', 'c', 'a') - * // => ['a', 'b', 'c'] - */ - var rearg = flatRest(function (func, indexes) { - return createWrap(func, WRAP_REARG_FLAG, undefined, undefined, undefined, indexes); - }); - - /** - * Creates a function that invokes `func` with the `this` binding of the - * created function and arguments from `start` and beyond provided as - * an array. - * - * **Note:** This method is based on the - * [rest parameter](https://mdn.io/rest_parameters). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Function - * @param {Function} func The function to apply a rest parameter to. - * @param {number} [start=func.length-1] The start position of the rest parameter. - * @returns {Function} Returns the new function. - * @example - * - * var say = _.rest(function(what, names) { - * return what + ' ' + _.initial(names).join(', ') + - * (_.size(names) > 1 ? ', & ' : '') + _.last(names); - * }); - * - * say('hello', 'fred', 'barney', 'pebbles'); - * // => 'hello fred, barney, & pebbles' - */ - function rest(func, start) { - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - start = start === undefined ? start : toInteger(start); - return baseRest(func, start); - } - - /** - * Creates a function that invokes `func` with the `this` binding of the - * create function and an array of arguments much like - * [`Function#apply`](http://www.ecma-international.org/ecma-262/7.0/#sec-function.prototype.apply). - * - * **Note:** This method is based on the - * [spread operator](https://mdn.io/spread_operator). - * - * @static - * @memberOf _ - * @since 3.2.0 - * @category Function - * @param {Function} func The function to spread arguments over. - * @param {number} [start=0] The start position of the spread. - * @returns {Function} Returns the new function. - * @example - * - * var say = _.spread(function(who, what) { - * return who + ' says ' + what; - * }); - * - * say(['fred', 'hello']); - * // => 'fred says hello' - * - * var numbers = Promise.all([ - * Promise.resolve(40), - * Promise.resolve(36) - * ]); - * - * numbers.then(_.spread(function(x, y) { - * return x + y; - * })); - * // => a Promise of 76 - */ - function spread(func, start) { - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - start = start == null ? 0 : nativeMax(toInteger(start), 0); - return baseRest(function (args) { - var array = args[start], - otherArgs = castSlice(args, 0, start); - if (array) { - arrayPush(otherArgs, array); - } - return apply(func, this, otherArgs); - }); - } - - /** - * Creates a throttled function that only invokes `func` at most once per - * every `wait` milliseconds. The throttled function comes with a `cancel` - * method to cancel delayed `func` invocations and a `flush` method to - * immediately invoke them. Provide `options` to indicate whether `func` - * should be invoked on the leading and/or trailing edge of the `wait` - * timeout. The `func` is invoked with the last arguments provided to the - * throttled function. Subsequent calls to the throttled function return the - * result of the last `func` invocation. - * - * **Note:** If `leading` and `trailing` options are `true`, `func` is - * invoked on the trailing edge of the timeout only if the throttled function - * is invoked more than once during the `wait` timeout. - * - * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred - * until to the next tick, similar to `setTimeout` with a timeout of `0`. - * - * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) - * for details over the differences between `_.throttle` and `_.debounce`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {Function} func The function to throttle. - * @param {number} [wait=0] The number of milliseconds to throttle invocations to. - * @param {Object} [options={}] The options object. - * @param {boolean} [options.leading=true] - * Specify invoking on the leading edge of the timeout. - * @param {boolean} [options.trailing=true] - * Specify invoking on the trailing edge of the timeout. - * @returns {Function} Returns the new throttled function. - * @example - * - * // Avoid excessively updating the position while scrolling. - * jQuery(window).on('scroll', _.throttle(updatePosition, 100)); - * - * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes. - * var throttled = _.throttle(renewToken, 300000, { 'trailing': false }); - * jQuery(element).on('click', throttled); - * - * // Cancel the trailing throttled invocation. - * jQuery(window).on('popstate', throttled.cancel); - */ - function throttle(func, wait, options) { - var leading = true, - trailing = true; - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - if (isObject(options)) { - leading = 'leading' in options ? !!options.leading : leading; - trailing = 'trailing' in options ? !!options.trailing : trailing; - } - return debounce(func, wait, { - 'leading': leading, - 'maxWait': wait, - 'trailing': trailing - }); - } - - /** - * Creates a function that accepts up to one argument, ignoring any - * additional arguments. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Function - * @param {Function} func The function to cap arguments for. - * @returns {Function} Returns the new capped function. - * @example - * - * _.map(['6', '8', '10'], _.unary(parseInt)); - * // => [6, 8, 10] - */ - function unary(func) { - return ary(func, 1); - } - - /** - * Creates a function that provides `value` to `wrapper` as its first - * argument. Any additional arguments provided to the function are appended - * to those provided to the `wrapper`. The wrapper is invoked with the `this` - * binding of the created function. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {*} value The value to wrap. - * @param {Function} [wrapper=identity] The wrapper function. - * @returns {Function} Returns the new function. - * @example - * - * var p = _.wrap(_.escape, function(func, text) { - * return '

' + func(text) + '

'; - * }); - * - * p('fred, barney, & pebbles'); - * // => '

fred, barney, & pebbles

' - */ - function wrap(value, wrapper) { - return partial(castFunction(wrapper), value); - } - - /*------------------------------------------------------------------------*/ - - /** - * Casts `value` as an array if it's not one. - * - * @static - * @memberOf _ - * @since 4.4.0 - * @category Lang - * @param {*} value The value to inspect. - * @returns {Array} Returns the cast array. - * @example - * - * _.castArray(1); - * // => [1] - * - * _.castArray({ 'a': 1 }); - * // => [{ 'a': 1 }] - * - * _.castArray('abc'); - * // => ['abc'] - * - * _.castArray(null); - * // => [null] - * - * _.castArray(undefined); - * // => [undefined] - * - * _.castArray(); - * // => [] - * - * var array = [1, 2, 3]; - * console.log(_.castArray(array) === array); - * // => true - */ - function castArray() { - if (!arguments.length) { - return []; - } - var value = arguments[0]; - return isArray(value) ? value : [value]; - } - - /** - * Creates a shallow clone of `value`. - * - * **Note:** This method is loosely based on the - * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm) - * and supports cloning arrays, array buffers, booleans, date objects, maps, - * numbers, `Object` objects, regexes, sets, strings, symbols, and typed - * arrays. The own enumerable properties of `arguments` objects are cloned - * as plain objects. An empty object is returned for uncloneable values such - * as error objects, functions, DOM nodes, and WeakMaps. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to clone. - * @returns {*} Returns the cloned value. - * @see _.cloneDeep - * @example - * - * var objects = [{ 'a': 1 }, { 'b': 2 }]; - * - * var shallow = _.clone(objects); - * console.log(shallow[0] === objects[0]); - * // => true - */ - function clone(value) { - return baseClone(value, CLONE_SYMBOLS_FLAG); - } - - /** - * This method is like `_.clone` except that it accepts `customizer` which - * is invoked to produce the cloned value. If `customizer` returns `undefined`, - * cloning is handled by the method instead. The `customizer` is invoked with - * up to four arguments; (value [, index|key, object, stack]). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to clone. - * @param {Function} [customizer] The function to customize cloning. - * @returns {*} Returns the cloned value. - * @see _.cloneDeepWith - * @example - * - * function customizer(value) { - * if (_.isElement(value)) { - * return value.cloneNode(false); - * } - * } - * - * var el = _.cloneWith(document.body, customizer); - * - * console.log(el === document.body); - * // => false - * console.log(el.nodeName); - * // => 'BODY' - * console.log(el.childNodes.length); - * // => 0 - */ - function cloneWith(value, customizer) { - customizer = typeof customizer == 'function' ? customizer : undefined; - return baseClone(value, CLONE_SYMBOLS_FLAG, customizer); - } - - /** - * This method is like `_.clone` except that it recursively clones `value`. - * - * @static - * @memberOf _ - * @since 1.0.0 - * @category Lang - * @param {*} value The value to recursively clone. - * @returns {*} Returns the deep cloned value. - * @see _.clone - * @example - * - * var objects = [{ 'a': 1 }, { 'b': 2 }]; - * - * var deep = _.cloneDeep(objects); - * console.log(deep[0] === objects[0]); - * // => false - */ - function cloneDeep(value) { - return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG); - } - - /** - * This method is like `_.cloneWith` except that it recursively clones `value`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to recursively clone. - * @param {Function} [customizer] The function to customize cloning. - * @returns {*} Returns the deep cloned value. - * @see _.cloneWith - * @example - * - * function customizer(value) { - * if (_.isElement(value)) { - * return value.cloneNode(true); - * } - * } - * - * var el = _.cloneDeepWith(document.body, customizer); - * - * console.log(el === document.body); - * // => false - * console.log(el.nodeName); - * // => 'BODY' - * console.log(el.childNodes.length); - * // => 20 - */ - function cloneDeepWith(value, customizer) { - customizer = typeof customizer == 'function' ? customizer : undefined; - return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer); - } - - /** - * Checks if `object` conforms to `source` by invoking the predicate - * properties of `source` with the corresponding property values of `object`. - * - * **Note:** This method is equivalent to `_.conforms` when `source` is - * partially applied. - * - * @static - * @memberOf _ - * @since 4.14.0 - * @category Lang - * @param {Object} object The object to inspect. - * @param {Object} source The object of property predicates to conform to. - * @returns {boolean} Returns `true` if `object` conforms, else `false`. - * @example - * - * var object = { 'a': 1, 'b': 2 }; - * - * _.conformsTo(object, { 'b': function(n) { return n > 1; } }); - * // => true - * - * _.conformsTo(object, { 'b': function(n) { return n > 2; } }); - * // => false - */ - function conformsTo(object, source) { - return source == null || baseConformsTo(object, source, keys(source)); - } - - /** - * Performs a - * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * comparison between two values to determine if they are equivalent. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if the values are equivalent, else `false`. - * @example - * - * var object = { 'a': 1 }; - * var other = { 'a': 1 }; - * - * _.eq(object, object); - * // => true - * - * _.eq(object, other); - * // => false - * - * _.eq('a', 'a'); - * // => true - * - * _.eq('a', Object('a')); - * // => false - * - * _.eq(NaN, NaN); - * // => true - */ - function eq(value, other) { - return value === other || value !== value && other !== other; - } - - /** - * Checks if `value` is greater than `other`. - * - * @static - * @memberOf _ - * @since 3.9.0 - * @category Lang - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if `value` is greater than `other`, - * else `false`. - * @see _.lt - * @example - * - * _.gt(3, 1); - * // => true - * - * _.gt(3, 3); - * // => false - * - * _.gt(1, 3); - * // => false - */ - var gt = createRelationalOperation(baseGt); - - /** - * Checks if `value` is greater than or equal to `other`. - * - * @static - * @memberOf _ - * @since 3.9.0 - * @category Lang - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if `value` is greater than or equal to - * `other`, else `false`. - * @see _.lte - * @example - * - * _.gte(3, 1); - * // => true - * - * _.gte(3, 3); - * // => true - * - * _.gte(1, 3); - * // => false - */ - var gte = createRelationalOperation(function (value, other) { - return value >= other; - }); - - /** - * Checks if `value` is likely an `arguments` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an `arguments` object, - * else `false`. - * @example - * - * _.isArguments(function() { return arguments; }()); - * // => true - * - * _.isArguments([1, 2, 3]); - * // => false - */ - var isArguments = baseIsArguments(function () { - return arguments; - }()) ? baseIsArguments : function (value) { - return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee'); - }; - - /** - * Checks if `value` is classified as an `Array` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an array, else `false`. - * @example - * - * _.isArray([1, 2, 3]); - * // => true - * - * _.isArray(document.body.children); - * // => false - * - * _.isArray('abc'); - * // => false - * - * _.isArray(_.noop); - * // => false - */ - var isArray = Array.isArray; - - /** - * Checks if `value` is classified as an `ArrayBuffer` object. - * - * @static - * @memberOf _ - * @since 4.3.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`. - * @example - * - * _.isArrayBuffer(new ArrayBuffer(2)); - * // => true - * - * _.isArrayBuffer(new Array(2)); - * // => false - */ - var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer; - - /** - * Checks if `value` is array-like. A value is considered array-like if it's - * not a function and has a `value.length` that's an integer greater than or - * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is array-like, else `false`. - * @example - * - * _.isArrayLike([1, 2, 3]); - * // => true - * - * _.isArrayLike(document.body.children); - * // => true - * - * _.isArrayLike('abc'); - * // => true - * - * _.isArrayLike(_.noop); - * // => false - */ - function isArrayLike(value) { - return value != null && isLength(value.length) && !isFunction(value); - } - - /** - * This method is like `_.isArrayLike` except that it also checks if `value` - * is an object. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an array-like object, - * else `false`. - * @example - * - * _.isArrayLikeObject([1, 2, 3]); - * // => true - * - * _.isArrayLikeObject(document.body.children); - * // => true - * - * _.isArrayLikeObject('abc'); - * // => false - * - * _.isArrayLikeObject(_.noop); - * // => false - */ - function isArrayLikeObject(value) { - return isObjectLike(value) && isArrayLike(value); - } - - /** - * Checks if `value` is classified as a boolean primitive or object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a boolean, else `false`. - * @example - * - * _.isBoolean(false); - * // => true - * - * _.isBoolean(null); - * // => false - */ - function isBoolean(value) { - return value === true || value === false || isObjectLike(value) && baseGetTag(value) == boolTag; - } - - /** - * Checks if `value` is a buffer. - * - * @static - * @memberOf _ - * @since 4.3.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a buffer, else `false`. - * @example - * - * _.isBuffer(new Buffer(2)); - * // => true - * - * _.isBuffer(new Uint8Array(2)); - * // => false - */ - var isBuffer = nativeIsBuffer || stubFalse; - - /** - * Checks if `value` is classified as a `Date` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a date object, else `false`. - * @example - * - * _.isDate(new Date); - * // => true - * - * _.isDate('Mon April 23 2012'); - * // => false - */ - var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate; - - /** - * Checks if `value` is likely a DOM element. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`. - * @example - * - * _.isElement(document.body); - * // => true - * - * _.isElement(''); - * // => false - */ - function isElement(value) { - return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value); - } - - /** - * Checks if `value` is an empty object, collection, map, or set. - * - * Objects are considered empty if they have no own enumerable string keyed - * properties. - * - * Array-like values such as `arguments` objects, arrays, buffers, strings, or - * jQuery-like collections are considered empty if they have a `length` of `0`. - * Similarly, maps and sets are considered empty if they have a `size` of `0`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is empty, else `false`. - * @example - * - * _.isEmpty(null); - * // => true - * - * _.isEmpty(true); - * // => true - * - * _.isEmpty(1); - * // => true - * - * _.isEmpty([1, 2, 3]); - * // => false - * - * _.isEmpty({ 'a': 1 }); - * // => false - */ - function isEmpty(value) { - if (value == null) { - return true; - } - if (isArrayLike(value) && (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' || isBuffer(value) || isTypedArray(value) || isArguments(value))) { - return !value.length; - } - var tag = getTag(value); - if (tag == mapTag || tag == setTag) { - return !value.size; - } - if (isPrototype(value)) { - return !baseKeys(value).length; - } - for (var key in value) { - if (hasOwnProperty.call(value, key)) { - return false; - } - } - return true; - } - - /** - * Performs a deep comparison between two values to determine if they are - * equivalent. - * - * **Note:** This method supports comparing arrays, array buffers, booleans, - * date objects, error objects, maps, numbers, `Object` objects, regexes, - * sets, strings, symbols, and typed arrays. `Object` objects are compared - * by their own, not inherited, enumerable properties. Functions and DOM - * nodes are compared by strict equality, i.e. `===`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if the values are equivalent, else `false`. - * @example - * - * var object = { 'a': 1 }; - * var other = { 'a': 1 }; - * - * _.isEqual(object, other); - * // => true - * - * object === other; - * // => false - */ - function isEqual(value, other) { - return baseIsEqual(value, other); - } - - /** - * This method is like `_.isEqual` except that it accepts `customizer` which - * is invoked to compare values. If `customizer` returns `undefined`, comparisons - * are handled by the method instead. The `customizer` is invoked with up to - * six arguments: (objValue, othValue [, index|key, object, other, stack]). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @param {Function} [customizer] The function to customize comparisons. - * @returns {boolean} Returns `true` if the values are equivalent, else `false`. - * @example - * - * function isGreeting(value) { - * return /^h(?:i|ello)$/.test(value); - * } - * - * function customizer(objValue, othValue) { - * if (isGreeting(objValue) && isGreeting(othValue)) { - * return true; - * } - * } - * - * var array = ['hello', 'goodbye']; - * var other = ['hi', 'goodbye']; - * - * _.isEqualWith(array, other, customizer); - * // => true - */ - function isEqualWith(value, other, customizer) { - customizer = typeof customizer == 'function' ? customizer : undefined; - var result = customizer ? customizer(value, other) : undefined; - return result === undefined ? baseIsEqual(value, other, undefined, customizer) : !!result; - } - - /** - * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`, - * `SyntaxError`, `TypeError`, or `URIError` object. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an error object, else `false`. - * @example - * - * _.isError(new Error); - * // => true - * - * _.isError(Error); - * // => false - */ - function isError(value) { - if (!isObjectLike(value)) { - return false; - } - var tag = baseGetTag(value); - return tag == errorTag || tag == domExcTag || typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value); - } - - /** - * Checks if `value` is a finite primitive number. - * - * **Note:** This method is based on - * [`Number.isFinite`](https://mdn.io/Number/isFinite). - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a finite number, else `false`. - * @example - * - * _.isFinite(3); - * // => true - * - * _.isFinite(Number.MIN_VALUE); - * // => true - * - * _.isFinite(Infinity); - * // => false - * - * _.isFinite('3'); - * // => false - */ - function isFinite(value) { - return typeof value == 'number' && nativeIsFinite(value); - } - - /** - * Checks if `value` is classified as a `Function` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a function, else `false`. - * @example - * - * _.isFunction(_); - * // => true - * - * _.isFunction(/abc/); - * // => false - */ - function isFunction(value) { - if (!isObject(value)) { - return false; - } - // The use of `Object#toString` avoids issues with the `typeof` operator - // in Safari 9 which returns 'object' for typed arrays and other constructors. - var tag = baseGetTag(value); - return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; - } - - /** - * Checks if `value` is an integer. - * - * **Note:** This method is based on - * [`Number.isInteger`](https://mdn.io/Number/isInteger). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an integer, else `false`. - * @example - * - * _.isInteger(3); - * // => true - * - * _.isInteger(Number.MIN_VALUE); - * // => false - * - * _.isInteger(Infinity); - * // => false - * - * _.isInteger('3'); - * // => false - */ - function isInteger(value) { - return typeof value == 'number' && value == toInteger(value); - } - - /** - * Checks if `value` is a valid array-like length. - * - * **Note:** This method is loosely based on - * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. - * @example - * - * _.isLength(3); - * // => true - * - * _.isLength(Number.MIN_VALUE); - * // => false - * - * _.isLength(Infinity); - * // => false - * - * _.isLength('3'); - * // => false - */ - function isLength(value) { - return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; - } - - /** - * Checks if `value` is the - * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) - * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an object, else `false`. - * @example - * - * _.isObject({}); - * // => true - * - * _.isObject([1, 2, 3]); - * // => true - * - * _.isObject(_.noop); - * // => true - * - * _.isObject(null); - * // => false - */ - function isObject(value) { - var type = typeof value; - return value != null && (type == 'object' || type == 'function'); - } - - /** - * Checks if `value` is object-like. A value is object-like if it's not `null` - * and has a `typeof` result of "object". - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is object-like, else `false`. - * @example - * - * _.isObjectLike({}); - * // => true - * - * _.isObjectLike([1, 2, 3]); - * // => true - * - * _.isObjectLike(_.noop); - * // => false - * - * _.isObjectLike(null); - * // => false - */ - function isObjectLike(value) { - return value != null && typeof value == 'object'; - } - - /** - * Checks if `value` is classified as a `Map` object. - * - * @static - * @memberOf _ - * @since 4.3.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a map, else `false`. - * @example - * - * _.isMap(new Map); - * // => true - * - * _.isMap(new WeakMap); - * // => false - */ - var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap; - - /** - * Performs a partial deep comparison between `object` and `source` to - * determine if `object` contains equivalent property values. - * - * **Note:** This method is equivalent to `_.matches` when `source` is - * partially applied. - * - * Partial comparisons will match empty array and empty object `source` - * values against any array or object value, respectively. See `_.isEqual` - * for a list of supported value comparisons. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Lang - * @param {Object} object The object to inspect. - * @param {Object} source The object of property values to match. - * @returns {boolean} Returns `true` if `object` is a match, else `false`. - * @example - * - * var object = { 'a': 1, 'b': 2 }; - * - * _.isMatch(object, { 'b': 2 }); - * // => true - * - * _.isMatch(object, { 'b': 1 }); - * // => false - */ - function isMatch(object, source) { - return object === source || baseIsMatch(object, source, getMatchData(source)); - } - - /** - * This method is like `_.isMatch` except that it accepts `customizer` which - * is invoked to compare values. If `customizer` returns `undefined`, comparisons - * are handled by the method instead. The `customizer` is invoked with five - * arguments: (objValue, srcValue, index|key, object, source). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {Object} object The object to inspect. - * @param {Object} source The object of property values to match. - * @param {Function} [customizer] The function to customize comparisons. - * @returns {boolean} Returns `true` if `object` is a match, else `false`. - * @example - * - * function isGreeting(value) { - * return /^h(?:i|ello)$/.test(value); - * } - * - * function customizer(objValue, srcValue) { - * if (isGreeting(objValue) && isGreeting(srcValue)) { - * return true; - * } - * } - * - * var object = { 'greeting': 'hello' }; - * var source = { 'greeting': 'hi' }; - * - * _.isMatchWith(object, source, customizer); - * // => true - */ - function isMatchWith(object, source, customizer) { - customizer = typeof customizer == 'function' ? customizer : undefined; - return baseIsMatch(object, source, getMatchData(source), customizer); - } - - /** - * Checks if `value` is `NaN`. - * - * **Note:** This method is based on - * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as - * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for - * `undefined` and other non-number values. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`. - * @example - * - * _.isNaN(NaN); - * // => true - * - * _.isNaN(new Number(NaN)); - * // => true - * - * isNaN(undefined); - * // => true - * - * _.isNaN(undefined); - * // => false - */ - function isNaN(value) { - // An `NaN` primitive is the only value that is not equal to itself. - // Perform the `toStringTag` check first to avoid errors with some - // ActiveX objects in IE. - return isNumber(value) && value != +value; - } - - /** - * Checks if `value` is a pristine native function. - * - * **Note:** This method can't reliably detect native functions in the presence - * of the core-js package because core-js circumvents this kind of detection. - * Despite multiple requests, the core-js maintainer has made it clear: any - * attempt to fix the detection will be obstructed. As a result, we're left - * with little choice but to throw an error. Unfortunately, this also affects - * packages, like [babel-polyfill](https://www.npmjs.com/package/babel-polyfill), - * which rely on core-js. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a native function, - * else `false`. - * @example - * - * _.isNative(Array.prototype.push); - * // => true - * - * _.isNative(_); - * // => false - */ - function isNative(value) { - if (isMaskable(value)) { - throw new Error(CORE_ERROR_TEXT); - } - return baseIsNative(value); - } - - /** - * Checks if `value` is `null`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is `null`, else `false`. - * @example - * - * _.isNull(null); - * // => true - * - * _.isNull(void 0); - * // => false - */ - function isNull(value) { - return value === null; - } - - /** - * Checks if `value` is `null` or `undefined`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is nullish, else `false`. - * @example - * - * _.isNil(null); - * // => true - * - * _.isNil(void 0); - * // => true - * - * _.isNil(NaN); - * // => false - */ - function isNil(value) { - return value == null; - } - - /** - * Checks if `value` is classified as a `Number` primitive or object. - * - * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are - * classified as numbers, use the `_.isFinite` method. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a number, else `false`. - * @example - * - * _.isNumber(3); - * // => true - * - * _.isNumber(Number.MIN_VALUE); - * // => true - * - * _.isNumber(Infinity); - * // => true - * - * _.isNumber('3'); - * // => false - */ - function isNumber(value) { - return typeof value == 'number' || isObjectLike(value) && baseGetTag(value) == numberTag; - } - - /** - * Checks if `value` is a plain object, that is, an object created by the - * `Object` constructor or one with a `[[Prototype]]` of `null`. - * - * @static - * @memberOf _ - * @since 0.8.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a plain object, else `false`. - * @example - * - * function Foo() { - * this.a = 1; - * } - * - * _.isPlainObject(new Foo); - * // => false - * - * _.isPlainObject([1, 2, 3]); - * // => false - * - * _.isPlainObject({ 'x': 0, 'y': 0 }); - * // => true - * - * _.isPlainObject(Object.create(null)); - * // => true - */ - function isPlainObject(value) { - if (!isObjectLike(value) || baseGetTag(value) != objectTag) { - return false; - } - var proto = getPrototype(value); - if (proto === null) { - return true; - } - var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor; - return typeof Ctor == 'function' && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString; - } - - /** - * Checks if `value` is classified as a `RegExp` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a regexp, else `false`. - * @example - * - * _.isRegExp(/abc/); - * // => true - * - * _.isRegExp('/abc/'); - * // => false - */ - var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp; - - /** - * Checks if `value` is a safe integer. An integer is safe if it's an IEEE-754 - * double precision number which isn't the result of a rounded unsafe integer. - * - * **Note:** This method is based on - * [`Number.isSafeInteger`](https://mdn.io/Number/isSafeInteger). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a safe integer, else `false`. - * @example - * - * _.isSafeInteger(3); - * // => true - * - * _.isSafeInteger(Number.MIN_VALUE); - * // => false - * - * _.isSafeInteger(Infinity); - * // => false - * - * _.isSafeInteger('3'); - * // => false - */ - function isSafeInteger(value) { - return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER; - } - - /** - * Checks if `value` is classified as a `Set` object. - * - * @static - * @memberOf _ - * @since 4.3.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a set, else `false`. - * @example - * - * _.isSet(new Set); - * // => true - * - * _.isSet(new WeakSet); - * // => false - */ - var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet; - - /** - * Checks if `value` is classified as a `String` primitive or object. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a string, else `false`. - * @example - * - * _.isString('abc'); - * // => true - * - * _.isString(1); - * // => false - */ - function isString(value) { - return typeof value == 'string' || !isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag; - } - - /** - * Checks if `value` is classified as a `Symbol` primitive or object. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. - * @example - * - * _.isSymbol(Symbol.iterator); - * // => true - * - * _.isSymbol('abc'); - * // => false - */ - function isSymbol(value) { - return typeof value == 'symbol' || isObjectLike(value) && baseGetTag(value) == symbolTag; - } - - /** - * Checks if `value` is classified as a typed array. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. - * @example - * - * _.isTypedArray(new Uint8Array); - * // => true - * - * _.isTypedArray([]); - * // => false - */ - var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; - - /** - * Checks if `value` is `undefined`. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`. - * @example - * - * _.isUndefined(void 0); - * // => true - * - * _.isUndefined(null); - * // => false - */ - function isUndefined(value) { - return value === undefined; - } - - /** - * Checks if `value` is classified as a `WeakMap` object. - * - * @static - * @memberOf _ - * @since 4.3.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a weak map, else `false`. - * @example - * - * _.isWeakMap(new WeakMap); - * // => true - * - * _.isWeakMap(new Map); - * // => false - */ - function isWeakMap(value) { - return isObjectLike(value) && getTag(value) == weakMapTag; - } - - /** - * Checks if `value` is classified as a `WeakSet` object. - * - * @static - * @memberOf _ - * @since 4.3.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a weak set, else `false`. - * @example - * - * _.isWeakSet(new WeakSet); - * // => true - * - * _.isWeakSet(new Set); - * // => false - */ - function isWeakSet(value) { - return isObjectLike(value) && baseGetTag(value) == weakSetTag; - } - - /** - * Checks if `value` is less than `other`. - * - * @static - * @memberOf _ - * @since 3.9.0 - * @category Lang - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if `value` is less than `other`, - * else `false`. - * @see _.gt - * @example - * - * _.lt(1, 3); - * // => true - * - * _.lt(3, 3); - * // => false - * - * _.lt(3, 1); - * // => false - */ - var lt = createRelationalOperation(baseLt); - - /** - * Checks if `value` is less than or equal to `other`. - * - * @static - * @memberOf _ - * @since 3.9.0 - * @category Lang - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if `value` is less than or equal to - * `other`, else `false`. - * @see _.gte - * @example - * - * _.lte(1, 3); - * // => true - * - * _.lte(3, 3); - * // => true - * - * _.lte(3, 1); - * // => false - */ - var lte = createRelationalOperation(function (value, other) { - return value <= other; - }); - - /** - * Converts `value` to an array. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Lang - * @param {*} value The value to convert. - * @returns {Array} Returns the converted array. - * @example - * - * _.toArray({ 'a': 1, 'b': 2 }); - * // => [1, 2] - * - * _.toArray('abc'); - * // => ['a', 'b', 'c'] - * - * _.toArray(1); - * // => [] - * - * _.toArray(null); - * // => [] - */ - function toArray(value) { - if (!value) { - return []; - } - if (isArrayLike(value)) { - return isString(value) ? stringToArray(value) : copyArray(value); - } - if (symIterator && value[symIterator]) { - return iteratorToArray(value[symIterator]()); - } - var tag = getTag(value), - func = tag == mapTag ? mapToArray : tag == setTag ? setToArray : values; - return func(value); - } - - /** - * Converts `value` to a finite number. - * - * @static - * @memberOf _ - * @since 4.12.0 - * @category Lang - * @param {*} value The value to convert. - * @returns {number} Returns the converted number. - * @example - * - * _.toFinite(3.2); - * // => 3.2 - * - * _.toFinite(Number.MIN_VALUE); - * // => 5e-324 - * - * _.toFinite(Infinity); - * // => 1.7976931348623157e+308 - * - * _.toFinite('3.2'); - * // => 3.2 - */ - function toFinite(value) { - if (!value) { - return value === 0 ? value : 0; - } - value = toNumber(value); - if (value === INFINITY || value === -INFINITY) { - var sign = value < 0 ? -1 : 1; - return sign * MAX_INTEGER; - } - return value === value ? value : 0; - } - - /** - * Converts `value` to an integer. - * - * **Note:** This method is loosely based on - * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to convert. - * @returns {number} Returns the converted integer. - * @example - * - * _.toInteger(3.2); - * // => 3 - * - * _.toInteger(Number.MIN_VALUE); - * // => 0 - * - * _.toInteger(Infinity); - * // => 1.7976931348623157e+308 - * - * _.toInteger('3.2'); - * // => 3 - */ - function toInteger(value) { - var result = toFinite(value), - remainder = result % 1; - return result === result ? remainder ? result - remainder : result : 0; - } - - /** - * Converts `value` to an integer suitable for use as the length of an - * array-like object. - * - * **Note:** This method is based on - * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to convert. - * @returns {number} Returns the converted integer. - * @example - * - * _.toLength(3.2); - * // => 3 - * - * _.toLength(Number.MIN_VALUE); - * // => 0 - * - * _.toLength(Infinity); - * // => 4294967295 - * - * _.toLength('3.2'); - * // => 3 - */ - function toLength(value) { - return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0; - } - - /** - * Converts `value` to a number. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to process. - * @returns {number} Returns the number. - * @example - * - * _.toNumber(3.2); - * // => 3.2 - * - * _.toNumber(Number.MIN_VALUE); - * // => 5e-324 - * - * _.toNumber(Infinity); - * // => Infinity - * - * _.toNumber('3.2'); - * // => 3.2 - */ - function toNumber(value) { - if (typeof value == 'number') { - return value; - } - if (isSymbol(value)) { - return NAN; - } - if (isObject(value)) { - var other = typeof value.valueOf == 'function' ? value.valueOf() : value; - value = isObject(other) ? other + '' : other; - } - if (typeof value != 'string') { - return value === 0 ? value : +value; - } - value = baseTrim(value); - var isBinary = reIsBinary.test(value); - return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value; - } - - /** - * Converts `value` to a plain object flattening inherited enumerable string - * keyed properties of `value` to own properties of the plain object. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Lang - * @param {*} value The value to convert. - * @returns {Object} Returns the converted plain object. - * @example - * - * function Foo() { - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.assign({ 'a': 1 }, new Foo); - * // => { 'a': 1, 'b': 2 } - * - * _.assign({ 'a': 1 }, _.toPlainObject(new Foo)); - * // => { 'a': 1, 'b': 2, 'c': 3 } - */ - function toPlainObject(value) { - return copyObject(value, keysIn(value)); - } - - /** - * Converts `value` to a safe integer. A safe integer can be compared and - * represented correctly. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to convert. - * @returns {number} Returns the converted integer. - * @example - * - * _.toSafeInteger(3.2); - * // => 3 - * - * _.toSafeInteger(Number.MIN_VALUE); - * // => 0 - * - * _.toSafeInteger(Infinity); - * // => 9007199254740991 - * - * _.toSafeInteger('3.2'); - * // => 3 - */ - function toSafeInteger(value) { - return value ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER) : value === 0 ? value : 0; - } - - /** - * Converts `value` to a string. An empty string is returned for `null` - * and `undefined` values. The sign of `-0` is preserved. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to convert. - * @returns {string} Returns the converted string. - * @example - * - * _.toString(null); - * // => '' - * - * _.toString(-0); - * // => '-0' - * - * _.toString([1, 2, 3]); - * // => '1,2,3' - */ - function toString(value) { - return value == null ? '' : baseToString(value); - } - - /*------------------------------------------------------------------------*/ - - /** - * Assigns own enumerable string keyed properties of source objects to the - * destination object. Source objects are applied from left to right. - * Subsequent sources overwrite property assignments of previous sources. - * - * **Note:** This method mutates `object` and is loosely based on - * [`Object.assign`](https://mdn.io/Object/assign). - * - * @static - * @memberOf _ - * @since 0.10.0 - * @category Object - * @param {Object} object The destination object. - * @param {...Object} [sources] The source objects. - * @returns {Object} Returns `object`. - * @see _.assignIn - * @example - * - * function Foo() { - * this.a = 1; - * } - * - * function Bar() { - * this.c = 3; - * } - * - * Foo.prototype.b = 2; - * Bar.prototype.d = 4; - * - * _.assign({ 'a': 0 }, new Foo, new Bar); - * // => { 'a': 1, 'c': 3 } - */ - var assign = createAssigner(function (object, source) { - if (isPrototype(source) || isArrayLike(source)) { - copyObject(source, keys(source), object); - return; - } - for (var key in source) { - if (hasOwnProperty.call(source, key)) { - assignValue(object, key, source[key]); - } - } - }); - - /** - * This method is like `_.assign` except that it iterates over own and - * inherited source properties. - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @alias extend - * @category Object - * @param {Object} object The destination object. - * @param {...Object} [sources] The source objects. - * @returns {Object} Returns `object`. - * @see _.assign - * @example - * - * function Foo() { - * this.a = 1; - * } - * - * function Bar() { - * this.c = 3; - * } - * - * Foo.prototype.b = 2; - * Bar.prototype.d = 4; - * - * _.assignIn({ 'a': 0 }, new Foo, new Bar); - * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 } - */ - var assignIn = createAssigner(function (object, source) { - copyObject(source, keysIn(source), object); - }); - - /** - * This method is like `_.assignIn` except that it accepts `customizer` - * which is invoked to produce the assigned values. If `customizer` returns - * `undefined`, assignment is handled by the method instead. The `customizer` - * is invoked with five arguments: (objValue, srcValue, key, object, source). - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @alias extendWith - * @category Object - * @param {Object} object The destination object. - * @param {...Object} sources The source objects. - * @param {Function} [customizer] The function to customize assigned values. - * @returns {Object} Returns `object`. - * @see _.assignWith - * @example - * - * function customizer(objValue, srcValue) { - * return _.isUndefined(objValue) ? srcValue : objValue; - * } - * - * var defaults = _.partialRight(_.assignInWith, customizer); - * - * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 }); - * // => { 'a': 1, 'b': 2 } - */ - var assignInWith = createAssigner(function (object, source, srcIndex, customizer) { - copyObject(source, keysIn(source), object, customizer); - }); - - /** - * This method is like `_.assign` except that it accepts `customizer` - * which is invoked to produce the assigned values. If `customizer` returns - * `undefined`, assignment is handled by the method instead. The `customizer` - * is invoked with five arguments: (objValue, srcValue, key, object, source). - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Object - * @param {Object} object The destination object. - * @param {...Object} sources The source objects. - * @param {Function} [customizer] The function to customize assigned values. - * @returns {Object} Returns `object`. - * @see _.assignInWith - * @example - * - * function customizer(objValue, srcValue) { - * return _.isUndefined(objValue) ? srcValue : objValue; - * } - * - * var defaults = _.partialRight(_.assignWith, customizer); - * - * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 }); - * // => { 'a': 1, 'b': 2 } - */ - var assignWith = createAssigner(function (object, source, srcIndex, customizer) { - copyObject(source, keys(source), object, customizer); - }); - - /** - * Creates an array of values corresponding to `paths` of `object`. - * - * @static - * @memberOf _ - * @since 1.0.0 - * @category Object - * @param {Object} object The object to iterate over. - * @param {...(string|string[])} [paths] The property paths to pick. - * @returns {Array} Returns the picked values. - * @example - * - * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] }; - * - * _.at(object, ['a[0].b.c', 'a[1]']); - * // => [3, 4] - */ - var at = flatRest(baseAt); - - /** - * Creates an object that inherits from the `prototype` object. If a - * `properties` object is given, its own enumerable string keyed properties - * are assigned to the created object. - * - * @static - * @memberOf _ - * @since 2.3.0 - * @category Object - * @param {Object} prototype The object to inherit from. - * @param {Object} [properties] The properties to assign to the object. - * @returns {Object} Returns the new object. - * @example - * - * function Shape() { - * this.x = 0; - * this.y = 0; - * } - * - * function Circle() { - * Shape.call(this); - * } - * - * Circle.prototype = _.create(Shape.prototype, { - * 'constructor': Circle - * }); - * - * var circle = new Circle; - * circle instanceof Circle; - * // => true - * - * circle instanceof Shape; - * // => true - */ - function create(prototype, properties) { - var result = baseCreate(prototype); - return properties == null ? result : baseAssign(result, properties); - } - - /** - * Assigns own and inherited enumerable string keyed properties of source - * objects to the destination object for all destination properties that - * resolve to `undefined`. Source objects are applied from left to right. - * Once a property is set, additional values of the same property are ignored. - * - * **Note:** This method mutates `object`. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The destination object. - * @param {...Object} [sources] The source objects. - * @returns {Object} Returns `object`. - * @see _.defaultsDeep - * @example - * - * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 }); - * // => { 'a': 1, 'b': 2 } - */ - var defaults = baseRest(function (object, sources) { - object = Object(object); - var index = -1; - var length = sources.length; - var guard = length > 2 ? sources[2] : undefined; - if (guard && isIterateeCall(sources[0], sources[1], guard)) { - length = 1; - } - while (++index < length) { - var source = sources[index]; - var props = keysIn(source); - var propsIndex = -1; - var propsLength = props.length; - while (++propsIndex < propsLength) { - var key = props[propsIndex]; - var value = object[key]; - if (value === undefined || eq(value, objectProto[key]) && !hasOwnProperty.call(object, key)) { - object[key] = source[key]; - } - } - } - return object; - }); - - /** - * This method is like `_.defaults` except that it recursively assigns - * default properties. - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 3.10.0 - * @category Object - * @param {Object} object The destination object. - * @param {...Object} [sources] The source objects. - * @returns {Object} Returns `object`. - * @see _.defaults - * @example - * - * _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } }); - * // => { 'a': { 'b': 2, 'c': 3 } } - */ - var defaultsDeep = baseRest(function (args) { - args.push(undefined, customDefaultsMerge); - return apply(mergeWith, undefined, args); - }); - - /** - * This method is like `_.find` except that it returns the key of the first - * element `predicate` returns truthy for instead of the element itself. - * - * @static - * @memberOf _ - * @since 1.1.0 - * @category Object - * @param {Object} object The object to inspect. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @returns {string|undefined} Returns the key of the matched element, - * else `undefined`. - * @example - * - * var users = { - * 'barney': { 'age': 36, 'active': true }, - * 'fred': { 'age': 40, 'active': false }, - * 'pebbles': { 'age': 1, 'active': true } - * }; - * - * _.findKey(users, function(o) { return o.age < 40; }); - * // => 'barney' (iteration order is not guaranteed) - * - * // The `_.matches` iteratee shorthand. - * _.findKey(users, { 'age': 1, 'active': true }); - * // => 'pebbles' - * - * // The `_.matchesProperty` iteratee shorthand. - * _.findKey(users, ['active', false]); - * // => 'fred' - * - * // The `_.property` iteratee shorthand. - * _.findKey(users, 'active'); - * // => 'barney' - */ - function findKey(object, predicate) { - return baseFindKey(object, getIteratee(predicate, 3), baseForOwn); - } - - /** - * This method is like `_.findKey` except that it iterates over elements of - * a collection in the opposite order. - * - * @static - * @memberOf _ - * @since 2.0.0 - * @category Object - * @param {Object} object The object to inspect. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @returns {string|undefined} Returns the key of the matched element, - * else `undefined`. - * @example - * - * var users = { - * 'barney': { 'age': 36, 'active': true }, - * 'fred': { 'age': 40, 'active': false }, - * 'pebbles': { 'age': 1, 'active': true } - * }; - * - * _.findLastKey(users, function(o) { return o.age < 40; }); - * // => returns 'pebbles' assuming `_.findKey` returns 'barney' - * - * // The `_.matches` iteratee shorthand. - * _.findLastKey(users, { 'age': 36, 'active': true }); - * // => 'barney' - * - * // The `_.matchesProperty` iteratee shorthand. - * _.findLastKey(users, ['active', false]); - * // => 'fred' - * - * // The `_.property` iteratee shorthand. - * _.findLastKey(users, 'active'); - * // => 'pebbles' - */ - function findLastKey(object, predicate) { - return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight); - } - - /** - * Iterates over own and inherited enumerable string keyed properties of an - * object and invokes `iteratee` for each property. The iteratee is invoked - * with three arguments: (value, key, object). Iteratee functions may exit - * iteration early by explicitly returning `false`. - * - * @static - * @memberOf _ - * @since 0.3.0 - * @category Object - * @param {Object} object The object to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Object} Returns `object`. - * @see _.forInRight - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.forIn(new Foo, function(value, key) { - * console.log(key); - * }); - * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed). - */ - function forIn(object, iteratee) { - return object == null ? object : baseFor(object, getIteratee(iteratee, 3), keysIn); - } - - /** - * This method is like `_.forIn` except that it iterates over properties of - * `object` in the opposite order. - * - * @static - * @memberOf _ - * @since 2.0.0 - * @category Object - * @param {Object} object The object to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Object} Returns `object`. - * @see _.forIn - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.forInRight(new Foo, function(value, key) { - * console.log(key); - * }); - * // => Logs 'c', 'b', then 'a' assuming `_.forIn` logs 'a', 'b', then 'c'. - */ - function forInRight(object, iteratee) { - return object == null ? object : baseForRight(object, getIteratee(iteratee, 3), keysIn); - } - - /** - * Iterates over own enumerable string keyed properties of an object and - * invokes `iteratee` for each property. The iteratee is invoked with three - * arguments: (value, key, object). Iteratee functions may exit iteration - * early by explicitly returning `false`. - * - * @static - * @memberOf _ - * @since 0.3.0 - * @category Object - * @param {Object} object The object to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Object} Returns `object`. - * @see _.forOwnRight - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.forOwn(new Foo, function(value, key) { - * console.log(key); - * }); - * // => Logs 'a' then 'b' (iteration order is not guaranteed). - */ - function forOwn(object, iteratee) { - return object && baseForOwn(object, getIteratee(iteratee, 3)); - } - - /** - * This method is like `_.forOwn` except that it iterates over properties of - * `object` in the opposite order. - * - * @static - * @memberOf _ - * @since 2.0.0 - * @category Object - * @param {Object} object The object to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Object} Returns `object`. - * @see _.forOwn - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.forOwnRight(new Foo, function(value, key) { - * console.log(key); - * }); - * // => Logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'. - */ - function forOwnRight(object, iteratee) { - return object && baseForOwnRight(object, getIteratee(iteratee, 3)); - } - - /** - * Creates an array of function property names from own enumerable properties - * of `object`. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The object to inspect. - * @returns {Array} Returns the function names. - * @see _.functionsIn - * @example - * - * function Foo() { - * this.a = _.constant('a'); - * this.b = _.constant('b'); - * } - * - * Foo.prototype.c = _.constant('c'); - * - * _.functions(new Foo); - * // => ['a', 'b'] - */ - function functions(object) { - return object == null ? [] : baseFunctions(object, keys(object)); - } - - /** - * Creates an array of function property names from own and inherited - * enumerable properties of `object`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Object - * @param {Object} object The object to inspect. - * @returns {Array} Returns the function names. - * @see _.functions - * @example - * - * function Foo() { - * this.a = _.constant('a'); - * this.b = _.constant('b'); - * } - * - * Foo.prototype.c = _.constant('c'); - * - * _.functionsIn(new Foo); - * // => ['a', 'b', 'c'] - */ - function functionsIn(object) { - return object == null ? [] : baseFunctions(object, keysIn(object)); - } - - /** - * Gets the value at `path` of `object`. If the resolved value is - * `undefined`, the `defaultValue` is returned in its place. - * - * @static - * @memberOf _ - * @since 3.7.0 - * @category Object - * @param {Object} object The object to query. - * @param {Array|string} path The path of the property to get. - * @param {*} [defaultValue] The value returned for `undefined` resolved values. - * @returns {*} Returns the resolved value. - * @example - * - * var object = { 'a': [{ 'b': { 'c': 3 } }] }; - * - * _.get(object, 'a[0].b.c'); - * // => 3 - * - * _.get(object, ['a', '0', 'b', 'c']); - * // => 3 - * - * _.get(object, 'a.b.c', 'default'); - * // => 'default' - */ - function get(object, path, defaultValue) { - var result = object == null ? undefined : baseGet(object, path); - return result === undefined ? defaultValue : result; - } - - /** - * Checks if `path` is a direct property of `object`. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @param {Array|string} path The path to check. - * @returns {boolean} Returns `true` if `path` exists, else `false`. - * @example - * - * var object = { 'a': { 'b': 2 } }; - * var other = _.create({ 'a': _.create({ 'b': 2 }) }); - * - * _.has(object, 'a'); - * // => true - * - * _.has(object, 'a.b'); - * // => true - * - * _.has(object, ['a', 'b']); - * // => true - * - * _.has(other, 'a'); - * // => false - */ - function has(object, path) { - return object != null && hasPath(object, path, baseHas); - } - - /** - * Checks if `path` is a direct or inherited property of `object`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Object - * @param {Object} object The object to query. - * @param {Array|string} path The path to check. - * @returns {boolean} Returns `true` if `path` exists, else `false`. - * @example - * - * var object = _.create({ 'a': _.create({ 'b': 2 }) }); - * - * _.hasIn(object, 'a'); - * // => true - * - * _.hasIn(object, 'a.b'); - * // => true - * - * _.hasIn(object, ['a', 'b']); - * // => true - * - * _.hasIn(object, 'b'); - * // => false - */ - function hasIn(object, path) { - return object != null && hasPath(object, path, baseHasIn); - } - - /** - * Creates an object composed of the inverted keys and values of `object`. - * If `object` contains duplicate values, subsequent values overwrite - * property assignments of previous values. - * - * @static - * @memberOf _ - * @since 0.7.0 - * @category Object - * @param {Object} object The object to invert. - * @returns {Object} Returns the new inverted object. - * @example - * - * var object = { 'a': 1, 'b': 2, 'c': 1 }; - * - * _.invert(object); - * // => { '1': 'c', '2': 'b' } - */ - var invert = createInverter(function (result, value, key) { - if (value != null && typeof value.toString != 'function') { - value = nativeObjectToString.call(value); - } - result[value] = key; - }, constant(identity)); - - /** - * This method is like `_.invert` except that the inverted object is generated - * from the results of running each element of `object` thru `iteratee`. The - * corresponding inverted value of each inverted key is an array of keys - * responsible for generating the inverted value. The iteratee is invoked - * with one argument: (value). - * - * @static - * @memberOf _ - * @since 4.1.0 - * @category Object - * @param {Object} object The object to invert. - * @param {Function} [iteratee=_.identity] The iteratee invoked per element. - * @returns {Object} Returns the new inverted object. - * @example - * - * var object = { 'a': 1, 'b': 2, 'c': 1 }; - * - * _.invertBy(object); - * // => { '1': ['a', 'c'], '2': ['b'] } - * - * _.invertBy(object, function(value) { - * return 'group' + value; - * }); - * // => { 'group1': ['a', 'c'], 'group2': ['b'] } - */ - var invertBy = createInverter(function (result, value, key) { - if (value != null && typeof value.toString != 'function') { - value = nativeObjectToString.call(value); - } - if (hasOwnProperty.call(result, value)) { - result[value].push(key); - } else { - result[value] = [key]; - } - }, getIteratee); - - /** - * Invokes the method at `path` of `object`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Object - * @param {Object} object The object to query. - * @param {Array|string} path The path of the method to invoke. - * @param {...*} [args] The arguments to invoke the method with. - * @returns {*} Returns the result of the invoked method. - * @example - * - * var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] }; - * - * _.invoke(object, 'a[0].b.c.slice', 1, 3); - * // => [2, 3] - */ - var invoke = baseRest(baseInvoke); - - /** - * Creates an array of the own enumerable property names of `object`. - * - * **Note:** Non-object values are coerced to objects. See the - * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) - * for more details. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.keys(new Foo); - * // => ['a', 'b'] (iteration order is not guaranteed) - * - * _.keys('hi'); - * // => ['0', '1'] - */ - function keys(object) { - return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); - } - - /** - * Creates an array of the own and inherited enumerable property names of `object`. - * - * **Note:** Non-object values are coerced to objects. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.keysIn(new Foo); - * // => ['a', 'b', 'c'] (iteration order is not guaranteed) - */ - function keysIn(object) { - return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object); - } - - /** - * The opposite of `_.mapValues`; this method creates an object with the - * same values as `object` and keys generated by running each own enumerable - * string keyed property of `object` thru `iteratee`. The iteratee is invoked - * with three arguments: (value, key, object). - * - * @static - * @memberOf _ - * @since 3.8.0 - * @category Object - * @param {Object} object The object to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Object} Returns the new mapped object. - * @see _.mapValues - * @example - * - * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) { - * return key + value; - * }); - * // => { 'a1': 1, 'b2': 2 } - */ - function mapKeys(object, iteratee) { - var result = {}; - iteratee = getIteratee(iteratee, 3); - baseForOwn(object, function (value, key, object) { - baseAssignValue(result, iteratee(value, key, object), value); - }); - return result; - } - - /** - * Creates an object with the same keys as `object` and values generated - * by running each own enumerable string keyed property of `object` thru - * `iteratee`. The iteratee is invoked with three arguments: - * (value, key, object). - * - * @static - * @memberOf _ - * @since 2.4.0 - * @category Object - * @param {Object} object The object to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Object} Returns the new mapped object. - * @see _.mapKeys - * @example - * - * var users = { - * 'fred': { 'user': 'fred', 'age': 40 }, - * 'pebbles': { 'user': 'pebbles', 'age': 1 } - * }; - * - * _.mapValues(users, function(o) { return o.age; }); - * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed) - * - * // The `_.property` iteratee shorthand. - * _.mapValues(users, 'age'); - * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed) - */ - function mapValues(object, iteratee) { - var result = {}; - iteratee = getIteratee(iteratee, 3); - baseForOwn(object, function (value, key, object) { - baseAssignValue(result, key, iteratee(value, key, object)); - }); - return result; - } - - /** - * This method is like `_.assign` except that it recursively merges own and - * inherited enumerable string keyed properties of source objects into the - * destination object. Source properties that resolve to `undefined` are - * skipped if a destination value exists. Array and plain object properties - * are merged recursively. Other objects and value types are overridden by - * assignment. Source objects are applied from left to right. Subsequent - * sources overwrite property assignments of previous sources. - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 0.5.0 - * @category Object - * @param {Object} object The destination object. - * @param {...Object} [sources] The source objects. - * @returns {Object} Returns `object`. - * @example - * - * var object = { - * 'a': [{ 'b': 2 }, { 'd': 4 }] - * }; - * - * var other = { - * 'a': [{ 'c': 3 }, { 'e': 5 }] - * }; - * - * _.merge(object, other); - * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] } - */ - var merge = createAssigner(function (object, source, srcIndex) { - baseMerge(object, source, srcIndex); - }); - - /** - * This method is like `_.merge` except that it accepts `customizer` which - * is invoked to produce the merged values of the destination and source - * properties. If `customizer` returns `undefined`, merging is handled by the - * method instead. The `customizer` is invoked with six arguments: - * (objValue, srcValue, key, object, source, stack). - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Object - * @param {Object} object The destination object. - * @param {...Object} sources The source objects. - * @param {Function} customizer The function to customize assigned values. - * @returns {Object} Returns `object`. - * @example - * - * function customizer(objValue, srcValue) { - * if (_.isArray(objValue)) { - * return objValue.concat(srcValue); - * } - * } - * - * var object = { 'a': [1], 'b': [2] }; - * var other = { 'a': [3], 'b': [4] }; - * - * _.mergeWith(object, other, customizer); - * // => { 'a': [1, 3], 'b': [2, 4] } - */ - var mergeWith = createAssigner(function (object, source, srcIndex, customizer) { - baseMerge(object, source, srcIndex, customizer); - }); - - /** - * The opposite of `_.pick`; this method creates an object composed of the - * own and inherited enumerable property paths of `object` that are not omitted. - * - * **Note:** This method is considerably slower than `_.pick`. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The source object. - * @param {...(string|string[])} [paths] The property paths to omit. - * @returns {Object} Returns the new object. - * @example - * - * var object = { 'a': 1, 'b': '2', 'c': 3 }; - * - * _.omit(object, ['a', 'c']); - * // => { 'b': '2' } - */ - var omit = flatRest(function (object, paths) { - var result = {}; - if (object == null) { - return result; - } - var isDeep = false; - paths = arrayMap(paths, function (path) { - path = castPath(path, object); - isDeep || (isDeep = path.length > 1); - return path; - }); - copyObject(object, getAllKeysIn(object), result); - if (isDeep) { - result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone); - } - var length = paths.length; - while (length--) { - baseUnset(result, paths[length]); - } - return result; - }); - - /** - * The opposite of `_.pickBy`; this method creates an object composed of - * the own and inherited enumerable string keyed properties of `object` that - * `predicate` doesn't return truthy for. The predicate is invoked with two - * arguments: (value, key). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Object - * @param {Object} object The source object. - * @param {Function} [predicate=_.identity] The function invoked per property. - * @returns {Object} Returns the new object. - * @example - * - * var object = { 'a': 1, 'b': '2', 'c': 3 }; - * - * _.omitBy(object, _.isNumber); - * // => { 'b': '2' } - */ - function omitBy(object, predicate) { - return pickBy(object, negate(getIteratee(predicate))); - } - - /** - * Creates an object composed of the picked `object` properties. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The source object. - * @param {...(string|string[])} [paths] The property paths to pick. - * @returns {Object} Returns the new object. - * @example - * - * var object = { 'a': 1, 'b': '2', 'c': 3 }; - * - * _.pick(object, ['a', 'c']); - * // => { 'a': 1, 'c': 3 } - */ - var pick = flatRest(function (object, paths) { - return object == null ? {} : basePick(object, paths); - }); - - /** - * Creates an object composed of the `object` properties `predicate` returns - * truthy for. The predicate is invoked with two arguments: (value, key). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Object - * @param {Object} object The source object. - * @param {Function} [predicate=_.identity] The function invoked per property. - * @returns {Object} Returns the new object. - * @example - * - * var object = { 'a': 1, 'b': '2', 'c': 3 }; - * - * _.pickBy(object, _.isNumber); - * // => { 'a': 1, 'c': 3 } - */ - function pickBy(object, predicate) { - if (object == null) { - return {}; - } - var props = arrayMap(getAllKeysIn(object), function (prop) { - return [prop]; - }); - predicate = getIteratee(predicate); - return basePickBy(object, props, function (value, path) { - return predicate(value, path[0]); - }); - } - - /** - * This method is like `_.get` except that if the resolved value is a - * function it's invoked with the `this` binding of its parent object and - * its result is returned. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @param {Array|string} path The path of the property to resolve. - * @param {*} [defaultValue] The value returned for `undefined` resolved values. - * @returns {*} Returns the resolved value. - * @example - * - * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] }; - * - * _.result(object, 'a[0].b.c1'); - * // => 3 - * - * _.result(object, 'a[0].b.c2'); - * // => 4 - * - * _.result(object, 'a[0].b.c3', 'default'); - * // => 'default' - * - * _.result(object, 'a[0].b.c3', _.constant('default')); - * // => 'default' - */ - function result(object, path, defaultValue) { - path = castPath(path, object); - var index = -1, - length = path.length; - - // Ensure the loop is entered when path is empty. - if (!length) { - length = 1; - object = undefined; - } - while (++index < length) { - var value = object == null ? undefined : object[toKey(path[index])]; - if (value === undefined) { - index = length; - value = defaultValue; - } - object = isFunction(value) ? value.call(object) : value; - } - return object; - } - - /** - * Sets the value at `path` of `object`. If a portion of `path` doesn't exist, - * it's created. Arrays are created for missing index properties while objects - * are created for all other missing properties. Use `_.setWith` to customize - * `path` creation. - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 3.7.0 - * @category Object - * @param {Object} object The object to modify. - * @param {Array|string} path The path of the property to set. - * @param {*} value The value to set. - * @returns {Object} Returns `object`. - * @example - * - * var object = { 'a': [{ 'b': { 'c': 3 } }] }; - * - * _.set(object, 'a[0].b.c', 4); - * console.log(object.a[0].b.c); - * // => 4 - * - * _.set(object, ['x', '0', 'y', 'z'], 5); - * console.log(object.x[0].y.z); - * // => 5 - */ - function set(object, path, value) { - return object == null ? object : baseSet(object, path, value); - } - - /** - * This method is like `_.set` except that it accepts `customizer` which is - * invoked to produce the objects of `path`. If `customizer` returns `undefined` - * path creation is handled by the method instead. The `customizer` is invoked - * with three arguments: (nsValue, key, nsObject). - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Object - * @param {Object} object The object to modify. - * @param {Array|string} path The path of the property to set. - * @param {*} value The value to set. - * @param {Function} [customizer] The function to customize assigned values. - * @returns {Object} Returns `object`. - * @example - * - * var object = {}; - * - * _.setWith(object, '[0][1]', 'a', Object); - * // => { '0': { '1': 'a' } } - */ - function setWith(object, path, value, customizer) { - customizer = typeof customizer == 'function' ? customizer : undefined; - return object == null ? object : baseSet(object, path, value, customizer); - } - - /** - * Creates an array of own enumerable string keyed-value pairs for `object` - * which can be consumed by `_.fromPairs`. If `object` is a map or set, its - * entries are returned. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @alias entries - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the key-value pairs. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.toPairs(new Foo); - * // => [['a', 1], ['b', 2]] (iteration order is not guaranteed) - */ - var toPairs = createToPairs(keys); - - /** - * Creates an array of own and inherited enumerable string keyed-value pairs - * for `object` which can be consumed by `_.fromPairs`. If `object` is a map - * or set, its entries are returned. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @alias entriesIn - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the key-value pairs. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.toPairsIn(new Foo); - * // => [['a', 1], ['b', 2], ['c', 3]] (iteration order is not guaranteed) - */ - var toPairsIn = createToPairs(keysIn); - - /** - * An alternative to `_.reduce`; this method transforms `object` to a new - * `accumulator` object which is the result of running each of its own - * enumerable string keyed properties thru `iteratee`, with each invocation - * potentially mutating the `accumulator` object. If `accumulator` is not - * provided, a new object with the same `[[Prototype]]` will be used. The - * iteratee is invoked with four arguments: (accumulator, value, key, object). - * Iteratee functions may exit iteration early by explicitly returning `false`. - * - * @static - * @memberOf _ - * @since 1.3.0 - * @category Object - * @param {Object} object The object to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @param {*} [accumulator] The custom accumulator value. - * @returns {*} Returns the accumulated value. - * @example - * - * _.transform([2, 3, 4], function(result, n) { - * result.push(n *= n); - * return n % 2 == 0; - * }, []); - * // => [4, 9] - * - * _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) { - * (result[value] || (result[value] = [])).push(key); - * }, {}); - * // => { '1': ['a', 'c'], '2': ['b'] } - */ - function transform(object, iteratee, accumulator) { - var isArr = isArray(object), - isArrLike = isArr || isBuffer(object) || isTypedArray(object); - iteratee = getIteratee(iteratee, 4); - if (accumulator == null) { - var Ctor = object && object.constructor; - if (isArrLike) { - accumulator = isArr ? new Ctor() : []; - } else if (isObject(object)) { - accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {}; - } else { - accumulator = {}; - } - } - (isArrLike ? arrayEach : baseForOwn)(object, function (value, index, object) { - return iteratee(accumulator, value, index, object); - }); - return accumulator; - } - - /** - * Removes the property at `path` of `object`. - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Object - * @param {Object} object The object to modify. - * @param {Array|string} path The path of the property to unset. - * @returns {boolean} Returns `true` if the property is deleted, else `false`. - * @example - * - * var object = { 'a': [{ 'b': { 'c': 7 } }] }; - * _.unset(object, 'a[0].b.c'); - * // => true - * - * console.log(object); - * // => { 'a': [{ 'b': {} }] }; - * - * _.unset(object, ['a', '0', 'b', 'c']); - * // => true - * - * console.log(object); - * // => { 'a': [{ 'b': {} }] }; - */ - function unset(object, path) { - return object == null ? true : baseUnset(object, path); - } - - /** - * This method is like `_.set` except that accepts `updater` to produce the - * value to set. Use `_.updateWith` to customize `path` creation. The `updater` - * is invoked with one argument: (value). - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 4.6.0 - * @category Object - * @param {Object} object The object to modify. - * @param {Array|string} path The path of the property to set. - * @param {Function} updater The function to produce the updated value. - * @returns {Object} Returns `object`. - * @example - * - * var object = { 'a': [{ 'b': { 'c': 3 } }] }; - * - * _.update(object, 'a[0].b.c', function(n) { return n * n; }); - * console.log(object.a[0].b.c); - * // => 9 - * - * _.update(object, 'x[0].y.z', function(n) { return n ? n + 1 : 0; }); - * console.log(object.x[0].y.z); - * // => 0 - */ - function update(object, path, updater) { - return object == null ? object : baseUpdate(object, path, castFunction(updater)); - } - - /** - * This method is like `_.update` except that it accepts `customizer` which is - * invoked to produce the objects of `path`. If `customizer` returns `undefined` - * path creation is handled by the method instead. The `customizer` is invoked - * with three arguments: (nsValue, key, nsObject). - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 4.6.0 - * @category Object - * @param {Object} object The object to modify. - * @param {Array|string} path The path of the property to set. - * @param {Function} updater The function to produce the updated value. - * @param {Function} [customizer] The function to customize assigned values. - * @returns {Object} Returns `object`. - * @example - * - * var object = {}; - * - * _.updateWith(object, '[0][1]', _.constant('a'), Object); - * // => { '0': { '1': 'a' } } - */ - function updateWith(object, path, updater, customizer) { - customizer = typeof customizer == 'function' ? customizer : undefined; - return object == null ? object : baseUpdate(object, path, castFunction(updater), customizer); - } - - /** - * Creates an array of the own enumerable string keyed property values of `object`. - * - * **Note:** Non-object values are coerced to objects. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property values. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.values(new Foo); - * // => [1, 2] (iteration order is not guaranteed) - * - * _.values('hi'); - * // => ['h', 'i'] - */ - function values(object) { - return object == null ? [] : baseValues(object, keys(object)); - } - - /** - * Creates an array of the own and inherited enumerable string keyed property - * values of `object`. - * - * **Note:** Non-object values are coerced to objects. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property values. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.valuesIn(new Foo); - * // => [1, 2, 3] (iteration order is not guaranteed) - */ - function valuesIn(object) { - return object == null ? [] : baseValues(object, keysIn(object)); - } - - /*------------------------------------------------------------------------*/ - - /** - * Clamps `number` within the inclusive `lower` and `upper` bounds. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Number - * @param {number} number The number to clamp. - * @param {number} [lower] The lower bound. - * @param {number} upper The upper bound. - * @returns {number} Returns the clamped number. - * @example - * - * _.clamp(-10, -5, 5); - * // => -5 - * - * _.clamp(10, -5, 5); - * // => 5 - */ - function clamp(number, lower, upper) { - if (upper === undefined) { - upper = lower; - lower = undefined; - } - if (upper !== undefined) { - upper = toNumber(upper); - upper = upper === upper ? upper : 0; - } - if (lower !== undefined) { - lower = toNumber(lower); - lower = lower === lower ? lower : 0; - } - return baseClamp(toNumber(number), lower, upper); - } - - /** - * Checks if `n` is between `start` and up to, but not including, `end`. If - * `end` is not specified, it's set to `start` with `start` then set to `0`. - * If `start` is greater than `end` the params are swapped to support - * negative ranges. - * - * @static - * @memberOf _ - * @since 3.3.0 - * @category Number - * @param {number} number The number to check. - * @param {number} [start=0] The start of the range. - * @param {number} end The end of the range. - * @returns {boolean} Returns `true` if `number` is in the range, else `false`. - * @see _.range, _.rangeRight - * @example - * - * _.inRange(3, 2, 4); - * // => true - * - * _.inRange(4, 8); - * // => true - * - * _.inRange(4, 2); - * // => false - * - * _.inRange(2, 2); - * // => false - * - * _.inRange(1.2, 2); - * // => true - * - * _.inRange(5.2, 4); - * // => false - * - * _.inRange(-3, -2, -6); - * // => true - */ - function inRange(number, start, end) { - start = toFinite(start); - if (end === undefined) { - end = start; - start = 0; - } else { - end = toFinite(end); - } - number = toNumber(number); - return baseInRange(number, start, end); - } - - /** - * Produces a random number between the inclusive `lower` and `upper` bounds. - * If only one argument is provided a number between `0` and the given number - * is returned. If `floating` is `true`, or either `lower` or `upper` are - * floats, a floating-point number is returned instead of an integer. - * - * **Note:** JavaScript follows the IEEE-754 standard for resolving - * floating-point values which can produce unexpected results. - * - * @static - * @memberOf _ - * @since 0.7.0 - * @category Number - * @param {number} [lower=0] The lower bound. - * @param {number} [upper=1] The upper bound. - * @param {boolean} [floating] Specify returning a floating-point number. - * @returns {number} Returns the random number. - * @example - * - * _.random(0, 5); - * // => an integer between 0 and 5 - * - * _.random(5); - * // => also an integer between 0 and 5 - * - * _.random(5, true); - * // => a floating-point number between 0 and 5 - * - * _.random(1.2, 5.2); - * // => a floating-point number between 1.2 and 5.2 - */ - function random(lower, upper, floating) { - if (floating && typeof floating != 'boolean' && isIterateeCall(lower, upper, floating)) { - upper = floating = undefined; - } - if (floating === undefined) { - if (typeof upper == 'boolean') { - floating = upper; - upper = undefined; - } else if (typeof lower == 'boolean') { - floating = lower; - lower = undefined; - } - } - if (lower === undefined && upper === undefined) { - lower = 0; - upper = 1; - } else { - lower = toFinite(lower); - if (upper === undefined) { - upper = lower; - lower = 0; - } else { - upper = toFinite(upper); - } - } - if (lower > upper) { - var temp = lower; - lower = upper; - upper = temp; - } - if (floating || lower % 1 || upper % 1) { - var rand = nativeRandom(); - return nativeMin(lower + rand * (upper - lower + freeParseFloat('1e-' + ((rand + '').length - 1))), upper); - } - return baseRandom(lower, upper); - } - - /*------------------------------------------------------------------------*/ - - /** - * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase). - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category String - * @param {string} [string=''] The string to convert. - * @returns {string} Returns the camel cased string. - * @example - * - * _.camelCase('Foo Bar'); - * // => 'fooBar' - * - * _.camelCase('--foo-bar--'); - * // => 'fooBar' - * - * _.camelCase('__FOO_BAR__'); - * // => 'fooBar' - */ - var camelCase = createCompounder(function (result, word, index) { - word = word.toLowerCase(); - return result + (index ? capitalize(word) : word); - }); - - /** - * Converts the first character of `string` to upper case and the remaining - * to lower case. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category String - * @param {string} [string=''] The string to capitalize. - * @returns {string} Returns the capitalized string. - * @example - * - * _.capitalize('FRED'); - * // => 'Fred' - */ - function capitalize(string) { - return upperFirst(toString(string).toLowerCase()); - } - - /** - * Deburrs `string` by converting - * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table) - * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A) - * letters to basic Latin letters and removing - * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks). - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category String - * @param {string} [string=''] The string to deburr. - * @returns {string} Returns the deburred string. - * @example - * - * _.deburr('déjà vu'); - * // => 'deja vu' - */ - function deburr(string) { - string = toString(string); - return string && string.replace(reLatin, deburrLetter).replace(reComboMark, ''); - } - - /** - * Checks if `string` ends with the given target string. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category String - * @param {string} [string=''] The string to inspect. - * @param {string} [target] The string to search for. - * @param {number} [position=string.length] The position to search up to. - * @returns {boolean} Returns `true` if `string` ends with `target`, - * else `false`. - * @example - * - * _.endsWith('abc', 'c'); - * // => true - * - * _.endsWith('abc', 'b'); - * // => false - * - * _.endsWith('abc', 'b', 2); - * // => true - */ - function endsWith(string, target, position) { - string = toString(string); - target = baseToString(target); - var length = string.length; - position = position === undefined ? length : baseClamp(toInteger(position), 0, length); - var end = position; - position -= target.length; - return position >= 0 && string.slice(position, end) == target; - } - - /** - * Converts the characters "&", "<", ">", '"', and "'" in `string` to their - * corresponding HTML entities. - * - * **Note:** No other characters are escaped. To escape additional - * characters use a third-party library like [_he_](https://mths.be/he). - * - * Though the ">" character is escaped for symmetry, characters like - * ">" and "/" don't need escaping in HTML and have no special meaning - * unless they're part of a tag or unquoted attribute value. See - * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands) - * (under "semi-related fun fact") for more details. - * - * When working with HTML you should always - * [quote attribute values](http://wonko.com/post/html-escaping) to reduce - * XSS vectors. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category String - * @param {string} [string=''] The string to escape. - * @returns {string} Returns the escaped string. - * @example - * - * _.escape('fred, barney, & pebbles'); - * // => 'fred, barney, & pebbles' - */ - function escape(string) { - string = toString(string); - return string && reHasUnescapedHtml.test(string) ? string.replace(reUnescapedHtml, escapeHtmlChar) : string; - } - - /** - * Escapes the `RegExp` special characters "^", "$", "\", ".", "*", "+", - * "?", "(", ")", "[", "]", "{", "}", and "|" in `string`. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category String - * @param {string} [string=''] The string to escape. - * @returns {string} Returns the escaped string. - * @example - * - * _.escapeRegExp('[lodash](https://lodash.com/)'); - * // => '\[lodash\]\(https://lodash\.com/\)' - */ - function escapeRegExp(string) { - string = toString(string); - return string && reHasRegExpChar.test(string) ? string.replace(reRegExpChar, '\\$&') : string; - } - - /** - * Converts `string` to - * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles). - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category String - * @param {string} [string=''] The string to convert. - * @returns {string} Returns the kebab cased string. - * @example - * - * _.kebabCase('Foo Bar'); - * // => 'foo-bar' - * - * _.kebabCase('fooBar'); - * // => 'foo-bar' - * - * _.kebabCase('__FOO_BAR__'); - * // => 'foo-bar' - */ - var kebabCase = createCompounder(function (result, word, index) { - return result + (index ? '-' : '') + word.toLowerCase(); - }); - - /** - * Converts `string`, as space separated words, to lower case. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category String - * @param {string} [string=''] The string to convert. - * @returns {string} Returns the lower cased string. - * @example - * - * _.lowerCase('--Foo-Bar--'); - * // => 'foo bar' - * - * _.lowerCase('fooBar'); - * // => 'foo bar' - * - * _.lowerCase('__FOO_BAR__'); - * // => 'foo bar' - */ - var lowerCase = createCompounder(function (result, word, index) { - return result + (index ? ' ' : '') + word.toLowerCase(); - }); - - /** - * Converts the first character of `string` to lower case. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category String - * @param {string} [string=''] The string to convert. - * @returns {string} Returns the converted string. - * @example - * - * _.lowerFirst('Fred'); - * // => 'fred' - * - * _.lowerFirst('FRED'); - * // => 'fRED' - */ - var lowerFirst = createCaseFirst('toLowerCase'); - - /** - * Pads `string` on the left and right sides if it's shorter than `length`. - * Padding characters are truncated if they can't be evenly divided by `length`. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category String - * @param {string} [string=''] The string to pad. - * @param {number} [length=0] The padding length. - * @param {string} [chars=' '] The string used as padding. - * @returns {string} Returns the padded string. - * @example - * - * _.pad('abc', 8); - * // => ' abc ' - * - * _.pad('abc', 8, '_-'); - * // => '_-abc_-_' - * - * _.pad('abc', 3); - * // => 'abc' - */ - function pad(string, length, chars) { - string = toString(string); - length = toInteger(length); - var strLength = length ? stringSize(string) : 0; - if (!length || strLength >= length) { - return string; - } - var mid = (length - strLength) / 2; - return createPadding(nativeFloor(mid), chars) + string + createPadding(nativeCeil(mid), chars); - } - - /** - * Pads `string` on the right side if it's shorter than `length`. Padding - * characters are truncated if they exceed `length`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category String - * @param {string} [string=''] The string to pad. - * @param {number} [length=0] The padding length. - * @param {string} [chars=' '] The string used as padding. - * @returns {string} Returns the padded string. - * @example - * - * _.padEnd('abc', 6); - * // => 'abc ' - * - * _.padEnd('abc', 6, '_-'); - * // => 'abc_-_' - * - * _.padEnd('abc', 3); - * // => 'abc' - */ - function padEnd(string, length, chars) { - string = toString(string); - length = toInteger(length); - var strLength = length ? stringSize(string) : 0; - return length && strLength < length ? string + createPadding(length - strLength, chars) : string; - } - - /** - * Pads `string` on the left side if it's shorter than `length`. Padding - * characters are truncated if they exceed `length`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category String - * @param {string} [string=''] The string to pad. - * @param {number} [length=0] The padding length. - * @param {string} [chars=' '] The string used as padding. - * @returns {string} Returns the padded string. - * @example - * - * _.padStart('abc', 6); - * // => ' abc' - * - * _.padStart('abc', 6, '_-'); - * // => '_-_abc' - * - * _.padStart('abc', 3); - * // => 'abc' - */ - function padStart(string, length, chars) { - string = toString(string); - length = toInteger(length); - var strLength = length ? stringSize(string) : 0; - return length && strLength < length ? createPadding(length - strLength, chars) + string : string; - } - - /** - * Converts `string` to an integer of the specified radix. If `radix` is - * `undefined` or `0`, a `radix` of `10` is used unless `value` is a - * hexadecimal, in which case a `radix` of `16` is used. - * - * **Note:** This method aligns with the - * [ES5 implementation](https://es5.github.io/#x15.1.2.2) of `parseInt`. - * - * @static - * @memberOf _ - * @since 1.1.0 - * @category String - * @param {string} string The string to convert. - * @param {number} [radix=10] The radix to interpret `value` by. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {number} Returns the converted integer. - * @example - * - * _.parseInt('08'); - * // => 8 - * - * _.map(['6', '08', '10'], _.parseInt); - * // => [6, 8, 10] - */ - function parseInt(string, radix, guard) { - if (guard || radix == null) { - radix = 0; - } else if (radix) { - radix = +radix; - } - return nativeParseInt(toString(string).replace(reTrimStart, ''), radix || 0); - } - - /** - * Repeats the given string `n` times. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category String - * @param {string} [string=''] The string to repeat. - * @param {number} [n=1] The number of times to repeat the string. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {string} Returns the repeated string. - * @example - * - * _.repeat('*', 3); - * // => '***' - * - * _.repeat('abc', 2); - * // => 'abcabc' - * - * _.repeat('abc', 0); - * // => '' - */ - function repeat(string, n, guard) { - if (guard ? isIterateeCall(string, n, guard) : n === undefined) { - n = 1; - } else { - n = toInteger(n); - } - return baseRepeat(toString(string), n); - } - - /** - * Replaces matches for `pattern` in `string` with `replacement`. - * - * **Note:** This method is based on - * [`String#replace`](https://mdn.io/String/replace). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category String - * @param {string} [string=''] The string to modify. - * @param {RegExp|string} pattern The pattern to replace. - * @param {Function|string} replacement The match replacement. - * @returns {string} Returns the modified string. - * @example - * - * _.replace('Hi Fred', 'Fred', 'Barney'); - * // => 'Hi Barney' - */ - function replace() { - var args = arguments, - string = toString(args[0]); - return args.length < 3 ? string : string.replace(args[1], args[2]); - } - - /** - * Converts `string` to - * [snake case](https://en.wikipedia.org/wiki/Snake_case). - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category String - * @param {string} [string=''] The string to convert. - * @returns {string} Returns the snake cased string. - * @example - * - * _.snakeCase('Foo Bar'); - * // => 'foo_bar' - * - * _.snakeCase('fooBar'); - * // => 'foo_bar' - * - * _.snakeCase('--FOO-BAR--'); - * // => 'foo_bar' - */ - var snakeCase = createCompounder(function (result, word, index) { - return result + (index ? '_' : '') + word.toLowerCase(); - }); - - /** - * Splits `string` by `separator`. - * - * **Note:** This method is based on - * [`String#split`](https://mdn.io/String/split). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category String - * @param {string} [string=''] The string to split. - * @param {RegExp|string} separator The separator pattern to split by. - * @param {number} [limit] The length to truncate results to. - * @returns {Array} Returns the string segments. - * @example - * - * _.split('a-b-c', '-', 2); - * // => ['a', 'b'] - */ - function split(string, separator, limit) { - if (limit && typeof limit != 'number' && isIterateeCall(string, separator, limit)) { - separator = limit = undefined; - } - limit = limit === undefined ? MAX_ARRAY_LENGTH : limit >>> 0; - if (!limit) { - return []; - } - string = toString(string); - if (string && (typeof separator == 'string' || separator != null && !isRegExp(separator))) { - separator = baseToString(separator); - if (!separator && hasUnicode(string)) { - return castSlice(stringToArray(string), 0, limit); - } - } - return string.split(separator, limit); - } - - /** - * Converts `string` to - * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage). - * - * @static - * @memberOf _ - * @since 3.1.0 - * @category String - * @param {string} [string=''] The string to convert. - * @returns {string} Returns the start cased string. - * @example - * - * _.startCase('--foo-bar--'); - * // => 'Foo Bar' - * - * _.startCase('fooBar'); - * // => 'Foo Bar' - * - * _.startCase('__FOO_BAR__'); - * // => 'FOO BAR' - */ - var startCase = createCompounder(function (result, word, index) { - return result + (index ? ' ' : '') + upperFirst(word); - }); - - /** - * Checks if `string` starts with the given target string. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category String - * @param {string} [string=''] The string to inspect. - * @param {string} [target] The string to search for. - * @param {number} [position=0] The position to search from. - * @returns {boolean} Returns `true` if `string` starts with `target`, - * else `false`. - * @example - * - * _.startsWith('abc', 'a'); - * // => true - * - * _.startsWith('abc', 'b'); - * // => false - * - * _.startsWith('abc', 'b', 1); - * // => true - */ - function startsWith(string, target, position) { - string = toString(string); - position = position == null ? 0 : baseClamp(toInteger(position), 0, string.length); - target = baseToString(target); - return string.slice(position, position + target.length) == target; - } - - /** - * Creates a compiled template function that can interpolate data properties - * in "interpolate" delimiters, HTML-escape interpolated data properties in - * "escape" delimiters, and execute JavaScript in "evaluate" delimiters. Data - * properties may be accessed as free variables in the template. If a setting - * object is given, it takes precedence over `_.templateSettings` values. - * - * **Note:** In the development build `_.template` utilizes - * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl) - * for easier debugging. - * - * For more information on precompiling templates see - * [lodash's custom builds documentation](https://lodash.com/custom-builds). - * - * For more information on Chrome extension sandboxes see - * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval). - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category String - * @param {string} [string=''] The template string. - * @param {Object} [options={}] The options object. - * @param {RegExp} [options.escape=_.templateSettings.escape] - * The HTML "escape" delimiter. - * @param {RegExp} [options.evaluate=_.templateSettings.evaluate] - * The "evaluate" delimiter. - * @param {Object} [options.imports=_.templateSettings.imports] - * An object to import into the template as free variables. - * @param {RegExp} [options.interpolate=_.templateSettings.interpolate] - * The "interpolate" delimiter. - * @param {string} [options.sourceURL='lodash.templateSources[n]'] - * The sourceURL of the compiled template. - * @param {string} [options.variable='obj'] - * The data object variable name. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {Function} Returns the compiled template function. - * @example - * - * // Use the "interpolate" delimiter to create a compiled template. - * var compiled = _.template('hello <%= user %>!'); - * compiled({ 'user': 'fred' }); - * // => 'hello fred!' - * - * // Use the HTML "escape" delimiter to escape data property values. - * var compiled = _.template('<%- value %>'); - * compiled({ 'value': '