{"version":3,"sources":["./$_lazy_route_resource lazy namespace object","./node_modules/moment/locale sync ^\\.\\/.*$","./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/confirmation-dialog/confirmation-dialog.component.ts","./src/app/confirmation-dialog/confirmation-dialog.component.html","./src/app/core/angularEditorConfiguratioan.ts","./src/app/core/color-codes.ts","./src/app/core/service-paths.ts","./src/app/core/services/OAuthHelper.service.ts","./src/app/core/services/auth.service.ts","./src/app/core/services/common.service.ts","./src/app/core/services/file-exporter.service.ts","./src/app/core/services/masterdata.service.ts","./src/app/core/services/menu.service.ts","./src/app/core/services/page-title.service.ts","./src/app/core/services/themechanger.service.ts","./src/app/drop-down-suggestion.directive.ts","./src/app/empty-spaces-validations.directive.ts","./src/app/grades-validations.directive.ts","./src/app/modules/AssociateExit/Components/abscond-dashboard/abscond-dashboard.component.ts","./src/app/modules/AssociateExit/Components/abscond-dashboard/abscond-dashboard.component.html","./src/app/modules/AssociateExit/Components/abscond-details/abscond-details.component.ts","./src/app/modules/AssociateExit/Components/abscond-details/abscond-details.component.html","./src/app/modules/AssociateExit/Components/abscond/abscond.component.ts","./src/app/modules/AssociateExit/Components/abscond/abscond.component.html","./src/app/modules/AssociateExit/Components/activitylist/activitylist.component.ts","./src/app/modules/AssociateExit/Components/activitylist/activitylist.component.html","./src/app/modules/AssociateExit/Components/associate-abscond-form/associate-abscond-form.component.ts","./src/app/modules/AssociateExit/Components/associate-abscond-form/associate-abscond-form.component.html","./src/app/modules/AssociateExit/Components/associate-exit-analysis/associate-exit-analysis.component.ts","./src/app/modules/AssociateExit/Components/associate-exit-analysis/associate-exit-analysis.component.html","./src/app/modules/AssociateExit/Components/associate-exit-by-hr/associate-exit-by-hr.component.ts","./src/app/modules/AssociateExit/Components/associate-exit-by-hr/associate-exit-by-hr.component.html","./src/app/modules/AssociateExit/Components/associate-exit-cause-form/associate-exit-cause-form.component.ts","./src/app/modules/AssociateExit/Components/associate-exit-cause-form/associate-exit-cause-form.component.html","./src/app/modules/AssociateExit/Components/associate-exit-feedback-form/associate-exit-feedback-form.component.ts","./src/app/modules/AssociateExit/Components/associate-exit-feedback-form/associate-exit-feedback-form.component.html","./src/app/modules/AssociateExit/Components/associate-exit-feedback-modal/associate-exit-feedback-modal.component.ts","./src/app/modules/AssociateExit/Components/associate-exit-feedback-modal/associate-exit-feedback-modal.component.html","./src/app/modules/AssociateExit/Components/associate-exit-feedback/associate-exit-feedback.component.ts","./src/app/modules/AssociateExit/Components/associate-exit-feedback/associate-exit-feedback.component.html","./src/app/modules/AssociateExit/Components/associate-exit-information/associate-exit-information.component.ts","./src/app/modules/AssociateExit/Components/associate-exit-information/associate-exit-information.component.html","./src/app/modules/AssociateExit/Components/associate-exit/associate-exit.component.ts","./src/app/modules/AssociateExit/Components/associate-exit/associate-exit.component.html","./src/app/modules/AssociateExit/Components/associate-longleave/associate-longleave.component.ts","./src/app/modules/AssociateExit/Components/associate-longleave/associate-longleave.component.html","./src/app/modules/AssociateExit/Components/associate-projects/associate-projects.component.ts","./src/app/modules/AssociateExit/Components/associate-projects/associate-projects.component.html","./src/app/modules/AssociateExit/Components/associate-resignation/associate-resignation.component.ts","./src/app/modules/AssociateExit/Components/associate-resignation/associate-resignation.component.html","./src/app/modules/AssociateExit/Components/associate-termination-form/associate-termination-form.component.ts","./src/app/modules/AssociateExit/Components/associate-termination-form/associate-termination-form.component.html","./src/app/modules/AssociateExit/Components/clearenceform/clearenceform.component.ts","./src/app/modules/AssociateExit/Components/clearenceform/clearenceform.component.html","./src/app/modules/AssociateExit/Components/departments-checklist/departments-checklist.component.ts","./src/app/modules/AssociateExit/Components/departments-checklist/departments-checklist.component.html","./src/app/modules/AssociateExit/Components/ktplan-dashboard/ktplan-dashboard.component.ts","./src/app/modules/AssociateExit/Components/ktplan-dashboard/ktplan-dashboard.component.html","./src/app/modules/AssociateExit/Components/pm-approval/pm-approval.component.ts","./src/app/modules/AssociateExit/Components/pm-approval/pm-approval.component.html","./src/app/modules/AssociateExit/Components/pm-submission/pm-submission.component.ts","./src/app/modules/AssociateExit/Components/pm-submission/pm-submission.component.html","./src/app/modules/AssociateExit/Components/resignation/resignation.component.ts","./src/app/modules/AssociateExit/Components/resignation/resignation.component.html","./src/app/modules/AssociateExit/Components/revoke-dialog/revoke-dialog.component.ts","./src/app/modules/AssociateExit/Components/revoke-dialog/revoke-dialog.component.html","./src/app/modules/AssociateExit/Components/view-abscond-detailed-status/view-abscond-detailed-status.component.ts","./src/app/modules/AssociateExit/Components/view-abscond-detailed-status/view-abscond-detailed-status.component.html","./src/app/modules/AssociateExit/Components/view-analysis-form/view-analysis-form.component.ts","./src/app/modules/AssociateExit/Components/view-analysis-form/view-analysis-form.component.html","./src/app/modules/AssociateExit/Components/view-associate-exit-details/view-associate-exit-details.component.ts","./src/app/modules/AssociateExit/Components/view-associate-exit-details/view-associate-exit-details.component.html","./src/app/modules/AssociateExit/Models/abscond.model.ts","./src/app/modules/AssociateExit/Models/analysis.model.ts","./src/app/modules/AssociateExit/Models/associate-longleave.model.ts","./src/app/modules/AssociateExit/Models/associate-resignation.model.ts","./src/app/modules/AssociateExit/Models/associateExit.model.ts","./src/app/modules/AssociateExit/Models/causeanalysis.model.ts","./src/app/modules/AssociateExit/Services/abscond.service.ts","./src/app/modules/AssociateExit/Services/associate-longleave.service.ts","./src/app/modules/AssociateExit/Services/associate-resignation.service.ts","./src/app/modules/AssociateExit/Services/checklist.service.ts","./src/app/modules/AssociateExit/Services/exit-analysis.service.ts","./src/app/modules/AssociateExit/Services/exportUtil.ts","./src/app/modules/AssociateExit/Services/pm-approval.service.ts","./src/app/modules/AssociateExit/Services/resignastion.service.ts","./src/app/modules/AssociateExit/associateexit-routing.module.ts","./src/app/modules/AssociateExit/associateexit.module.ts","./src/app/modules/TalentMangment/Components/allocation-changes/allocation-changes.component.ts","./src/app/modules/TalentMangment/Components/allocation-changes/allocation-changes.component.html","./src/app/modules/TalentMangment/Components/associate-release/associate-release.component.ts","./src/app/modules/TalentMangment/Components/associate-release/associate-release.component.html","./src/app/modules/TalentMangment/Components/associateallocation/associateallocation.component.ts","./src/app/modules/TalentMangment/Components/associateallocation/associateallocation.component.html","./src/app/modules/TalentMangment/Components/dialog-cbr/dialog-cbr.component.ts","./src/app/modules/TalentMangment/Components/dialog-cbr/dialog-cbr.component.html","./src/app/modules/TalentMangment/Components/future-allocations-grid/future-allocations-grid.component.ts","./src/app/modules/TalentMangment/Components/future-allocations-grid/future-allocations-grid.component.html","./src/app/modules/TalentMangment/Components/future-allocations/future-allocations.component.ts","./src/app/modules/TalentMangment/Components/future-allocations/future-allocations.component.html","./src/app/modules/TalentMangment/Components/home/home.component.ts","./src/app/modules/TalentMangment/Components/home/home.component.html","./src/app/modules/TalentMangment/models/resourcerelease.model.ts","./src/app/modules/TalentMangment/services/allocation-changes.service.ts","./src/app/modules/TalentMangment/services/associate-allocation.service.ts","./src/app/modules/TalentMangment/services/resource-release.service.ts","./src/app/modules/TalentMangment/services/temporary-allocation-release.service.ts","./src/app/modules/TalentMangment/talentmanagment.module.ts","./src/app/modules/TalentMangment/talentmangment.routing.ts","./src/app/modules/admin/admin-routing.module.ts","./src/app/modules/admin/admin.module.ts","./src/app/modules/admin/components/admin/admin.component.ts","./src/app/modules/admin/components/admin/admin.component.html","./src/app/modules/admin/components/assign-menus/assign-menus.component.ts","./src/app/modules/admin/components/assign-menus/assign-menus.component.html","./src/app/modules/admin/components/assign-user-roles/assign-user-roles.component.ts","./src/app/modules/admin/components/assign-user-roles/assign-user-roles.component.html","./src/app/modules/admin/components/category/category.component.ts","./src/app/modules/admin/components/category/category.component.html","./src/app/modules/admin/components/client-billing-roles/client-billing-roles.component.ts","./src/app/modules/admin/components/client-billing-roles/client-billing-roles.component.html","./src/app/modules/admin/components/clients/clients.component.ts","./src/app/modules/admin/components/clients/clients.component.html","./src/app/modules/admin/components/competency-area/competency-area.component.ts","./src/app/modules/admin/components/competency-area/competency-area.component.html","./src/app/modules/admin/components/department-type/department-type.component.ts","./src/app/modules/admin/components/department-type/department-type.component.html","./src/app/modules/admin/components/departments/departments.component.ts","./src/app/modules/admin/components/departments/departments.component.html","./src/app/modules/admin/components/designations/designations.component.ts","./src/app/modules/admin/components/designations/designations.component.html","./src/app/modules/admin/components/domain/domain.component.ts","./src/app/modules/admin/components/domain/domain.component.html","./src/app/modules/admin/components/grades/grades.component.ts","./src/app/modules/admin/components/grades/grades.component.html","./src/app/modules/admin/components/internal-billing-roles/internal-billing-roles.component.ts","./src/app/modules/admin/components/internal-billing-roles/internal-billing-roles.component.html","./src/app/modules/admin/components/key-function/key-function.component.ts","./src/app/modules/admin/components/key-function/key-function.component.html","./src/app/modules/admin/components/map-associate-id/map-associate-id.component.ts","./src/app/modules/admin/components/map-associate-id/map-associate-id.component.html","./src/app/modules/admin/components/notification-configuration/notification-configuration.component.ts","./src/app/modules/admin/components/notification-configuration/notification-configuration.component.html","./src/app/modules/admin/components/notification-types/notification-types.component.ts","./src/app/modules/admin/components/notification-types/notification-types.component.html","./src/app/modules/admin/components/practice-area/practice-area.component.ts","./src/app/modules/admin/components/practice-area/practice-area.component.html","./src/app/modules/admin/components/proficiency-level/proficiency-level.component.ts","./src/app/modules/admin/components/proficiency-level/proficiency-level.component.html","./src/app/modules/admin/components/project-type/project-type.component.ts","./src/app/modules/admin/components/project-type/project-type.component.html","./src/app/modules/admin/components/role-type/role-type.component.ts","./src/app/modules/admin/components/role-type/role-type.component.html","./src/app/modules/admin/components/roles-table/roles-table.component.ts","./src/app/modules/admin/components/roles-table/roles-table.component.html","./src/app/modules/admin/components/roles/roles.component.ts","./src/app/modules/admin/components/roles/roles.component.html","./src/app/modules/admin/components/seniority/seniority.component.ts","./src/app/modules/admin/components/seniority/seniority.component.html","./src/app/modules/admin/components/service-type/service-type.component.ts","./src/app/modules/admin/components/service-type/service-type.component.html","./src/app/modules/admin/components/skill-group/skill-group.component.ts","./src/app/modules/admin/components/skill-group/skill-group.component.html","./src/app/modules/admin/components/skills/skills.component.ts","./src/app/modules/admin/components/skills/skills.component.html","./src/app/modules/admin/components/speciality/speciality.component.ts","./src/app/modules/admin/components/speciality/speciality.component.html","./src/app/modules/admin/components/update-employee-status/update-employee-status.component.ts","./src/app/modules/admin/components/update-employee-status/update-employee-status.component.html","./src/app/modules/admin/components/workstation/workstation.component.ts","./src/app/modules/admin/components/workstation/workstation.component.html","./src/app/modules/admin/models/client.model.ts","./src/app/modules/admin/models/competencyarea.model.ts","./src/app/modules/admin/models/department.model.ts","./src/app/modules/admin/models/designation.model.ts","./src/app/modules/admin/models/domainmasterdata.model.ts","./src/app/modules/admin/models/employee.model.ts","./src/app/modules/admin/models/grade.model.ts","./src/app/modules/admin/models/key-function.model.ts","./src/app/modules/admin/models/menu-roles.model.ts","./src/app/modules/admin/models/notificationconfiguration.model.ts","./src/app/modules/admin/models/practicearea.model.ts","./src/app/modules/admin/models/proficiency.model.ts","./src/app/modules/admin/models/proficiencyLevel.model.ts","./src/app/modules/admin/models/projecttype.model.ts","./src/app/modules/admin/models/role-data.model.ts","./src/app/modules/admin/models/seniority.model.ts","./src/app/modules/admin/models/servicetype.model.ts","./src/app/modules/admin/models/skill-data.model.ts","./src/app/modules/admin/models/skill-group-data.model.ts","./src/app/modules/admin/models/speciality.model.ts","./src/app/modules/admin/models/userRoles.ts","./src/app/modules/admin/services/assign-user-roles.service.ts","./src/app/modules/admin/services/assignmenustorole.service.ts","./src/app/modules/admin/services/client.service.ts","./src/app/modules/admin/services/competency-area.service.ts","./src/app/modules/admin/services/department.service.ts","./src/app/modules/admin/services/designations.service.ts","./src/app/modules/admin/services/domainmaster.service.ts","./src/app/modules/admin/services/employeestatus.service.ts","./src/app/modules/admin/services/grades.service.ts","./src/app/modules/admin/services/key-function.service.ts","./src/app/modules/admin/services/notificationconfiguration.service.ts","./src/app/modules/admin/services/notificationtype.service.ts","./src/app/modules/admin/services/practice-area.service.ts","./src/app/modules/admin/services/proficiency-level.service.ts","./src/app/modules/admin/services/project-type.service.ts","./src/app/modules/admin/services/role-type.service.ts","./src/app/modules/admin/services/role.service.ts","./src/app/modules/admin/services/seniority.service.ts","./src/app/modules/admin/services/service-type.service.ts","./src/app/modules/admin/services/skill-group.service.ts","./src/app/modules/admin/services/skills.service.ts","./src/app/modules/admin/services/speciality.service.ts","./src/app/modules/auth/authentication.module.ts","./src/app/modules/auth/components/auth-callback/auth-callback.component.ts","./src/app/modules/auth/components/auth-callback/auth-callback.component.html","./src/app/modules/auth/components/login/login.component.ts","./src/app/modules/auth/components/login/login.component.html","./src/app/modules/auth/models/user.model.ts","./src/app/modules/kra/components/add-kradlg/add-kradlg.component.ts","./src/app/modules/kra/components/add-kradlg/add-kradlg.component.html","./src/app/modules/kra/components/applicableroletypes/applicableroletypes.component.ts","./src/app/modules/kra/components/applicableroletypes/applicableroletypes.component.html","./src/app/modules/kra/components/aspectmaster/aspectmaster.component.ts","./src/app/modules/kra/components/aspectmaster/aspectmaster.component.html","./src/app/modules/kra/components/ceostatus/ceostatus.component.ts","./src/app/modules/kra/components/ceostatus/ceostatus.component.html","./src/app/modules/kra/components/clone-kra-dlg/clone-kra-dlg.component.ts","./src/app/modules/kra/components/clone-kra-dlg/clone-kra-dlg.component.html","./src/app/modules/kra/components/define-kra/define-kra.component.ts","./src/app/modules/kra/components/define-kra/define-kra.component.html","./src/app/modules/kra/components/download-kra/download-kra.component.ts","./src/app/modules/kra/components/download-kra/download-kra.component.html","./src/app/modules/kra/components/import-kra-dlg/import-kra-dlg.component.ts","./src/app/modules/kra/components/import-kra-dlg/import-kra-dlg.component.html","./src/app/modules/kra/components/kra-comment/kra-comment.component.ts","./src/app/modules/kra/components/kra-comment/kra-comment.component.html","./src/app/modules/kra/components/kra-scale-master/kra-scale-master.component.ts","./src/app/modules/kra/components/kra-scale-master/kra-scale-master.component.html","./src/app/modules/kra/components/kra-status/kra-status.component.ts","./src/app/modules/kra/components/kra-status/kra-status.component.html","./src/app/modules/kra/components/kra.measurement-type/kra.measurement-type.component.ts","./src/app/modules/kra/components/kra.measurement-type/kra.measurement-type.component.html","./src/app/modules/kra/components/kra/kra.component.ts","./src/app/modules/kra/components/kra/kra.component.html","./src/app/modules/kra/components/review-kra/review-kra.component.ts","./src/app/modules/kra/components/review-kra/review-kra.component.html","./src/app/modules/kra/components/view-kra/view-kra.component.ts","./src/app/modules/kra/components/view-kra/view-kra.component.html","./src/app/modules/kra/directives/app-numbers-only.directives.ts","./src/app/modules/kra/kra-routing.module.ts","./src/app/modules/kra/kra.module.ts","./src/app/modules/kra/models/comment.model.ts","./src/app/modules/kra/models/kra-work-flow.model.ts","./src/app/modules/kra/models/kra.measurement-type.model.ts","./src/app/modules/kra/models/kraapplicableRoleType.model.ts","./src/app/modules/kra/models/kradefinition.model.ts","./src/app/modules/kra/models/krascaleData.model.ts","./src/app/modules/kra/services/applicableroletype.service.ts","./src/app/modules/kra/services/aspectmaster.service.ts","./src/app/modules/kra/services/definekra.service.ts","./src/app/modules/kra/services/download-kra.service.ts","./src/app/modules/kra/services/kra-comment.service.ts","./src/app/modules/kra/services/kra.measurement-type.service.ts","./src/app/modules/kra/services/kraStatus.service.ts","./src/app/modules/kra/services/kradefinition.service.ts","./src/app/modules/kra/services/krascalemaster.service.ts","./src/app/modules/master-layout/components/choose-role/choose-role.component.ts","./src/app/modules/master-layout/components/choose-role/choose-role.component.html","./src/app/modules/master-layout/components/confirm-cancel/confirm-cancel.component.ts","./src/app/modules/master-layout/components/confirm-cancel/confirm-cancel.component.html","./src/app/modules/master-layout/components/dashboard/dashboard.component.ts","./src/app/modules/master-layout/components/dashboard/dashboard.component.html","./src/app/modules/master-layout/components/master-layout/master-layout.component.ts","./src/app/modules/master-layout/components/master-layout/master-layout.component.html","./src/app/modules/master-layout/components/menu-list-item/menu-list-item.component.ts","./src/app/modules/master-layout/components/menu-list-item/menu-list-item.component.html","./src/app/modules/master-layout/components/page404/page404.component.ts","./src/app/modules/master-layout/components/page404/page404.component.html","./src/app/modules/master-layout/components/profile-dialog/profile-dialog.component.ts","./src/app/modules/master-layout/components/profile-dialog/profile-dialog.component.html","./src/app/modules/master-layout/components/top-nav/top-nav.component.ts","./src/app/modules/master-layout/components/top-nav/top-nav.component.html","./src/app/modules/master-layout/httpInterceptor.ts","./src/app/modules/master-layout/master-layout.module.ts","./src/app/modules/master-layout/master-routing.module.ts","./src/app/modules/master-layout/menulist.ts","./src/app/modules/master-layout/models/associate-skills.model.ts","./src/app/modules/master-layout/models/associateallocation.model.ts","./src/app/modules/master-layout/models/dropdowntype.model.ts","./src/app/modules/master-layout/models/errorLog.model.ts","./src/app/modules/master-layout/models/kra.model.ts","./src/app/modules/master-layout/models/project-role.model.ts","./src/app/modules/master-layout/models/projects.model.ts","./src/app/modules/master-layout/models/role.model.ts","./src/app/modules/master-layout/models/user.model.ts","./src/app/modules/master-layout/services/common.service.ts","./src/app/modules/master-layout/services/masterdata.service.ts","./src/app/modules/master-layout/services/menu.service.ts","./src/app/modules/master-layout/services/nav.service.ts","./src/app/modules/master-layout/services/project-role.service.ts","./src/app/modules/master-layout/utility/enums.ts","./src/app/modules/onboarding/components/add-prospective-associate/add-prospective-associate.component.ts","./src/app/modules/onboarding/components/add-prospective-associate/add-prospective-associate.component.html","./src/app/modules/onboarding/components/assign-rm-to-non-delivery/assign-rm-to-non-delivery.component.ts","./src/app/modules/onboarding/components/assign-rm-to-non-delivery/assign-rm-to-non-delivery.component.html","./src/app/modules/onboarding/components/associate-employment/associate-employment.component.ts","./src/app/modules/onboarding/components/associate-employment/associate-employment.component.html","./src/app/modules/onboarding/components/associate-joining/associate-joining.component.ts","./src/app/modules/onboarding/components/associate-joining/associate-joining.component.html","./src/app/modules/onboarding/components/associate-parking/associate-parking.component.ts","./src/app/modules/onboarding/components/associate-parking/associate-parking.component.html","./src/app/modules/onboarding/components/associate-professional/associate-professional.component.ts","./src/app/modules/onboarding/components/associate-professional/associate-professional.component.html","./src/app/modules/onboarding/components/associate-skill-dialog/associate-skill-dialog.component.ts","./src/app/modules/onboarding/components/associate-skill-dialog/associate-skill-dialog.component.html","./src/app/modules/onboarding/components/associate-skills/associate-skills.component.ts","./src/app/modules/onboarding/components/associate-skills/associate-skills.component.html","./src/app/modules/onboarding/components/associateinformation/associateinformation.component.ts","./src/app/modules/onboarding/components/associateinformation/associateinformation.component.html","./src/app/modules/onboarding/components/associateupload/associateupload.component.ts","./src/app/modules/onboarding/components/associateupload/associateupload.component.html","./src/app/modules/onboarding/components/attendance-muster-report/attendance-muster-report.component.ts","./src/app/modules/onboarding/components/attendance-muster-report/attendance-muster-report.component.html","./src/app/modules/onboarding/components/biometric-attendance-dialog/biometric-attendance-dialog.component.ts","./src/app/modules/onboarding/components/biometric-attendance-dialog/biometric-attendance-dialog.component.html","./src/app/modules/onboarding/components/biometric-attendance-found-dialog/biometric-attendance-found-dialog.component.ts","./src/app/modules/onboarding/components/biometric-attendance-found-dialog/biometric-attendance-found-dialog.component.html","./src/app/modules/onboarding/components/biometric-attendance-report/biometric-attendance-report.component.ts","./src/app/modules/onboarding/components/biometric-attendance-report/biometric-attendance-report.component.html","./src/app/modules/onboarding/components/change-rm-for-non-delivery/change-rm-for-non-delivery.component.ts","./src/app/modules/onboarding/components/change-rm-for-non-delivery/change-rm-for-non-delivery.component.html","./src/app/modules/onboarding/components/edit-prospective-associate/edit-prospective-associate.component.ts","./src/app/modules/onboarding/components/edit-prospective-associate/edit-prospective-associate.component.html","./src/app/modules/onboarding/components/education-associate/education-associate.component.ts","./src/app/modules/onboarding/components/education-associate/education-associate.component.html","./src/app/modules/onboarding/components/family-associate/family-associate.component.ts","./src/app/modules/onboarding/components/family-associate/family-associate.component.html","./src/app/modules/onboarding/components/manager-biometric-attendance-report/manager-biometric-attendance-report.component.ts","./src/app/modules/onboarding/components/manager-biometric-attendance-report/manager-biometric-attendance-report.component.html","./src/app/modules/onboarding/components/onboarding/onboarding.component.ts","./src/app/modules/onboarding/components/onboarding/onboarding.component.html","./src/app/modules/onboarding/components/personal-details/personal-details.component.ts","./src/app/modules/onboarding/components/personal-details/personal-details.component.html","./src/app/modules/onboarding/components/projectassociate/projectassociate.component.ts","./src/app/modules/onboarding/components/projectassociate/projectassociate.component.html","./src/app/modules/onboarding/components/prospective-associate/prospective-associate.component.ts","./src/app/modules/onboarding/components/prospective-associate/prospective-associate.component.html","./src/app/modules/onboarding/components/prospective-to-associate/prospective-to-associate.component.ts","./src/app/modules/onboarding/components/prospective-to-associate/prospective-to-associate.component.html","./src/app/modules/onboarding/components/regulariation/regulariation.component.ts","./src/app/modules/onboarding/components/regulariation/regulariation.component.html","./src/app/modules/onboarding/components/send-email/send-email.component.ts","./src/app/modules/onboarding/components/send-email/send-email.component.html","./src/app/modules/onboarding/components/skills/skills.component.ts","./src/app/modules/onboarding/components/skills/skills.component.html","./src/app/modules/onboarding/components/upload-leave-data/upload-leave-data.component.ts","./src/app/modules/onboarding/components/upload-leave-data/upload-leave-data.component.html","./src/app/modules/onboarding/components/view-biometric-attendance/view-biometric-attendance.component.ts","./src/app/modules/onboarding/components/view-biometric-attendance/view-biometric-attendance.component.html","./src/app/modules/onboarding/components/view-regularization-applied-associates/view-regularization-applied-associates.component.ts","./src/app/modules/onboarding/components/view-regularization-applied-associates/view-regularization-applied-associates.component.html","./src/app/modules/onboarding/components/view-regularization-applied-days/view-regularization-applied-days.component.ts","./src/app/modules/onboarding/components/view-regularization-applied-days/view-regularization-applied-days.component.html","./src/app/modules/onboarding/components/welcome-associate-email/welcome-associate-email.component.ts","./src/app/modules/onboarding/components/welcome-associate-email/welcome-associate-email.component.html","./src/app/modules/onboarding/components/wfh-attendance/wfh-attendance.component.ts","./src/app/modules/onboarding/components/wfh-attendance/wfh-attendance.component.html","./src/app/modules/onboarding/models/associate.model.ts","./src/app/modules/onboarding/models/bookParking.model.ts","./src/app/modules/onboarding/models/changeRM.model.ts","./src/app/modules/onboarding/models/family.model.ts","./src/app/modules/onboarding/models/professionaldetails.model.ts","./src/app/modules/onboarding/models/regularization.model.ts","./src/app/modules/onboarding/models/sendmail.model.ts","./src/app/modules/onboarding/models/wfhAttendance.model.ts","./src/app/modules/onboarding/onboarding-routing.module.ts","./src/app/modules/onboarding/onboarding.module.ts","./src/app/modules/onboarding/parking-slot-report/parking-slot-report.component.ts","./src/app/modules/onboarding/parking-slot-report/parking-slot-report.component.html","./src/app/modules/onboarding/pipes/BooleanToStringPipe.ts","./src/app/modules/onboarding/services/assign-rm-for-non-delivery.service.ts","./src/app/modules/onboarding/services/associateInformation.service.ts","./src/app/modules/onboarding/services/associatejoining.service.ts","./src/app/modules/onboarding/services/education.service.ts","./src/app/modules/onboarding/services/employment.service.ts","./src/app/modules/onboarding/services/family.service.ts","./src/app/modules/onboarding/services/parking-service.service.ts","./src/app/modules/onboarding/services/personal.service.ts","./src/app/modules/onboarding/services/professional.service.ts","./src/app/modules/onboarding/services/projectassosiate.service.ts","./src/app/modules/onboarding/services/projects.service.ts","./src/app/modules/onboarding/services/prospective-assosiate.service.ts","./src/app/modules/onboarding/services/regularization.service.ts","./src/app/modules/onboarding/services/skills.service.ts","./src/app/modules/onboarding/services/upload.service.ts","./src/app/modules/onboarding/services/wfh-attendance.service.ts","./src/app/modules/plugins/all-angular-material/all-angular-material.module.ts","./src/app/modules/project-life-cycle/check-users.guard.ts","./src/app/modules/project-life-cycle/components/allocated-resources-dialog/allocated-resources-dialog.component.ts","./src/app/modules/project-life-cycle/components/allocated-resources-dialog/allocated-resources-dialog.component.html","./src/app/modules/project-life-cycle/components/assign-manager-to-project/assign-manager-to-project.component.ts","./src/app/modules/project-life-cycle/components/assign-manager-to-project/assign-manager-to-project.component.html","./src/app/modules/project-life-cycle/components/assign-reporting-manager/assign-reporting-manager.component.ts","./src/app/modules/project-life-cycle/components/assign-reporting-manager/assign-reporting-manager.component.html","./src/app/modules/project-life-cycle/components/checklist-tab/checklist-tab.component.ts","./src/app/modules/project-life-cycle/components/checklist-tab/checklist-tab.component.html","./src/app/modules/project-life-cycle/components/client-billing-role/client-billing-role.component.ts","./src/app/modules/project-life-cycle/components/client-billing-role/client-billing-role.component.html","./src/app/modules/project-life-cycle/components/close-cbr-dialog/close-cbr-dialog.component.ts","./src/app/modules/project-life-cycle/components/close-cbr-dialog/close-cbr-dialog.component.html","./src/app/modules/project-life-cycle/components/confirm-dialog/confirm-dialog.component.ts","./src/app/modules/project-life-cycle/components/confirm-dialog/confirm-dialog.component.html","./src/app/modules/project-life-cycle/components/date-dialog/date-dialog.component.ts","./src/app/modules/project-life-cycle/components/date-dialog/date-dialog.component.html","./src/app/modules/project-life-cycle/components/delete-dialog/delete-dialog.component.ts","./src/app/modules/project-life-cycle/components/delete-dialog/delete-dialog.component.html","./src/app/modules/project-life-cycle/components/message-dialog/message-dialog.component.ts","./src/app/modules/project-life-cycle/components/message-dialog/message-dialog.component.html","./src/app/modules/project-life-cycle/components/pm-closure-dashboard/pm-closure-dashboard.component.ts","./src/app/modules/project-life-cycle/components/pm-closure-dashboard/pm-closure-dashboard.component.html","./src/app/modules/project-life-cycle/components/project-closure-report/project-closure-report.component.ts","./src/app/modules/project-life-cycle/components/project-closure-report/project-closure-report.component.html","./src/app/modules/project-life-cycle/components/project-creation/project-creation.component.ts","./src/app/modules/project-life-cycle/components/project-creation/project-creation.component.html","./src/app/modules/project-life-cycle/components/project-dashboard/project-dashboard.component.ts","./src/app/modules/project-life-cycle/components/project-dashboard/project-dashboard.component.html","./src/app/modules/project-life-cycle/components/project-details/project-details.component.ts","./src/app/modules/project-life-cycle/components/project-details/project-details.component.html","./src/app/modules/project-life-cycle/components/project-life-cycle/project-life-cycle.component.ts","./src/app/modules/project-life-cycle/components/project-life-cycle/project-life-cycle.component.html","./src/app/modules/project-life-cycle/components/project/associateskillsearch/associateskillsearch.component.ts","./src/app/modules/project-life-cycle/components/project/associateskillsearch/associateskillsearch.component.html","./src/app/modules/project-life-cycle/components/project/dailog-tag-list/dailog-tag-list.component.ts","./src/app/modules/project-life-cycle/components/project/dailog-tag-list/dailog-tag-list.component.html","./src/app/modules/project-life-cycle/components/project/project-history-list/project-history-list.component.ts","./src/app/modules/project-life-cycle/components/project/project-history-list/project-history-list.component.html","./src/app/modules/project-life-cycle/components/project/project.component.ts","./src/app/modules/project-life-cycle/components/project/project.component.html","./src/app/modules/project-life-cycle/components/project/skill-data-list/skill-data-list.component.ts","./src/app/modules/project-life-cycle/components/project/skill-data-list/skill-data-list.component.html","./src/app/modules/project-life-cycle/components/remarks-teamlead.component.ts","./src/app/modules/project-life-cycle/components/remarks-teamlead.component.html","./src/app/modules/project-life-cycle/components/sow/sow.component.ts","./src/app/modules/project-life-cycle/components/sow/sow.component.html","./src/app/modules/project-life-cycle/components/view-project-teamlead/view-project-teamlead.component.ts","./src/app/modules/project-life-cycle/components/view-project-teamlead/view-project-teamlead.component.html","./src/app/modules/project-life-cycle/components/view-project/view-project.component.ts","./src/app/modules/project-life-cycle/components/view-project/view-project.component.html","./src/app/modules/project-life-cycle/models/assign-manager-to-project.model.ts","./src/app/modules/project-life-cycle/models/associateSkillSearch.model.ts","./src/app/modules/project-life-cycle/models/client-billing-role.model.ts","./src/app/modules/project-life-cycle/models/projects.model.ts","./src/app/modules/project-life-cycle/models/tag-associate.model.ts","./src/app/modules/project-life-cycle/project-life-cycle-routing.module.ts","./src/app/modules/project-life-cycle/project-life-cycle.module.ts","./src/app/modules/project-life-cycle/services/assign-manager-to-project.service.ts","./src/app/modules/project-life-cycle/services/assign-reporting-manager.service.ts","./src/app/modules/project-life-cycle/services/associateskillsearch.service.ts","./src/app/modules/project-life-cycle/services/client-billing-roles.service.ts","./src/app/modules/project-life-cycle/services/project-closure.service.ts","./src/app/modules/project-life-cycle/services/project-creation.service.ts","./src/app/modules/project-life-cycle/services/resouce-release.service.ts","./src/app/modules/project-life-cycle/services/sow.service.ts","./src/app/modules/project-life-cycle/services/tag-associate.service.ts","./src/app/modules/project-life-cycle/table.util.ts","./src/app/modules/reports/components/associate-attendance-report/associate-attendance-report.component.ts","./src/app/modules/reports/components/associate-attendance-report/associate-attendance-report.component.html","./src/app/modules/reports/components/associate-exit-report/associate-exit-report.component.ts","./src/app/modules/reports/components/associate-exit-report/associate-exit-report.component.html","./src/app/modules/reports/components/associate-exit-summary-report/associate-exit-summary-report.component.ts","./src/app/modules/reports/components/associate-exit-summary-report/associate-exit-summary-report.component.html","./src/app/modules/reports/components/attendance-report-dialog/attendance-report-dialog.component.ts","./src/app/modules/reports/components/attendance-report-dialog/attendance-report-dialog.component.html","./src/app/modules/reports/components/domain-report/domain-report.component.ts","./src/app/modules/reports/components/domain-report/domain-report.component.html","./src/app/modules/reports/components/finance-report/finance-report.component.ts","./src/app/modules/reports/components/finance-report/finance-report.component.html","./src/app/modules/reports/components/manager-attendance-report/manager-attendance-report.component.ts","./src/app/modules/reports/components/manager-attendance-report/manager-attendance-report.component.html","./src/app/modules/reports/components/non-critical-resource-last-billing-report/non-critical-resource-last-billing-report.component.ts","./src/app/modules/reports/components/non-critical-resource-last-billing-report/non-critical-resource-last-billing-report.component.html","./src/app/modules/reports/components/projectdetails-report/projectdetails-report.component.ts","./src/app/modules/reports/components/projectdetails-report/projectdetails-report.component.html","./src/app/modules/reports/components/projects-report/projects-report.component.ts","./src/app/modules/reports/components/projects-report/projects-report.component.html","./src/app/modules/reports/components/reports/reports.component.ts","./src/app/modules/reports/components/reports/reports.component.html","./src/app/modules/reports/components/resource-report-by-month/resource-report-by-month.component.ts","./src/app/modules/reports/components/resource-report-by-month/resource-report-by-month.component.html","./src/app/modules/reports/components/resource-report-by-project/resource-report-by-project.component.ts","./src/app/modules/reports/components/resource-report-by-project/resource-report-by-project.component.html","./src/app/modules/reports/components/resource-report-critical-nonbilling/resource-report-critical-nonbilling.component.ts","./src/app/modules/reports/components/resource-report-critical-nonbilling/resource-report-critical-nonbilling.component.html","./src/app/modules/reports/components/resource-report-non-critical-nonbilling/resource-report-non-critical-nonbilling.component.ts","./src/app/modules/reports/components/resource-report-non-critical-nonbilling/resource-report-non-critical-nonbilling.component.html","./src/app/modules/reports/components/resource-report-project/resource-report-project.component.ts","./src/app/modules/reports/components/resource-report-project/resource-report-project.component.html","./src/app/modules/reports/components/resource-report/resource-report.component.ts","./src/app/modules/reports/components/resource-report/resource-report.component.html","./src/app/modules/reports/components/servicetype-report/servicetype-report.component.ts","./src/app/modules/reports/components/servicetype-report/servicetype-report.component.html","./src/app/modules/reports/components/skill-report/skill-report.component.ts","./src/app/modules/reports/components/skill-report/skill-report.component.html","./src/app/modules/reports/components/talentpool/talentpool.component.ts","./src/app/modules/reports/components/talentpool/talentpool.component.html","./src/app/modules/reports/components/utilization-report/utilization-report.component.ts","./src/app/modules/reports/components/utilization-report/utilization-report.component.html","./src/app/modules/reports/models/associate-attendance-report.model.ts","./src/app/modules/reports/models/associate-exit-report.model.ts","./src/app/modules/reports/models/reportsfilter.model.ts","./src/app/modules/reports/models/resourcereportbyproject.model.ts","./src/app/modules/reports/pipes/BooleanToStringPipe.ts","./src/app/modules/reports/reports-routing.module.ts","./src/app/modules/reports/reports.module.ts","./src/app/modules/reports/services/associate-attendance-report.service.ts","./src/app/modules/reports/services/associate-exit-report.service.ts","./src/app/modules/reports/services/domain-report.service.ts","./src/app/modules/reports/services/finance-report.service.ts","./src/app/modules/reports/services/projectdetails.service.ts","./src/app/modules/reports/services/projects-report.service.ts","./src/app/modules/reports/services/resource-report-critical.service.ts","./src/app/modules/reports/services/resource-report-noncritical.service.ts","./src/app/modules/reports/services/resource-report.service.ts","./src/app/modules/reports/services/servicetype-report.service.ts","./src/app/modules/reports/services/talentpoolreport.service.ts","./src/app/modules/reports/services/utilization-report.service.ts","./src/app/modules/shared/components/KT-plan-dialog/KT-plan-dialog.component.ts","./src/app/modules/shared/components/KT-plan-dialog/KT-plan-dialog.component.html","./src/app/modules/shared/components/associate-dashboard/associate-dashboard.component.ts","./src/app/modules/shared/components/associate-dashboard/associate-dashboard.component.html","./src/app/modules/shared/components/associate-exit-checklist-screen/associate-exit-checklist-screen.component.ts","./src/app/modules/shared/components/associate-exit-checklist-screen/associate-exit-checklist-screen.component.html","./src/app/modules/shared/components/associate-exit-review-screen/associate-exit-review-screen.component.ts","./src/app/modules/shared/components/associate-exit-review-screen/associate-exit-review-screen.component.html","./src/app/modules/shared/components/common-dialog/common-dialog.component.ts","./src/app/modules/shared/components/common-dialog/common-dialog.component.html","./src/app/modules/shared/components/confirmation-dialog/confirmation-dialog.component.ts","./src/app/modules/shared/components/confirmation-dialog/confirmation-dialog.component.html","./src/app/modules/shared/components/corporate-dashboard/corporate-dashboard.component.ts","./src/app/modules/shared/components/dashboard/dashboard.component.ts","./src/app/modules/shared/components/dashboard/dashboard.component.html","./src/app/modules/shared/components/department-head-dashboard/department-head-dashboard.component.ts","./src/app/modules/shared/components/department-head-dashboard/department-head-dashboard.component.html","./src/app/modules/shared/components/edit-skill-dialog/edit-skill-dialog.component.ts","./src/app/modules/shared/components/edit-skill-dialog/edit-skill-dialog.component.html","./src/app/modules/shared/components/hra-dashboard/hra-dashboard.component.ts","./src/app/modules/shared/components/hra-dashboard/hra-dashboard.component.html","./src/app/modules/shared/components/hrm-dashboard/hrm-dashboard.component.ts","./src/app/modules/shared/components/hrm-dashboard/hrm-dashboard.component.html","./src/app/modules/shared/components/hrmassociate-exit/hrmassociate-exit.component.ts","./src/app/modules/shared/components/hrmassociate-exit/hrmassociate-exit.component.html","./src/app/modules/shared/components/kt-form/kt-form.component.ts","./src/app/modules/shared/components/kt-form/kt-form.component.html","./src/app/modules/shared/components/kt-warning-dialog/kt-warning-dialog.component.ts","./src/app/modules/shared/components/kt-warning-dialog/kt-warning-dialog.component.html","./src/app/modules/shared/components/ktplan-dashboard/ktplan-dashboard.component.ts","./src/app/modules/shared/components/ktplan-dashboard/ktplan-dashboard.component.html","./src/app/modules/shared/components/operations-head-dashboard/operations-head-dashboard.component.ts","./src/app/modules/shared/components/operations-head-dashboard/operations-head-dashboard.component.html","./src/app/modules/shared/components/program-manager-dashboard/program-manager-dashboard.component.ts","./src/app/modules/shared/components/program-manager-dashboard/program-manager-dashboard.component.html","./src/app/modules/shared/components/reason-form/reason-form.component.ts","./src/app/modules/shared/components/reason-form/reason-form.component.html","./src/app/modules/shared/components/reject-dialog/reject-dialog.component.ts","./src/app/modules/shared/components/reject-dialog/reject-dialog.component.html","./src/app/modules/shared/components/reporting-manager-dashboard/reporting-manager-dashboard.component.ts","./src/app/modules/shared/components/reporting-manager-dashboard/reporting-manager-dashboard.component.html","./src/app/modules/shared/components/service-manager-dashboard/service-manager-dashboard.component.ts","./src/app/modules/shared/components/service-manager-dashboard/service-manager-dashboard.component.html","./src/app/modules/shared/components/submitted-skills/submitted-skills.component.ts","./src/app/modules/shared/components/submitted-skills/submitted-skills.component.html","./src/app/modules/shared/components/team-lead-dashboard/team-lead-dashboard.component.ts","./src/app/modules/shared/components/team-lead-dashboard/team-lead-dashboard.component.html","./src/app/modules/shared/components/view-associteexit/view-associteexit.component.ts","./src/app/modules/shared/components/view-associteexit/view-associteexit.component.html","./src/app/modules/shared/components/view-detailed-status/view-detailed-status.component.ts","./src/app/modules/shared/components/view-detailed-status/view-detailed-status.component.html","./src/app/modules/shared/injector.ts","./src/app/modules/shared/models/kt-form.model.ts","./src/app/modules/shared/models/reasonform.model.ts","./src/app/modules/shared/services/associate-exit-dashboard.service.ts","./src/app/modules/shared/services/dashboard.service.ts","./src/app/modules/shared/services/delivery-head.service.ts","./src/app/modules/shared/services/finance-head.service.ts","./src/app/modules/shared/services/kt-form.service.ts","./src/app/modules/shared/services/url.service.ts","./src/app/modules/shared/shared-routing.module.ts","./src/app/modules/shared/shared.component.ts","./src/app/modules/shared/shared.component.html","./src/app/modules/shared/shared.module.ts","./src/app/modules/shared/utility/enums.ts","./src/app/practice-area-validations.directive.ts","./src/app/requirematch.directive.ts","./src/app/routes/default-layout-routes.ts","./src/app/validation-imp-special-chars.directive.ts","./src/app/validations.directive.ts","./src/environments/environment.ts","./src/main.ts","./src/themeconfig.ts","fs (ignored)","crypto (ignored)","stream (ignored)"],"names":[],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA,4CAA4C,WAAW;AACvD;AACA;AACA,wE;;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6E;;;;;;;;;;;;ACnSA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAyC;AACc;AAC0B;AACgC;AACjD;AACgC;AAEW;AACH;;;AAGxG,MAAM,MAAM,GAAW;IACtB,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,6FAAc,EAAE;IACtC,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,6HAAqB,EAAE,QAAQ,EAAE,4EAAc,EAAE;IACxE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,uHAAmB,EAAE;IACjD,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,6FAAc,EAAE;IAE5C,EAAC,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,oHAAqB,EAAC;IACzD,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAC,MAAM,EAAC;IAChD,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,4GAAgB,EAAE;CAC9C,CAAC;AAMK,MAAM,gBAAgB;;+FAAhB,gBAAgB;0JAAhB,gBAAgB,kBAHlB,CAAC,4DAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAC7B,4DAAY;mIAEX,gBAAgB,uFAFjB,4DAAY;6FAEX,gBAAgB;cAJ5B,sDAAQ;eAAC;gBACR,OAAO,EAAE,CAAC,4DAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACvC,OAAO,EAAE,CAAC,4DAAY,CAAC;aACxB;;;;;;;;;;;;;;ACzBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA+D;AAGP;AAIhB;;;;;;;;;;;AAYjC,MAAM,YAAY;IAEvB,YAAoB,WAAwB,EAAU,UAAsB,EAAS,mBAAwC,EAAS,UAAsB,EAAS,MAAc,EAAS,gBAAkC,EAAU,kBAAuC,EAAS,gBAAkC,EAAE,YAAmB;QAA3T,gBAAW,GAAX,WAAW,CAAa;QAAU,eAAU,GAAV,UAAU,CAAY;QAAS,wBAAmB,GAAnB,mBAAmB,CAAqB;QAAS,eAAU,GAAV,UAAU,CAAY;QAAS,WAAM,GAAN,MAAM,CAAQ;QAAS,qBAAgB,GAAhB,gBAAgB,CAAkB;QAAU,uBAAkB,GAAlB,kBAAkB,CAAqB;QAAS,qBAAgB,GAAhB,gBAAgB,CAAkB;QAgB1T,gBAAW,GAAW,IAAI,CAAC;QAC3B,eAAU,GAAW,IAAI,CAAC;QAW1B,SAAI,GAAG,WAAW,CAAC;QAEnB,UAAK,GAAG,MAAM,CAAC;QACf,iBAAY,GAAY,KAAK,CAAC;QA9B5B,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YACrD,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;QACxB,CAAC,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE;YAClC,IAAI,EAAE,YAAY,6DAAa,EAAE;gBAC/B,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACjF,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC7B,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;gBAE7C,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;aACzC;QACH,CAAC,CAAC,CAAC;IAEL,CAAC;IAID,QAAQ;QACN,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CACrB,6DAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,YAAY,6DAAa,CAAC,CAClD,CAAC,SAAS,CAAC,CAAC,KAAoB,EAAE,EAAE;YACnC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC;YACnC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC;YAC5B,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACL,CAAC;IAOD,UAAU,CAAC,KAAK;QAEd,IAAI,KAAK,IAAI,IAAI,EAAE;YACjB,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACxE,IAAI,CAAC,iBAAiB,GAAG,YAAY,CAAC;SACvC;aAAM;YACL,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;YAC7E,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;SAC5C;IAEH,CAAC;IAGD,QAAQ,CAAC,KAAK,EAAE,MAAM;QAEpB,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE;YAChE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACvC;QAED,IAAI,KAAK,IAAI,MAAM,EAAE;YACnB,IAAI,CAAC,IAAI,CAAC,GAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SAC/D;QACD,OAAO,IAAI,CAAC;IACd,CAAC;;wEA3DU,YAAY;4FAAZ,YAAY;;;QCnBzB,0EACA;QAAA;QAAA,2EAA+B;QAC/B;QAAA,4DAAO;QACP;QAAA,sEAEI;QAAA;QAFJ,4DAEI;;6FDcS,YAAY;cALxB,uDAAS;eAAC;gBACT,QAAQ,EAAE,UAAU;gBACpB,WAAW,EAAE,sBAAsB;gBACnC,SAAS,EAAE,CAAC,sBAAsB,CAAC;aACpC;mzBAgCuB,iBAAiB;kBAAtC,yDAAW;mBAAC,OAAO;;;;;;;;;;;;;;AElDtB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0D;AACA;AACF;AACT;AACgC;AAC+B;AAClC;AACF;AACQ;AAC1B;AACG;AACN;AACE;AACW;AAQpC;AACuD;AACnB;AACL;AACC;AACkC;AACZ;AACF;AACuB;AACxC;AACE;AAKjC;AAOgE;AACtC;;;AA8CrD,MAAM,SAAS;;wFAAT,SAAS,cAFR,2DAAY;4IAEb,SAAS,mBAXT,CAAC,sFAAU,EAAE,+EAAW,EAAE,gFAAU;QAE7C,EAAE,OAAO,EAAE,uEAAiB,EAAE,QAAQ,EAAE,iGAAqB,EAAE,KAAK,EAAE,IAAI,EAAE;KAG7E,YAjCQ;YACP,uEAAa;YACb,gBAAgB;YAChB,oEAAgB;YAChB,4FAAuB;YACvB,sEAAgB;YAChB,4FAAuB;YACvB,2DAAW;YACX,mEAAmB;YAEnB,0HAAwB;YACxB,8FAAkB;YAClB,qEAAgB;YAChB,wEAAW;YACX,kEAAS;YACT,2DAAW;YACX,mEAAmB;YACnB,2EAAmB;YACnB,2EAAY;YACZ,iGAAiB;YACjB,gGAAmB;YACnB,6GAAsB;YACtB,8EAAa;YACb,wFAAoB;YACpB,oEAAU,CAAC,OAAO,EAAE;YACpB,0EAAsB;SACvB,EACS,6DAAY;mIAYX,SAAS,mBAxCL,2DAAY,EAAE,+GAA2B,aAEtD,uEAAa;QACb,gBAAgB;QAChB,oEAAgB;QAChB,4FAAuB;QACvB,sEAAgB;QAChB,4FAAuB;QACvB,2DAAW;QACX,mEAAmB;QAEnB,0HAAwB;QACxB,8FAAkB;QAClB,qEAAgB;QAChB,wEAAW;QACX,kEAAS;QACT,2DAAW;QACX,mEAAmB;QACnB,2EAAmB;QACnB,2EAAY;QACZ,iGAAiB;QACjB,gGAAmB;QACnB,6GAAsB;QACtB,8EAAa;QACb,wFAAoB,wEAEpB,0EAAsB,aAEd,6DAAY;6FAYX,SAAS;cAzCrB,sDAAQ;eAAC;gBACR,YAAY,EAAE,CAAC,2DAAY,EAAE,+GAA2B,CAAC;gBACzD,OAAO,EAAE;oBACP,uEAAa;oBACb,gBAAgB;oBAChB,oEAAgB;oBAChB,4FAAuB;oBACvB,sEAAgB;oBAChB,4FAAuB;oBACvB,2DAAW;oBACX,mEAAmB;oBAEnB,0HAAwB;oBACxB,8FAAkB;oBAClB,qEAAgB;oBAChB,wEAAW;oBACX,kEAAS;oBACT,2DAAW;oBACX,mEAAmB;oBACnB,2EAAmB;oBACnB,2EAAY;oBACZ,iGAAiB;oBACjB,gGAAmB;oBACnB,6GAAsB;oBACtB,8EAAa;oBACb,wFAAoB;oBACpB,oEAAU,CAAC,OAAO,EAAE;oBACpB,0EAAsB;iBACvB;gBACD,OAAO,EAAE,CAAC,6DAAY,CAAC;gBACvB,SAAS,EAAE,CAAC,sFAAU,EAAE,+EAAW,EAAE,gFAAU;oBAE7C,EAAE,OAAO,EAAE,uEAAiB,EAAE,QAAQ,EAAE,iGAAqB,EAAE,KAAK,EAAE,IAAI,EAAE;iBAG7E;gBAED,eAAe,EAAE,CAAC,sHAAkB,CAAC;gBAErC,SAAS,EAAE,CAAC,2DAAY,CAAC;aAC1B;;;;;;;;;;;;;;ACzFD;AAAA;AAAA;AAAA;AAAA;AAA0D;AACe;;;;AAOlE,MAAM,2BAA2B;IAMtC,YACmC,IAAS,EAClC,SAAoD;QAD3B,SAAI,GAAJ,IAAI,CAAK;QAClC,cAAS,GAAT,SAAS,CAA2C;QAN9D,YAAO,GAAW,eAAe,CAAC;QAClC,sBAAiB,GAAG,KAAK,CAAC;QAC1B,qBAAgB,GAAG,QAAQ,CAAC;QAM1B,IAAI,IAAI,EAAE;YACR,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC;YAC5C,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,IAAI,CAAC,iBAAiB,CAAC;gBACtE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,IAAI,CAAC,gBAAgB,CAAC;aACzE;SACF;IACH,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;;sGArBU,2BAA2B,kEAO5B,wEAAe;2GAPd,2BAA2B;QCRxC,yEACI;QAAA;QAAA,qFACE;QAAA;QAAA,yEAAwB;QAAA,uDAAa;QAAA,4DAAM;QAC7C;QAAA,4DAAqB;QACrB;QAAA,wFACE;QAAA;QAAA,6EAAyD;QAAA,wDAAsB;QAAA,4DAAS;QACxF;QAAA,6EAAkF;QAAxC,oJAAS,oBAAgB,IAAC;QAAc,wDAAuB;QAAA,4DAAS;QACpH;QAAA,4DAAqB;QACvB;QAAA,4DAAM;QAER;;QAR8B,0DAAa;QAAb,4EAAa;QAGoB,0DAAsB;QAAtB,qFAAsB;QACG,0DAAuB;QAAvB,sFAAuB;;6FDElG,2BAA2B;cALvC,uDAAS;eAAC;gBACT,QAAQ,EAAE,yBAAyB;gBACnC,WAAW,EAAE,sCAAsC;gBACnD,SAAS,EAAE,CAAC,sCAAsC,CAAC;aACpD;;sBAQI,oDAAM;uBAAC,wEAAe;;;;;;;;;;;;;;AEZ3B;AAAA;AAAO,MAAM,YAAY,GAAwB;IAC/C,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE,IAAI;IAChB,MAAM,EAAE,GAAG;IACX,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,MAAM;IACjB,KAAK,EAAE,MAAM;IACb,QAAQ,EAAE,GAAG;IACb,SAAS,EAAE,KAAK;IAChB,aAAa,EAAE,IAAI;IACnB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,oBAAoB;IACjC,yBAAyB,EAAE,EAAE;IAC7B,eAAe,EAAE,EAAE;IACnB,eAAe,EAAE,EAAE;IACnB,KAAK,EAAE;QACL,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE;QACjC,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,iBAAiB,EAAE;QACrD,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;QACrC,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,eAAe,EAAE;KAClD;IACD,aAAa,EAAE;QACb;YACE,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,OAAO;SACf;QACD;YACE,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,SAAS;SACjB;QACD;YACE,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,WAAW;YAClB,GAAG,EAAE,IAAI;SACV;KACF;IACD,SAAS,EAAE,UAAU;IACrB,qBAAqB,EAAE,KAAK;IAC5B,QAAQ,EAAE,IAAI;IACd,eAAe,EAAE,KAAK;IACtB,oBAAoB,EAAE;QACpB,EAAE;QACF,EACC;KACF;CACF,CAAC;AAEA,0BAA0B;AAC1B,aAAa;AACb,YAAY;AACZ,YAAY;AACZ,cAAc;AACd,iBAAiB;AACjB,qBAAqB;AACrB,iBAAiB;AACjB,mBAAmB;AACnB,mBAAmB;AACnB,qBAAqB;AACrB,oBAAoB;AACpB,mBAAmB;AACnB,cAAc;AACd,eAAe;AACf,2BAA2B;AAC3B,yBAAyB;AACzB,eAAe;AACf,iBAAiB;AACjB,MAAM;AACN,kBAAkB;AAClB,eAAe;AACf,qBAAqB;AACrB,mBAAmB;AACnB,UAAU;AACV,YAAY;AACZ,iBAAiB;AACjB,iBAAiB;AACjB,0BAA0B;AAC1B,kBAAkB;AAClB,qBAAqB;AACrB,MAAM;AACN,IAAI;;;;;;;;;;;;;AClFN;AAAA;AAAO,MAAM,aAAa,GAAG;IAC3B,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;CACV,CAAC;;;;;;;;;;;;;AC9JF;AAAA;AAAO,MAAM,GAAG,GAAG;IACjB,MAAM,EAAE;QACN,gBAAgB,EAAE,uBAAuB;KAC1C;IACD,MAAM,EAAE;QACN,0BAA0B,EAAE,qCAAqC;QACjE,sBAAsB,EAAC,oBAAoB;KAC5C;IAGD,UAAU,EAAE,oBAAoB;IAEhC,mBAAmB,EAAE;QACnB,UAAU,EAAE,EAAE;QACd,cAAc,EAAE;YACd,EAAE;YACF,EAAE;YACF,EAAE;SACH;KACF;IACD,gBAAgB,EAAC;QACf,0BAA0B,EAAE,0CAA0C;QACtE,QAAQ,EAAC,+BAA+B;QACxC,4BAA4B,EAAE,4CAA4C;KAC3E;IACD,UAAU,EAAC;QACT,QAAQ,EAAE,kBAAkB;QAC5B,QAAQ,EAAE,kBAAkB;QAC5B,IAAI,EAAE,YAAY;QAClB,kCAAkC,EAAE,0DAA0D;QAC9F,+BAA+B,EAAE,yCAAyC;QAC1E,0BAA0B,EAAE,oCAAoC;QAChE,QAAQ,EAAE,kBAAkB;QAC5B,6BAA6B,EAAE,uCAAuC;QACtE,yCAAyC,EAAE,4EAA4E;QACvH,yBAAyB,EAAE,iDAAiD;QAC5E,yBAAyB,EAAE,iDAAiD;QAC5E,+BAA+B,EAAE,kEAAkE;KACpG;IACD,OAAO,EAAE;QACP,MAAM,EAAE,gBAAgB;QACxB,YAAY,EAAE,wBAAwB;QACtC,YAAY,EAAE,wBAAwB;QACtC,kBAAkB,EAAE,uBAAuB;QAC3C,kBAAkB,EAAE,wBAAwB;QAC5C,aAAa,EAAE,+BAA+B;QAC9C,wBAAwB,EAAE,wDAAwD;QAClF,8BAA8B,EAAE,iDAAiD;QACjF,sBAAsB,EAAE,uCAAuC;QAC/D,wBAAwB,EAAE,wCAAwC;KACnE;IACD,aAAa,EAAE;QACb,2BAA2B,EAAE,gDAAgD;QAC7E,yBAAyB,EAAE,4CAA4C;QACvE,uCAAuC,EAAC,qEAAqE;QAC7G,gBAAgB,EAAC,iDAAiD;QAClE,aAAa,EAAC,sCAAsC;QACpD,aAAa,EAAE,kBAAkB;QACjC,QAAQ,EAAE,wBAAwB;KACnC;IACD,mBAAmB,EAAE;QACnB,qBAAqB,EAAE,yCAAyC;QAChE,MAAM,EAAE,4CAA4C;QACpD,MAAM,EAAE,oEAAoE;QAC5E,gBAAgB,EAAE,oCAAoC;KACvD;IACD,2BAA2B,EAAE;QAC3B,+CAA+C,EAAE,iFAAiF;QAClI,8BAA8B,EAAE,mCAAmC;QACnE,gCAAgC,EAAE,mCAAmC;QACrE,WAAW,EAAE,qBAAqB;QAClC,qBAAqB,EAAG,0BAA0B;KACnD;IACD,kBAAkB,EAAE;QAClB,qBAAqB,EAAE,0BAA0B;QACjD,qBAAqB,EAAE,0BAA0B;QACjD,wBAAwB,EAAE,0BAA0B;QACpD,wBAAwB,EAAE,8CAA8C;KACzE;IACD,QAAQ,EAAE;QACR,sBAAsB,EAAE,8BAA8B;QACtD,UAAU,EAAE,oBAAoB;KACjC;IACD,gBAAgB,EAAE;QAChB,UAAU,EAAE,kCAAkC;QAC9C,UAAU,EAAE,4BAA4B;QACxC,sBAAsB,EAAE,uCAAuC;QAC/D,iBAAiB,EAAE,yCAAyC;QAC5D,gBAAgB,EAAE,gCAAgC;QAClD,2BAA2B,EAAG,uCAAuC;QACrE,+BAA+B,EAAG,4CAA4C;KAC/E;IACD,iBAAiB,EAAE;QACjB,oBAAoB,EAAE,2BAA2B;QACjD,oBAAoB,EAAE,2BAA2B;QACjD,oBAAoB,EAAE,0BAA0B;KACjD;IACD,YAAY,EAAE;QACZ,oBAAoB,EAAE,0CAA0C;QAChE,gBAAgB,EAAE,oBAAoB;QACtC,UAAU,EAAE,oBAAoB;QAChC,wBAAwB,EAAE,4CAA4C;QACtE,sCAAsC,EAAE,kDAAkD;QAC1F,qBAAqB,EAAE,uDAAuD;QAC9E,oBAAoB,EAAE,0CAA0C;QAChE,gCAAgC,EAAE,+DAA+D;QACjG,uBAAuB,EAAE,yCAAyC;QAClE,sBAAsB,EAAE,0BAA0B;QAClD,gBAAgB,EAAE,mCAAmC;QACrD,+BAA+B,EAAE,+BAA+B;QAChE,YAAY,EAAE,gBAAgB;QAC9B,mBAAmB,EAAE,uBAAuB;QAC5C,6BAA6B,EAAE,qDAAqD;QACpF,gBAAgB,EAAE,kDAAkD;QACpE,yBAAyB,EAAE,qCAAqC;QAChE,qBAAqB,EAAE,4CAA4C;QACnE,qBAAqB,EAAE,qCAAqC;QAC5D,oBAAoB,EAAE,gCAAgC;QACtD,kBAAkB,EAAE,sBAAsB;QAC1C,kBAAkB,EAAE,6BAA6B;QACjD,eAAe,EAAE,gBAAgB;QACjC,oBAAoB,EAAE,qBAAqB;QAC3C,0BAA0B,EAAE,8BAA8B;QAC1D,oBAAoB,EAAE,gCAAgC;QACtD,iBAAiB,EAAE,qBAAqB;QACxC,iBAAiB,EAAE,sBAAsB;QACzC,iBAAiB,EAAE,mBAAmB;QACtC,uBAAuB,EAAE,4BAA4B;QACrD,qBAAqB,EAAE,uBAAuB;QAC9C,cAAc,EAAE,mBAAmB;QACnC,mBAAmB,EAAE,wBAAwB;QAC7C,iCAAiC,EAAE,+DAA+D;QAClG,oBAAoB,EAAE,gCAAgC;QACtD,wBAAwB,EAAE,iCAAiC;QAC3D,uBAAuB,EAAE,+BAA+B;QACxD,eAAe,EAAE,wBAAwB;QACzC,mBAAmB,EAAE,sCAAsC;QAC3D,aAAa,EAAC,sBAAsB;QACpC,gCAAgC,EAAC,0CAA0C;KAC5E;IACD,eAAe,EAAE;QACf,eAAe,EAAE,oCAAoC;QACrD,wBAAwB,EAAE,qCAAqC;QAC/D,aAAa,EAAE,iCAAiC;QAChD,WAAW,EAAE,6BAA6B;QAC1C,YAAY,EAAE,+BAA+B;QAC7C,oBAAoB,EAAE,+CAA+C;QACrE,iBAAiB,EAAE,yCAAyC;QAC5D,gBAAgB,EAAE,0DAA0D;QAC5E,iBAAiB,EAAE,wCAAwC;QAC3D,gBAAgB,EAAC,+BAA+B;QAChD,cAAc,EAAC,mCAAmC;QAClD,0BAA0B,EAAC,qCAAqC;KACjE;IACD,YAAY,EAAE;QACZ,MAAM,EAAE,sBAAsB;QAC9B,YAAY,EAAE,oCAAoC;KACnD;IAGD,6BAA6B,EAAE;QAC3B,4BAA4B,EAAE,mDAAmD;QACjF,kBAAkB,EAAE,wCAAwC;QAC5D,kBAAkB,EAAE,8BAA8B;QAClD,eAAe,EAAE,gCAAgC;QACjD,eAAe,EAAE,0CAA0C;QAC3D,mCAAmC,EAAE,2DAA2D;KACjG;IAEH,gBAAgB,EAAE;QAChB,MAAM,EAAE,wBAAwB;QAChC,QAAQ,EAAE,wBAAwB;QAClC,QAAQ,EAAE,wBAAwB;KAEnC;IACD,QAAQ,EAAE;QACR,MAAM,EAAE,eAAe;QACvB,QAAQ,EAAE,gBAAgB;QAC1B,QAAQ,EAAE,gBAAgB;KAE3B;IACD,oBAAoB,EAAE;QACpB,uBAAuB,EAAE,6CAA6C;QACtE,0BAA0B,EAAE,4BAA4B;QACxD,QAAQ,EAAE,kDAAkD;QAC5D,QAAQ,EAAE,4BAA4B;QACtC,sBAAsB,EAAE,0CAA0C;QAClE,gBAAgB,EAAC,+BAA+B;QAChD,uBAAuB,EAAC,sCAAsC;QAC9D,qBAAqB,EAAC,oCAAoC;QAC1D,SAAS,EAAC,yBAAyB;QACnC,yBAAyB,EAAC,oDAAoD;QAC9E,6BAA6B,EAAE,uDAAuD;KACvF;IAED,aAAa,EAAE;QACb,MAAM,EAAE,qBAAqB;QAC7B,QAAQ,EAAE,qBAAqB;QAC/B,QAAQ,EAAE,qBAAqB;KAChC;IACD,kBAAkB,EAAE;QAClB,MAAM,EAAE,0BAA0B;QAClC,QAAQ,EAAE,0BAA0B;QACpC,QAAQ,EAAE,0BAA0B;KACrC;IACD,mBAAmB,EAAE;QACnB,MAAM,EAAE,2CAA2C;QACnD,QAAQ,EAAE,4BAA4B;QACtC,QAAQ,EAAE,4BAA4B;QACtC,QAAQ,EAAE,6BAA6B;QACvC,kCAAkC,EAAE,kDAAkD;QACtF,wBAAwB,EAAG,4BAA4B;QACvD,mCAAmC,EAAE,iEAAiE;KACvG;IACD,aAAa,EAAE;QACb,MAAM,EAAE,qBAAqB;QAC7B,QAAQ,EAAE,qBAAqB;QAC/B,QAAQ,EAAE,qBAAqB;KAEhC;IACD,YAAY,EAAE;QACZ,MAAM,EAAE,oBAAoB;QAC5B,QAAQ,EAAE,oBAAoB;QAC9B,QAAQ,EAAE,oBAAoB;QAC9B,SAAS,EAAE,sCAAsC;QACjD,8BAA8B,EAAE,iDAAiD;QACjF,mBAAmB,EAAE,+DAA+D;KACrF;IACD,gBAAgB,EAAG;QACjB,MAAM,EAAE,wBAAwB;QAChC,QAAQ,EAAE,wBAAwB;QAClC,QAAQ,EAAE,wBAAwB;KACnC;IACD,WAAW,EAAE;QACX,MAAM,EAAE,gBAAgB;QACxB,SAAS,EAAE,iCAAiC;QAC5C,eAAe,EAAE,gDAAgD;QACjE,QAAQ,EAAE,0BAA0B;QACpC,QAAQ,EAAE,sBAAsB;QAChC,wBAAwB,EAAE,+BAA+B;KAC1D;IAED,KAAK,EAAE;QACL,mBAAmB,EAAE,kCAAkC;QACvD,oBAAoB,EAAE,oCAAoC;QAC1D,6BAA6B,EAAE,+CAA+C;QAC9E,gBAAgB,EAAE,qBAAqB;QACvC,qBAAqB,EAAE,0BAA0B;QACjD,uBAAuB,EAAE,uCAAuC;QAChE,qBAAqB,EAAE,0BAA0B;QACjD,qBAAqB,EAAE,0BAA0B;QACjD,kCAAkC,EAAE,uCAAuC;QAC3E,2BAA2B,EAAE,2BAA2B;QACxD,YAAY,EAAE,iBAAiB;QAC/B,sBAAsB,EAAE,2BAA2B;QACnD,0BAA0B,EAAE,+BAA+B;QAC3D,oBAAoB,EAAE,yBAAyB;QAC/C,gBAAgB,EAAE,sCAAsC;QACxD,UAAU,EAAE,8BAA8B;QAC1C,aAAa,EAAE,+BAA+B;QAC9C,WAAW,EAAE,gBAAgB;QAC7B,yBAAyB,EAAE,qCAAqC;QAChE,kBAAkB,EAAE,2BAA2B;QAC/C,gCAAgC,EAAE,oDAAoD;QACtF,0BAA0B,EAAE,+BAA+B;QAC3D,4BAA4B,EAAG,8CAA8C;QAC7E,2BAA2B,EAAE,4CAA4C;QACzE,eAAe,EAAE,wCAAwC;QACzD,aAAa,EAAE,8BAA8B;QAC7C,mBAAmB,EAAE,0CAA0C;QAC/D,kBAAkB,EAAE,4CAA4C;QAChE,eAAe,EAAE,uCAAuC;QACxD,iBAAiB,EAAE,+CAA+C;QAClE,gBAAgB,EAAE,qBAAqB;QACvC,gBAAgB,EAAE,qBAAqB;QACvC,gBAAgB,EAAC,qBAAqB;QACtC,sBAAsB,EAAC,gCAAgC;QACvD,aAAa,EAAC,uBAAuB;KACtC;IAED,gBAAgB,EAAE;QAChB,sBAAsB,EAAE,kCAAkC;QAC1D,yBAAyB,EAAE,+CAA+C;QAC1E,qBAAqB,EAAE,oCAAoC;QAC3D,qBAAqB,EAAE,oCAAoC;KAC5D;IAED,eAAe,EAAG;QAChB,mBAAmB,EAAE,uBAAuB;KAC7C;IAED,YAAY,EAAE;QACZ,+BAA+B,EAAE,6DAA6D;QAC9F,yBAAyB,EAAE,gDAAgD;QAC3E,0BAA0B,EAAE,mDAAmD;QAC/E,gBAAgB,EAAE,4BAA4B;QAC9C,gBAAgB,EAAE,4BAA4B;QAC9C,iBAAiB,EAAE,0CAA0C;QAC7D,wCAAwC,EAAE,6DAA6D;KACxG;IAED,WAAW,EAAE;QACX,oBAAoB,EAAE,sCAAsC;QAC5D,eAAe,EAAE,2BAA2B;QAC5C,gBAAgB,EAAE,oBAAoB;QACtC,iBAAiB,EAAE,oBAAoB;QACvC,iBAAiB,EAAG,oBAAoB;KAEzC;IACD,iBAAiB,EAAE;QACjB,oBAAoB,EAAE,yBAAyB;QAC/C,uBAAuB,EAAE,4CAA4C;QACrE,uBAAuB,EAAE,yBAAyB;QAClD,uBAAuB,EAAE,yBAAyB;KACnD;IACD,cAAc,EAAE;QACd,YAAY,EAAE,gBAAgB;QAC9B,cAAc,EAAE,gBAAgB;QAChC,cAAc,EAAE,gBAAgB;QAChC,cAAc,EAAE,iBAAiB;KAClC;IACD,aAAa,EAAE;QACb,aAAa,EAAE,eAAe;QAC9B,0BAA0B,EAAC,6BAA6B;QACxD,gBAAgB,EAAE,eAAe;QACjC,gBAAgB,EAAE,eAAe;QACjC,gBAAgB,EAAE,wBAAwB;KAC3C;IACE,WAAW,EAAE;QACZ,kBAAkB,EAAE,oBAAoB;QACxC,WAAW,EAAE,oBAAoB;QACjC,WAAW,EAAE,uBAAuB;QACpC,sBAAsB,EAAE,sCAAsC;QAC9D,oBAAoB,EAAE,6CAA6C;QACnE,WAAW,EAAE,qBAAqB;QAClC,gBAAgB,EAAE,4CAA4C;QAC9D,0BAA0B,EAAE,2CAA2C;QACvE,yBAAyB,EAAE,wDAAwD;QACnF,yBAAyB,EAAE,wDAAwD;QACnF,mBAAmB,EAAE,uDAAuD;QAC5E,mBAAmB,EAAE,uDAAuD;QAC5E,mBAAmB,EAAE,uDAAuD;QAC5E,mBAAmB,EAAE,uDAAuD;QAC5E,uBAAuB,EAAE,2DAA2D;QACpF,uBAAuB,EAAE,2DAA2D;QACpF,qBAAqB,EAAE,yDAAyD;QAChF,qBAAqB,EAAE,yDAAyD;QAChF,aAAa,EAAE,4CAA4C;QAC3D,iBAAiB,EAAE,uCAAuC;KAC7D;IACA,WAAW,EAAE;QACX,kBAAkB,EAAE,qCAAqC;QACxD,mBAAmB,EAAE,yBAAyB;QAC9C,mBAAmB,EAAE,gDAAgD;QACrE,4BAA4B,EAAE,wBAAwB;QACtD,WAAW,EAAE,sBAAsB;QACnC,UAAU,EAAE,iCAAiC;QAC7C,UAAU,EAAE,qBAAqB;QACjC,WAAW,EAAE,uCAAuC;KACvD;IAED,aAAa,EAAE;QACb,wBAAwB,EAAE,gCAAgC;QAC1D,WAAW,EAAC,wBAAwB;QACpC,QAAQ,EAAC,qBAAqB;QAC9B,WAAW,EAAC,wBAAwB;QACpC,eAAe,EAAC,4BAA4B;QAC5C,cAAc,EAAC,2BAA2B;QAC1C,aAAa,EAAC,0BAA0B;QACxC,6BAA6B,EAAC,0CAA0C;QACxE,yBAAyB,EAAC,sCAAsC;QAChE,yBAAyB,EAAC,sCAAsC;QAChE,mBAAmB,EAAE,kDAAkD;QACvE,eAAe,EAAE,4BAA4B;QAC7C,WAAW,EAAC,wBAAwB;KACrC;IAED,YAAY,EAAE;QACZ,eAAe,EAAE,iBAAiB;QAClC,YAAY,EAAE,kCAAkC;KACjD;IACD,eAAe,EAAE;QACf,kBAAkB,EAAE,uCAAuC;QAC3D,yBAAyB,EAAE,6DAA6D;QACxF,gCAAgC,EAAG,sEAAsE;KAC1G;IACD,kBAAkB,EAAE;QAClB,yBAAyB,EAAE,gEAAgE;QAC3F,8BAA8B,EAAE,qDAAqD;QACrF,SAAS,EAAE,0CAA0C;QACrD,wBAAwB,EAAE,4CAA4C;QACtE,2BAA2B,EAAG,+CAA+C;QAC7E,2CAA2C,EAAG,2CAA2C;KAC1F;IAED,SAAS,EAAE;QACT,MAAM,EAAE,gBAAgB;QACxB,QAAQ,EAAE,gBAAgB;QAC1B,QAAQ,EAAE,gBAAgB;KAC3B;IAED,cAAc,EAAE;QACd,MAAM,EAAE,sBAAsB;QAC9B,QAAQ,EAAE,sBAAsB;QAChC,QAAQ,EAAE,sBAAsB;KACjC;IACD,gBAAgB,EAAE;QAChB,MAAM,EAAE,wBAAwB;QAChC,QAAQ,EAAE,wBAAwB;QAClC,QAAQ,EAAE,wBAAwB;QAClC,oBAAoB,EAAE,oCAAoC;KAC3D;IACD,QAAQ,EAAE;QACR,MAAM,EAAE,gBAAgB;QACxB,QAAQ,EAAE,gBAAgB;QAC1B,QAAQ,EAAE,gBAAgB;KAC3B;IACD,aAAa,EAAC;QACZ,MAAM,EAAE,qBAAqB;QAC7B,QAAQ,EAAE,qBAAqB;QAC/B,QAAQ,EAAE,qBAAqB;KAChC;IACD,YAAY,EAAE;QACZ,MAAM,EAAE,oBAAoB;QAC5B,QAAQ,EAAE,qBAAqB;QAC/B,QAAQ,EAAE,qBAAqB;QAC/B,gCAAgC,EAAE,oCAAoC;KACvE;IAED,QAAQ,EAAE;QACR,MAAM,EAAE,eAAe;QACvB,QAAQ,EAAE,gBAAgB;QAC1B,QAAQ,EAAE,gBAAgB;QAC1B,uBAAuB,EAAE,8CAA8C;QACvE,yBAAyB,EAAE,mDAAmD;KAE/E;IACD,WAAW,EAAC;QACV,MAAM,EAAE,mBAAmB;QAC3B,QAAQ,EAAE,oBAAoB;QAC9B,QAAQ,EAAE,oBAAoB;KAC/B;IACD,YAAY,EAAC;QACX,MAAM,EAAE,oBAAoB;QAC5B,QAAQ,EAAE,qBAAqB;QAC/B,QAAQ,EAAE,qBAAqB;KAChC;IAED,UAAU,EAAE;QACV,gBAAgB,EAAE,0BAA0B;QAC5C,iBAAiB,EAAE,qBAAqB;QACxC,YAAY,EAAE,sBAAsB;QACpC,YAAY,EAAE,gBAAgB;QAC9B,kBAAkB,EAAE,gCAAgC;QACpD,YAAY,EAAE,iBAAiB;QAC/B,eAAe,EAAE,iBAAiB;QAClC,mBAAmB,EAAE,kCAAkC;QACvD,gBAAgB,EAAE,oCAAoC;QACtD,aAAa,EAAE,wCAAwC;QACvD,eAAe,EAAE,mCAAmC;QACpD,mBAAmB,EAAG,6BAA6B;QACnD,qBAAqB,EAAG,+BAA+B;QACvD,qBAAqB,EAAG,4BAA4B;QACpD,iBAAiB,EAAE,sCAAsC;QACzD,cAAc,EAAG,0CAA0C;QAC3D,4BAA4B,EAAC,8BAA8B;QAC3D,4BAA4B,EAAC,8BAA8B;QAC3D,6BAA6B,EAAG,oDAAoD;QACpF,WAAW,EAAG,4BAA4B;QAC1C,UAAU,EAAC,iCAAiC;QAC5C,QAAQ,EAAC,+BAA+B;KAEzC;IACD,KAAK,EAAE;QACL,mBAAmB,EAAE,mCAAmC;QACxD,WAAW,EAAE,aAAa;QAC1B,gBAAgB,EAAC,kBAAkB;QACnC,qBAAqB,EAAE,4CAA4C;QACnE,eAAe,EAAE,8BAA8B;QAC/C,QAAQ,EAAE,aAAa;QACvB,gBAAgB,EAAC,kBAAkB;QACnC,wBAAwB,EAAE,mCAAmC;QAC7D,kBAAkB,EAAG,aAAa;QAClC,uBAAuB,EAAG,kBAAkB;KAC7C;IACD,aAAa,EAAE;QACb,2BAA2B,EAAE,yCAAyC;QACtE,oBAAoB,EAAE,wCAAwC;QAC9D,4BAA4B,EAAE,mCAAmC;QACjE,yBAAyB,EAAE,+CAA+C;QAC1E,8BAA8B,EAAG,uDAAuD;KACzF;IACD,kBAAkB,EAAE;QAClB,qBAAqB,EAAE,8BAA8B;KACtD;IACD,sBAAsB,EAAE;QACtB,mBAAmB,EAAE,2BAA2B;QAChD,yBAAyB,EAAE,iDAAiD;QAC5E,kBAAkB,EAAE,0CAA0C;QAC9D,mBAAmB,EAAC,wCAAwC;KAC7D;IACD,WAAW,EAAC;QACV,oBAAoB,EAAC,8BAA8B;QACnD,qBAAqB,EAAC,+BAA+B;KACtD;IACD,UAAU,EAAC;QACT,mBAAmB,EAAE,8BAA8B;QACnD,eAAe,EAAE,0BAA0B;QAC3C,aAAa,EAAE,uBAAuB;QACtC,iBAAiB,EAAE,sBAAsB;QACzC,WAAW,EAAE,gCAAgC;QAC7C,YAAY,EAAE,kDAAkD;QAChE,MAAM,EAAE,6CAA6C;QACrD,QAAQ,EAAE,gDAAgD;KAC3D;IACD,YAAY,EAAE;QACZ,MAAM,EAAE,gDAAgD;QACxD,QAAQ,EAAE,8BAA8B;QACxC,QAAQ,EAAE,8BAA8B;QACxC,KAAK,EAAE,gCAAgC;QACvC,UAAU,EAAE,kDAAkD;QAC9D,iBAAiB,EAAC,mDAAmD;KACtE;IACD,YAAY,EAAE;QACZ,qBAAqB,EAAE,8CAA8C;QACrE,4BAA4B,EAAE,4DAA4D;QAC1F,QAAQ,EAAE,oCAAoC;QAC9C,QAAQ,EAAE,EAAE;QACZ,KAAK,EAAE,EAAE;QACT,qBAAqB,EAAE,2CAA2C;KACnE;IACD,QAAQ,EAAE;QACR,aAAa,EAAE,0BAA0B;QACzC,MAAM,EAAE,qBAAqB;QAC7B,MAAM,EAAE,iCAAiC;QACzC,QAAQ,EAAE,wBAAwB;QAClC,mBAAmB,EAAE,qDAAqD;KAC3E;IACD,mBAAmB,EAAE;QACnB,KAAK,EAAE,mCAAmC;QAC1C,QAAQ,EAAE,yBAAyB;KACpC;IACD,uBAAuB,EAAE;QACvB,mBAAmB,EAAE,0CAA0C;QAC/D,sBAAsB,EAAE,yDAAyD;QACjF,aAAa,EAAE,qCAAqC;QACpD,kBAAkB,EAAE,oDAAoD;QACxE,YAAY,EAAE,sCAAsC;QACpD,2BAA2B,EAAE,8DAA8D;QAC3F,qBAAqB,EAAE,uDAAuD;QAC9E,iBAAiB,EAAE,4DAA4D;KAChF;IACD,cAAc,EAAE;QACd,mCAAmC,EAAE,0DAA0D;QAC/F,8BAA8B,EAAE,qEAAqE;QACrG,uBAAuB,EAAE,gEAAgE;QACzF,iBAAiB,EAAE,+BAA+B;QAClD,0BAA0B,EAAE,qCAAqC;QACjE,yBAAyB,EAAE,0DAA0D;QACrF,gBAAgB,EAAE,oCAAoC;QACtD,qBAAqB,EAAG,+BAA+B;KACxD;IACD,aAAa,EAAE;QACb,mCAAmC,EAAE,6DAA6D;QAClG,8BAA8B,EAAE,8CAA8C;QAC9E,+BAA+B,EAAE,qDAAqD;KACvF;IACD,iBAAiB,EAAE;QACjB,oBAAoB,EAAE,oCAAoC;QAC1D,kBAAkB,EAAE,gCAAgC;QACpD,sBAAsB,EAAE,sCAAsC;QAC9D,uBAAuB,EAAE,2CAA2C;QACpE,2BAA2B,EAAE,8CAA8C;QAC3E,wCAAwC,EAAE,8CAA8C;QACxF,uBAAuB,EAAE,wCAAwC;QAEjE,eAAe,EAAE,iCAAiC;QAClD,qBAAqB,EAAE,uBAAuB;QAC9C,uBAAuB,EAAE,uBAAuB;QAChD,eAAe,EAAE,eAAe;QAChC,aAAa,EAAC,6BAA6B;KAC5C;IACA,SAAS,EAAE;QACV,2BAA2B,EAAE,oCAAoC;QACjE,iBAAiB,EAAE,4BAA4B;QAC/C,kBAAkB,EAAE,4BAA4B;QAChD,yBAAyB,EAAE,kCAAkC;QAC7D,6BAA6B,EAAE,6CAA6C;QAC5E,8BAA8B,EAAE,uCAAuC;QACvE,8BAA8B,EAAE,gCAAgC;QAChE,oBAAoB,EAAE,gCAAgC;QACtD,qCAAqC,EAAE,4CAA4C;QACnF,4BAA4B,EAAE,mCAAmC;QACjE,mCAAmC,EAAE,yCAAyC;QAC9E,yBAAyB,EAAE,iDAAiD;QAC5E,YAAY,EAAE,qBAAqB;QACnC,cAAc,EAAE,uBAAuB;QACvC,kBAAkB,EAAE,6BAA6B;QACjD,cAAc,EAAE,uBAAuB;QACvC,oBAAoB,EAAE,oCAAoC;QAC1D,aAAa,EAAE,sBAAsB;QACrC,iBAAiB,EAAE,qBAAqB;QACxC,qBAAqB,EAAE,gCAAgC;QACvD,gBAAgB,EAAE,2BAA2B;QAC7C,8BAA8B,EAAE,oDAAoD;QACpF,iBAAiB,EAAE,oDAAoD;QACvE,sBAAsB,EAAE,+BAA+B;QACvD,wBAAwB,EAAE,oCAAoC;QAC9D,qBAAqB,EAAE,oCAAoC;QAC3D,qBAAqB,EAAE,mCAAmC;QAC1D,yBAAyB,EAAE,wDAAwD;QACnF,6BAA6B,EAAE,kDAAkD;QACjF,2BAA2B,EAAE,4CAA4C;QACzE,8BAA8B,EAAE,sDAAsD;QACtF,6BAA6B,EAAE,qDAAqD;QACpF,yBAAyB,EAAE,wBAAwB;QACnD,yBAAyB,EAAC,kCAAkC;QAC5D,2BAA2B,EAAC,oCAAoC;QAChE,8BAA8B,EAAC,uCAAuC;QACtE,sBAAsB,EAAC,8BAA8B;QACrD,6BAA6B,EAAC,sCAAsC;QACpE,wBAAwB,EAAC,gCAAgC;QACzD,6BAA6B,EAAE,qCAAqC;QACpE,6BAA6B,EAAE,qCAAqC;QACpE,4BAA4B,EAAE,8CAA8C;QAC5E,2BAA2B,EAAE,6CAA6C;QAC1E,qCAAqC,EAAE,iDAAiD;QACxF,oCAAoC,EAAE,gDAAgD;QACtF,eAAe,EAAE,mDAAmD;QACpE,aAAa,EAAE,wCAAwC;QACvD,sBAAsB,EAAE,wCAAwC;QAChE,kCAAkC,EAAC,2CAA2C;QAC9E,sBAAsB,EAAE,wCAAwC;QAChE,qCAAqC,EAAC,8CAA8C;QACpF,kCAAkC,EAAE,2CAA2C;QAC/E,+BAA+B,EAAE,2CAA2C;QAC5E,mCAAmC,EAAE,2CAA2C;QAChF,qCAAqC,EAAE,sDAAsD;QAC7F,iBAAiB,EAAC,2CAA2C;KAC9D;IAED,cAAc,EAAE;QACd,wBAAwB,EAAE,sCAAsC;QAChE,0BAA0B,EAAE,mDAAmD;QAC/E,yBAAyB,EAAE,uCAAuC;QAClE,sBAAsB,EAAE,sCAAsC;QAC9D,4BAA4B,EAAE,uCAAuC;QACrE,yBAAyB,EAAE,sCAAsC;QACjE,yBAAyB,EAAE,6BAA6B;KACzD;IAED,WAAW,EAAE;QACX,MAAM,EAAE,6BAA6B;QACrC,MAAM,EAAE,0BAA0B;KACnC;IAED,YAAY,EAAE;QACZ,sBAAsB,EAAE,mDAAmD;QAC3E,yBAAyB,EAAE,4CAA4C;QACvE,wBAAwB,EAAE,0BAA0B;KACrD;IACD,cAAc,EAAE;QACd,8BAA8B,EAAE,uDAAuD;QACvF,4BAA4B,EAAE,qDAAqD;QACnF,eAAe,EAAE,8BAA8B;QAC/C,eAAe,EAAE,uCAAuC;QACxD,oBAAoB,EAAE,kDAAkD;QACxE,eAAe,EAAE,0CAA0C;KAC5D;IACD,wBAAwB,EAAE;QACxB,wBAAwB,EAAE,iDAAiD;QAC3E,uBAAuB,EAAE,yBAAyB;QAClD,0BAA0B,EAAE,wBAAwB;QACpD,wBAAwB,EAAE,uCAAuC;QACjE,mCAAmC,EAAE,oDAAoD;QACzF,gBAAgB,EAAE,uDAAuD;QACzE,qBAAqB,EAAE,8BAA8B;QACrD,wBAAwB,EAAE,6CAA6C;QACvE,yBAAyB,EAAE,sCAAsC;QACjE,mBAAmB,EAAE,8BAA8B;QACnD,qBAAqB,EAAE,iDAAiD;KACzE;IACD,iBAAiB,EAAE;QACjB,gBAAgB,EAAE,yBAAyB;QAC3C,eAAe,EAAE,wBAAwB;QACzC,mBAAmB,EAAE,wCAAwC;QAC7D,kBAAkB,EAAE,2BAA2B;QAC/C,wBAAwB,EAAE,4BAA4B;QACtD,0BAA0B,EAAE,kCAAkC;QAC9D,yBAAyB,EAAE,6CAA6C;KACzE;IACD,QAAQ,EAAE;QACR,MAAM,EAAE,8CAA8C;QACtD,MAAM,EAAE,4CAA4C;KACrD;IACD,cAAc,EAAE;QACd,MAAM,EAAE,uBAAuB;KAChC;IACD,WAAW,EAAE;QACX,MAAM,EAAE,0BAA0B;QAClC,YAAY,EAAE,wCAAwC;KACvD;IAGD,4BAA4B,EAAE;QAC5B,yBAAyB,EAAE,iDAAiD;QAC5E,2BAA2B,EAAE,gDAAgD;QAC7E,wBAAwB,EAAE,8CAA8C;QACxE,4BAA4B,EAAE,iDAAiD;KAChF;IACD,qBAAqB,EAAE;QACrB,kCAAkC,EAAE,8CAA8C;QAClF,0BAA0B,EAAE,4CAA4C;QACxE,0BAA0B,EAAE,+DAA+D;QAC3F,kBAAkB,EAAE,6BAA6B;QACjD,qBAAqB,EAAE,iCAAiC;QACxD,YAAY,EAAE,0CAA0C;QACxD,qBAAqB,EAAE,oDAAoD;QAC3E,+BAA+B,EAAE,8DAA8D;QAC/F,6BAA6B,EAAE,sDAAsD;QACrF,2BAA2B,EAAE,uCAAuC;QACpE,uBAAuB,EAAE,wDAAwD;QACjF,kCAAkC,EAAE,kDAAkD;QACtF,yBAAyB,EAAE,4DAA4D;QACvF,yCAAyC,EAAE,0EAA0E;QACrH,yBAAyB,EAAE,+CAA+C;QAC1E,wCAAwC,EAAE,oDAAoD;QAC9F,qCAAqC,EAAE,2DAA2D;QAClG,0BAA0B,EAAE,mCAAmC;QAC/D,oCAAoC,EAAE,8DAA8D;QACpG,0BAA0B,EAAE,gDAAgD;QAC5E,wBAAwB,EAAE,8CAA8C;QACxE,yCAAyC,EAAE,0EAA0E;QACrH,2BAA2B,EAAG,gDAAgD;QAC9E,8BAA8B,EAAE,2CAA2C;QAC3E,2BAA2B,EAAE,gDAAgD;QAC7E,kCAAkC,EAAE,wDAAwD;QAC5F,yCAAyC,EAAE,+DAA+D;QAC1G,8BAA8B,EAAE,oDAAoD;KACrF;IAED,4BAA4B,EAAC;QAC3B,KAAK,EAAE,8EAA8E;QACrF,QAAQ,EAAE,gEAAgE;QAC1E,QAAQ,EAAE,iFAAiF;QAC3F,yBAAyB,EAAE,qCAAqC;KACjE;IAED,sBAAsB,EAAC;QACrB,KAAK,EAAE,iEAAiE;QACxE,QAAQ,EAAE,kDAAkD;QAC5D,QAAQ,EAAE,mEAAmE;QAC7E,yBAAyB,EAAE,qCAAqC;KACjE;IAED,iCAAiC,EAAC;QAChC,KAAK,EAAE,sDAAsD;QAC7D,yBAAyB,EAAE,qCAAqC;KACjE;IAED,kBAAkB,EAAC;QACjB,KAAK,EAAE,uCAAuC;QAC9C,QAAQ,EAAE,0CAA0C;QACpD,QAAQ,EAAE,0CAA0C;KACrD;IAED,aAAa,EAAG;QACd,KAAK,EAAE,oBAAoB;QAC3B,QAAQ,EAAE,uBAAuB;QACjC,QAAQ,EAAE,uBAAuB;QACjC,wBAAwB,EAAG,wCAAwC;KACpE;IAED,4BAA4B,EAAE;QAC5B,iBAAiB,EAAE,yBAAyB;QAC5C,gBAAgB,EAAE,wBAAwB;KAC3C;IAED,0BAA0B,EAAE;QAC1B,0BAA0B,EAAE,6CAA6C;QACzE,6BAA6B,EAAE,wCAAwC;QACvE,iBAAiB,EAAE,yBAAyB;QAC5C,yBAAyB,EAAE,uCAAuC;QAClE,sBAAsB,EAAE,kCAAkC;QAC1D,oBAAoB,EAAE,kCAAkC;QACxD,sBAAsB,EAAE,oCAAoC;QAC5D,sBAAsB,EAAE,oCAAoC;QAC5D,uBAAuB,EAAE,qCAAqC;KAC/D;IACD,QAAQ,EAAE;QACR,uBAAuB,EAAE,wCAAwC;QACjE,0BAA0B,EAAE,+BAA+B;QAC3D,0BAA0B,EAAE,+BAA+B;KAC5D;IACD,UAAU,EAAE;QACV,KAAK,EAAE,kBAAkB;QACzB,QAAQ,EAAE,uBAAuB;QACjC,QAAQ,EAAE,uBAAuB;QACjC,QAAQ,EAAE,uBAAuB;QACjC,qBAAqB,EAAE,kCAAkC;QACzD,uBAAuB,EAAE,uDAAuD;QAChF,yBAAyB,EAAE,oDAAoD;KAChF;IACD,aAAa,EAAC;QACZ,2BAA2B,EAAE,wCAAwC;QACrE,QAAQ,EAAE,qBAAqB;QAC/B,QAAQ,EAAE,qBAAqB;QAC/B,QAAQ,EAAE,qBAAqB;KAEhC;IACD,uBAAuB,EAAC;QACtB,QAAQ,EAAE,gCAAgC;QAC1C,2BAA2B,EAAE,+CAA+C;QAC5E,yBAAyB,EAAE,iDAAiD;QAC5E,uBAAuB,EAAE,qDAAqD;QAC9E,8BAA8B,EAAE,mDAAmD;QACnF,8BAA8B,EAAE,qDAAqD;QACrF,yBAAyB,EAAE,iDAAiD;KAC7E;IAED,sBAAsB,EAAE;QACtB,mBAAmB,EAAE,2DAA2D;QAChF,4BAA4B,EAAE,kDAAkD;QAChF,uBAAuB,EAAE,8DAA8D;QACvF,mBAAmB,EAAE,oDAAoD;KAC1E;IAED,oBAAoB,EAAE;QACpB,0BAA0B,EAAE,8CAA8C;QAC1E,0BAA0B,EAAE,kEAAkE;QAC9F,iBAAiB,EAAE,gDAAgD;KACpE;IAED,aAAa,EAAE;QACb,QAAQ,EAAE,iCAAiC;QAC3C,QAAQ,EAAE,uBAAuB;QACjC,oBAAoB,EAAE,gCAAgC;QACtD,QAAQ,EAAE,uBAAuB;QACjC,2BAA2B,EAAG,+CAA+C;QAC7E,YAAY,EAAE,wBAAwB;QACtC,QAAQ,EAAE,2BAA2B;QACrC,iBAAiB,EAAE,0DAA0D;QAC7E,uBAAuB,EAAC,sCAAsC;QAC9D,YAAY,EAAE,2BAA2B;QACzC,yBAAyB,EAAE,yCAAyC;QACpE,4BAA4B,EAAC,4CAA4C;KAC1E;IAED,gBAAgB,EAAC;QACf,gBAAgB,EAAE,6DAA6D;QAC/E,iBAAiB,EAAE,gDAAgD;QACnE,QAAQ,EAAE,uCAAuC;QAClD,gBAAgB,EAAE,0CAA0C;KAC5D;IACD,uBAAuB,EAAC;QACtB,0CAA0C,EAAC,iEAAiE;QAC5G,yBAAyB,EAAC,gDAAgD;QAC1E,iCAAiC,EAAG,wDAAwD;QAC5F,eAAe,EAAC,8BAA8B;QAC9C,qBAAqB,EAAC,oCAAoC;QAC1D,yBAAyB,EAAC,gDAAgD;KAE3E;IACC,wBAAwB,EAAC;QACvB,oBAAoB,EAAE,4CAA4C;QAClE,kBAAkB,EAAE,0CAA0C;KAC7D;IACH,uBAAuB,EAAC;QACtB,oBAAoB,EAAE,2CAA2C;QACjE,0BAA0B,EAAE,iDAAiD;QAC7E,uBAAuB,EAAC,4BAA4B;KACrD;IACD,eAAe,EAAC;QACd,QAAQ,EAAE,uBAAuB;QACjC,QAAQ,EAAE,uBAAuB;QACjC,iBAAiB,EAAE,iCAAiC;QACpD,SAAS,EAAE,wBAAwB;QACnC,mBAAmB,EAAE,iCAAiC;KACvD;IACD,cAAc,EAAC;QACb,cAAc,EAAC,sCAAsC;QACrD,kBAAkB,EAAC,gCAAgC;KACpD;IACH,kCAAkC,EAAE;QAClC,8BAA8B,EAAE,sCAAsC;QACtE,QAAQ,EAAE,sCAAsC;KACjD;IACD,kBAAkB,EAAC;QACjB,oBAAoB,EAAC,uCAAuC;QAC5D,eAAe,EAAC,iCAAiC;QACjD,+BAA+B,EAAC,kDAAkD;QAClF,oBAAoB,EAAC,sCAAsC;QAC3D,gBAAgB,EAAC,kCAAkC;QACnD,+BAA+B,EAAC,kDAAkD;QAClF,kBAAkB,EAAC,oCAAoC;QACvD,qBAAqB,EAAE,wCAAwC;KAChE;IACD,wBAAwB,EAAG;QACzB,qCAAqC,EAAC,gDAAgD;QACtF,0BAA0B,EAAC,0CAA0C;QACrE,0BAA0B,EAAG,8CAA8C;QAC3E,kBAAkB,EAAG,kCAAkC;KACxD;IAED,oBAAoB,EAAG;QACrB,iBAAiB,EAAG,yBAAyB;QAC7C,gBAAgB,EAAG,kCAAkC;QACrD,yBAAyB,EAAG,2CAA2C;QACvE,oBAAoB,EAAE,qCAAqC;QAC3D,sBAAsB,EAAE,8BAA8B;KACvD;IAED,eAAe,EAAG;QAChB,gBAAgB,EAAG,yCAAyC;QAC5D,uBAAuB,EAAG,8CAA8C;QACxE,sBAAsB,EAAG,8CAA8C;KACxE;IAED,0BAA0B,EAAG;QAC3B,mBAAmB,EAAG,8CAA8C;QACpE,qCAAqC,EAAG,+DAA+D;QACvG,kDAAkD,EAAG,6EAA6E;QAClI,+CAA+C,EAAG,0EAA0E;QAC5H,gDAAgD,EAAG,0EAA0E;KAC9H;IAED,iBAAiB,EAAG;QAClB,iBAAiB,EAAG,iCAAiC;QACrD,iBAAiB,EAAG,iCAAiC;KACtD;CACF,CAAC;;;;;;;;;;;;;ACl6BF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AACqB;AAChE,kEAAkE;AACH;AACH;;;;;AAUrD,MAAM,WAAW;IAiBtB,YACU,IAAgB,EAChB,KAAa,EACd,mBAAwC;QAFvC,SAAI,GAAJ,IAAI,CAAY;QAChB,UAAK,GAAL,KAAK,CAAQ;QACd,wBAAmB,GAAnB,mBAAmB,CAAqB;QAnBzC,iBAAY,GAAG,EAAE,CAAC;QAcnB,cAAS,GAAG,IAAI,oEAAI,EAAE,CAAC;QAC9B,QAAG,GAAG,qEAAW,CAAC;IAKf,CAAC;IAjBJ,cAAc,CAAC,YAAiB;QAC9B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,cAAc,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;IAC9C,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IACM,QAAQ,CAAC,KAAW;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IASD,MAAM;QACJ,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAClD,CAAC;IAEM,cAAc;QACnB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,qCAAqC,EAAE;YAC1D,OAAO,EAAE,IAAI,gEAAW,CAAC;gBACvB,aAAa,EAAE,SAAS,GAAG,IAAI,CAAC,YAAY;aAC7C,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAEM,cAAc,CAAC,GAAG;QACvB,MAAM,GAAG,GAAG,qEAAW,CAAC,SAAS,GAAG,YAAY,CAAC;QACjD,cAAc,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC;QAClC,cAAc,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;QAC/B,MAAM,IAAI,GACR,+BAA+B,GAAG,GAAG,CAAC,IAAI,GAAG,YAAY,GAAG,OAAO,CAAC;QACtE,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAClC,OAAO,CAAC,CAAC;IACX,CAAC;;sEA3CU,WAAW;8FAAX,WAAW,WAAX,WAAW;6FAAX,WAAW;cADvB,wDAAU;;;;;;;;;;;;;;ACbX;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AAEgB;AACD;;;AAOnD,MAAM,WAAW;IAItB,YAAoB,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;QAHpC,QAAG,GAAG,wEAAW,CAAC,GAAG,CAAC;QACd,gBAAW,GAAC,8DAAe,CAAC,IAAI,CAAC;IAIzC,CAAC;IAED,aAAa,CAAC,eAAe;QAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,GAAG,EAAC,eAAe,CAAC;IAElD,CAAC;IAED,QAAQ;QACN,OAAO,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC;IAClC,CAAC;IAED,iDAAiD;IACjD,cAAc,CAAC,YAAiB;QAC9B,cAAc,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC;IACzC,CAAC;IAGM,oBAAoB;QAEzB,IAAI,GAAG,GAAG,wEAAW,CAAC,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC;QAChF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAC,EAAC,YAAY,EAAC,MAAM,EAAC,CAAC,CAAC;IAElD,CAAC;;sEA5BU,WAAW;8FAAX,WAAW,WAAX,WAAW,mBAHV,MAAM;6FAGP,WAAW;cAJvB,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACRD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AAEiC;AAC5B;AACiC;AACjF,4DAA4D;AACe;;;AAOpE,MAAM,aAAa;IAKtB,YAAqB,KAAiB;QAAjB,UAAK,GAAL,KAAK,CAAY;QAF9B,yBAAoB,GAAG,qEAAkC,CAAC,oBAAoB,CAAC;QAGnF,IAAI,CAAC,UAAU,GAAG,qEAAkC,CAAC,SAAS,CAAC;QAE/D,IAAI,CAAC,UAAU,GAAG,kDAAe,CAAC,MAAM,CAAC;IAE7C,CAAC;IACM,iBAAiB,CAAC,QAAgB;QACrC,IAAI,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAE,IAAI,CAAC,UAAU,CAAC,oBAAoB,GAAG,QAAQ,CAAC;QACrF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;IAC9B,CAAC;IAED,WAAW,CAAC,KAAU;QAClB,IAAI,IAAI,GAAG;YACP,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE;YACjE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE;SAC3F,CAAC;QACF,KAAK,IAAI,KAAK,IAAI,IAAI,EAAE;YACpB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;gBAAE,SAAS;YAC1C,IAAI,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE;gBAC/D,OAAO,CAAC,eAAe;aAC1B;SACJ;QACD,KAAK,CAAC,cAAc,EAAE,CAAC;IAC3B,CAAC;IAAA,CAAC;IAEK,QAAQ,CAAC,QAAgB,EAAE,YAAoB;QAClD,IAAI,CAAC,eAAe,GAAG,IAAI,4FAAe,EAAE,CAAC;QAC7C,IAAI,CAAC,eAAe,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzC,IAAI,CAAC,eAAe,CAAC,YAAY,GAAG,YAAY,CAAC;QACjD,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QACrD,OAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,CAAC;QAElD,sCAAsC;QAC9B,0BAA0B;QAC1B,0BAA0B;QAC1B,sBAAsB;QACtB,8BAA8B;QACtC,MAAM;IACV,CAAC;IAED,0BAA0B,CAAE,OAAqB;QAC7C,IAAG,OAAO,CAAC,KAAK,IAAI,IAAI,IAAI,OAAO,CAAC,KAAK,IAAI,EAAE,EAC/C;YACE,IAAI,CAAC,GAAY,OAAO,CAAC,KAAK,CAAC;YAC/B,IAAI,eAAe,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;YAC/B,IAAG,eAAe,IAAI,EAAE;gBACtB,OAAO,IAAI,CAAC;;gBAEZ,OAAO,EAAC,WAAW,EAAE,IAAI,EAAC,CAAC;SAC9B;;YAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEI,aAAa,CAAC,QAAgB;QACjC,IAAI,MAAc,CAAC;QACnB,QAAQ,QAAQ,EAAE;YACd,KAAK,mFAAc,CAAC,QAAQ;gBACxB,MAAM,GAAG,UAAU,CAAC;gBACpB,MAAM;YACV,KAAK,mFAAc,CAAC,KAAK;gBACrB,MAAM,GAAG,SAAS,CAAC;gBACnB,MAAM;YACV,KAAK,mFAAc,CAAC,oBAAoB;gBACpC,MAAM,GAAG,8BAA8B,CAAC;gBACxC,MAAM;YACV,KAAK,mFAAc,CAAC,gCAAgC;gBAChD,MAAM,GAAG,sCAAsC,CAAC;gBAChD,MAAM;YACV,+CAA+C;YAC/C,+CAA+C;YAC/C,aAAa;YACb,gDAAgD;YAChD,+CAA+C;YAC/C,aAAa;YACb,KAAK,mFAAc,CAAC,oBAAoB;gBACpC,MAAM,GAAG,0BAA0B,CAAC;gBACpC,MAAM;YACV,8CAA8C;YAC9C,4CAA4C;YAC5C,aAAa;YACb;gBACI,MAAM,GAAG,eAAe,CAAC;gBACzB,MAAM;SACb;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEM,UAAU,CAAC,cAAsB;QACpC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,CAAC;IACnD,CAAC;IAEM,UAAU,CAAC,cAAmB;QACjC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,CAAC;IACnD,CAAC;IACM,iBAAiB,CAAC,KAAU;QAC/B,IAAI,CAAM,CAAC;QACX,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC;QACnB,OAAO,CACH,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;YAClB,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC;YACnB,CAAC,IAAI,CAAC;YACN,CAAC,IAAI,EAAE;YACP,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CACvB,CAAC;IACN,CAAC;IAEM,WAAW,CAAC,QAAa,EAAE,MAAW;QACzC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC;QAC5D,OAAO,KAAK,CAAC;IACjB,CAAC;IAAA,CAAC;;0EAnHO,aAAa;gGAAb,aAAa,WAAb,aAAa,mBAFV,MAAM;6FAET,aAAa;cAHzB,wDAAU;eAAC;gBACR,UAAU,EAAE,MAAM;aACrB;;;;;;;;;;;;;;ACZD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AACH;AAEX;;AAC7B,MAAM,UAAU,GAAC,kFAAkF,CAAC;AACpG,MAAM,SAAS,GAAG,OAAO;AAMlB,MAAM,mBAAmB;IAE9B,gBAAgB,CAAC;IAEjB,aAAa,CAAC,IAAU,EAAC,aAAqB;QAC5C,MAAM,SAAS,GAAoB,0CAAU,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;QAC5G,MAAM,QAAQ,GAAkB,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,SAAS,EAAC;YAC1D,UAAU,EAAC,CAAC,MAAM,CAAC,EAAC,CAAC;QACrB,MAAM,WAAW,GAAO,0CAAU,CAAC,QAAQ,EAAE,EAAC,QAAQ,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,CAAC;QAC5E,IAAI,CAAC,WAAW,CAAC,WAAW,EAAC,aAAa,CAAC;IAC7C,CAAC;IAEO,WAAW,CAAC,MAAU,EAAE,QAAiB;QAC/C,MAAM,IAAI,GAAU,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,EAAC,EAAC,IAAI,EAAC,UAAU,EAAC,CAAC;QACxD,iDAAgB,CAAC,IAAI,EAAC,QAAQ,CAAC;IACjC,CAAC;;sFAfU,mBAAmB;sGAAnB,mBAAmB,WAAnB,mBAAmB,mBAFlB,MAAM;6FAEP,mBAAmB;cAH/B,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACVA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AAG5C,4CAA4C;AACb;AAUiC;AAChB;;;AAUzC,MAAM,iBAAiB;IAO5B,YAAoB,KAAiB;QAAjB,UAAK,GAAL,KAAK,CAAY;QACnC,IAAI,CAAC,oBAAoB,GAAG,qEAAW,CAAC,gBAAgB,CAAC;QACzD,IAAI,CAAC,UAAU,GAAG,qEAAW,CAAC,SAAS,CAAC;QACxC,IAAI,CAAC,kBAAkB,GAAG,qEAAW,CAAC,iBAAiB,CAAC;QACxD,IAAI,CAAC,qBAAqB,GAAG,qEAAW,CAAC,oBAAoB,CAAC;QAC9D,IAAI,CAAC,UAAU,GAAG,kDAAe,CAAC,UAAU,CAAC;QAC7C,IAAI,CAAC,gBAAgB,GAAG,qEAAW,CAAC,eAAe,CAAC;IACtD,CAAC;IAED,wBAAwB;QACtB,IAAI,GAAG,GAAG,IAAI,CAAC,kBAAkB,GAAG,kDAAe,CAAC,UAAU,CAAC,IAAI,CAAC;QACpE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAsB,GAAG,CAAC,CAAC;IAClD,CAAC;IAED,cAAc;QACZ,IAAI,GAAG,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;QACnE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAsB,GAAG,CAAC,CAAC;IAClD,CAAC;IAED,iBAAiB;QACf,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC;QAC9D,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAsB,GAAG,CAAC,CAAC;IAClD,CAAC;IAED,QAAQ;QACN,IAAI,GAAG,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAC7D,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAQ,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,sBAAsB,CAAC,YAAoB;QACzC,IAAI,GAAG,GACL,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,sBAAsB,GAAG,YAAY,CAAC;QAC1E,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgB,GAAG,CAAC,CAAC;IAC5C,CAAC;IAEI,oCAAoC,CAAC,UAAkB;QACtD,IAAI,GAAG,GAAG,IAAI,CAAC,kBAAkB,GAAG,kDAAe,CAAC,UAAU,CAAC,oCAAoC,GAAG,GAAG,GAAE,UAAU,CAAC;QACrH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAA2B,GAAG,CAAC,CAAC;IAC1D,CAAC;IAEH,mBAAmB,CAAC,SAAiB;QACnC,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,mBAAmB,GAAG,SAAS,CAAC;QAC5E,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,kBAAkB;QAChB,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC;QAC/D,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAQ,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,8BAA8B,CAAC,gBAAwB;QACrD,IAAI,GAAG,GACL,IAAI,CAAC,UAAU;YACf,IAAI,CAAC,UAAU,CAAC,8BAA8B;YAC9C,gBAAgB,CAAC;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,sBAAsB,CAAC,YAAoB;QACzC,IAAI,GAAG,GACL,IAAI,CAAC,kBAAkB;YACvB,IAAI,CAAC,UAAU,CAAC,qBAAqB;YACrC,YAAY,CAAC;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,oBAAoB;QAClB,IAAI,GAAG,GAAG,IAAI,CAAC,kBAAkB,GAAG,kDAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC;QAC1E,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,eAAe;QACb,IAAI,IAAI,GAAG,IAAI,CAAC,oBAAoB,GAAG,kDAAe,CAAC,aAAa,CAAC,WAAW,CAAC;QACjF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgB,IAAI,CAAC;IAC9C,CAAC;IAEC,UAAU;QACR,IAAI,IAAI,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAChE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,6BAA6B;QAC3B,IAAI,IAAI,GACN,IAAI,CAAC,qBAAqB;YAC1B,IAAI,CAAC,UAAU,CAAC,6BAA6B,CAAC;QAChD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgB,IAAI,CAAC,CAAC;IAC7C,CAAC;IAEF,iBAAiB;QACV,IAAI,GAAG,GAAG,IAAI,CAAC,kBAAkB,GAAI,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC;QACvE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgB,GAAG,CAAC,CAAC;IACjD,CAAC;IAEA,mBAAmB;QACjB,IAAI,GAAG,GACL,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc;QAC1D,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAW,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,2BAA2B,CAAC,UAAkB;QAC5C,IAAI,GAAG,GACL,IAAI,CAAC,UAAU;YACf,IAAI,CAAC,UAAU,CAAC,2BAA2B;YAC3C,UAAU,CAAC;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAS,GAAG,CAAC,CAAC;IACrC,CAAC;IAED,uBAAuB,CAAC,gBAAwB;QAC9C,IAAI,GAAG,GACL,IAAI,CAAC,UAAU;YACf,IAAI,CAAC,UAAU,CAAC,uBAAuB;YACvC,gBAAgB,CAAC;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,mBAAmB,CAAC,gBAAwB;QAC1C,IAAI,GAAG,GACL,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,mBAAmB,GAAG,gBAAgB,CAAC;QAC3E,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,mBAAmB;QACjB,IAAI,IAAI,GAAG,IAAI,CAAC,qBAAqB,GAAG,kDAAe,CAAC,aAAa,CAAC,aAAa,CAAC;QACpF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAiB,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,4BAA4B,CAAC,SAAgB;QAC3C,IAAI,IAAI,GAAG,IAAI,CAAC,qBAAqB,GAAG,kDAAe,CAAC,aAAa,CAAC,sBAAsB,GAAC,SAAS,CAAC;QACvG,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAiB,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,kBAAkB;QAChB,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC;QAC/D,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAA0B,GAAG,CAAC,CAAC;IACtD,CAAC;IAED,gBAAgB;QACd,IAAI,GAAG,GAAG,IAAI,CAAC,kBAAkB,GAAG,kDAAe,CAAC,aAAa,CAAC,eAAe,CAAC;QAClF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgB,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED,gBAAgB;QACd,IAAI,IAAI,GAAG,IAAI,CAAC,kBAAkB,GAAG,kDAAe,CAAC,aAAa,CAAC,SAAS,CAAC;QAC7E,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgB,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,mBAAmB;QACjB,IAAI,IAAI,GAAG,IAAI,CAAC,kBAAkB,GAAG,kDAAe,CAAC,MAAM,CAAC,IAAI,CAAC;QACjE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAU,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,aAAa;QACX,IAAI,IAAI,GAAG,IAAI,CAAC,kBAAkB,GAAG,kDAAe,CAAC,aAAa,CAAC,UAAU,CAAC;QAC9E,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgB,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,kBAAkB;QAChB,IAAI,IAAI,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC;QACxE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgB,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,6BAA6B;QAC3B,IAAI,IAAI,GAAG,IAAI,CAAC,kBAAkB,GAAG,kDAAe,CAAC,aAAa,CAAC,eAAe,CAAC;QACnF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgB,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,wBAAwB;QACtB,IAAI,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAG,kDAAe,CAAC,aAAa,CAAC,cAAc,CAAC;QACnF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgB,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED,kBAAkB;QAChB,IAAI,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAG,kDAAe,CAAC,aAAa,CAAC,kBAAkB,CAAC;QACvF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgB,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED,eAAe;QACb,IAAI,GAAG,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;QACpE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAoB,GAAG,CAAC,CAAC;IAChD,CAAC;IAED,iDAAiD;IACjD,oEAAoE;IACpE,oDAAoD;IACpD,IAAI;IAEJ,iBAAiB;QACf,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;QAC5D,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgB,GAAG,CAAC,CAAC;IAC5C,CAAC;IACD,eAAe;QACb,IAAI,GAAG,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;QAClE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IACD,qBAAqB;QACnB,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC;QAClE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgB,GAAG,CAAC,CAAC;IAC5C,CAAC;IACD,mBAAmB;QACjB,IAAI,GAAG,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC;QACtE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IACD,YAAY;QACV,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;QACzD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAiB,GAAG,CAAC,CAAC;IAC7C,CAAC;IACD,iBAAiB;QACf,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC;QAC9D,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgB,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED,WAAW;QACT,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QACxD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgB,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED,+BAA+B,CAC7B,gBAAwB;QAExB,IAAI,GAAG,GACL,IAAI,CAAC,UAAU;YACf,IAAI,CAAC,UAAU,CAAC,+BAA+B;YAC/C,gBAAgB,CAAC;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAQ,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,kBAAkB;QAChB,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC;QAC/D,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAQ,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,sBAAsB,CACpB,gBAAwB;QAExB,IAAI,GAAG,GACL,IAAI,CAAC,kBAAkB;YACvB,IAAI,CAAC,UAAU,CAAC,sBAAsB;YACtC,gBAAgB,CAAC;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAQ,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,aAAa;QACX,IAAI,GAAG,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QAClE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,qBAAqB,CAAC,aAAqB;QACzC,IAAI,GAAG,GACL,IAAI,CAAC,kBAAkB;YACvB,IAAI,CAAC,UAAU,CAAC,qBAAqB;YACrC,aAAa,CAAC;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAQ,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,mBAAmB,CAAC,OAAe;QACjC,IAAI,GAAG,GACL,IAAI,CAAC,gBAAgB;YACrB,kDAAe,CAAC,QAAQ,CAAC,mBAAmB;YAC5C,OAAO,CAAC;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,0BAA0B;QACxB,IAAI,GAAG,GACL,IAAI,CAAC,gBAAgB,GAAG,kDAAe,CAAC,aAAa,CAAC,iBAAiB,CAAC;QAC1E,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,cAAc;QACZ,IAAI,GAAG,GAAG,IAAI,CAAC,kBAAkB,GAAG,kDAAe,CAAC,aAAa,CAAC,cAAc;QAChF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAQ,GAAG,CAAC,CAAC;IACpC,CAAC;IACD,YAAY;QACV,IAAI,GAAG,GAAG,IAAI,CAAC,kBAAkB,GAAG,kDAAe,CAAC,aAAa,CAAC,YAAY;QAC9E,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAQ,GAAG,CAAC,CAAC;IACpC,CAAC;IACD,wBAAwB,CAAC,IAAW;QAClC,IAAI,IAAI,GAAG,IAAI,CAAC,qBAAqB,GAAG,kDAAe,CAAC,aAAa,CAAC,wBAAwB,GAAC,IAAI,CAAC;QACpG,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;;kFA9RU,iBAAiB;oGAAjB,iBAAiB,WAAjB,iBAAiB,mBAFhB,MAAM;6FAEP,iBAAiB;cAH7B,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACxBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AAEiC;AAC5B;;;AAKzC,MAAM,WAAW;IAMtB,YAAoB,KAAiB;QAAjB,UAAK,GAAL,KAAK,CAAY;QACnC,IAAI,CAAC,UAAU,GAAG,qEAAkC,CAAC,SAAS,CAAC;QAC/D,IAAI,CAAC,WAAW,GAAG,qEAAkC,CAAC,iBAAiB,CAAC;QACxE,IAAI,CAAC,aAAa,GAAG,kDAAe,CAAC,IAAI,CAAC;QAC1C,IAAI,CAAC,aAAa,GAAE,kDAAe,CAAC,IAAI,CAAC;IAC3C,CAAC;IAED,cAAc,CAAC,QAAgB;QAC7B,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,GAAG,QAAQ,CAAC;QAC1E,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IACD,wBAAwB,CAAC,QAAgB;QACvC,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,wBAAwB,GAAG,QAAQ,CAAC;QACrF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;;sEApBU,WAAW;8FAAX,WAAW,WAAX,WAAW,mBAFV,MAAM;6FAEP,WAAW;cAHvB,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACPD;AAAA;AAAA;AAAA;AAA2C;AACJ;;AAKhC,MAAM,gBAAgB;IAI3B;QAHQ,cAAS,GAAG,IAAI,oDAAe,CAAC,iBAAiB,CAAC,CAAC;QAC3D,qBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;IAElC,CAAC;IAEhB,eAAe,CAAC,YAAoB;QAClC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACpC,CAAC;;gFARU,gBAAgB;mGAAhB,gBAAgB,WAAhB,gBAAgB,mBAFf,MAAM;6FAEP,gBAAgB;cAH5B,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACLD;AAAA;AAAA;AAAA;AAA2C;AACJ;;AAKhC,MAAM,mBAAmB;IAM9B;QAHQ,kBAAa,GAAG,IAAI,oDAAe,CAAC,KAAK,CAAC,CAAC;QACnD,iBAAY,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;IAEjC,CAAC;IAEjB,SAAS,CAAC,KAAc;QACtB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;IAChC,CAAC;;sFAVU,mBAAmB;sGAAnB,mBAAmB,WAAnB,mBAAmB,mBAFlB,MAAM;6FAEP,mBAAmB;cAH/B,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACLD;AAAA;AAAA;AAAA;AAAA;AAAuE;AACI;;AAapE,MAAM,2BAA2B;IAOtC;IACA,CAAC;IAED,QAAQ,CAAC,IAAqB;QAC5B,IAAI,CAAC,EAAE,YAAY,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAG,IAAI,CAAC,UAAU,EAAC;YACjB,KAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;gBACrC,IAAI,IAAI,GAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;gBAC5B,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;aAC9B;SACF;QACD,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK;YAC5B,IAAI,OAAO,IAAI,CAAC,UAAU,IAAI,QAAQ,EAAE;gBACtC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;aACzC;YACD,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAChD,MAAM,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC,CAC/D,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI;SACxE;aACI;YACH,OAAO,IAAI,CAAC;SACb;IACH,CAAC;;sGAhCU,2BAA2B;2GAA3B,2BAA2B,6TAR3B;YACT;gBACE,OAAO,EAAE,4DAAa;gBACtB,WAAW,EAAE,gEAAU,CAAC,GAAG,EAAE,CAAC,2BAA2B,CAAC;gBAC1D,KAAK,EAAE,IAAI;aACZ;SACF;6FAEU,2BAA2B;cAXvC,uDAAS;eAAC;gBACT,QAAQ,EACN,gHAAgH;gBAClH,SAAS,EAAE;oBACT;wBACE,OAAO,EAAE,4DAAa;wBACtB,WAAW,EAAE,gEAAU,CAAC,GAAG,EAAE,CAAC,2BAA2B,CAAC;wBAC1D,KAAK,EAAE,IAAI;qBACZ;iBACF;aACF;sCAGU,UAAU;kBAAlB,mDAAK;YACG,UAAU;kBAAlB,mDAAK;;AAqCD,MAAM,iCAAiC;;gHAAjC,iCAAiC;4LAAjC,iCAAiC;mIAAjC,iCAAiC,mBAxCjC,2BAA2B,aAA3B,2BAA2B;6FAwC3B,iCAAiC;cAL7C,sDAAQ;eAAC;gBACR,YAAY,EAAE,CAAC,2BAA2B,CAAC;gBAC3C,OAAO,EAAE,CAAC,2BAA2B,CAAC;aACvC;;;;;;;;;;;;;;ACpDD;AAAA;AAAA;AAAA;AAAA;AAA8E;;;AAMvE,MAAM,+BAA+B;IAM1C,YAAoB,IAAgB,EAAU,SAAsB;QAAhD,SAAI,GAAJ,IAAI,CAAY;QAAU,cAAS,GAAT,SAAS,CAAa;QAJpE,wFAAwF;QACxF,uBAAkB,GAAkC,OAAO,CAAC;QAC5D,qBAAgB,GAAgC,KAAK,CAAC;IAGtD,CAAC;IAED,4JAA4J;IACzH,UAAU,CAAC,KAAU;QACtD,qBAAqB;QACrB,IAAI,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QAE3C,4EAA4E;QAC5E,IAAI,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC/C,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE;YAClC,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,yBAAyB,EACzB,GAAG,EACH;gBACE,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CACF,CAAC;YACF,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;SAC9C;IAEH,CAAC;;8GA9BU,+BAA+B;+GAA/B,+BAA+B;6JAA/B,sBAAkB;;6FAAlB,+BAA+B;cAH3C,uDAAS;eAAC;gBACT,QAAQ,EAAE,6BAA6B;aACxC;2LAWoC,UAAU;kBAA5C,0DAAY;mBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;;AA4B5B,MAAM,qCAAqC;;oHAArC,qCAAqC;oMAArC,qCAAqC;mIAArC,qCAAqC,mBAtCrC,+BAA+B,aAA/B,+BAA+B;6FAsC/B,qCAAqC;cALjD,sDAAQ;eAAC;gBACR,YAAY,EAAE,CAAC,+BAA+B,CAAC;gBAC/C,OAAO,EAAE,CAAC,+BAA+B,CAAC;aAC3C;;;;;;;;;;;;;;AC1CD;AAAA;AAAA;AAAA;AAAA;AAA8E;;;AAMvE,MAAM,0BAA0B;IAQrC,YAAoB,IAAgB,EAAU,SAAsB;QAAhD,SAAI,GAAJ,IAAI,CAAY;QAAU,cAAS,GAAT,SAAS,CAAa;QAPpE,mCAAmC;QAC3B,UAAK,GAAW,oCAAoC,CAAC;QAE7D,wFAAwF;QACxF,uBAAkB,GAAkC,OAAO,CAAC;QAC5D,qBAAgB,GAAgC,KAAK,CAAC;IAGtD,CAAC;IAED,4JAA4J;IAC5J,4JAA4J;IACzH,UAAU,CAAC,KAAU;QACtD,qBAAqB;QACrB,IAAI,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QAE3C,4EAA4E;QAC5E,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC3C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACpD,kEAAkE;YAClE,4JAA4J;YAE5J,IAAI;YACJ,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,6EAA6E,EAC7E,GAAG,EACH;gBACE,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CACF,CAAC;YACF,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;SAC7D;aAEI,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;YAC3B,IAAI,KAAK,CAAC,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE;gBAChD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE;oBACvJ,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,uEAAuE,EACvE,GAAG,EACH;wBACE,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CACF,CAAC;oBACF,KAAK,CAAC,cAAc,EAAE,CAAC;oBACvB,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;iBAC3B;aACF;SACF;IAEH,CAAC;;oGAvDU,0BAA0B;0GAA1B,0BAA0B;wJAA1B,sBAAkB;;6FAAlB,0BAA0B;cAHtC,uDAAS;eAAC;gBACT,QAAQ,EAAE,wBAAwB;aACnC;2LAcoC,UAAU;kBAA5C,0DAAY;mBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;;AAmD5B,MAAM,gCAAgC;;+GAAhC,gCAAgC;0LAAhC,gCAAgC;mIAAhC,gCAAgC,mBAhEhC,0BAA0B,aAA1B,0BAA0B;6FAgE1B,gCAAgC;cAL5C,sDAAQ;eAAC;gBACR,YAAY,EAAE,CAAC,0BAA0B,CAAC;gBAC1C,OAAO,EAAE,CAAC,0BAA0B,CAAC;aACtC;;;;;;;;;;;;;;ACpED;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AAGZ;AACY;AAK+D;;;;;;;;;;;;;;;;ICCpG,yEAAgF;IAAA,mEAAO;IAAA,4DAAK;;;IAC5F,yEAAuC;IAAA,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,0FAAyB;;;IAIhE,yEAAgF;IAAA,mGAChF;IAAA,4DAAK;;;IACL,yEAAuC;IAAA,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,0FAAyB;;;IAIhE,yEAAgF;IAAA,mEAAO;IAAA,4DAAK;;;IAExF,uEAAiC;IAAA,uDAAsB;IAAA,4DAAO;;;IAA7B,0DAAsB;IAAtB,uFAAsB;;;IACvD,uEAAoF;IAAA,uDAAsB;IAAA,4DAAO;;;IAA7B,0DAAsB;IAAtB,uFAAsB;;;;IAC1G,wEAAkM;IAAlD,4bAAiD;IAAC,uDAAsB;IAAA,4DAAI;;;IAA1B,0DAAsB;IAAtB,uFAAsB;;;IAH5N,yEACI;IAAA;IAAA,8HAAiC;IACjC;IAAA,8HAAoF;IACpF;IAAA,wHAAkM;IACtM;IAAA,4DAAK;;;;IAHK,0DAAyB;IAAzB,0FAAyB;IACzB,0DAA6E;IAA7E,mJAA6E;IACjB,0DAA6E;IAA7E,oJAA6E;;;IAInJ,yEACI;IAAA,qGAAY;IAAA,4DAAK;;;IADjB,2HAAiD;;;;IAGjD,+EAGI;IADgB,mbAA0B;IAC1C,gIACJ;IAAA,4DAAW;;;;IACX,+EAGI;IADgB,mbAA0B;IAC1C,gIACJ;IAAA,4DAAW;;;;IACX,+EAC+B;IAA3B,mbAA0B;IAAC,qEAAU;IAAA,4DAAW;;;;IACpD,+EAC+B;IAA3B,mbAA0B;IAAC,qEAAU;IAAA,4DAAW;;;IAdxD,yEACI;IAAA;IAAA,sIAGI;IAEJ;IAAA,sIAGI;IAEJ;IAAA,sIAC+B;IAC/B;IAAA,sIAC+B;IACnC;IAAA,4DAAK;;;;IAfD,2HAAiD;IAE7C,0DAAyD;IAAzD,6HAAyD;IAKzD,0DAAyD;IAAzD,6HAAyD;IAInD,0DAAyD;IAAzD,6HAAyD;IAEzD,0DAAyD;IAAzD,6HAAyD;;;IAKvE,yEACI;IAAA,kGAAS;IAAA,4DAAK;;;;IAEd,6EAII;IADgC,wbAAmC;IACnE,4IACJ;IAAA,4DAAS;;;;IACT,+EAGgE;IAApC,4bAAmC;IAAC,qEAAU;IAAA,4DAAW;;;;IACrF,+EACsD;IAA1B,kbAAyB;IAAC,qEAAU;IAAA,4DAAW;;;IAZ/E,yEACI;IAAA;IAAA,kIAII;IAEJ;IAAA,sIAGgE;IAChE;IAAA,sIACsD;IAC1D;IAAA,4DAAK;;;;IAXG,0DACoG;IADpG,uSACoG;IAKpG,0DACoG;IADpG,uSACoG;IAE9F,0DAA2D;IAA3D,+HAA2D;;;IAKzE,yEAEI;IAAA,mGAAU;IAAA,4DAAK;;;IAFf,gGAA8B;;;;IAI9B,6EAEI;IADgC,+aAA0B;IAC1D,4IACJ;IAAA,4DAAS;;;IAJb,yEACI;IAAA;IAAA,kIAEI;IAER;IAAA,4DAAK;;;;IALD,gGAA8B;IACJ,0DAA4D;IAA5D,iIAA4D;;;IAM9F,oEAA0D;;;IAC1D,oEAA+D;;;IAC/D,yEACI;IAAA;IAAA,yEAAiC;IAAA,qEAAU;IAAA,4DAAK;IACpD;IAAA,4DAAK;;;ADjElB,MAAM,yBAAyB;IAUpC,YAAoB,KAAa,EAAU,cAA8B,EAC/D,SAAsB,EAAU,OAA0B,EAC3D,MAAiB;QAFN,UAAK,GAAL,KAAK,CAAQ;QAAU,mBAAc,GAAd,cAAc,CAAgB;QAC/D,cAAS,GAAT,SAAS,CAAa;QAAU,YAAO,GAAP,OAAO,CAAmB;QAC3D,WAAM,GAAN,MAAM,CAAW;QAR1B,kBAAa,GAAE,EAAE,CAAC;QAIlB,mBAAc,GAAG,CAAC,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IAI1E,CAAC;IAE/B,QAAQ;QACN,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CACxB,cAAc,CAAC,+BAA+B,CAC/C,CAAC,QAAQ,CAAC;QACX,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CACrB,cAAc,CAAC,+BAA+B,CAC/C,CAAC,UAAU,CAAC;QACb,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CACtB,cAAc,CAAC,UAAU,CAC1B,CAAC,YAAY,CAAC;QACf,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAED,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAC/D;aAAM;YACL,IAAI,CAAC,cAAc,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACjE,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC/C,IAAI,CAAC,cAAc,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SACtC;IACH,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,cAAc,CAAC,6BAA6B,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,GAAU,EAAE,EAAE;YACjH,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,OAAO,CAAC;YACjC,IAAI,CAAC,cAAc,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACjE,IAAI,CAAC,cAAc,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACrC,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjD,CAAC,CAAC,CAAC;IAEL,CAAC;IACD,OAAO,CAAC,OAAO;QACb,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,iCAAiC,GAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;IAChF,CAAC;IAED,gBAAgB,CAAC,YAAiB;QAChC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,yBAAyB,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM,CAAC,YAAiB;QACtB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,uCAAuC,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC;IAE5F,CAAC;IAED,iBAAiB,CAAC,YAAiB;QACjC,2EAA2E;QAE3E,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,8BAA8B,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC;IAClF,CAAC;IAED,kBAAkB,CAAC,UAAkB;QACnC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uIAAkC,EAAE;YACrE,KAAK,EAAE,OAAO;YACd,sBAAsB;YACtB,IAAI,EAAE,EAAE,KAAK,EAAE,UAAU,EAAC;SAC3B,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;QAC/B,CAAC,CAAC;IACJ,CAAC;;kGA3EU,yBAAyB;yGAAzB,yBAAyB;;wEAOzB,8DAAO;;;;;;QCtBpB;QAAA,yEACI;QAAA;QAAA,8EACI;QAAA;QAGA;QAAA,mFACI;QAAA;QAAA,yEACI;QAAA;QAAA,4EACI;QAAA;QAAA,4EACI;QAAA;QAAA,qHAAgF;QAChF;QAAA,qHAAuC;QAC3C;QAAA,qEAAe;QAEf;QAAA,4EACI;QAAA;QAAA,qHAAgF;QAEhF;QAAA,qHAAuC;QAC3C;QAAA,qEAAe;QAEf;QAAA,4EACI;QAAA;QAAA,qHAAgF;QAChF;QAAA,qHACI;QAIR;QAAA,qEAAe;QACf;QAAA,4EACI;QAAA;QAAA,sHACI;QACJ;QAAA,uHACI;QAeR;QAAA,qEAAe;QACf;QAAA,6EACI;QAAA;QAAA,qHACI;QACJ;QAAA,qHACI;QAaR;QAAA,qEAAe;QACf;QAAA,6EACI;QAAA;QAAA,sHAEI;QACJ;QAAA,sHACI;QAKR;QAAA,qEAAe;QACf;QAAA,sHAAqD;QACrD;QAAA,sHAA0D;QAC1D;QAAA,sHACI;QAER;QAAA,4DAAQ;QACZ;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,yFACA;QAAA;QAAA,4DAAgB;QACpB;QAAA,4DAAM;QACV;QAAA,4DAAmB;QACvB;QAAA,4DAAW;QACf;QAAA,4DAAM;;QAlF2B,2DAA6B;QAA7B,0FAA6B;QAqEvB,2DAAiC;QAAjC,+FAAiC;QACxC,0DAA6C;QAA7C,gGAA6C;QAOnC,0DAAgC;QAAhC,kJAAgC;;6FDrE7D,yBAAyB;cALrC,uDAAS;eAAC;gBACT,QAAQ,EAAE,uBAAuB;gBACjC,WAAW,EAAE,oCAAoC;gBACjD,SAAS,EAAE,CAAC,oCAAoC,CAAC;aAClD;oaAO4C,SAAS;kBAAnD,uDAAS;mBAAC,WAAW,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;YACH,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AEvBtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAkD;AACkB;AAItB;AAEY;AACV;;;;;;;;;;;;;;;;;;ICapB,iFACI;IAAA,uDACJ;IAAA,4DAAa;;;IAFgD,0EAAc;IACvE,0DACJ;IADI,uJACJ;;;IAoCJ,4EACI;IAAA,oIACJ;IAAA,4DAAY;;;IAOZ,4EACI;IAAA,uIACJ;IAAA,4DAAY;;;;IANpB,0EACI;IAAA;IAAA,oFACI;IAAA;IAAA,4EAAW;IAAA,yEAAc;IAAA,0EAA0B;IAAA,4DAAC;IAAA,4DAAO;IAAA,4DAAY;IACvE;IAAA,0EAA4G;IAC5G;IAAA,0IACI;IAER;IAAA,4DAAiB;IACrB;IAAA,4DAAM;;;IAP+E,0DAA+B;IAA/B,0GAA+B;IAAhG,6LAAiE;IAEnE,0DAA0B;IAA1B,0FAA0B;IACzB,0DAA4D;IAA5D,6HAA4D;;;IASvE,4EACI;IAAA,uIACJ;IAAA,4DAAY;;;IANpB,0EACI;IAAA;IAAA,qFACI;IAAA;IAAA,4EAAW;IAAA,yEAAc;IAAA,0EAA0B;IAAA,4DAAC;IAAA,4DAAO;IAAA,4DAAY;IACvE;IAAA,0EAAiF;IACjF;IAAA,0IACI;IAER;IAAA,4DAAiB;IACrB;IAAA,4DAAM;;;IAPc,0DAA+B;IAA/B,0GAA+B;IAGhC,0DAA4D;IAA5D,6HAA4D;;;IAQ/E,mFAAmE;IAAA,6FACnE;IAAA,4DAAe;;;;IAHvB,yEACI;IAAA;IAAA,0EACI;IAAA;IAAA,8IAAmE;IAEnE;IAAA,4EACI;IADuB,4TAAiB;IACxC;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAAC,kEAAK;IAAA,4DAAS;IAC7C;IAAA,8EAAwE;IAAnB,8TAAkB;IAAC,kEAAM;IAAA,4DAAS;IAC3F;IAAA,4DAAM;IACV;IAAA,4DAAM;;;IANgB,0DAAwB;IAAxB,2FAAwB;;;IAStC,mFAA8F;IAAA,6FAC9F;IAAA,4DAAe;;;IADD,2FAA0B;;;;IAFhD,yEACI;IAAA;IAAA,0EACI;IAAA;IAAA,8IAA8F;IAE9F;IAAA,6EAAkF;IAA7B,uUAA4B;IAAC,iEAAM;IAAA,4DAAS;IACrG;IAAA,4DAAM;IACV;IAAA,4DAAM;;;IAJ2C,0DAAwB;IAAxB,2FAAwB;;ADzE1E,MAAM,uBAAuB;IAelC,YAAoB,QAAwB,EAAU,cAA8B,EAAU,SAAsB,EAC1G,OAA0B,EAAU,OAAe;QADzC,aAAQ,GAAR,QAAQ,CAAgB;QAAU,mBAAc,GAAd,cAAc,CAAgB;QAAU,cAAS,GAAT,SAAS,CAAa;QAC1G,YAAO,GAAP,OAAO,CAAmB;QAAU,YAAO,GAAP,OAAO,CAAQ;QAd7D,qBAAgB,GAAG,2DAAW,CAAC,oBAAoB,CAAC;QACpD,mBAAc,GAAiB,EAAE,CAAC;QAIlC,gBAAW,GAAG,IAAI,IAAI,EAAE,CAAC;QAGzB,mBAAc,GAAkB,IAAI,mEAAa,EAAE,CAAC;QACpD,eAAU,GAAG,EAAE,CAAC;QAChB,kBAAa,GAAG,KAAK,CAAC;QACtB,kBAAa,GAAG,KAAK,CAAC;QACtB,mBAAc,GAAG,KAAK,CAAC;IAE0C,CAAC;IAElE,QAAQ;QACN,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACtC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CACxB,cAAc,CAAC,+BAA+B,CAC/C,CAAC,QAAQ,CAAC;QACX,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CACtB,cAAc,CAAC,+BAA+B,CAC/C,CAAC,UAAU,CAAC;QACb,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CACtB,cAAc,CAAC,+BAA+B,CAC/C,CAAC,YAAY,CAAC;QACf,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IACD,qBAAqB;QACnB,IAAI,CAAC,cAAc,CAAC,6BAA6B,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YAClF,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC;YAC7B,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC;oBAChD,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;oBACvC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;iBACtC,CAAC;gBACF,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;gBACvF,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;gBACnF,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;gBACjF,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;gBACnF,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;gBACnF,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;gBAC7E,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC1B,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;oBAC3B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;iBAC3B;gBACD,IAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,EAAE,EAAC;oBACpC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;iBAC5B;gBACD,IAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE;oBAC3E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;iBAC5B;gBACD,IAAG,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAC;oBACvG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;oBAC3B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;iBAC5B;aACF;QACH,CAAC,CAAC;IACJ,CAAC;IAED,SAAS,CAAC,IAAS;QACjB,OAAO,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9C,CAAC;IAED,WAAW;QACT,IAAI,CAAC,WAAW,GAAG,IAAI,wDAAS,CAAC;YAC/B,WAAW,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAClC,cAAc,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACrC,YAAY,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACnC,WAAW,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,yDAAU,CAAC,QAAQ,CAAC;YACvD,YAAY,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACnC,YAAY,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACnC,SAAS,EAAE,IAAI,0DAAW,CAAC,KAAK,EAAE,EAAE,CAAC;SACtC,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;YAC3B,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,aAAa,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC7E,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,sBAAsB,EAAE,CAAC;SACpE;QACD,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;YAC3B,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,aAAa,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC7E,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,sBAAsB,EAAE,CAAC;SACpE;IACH,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,cAAc;aAChB,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;aAC5C,SAAS,CAAC,iBAAiB,CAAC,EAAE;YAC7B,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,iBAAiB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACvC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;oBACvB,KAAK,EAAE,GAAG,CAAC,aAAa;oBACxB,KAAK,EAAE,GAAG,CAAC,WAAW;iBACvB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,YAAY,CAAC,IAAI,CAC7E,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAC9C,CAAC;QACJ,CAAC,CAAC;YACF,CAAC,KAAU,EAAE,EAAE;gBACb,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACpB,IAAI,KAAK,CAAC,KAAK,IAAI,SAAS,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE;oBAC/C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;wBAEpC,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,8BAA8B,CAAC;wBAC5C,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;YACP,CAAC,CAAC;IACN,CAAC;IAEO,iBAAiB,CAAC,KAAK;QAC7B,IAAI,WAAW,CAAC;QAChB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,WAAW,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;SACnC;aAAM,IAAI,KAAK,KAAK,IAAI,EAAE;YACzB,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC;SAC3B;aAAM;YACL,OAAO,IAAI,CAAC,cAAc,CAAC;SAC5B;QAED,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAC3C,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CACjD,CAAC;IACJ,CAAC;IACD,MAAM;QACJ,IAAI,CAAC,cAAc,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC;QAC3E,IAAI,CAAC,cAAc,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,cAAc,CAAC;QAC3E,IAAI,CAAC,cAAc,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC;QACvE,IAAI,CAAC,cAAc,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC;QACrE,IAAI,CAAC,cAAc,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC;QACvE,IAAI,CAAC,cAAc,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY;QACtE,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC;QACjE,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;YAC3B,IAAI,CAAC,gBAAgB,EAAE;SACxB;QACD,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;YAC3B,IAAI,CAAC,cAAc,EAAE;SACtB;IAEH,CAAC;IACD,gBAAgB;QACd,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,EAAE;YACvC,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;gBAC1E,IAAI,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,IAAI,IAAI,EAAE;oBACtC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oCAAoC,EAAE,GAAG,EAAE;wBAC7D,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACH,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC;iBAC5D;qBACI;oBACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE;wBACvC,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,aAAa,CAAC;wBAC3B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;YACH,CAAC,EACC,CAAC,KAAU,EAAE,EAAE;gBACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kCAAkC,EAAE,GAAG,EAAE;oBAC3D,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACL,CAAC,CAAC;SACL;aACI;YACH,OAAO;SACR;IAEH,CAAC;IACD,cAAc;QACZ,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,EAAE;YACvC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;gBACtE,IAAI,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,IAAI,IAAI,EAAE;oBACtC,IAAG,IAAI,CAAC,cAAc,CAAC,SAAS,KAAK,IAAI,EAAC;wBACxC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iCAAiC,EAAE,GAAG,EAAE;4BAC1D,QAAQ,EAAE,IAAI;4BACd,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;qBACJ;yBACG;wBACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iCAAiC,EAAE,GAAG,EAAE;4BAC1D,QAAQ,EAAE,IAAI;4BACd,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;qBACJ;oBACD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC;iBAC5D;qBACI;oBACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE;wBACvC,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,aAAa,CAAC;wBAC3B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;YACH,CAAC,EACC,CAAC,KAAU,EAAE,EAAE;gBACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kCAAkC,EAAE,GAAG,EAAE;oBAC3D,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACL,CAAC,CAAC;SACL;aACI;YACH,OAAO;SACR;IAEH,CAAC;IACD,KAAK;QACH,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;YAC3B,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SAC1D;QACD,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;YAC3B,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SAC1D;IACH,CAAC;IACD,MAAM;QACJ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,iCAAiC,CAAC,CAAC;IAC5D,CAAC;IACD,gBAAgB;QACd,IAAI,CAAC,cAAc,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC;QAC3E,IAAI,CAAC,cAAc,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,cAAc,CAAC;QAC3E,IAAI,CAAC,cAAc,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC;QACvE,IAAI,CAAC,cAAc,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC;QACrE,IAAI,CAAC,cAAc,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC;QACvE,IAAI,CAAC,cAAc,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY;QACtE,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC;QACjE,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YACxE,IAAG,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,IAAI,IAAI,EAAC;gBACpC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,8BAA8B,EAAE,GAAG,EAAE;oBACvD,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC;aAC5D;iBACG;gBACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE;oBACvC,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;QACH,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;YACR,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iCAAiC,EAAE,GAAG,EAAE;gBAC1D,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,CAAC,aAAa,CAAC;gBAC3B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CAAC;IACJ,CAAC;;8FAjRU,uBAAuB;uGAAvB,uBAAuB;QCrBpC,8EACI;QAAA;QAAA,mFACI;QAAA;QAAA,yEACI;QAAA;QAAA,yEACE;QAAA,kHACF;QAAA,4DAAM;QACN;QAAA,yEACE;QAAA;QAAA,6EACI;QADwB,gJAAS,YAAQ,IAAC;QAC1C;QAAA,4EAAU;QAAA,sEAAU;QAAA,4DAAW;QAAA,gFACnC;QAAA,4DAAS;QACb;QAAA,4DAAM;QACN;QAAA,4DAAM;QAAC;QAAA,iEACT;QAAA;QAAA,2EACI;QAAA;QAAA,0EACI;QAAA;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAY;QAAA,sEAAS;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QAAA,4DAAY;QACnE;QAAA,uEAGA;QAAA;QAAA,4FACI;QAAA;QAAA,oIACI;;QAER;QAAA,4DAAmB;QACvB;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,sFACI;QAAA;QAAA,6EAAW;QAAA,4EAAgB;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QAAA,4DAAY;QACzE;QAAA,wEAEA;QAAA;QAAA,wFAAgF;QAChF;QAAA,uFAAiD;QACjD;QAGJ;QAAA,4DAAiB;QAErB;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,sFACI;QAAA;QAAA,6EAAW;QAAA,0EAAc;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QAAA,4DAAY;QACvE;QAAA,wEAEA;QAAA;QAAA,wFAA8E;QAC9E;QAAA,uFAA+C;QAC/C;QAGJ;QAAA,4DAAiB;QAErB;QAAA,4DAAM;QACV;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,2EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,gFAAoB;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QAAA,4DAAY;QAC7E;QAAA,2EAA0G;QAC1G;QAAA,kIACI;QAER;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,yHACI;QAQJ;QAAA,yHACI;QAQR;QAAA,4DAAM;QACV;QAAA,yHACI;QAQJ;QAAA,yHACI;QAMR;QAAA,4DAAO;QACP;QAAA,4DAAmB;QACvB;QAAA,4DAAW;;;;;QAzFG,2DAAyB;QAAzB,sFAAyB;QAG+D,0DAA+B;QAA/B,uGAA+B;QAAjG,2LAAiE;QAEtE,0DAA0B;QAA1B,uFAA0B;QAGf,0DAAyB;QAAzB,sFAAyB;QAC3B,0DAAgD;QAAhD,8JAAgD;QAOpD,0DAA+B;QAA/B,uGAA+B;QAEpC,0DAA0B;QAA1B,uFAA0B;QAEA,0DAAsB;QAAtB,oEAAsB;QAS3C,2DAA+B;QAA/B,uGAA+B;QAEpC,0DAA0B;QAA1B,uFAA0B;QAEA,0DAAoB;QAApB,oEAAoB;QAWyB,2DAA+B;QAA/B,uGAA+B;QAAjG,2LAAiE;QAEnE,0DAA0B;QAA1B,uFAA0B;QACzB,0DAA2D;QAA3D,yHAA2D;QAKzE,0DAA4C;QAA5C,kHAA4C;QAS5C,0DAAwB;QAAxB,wFAAwB;QAUhC,0DAAuB;QAAvB,qFAAuB;QASvB,0DAAyD;QAAzD,6HAAyD;;6FDvEzD,uBAAuB;cALnC,uDAAS;eAAC;gBACT,QAAQ,EAAE,qBAAqB;gBAC/B,WAAW,EAAE,kCAAkC;gBAC/C,SAAS,EAAE,CAAC,kCAAkC,CAAC;aAChD;;;;;;;;;;;;;;AEpBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAkD;AACkB;AAItB;AAEY;AACV;AACf;;;;;;;;;;;;;;;;;;ICCT,6EAEI;IADA,6TAAoB,aAAa,aAAU;IAC3C;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC9B;IAAA,4DAAS;;;IAEL,iFACI;IAAA,uDACJ;IAAA,4DAAa;;;IAFgD,2EAAc;IACvE,0DACJ;IADI,wJACJ;;;IAEJ,4EACI;IAAA,uIACJ;IAAA,4DAAY;;;IACZ,4EACI;IAAA,qJACJ;IAAA,4DAAY;;;IAUZ,4EACI;IAAA,gJACJ;IAAA,4DAAY;;;IAWZ,4EACI;IAAA,8IACJ;IAAA,4DAAY;;;IAUZ,4EACI;IAAA,uIACJ;IAAA,4DAAY;;ADzC7B,MAAM,gBAAgB;IAW3B,YAAoB,cAA8B,EAAU,SAAsB,EACxE,OAA0B;QADhB,mBAAc,GAAd,cAAc,CAAgB;QAAU,cAAS,GAAT,SAAS,CAAa;QACxE,YAAO,GAAP,OAAO,CAAmB;QAVpC,qBAAgB,GAAG,2DAAW,CAAC,oBAAoB,CAAC;QAEpD,mBAAc,GAAiB,EAAE,CAAC;QAIlC,gBAAW,GAAG,IAAI,IAAI,EAAE,CAAC;QAEzB,kBAAa,GAAkB,IAAI,mEAAa,EAAE,CAAC;IAEX,CAAC;IAEzC,QAAQ;QACN,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CACxB,cAAc,CAAC,+BAA+B,CAC/C,CAAC,QAAQ,CAAC;QACX,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CACtB,cAAc,CAAC,+BAA+B,CAC/C,CAAC,UAAU,CAAC;QACb,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CACtB,cAAc,CAAC,+BAA+B,CAC/C,CAAC,YAAY,CAAC;QACf,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IACD,SAAS,CAAC,IAAS;QACjB,OAAO,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9C,CAAC;IACD,UAAU,CAAC,SAAS,EAAE,KAAK;QACzB,IAAI,SAAS,IAAI,aAAa,EAAE;YAC9B,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;SACpD;IACH,CAAC;IACD,WAAW;QACT,IAAI,CAAC,WAAW,GAAG,IAAI,wDAAS,CAAC;YAC/B,WAAW,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,yDAAU,CAAC,QAAQ,CAAC;YACvD,cAAc,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,yDAAU,CAAC,QAAQ,CAAC;YAC1D,YAAY,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,yDAAU,CAAC,QAAQ,CAAC;YACxD,WAAW,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,yDAAU,CAAC,QAAQ,CAAC;SACxD,CAAC,CAAC;IACL,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,cAAc;aAChB,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;aAC5C,SAAS,CAAC,iBAAiB,CAAC,EAAE;YAC7B,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,UAAU,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAC7C,iBAAiB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACvC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;oBACvB,KAAK,EAAE,GAAG,CAAC,aAAa;oBACxB,KAAK,EAAE,GAAG,CAAC,WAAW;iBACvB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,YAAY,CAAC,IAAI,CAC7E,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAC9C,CAAC;QACJ,CAAC,CAAC;YACF,CAAC,KAAU,EAAE,EAAE;gBACb,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACpB,IAAI,KAAK,CAAC,KAAK,IAAI,SAAS,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE;oBAC/C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;wBAEpC,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,8BAA8B,CAAC;wBAC5C,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;YACP,CAAC,CAAC;IACN,CAAC;IAEO,iBAAiB,CAAC,KAAK;QAC7B,IAAI,WAAW,CAAC;QAChB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,WAAW,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;SACnC;aAAM,IAAI,KAAK,KAAK,IAAI,EAAE;YACzB,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC;SAC3B;aAAM;YACL,OAAO,IAAI,CAAC,cAAc,CAAC;SAC5B;QAED,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAC3C,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CACjD,CAAC;IACJ,CAAC;IACD,oBAAoB,CAAC,KAAK;QACxB,IAAI,GAAG,GAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,IAAI,KAAK,CAAC,CAAC;QAC/D,IAAG,GAAG,CAAC,iBAAiB,EAAC;YACvB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;gBAChE,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,CAAC,aAAa,CAAC;gBAC3B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACH,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;SACpD;IAEH,CAAC;IACD,oBAAoB;QAClB,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC;QACpC,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;YAC1B,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC;YAC1E,IAAI,CAAC,aAAa,CAAC,cAAc,GAAG,mCAAM,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;YACtG,IAAI,CAAC,aAAa,CAAC,YAAY,GAAG,mCAAM,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;YAClG,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC;YACpE,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;YACtC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;gBACpE,IAAI,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,IAAI,IAAI,EAAE;oBACtC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iCAAiC,EAAE,GAAG,EAAE;wBAC1D,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACH,IAAI,CAAC,KAAK,EAAE,CAAC;iBACd;qBACI;oBACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE;wBACvC,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,aAAa,CAAC;wBAC3B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;YACH,CAAC,EACC,CAAC,KAAU,EAAE,EAAE;gBACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kCAAkC,EAAE,GAAG,EAAE;oBAC3D,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACL,CAAC,CAAC;SACL;aACG;YACF,OAAO;SACR;IACH,CAAC;IACD,KAAK;QACH,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;;gFAjJU,gBAAgB;gGAAhB,gBAAgB;QCpB7B,8EACI;QAAA;QAAA,mFACI;QAAA;QAAA,0EACI;QAAA;QAAA,yEACI;QAAA;QAAA,yEACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAY;QAAA,sEAAS;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QAAA,4DAAY;QACnE;QAAA,uEAGA;QAAA;QAAA,oHAEI;QAEJ;QAAA,0FACI;QADc,2KAAkB,mDAA+C,IAAC;QAChF;QAAA,6HACI;;QAER;QAAA,4DAAmB;QACnB;QAAA,2HACI;QAEJ;QAAA,2HACI;QAER;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,4EAAgB;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QAAA,4DAAY;QACzE;QAAA,wEAEA;QAAA;QAAA,wFAAgF;QAChF;QAAA,uFAAiD;QACjD;QAAA,2HACI;QAER;QAAA,4DAAiB;QAErB;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,0EAAc;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QAAA,4DAAY;QACvE;QAAA,wEAEA;QAAA;QAAA,wFAA8E;QAC9E;QAAA,uFAA+C;QAC/C;QAAA,2HACI;QAER;QAAA,4DAAiB;QAErB;QAAA,4DAAM;QACV;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,2EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,gFAAoB;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QAAA,4DAAY;QAC7E;QAAA,2EAA+E;QAC/E;QAAA,2HACI;QAER;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACV;QAAA,4DAAM;QACV;QAAA,4DAAO;QACP;QAAA,0EACI;QAAA;QAAA,2EACI;QAAA;QAAA,8EACI;QADuB,yIAAS,WAAO,IAAC;QACxC;QAAA,6EAAU;QAAA,kEAAK;QAAA,4DAAW;QAAC,mEAAK;QAAA,4DAAS;QAC7C;QAAA,+EAAoG;QAAjC,0IAAS,0BAAsB,IAAC;QAAC,mEAAM;QAAA,4DAAS;QACvH;QAAA,4DAAM;QACV;QAAA,4DAAM;QACV;QAAA,4DAAmB;QACvB;QAAA,4DAAW;;;;;QAxEG,0DAAyB;QAAzB,sFAAyB;QAGH,0DAA+B;QAA/B,uGAA+B;QAGvC,0DAA6B;QAA7B,0FAA6B;QAEF,0DAAqC;QAArC,mGAAqC;QAIiB,0DAAyB;QAAzB,sFAAyB;QAC9F,0DAAgD;QAAhD,8JAAgD;QAIrD,0DAA4D;QAA5D,yHAA4D;QAG5D,0DAA+D;QAA/D,6HAA+D;QAM9D,0DAA+B;QAA/B,uGAA+B;QAE3B,0DAAgC;QAAhC,8EAAgC;QAEf,0DAAsB;QAAtB,oEAAsB;QAE5C,0DAA8D;QAA9D,4HAA8D;QAO7D,0DAA+B;QAA/B,uGAA+B;QAE3B,0DAA8B;QAA9B,8EAA8B;QAEb,0DAAoB;QAApB,oEAAoB;QAE1C,0DAA4D;QAA5D,0HAA4D;QAS3D,0DAA+B;QAA/B,uGAA+B;QAGhC,0DAA2D;QAA3D,yHAA2D;;6FDvCjF,gBAAgB;cAL5B,uDAAS;eAAC;gBACT,QAAQ,EAAE,aAAa;gBACvB,WAAW,EAAE,0BAA0B;gBACvC,SAAS,EAAE,CAAC,0BAA0B,CAAC;aACxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AEnB4D;AAOf;AACa;AACV;AAE2C;;;;;;;;;;;;;;;;ICDpE,0EACI;IAAA;IAAA,0EACQ;IAAA;IAAA,4EACI;IAAA;IAAA,qEAAI;IAAA,oEAAG;IAAA,uDAAwC;IAAA,4DAAI;IAAA,4DAAK;IAC5D;IAAA,4DAAY;IAChB;IAAA,4DAAM;IAClB;IAAA,4DAAM;;;;IAHqB,0DAAwC;IAAxC,+GAAwC;;;IAQR,2EAA4E;IAAA,6DAAC;IAAA,4DAAO;;;IAZ/I,yEACI;IAAA;IAAA,qIACI;IAMJ;IAAA,0EACI;IAAA;IAAA,0EACI;IAAA;IAAA,mFACI;IAAA;IAAA,4EACI;IAAA,wDAAuC;IAAA,wIAA4E;IACvH;IAAA,4DAAO;IACX;IAAA,4DAAe;IACnB;IAAA,4DAAM;IACN;IAAA,2EACI;IAAA;IAAA,qFACI;IAAA;IAAA,6EAAW;IAAA,oEAAQ;IAAA,4DAAY;IAC/B;IAAA,2EAAkG;IACtG;IAAA,4DAAiB;IACrB;IAAA,4DAAM;IACV;IAAA,4DAAM;IACV;IAAA,4DAAM;;;;;IAtBe,0DAA+B;IAA/B,uGAA+B;IAS1B,0DAAiC;IAAjC,+FAAiC;IAEvC,0DAAuC;IAAvC,+JAAuC;IAAM,0DAAgD;IAAhD,sHAAgD;IAKrF,0DAA+B;IAA/B,0GAA+B;IAER,0DAA+B;IAA/B,6FAA+B;;;;IAgB1F,0EACI;IAAA;IAAA,6EACI;IADoC,iUAAgB;IACpD,uGACJ;IAAA,4DAAS;IACT;IAAA,6EACI;IADoC,qUAAkB;IACtD,yGACJ;IAAA,4DAAS;IACb;IAAA,4DAAM;;;IA/Cd,2EACI;IAAA;IAAA,0EACI;IAAA;IAAA,mFACI;IAAA;IAAA,yEACI;IAAA;IAAA,qEAAK;IAAA,qEAAU;IAAA,4DAAK;IACpB;IAAA,+HACI;IAwBJ;IAAA,0EACI;IAAA;IAAA,yEAAO;IAAA,mEAAO;IAAA,4DAAQ;IACtB;IAAA,qFACI;IAAA;IAAA,6EAAW;IAAA,mEAAO;IAAA,4DAAY;IAC9B;IAAA,0EAAwF;IAC5F;IAAA,4DAAiB;IACrB;IAAA,4DAAM;IACV;IAAA,4DAAM;IACV;IAAA,4DAAmB;IAEnB;IAAA,8HACI;IAOR;IAAA,4DAAO;IACP;IAAA,4DAAW;;;IAhDJ,0DAA2B;IAA3B,2FAA2B;IAIA,0DAAiE;IAAjE,wGAAiE;IA2BnE,0DAA+B;IAA/B,0GAA+B;IAQtD,2DAAoB;IAApB,qFAAoB;;ADtB9B,MAAM,qBAAqB;IAmChC,YACU,gBAAkC,EAClC,MAAc,EACf,MAAiB,EACjB,EAAe,EACd,QAAwB,EACxB,SAAsB,EACtB,OAA0B;QAN1B,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,WAAM,GAAN,MAAM,CAAQ;QACf,WAAM,GAAN,MAAM,CAAW;QACjB,OAAE,GAAF,EAAE,CAAa;QACd,aAAQ,GAAR,QAAQ,CAAgB;QACxB,cAAS,GAAT,SAAS,CAAa;QACtB,YAAO,GAAP,OAAO,CAAmB;QAxCpC,qBAAgB,GAAG,2DAAW,CAAC,oBAAoB,CAAC;QAEpD,cAAS,GAAwB,IAAI,GAAG,EAAE,CAAC;QAQ3C,uBAAkB,GAAW,EAAE,CAAC;QAChC,oBAAe,GAAW,EAAE,CAAC;QAW7B,aAAQ,GAAY,KAAK,CAAC;QAC1B,aAAQ,GAAY,IAAI,CAAC;QACzB,aAAQ,GAAY,KAAK,CAAC;QAG1B,iBAAY,GAAuB,IAAI,GAAG,EAAE,CAAC;QAE7C,gBAAW,GAAG,KAAK,CAAC;QACpB,eAAU,GAAwB,IAAI,GAAG,EAAE,CAAC;IAc5C,CAAC;IAKD,QAAQ;QACN,qBAAqB;QACrB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,UAAU,CAAC;QAC3F,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACvF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAEvF,IAAI,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,IAAI,IAAI,EAAE;YACrE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAC5B,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAC1D,CAAC,QAAQ,CAAC;YACX,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;YAC5B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CACrB,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAC1D,CAAC,UAAU,CAAC;SACd;QACD,IAAG,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,IAAI,EAAC;YAC9C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY;SACnF;QACD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YAEtC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACnF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,GAAG,IAAI,wDAAS,CAAC,EAElC,CAAC,CAAC;QAGF,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,mCAAmC;QAC7F,0GAA0G;IAG3G,CAAC;IAED,6BAA6B,CAAC,YAAoB;QAEhD,IAAI,CAAC,gBAAgB,CAAC,6BAA6B,CAAC,IAAI,CAAC,KAAK,EAAC,YAAY,CAAC;aACzE,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,YAA4B,EAAC,EAAE;YAChD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,YAAY,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC;gBACpC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,UAAU,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;gBAC3E,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,UAAU,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;gBAC/E,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,UAAU,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;aAC5E;YACD,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,GAAE,EAAE;gBACrB,IAAI,CAAC,wCAAwC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5D,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC,KAAK,CACR,KAAK,GAAE;YACL,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uDAAuD,EAAE,GAAG,EAAE;gBAChF,UAAU,EAAC,CAAC,aAAa,CAAC;gBAC1B,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC;QACJ,CAAC,CAAC,CAAC;IACP,CAAC;IAGM,wCAAwC,CAAC,UAAkB;;YAChE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,MAAM,IAAI,CAAC,gBAAgB,CAAC,wCAAwC,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,SAAS,EAAE;iBAC7G,IAAI,CAAC,CAAC,YAAsC,EAAE,EAAE;gBAC/C,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACpB,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;gBACjD,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC;oBACzD,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,YAAY,CAAC,eAAe,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC;wBACpD,IAAG,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,UAAU,KAAG,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,UAAU,EAAC;4BAC9F,SAAS;yBACV;wBACD,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,GAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;wBACrE,MAAM;qBACP;oBACD,IAAG,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,aAAa,KAAG,IAAI,EAAC;wBAC5D,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,UAAU,GAAC,IAAI,CAAC;qBACrD;yBAAM;wBACN,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC;qBACxD;iBACF;gBACD,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;YACpD,CAAC,CAAC,CAAC,KAAK,CACN,KAAK,GAAE;gBACL,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACrB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,wCAAwC,EAAE,GAAG,EAAE;oBAClE,UAAU,EAAC,CAAC,aAAa,CAAC;oBAE1B,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACvB,CAAC,CAAC;YACJ,CAAC,CACF,CAAC;QACN,CAAC;KAAA;IAED,mBAAmB,CAAC,MAAc;QAChC,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAC,CAAC,EAAE,EAAC;YACpC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,EAAC,IAAI,0DAAW,CAAC,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;YAChH,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,EAAC,IAAI,0DAAW,CAAC,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;SAC5G;QACD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,SAAS,EAAC,IAAI,0DAAW,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;QACpF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAG,MAAM,KAAK,6BAA6B,EAAE;YAC3C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;SAC9B;IACH,CAAC;IAED,IAAI;QACF,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,YAAY,CAAC,IAAI,GAAC,MAAM,CAAC;QAC9B,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,uBAAuB,EAAE,CAAC,IAAI,CAAC,QAAQ,GAAE;YAC5C,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE;gBAC7C,UAAU,EAAC,CAAC,eAAe,CAAC;gBAE5B,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAE;YACd,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,qBAAqB,EAAE,GAAG,EAAE;gBAC9C,UAAU,EAAC,CAAC,aAAa,CAAC;gBAE1B,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,eAAe;QACb,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACrD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,eAAe,EAAE,CAAC;YAC9C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,sBAAsB,EAAE,CAAC;QACvD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,uBAAuB;QAEtB,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC;QACpE,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC;YACzD,IAAI,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;YAC1D,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC;YAEvD,IAAI,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;YAC1D,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC;YACxD,IAAG,KAAK,EAAC;gBACP,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,aAAa,GAAC,KAAK,CAAC;aAC1D;iBAAK;gBACJ,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,aAAa,GAAC,IAAI,CAAC;aACzD;SAEF;QACA,OAAO,IAAI,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,IAAI,CAAC,YAAY,CAAC;aACpE,SAAS,EAAE,CAAC;IACjB,CAAC;IAED,MAAM;QACJ,YAAY;QACZ,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC;YACtD,IAAG,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE;gBAClD,IAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EACvE;oBACD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,yDAAU,CAAC,YAAY,CAAC,CAAC;oBACpF,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,sBAAsB,EAAE,CAAC;iBACpE;aACF;SACF;QACJ,IAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAC;YAC1B,IAAI,CAAC,uBAAuB,EAAE,CAAC;SAChC;aACG;YACH,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,CAAC;YACtC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE;gBAC5D,QAAQ,EAAE,IAAI;gBACX,UAAU,EAAC,CAAC,aAAa,CAAC;gBAC7B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;SACH;IACF,CAAC;IAED,uBAAuB;QACrB,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,QAAQ,CAAC;QAClC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,uBAAuB,EAAE,CAAC,IAAI,CAAC,QAAQ,GAAE;YAC5C,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE;gBAC5D,UAAU,EAAC,CAAC,eAAe,CAAC;gBAE5B,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,GAAG,GAAE;gBACjC,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAE;YACd,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,yBAAyB,EAAE,GAAG,EAAE;gBAClD,UAAU,EAAC,CAAC,aAAa,CAAC;gBAE1B,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY,CAAC,OAAY,EAAE,KAAa;QAEtC,IAAI,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC;QACzC,IAAG,KAAK,IAAE,CAAC,EACX;YACE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC9D,OAAO,IAAI,CAAC;SAEb;QAED,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,YAAY,EAAE;YACnE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC9D,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAGD,MAAM;QAEJ,IAAI,UAAU,GAAsB,EAAE,CAAC;QACvC,KAAK,IAAI,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE;YACpC,UAAU,CAAC,IAAI,CAAC;gBACd,UAAU,EAAE,EAAE;gBACd,KAAK,EAAE,IAAI;gBACX,aAAa,EAAC,IAAI;gBAClB,OAAO,EAAE,EAAE;gBACX,UAAU,EAAE,KAAK;gBACjB,SAAS,EAAE,IAAI,CAAC,QAAQ;gBACxB,UAAU,EAAE,EAAE;gBACd,YAAY,EAAE,EAAE;gBAChB,WAAW,EAAE,EAAE;aAChB,CAAC,CAAC;SACJ;QACD,IAAI,CAAC,YAAY,GAAG;YAClB,UAAU,EAAE,IAAI,CAAC,KAAK;YACtB,YAAY,EAAE,IAAI,CAAC,aAAa;YAChC,OAAO,EAAE,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,eAAe,EAAE,UAAU;SAC5B;QACD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAE3B,CAAC;IAED,MAAM;QACJ,IAAG,IAAI,CAAC,WAAW,KAAK,SAAS,EAAC;YAChC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,iCAAiC,CAAC,CAAC;SAC1D;aACG;YACF,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC;SAC/C;QACD,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC;;0FAlUU,qBAAqB;qGAArB,qBAAqB;kEAgDrB,wEAAY;kEACZ,8DAAO;;;;;;QCvEpB,yEAEI;QAAA;QAAA,6FAAmE;QACnE;QACA;QAAA,4HACI;QAiDR;QAAA,4DAAM;;QAlDQ,0DAAgB;QAAhB,8EAAgB;;6FDkBjB,qBAAqB;cALjC,uDAAS;eAAC;gBACT,QAAQ,EAAE,kBAAkB;gBAC5B,WAAW,EAAE,+BAA+B;gBAC5C,SAAS,EAAE,CAAC,+BAA+B,CAAC;aAC7C;yjBAiD0B,SAAS;kBAAjC,uDAAS;mBAAC,wEAAY;YACH,IAAI;kBAAvB,uDAAS;mBAAC,8DAAO;;;;;;;;;;;;;;AEvEpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA4E;AACyB;AAIvD;AACmB;AAK6B;AAKP;AAGzB;AACQ;;;;;;;;;;;;;;;;;;;;;;;;;ICR1C,iFACI;IAAA,uDAAc;IAAA,4DAAa;;;IADa,gFAAoB;IAC5D,0DAAc;IAAd,yHAAc;;;IA8B9B,yEACI;IAAA;IAAA,oFACI;IAAA;IAAA,4EAAW;IAAA,wEAAa;IAAA,4DAAY;IACpC;IAAA,0EAA8B;IAElC;IAAA,4DAAiB;IACrB;IAAA,4DAAM;;;IALc,0DAA+B;IAA/B,0GAA+B;;;IAMnD,yEACI;IAAA;IAAA,oFACI;IAAA;IAAA,4EAAW;IAAA,mEAAQ;IAAA,4DAAY;IAC/B;IAAA,0EAA8B;IAElC;IAAA,4DAAiB;IACrB;IAAA,4DAAM;;;IALc,0DAA+B;IAA/B,0GAA+B;;;;;IAjD3D,0EACI;IAAA;IAAA,yEAEI;IAAA;IAAA,yEACI;IAAA;IAAA,oFACI;IAAA;IAAA,4EAAW;IAAA,oGAEX;IAAA,4DAAY;IACZ;IAAA,iFAEI;IADA,sWAAwB;IACxB;IAAA,gJACI;IACR;IAAA,4DAAa;IAEjB;IAAA,4DAAiB;IACrB;IAAA,4DAAM;IACN;IAAA,0EACI;IAAA;IAAA,qFACI;IAAA;IAAA,6EAAW;IAAA,kFAAsB;IAAA,4DAAY;IAC7C;IAAA,uEAEA;IAAA;IAAA,uFAAsE;IACtE;IAAA,uFAAuC;IAC3C;IAAA,4DAAiB;IACrB;IAAA,4DAAM;IACN;IAAA,0EACI;IAAA;IAAA,qFACI;IAAA;IAAA,6EAAW;IAAA,gFAAoB;IAAA,4DAAY;IAC3C;IAAA,wEACA;IAAA;IAAA,uFAAoE;IACpE;IAAA,uFAAqC;IACzC;IAAA,4DAAiB;IACrB;IAAA,4DAAM;IACN;IAAA,0EACI;IAAA;IAAA,qFACI;IAAA;IAAA,6EAAW;IAAA,uGAEX;IAAA,4DAAY;IACZ;IAAA,wEACJ;IAAA;IAAA,4DAAiB;IACrB;IAAA,4DAAM;IACN;IAAA,oIACI;IAMJ;IAAA,oIACI;IAMJ;IAAA,2EACI;IAAA;IAAA,8EACI;IADI,kUAAiB;IACrB;IAAA,4EAAU;IAAA,2FACV;IAAA,4DAAW;IAAA,uFACf;IAAA,4DAAS;IACT;IAAA,8EACI;IADkB,mUAAkB;IACpC,4FAAM;IAAA,4DAAS;IACvB;IAAA,4DAAM;IAEV;IAAA,4DAAM;IACV;IAAA,4DAAO;;;;;IAjED,yFAAyB;IAIH,0DAA+B;IAA/B,0GAA+B;IAI/B,0DAAqB;IAArB,qFAAqB;IAEjB,0DAA+B;IAA/B,sFAA+B;IAOnC,0DAA+B;IAA/B,0GAA+B;IAEA,0DAAqB;IAArB,qFAAqB;IAE/B,0DAAY;IAAZ,oEAAY;IAKjC,0DAA+B;IAA/B,0GAA+B;IAEF,0DAAqB;IAArB,qFAAqB;IAC7B,0DAAU;IAAV,oEAAU;IAK/B,0DAA+B;IAA/B,0GAA+B;IAO7B,0DAAwB;IAAxB,2FAAwB;IAOxB,0DAAwB;IAAxB,2FAAwB;;;IA4B1B,iFACI;IAAA,uDAAc;IAAA,4DAAa;;;IADa,iFAAoB;IAC5D,0DAAc;IAAd,kIAAc;;;;IAV9C,0EACI;IAAA;IAAA,yEACQ;IAAA;IAAA,yEACQ;IAAA;IAAA,oFACI;IAAA;IAAA,4EAAW;IAAA,oHAEX;IAAA,4DAAY;IACZ;IAAA,iFAEI;IADA,wWAAwB;IACxB;IAAA,gJACI;IACR;IAAA,4DAAa;IAEjB;IAAA,4DAAiB;IACrB;IAAA,4DAAM;IACd;IAAA,0EACI;IAAA;IAAA,qFACI;IAAA;IAAA,6EAAW;IAAA,qEAAS;IAAA,4DAAY;IAChC;IAAA,wEAEA;IAAA;IAAA,uFAAsE;IACtE;IAAA,uFAAuC;IAC3C;IAAA,4DAAiB;IACrB;IAAA,4DAAM;IACN;IAAA,0EACI;IAAA;IAAA,qFACI;IAAA;IAAA,6EAAW;IAAA,0EAAc;IAAA,4DAAY;IACrC;IAAA,2EAAiF;IACrF;IAAA,4DAAiB;IACrB;IAAA,4DAAM;IACN;IAAA,4DAAM;IACN;IAAA,0EACI;IAAA;IAAA,2EACI;IAAA;IAAA,8EACI;IADI,kUAAiB;IACrB;IAAA,4EAAU;IAAA,+FACV;IAAA,4DAAW;IAAA,2FACf;IAAA,4DAAS;IACT;IAAA,8EACI;IADkB,sUAAqB;IACvC,gGAAM;IAAA,4DAAS;IACvB;IAAA,4DAAM;IACV;IAAA,4DAAM;IACd;IAAA,4DAAO;;;;IAzCD,4FAA4B;IAGE,0DAA+B;IAA/B,0GAA+B;IAI/B,0DAAqB;IAArB,qFAAqB;IAEjB,0DAA+B;IAA/B,sFAA+B;IAO3C,0DAA+B;IAA/B,0GAA+B;IAGvC,0DAAsB;IAAtB,+EAAsB;IACO,0DAAY;IAAZ,qEAAY;IAKjC,0DAA+B;IAA/B,0GAA+B;;;IAyBvC,iFACI;IAAA,uDAAc;IAAA,4DAAa;;;IADa,iFAAoB;IAC5D,0DAAc;IAAd,0HAAc;;;IAGlB,4EACI;IAAA;IAAA,mEAA2D;IAC7D;IAAA,2EAAyB;IAAA,kFAAuB;IAAA,4DAAO;IACzD;IAAA,4DAAY;;;IAWR,iFAAyE;IAAA,uDACzE;IAAA,4DAAa;;;IADqC,mFAAsB;IAAC,0DACzE;IADyE,4HACzE;;;IAEJ,4EACI;IAAA;IAAA,mEAA2D;IAC7D;IAAA,2EAAyB;IAAA,kFAAuB;IAAA,4DAAO;IACzD;IAAA,4DAAY;;;IAWZ,4EACI;IAAA;IAAA,mEAA2D;IAC3D;IAAA,2EAAyB;IAAA,sFAA2B;IAAA,4DAAO;IAC/D;IAAA,4DAAY;;;;IA7ChC,0EACQ;IAAA;IAAA,0EACE;IAAA;IAAA,oFACU;IAAA;IAAA,4EAAW;IAAA,yEAAc;IAAA,4DAAY;IACrC;IAAA,iFAGA;IADC,wWAAyB;IAC1B;IAAA,gJACI;IACR;IAAA,4DAAa;IAET;IAAA,+IACI;IAGZ;IAAA,4DAAiB;IACrB;IAAA,4DAAM;IAGF;IAAA,2EACI;IAAA;IAAA,qFACI;IAAA;IAAA,6EAAW;IAAA,0EAAc;IAAA,4DAAY;IACrC;IAAA,kFAGI;IADA,2WAA2B;IAC3B;IAAA,gJAAyE;IAE7E;IAAA,4DAAa;IACb;IAAA,+IACI;IAGR;IAAA,4DAAiB;IACrB;IAAA,4DAAM;IAEN;IAAA,2EACI;IAAA;IAAA,qFACI;IAAA;IAAA,6EAAW;IAAA,6EAAiB;IAAA,4DAAY;IACxC;IAAA,wEACA;IAAA;IAAA,uFAA6E;IAE7E;IAAA,uFAA8C;IAC9C;IAAA,+IACI;IAGR;IAAA,4DAAiB;IACjB;IAAA,qFACI;IAAA;IAAA,6EAAW;IAAA,yEAAa;IAAA,4DAAY;IACpC;IAAA,2EAAiF;IACrF;IAAA,4DAAiB;IACrB;IAAA,4DAAM;IACN;IAAA,2EACI;IAAA;IAAA,8EAAmD;IAA3C,wUAAuB;IAAoB,4EAAU;IAAA,2FAC7D;IAAA,4DAAW;IAAA,iEAAK;IAAA,4DAAS;IACzB;IAAA,8EAA4E;IAArD,qUAAoB;IAAiC,kEAAM;IAAA,4DAAS;IAC/F;IAAA,4DAAM;IAClB;IAAA,4DAAO;;;;IAzDD,6FAA6B;IAET,0DAA+B;IAA/B,0GAA+B;IAIpC,0DAAyB;IAAzB,uFAAyB;IACd,0DAA+B;IAA/B,sFAA+B;IAIhC,0DAA4D;IAA5D,4HAA4D;IAS3D,0DAA+B;IAA/B,0GAA+B;IAIvC,0DAA2B;IAA3B,yFAA2B;IACf,0DAAqC;IAArC,0FAAqC;IAG1C,0DAAiE;IAAjE,kIAAiE;IAQhE,0DAAiC;IAAjC,0GAAiC;IAEJ,0DAAa;IAAb,6EAAa;IACrB,0DAAmB;IAAnB,qEAAmB;IAGzC,0DAAmE;IAAnE,oIAAmE;IAKlE,0DAA+B;IAA/B,0GAA+B;;AD7HhE,MAAM,6BAA6B;IA8DxC,YACU,QAA2C,EAC3C,gBAAqC,EACrC,OAAe,EACf,QAAqB,EACrB,QAAwB,EACxB,UAAiC,EACjC,SAAsB,EACtB,EAAe,EACf,SAA2B,EAC3B,kBAAqC;QATrC,aAAQ,GAAR,QAAQ,CAAmC;QAC3C,qBAAgB,GAAhB,gBAAgB,CAAqB;QACrC,YAAO,GAAP,OAAO,CAAQ;QACf,aAAQ,GAAR,QAAQ,CAAa;QACrB,aAAQ,GAAR,QAAQ,CAAgB;QACxB,eAAU,GAAV,UAAU,CAAuB;QACjC,cAAS,GAAT,SAAS,CAAa;QACtB,OAAE,GAAF,EAAE,CAAa;QACf,cAAS,GAAT,SAAS,CAAkB;QAC3B,uBAAkB,GAAlB,kBAAkB,CAAmB;QAvE/C,qBAAgB,GAAG,2DAAW,CAAC,oBAAoB,CAAC;QAEpD,kBAAa,GAAmB,EAAE,CAAC;QAEnC,mBAAc,GAAG,EAAE,CAAC;QACpB,aAAQ,GAAS,EAAE,CAAC;QAOpB,aAAQ,GAAY,KAAK,CAAC;QAOxB,oBAAe,GAAG,2DAAW,CAAC,oBAAoB,CAAC;QACnD,oBAAe,GAAE,EAAE,CAAC;QACpB,iBAAY,GAAY,KAAK,CAAC;QAC9B,kBAAa,GAAW,KAAK,CAAC;QAE9B,eAAU,GAAG,EAAE,CAAC;QAChB,mBAAc,GAAE,EAAE,CAAC;QAInB,yBAAoB,GAAY,KAAK,CAAC;QACtC,aAAQ,GAAY,KAAK,CAAC;QAC1B,cAAS,GAAW,cAAc,CAAC;QAEnC,oBAAe,GAAC,EAAE;QAClB,UAAK,GAAG,IAAI,IAAI,EAAE,CAAC;QACnB,kBAAa,GAAmB,IAAI,yEAAa,EAAE,CAAC;QAQpD,eAAU,GAAU,EAAE,CAAC;QACf,eAAU,GAAG,uDAAe,CAAC,MAAM,CAAC;QACpC,eAAU,GAAG,qEAAW,CAAC,oBAAoB,CAAC;QAUtD,iBAAY,GAAW,EAAE,CAAC;QAC1B,iBAAY,GAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QACjC,qBAAgB,GAAa;YAC3B,KAAK,EAAC,cAAc,EAAC,QAAQ;SAC9B,CAAC;QA6NJ,gBAAW,GAAG;YACV,UAAU,CAAC,GAAG,EAAE,CAChB,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAE3C,CAAC;QAlNG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3C,CAAC;IACH,QAAQ;QACN,IAAI,CAAC,eAAe,GAAG,IAAI,2GAAe,EAAE,CAAC;QAC7C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,UAAU,CAAC;QAC3F,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACvF,IAAI,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,IAAI,IAAI,EAAE;YACrE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAC5B,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAC1D,CAAC,QAAQ,CAAC;YACV,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;SAC9B;QACC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAExB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,IAAI,CAAC,SAAS,GAAG,IAAI,wDAAS,CAC1B;YACI,gBAAgB,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACvC,YAAY,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;SACtC,CAAC,CAAC;QAET,IAAI,CAAC,WAAW,EAAE,CAAC;QAErB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,EAAC,EAAE;YACnC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC;YAC9B,IAAG,IAAI,CAAC,SAAS,KAAK,KAAK,EAAC;gBAC1B,IAAI,CAAC,oBAAoB,EAAE,CAAC;aAC7B;YACD,IAAG,IAAI,CAAC,SAAS,KAAK,SAAS,EAAC;gBAC9B,IAAI,CAAC,WAAW,EAAE,CAAC;aACpB;YACD,IAAG,IAAI,CAAC,SAAS,KAAK,aAAa,EAAC;gBAClC,IAAI,CAAC,eAAe,EAAE,CAAC;aACxB;QACH,CAAC,CAAC;QAEF,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,EAAE;YAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;SACpB;QACD,sBAAsB;QACtB,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,WAAW,EAAE,CAAC;IAErB,CAAC;IAGD,WAAW;QACT,IAAI,CAAC,WAAW,GAAG,IAAI,wDAAS,CAAC;YAC/B,KAAK,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAC5B,iBAAiB,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACxC,eAAe,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;SAEvC,CAAC,CAAC;IACL,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,cAAc,GAAG,IAAI,wDAAS,CAAC;YAClC,QAAQ,EAAG,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACvD,YAAY,EAAG,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;SAC5D,CAAC,CAAC;IACL,CAAC;IACD,eAAe;QACb,IAAI,CAAC,eAAe,GAAG,IAAI,wDAAS,CAAC;YACnC,OAAO,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAC9B,aAAa,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACpC,eAAe,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACtC,YAAY,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;SACtC,CAAC,CAAC;IAAA,CAAC;IACL;;;;;;;;;;;;;;;;;;;;;;MAsBE;IACH,YAAY;QACV,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,SAAS,CAAC,CAAC,GAAoB,EAAE,EAAE;YACnE,IAAI,QAAQ,GAAU,GAAG,CAAC;YAC1B,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACjD,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACjB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YAC/D,CAAC,CAAC,CAAC;YACH,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE;gBACvB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAC9B;QACH,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;YACX,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,2BAA2B,EAAE,GAAG,EAAE;gBACjD,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAC,CAAC,aAAa,CAAC;gBAC1B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACL,gBAAgB;QACpB,CAAC,CACJ,CAAC;IACF,CAAC;IAGD,MAAM;QACJ,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7B,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,IAAG,OAAO,KAAK,IAAI,EAAC;YAClB,IAAI,UAAU,GAAG;gBACf,YAAY,EAAE,IAAI,CAAC,UAAU;aAE7B;YACJ,IAAI,CAAC,eAAe,GAAG,IAAI,yEAAa,EAAE,CAAC;YAC3C,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC;YAC1D,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YAClD,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC;YAC1D,IAAI,CAAC,eAAe,CAAC,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,iBAAiB,CAAC;YAClF,IAAI,CAAC,eAAe,CAAC,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,eAAe,CAAC;YAC7E,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,CAAC,EAAC,YAAY;YACjD,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,SAAS,EAAE;iBAC3E,IAAI,CAAC,GAAG,EAAE;gBAET,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,yBAAyB,EAAE,GAAG,EAAE;oBACjD,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;oBAClC,iBAAiB;oBACjB,IAAI,CAAC,KAAK,EAAE,CAAC;gBAEf,CAAC,CAAC,CAAC;YAEL,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;gBACf,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,qBAAqB,EAAE,GAAG,EAAE;oBAC7C,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAE3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,SAAS;QACP,8CAA8C;QAC9C,IAAI,OAAO,GAAG,EAAE;QAChB,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QACxC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAC1B,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,YAAY,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,OAAO,EAAC,kBAAkB,CAAC;QACvC,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE;aAC9D,IAAI,CAAC,GAAG,EAAE;YAET,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,yBAAyB,EAAE,GAAG,EAAE;gBACjD,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;gBAClC,iBAAiB;gBACjB,IAAI,CAAC,KAAK,EAAE,CAAC;YAEf,CAAC,CAAC,CAAC;QAEL,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YACf,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,qBAAqB,EAAE,GAAG,EAAE;gBAC7C,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,CAAC,aAAa,CAAC;gBAE3B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IACD,KAAK;QACH,IAAI,CAAC,WAAW,CAAC;QACjB,IAAI,CAAC,UAAU,CAAC;IAClB,CAAC;IAKC,kBAAkB;QAChB,IAAI,CAAC,kBAAkB,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,CAAC,IAAU,EAAE,EAAE;YAChE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAC,IAAI,EAAC,CAAC;YAChE,IAAI,CAAC,OAAO,CAAC,CAAC,GAAE,GAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAC,KAAK,EAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAC,CAAC,GAAC,CAAC;YACxE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACL,CAAC;IAWD,QAAQ;QACN,IAAI,CAAC,aAAa,GAAC,IAAI,CAAC;QACxB,IAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC9B,qBAAqB;YACvB,uBAAuB;YACvB,IAAI,UAAU,GAAG;gBACf,YAAY,EAAE,IAAI,CAAC,WAAW;gBAC9B,UAAU,EAAE,IAAI,CAAC,aAAa;aAC9B;YACA,IAAI,CAAC,aAAa,CAAC,UAAU,GAAE,IAAI,CAAC,WAAW,CAAC;YAChD,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,eAAe,CAAC;YACzE,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC;YACjD,IAAI,CAAC,aAAa,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,YAAY,CAAC;YAC1E,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,aAAa,CAAC;YAE5C,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;gBACrE,IAAI,GAAG,EAAE;oBACP,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,qCAAqC,EAAE,GAAG,EAAE;wBAC9D,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAC,CAAC,eAAe,CAAC;wBAC5B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACtB,CAAC,CAAC;oBACL,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;iBAC5C;qBACI,IAAG,KAAK,EAAC;oBACZ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,0BAA0B,EAAE,GAAG,EAAE;wBACnD,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAC,CAAC,eAAe,CAAC;wBAC5B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBAC5B,CAAC,CAAC;iBACJ;YACC,CAAC,CAAC;gBACF,KAAK,CAAC,EAAE;oBACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,8BAA8B,EAAE,GAAG,EAAE;wBACvD,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAC,CAAC,aAAa,CAAC;wBAC1B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;gBACL,CAAC,CAAC;SACH;IACH,CAAC;;0GA7UU,6BAA6B;6GAA7B,6BAA6B;kEAiD3B,iEAAkB;;;;;;;;;;;;;;6GAnDpB,CAAC,4FAAqB,CAAC;QChCpC,8EACI;QAAA;QAAA,mFACI;QAAA;QAAA,6HACI;QAkEJ;QAAA,6HACI;QA0CJ;QAAA,6HACQ;QAyDZ;QAAA,4DAAmB;QACvB;QAAA,4DAAW;QACX;;QA1KwC,0DAA+B;QAA/B,6FAA+B;QAmE5B,0DAA2B;QAA3B,yFAA2B;QA2CzB,0DAAmC;QAAnC,iGAAmC;;6FD9EnE,6BAA6B;cANzC,uDAAS;eAAC;gBACT,QAAQ,EAAE,4BAA4B;gBACtC,WAAW,EAAE,yCAAyC;gBACtD,SAAS,EAAE,CAAC,yCAAyC,CAAC;gBACtD,SAAS,EAAE,CAAC,4FAAqB,CAAC;aACnC;i8BAkCY,GAAG;kBAAX,mDAAK;YAgByB,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;YACA,cAAc;kBAA1C,uDAAS;mBAAC,gBAAgB;YACF,UAAU;kBAAlC,uDAAS;mBAAC,YAAY;YACI,YAAY;kBAAtC,uDAAS;mBAAC,cAAc;YACD,iBAAiB;kBAAxC,uDAAS;mBAAC,WAAW;YACC,gBAAgB;kBAAtC,uDAAS;mBAAC,UAAU;;;;;;;;;;;;;;AExFzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsF;AACC;AAC9B;AACwC;AACtC;AAEG;AAC7B;AAC4B;AACZ;AAIkE;AACpB;AACzC;;;;;;;;;;;;;;;;;;;;ICGpC,4EAAiE;IAAA,gFAAqB;IAAA,4DAAY;;;IAa1F,4EAA+D;IAAA,8EAAmB;IAAA,4DAAY;;;IAkClG,yEAAgF;IAAA,0EAAc;IAAA,4DAAK;;;IACnG,yEAAwC;IAAA,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,oGAAyB;;;IAIjE,yEAAgF;IAAA,0EAAc;IAAA,4DAAK;;;IACnG,yEAAwC;IAAA,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,oGAAyB;;;IAGjE,yEAA+E;IAAA,oEAAS;IAAA,4DAAK;;;IAC7F,yEAAwC;IAAA,uDAAqB;IAAA,4DAAK;;;IAA1B,0DAAqB;IAArB,gGAAqB;;;IAG7D,yEAAgF;IAAA,6EAAiB;IAAA,4DAAK;;;IACtG,yEAAwC;IAAA,uDAA0C;;IAAA,4DAAK;;;IAA/C,0DAA0C;IAA1C,+KAA0C;;;IAGlF,yEAAgF;IAAA,uEAAW;IAAA,4DAAK;;;IAChG,yEAAwC;IAAA,uDAA6B;IAAA,4DAAK;;;IAAlC,0DAA6B;IAA7B,wGAA6B;;;IAIrE,yEAAgF;IAAA,oEAAQ;IAAA,4DAAK;;;;IAC7F,oEAA0H;;;IAAnF,0IAA+B;;;;IAIpE,yEACwE;IAAA,uEAAW;IAAA,4DAAK;;;IAAxF,oMAAsE;;;IACtE,yEACwE;IAAA,uDAAsB;IAAA,4DAAK;;;;IAAnG,oMAAsE;IAAE,0DAAsB;IAAtB,iGAAsB;;;IAIhG,yEACuE;IAAA,sEAAW;IAAA,4DAAK;;;IAAvF,oMAAsE;;;IACtE,yEAA+G;IAAA,uDAAuB;IAAA,4DAAK;;;;IAApG,oMAAsE;IAAE,0DAAuB;IAAvB,kGAAuB;;;IAItI,yEACuE;IAAA,sEAAW;IAAA,4DAAK;;;IAAvF,oMAAsE;;;IACtE,yEAA+G;IAAA,uDAA4C;;IAAA,4DAAK;;;;IAAzH,oMAAsE;IAAE,0DAA4C;IAA5C,iLAA4C;;;IAI3J,yEACuE;IAAA,sEAAW;IAAA,4DAAK;;;IAAvF,oMAAsE;;;IACtE,yEAA+G;IAAA,uDAA4C;;IAAA,4DAAK;;;;IAAzH,oMAAsE;IAAE,0DAA4C;IAA5C,iLAA4C;;;IAI3J,yEACuE;IAAA,yEAAc;IAAA,4DAAK;;;IAA1F,oMAAsE;;;IACtE,yEAA+G;IAAA,uDAA4B;IAAA,4DAAK;;;;IAAzG,oMAAsE;IAAE,0DAA4B;IAA5B,sGAA4B;;;IAI3I,yEACuE;IAAA,kEAAO;IAAA,4DAAK;;;IAAnF,oMAAsE;;;IACtE,yEAA+G;IAAA,uDAAoB;IAAA,4DAAK;;;;IAAjG,oMAAsE;IAAE,0DAAoB;IAApB,+FAAoB;;;IAInI,yEAAgF;IAAA,mEAAO;IAAA,4DAAK;;;IAC5F,yEAAwC;IAAA,uDAAmB;IAAA,4DAAK;;;IAAxB,0DAAmB;IAAnB,8FAAmB;;;IAK3D,yEAAiF;IAAA,mEAAO;IAAA,4DAAK;;;;IAG3F,+EAAmG;IAA1B,qcAAyB;IAAC,+DAAI;IAAA,4DAAW;;;;IAClH,+EAAoG;IAA1B,qcAAyB;IAAC,qEAAU;IAAA,4DAAW;;;IAH3H,yEAEE;IAAA;IAAA,wJAAmG;IACnG;IAAA,wJAAoG;IAEpG;IAAA,4DAAK;;;IAHM,0DAAsC;IAAtC,oGAAsC;IACtC,0DAAsC;IAAtC,oGAAsC;;;IAIrD,oEAA4D;;;IAC5D,oEAAkE;;;IAClE,yEACE;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAC/C;IAAA,4DAAK;;;IAMT,0EACI;IAAA;IAAA,2FACA;IAAA;IAAA,4DAAuB;IAC3B;IAAA,4DAAM;;;;;IAzGpB,2EACE;IAAA;IAAA,0EACE;IAAA;IAAA,2EACG;IAAA;IAAA,wEAEG;IADA,qUAAoB;IACpB;IAAA,qEAAiC;IACrC;IAAA,4DAAI;IACN;IAAA,4DAAO;IACV;IAAA,4DAAM;IAEO;IAAA,2EAEE;IAAA;IAAA,6EACE;IAAA;IAAA,6EACE;IAAA;IAAA,uIAAgF;IAChF;IAAA,uIAAwC;IAC1C;IAAA,qEAAe;IAEf;IAAA,6EACE;IAAA;IAAA,uIAAgF;IAChF;IAAA,uIAAwC;IAC1C;IAAA,qEAAe;IACf;IAAA,6EACE;IAAA;IAAA,uIAA+E;IAC/E;IAAA,uIAAwC;IAC1C;IAAA,qEAAe;IACf;IAAA,6EACE;IAAA;IAAA,uIAAgF;IAChF;IAAA,uIAAwC;IAC1C;IAAA,qEAAe;IACf;IAAA,6EACE;IAAA;IAAA,uIAAgF;IAChF;IAAA,uIAAwC;IAE1C;IAAA,qEAAe;IACf;IAAA,6EACE;IAAA;IAAA,uIAAgF;IAChF;IAAA,uIAAqH;IAEvH;IAAA,qEAAe;IACf;IAAA,6EACI;IAAA;IAAA,uIACwE;IACxE;IAAA,uIACwE;IAC5E;IAAA,qEAAe;IAEf;IAAA,6EACE;IAAA;IAAA,uIACuE;IACvE;IAAA,uIAA+G;IACjH;IAAA,qEAAe;IAEf;IAAA,6EACE;IAAA;IAAA,uIACuE;IACvE;IAAA,uIAA+G;IACjH;IAAA,qEAAe;IAEf;IAAA,6EACE;IAAA;IAAA,uIACuE;IACvE;IAAA,uIAA+G;IACjH;IAAA,qEAAe;IAEf;IAAA,6EACE;IAAA;IAAA,uIACuE;IACvE;IAAA,uIAA+G;IACjH;IAAA,qEAAe;IAEf;IAAA,6EACE;IAAA;IAAA,uIACuE;IACvE;IAAA,uIAA+G;IACjH;IAAA,qEAAe;IAEf;IAAA,8EACE;IAAA;IAAA,yIAAgF;IAChF;IAAA,yIAAwC;IAE1C;IAAA,qEAAe;IAEf;IAAA,8EACE;IAAA;IAAA,yIAAiF;IACjF;IAAA,yIAEE;IAIJ;IAAA,qEAAe;IACf;IAAA,yIAAuD;IACvD;IAAA,yIAA6D;IAC7D;IAAA,yIACE;IAEJ;IAAA,4DAAQ;IACV;IAAA,4DAAM;IACN;IAAA,4EACI;IAAA;IAAA,iFAAgE;IACpE;IAAA,4DAAM;IACN;IAAA,2IACI;IAKlB;IAAA,4DAAW;;;IAhGsB,2DAAyB;IAAzB,yFAAyB;IAgFrB,4DAAmC;IAAnC,oGAAmC;IAC1C,0DAAgD;IAAhD,qGAAgD;IAO7C,0DAAgC;IAAhC,kJAAgC;IAE9C,0DAAiB;IAAjB,kFAAiB;;ADnI/B,MAAM,8BAA8B;IAuCzC,YAAoB,YAAiC,EAC5C,MAAiB,EAChB,EAAe,EAChB,UAAsB,EACrB,QAAqB;QAJX,iBAAY,GAAZ,YAAY,CAAqB;QAC5C,WAAM,GAAN,MAAM,CAAW;QAChB,OAAE,GAAF,EAAE,CAAa;QAChB,eAAU,GAAV,UAAU,CAAY;QACrB,aAAQ,GAAR,QAAQ,CAAa;QA1C/B,oBAAe,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QACnD,SAAI,GAAG,CAAC,CAAC;QAIT,wBAAmB,GAAY,KAAK,CAAC;QACrC,iBAAY,GAAY,KAAK,CAAC;QAC9B,yBAAoB,GAAY,KAAK,CAAC;QACtC,aAAQ,GAAY,KAAK,CAAC;QAC1B,iBAAY,GAAG,IAAI,CAAC;QACpB,iBAAY,GAAW,EAAE,CAAC;QAQ1B,iBAAY,GAAa,EAAE,CAAC;QACpB,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QACtD,kBAAa,GAAY,KAAK,CAAC;QAC/B,cAAS,GAAY,KAAK,CAAC;QAC3B,oBAAe,GAAY,KAAK,CAAC;QACjC,uBAAkB,GAAkC,OAAO,CAAC;QAC5D,qBAAgB,GAAgC,KAAK,CAAC;QAG1B,cAAS,GAAG,IAAI,uDAAS,EAAgB,CAAC;QAC/C,SAAI,GAAG,IAAI,uDAAS,EAAW,CAAC;QAIvD,qBAAgB,GAAa;YAC3B,cAAc,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU;YACtD,kBAAkB,EAAE,uBAAuB,EAAE,WAAW,EAAE,YAAY;YACtE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ;SAC5E,CAAC;QAOA,IAAI,CAAC,UAAU,GAAG,IAAI,yEAAkB,EAAE,CAAC;QAC3C,IAAI,CAAC,iBAAiB,GAAG,IAAI,wEAAiB,EAAE,CAAC;QAEjD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;IAElD,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,EAAE;YAC9D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YAC1B,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACrC,MAAM,EAAE,CAAE,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;SACrC,CAAC,CAAC;IAEL,CAAC;IACD,iBAAiB;QACf,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC;IAC/C,CAAC;IACD,eAAe,KAAK,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpE,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,WAAW,EAAE;gBACf,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;aAC3D;iBACI;gBACH,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAC5D,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;gBACxD,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;aAC/C;SACF;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC5D,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;YACxD,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;SAC/C;IACH,CAAC;IAGD,YAAY;QACV,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QACd,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,KAAK,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,KAAK,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,EAAE;YACxL,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,OAAO;SACR;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,IAAI,EAAE;YACtE,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE;gBAC9D,IAAI,CAAC,YAAY,GAAG,qCAAqC,CAAC;gBAC1D,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,qCAAqC,EAAE,GAAG,EAAE;oBAC7D,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;oBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;iBACxC,CAAC,CAAC;gBAEH,OAAO,KAAK,CAAC;aACd;YACD,IAAI,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE;gBAC5D,IAAI,CAAC,YAAY,GAAG,mCAAmC,CAAC;gBACxD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE;oBAC3D,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;oBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;iBACxC,CAAC,CAAC;gBACH,OAAO,KAAK,CAAC;aACd;YACD,IAAI,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;gBAC1E,IAAI,CAAC,YAAY,GAAG,uCAAuC,CAAC;gBAC5D,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;oBAC/D,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;oBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;iBACxC,CAAC,CAAC;gBACH,OAAO,KAAK,CAAC;aACd;YACD,IAAI,CAAC,iBAAiB,GAAG,IAAI,wEAAiB,EAAE,CAAC;YACjD,IAAI,CAAC,iBAAiB,CAAC,eAAe,GAAG,IAAI,yEAAkB,EAAE,CAAC;YAClE,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,QAAQ,GAAG,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;YAC5F,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,MAAM,GAAG,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;YACxF,IAAI,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACzN,IAAI,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACjN,IAAI,CAAC,YAAY,CAAC,wBAAwB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,GAAmB,EAAE,EAAE;gBAE/F,IAAI,GAAG,EAAE;oBACP,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;oBACxB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;oBACvB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;oBACrB,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAe,IAAI,CAAC,YAAY,CAAC,CAAC;oBAC1E,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;oBACxD,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;oBAC9C,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;oBAClD,IAAI,CAAC,QAAQ,GAAG,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;oBAC1D,IAAI,CAAC,MAAM,GAAG,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;oBACtD,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;iBAC5B;qBACI;oBACH,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;iBACxB;YACH,CAAC,CAEA,CAAC;SACH;IACH,CAAC;IAED,MAAM,CAAC,YAAiB;QACtB,YAAY,GAAG,YAAY,CAAC;QAC5B,IAAI,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC;QAEnC,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8HAA+B,EAAE;YAChE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;YAC7B,YAAY,EAAE,IAAI;YAClB,IAAI,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE;SAChC,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,MAAM,CAAC,YAAiB;QACtB,YAAY,GAAG,YAAY,CAAC;QAC5B,IAAI,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC;QAEnC,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2GAAyB,EAAE;YAC1D,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;YAC7B,YAAY,EAAE,IAAI;YAClB,IAAI,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE;SAChC,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;QACzC,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK;QACH,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,CAAC;QACpC,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,IAAI,yEAAkB,EAAE,CAAC;QAC3C,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,QAAQ;QACN,+DAAS,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;QACrD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC5B,CAAC;;4GAvMU,8BAA8B;8GAA9B,8BAA8B;kEA8B9B,iEAAkB;kEAFf,wEAAY;kEACZ,8DAAO;;;;;;;;QCnDvB,gFACI;QAAA;QAAA,yFACE;QAD2C,gLAAe,CAAC,IAAC,wHAAgB,CAAC,IAAjB;QAC5D;QAAA,6FACA;QAAA;QAAA,kFACI;QAAA;QAAA,2EAAU;QAAA,sEAAW;QAAA,4DAAW;QAAC,mIACrC;QAAA,4DAAkB;QACnB;QAAA,4DAA6B;QAE7B;QAAA,2EACC;QAAA;QAAA,0EACI;QAAA;QAAA,0EACI;QAAA;QAAA,iEACA;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,qEAAS;QAAA,2EAA0B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QAClE;QAAA,4EAEA;QAFuC,oSAAS,UAAW,IAAC,4PACjB,uBAAuB,IADN;QAA5D,4DAEA;QAAA;QAAA,uFAAsE;QACtE;QAAA,sFAAuC;QACvC;QAAA,wIAAiE;QACrE;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,iEACI;QAAA;QAAA,qFACQ;QAAA;QAAA,6EAAW;QAAA,mEAAO;QAAA,2EAA0B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QAChE;QAEI;QAAA,6EAEJ;QAFyC,oSAAS,UAAS,IAAC,0PACnB,uBAAuB,IADJ;QAAxD,4DAEJ;QAAA;QAAA,uFAAoE;QACpE;QAAA,uFAAqC;QACrC;QAAA,wIAA+D;QACnE;QAAA,4DAAiB;QAC7B;QAAA,4DAAM;QAGV;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,+EACI;QAAA;QAAA,8EACI;QADkC,uJAAS,WAAO,IAAC;QACnD,qFAAK;QAAA,4DAAS;QAClB;QAAA,8EACI;QADkD,uJAAS,kBAAc,IAAC;QAC1E,qFAAK;QAAA,4DAAS;QACtB;QAAA,4DAAU;QAEd;QAAA,4DAAM;QACN;QAAA,4DAAO;QACX;QAAA,4DAAsB;QACtB;QAAA,4DAAgB;QAChB;QAAA,iEAAI;QAAA,iEAEJ;QAAA;QAAA,wIACE;;;;QAnDqB,0DAAuB;QAAvB,oFAAuB;QAOpC,2DAAoB;QAApB,iFAAoB;QAIF,0DAA8B;QAA9B,sGAA8B;QAE1B,0DAAsB;QAAtB,8EAAsB;QAEL,0DAAY;QAAZ,oEAAY;QAElC,0DAAqD;QAArD,mHAAqD;QAKhD,0DAA8B;QAA9B,sGAA8B;QAIlB,0DAAoB;QAApB,8EAAoB;QAEP,0DAAU;QAAV,oEAAU;QAEhC,0DAAmD;QAAnD,iHAAmD;QAoB5E,2DAAgB;QAAhB,8EAAgB;;6FD7Bf,8BAA8B;cAL1C,uDAAS;eAAC;gBACT,QAAQ,EAAE,6BAA6B;gBACvC,WAAW,EAAE,0CAA0C;gBACvD,SAAS,EAAE,CAAC,0CAA0C,CAAC;aACxD;udA6B6B,SAAS;kBAApC,0DAAY;mBAAC,wEAAY;YACH,IAAI;kBAA1B,0DAAY;mBAAC,8DAAO;YACU,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;;;;;;;;;;;;;;AEjD/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAoE;AACmB;AAEpB;AACkC;AAEpE;AACa;AAKyB;;;;;;;;;;;;;;;;;;ICA3C,iFACI;IAAA,uDAAc;IAAA,4DAAa;;;IADa,iFAAoB;IAC5D,0DAAc;IAAd,0HAAc;;;IAMlB,4EACI;IAAA;IAAA,mEAA2D;IAC7D;IAAA,2EAAyB;IAAA,kFAAuB;IAAA,4DAAO;IACzD;IAAA,4DAAY;;;IAyCF,yEAAgE;IAAA,4EAAgB;IAAA,4DAAK;;;IACrF,yEAAuC;IAAA,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,uFAAsB;;;IAI7D,yEAAgE;IAAA,sEAAW;IAAA,4DAAK;;;IAChF,yEAAuC;IAAA,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,wFAAuB;;;IAIxD,yEAA+D;IAAA,4EAAiB;IAAA,4DAAK;;;IACrF,yEAAuC;IAAA,uDAA4B;IAAA,4DAAK;;;IAAjC,0DAA4B;IAA5B,6FAA4B;;;IAK3E,oEAA4D;;;IAC5D,oEAAiE;;;IAmBzE,iFAAwE;IAAA,uDACxE;IAAA,4DAAa;;;IADoC,mFAAsB;IAAC,0DACxE;IADwE,wHACxE;;;IAEJ,4EACI;IAAA;IAAA,mEAA2D;IAC7D;IAAA,2EAAyB;IAAA,6EAAkB;IAAA,4DAAO;IACpD;IAAA,4DAAY;;;IAQJ,iFAA0E;IAAA,uDAC1E;IAAA,4DAAa;;;IADsC,mFAAsB;IAAC,0DAC1E;IAD0E,4HAC1E;;;IAEJ,4EACI;IAAA;IAAA,mEAA2D;IAC7D;IAAA,2EAAyB;IAAA,kFAAuB;IAAA,4DAAO;IACzD;IAAA,4DAAY;;;IAShB,4EACI;IAAA;IAAA,mEAA2D;IAC3D;IAAA,2EAAyB;IAAA,oFAAyB;IAAA,4DAAO;IAC7D;IAAA,4DAAY;;;IATpB,yEACI;IAAA;IAAA,oFACI;IAAA;IAAA,4EAAW;IAAA,0EAAe;IAAA,4DAAY;IACtC;IAAA,uEACA;IAAA;IAAA,uFAAwE;IACxE;IAAA,uFAAyC;IACzC;IAAA,4IACI;IAGR;IAAA,4DAAiB;IACjB;IAAA,4DAAM;;;;IAVU,0DAA8B;IAA9B,0GAA8B;IAEG,0DAAwB;IAAxB,+EAAwB;IACpC,0DAAc;IAAd,qEAAc;IAEpC,0DAAyJ;IAAzJ,qPAAyJ;;;IAahK,4EACI;IAAA;IAAA,mEAA2D;IAC3D;IAAA,2EAAyB;IAAA,sFAA2B;IAAA,4DAAO;IAC/D;IAAA,4DAAY;;;IAOpB,0EACI;IAAA;IAAA,oFACI;IAAA;IAAA,4EAAW;IAAA,iFAAsB;IAAA,4DAAY;IAC7C;IAAA,uEACA;IAAA;IAAA,uFAAsE;IACtE;IAAA,uFAAuC;IAC3C;IAAA,4DAAiB;IACrB;IAAA,4DAAM;;;;IANe,0DAA+B;IAA/B,2GAA+B;IAErC,0DAAqB;IAArB,sFAAqB;IACK,0DAAY;IAAZ,qEAAY;;;IAIrD,0EACI;IAAA;IAAA,oFACI;IAAA;IAAA,4EAAW;IAAA,+EAAoB;IAAA,4DAAY;IAC3C;IAAA,uEACA;IAAA;IAAA,uFAAoE;IACpE;IAAA,uFAAqC;IACzC;IAAA,4DAAiB;IACrB;IAAA,4DAAM;;;;IANe,0DAA+B;IAA/B,2GAA+B;IAErC,0DAAqB;IAArB,sFAAqB;IACK,0DAAU;IAAV,qEAAU;;;IAInD,0EACI;IAAA;IAAA,oFACI;IAAA;IAAA,4EAAW;IAAA,8GAEX;IAAA,4DAAY;IACZ;IAAA,uEAEJ;IAAA;IAAA,4DAAiB;IACrB;IAAA,4DAAM;;;IAPe,0DAA+B;IAA/B,2GAA+B;;;IAQpD,0EACI;IAAA;IAAA,oFACI;IAAA;IAAA,4EAAW;IAAA,mEAAQ;IAAA,4DAAY;IAC/B;IAAA,0EAA+B;IAEnC;IAAA,4DAAiB;IACrB;IAAA,4DAAM;;;IALe,0DAA+B;IAA/B,2GAA+B;;ADrJjE,MAAM,0BAA0B;IAiDtC,YAAoB,QAA+B,EAAS,SAAsB,EACzE,EAAe,EAAU,SAA2B,EAAU,kBAAqC;QADxF,aAAQ,GAAR,QAAQ,CAAuB;QAAS,cAAS,GAAT,SAAS,CAAa;QACzE,OAAE,GAAF,EAAE,CAAa;QAAU,cAAS,GAAT,SAAS,CAAkB;QAAU,uBAAkB,GAAlB,kBAAkB,CAAmB;QAhD3G,qBAAgB,GAAG,2DAAW,CAAC,oBAAoB,CAAC;QACpD,oBAAe,GAAG,2DAAW,CAAC,oBAAoB,CAAC;QACnD,oBAAe,GAAE,EAAE,CAAC;QACpB,kBAAa,GAAE,EAAE,CAAC;QAGlB,8BAAyB,GAAY,KAAK,CAAC;QAC3C,gBAAW,GAAY,KAAK,CAAC;QAC7B,mBAAc,GAAY,KAAK,CAAC;QAChC,oBAAe,GAAY,KAAK,CAAC;QAGjC,sBAAiB,GAAmB,EAAE;QAGtC,cAAS,GAAG,KAAK,CAAC;QAElB,eAAU,GAAG,EAAE,CAAC;QAChB,mBAAc,GAAE,EAAE,CAAC;QACnB,iBAAY,GAAE,EAAE,CAAC;QACjB,kBAAa,GAAG,KAAK,CAAC;QACtB,YAAO,GAAG,EAAE,CAAC;QAEb,eAAU,GAAY,KAAK,CAAC;QAE5B,kBAAa,GAAmB,EAAE,CAAC;QAEnC,mBAAc,GAAG,EAAE,CAAC;QACpB,aAAQ,GAAS,EAAE,CAAC;QAEpB,aAAQ,GAAY,KAAK,CAAC;QAE1B,yBAAoB,GAAY,KAAK,CAAC;QACtC,aAAQ,GAAY,KAAK,CAAC;QAE1B,oBAAe,GAAC,EAAE;QAClB,UAAK,GAAG,IAAI,IAAI,EAAE,CAAC;QASnB,qBAAgB,GAAG,CAAC,YAAY,EAAE,aAAa,EAAC,kBAAkB,CAAC,CAAC;QA+ItE,gBAAW,GAAG;YAEV,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QAE7B,CAAC;QA9IC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3C,CAAC;IACC,QAAQ;QAEN,IAAI,CAAC,QAAQ,GAAG,IAAI,yEAAY,EAAE,CAAC;QACnC,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YAE1B,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;SACvC,CAAC,CAAC;QAEL,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YAC/B,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACvC,YAAY,EAAE,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC3C,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACvC,iBAAiB,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC9C,YAAY,EAAE,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC3C,kBAAkB,EAAE,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;SACpD,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAE5B,CAAC;IAIH,YAAY;QACR,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,SAAS,CAAC,CAAC,GAAoB,EAAE,EAAE;YACjE,IAAI,QAAQ,GAAU,GAAG,CAAC;YAC1B,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACjE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACjB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YAC/D,CAAC,CAAC,CAAC;YACH,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE;gBACvB,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;gBACjC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAE3D,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAC5C;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,qBAAqB,CAAC,UAAkB;QAC7C,IAAG,UAAU,GAAC,CAAC,EACf;YACE,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,IAAW,EAAE,EAAE;gBACnE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAElB,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;gBAKhC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAEpC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC;gBACnC,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAe,IAAI,CAAC,eAAe,CAAC,CAAC;gBAC7E,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;YAE5B,CAAC,CACJ,CAAC;SACH;IACD,CAAC;IAGD,kBAAkB;QAChB,IAAI,CAAC,kBAAkB,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,CAAC,mBAAyB,EAAE,EAAE;YAC/E,IAAI,UAAU,GAAU,mBAAmB,CAAC;YAC5C,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAC,IAAI,EAAC,CAAC;YACjE,UAAU,CAAC,OAAO,CAAC,CAAC,mBAAmB,EAAE,EAAE;gBACzC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,CAAC,IAAI,EAAE,KAAK,EAAE,mBAAmB,CAAC,EAAE,EAAE,CAAC,CAAC;YAChG,CAAC,CAAC,CAAC;QAEL,CAAC,CAAC;YACA,CAAC,KAAU,EAAE,EAAE;gBACb,IAAI,KAAK,CAAC,KAAK,IAAI,SAAS,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE;oBACjD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAC,CAAC,8BAA8B,CAAC,EAAC,kBAAkB,EAAE,OAAO;wBAC9H,gBAAgB,EAAE,KAAK,EAAE,CAAC,CAAC;YAC7B,CAAC,CAAC;IACN,CAAC;IAGD,gBAAgB;QACd,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,CAAC,iBAAuB,EAAE,EAAE;YAC3E,IAAI,QAAQ,GAAU,iBAAiB,CAAC;YACxC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAC,IAAI,EAAC,CAAC;YAC3D,QAAQ,CAAC,OAAO,CAAC,CAAC,iBAAiB,EAAE,EAAE;gBACrC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iBAAiB,CAAC,IAAI,EAAG,KAAK,EAAE,iBAAiB,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3F,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;YACA,CAAC,KAAU,EAAE,EAAE;gBACb,IAAI,KAAK,CAAC,KAAK,IAAI,SAAS,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE;oBACjD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAC,CAAC,0BAA0B,CAAC,EAAC,kBAAkB,EAAE,OAAO;wBAC1H,gBAAgB,EAAE,KAAK,EAAE,CAAC,CAAC;YAC7B,CAAC,CAAC;IACN,CAAC;IAED,cAAc,CAAC,QAAiB;QAC5B,IAAI,QAAQ,IAAI,KAAK;YACjB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;;YAEvB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IAChC,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,eAAe,GAAG,mCAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACrG,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YACvE,IAAG,IAAI,IAAI,IAAI,EAAC;gBAEhB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,wCAAwC,EAAE,GAAG,EAAE;oBACjE,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAC,CAAC,eAAe,CAAC;oBAC5B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACN;YACG,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAE5B,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;YACT,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;gBACpC,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAC,CAAC,aAAa,CAAC;gBAC1B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QAEP,CAAC,CAAC,CAAC;IACP,CAAC;IAED,OAAO;QACN,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACtB,CAAC;IAQD,QAAQ;IACR,CAAC;;oGArMY,0BAA0B;0GAA1B,0BAA0B;kEA2C1B,iEAAkB;;;;6GA7ClB,CAAC,4FAAqB,CAAC;QC5BpC;QAAA,8EACI;QAAA;QAAA,mFACI;QAAA;QAAA,0EACI;QAAA;QAAA,yEACI;QAAA;QAAA,yEACE;QAAA;QAAA,qFACU;QAAA;QAAA,6EAAW;QAAA,0EAAc;QAAA,4DAAY;QACrC;QAKA;QAAA,iFAEA;QADA,iLAAkB,uCAAmC;QACrD;QAAA,sIACI;QACR;QAAA,4DAAa;QACT;QAIA;QAAA,oIACI;QAGZ;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACV;QAAA,4DAAM;QACV;QAAA,4DAAO;QACX;QAAA,4DAAmB;QACvB;QAAA,4DAAW;QAEA;QAAA,+EACa;QAAA;QAAA,oFAEE;QAAA;QAAA,0EACE;QAAA;QA0BA;QAAA,6EAEQ;QAAA;QAAA,6EACE;QAAA;QAAA,uHAAgE;QAChE;QAAA,uHAAuC;QACzC;QAAA,qEAAe;QAEf;QAAA,6EACE;QAAA;QAAA,uHAAgE;QAChE;QAAA,uHAAuC;QACzC;QAAA,qEAAe;QAEf;QAAA,6EACQ;QAAA;QAAA,uHAA+D;QAC/D;QAAA,uHAAuC;QACzC;QAAA,qEAAe;QAIrB;QAAA,uHAAuD;QACvD;QAAA,uHAA4D;QAClE;QAAA,4DAAQ;QAKZ;QAAA,4DAAM;QACR;QAAA,4DAAmB;QAC/B;QAAA,4DAAW;QAEvB;QAAA,gFACI;QAAA;QAAA,oFACI;QAAA;QAAA,uEACI;QAAA;QAAA,2EACI;QAAA;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,wEAAY;QAAA,4DAAY;QACnC;QAAA,kFAEI;QAAA;QAAA,sIAAwE;QAE5E;QAAA,4DAAa;QACb;QAAA,oIACI;QAGR;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACF;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,0EAAc;QAAA,4DAAY;QACrC;QAAA,mFAEI;QAFmC,kLAAmB,gCAA4B,IAAC;QAEnF;QAAA,wIAA0E;QAE9E;QAAA,4DAAa;QACb;QAAA,sIACI;QAGR;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACV;QAAA,4HACI;QAWA;QAAA,2EACI;QAAA;QAAA,sFACI;QAAA;QAAA,8EAAW;QAAA,8EAAiB;QAAA,4DAAY;QACxC;QAAA,yEACA;QAAA;QAAA,yFAAwE;QAExE;QAAA,wFAAyC;QACzC;QAAA,sIACI;QAGR;QAAA,4DAAiB;QACjB;QAAA,sFACQ;QAAA;QAAA,8EAAW;QAAA,0EAAa;QAAA,4DAAY;QACpC;QAAA,4EAAyF;QACjG;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,4HACI;QAOJ;QAAA,4HACI;QAOJ;QAAA,4HACI;QAQJ;QAAA,4HACI;QAOJ;QAAA,4EACI;QAAA;QAAA,+EAAmD;QAA3C,oJAAS,iBAAa,IAAC;QAAoB,6EAAU;QAAA,4FAC7D;QAAA,4DAAW;QAAA,kEAAK;QAAA,4DAAS;QACzB;QAAA,+EAA4E;QAArD,oJAAS,cAAU,IAAC;QAAiC,mEAAM;QAAA,4DAAS;QAC/F;QAAA,4DAAM;QAClB;QAAA,4DAAO;QACX;QAAA,4DAAM;QACN;QAAA,4DAAmB;QACvB;QAAA,4DAAW;QACX;;;QAjMc,0DAAsB;QAAtB,mFAAsB;QAGF,0DAA+B;QAA/B,uGAA+B;QAOM,0DAAiC;QAAjC,8FAAiC;QAEhE,0DAA+B;QAA/B,mFAA+B;QAOhC,0DAAmE;QAAnE,qIAAmE;QAyC7D,2DAAyB;QAAzB,sFAAyB;QAmBf,2DAAmC;QAAnC,iGAAmC;QAC1C,0DAA+C;QAA/C,kGAA+C;QAa7E,2DAAyB;QAAzB,sFAAyB;QAEP,0DAA+B;QAA/B,uGAA+B;QAI3B,0DAAoC;QAApC,sFAAoC;QAGzC,0DAAmJ;QAAnJ,+NAAmJ;QAO9I,0DAA+B;QAA/B,uGAA+B;QAI3B,0DAAsC;QAAtC,wFAAsC;QAG3C,0DAAmJ;QAAnJ,+NAAmJ;QAMpJ,0DAAsB;QAAtB,oFAAsB;QAapB,0DAAiC;QAAjC,uGAAiC;QAEK,0DAAwB;QAAxB,+EAAwB;QACzC,0DAAc;QAAd,qEAAc;QAGpC,0DAAwK;QAAxK,oPAAwK;QAKvK,0DAA+B;QAA/B,uGAA+B;QAK7B,0DAAmB;QAAnB,iFAAmB;QAQnB,0DAAmB;QAAnB,iFAAmB;QAQnB,0DAAmB;QAAnB,iFAAmB;QASnB,0DAAsC;QAAtC,wGAAsC;;6FDpJnE,0BAA0B;cANtC,uDAAS;eAAC;gBACT,QAAQ,EAAE,0BAA0B;gBACpC,WAAW,EAAE,uCAAuC;gBACpD,SAAS,EAAE,CAAC,uCAAuC,CAAC;gBACpD,SAAS,EAAE,CAAC,4FAAqB,CAAC;aACnC;meAqCU,GAAG;kBAAX,mDAAK;YAOyB,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;;;;;;;;;;;;;;AE1E/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAqE;AACO;AACH;AAC3B;AACe;;;;;;;;;;;AAUtD,MAAM,+BAA+B;IAS1C,YACS,SAAwD,EAC/B,IAAS,EACjC,WAAwB,EACxB,SAAsB,EACtB,OAAe,EACf,YAAiC;QALlC,cAAS,GAAT,SAAS,CAA+C;QAC/B,SAAI,GAAJ,IAAI,CAAK;QACjC,gBAAW,GAAX,WAAW,CAAa;QACxB,cAAS,GAAT,SAAS,CAAa;QACtB,YAAO,GAAP,OAAO,CAAQ;QACf,iBAAY,GAAZ,YAAY,CAAqB;QAd3C,oBAAe,GAAG,2DAAW,CAAC,oBAAoB,CAAC;QAiB/C,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;SAElC;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAEnC,CAAC;IACD,QAAQ;QAEN,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YAC1C,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACrF,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACxF,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACxF,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACxF,cAAc,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACpG,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SAEhF,CAAC,CAAC;IACL,CAAC;IACD,aAAa;QACX,IAAI,CAAC,SAAS,GAAG,IAAI,qEAAS,EAAE,CAAC;QAEjC,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,MAAM,CAAC;QACnC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAE9B,CAAC;IACD,MAAM;QACJ,IAAI,CAAC,SAAS,GAAG,IAAI,qEAAS,EAAE,CAAC;QAEjC,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,QAAQ,CAAC;QACrC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAGlC,CAAC;IACD,MAAM,CAAC,SAAc;QAEjB,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;QAChD,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC;QACzD,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC;QAC1D,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC;QACrE,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC;QACzD,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC;QAC3D,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;QAErD,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE;aAC1D,IAAI,CAAC,GAAG,EAAE;YACT,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,MAAM,EAAC;gBACvC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE;oBAC7C,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,eAAe,CAAC;oBAC7B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,UAAU,CAAC,GAAG,EAAE,CAChB,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;aACxC;QAEH,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE;gBAC5C,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,CAAC,aAAa,CAAC;gBAC3B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IAGP,CAAC;IAED,UAAU,CAAC,SAAc;QAEvB,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;QAChD,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC;QACzD,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC;QAC1D,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC;QACrE,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC;QACzD,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC;QAC3D,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;QAErD,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE;aAC1D,IAAI,CAAC,GAAG,EAAE;YACT,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,QAAQ,EAAC;gBACzC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,sBAAsB,EAAE,GAAG,EAAE;oBAC/C,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,eAAe,CAAC;oBAC7B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,UAAU,CAAC,GAAG,EAAE,CAChB,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;aACxC;QAEH,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,qBAAqB,EAAE,GAAG,EAAE;gBAC9C,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,CAAC,aAAa,CAAC;gBAC3B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IAGP,CAAC;;8GAxHY,+BAA+B,0MAWhC,wEAAe;+GAXd,+BAA+B;kEAO/B,iEAAkB;;;;;QCrB/B,wEAAqB;QAAA,yEAAc;QAAA,4DAAK;QACxC;QAAA,0EACI;QAAA;QAAA,yEACI;QAAA;QAAA,yEACI;QAAA;QAAA,gEACA;QAAA;QAAA,qFACQ;QAAA;QAAA,6EAAW;QAAA,sEAAU;QAAA,4DAAY;QACjC;QAAA,0EAAuE;QAC3E;QAAA,4DAAiB;QACzB;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,iEACA;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,uEAAW;QAAA,4DAAY;QAClC;QAAA,0EAAwE;QAC5E;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,uEAAW;QAAA,4DAAY;QAClC;QAAA,uEACA;QAAA;QAAA,uFAAwE;QACxE;QAAA,sFAAyC;QAC7C;QAAA,4DAAiB;QACjB;QAAA,4DAAM;QAEN;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,uEAAW;QAAA,4DAAY;QAClC;QAAA,wEACA;QAAA;QAAA,uFAAwE;QACxE;QAAA,uFAAyC;QAC7C;QAAA,4DAAiB;QACjB;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,0EAAc;QAAA,4DAAY;QACrC;QAAA,2EAA4E;QAChF;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,mEAAO;QAAA,4DAAY;QAC9B;QAAA,2EAAqE;QACzE;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QAClB;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,+EAEI;QAAA;QAAA,8EACI;QADkF,wJAAS,mBAAe,IAAC;QAC3G,kFAAI;QAAA,4DAAS;QAEb;QAAA,8EACI;QADqF,wJAAS,YAAQ,IAAC;QACvG,0FAAQ;QAAA,4DAAS;QAC7B;QAAA,4DAAU;QAEd;QAAA,4DAAM;QACN;QAAA,4DAAO;;;;QAzDJ,0DAA2B;QAA3B,wFAA2B;QAIN,0DAA8B;QAA9B,sGAA8B;QAO9B,2DAA8B;QAA9B,sGAA8B;QAM9B,2DAA8B;QAA9B,sGAA8B;QAEG,0DAAwB;QAAxB,8EAAwB;QACpC,0DAAc;QAAd,oEAAc;QAM/B,0DAA8B;QAA9B,sGAA8B;QAEG,0DAAwB;QAAxB,8EAAwB;QACpC,0DAAc;QAAd,oEAAc;QAK/B,0DAA8B;QAA9B,sGAA8B;QAM9B,2DAA8B;QAA9B,sGAA8B;QASF,2DAAiC;QAAjC,8FAAiC;QAG1B,0DAAiC;QAAjC,8FAAiC;;6FDvC3F,+BAA+B;cAL3C,uDAAS;eAAC;gBACT,QAAQ,EAAE,+BAA+B;gBACzC,WAAW,EAAE,4CAA4C;gBACzD,SAAS,EAAE,CAAC,4CAA4C,CAAC;aAC1D;;sBAYI,oDAAM;uBAAC,wEAAe;kVAJM,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;;;;;;;;;;;;;;AEpB/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsF;AACe;AAE7B;AACf;AAYU;AACO;AAEwD;;;;;;;;;;;;;;;;;;;;;;;;ICV1G,iFAAqE;IAAA,uDAAgB;IAAA,4DAAa;;;IAApD,kFAAsB;IAAC,0DAAgB;IAAhB,gFAAgB;;;IAmBzF,4EACI;IAAA,2HACJ;IAAA,4DAAY;;;IAWZ,4EACI;IAAA,yHACJ;IAAA,4DAAY;;;IACZ,4EACI;IAAA,6HACJ;IAAA,4DAAY;;;IASZ,4EACI;IAAA,kIACJ;IAAA,4DAAY;;;IACZ,4EACI;IAAA,qIACJ;IAAA,4DAAY;;;IAQR,gFACI;IAAA,mJACJ;IAAA,4DAAY;;;IAcxB,sEAAiF;IAAA;IAAA,4DAAM;;;;IAEnF;IAAA,mFAAuC;IAAA,yFACvC;IAAA,4DAAe;IACf;IAAA,6EACI;IADuB,sVAAiB;IACxC;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAAC,mFAC/B;IAAA,4DAAS;IACT;IAAA,8EACI;IAD8F,gWAA0B;IACxH,wFAAM;IAAA,4DAAS;IACvB;;;IAFY,2DAA0B;IAA1B,2FAA0B;;;IAR1C,0EACI;IAAA;IAAA,uIAAiF;IACjF;IAAA,oOACI;IAQR;IAAA,4DAAM;;;;IAVG,0DAA0E;IAA1E,8HAA0E;;;ADzD3F,qBAAqB;AACrB,mBAAmB;AACnB,uBAAuB;AACvB,IAAI;AAOG,MAAM,kCAAkC;IAyC7C,YAAoB,kBAAqC,EAAU,SAAsB,EAC/E,sBAA8C,EAC9C,QAAwB,EACxB,YAAyB,EACzB,mBAAwC,EACxC,MAAc,EACd,YAAiC,EACjC,OAA0B,EAC3B,MAAiB,EAEjB,UAAsB;QAVX,uBAAkB,GAAlB,kBAAkB,CAAmB;QAAU,cAAS,GAAT,SAAS,CAAa;QAC/E,2BAAsB,GAAtB,sBAAsB,CAAwB;QAC9C,aAAQ,GAAR,QAAQ,CAAgB;QACxB,iBAAY,GAAZ,YAAY,CAAa;QACzB,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,WAAM,GAAN,MAAM,CAAQ;QACd,iBAAY,GAAZ,YAAY,CAAqB;QACjC,YAAO,GAAP,OAAO,CAAmB;QAC3B,WAAM,GAAN,MAAM,CAAW;QAEjB,eAAU,GAAV,UAAU,CAAY;QAlD/B,qBAAgB,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QAEpD,uBAAkB,GAAyB,IAAI,kDAAa,CAAQ,CAAC,CAAC,CAAC;QAGvE,gBAAW,GAAG,EAAE,CAAC;QACT,eAAU,GAAG,IAAI,4CAAO,EAAQ,CAAC;QAIzC,iBAAY,GAAG,8EAAY,CAAC;QAG5B,sBAAiB,GAAY,KAAK,CAAC;QACnC,SAAI,GAAU,EAAE,CAAC;QACjB,kBAAa,GAAU,EAAE,CAAC;QAC1B,aAAQ,GAAW,CAAC,CAAC;QACrB,iBAAY,GAAa,EAAE,CAAC;QAG5B,mBAAc,GAAE,IAAI,CAAC;QAGrB,eAAU,GAAiB,EAAE,CAAC;QAC9B,aAAQ,GAAY,KAAK,CAAC;QAG1B,iBAAY,GAAiB,EAAE,CAAC;QAGhC,YAAO,GAAW,KAAK,CAAC;QAGxB,gBAAW,GAAG,KAAK,CAAC;QACpB,kBAAa,GAAG,KAAK,CAAC;QACtB,kBAAa,GAAG,KAAK,CAAC;QAgBpB,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAC7D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC/B,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAE7D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YACtC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACtE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,sBAAsB,EAAE,CAAC;YAC/D,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,sBAAsB,EAAE,CAAC;QAErE,CAAC,CAAC,CAAC;QAGH,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE;YAC5D,kCAAkC;QACpC,CAAC,CAAC;QACF,2CAA2C;QAC3C,mDAAmD;IACrD,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC;QAEnD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACtC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,8EAAY,CAAC,QAAQ,GAAG,IAAI,CAAC;QAE7B,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,EAAE,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YACrE,IAAI,GAAG,EAAE;gBACP,IAAI,CAAC,eAAe,GAAG,IAAI,2EAAe,EAAE,CAAC;gBAC7C,IAAI,CAAC,eAAe,CAAC,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC;gBACrD,IAAI,CAAC,eAAe,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;aAC9C;QACH,CAAC,CAAC,CAAC;IAGL,CAAC;IACD,sBAAsB;QACpB,IAAI,CAAC,gBAAgB,GAAG,IAAI,wDAAS,CAAC;YACpC,gBAAgB,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,yDAAU,CAAC,QAAQ,CAAC;YAC5D,cAAc,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,KAAK,EAAE,yDAAU,CAAC,OAAO,CAAC,yJAAyJ,CAAC,CAAC,CAAC;YAC7P,iBAAiB,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC;YACvG,OAAO,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACrD,QAAQ,EAAE,IAAI,0DAAW,CAAC,EAAC,KAAK,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAG,IAAI,EAAC,CAAC;YAC1F,YAAY,EAAE,IAAI,0DAAW,CAAC,EAAC,KAAK,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,EAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAG,IAAI,EAAC,CAAC;YACtG,MAAM,EAAE,IAAI,0DAAW,CAAC,KAAK,CAAC;SAE/B,CAAC,CAAC;QACH,IAAI,CAAC,uBAAuB,EAAE,CAAC;IACjC,CAAC;IACD,SAAS;QACP,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,EAAE,CAAC,SAAS,CAAC,CAAC,GAAkB,EAAE,EAAE;YAC/E,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACjD,GAAG,CAAC,OAAO,CAAC,CAAC,GAAgB,EAAE,EAAE;gBAC/B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3D,CAAC,CAAC;QACJ,CAAC,CAAC;IAEJ,CAAC;IACD,cAAc,CAAC,KAAU;QACvB,IAAI,IAAI,GAAG;YACT,MAAM,EAAE,EAAE;YACV,SAAS,EAAE,CAAC;YACZ,GAAG,EAAE,CAAC;YACN,KAAK,EAAE,EAAE;YACT,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,EAAE;SACR,CAAC;QACF,KAAK,IAAI,KAAK,IAAI,IAAI,EAAE;YACtB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;gBAAE,SAAS;YAC1C,IAAI,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE;gBACjE,OAAO,CAAC,eAAe;aACxB;SACF;QACD,KAAK,CAAC,cAAc,EAAE,CAAC;IACzB,CAAC;IAED,uBAAuB;QACrB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,GAAO,EAAC,EAAE;YAC9E,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAG,GAAG,EAAC;gBACL,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC;oBAC/B,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;oBACtC,cAAc,EAAE,GAAG,CAAC,cAAc;oBAClC,iBAAiB,EAAE,GAAG,CAAC,iBAAiB;oBACxC,OAAO,EAAE,GAAG,CAAC,OAAO;iBACrB,CAAC,CAAC;gBACH,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;gBAChC,8EAAY,CAAC,QAAQ,GAAG,KAAK,CAAC;gBAC9B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;aAEzB;QACH,CAAC,CAAC;QACF,IAAG,IAAI,CAAC,QAAQ,IAAI,yCAAyC,EAAC;YAC5D,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;YAChC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE;YAChD,IAAI,CAAC,OAAO,GAAC,IAAI,CAAC;SACnB;IAEH,CAAC;IAGD,cAAc;QACZ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE;YAC/B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAI,CAAC,eAAe,GAAG,IAAI,2EAAe,EAAE,CAAC;YAC7C,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YAClD,IAAI,CAAC,eAAe,CAAC,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,iBAAiB,CAAC;YACvF,IAAI,CAAC,eAAe,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,gBAAgB,CAAC;YACrF,IAAI,CAAC,eAAe,CAAC,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,cAAc,CAAC;YACjF,IAAI,CAAC,eAAe,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC;YACrE,IAAI,CAAC,eAAe,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,YAAY,CAAC;YAC7E,IAAI,CAAC,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC;YACnE,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC;YACrE,IAAI,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE;gBACnC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+IAA2B,EAAE;oBAC9D,KAAK,EAAE,OAAO;oBACd,YAAY,EAAE,IAAI;oBAClB,IAAI,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,qCAAqC,EAAE;iBAClF,CAAC,CAAC;gBAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;oBACzC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;oBAC7B,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,EAAE;wBAChC,IAAI,CAAC,kBAAkB,EAAE,CAAC;qBAC3B;yBACG;wBACF,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;wBAC3B,OAAO;qBACR;gBACH,CAAC,CAAC;aACH;iBACG;gBACF,IAAI,CAAC,kBAAkB,EAAE,CAAC;aAC3B;SACF;aACI;YACH,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,OAAO;SACR;IACH,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,SAAS,EAAE;aAC1E,IAAI,CAAC,GAAG,EAAE;YACT,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,sCAAsC,EAAE,GAAG,EAAE;gBAC/D,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;gBAClC,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YACf,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,qBAAqB,EAAE,GAAG,EAAE;gBAC9C,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,CAAC,aAAa,CAAC;gBAC3B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACH,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC7B,CAAC,CAAC,CAAC;IACP,CAAC;IACD,MAAM;QACJ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;YAC1B,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK;YACrD,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,KAAK;SAC9D,CAAC,CAAC;QACH,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC;YACjD,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK;YACrD,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,KAAK;SAC9D,CAAC,EAAE,CAAC,CAAC,CAAC;QACP,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC7B,CAAC;;oHAxPU,kCAAkC;kHAAlC,kCAAkC;kEAuClC,iEAAkB;;;;;QC7E/B,8EACI;QAAA;QAAA,6FAAmE;QAEnE;QAAA,0EACI;QAAA;QAAA,yEAEI;QAAA;QAAA,yEACQ;QAAA;QAAA,qFACA;QAAA;QAAA,6EAAW;QAAA,sFAA0B;QAAA,4DAAY;QACjD;QAAA,iFACI;QAAA;QAAA,8IAAqE;QACzE;QAAA,4DAAa;QACjB;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,sFAA0B;QAAA,4DAAY;QACjD;QAAA,0EAAiF;QACrF;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACV;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAY;QAAA,wHACR;QAAA,2EAA2B;QAAA,8DAAC;QAAA,4DAAO;QACvC;QAAA,4DAAY;QACZ;QAAA,gFACoB;QAAA;QAAA,4DAAW;QAC/B;QAAA,6IACI;QAER;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,qFAEI;QAAA;QAAA,6EAAW;QAAA,2FACP;QAAA,2EAA2B;QAAA,8DAAC;QAAA,4DAAO;QACvC;QAAA,4DAAY;QACZ;QAAA,wEAEA;QAAA;QAAA,6IACI;QAEJ;QAAA,6IACI;QAER;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,mGACP;QAAA,2EAA2B;QAAA,8DAAC;QAAA,4DAAO;QACvC;QAAA,4DAAY;QACZ;QAAA,6EACA;QADgE,sKAAY,0BAAsB,IAAC,wGAAU,uBAAuB,IAAjC;QAAnG,4DACA;QAAA;QAAA,6IACI;QAEJ;QAAA,6IACI;QAER;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACV;QAAA,4DAAM;QACN;QAAA,2EACQ;QAAA;QAAA,2EACI;QAAA;QAAA,iFACuE;QACnE;QAAA,6IACI;QAEZ;QAAA,4DAAM;QAIV;QAMJ;QAAA,4DAAM;QAEN;QAAA,mIACI;QAWR;QAAA,4DAAO;QACP;QAAA,4DAAW;;QA9FL,0DAA8B;QAA9B,2FAA8B;QAIJ,0DAA+B;QAA/B,uGAA+B;QAG/B,0DAAiC;QAAjC,mFAAiC;QAKrC,0DAA+B;QAA/B,uGAA+B;QAQ/B,2DAA+B;QAA/B,uGAA+B;QAMhC,2DAAqE;QAArE,mIAAqE;QAMpE,0DAA+B;QAA/B,uGAA+B;QAOhC,2DAAmE;QAAnE,iIAAmE;QAGnE,0DAAkE;QAAlE,gIAAkE;QAMjE,0DAA+B;QAA/B,uGAA+B;QAKhC,2DAAsE;QAAtE,oIAAsE;QAGtE,0DAAqE;QAArE,mIAAqE;QAO5D,0DAA+D;QAA/D,yLAA+D;QACnE,0DAA6D;QAA7D,sHAA6D;QAE3B,0DAA2K;QAA3K,iPAA2K;QAepO,0DAAoB;QAApB,kFAAoB;;6FD9CpB,kCAAkC;cAL9C,uDAAS;eAAC;gBACT,QAAQ,EAAE,kCAAkC;gBAC5C,WAAW,EAAE,+CAA+C;gBAC5D,SAAS,EAAE,CAAC,+CAA+C,CAAC;aAC7D;q9BAwCgC,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;;;;;;;;;;;;;;AE7E/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0D;AACY;AACsB;AACnC;;;;;;;;;;;;;;ICsBtD,wEACC;IADE,6UAAiC;IACnC;IAAA,+EAA+D;IAAA,oEAAS;IAAA,4DAAW;IACpF;IAAA,2EAAwG;IAAA,kFAAuB;IAAA,4DAAO;IAAC;IAAA,4DAAI;;;IAU9I,yEACI;IAAA;IAAA,0EACI;IAAA;IAAA,gFAC0E;IAC9E;IAAA,4DAAM;IACV;IAAA,4DAAM;;;IAH+B,0DAAwC;IAAxC,iGAAwC;;ADxBtE,MAAM,mCAAmC;IAyG9C,YAAmB,MAAiB,EAC1B,EAAe,EACf,6BAA2D,EAC3D,SAAsB,EACtB,OAA0B,EACF,IAAS;QALxB,WAAM,GAAN,MAAM,CAAW;QAC1B,OAAE,GAAF,EAAE,CAAa;QACf,kCAA6B,GAA7B,6BAA6B,CAA8B;QAC3D,cAAS,GAAT,SAAS,CAAa;QACtB,YAAO,GAAP,OAAO,CAAmB;QACF,SAAI,GAAJ,IAAI,CAAK;QA3G3C,uBAAkB,GAAS,KAAK,CAAC;QACjC,wBAAmB,GAAC,IAAI,0EAAmB,EAAE,CAAC;QAE9C,gBAAW,GAAG,KAAK,CAAC;QACpB,qBAAgB,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QACpD,kBAAa,GACX;YACA,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,IAAI;YAChB,MAAM,EAAE,GAAG;YACX,SAAS,EAAE,KAAK;YAChB,SAAS,EAAE,MAAM;YACjB,KAAK,EAAE,MAAM;YACb,QAAQ,EAAE,GAAG;YACb,SAAS,EAAE,KAAK;YAChB,aAAa,EAAE,IAAI;YACnB,WAAW,EAAE,KAAK;YAClB,WAAW,EAAE,oBAAoB;YACjC,yBAAyB,EAAE,EAAE;YAC7B,eAAe,EAAE,EAAE;YACnB,eAAe,EAAE,EAAE;YACnB,KAAK,EAAE;gBACL,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE;gBACjC,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,iBAAiB,EAAE;gBACrD,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;gBACrC,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,eAAe,EAAE;aAClD;YACD,aAAa,EAAE;gBACb;oBACE,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,OAAO;iBACf;gBACD;oBACE,IAAI,EAAE,SAAS;oBACf,KAAK,EAAE,SAAS;iBACjB;gBACD;oBACE,IAAI,EAAE,WAAW;oBACjB,KAAK,EAAE,WAAW;oBAClB,GAAG,EAAE,IAAI;iBACV;aACF;YACD,SAAS,EAAE,UAAU;YACrB,qBAAqB,EAAE,KAAK;YAC5B,QAAQ,EAAE,IAAI;YACd,eAAe,EAAE,KAAK;YACtB,oBAAoB,EAAE;gBACpB,EAAE;gBACF,EACC;aACF;SACF,CAAC;QAEF,kBAAa,GACX;YACA,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,IAAI;YAChB,MAAM,EAAE,GAAG;YACX,SAAS,EAAE,KAAK;YAChB,SAAS,EAAE,MAAM;YACjB,KAAK,EAAE,MAAM;YACb,QAAQ,EAAE,GAAG;YACb,SAAS,EAAE,KAAK;YAChB,aAAa,EAAE,IAAI;YACnB,WAAW,EAAE,IAAI;YACjB,WAAW,EAAE,oBAAoB;YACjC,yBAAyB,EAAE,EAAE;YAC7B,eAAe,EAAE,EAAE;YACnB,eAAe,EAAE,EAAE;YACnB,KAAK,EAAE;gBACL,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE;gBACjC,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,iBAAiB,EAAE;gBACrD,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;gBACrC,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,eAAe,EAAE;aAClD;YACD,aAAa,EAAE;gBACb;oBACE,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,OAAO;iBACf;gBACD;oBACE,IAAI,EAAE,SAAS;oBACf,KAAK,EAAE,SAAS;iBACjB;gBACD;oBACE,IAAI,EAAE,WAAW;oBACjB,KAAK,EAAE,WAAW;oBAClB,GAAG,EAAE,IAAI;iBACV;aACF;YACD,SAAS,EAAE,UAAU;YACrB,qBAAqB,EAAE,KAAK;YAC5B,QAAQ,EAAE,IAAI;YACd,eAAe,EAAE,KAAK;YACtB,oBAAoB,EAAE;gBACpB,EAAE;gBACF,EACC;aACF;SACF,CAAC;IASI,CAAC;IAEP,QAAQ;QAEN,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QAC7C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YAC1B,QAAQ,EAAE,CAAC,EAAE,CAAC;YACd,YAAY,EAAC,CAAC,EAAE,CAAC;YACjB,iBAAiB,EAAC,CAAC,EAAE,CAAC;SACvB,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;QAC3F,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;QACjF,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC;QAC5F,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC;IAC9D,CAAC;IACD,KAAK;QACH,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;IACxB,CAAC;IAED,eAAe,CAAC,CAAC;QACf,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAC3D,CAAC;IAED,aAAa;QACX,IAAI,CAAC,kBAAkB,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC;IACrD,CAAC;IAED,qBAAqB;QAEnB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC;IACrF,CAAC;IAED,YAAY;QACX,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,mBAAmB,CAAC,wBAAwB,GAAG,IAAI,CAAC,mBAAmB,CAAC,wBAAwB,CAAC;QACtG,IAAI,CAAC,mBAAmB,CAAC,8BAA8B,GAAG,CAAC,CAAC;QAC5D,IAAI,CAAC,mBAAmB,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC;QAC/E,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC;QACzF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACtC,IAAI,CAAC,6BAA6B,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,SAAS,CAAC,GAAG,GAAE;YAClF,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,KAAK,EAAE,CAAC;QACd,CAAC,EACD,CAAC,KAAK,GAAE;YACP,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE;gBACzC,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAC,CAAC,aAAa,CAAC;gBAC1B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACJ,CAAC,CAAC,CACD;QACD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;;sHArKU,mCAAmC,+wBA8GpC,wEAAe;mHA9Gd,mCAAmC;QCfhD,yEACE;QAAA;QAAA,yEACI;QAAA;QAAA,oEAAG;QAAA,uDAAsC;QAAA,4DAAI;QACjD;QAAA,4DAAM;QACN;QAAA,sEACF;QAAA;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,+EAAmD;QAAlB,8JAAS,WAAO,IAAC;QAAC,iEAAK;QAAA,4DAAW;QACvE;QAAA,4DAAM;QACN;QAAA,4DAAM;QACN;QAGA;QAAA,2EACA;QAAA;QAAA,0EACI;QAAA;QAAA,0EACI;QAAA;QAAA,gFACkF;QACtF;QAAA,4DAAM;QACV;QAAA,4DAAM;QACN;QAAA,0EACG;QAAA;QAAA,wEACC;QAAA;QAAA,+EAAwF;QAA9E,8JAAS,mBAAe,IAAC;QAAqD,qEAAS;QAAA,4DAAW;QAC7G;QAAA,4DAAO;QACP;QAAA,4EAAwG;QAAA,yEAAa;QAAA,4DAAO;QAC5H;QAAA,8HACC;QAEJ;QAAA,4DAAM;QAGN;QAMA;QAAA,kIACI;QAKJ;QAAA,2EACI;QAAA;QAAA,+EAEQ;QAAA;QAAA,oFAAgG;QAAlF,0KAAU,2BAAuB,IAAC;QAAgD,mFAAuB;QAAA,4DAAe;QAC1I;QAAA,8EACI;QADkC,4JAAS,WAAO,IAAC;QACnD,gFAAM;QAAA,4DAAS;QACnB;QAAA,8EACI;QADkD,4JAAS,kBAAc,IAAC;QAC1E,8EAAI;QAAA,4DAAS;QACrB;QAAA,4DAAU;QAEd;QAAA,4DAAM;QACN;QAAA,4DAAO;QACP;QAAA,mFAEI;QAAA;QAAA,yEAAmB;QAAA,uEAAW;QAAA,4DAAI;QACtC;QAAA,4DAAc;QACd;;QAzDS,0DAAsC;QAAtC,gHAAsC;QAWzC,2DAAoB;QAApB,iFAAoB;QAIsB,0DAAwB;QAAxB,qFAAwB;QAQhC,2DAA0B;QAA1B,wFAA0B;QAY5C,0DAA0B;QAA1B,wFAA0B;QAkBU,2DAAoB;QAApB,6EAAoB;;6FDxCjE,mCAAmC;cAL/C,uDAAS;eAAC;gBACT,QAAQ,EAAE,mCAAmC;gBAC7C,WAAW,EAAE,gDAAgD;gBAC7D,SAAS,EAAE,CAAC,gDAAgD,CAAC;aAC9D;;sBA+GI,oDAAM;uBAAC,wEAAe;;;;;;;;;;;;;;AE7H3B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AAEA;AACZ;AAEa;AAE7B;AAC0B;AAQoE;AACxC;AACsC;AAEpE;;;;;;;;;;;;;;;;;;;;;;;;ICHzC,4EAAiE;IAAA,gFAAqB;IAAA,4DAAY;;;IAa1F,4EAA+D;IAAA,8EAAmB;IAAA,4DAAY;;;IA0BlG,yEACI;IAAA,yHACJ;IAAA,4DAAK;;;IACL,yEACI;IAAA,uDACJ;IAAA,4DAAK;;;IADD,0DACJ;IADI,mJACJ;;;IAGA,yEACI;IAAA,6HACJ;IAAA,4DAAK;;;IACL,yEACI;IAAA,uDACJ;IAAA,4DAAK;;;IAFoB,6GAAuC;IAC5D,0DACJ;IADI,0JACJ;;;IAIA,yEAA+E;IAAA,2EAAgB;IAAA,4DAAK;;;IACpG,yEAAoG;IAAA,uDAAgC;IAAA,4DAAK;;;IAAjH,4GAAsC;IAAsC,0DAAgC;IAAhC,2GAAgC;;;IAGpI,yEAA+E;IAAA,kFAAuB;IAAA,4DAAK;;;IAC3G,yEAA0C;IAAA,uDAAmC;IAAA,4DAAK;;;IAAxC,0DAAmC;IAAnC,8GAAmC;;;IAC7E,yEACI;IAAA;IAAA,8EAAoF;IACxF;IAAA,4DAAK;;;IAGL,yEACI;IAAA,iHACJ;IAAA,4DAAK;;;;IACL,yEACI;IAAA;IAAA,2EACI;IAD2B,iXAA2B;IACtD;IAAA,+EAAiE;IAAA,kEAAO;IAAA,4DAAW;IAAA,2EAAwD;IAAA,+DAAI;IAAA,4DAAO;IAC1J;IAAA,4DAAO;IACX;IAAA,4DAAK;;;IAET,oEAA4D;;;IAC5D,oEAAiE;;;IACjE,yEACI;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IACjD;IAAA,4DAAK;;;ADrEd,MAAM,8BAA8B;IA4BzC,YAAoB,qBAAmD,EAAS,OAAe,EAAS,SAAsB,EAAS,UAAsB,EAAY,OAA0B,EACzL,EAAe,EAChB,MAAiB,EAChB,QAAqB,EACrB,6BAA2D;QAJjD,0BAAqB,GAArB,qBAAqB,CAA8B;QAAS,YAAO,GAAP,OAAO,CAAQ;QAAS,cAAS,GAAT,SAAS,CAAa;QAAS,eAAU,GAAV,UAAU,CAAY;QAAY,YAAO,GAAP,OAAO,CAAmB;QACzL,OAAE,GAAF,EAAE,CAAa;QAChB,WAAM,GAAN,MAAM,CAAW;QAChB,aAAQ,GAAR,QAAQ,CAAa;QACrB,kCAA6B,GAA7B,6BAA6B,CAA8B;QA/BrE,SAAI,GAAC,CAAC,CAAC;QAEC,YAAO,GAAW,MAAM,CAAC;QAIzB,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QACtD,qBAAgB,GAAa;YAC3B,eAAe;YACf,gBAAgB;YAChB,cAAc;YACd,oBAAoB;YACpB,SAAS;SACV,CAAC;QASF,uBAAkB,GAAkC,OAAO,CAAC;QAC5D,qBAAgB,GAAgC,KAAK,CAAC;QACtD,oBAAe,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QAQjD,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,IAAI,yEAAkB,EAAE,CAAC;QAC3C,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,EAAE;YAC9D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,QAAQ;QACN,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACvF,sCAAsC;QACtC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YAC1B,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACrC,MAAM,EAAE,CAAE,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;SACrC,CAAC,CAAC;IACL,CAAC;IACD,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,WAAW,EAAC;gBACd,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;aACzD;iBACG;gBACJ,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBACjE,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBACjC,IAAI,CAAC,UAAU,CAAC,mBAAmB,GAAG,CAAC,IAAS,EAAE,YAAoB,EAAU,EAAE;oBAChF,IAAI,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,QAAQ,EAAE;wBAC1C,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,iBAAiB,EAAE,CAAC;qBAC/C;oBAED,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC;gBAC5B,CAAC,CAAC;aACD;SACJ;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACjE,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACjC,IAAI,CAAC,UAAU,CAAC,mBAAmB,GAAG,CAAC,IAAS,EAAE,YAAoB,EAAU,EAAE;gBAChF,IAAI,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,QAAQ,EAAE;oBAC1C,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,iBAAiB,EAAE,CAAC;iBAC/C;gBAED,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC;YAC5B,CAAC,CAAC;SACD;IACL,CAAC;IAGC,oBAAoB,CAAC,YAAiB;QACpC,IAAI,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;QACnC,YAAY,CAAC,aAAa,GAAG,YAAY,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QACtE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,qCAAqC,GAAG,YAAY,CAAC,aAAa,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACrI,CAAC;IAED,YAAY;QACV,IAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAC;YACnB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;SACf;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,KAAK,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,KAAK,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,EAAE;YACxL,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,OAAO;SACR;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,IAAI,EAAE;YACtE,IAAI,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE;gBACxD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,qCAAqC,EAAE,GAAG,EAAE;oBAC7D,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;oBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;iBACxC,CAAC,CAAC;gBAEH,OAAO,KAAK,CAAC;aACd;YACD,IAAI,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE;gBACtD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE;oBAC3D,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;oBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;iBACxC,CAAC,CAAC;gBACH,OAAO,KAAK,CAAC;aACd;YACD,IAAI,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;gBACpE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;oBAC/D,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;oBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;iBACxC,CAAC,CAAC;gBACH,OAAO,KAAK,CAAC;aACd;YACD,IAAI,CAAC,iBAAiB,GAAE,EAAE,CAAC;YAC3B,IAAI,SAAS,GAAI,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACvE,IAAI,OAAO,GAAI,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACnE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,6BAA6B,CAAC,4BAA4B,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,GAAgC,EAAE,EAAE;gBAEjI,IAAG,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;oBAChC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;oBACvB,IAAI,CAAC,iBAAiB,GAAC,GAAG,CAAC;oBAC3B,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,MAAiC,EAAE,EAAE;wBACnE,MAAM,CAAC,qBAAqB,GAAG,CAAC,MAAM,CAAC,kBAAkB,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;oBACpF,CAAC,CAAC,CAAC;oBACH,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;oBACjE,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;oBAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;oBACjC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;oBACpB,IAAI,CAAC,UAAU,CAAC,mBAAmB,GAAG,CAAC,IAAS,EAAE,YAAoB,EAAU,EAAE;wBAChF,IAAI,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,QAAQ,EAAE;4BAC1C,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,iBAAiB,EAAE,CAAC;yBAC/C;wBAED,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC;oBAC5B,CAAC,CAAC;iBACL;qBACM;oBACH,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;oBACpB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;oBACvB,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;oBACjE,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;oBAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;oBACjC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE;wBAC3C,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAC,CAAC,eAAe,CAAC;wBAC5B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;YAEH,CAAC,CAEA,CAAC;SACH;IACH,CAAC;IAED,QAAQ,CAAC,gBAA0B;QACjC,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0IAAmC,EAAE;YACpE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;YAC7B,YAAY,EAAE,IAAI;YAClB,IAAI,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE;SACpC,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,CAAC,YAAY,EAAE;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK;QACH,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,iBAAiB,GAAC,EAAE,CAAC;QAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACjE,uCAAuC;QACvC,oCAAoC;QACpC,0BAA0B;QAC1B,8CAA8C;QAC9C,yBAAyB;IAC3B,CAAC;;4GAlMQ,8BAA8B;8GAA9B,8BAA8B;wEAoB9B,wEAAY;wEACZ,8DAAO;;;;;;;QChDpB;QAAA,gFACI;QAAA;QAAA,yFACE;QAD8C,gLAAe,CAAC,IAAC,wHAAgB,CAAC,IAAjB;QAC/D;QAAA,6FACE;QAAA;QAAA,kFACI;QAAA;QAAA,2EAAU;QAAA,uEAAW;QAAA,4DAAW;QAAC,4GACrC;QAAA,4DAAkB;QACnB;QAAA,4DAA6B;QACpC;QAAA,2EACI;QAAA;QAAA,0EACI;QAAA;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,qEAAS;QAAA,2EAA0B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QAClE;QAAA,4EAEA;QAFuC,oSAAS,UAAW,IAAC,4PACjB,uBAAuB,IADN;QAA5D,4DAEA;QAAA;QAAA,uFAAsE;QACtE;QAAA,sFAAuC;QACvC;QAAA,wIAAiE;QACrE;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,0EAEQ;QAAA;QAAA,qFACQ;QAAA;QAAA,6EAAW;QAAA,mEAAO;QAAA,2EAA0B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QAChE;QAEI;QAAA,6EAEJ;QAFyC,oSAAS,UAAS,IAAC,0PACnB,uBAAuB,IADJ;QAAxD,4DAEJ;QAAA;QAAA,uFAAoE;QACpE;QAAA,uFAAqC;QACrC;QAAA,wIAA+D;QACnE;QAAA,4DAAiB;QAC7B;QAAA,4DAAM;QAEV;QAAA,0EACI;QAAA;QAAA,iEACA;QAAA;QAAA,+EACI;QAAA;QAAA,8EACI;QADkC,uJAAS,WAAO,IAAC;QACnD,mFAAK;QAAA,4DAAS;QAClB;QAAA,8EACI;QADkD,uJAAS,kBAAc,IAAC;QAC1E,mFAAK;QAAA,4DAAS;QACtB;QAAA,4DAAU;QAEd;QAAA,4DAAM;QACN;QAAA,4DAAM;QACN;QAAA,4DAAO;QACX;QAAA,4DAAsB;QACtB;QAAA,4DAAgB;QAChB;QAAA,4EACA;QAAA;QAEI;QAAA,oFACI;QAAA;QAAA,2EACI;QAAA;QAAA,6EAEI;QAAA;QAAA,6EACI;QAAA;QAAA,2HACI;QAEJ;QAAA,2HACI;QAER;QAAA,qEAAe;QACf;QAAA,6EACI;QAAA;QAAA,2HACI;QAEJ;QAAA,2HACI;QAER;QAAA,qEAAe;QAEf;QAAA,8EACI;QAAA;QAAA,6HAA+E;QAC/E;QAAA,6HAAoG;QACtG;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,6HAA+E;QAC/E;QAAA,6HAA0C;QAC1C;QAAA,6HACI;QAEF;QAAA,qEAAe;QACrB;QAAA,8EACI;QAAA;QAAA,6HACI;QAEJ;QAAA,8HACI;QAIR;QAAA,qEAAe;QACf;QAAA,6HAAuD;QACvD;QAAA,6HAA4D;QAC5D;QAAA,6HACI;QAER;QAAA,4DAAQ;QACZ;QAAA,4DAAM;QACN;QAAA,4EACI;QAAA;QAAA,iFAAgE;QACpE;QAAA,4DAAM;QACV;QAAA,4DAAmB;QACvB;QAAA,4DAAW;QACX;QAAA,oFAMI;QAAA;QAAA,0EAAmB;QAAA,wEAAW;QAAA,4DAAI;QACtC;QAAA,4DAAc;QACd;;;;QA/G4B,0DAAuB;QAAvB,oFAAuB;QAM5C,2DAAoB;QAApB,iFAAoB;QAGC,0DAA8B;QAA9B,sGAA8B;QAE1B,0DAAsB;QAAtB,8EAAsB;QAEL,0DAAY;QAAZ,oEAAY;QAElC,0DAAqD;QAArD,mHAAqD;QAKhD,0DAA8B;QAA9B,sGAA8B;QAIlB,0DAAoB;QAApB,8EAAoB;QAEP,0DAAU;QAAV,oEAAU;QAEhC,0DAAmD;QAAnD,iHAAmD;QAuBzD,2DAAyB;QAAzB,sFAAyB;QAwCnB,2DAAmC;QAAnC,iGAAmC;QAC1C,0DAA+C;QAA/C,kGAA+C;QAOhD,0DAAgC;QAAhC,mJAAgC;QAO1D,0DAAoB;QAApB,6EAAoB;;6FDhFR,8BAA8B;cAL1C,uDAAS;eAAC;gBACT,QAAQ,EAAE,6BAA6B;gBACvC,WAAW,EAAE,0CAA0C;gBACvD,SAAS,EAAE,CAAC,0CAA0C,CAAC;aACxD;61BAqB4C,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACH,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AE/CtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2EAA2E;AACd;AAGA;AACF;AACV;AAG4C;AAE5D;;;;;;;;;;;;;;ICNjB,yEAAgF;IAAA,wEAAY;IAAA,4DAAK;;;IACjG,yEAA0C;IAAA,uDAA2B;IAAA,4DAAK;;;IAAhC,0DAA2B;IAA3B,sGAA2B;;;IAIrE,yEAAgF;IAAA,0EAAc;IAAA,4DAAK;;;IACnG,yEAA0C;IAAA,uDAA2B;IAAA,4DAAK;;;IAAhC,0DAA2B;IAA3B,sGAA2B;;;IAIrE,yEAAgF;IAAA,sEAAU;IAAA,4DAAK;;;IAC/F,yEAA0C;IAAA,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,kGAAuB;;;IAIjE,yEAAuC;IAAA,oFAAwB;IAAA,4DAAK;;;;IACpE,yEACE;IAAA;IAAA,+EAA0D;IAAhD,6XAA+B;IAAiB,qEAAU;IAAA,4DAAW;IACjF;IAAA,4DAAK;;;IAIL,yEAAuC;IAAA,2EAAe;IAAA,4DAAK;;;;IAC3D,yEACE;IAAA;IAAA,+EAA4D;IAAlD,8XAAgC;IAAkB,sEAAU;IAAA,4DAAW;IACnF;IAAA,4DAAK;;;IAKL,yEAAuC;IAAA,+EAAmB;IAAA,4DAAK;;;;IAC/D,yEACI;IAAA;IACA;IAAA,+EAAiF;IAAvE,6XAA+B;IAAwC,qEAAU;IAAA,4DAAW;IAC1G;IAAA,4DAAK;;;IAEP,oEAA4D;;;IAC1D,oEAAkE;;;IAClE,yEACA;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAC7C;IAAA,4DAAK;;;ADzBZ,MAAM,iCAAiC;IAoB9C,YAAoB,8BAAmD,EAAQ,UAAsB,EAAS,OAAe,EAAQ,MAAiB,EAAS,SAAsB;QAAjK,mCAA8B,GAA9B,8BAA8B,CAAqB;QAAQ,eAAU,GAAV,UAAU,CAAY;QAAS,YAAO,GAAP,OAAO,CAAQ;QAAQ,WAAM,GAAN,MAAM,CAAW;QAAS,cAAS,GAAT,SAAS,CAAa;QAVrL,qBAAgB,GAAa;YACzB,SAAS;YACT,SAAS;YACT,UAAU;YACV,WAAW;YACX,OAAO;YACP,IAAI;SACL,CAAC;QAIF,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,EAAE;YAC9D,iCAAiC;QACnC,CAAC,CAAC,CAAC;IACJ,CAAC;IACF,QAAQ;QAAS,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CACzC,cAAc,CAAC,iCAAiC,CAAC,CAClD,CAAC,QAAQ,CAAC;QACX,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAC1B,cAAc,CAAC,iCAAiC,CAAC,CAClD,CAAC,UAAU,CAAC;QACb,iGAAiG;QAEjG,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IACD;;;;;;;;;;;;OAYG;IACH,oBAAoB;QAClB,IAAI,CAAC,8BAA8B,CAAC,wBAAwB,EAAE,CAAC,SAAS,CAAC,CAAC,GAAU,EAAE,EAAE;YACpF,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,GAAG,mCAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5E,IAAI,CAAC,uBAAuB,GAAG,IAAI,0EAAkB,CAAC,GAAG,CAAC,CAAC;YAC3D,IAAI,CAAC,uBAAuB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAClD,CAAC,CAAC,CAAC;IAEL,CAAC;IAGG,UAAU,CAAC,YAAiB;QAC1B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,8BAA8B,GAAE,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC;IACrF,CAAC;IACD,WAAW,CAAC,YAAiB;QAC3B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,+BAA+B,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC;IACrF,CAAC;IACD,mCAAmC;IACnC,0FAA0F;IAC1F,IAAI;IACJ,UAAU,CAAC,YAAY;QAErB,IAAI,CAAC,8BAA8B,CAAC,0BAA0B,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,IAAU,EAAC,EAAE;YAC9G,IAAG,CAAC,IAAI,CAAC,MAAM,EAAC;gBACd,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,EAAE;oBACzC,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;oBAClC,iBAAiB;gBACnB,CAAC,CAAC,CAAC;aACJ;iBACI,IAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAC;gBACpB,IAAI,QAAQ,GAAC,EAAE,CAAC;gBAChB,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAC,EAAE;oBACnB,QAAQ,CAAC,IAAI,CAAC,EAAC,WAAW,EAAC,IAAI,CAAC,SAAS,EAAC,aAAa,EAAC,IAAI,CAAC,WAAW,EAAC,SAAS,EAAC,YAAY,CAAC,UAAU,EAAC,CAAC;gBAC9G,CAAC,CAAC;gBACF,IAAI,CAAC,8BAA8B,CAAC,oBAAoB,CAAC,QAAQ,CAAC;gBAClE,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2GAA0B,CAAC,CAAC;gBAC/D,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;oBACzC,OAAO,CAAC,GAAG,CAAC,kBAAkB,MAAM,EAAE,CAAC,CAAC;gBAC1C,CAAC,CAAC,CAAC;aACN;iBAAI;gBACH,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,2BAA2B,GAAC,YAAY,CAAC,UAAU,GAAC,GAAG,GAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;aACpG;QAGH,CAAC,CAAC;IAEJ,CAAC;IACD,IAAI;QACF,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC;IAC9D,CAAC;;kHApGY,iCAAiC;iHAAjC,iCAAiC;wEAOnC,8DAAO;wEACP,wEAAY;wEACZ,8DAAO;;;;;;;QC7BpB;QAAA,2EACI;QAAA;QAAA,mFACE;QAAA;QAAA,yEACE;QAAA;QAAA,2EACI;QAAA;QAAA,2EACI;QAAA;QAAA,6HAAgF;QAChF;QAAA,6HAA0C;QAC5C;QAAA,qEAAe;QAEf;QAAA,4EACE;QAAA;QAAA,6HAAgF;QAChF;QAAA,6HAA0C;QAC5C;QAAA,qEAAe;QAEf;QAAA,4EACE;QAAA;QAAA,6HAAgF;QAChF;QAAA,6HAA0C;QAC5C;QAAA,qEAAe;QAEf;QAAA,4EACE;QAAA;QAAA,6HAAuC;QACvC;QAAA,6HACE;QAEJ;QAAA,qEAAe;QAEf;QAAA,4EACE;QAAA;QAAA,6HAAuC;QACvC;QAAA,6HACE;QAEJ;QAAA,qEAAe;QAGf;QAAA,6EACE;QAAA;QAAA,6HAAuC;QACvC;QAAA,6HACI;QAGN;QAAA,qEAAe;QACf;QAAA,8HAAuD;QACrD;QAAA,8HAA6D;QAC7D;QAAA,8HACA;QAIR;QAAA,4DAAQ;QACV;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,gFAAgE;QAClE;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,8EAA4C;QAAjB,0JAAS,UAAM,IAAC;QAAC,oEAAQ;QAAA,4DAAS;QAC/D;QAAA,4DAAM;QACR;QAAA,4DAAmB;QACvB;QAAA,4DAAW;QAEX;;QAxDyB,0DAAsC;QAAtC,mGAAsC;QAsC9B,2DAAmC;QAAnC,iGAAmC;QACxC,0DAAgD;QAAhD,kGAAgD;QASrD,0DAAgC;QAAhC,kJAAgC;;6FD/BxC,iCAAiC;cAN7C,uDAAS;eAAC;gBACT,QAAQ,EAAE,gCAAgC;gBAC1C,WAAW,EAAE,6CAA6C;gBAC1D,SAAS,EAAE,CAAC,6CAA6C,CAAC;aAC3D;icASqC,iBAAiB;kBAAtD,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACO,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACH,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AE/BtC;AAAA;AAAA;AAAA;AAAA;AAAkD;;;;AAO3C,MAAM,sBAAsB;IAEjC,gBAAgB,CAAC;IAEjB,QAAQ;IACR,CAAC;;4FALU,sBAAsB;sGAAtB,sBAAsB;QCPnC,yEACI;QAAA;QAAA,2EAA+B;QACnC;QAAA,4DAAM;QACN;QAAA,iFAMI;QAAA;QAAA,uEAAmB;QAAA,sEAAW;QAAA,4DAAI;QACtC;QAAA,4DAAc;;QAJb,0DAAoB;QAApB,6EAAoB;;6FDCR,sBAAsB;cALlC,uDAAS;eAAC;gBACT,QAAQ,EAAE,oBAAoB;gBAC9B,WAAW,EAAE,iCAAiC;gBAC9C,SAAS,EAAE,CAAC,iCAAiC,CAAC;aAC/C;;;;;;;;;;;;;;AEND;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0E;AACc;AAC/B;AAEI;AACwC;AAExB;AACO;AAKnD;AAKe;;;;;;;;;;;;;;;;;;;;;;;;;ICChC,6EAEE;IADmC,uUAAsB;IACzD;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC5B;IAAA,4DAAS;;;IAEP,iFACU;IAAA,kFAAuB;IAAA,4DAAa;;;IAC9C,iFACE;IAAA,uDACF;IAAA,4DAAa;;;IAFkD,6EAAgB;IAC7E,0DACF;IADE,oIACF;;;IAEF,4EACE;IAAA,oIACF;IAAA,4DAAY;;;IACZ,4EACI;IAAA,mHACJ;IAAA,4DAAY;;;IAqBlB,yEAAoF;IAAA,iEAAM;IAAA,4DAAK;;;IAA3E,oFAAoB;;;;IACxC,yEACE;IAAA;IAAA,uFACA;IADuC,4WAA0B;IACjE;IAAA,4DAAmB;IACrB;IAAA,4DAAK;;;IAHkC,oFAAoB;IACvC,0DAAoB;IAApB,oFAAoB;;;IAMtC,yEAAiE;IAAA,uEAAY;IAAA,4DAAK;;;IAClF,yEAAwC;IAAA,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,oGAAyB;;;IAInE,yEAAgE;IAAA,sEAAW;IAAA,4DAAK;;;IAChF,yEAAwC;IAAA,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,mGAAwB;;;IAIhE,yEAAiE;IAAA,8EAAmB;IAAA,4DAAK;;;IACzF,yEAAwC;IAAA,uDAA+B;IAAA,4DAAK;;;IAApC,0DAA+B;IAA/B,0GAA+B;;;IAIvE,yEAAgE;IAAA,+EAAoB;IAAA,4DAAK;;;IACzF,yEAAwC;IAAA,uDAAiC;IAAA,4DAAK;;;IAAtC,0DAAiC;IAAjC,4GAAiC;;;IAKzE,yEAAgE;IAAA,qEAAU;IAAA,4DAAK;;;IAC/E,yEAAwC;IAAA,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,kGAAuB;;;IAG/D,yEAAiE;IAAA,qEAAU;IAAA,4DAAK;;;IAChF,yEAAwC;IAAA,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,kGAAuB;;;IAGzD,yEAAwF;IAAA,iEAAM;IAAA,4DAAK;;;IAA9E,sFAAqB;;;;IAC1C,yEACI;IAAA;IAAA,6EACgB;IAD4B,8WAAyB;IACrD,iEAAM;IAAA,4DAAS;IACnC;IAAA,4DAAK;;;IAHQ,sFAAqB;IACR,0DAAqB;IAArB,sFAAqB;;;IAIvD,oEAA4D;;;IACxD,oEAAkE;;;;IAcpD,4FAEI;IADA,+WAA4B,oBAAoB,KAAE;IAClD;IAAA,+EAAkC;IAAA,gEAAK;IAAA,4DAAW;IACtD;IAAA,4DAAwB;;;IAGxB,4EACI;IAAA;IAAA,2EAAyB;IAAA,0FAA+B;IAAA,4DAAO;IACnE;IAAA,4DAAY;;;;IASZ,4FAEI;IADA,+WAA4B,mBAAmB,KAAE;IACjD;IAAA,+EAAkC;IAAA,gEAAK;IAAA,4DAAW;IACtD;IAAA,4DAAwB;;;IAGxB,4EACI;IAAA;IAAA,2EAAyB;IAAA,2FAAgC;IAAA,4DAAO;IACpE;IAAA,4DAAY;;;;IAuClB,4FAEI;IADA,+XAA4B,cAAc,KAAE;IAC5C;IAAA,+EAAkC;IAAA,gEAAK;IAAA,4DAAW;IACtD;IAAA,4DAAwB;;;IAGxB,4EACQ;IAAA;IAAA,2EAAyB;IAAA,mFAAwB;IAAA,4DAAO;IAC5D;IAAA,4DAAY;;;;IAjBhC;IAAA,0EACI;IAAA;IAAA,0EACQ;IAAA;IAAA,qEAAI;IAAA,sGAA2C;IAAA,4DAAK;IACxD;IAAA,yEACA;IAAA;IAAA,2EACA;IAAA;IAAA,sFACQ;IAAA;IAAA,6EAAW;IAAA,uEAAW;IAAA,2EAA0B;IAAA,6DAAC;IAAA,4DAAO;IAAA,4DAAY;IACpE;IAAA,6EAEA;IADA,4WAA0B,0PAAuE,WAAc,IAArF;IAD1B,4DAEA;IAAA;IAAA,8KAEI;IAEJ;IAAA,wFAAyE;IACzE;IAAA,uFAA0C;IAC1C;IAAA,sJACQ;IAEZ;IAAA,4DAAiB;IACrB;IAAA,4DAAM;IACN;IAAA,4DAAM;IACN;IAAA,0EACA;IAAA;IAAA,2EACA;IAAA;IAAA,sFACQ;IAAA;IAAA,6EAAW;IAAA,oEAAQ;IAAA,4DAAY;IAC/B;IAAA,2EAAuE;IAC/E;IAAA,4DAAiB;IACjB;IAAA,4DAAM;IACN;IAAA,4DAAM;IACN;IAAA,2EACQ;IAAA;IAAA,+EACA;IAAA;IAAA,8EACI;IADoE,yZAAiF;IACrJ,yFAAG;IAAA,4DAAS;IAChB;IAAA,8EACQ;IAD+D,gVAAwB;IACvF,4FAAE;IAAA,4DAAS;IACnB;IAAA,4DAAU;IACd;IAAA,4DAAM;IACd;IAAA,4DAAM;IACV;IAAA,4DAAO;IACR;;;;IAvCO,0DAAwB;IAAxB,yFAAwB;IAKN,2DAAiC;IAAjC,2GAAiC;IAElC,0DAAe;IAAf,gFAAe;IAEW,0DAAqC;IAArC,uGAAqC;IAIrC,0DAAe;IAAf,qEAAe;IAErC,0DAAoF;IAApF,8JAAoF;IAQvF,0DAA+B;IAA/B,2GAA+B;;ADtKpD,MAAM,2BAA2B;IAmCtC,YAAmB,MAAiB,EAChB,OAAsC,EACtC,SAAsB,EACtB,2BAAwD,EACxD,SAA8B,EAC9B,yBAAqD;QALtD,WAAM,GAAN,MAAM,CAAW;QAChB,YAAO,GAAP,OAAO,CAA+B;QACtC,cAAS,GAAT,SAAS,CAAa;QACtB,gCAA2B,GAA3B,2BAA2B,CAA6B;QACxD,cAAS,GAAT,SAAS,CAAqB;QAC9B,8BAAyB,GAAzB,yBAAyB,CAA4B;QAvCzE,qBAAgB,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QAOpD,iBAAY,GAAS,IAAI,CAAC;QAG1B,kBAAa,GAAG,KAAK,CAAC;QACtB,wBAAmB,GAAG,KAAK,CAAC;QAC5B,wBAAmB,GAAG,KAAK,CAAC;QAC5B,mBAAc,GAAgC,EAAE,CAAC;QACjD,YAAO,GAA8B,IAAI,CAAC;QAC1C,kBAAa,GAAY,KAAK,CAAC;QAK/B,qBAAgB,GAAW,KAAK,CAAC;QACjC,iBAAY,GAAU,EAAE,CAAC;QAEzB,cAAS,GAAW,KAAK,CAAC;QAC1B,cAAS,GAAW,KAAK,CAAC;QAQ1B,qBAAgB,GAAa,CAAC,aAAa,EAAC,cAAc,EAAE,aAAa,EAAE,oBAAoB,EAAE,sBAAsB,EAAC,YAAY,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;QAQhJ,IAAI,CAAC,aAAa,GAAG,IAAI,wFAAsB,EAAE,CAAC;IACnD,CAAC;IAEd,QAAQ;QACN,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;QACrB,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,eAAe,GAAG,IAAI,wDAAS,CAAC;YACnC,aAAa,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAC,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC1D,SAAS,EAAG,IAAI,0DAAW,CAAC,KAAK,CAAC;SACnC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,GAAG,IAAI,wDAAS,CAAC;YAC9B,YAAY,EAAG,IAAI,0DAAW,CAAC,IAAI,EAAC,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC1D,MAAM,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAG;SAChC,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,GAAG,IAAI,wDAAS,CAAC;YACjC,kBAAkB,EAAG,IAAI,0DAAW,CAAC,IAAI,EAAC,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAChE,iBAAiB,EAAG,IAAI,0DAAW,CAAC,IAAI,EAAC,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC/D,MAAM,EAAG,IAAI,0DAAW,CAAC,IAAI,CAAG;SACjC,CAAC,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,UAAU,CAAC;QAC3F,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAEvF,IAAG,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAC;YAChC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;QAED,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,IAAI,CAC/D,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CACxC,CAAC;QAEF,IAAI,CAAC,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC;IACjC,CAAC;IAED,kBAAkB,CAAC,aAAmB;QACpC,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC;IACpC,CAAC;IAED,SAAS;QACP,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACxB,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,mBAAmB,GAAE,KAAK,CAAC;QAChC,IAAI,CAAC,mBAAmB,GAAE,KAAK,CAAC;IAClC,CAAC;IAEO,WAAW,CAAC,KAAK;QACvB,IAAI,WAAW,CAAC;QAChB,IAAI,OAAO,KAAK,CAAC,aAAa,KAAK,QAAQ,EAAE;YAC3C,OAAO,IAAI,CAAC,YAAY,CAAC;SAC1B;QACD,IAAI,KAAK,IAAI,KAAK,CAAC,aAAa,EAAE;YAChC,IAAI,OAAO,KAAK,CAAC,aAAa,KAAK,QAAQ,EAAE;gBAC3C,WAAW,GAAG,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;aACjD;iBACI;gBACH,IAAI,KAAK,CAAC,aAAa,KAAK,IAAI,EAAE;oBAChC,WAAW,GAAG,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;iBACvD;aACF;YACD,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CACzC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CACjD,CAAC;SACH;aAAM;YACL,OAAO,IAAI,CAAC,YAAY,CAAC;SAC1B;IACH,CAAC;IAED,SAAS,CAAC,IAAS;QACjB,OAAO,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9C,CAAC;IAED,UAAU;QACR,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,UAAU,CAAC,GAAQ,EAAE,SAAS;QAC5B,IAAG,SAAS,IAAE,oBAAoB,EAAC;YACjC,IAAG,CAAC,IAAI,CAAC,SAAS,EAAC;gBACnB,GAAG,CAAC,eAAe,EAAE,CAAC;gBACtB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,KAAK,EAAE,CAAC;aACpD;SACF;QACD,IAAG,SAAS,IAAE,mBAAmB,EAAC;YAChC,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,CAAC;SACrD;QACD,IAAG,SAAS,IAAI,cAAc,EAAC;YAC7B,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,KAAK,EAAE,CAAC;SAC7C;IACH,CAAC;IAEM,gBAAgB,CAAC,KAAU;QAChC,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,aAAa,CAAC,kBAAkB,GAAG,EAAE,CAAC;QAC3C,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,EAAE,CAAC;QAC/B,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,KAAK,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC7B,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC;YACtC,IAAI,CAAC,oBAAoB,EAAE,CAAC;SAC7B;aACI;YACH,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;YAC9B,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,KAAK,CAAC;YACvC,IAAI,CAAC,oBAAoB,EAAE,CAAC;SAC7B;IACH,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC,SAAS,CAAC,CAAC,IAAoB,EAAE,EAAE;YACrE,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;YAC5B,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBACvC,IAAG,IAAI,CAAC,gBAAgB,IAAI,IAAI,EAAE;oBAChC,IAAG,OAAO,CAAC,MAAM,IAAI,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,MAAM,EAAE;wBACnE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;qBAC5E;iBACF;qBACI;oBACH,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;iBAC5E;YACH,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,KAAK,EAAE,CAAC;QACzD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,mBAAmB,GAAE,KAAK,CAAC;QAChC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAGD,wBAAwB,CAAC,kBAA2B;QAClD,IAAG,IAAI,CAAC,gBAAgB,IAAI,IAAI,EAAE;YAC9B,IAAG,kBAAkB,IAAI,IAAI,EAAC;gBAC5B,IAAI,CAAC,yBAAyB,CAAC,wBAAwB,CAAC,mCAAM,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAChH,CAAC,GAAG,EAAE,EAAE;oBACN,IAAG,GAAG,IAAI,IAAI,EAAC;wBACb,IAAI,CAAC,iBAAiB,GAAI,GAAG,CAAC;qBAC/B;gBACH,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;oBACR,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;wBACpC,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,aAAa,CAAC;wBAC3B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;gBACL,CAAC,CACF,CAAC;aACH;SACF;IACL,CAAC;IAED,iBAAiB,CAAC,mBAA4B;QAC5C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,IAAG,IAAI,CAAC,eAAe,CAAC,KAAK,IAAI,IAAI,EAAC;YACpC,IAAI,CAAC,2BAA2B,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAChG,CAAC,GAA6B,EAAE,EAAE;gBAChC,IAAG,GAAG,IAAI,IAAI,EAAC;oBACb,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;oBACtB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;oBACzB,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;oBACnB,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;oBAC/E,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;oBAC/E,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACvC,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;oBAC9D,IAAG,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,IAAI,EAAC;wBAClC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;wBACtB,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;wBACxD,IAAI,CAAC,aAAa,CAAC,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC;wBACxE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;wBACxD,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC;wBACtC,IAAG,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,EAC9B;4BACE,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;yBACjD;qBACF;yBACI;wBACH,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;wBACvB,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC;wBACtC,IAAI,CAAC,aAAa,CAAC,kBAAkB,GAAG,EAAE,CAAC;wBAC3C,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;wBAC5B,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,EAAE,CAAC;wBAC/B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;qBAC5B;iBACF;qBACI;oBACH,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;oBACzB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;oBACvB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE;wBAC3C,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,aAAa,CAAC;wBAC3B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;YACH,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;gBACR,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;oBACpC,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACL,CAAC,CACF,CAAC;SACL;IACD,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAG,IAAI,CAAC,YAAY,IAAI,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,IAAI,IAAI,EAAE;YACtE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,EAAE;gBACjD,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,CAAC,aAAa,CAAC;gBAC3B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;SACJ;QACD,IAAG,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,IAAI,EAAC;YAChC,IAAG,IAAI,CAAC,aAAa,CAAC,kBAAkB,IAAI,IAAI,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,EAClF;gBACE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,kBAAkB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;aACtG;YAED,IAAG,IAAI,CAAC,WAAW,EACnB;gBACI,IAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,iBAAiB,IAAI,IAAI,EAAC;oBACpD,IAAI,CAAC,aAAa,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,iBAAiB,CAAC;iBACnF;gBACD,IAAG,IAAI,CAAC,aAAa,CAAC,WAAW,IAAI,IAAI,EAAG;oBAC1C,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;iBAC9D;gBACD,IAAI,CAAC,yBAAyB,CAAC,wBAAwB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,EAAC,EAAE;oBAC3F,IAAG,GAAG,IAAG,IAAI,EAAC;wBACZ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,yCAAyC,EAAE,EAAE,EAAE;4BACjE,QAAQ,EAAE,IAAI;4BACd,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;wBACH,IAAI,CAAC,SAAS,EAAE,CAAC;wBACjB,IAAI,CAAC,KAAK,EAAE,CAAC;wBACb,IAAI,CAAC,oBAAoB,EAAE,CAAC;qBAC7B;yBACG;wBACF,IAAI,CAAC,KAAK,EAAE,CAAC;wBACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,sCAAsC,EAAE,GAAG,EAAE;4BAC/D,QAAQ,EAAE,IAAI;4BACd,UAAU,EAAE,CAAC,aAAa,CAAC;4BAC3B,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;qBACJ;gBACH,CAAC,EACD,KAAK,GAAE;oBACL,IAAI,CAAC,SAAS,EAAE,CAAC;oBACjB,IAAI,CAAC,KAAK,EAAE,CAAC;oBACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;wBACpC,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,aAAa,CAAC;wBAC3B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;aACJ;SACN;IACH,CAAC;IAED,aAAa,CAAC,SAAiB,EAAE,SAAiB;QAChD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACzB,IAAI,SAAS,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;QACpC,IAAI,OAAO,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;QACjC,IAAG,CAAC,SAAS,IAAI,IAAI,IAAI,OAAO,IAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAC;YACnE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mEAAmE,EAAE,EAAE,EAAE;gBAC3F,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,CAAC,aAAa,CAAC;gBAC3B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACH,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;SAC1B;QACD,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,MAAM,CAAC,KAAU;QACf,IAAI,CAAC,YAAY,GAAG,mCAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC5D,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;QAC/D,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;QAC3C,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC;QACjC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,UAAU,EAAE,CAAC;IACrB,CAAC;IAGD,eAAe,CAAC,MAAe,EAAE,UAAmB;QACnD,UAAU,GAAG,mCAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACrD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,IAAG,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,IAAI,EAAC;YAC/B,IAAI,CAAC,yBAAyB,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;gBAClG,IAAG,GAAG,IAAI,IAAI,EAAE;oBACd,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kCAAkC,EAAE,EAAE,EAAE;wBAC1D,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACH,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;oBAC3B,IAAI,CAAC,SAAS,EAAE,CAAC;oBACjB,IAAI,CAAC,KAAK,EAAE,CAAC;oBACb,IAAI,CAAC,WAAW,EAAE,CAAC;oBACnB,IAAI,CAAC,oBAAoB,EAAE,CAAC;iBAC7B;YACH,CAAC,EAAC,CAAC,KAAK,EAAE,EAAE;gBACV,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;oBACrC,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;SACH;IACH,CAAC;IAED,UAAU;QACR,MAAM,YAAY,GAAG,IAAI,wEAAe,EAAE,CAAC;QAC3C,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE;YAC3E,YAAY,EAAE,IAAI;YAClB,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;QACH,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;QAC/D,CAAC,CAAC,CAAC;IACL,CAAC;IAED,WAAW;QACT,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,CAAC;IACxC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,aAAa,CAAC,kBAAkB,GAAG,EAAE,CAAC;QAC3C,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,EAAE,CAAC;QAC/B,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,KAAK,CAAC;QACvC,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,YAAY;QACV,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;;sGA1ZY,2BAA2B;2GAA3B,2BAA2B;kEA8B3B,iEAAkB;;;;;;qFAhClB,CAAC,yFAAmB,CAAC;;QCxBlC,8EACI;QAAA;QAAA,mFACE;QAAA;QAAA,0EACE;QAAA;QAAA,yEACQ;QAAA;QAAA,yEACA;QAAA;QAAA,mFACwC;QAApC,kKAAU,4BAAwB,IAAC;QAAC,qEAAS;QAAA,4DAAe;QAChE;QAAA,4DAAM;QACd;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,0EAEE;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,0EAAc;QAAA,2EAA2B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QACxE;QAAA,0EAKA;QAAA;QAAA,+HAEE;QAEF;QAAA,4FACE;QAAA;QAAA,wIACU;QACV;QAAA,wIACE;;QAEJ;QAAA,4DAAmB;QACnB;QAAA,sIACE;QAEF;QAAA,sIACI;QAEN;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,2EACE;QAAA;QAAA,8EACyE;QAAvE,oJAAS,oEAA4D,IAAC;QAAC,kEAAM;QAAA,4DAAS;QAC1F;QAAA,4DAAM;QACR;QAAA,4DAAM;QACR;QAAA,4DAAM;QACR;QAAA,4DAAO;QAET;QAAA,4DAAmB;QACrB;QAAA,4DAAW;QAEX;QAAA,gFACE;QAAA;QAAA,oFACE;QAAA;QAAA,2EACE;QAAA;QAAA,6EAEF;QAAA;QAAA,6EACI;QAAA;QAAA,wHAAoF;QACpF;QAAA,wHACE;QAGJ;QAAA,qEAAe;QAEf;QAAA,6EACI;QAAA;QAAA,wHAAiE;QACjE;QAAA,wHAAwC;QAC1C;QAAA,qEAAe;QAEjB;QAAA,6EACE;QAAA;QAAA,wHAAgE;QAChE;QAAA,wHAAwC;QAC1C;QAAA,qEAAe;QAEf;QAAA,6EACE;QAAA;QAAA,wHAAiE;QACjE;QAAA,wHAAwC;QAC1C;QAAA,qEAAe;QAEf;QAAA,6EACE;QAAA;QAAA,wHAAgE;QAChE;QAAA,wHAAwC;QAC1C;QAAA,qEAAe;QAGf;QAAA,8EACE;QAAA;QAAA,0HAAgE;QAChE;QAAA,0HAAwC;QAC1C;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,0HAAiE;QACjE;QAAA,0HAAwC;QAC1C;QAAA,qEAAe;QACf;QAAA,8EACQ;QAAA;QAAA,0HAAwF;QACxF;QAAA,0HACI;QAGZ;QAAA,qEAAe;QACf;QAAA,0HAAuD;QACnD;QAAA,0HAA6D;QACjE;QAAA,4DAAQ;QACV;QAAA,4DAAM;QACR;QAAA,4DAAmB;QACrB;QAAA,4DAAW;QAEX;QAAA,iFACI;QAAA;QAAA,qFACI;QAAA;QAAA,4EACI;QAAA;QAAA,2EACI;QAAA;QAAA,4EACI;QAAA;QAAA,uFACI;QAAA;QAAA,8EAAW;QAAA,kFAAqB;QAAA,4EAA0B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QAC9E;QAAA,8EACA;QADwF,2NAA8C,sGAAe,kEAA0D,IAAzE,4OAAgJ,WAAa,IAA7J;QAAtI,4DACA;QAAA;QAAA,gKAEI;QAEJ;QAAA,yFAAwE;QACxE;QAAA,wFAA0C;QAC1C;QAAA,wIACI;QAER;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QAEN;QAAA,4EACI;QAAA;QAAA,uFACI;QAAA;QAAA,8EAAW;QAAA,gFAAmB;QAAA,4EAA0B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QAC5E;QAAA,8EAEA;QAFgE,8JAAc,8EAAiE,IAAC,gYACzC,WAAc,IAD2B;QAAhJ,4DAEA;QAAA;QAAA,gKAEI;QAEJ;QAAA,yFAAyE;QACzE;QAAA,wFAA0C;QAC1C;QAAA,wIACI;QAER;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACV;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,2EACI;QAAA;QAAA,uFACI;QAAA;QAAA,8EAAW;QAAA,mEAAM;QAAA,4DAAY;QAC7B;QAAA,iFAA2F;QAAxE,kNAAkC;QAA2B,4DAAW;QAC/F;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACV;QAAA,4DAAM;QAEN;QAAA,2EACI;QAAA;QAAA,4EACE;QAAA;QAAA,wEACI;QAAA;QAAA,+EACoB;QADE,qJAAS,cAAU,IAAC;QACtB,iEAAI;QAAA,4DAAS;QACjC;QAAA,+EACI;QAD8C,qJAAS,eAAW,IAAC;QACnE;QAAA,6EAAU;QAAA,kEAAK;QAAA,4DAAW;QAC1B,0HACJ;QAAA,4DAAS;QACb;QAAA,4DAAM;QACR;QAAA,4DAAM;QACV;QAAA,4DAAM;QACV;QAAA,4DAAO;QACX;QAAA,4DAAmB;QACvB;QAAA,4DAAW;QAEX;QAAA,0NACE;;;;;QAvKQ,0DAA6B;QAA7B,0FAA6B;QAUb,2DAA+B;QAA/B,uGAA+B;QAEd,0DAA2B;QAA3B,wFAA2B;QAKzB,0DAA2C;QAA3C,yGAA2C;QAI/B,0DAAyB;QAAzB,sFAAyB;QACtD,0DAA4G;QAA5G,8KAA4G;QAE5G,0DAAkD;QAAlD,+JAAkD;QAIrD,0DAAqE;QAArE,mIAAqE;QAGrE,0DAAwF;QAAxF,0JAAwF;QAiBvG,2DAAqB;QAArB,kFAAqB;QAGR,0DAAyB;QAAzB,sFAAyB;QA8CvB,2DAAmC;QAAnC,iGAAmC;QACtC,0DAAgD;QAAhD,kGAAgD;QAM5D,0DAAqB;QAArB,kFAAqB;QAEhB,0DAA2B;QAA3B,wFAA2B;QAGN,0DAAiC;QAAjC,uGAAiC;QAED,0DAAsB;QAAtB,mFAAsB;QACjC,0DAA8C;QAA9C,4GAA8C;QAI9C,0DAAc;QAAd,qEAAc;QAEpC,0DAAqF;QAArF,uJAAqF;QAOpF,0DAAiC;QAAjC,uGAAiC;QAG5C,0DAA+B;QAA/B,0FAA+B;QACC,0DAA6C;QAA7C,2GAA6C;QAI7C,0DAAe;QAAf,qEAAe;QAErC,0DAAoF;QAApF,sJAAoF;QAQnF,0DAA+B;QAA/B,uGAA+B;QAExB,0DAAkC;QAAlC,6FAAkC;QAU5B,2DAAsB;QAAtB,mFAAsB;;6FDnI5D,2BAA2B;cANvC,uDAAS;eAAC;gBACT,QAAQ,EAAE,yBAAyB;gBACnC,WAAW,EAAE,sCAAsC;gBACnD,SAAS,EAAE,CAAC,sCAAsC,CAAC;gBACnD,SAAS,EAAE,CAAC,yFAAmB,CAAC;aACjC;8oBA+BgC,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;YACO,qBAAqB;kBAAxD,uDAAS;mBAAC,uBAAuB;;;;;;;;;;;;;;AEzDpC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAkD;;;;;;;;;ICE9C,sEACI;IAAA;IACA;IAAA,4EAA4D;IAAxB,+VAAuB;IAAC,uDAAiB;IAAA,4DAAS;IAC1F;IAAA,4DAAM;;;IAD0D,0DAAiB;IAAjB,iFAAiB;;ADM9E,MAAM,0BAA0B;IAErC,YAAoB,8BAAmD,EAAS,OAAe;QAA3E,mCAA8B,GAA9B,8BAA8B,CAAqB;QAAS,YAAO,GAAP,OAAO,CAAQ;QAC/F,aAAQ,GAAG,EAAE;IADsF,CAAC;IAEpG,QAAQ;QACN,IAAI,CAAC,WAAW,EAAE;IACpB,CAAC;IACD,WAAW;QACT,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,8BAA8B,CAAC,oBAAoB,EAAE;IAC5E,CAAC;IACD,UAAU,CAAC,eAAe;QACxB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,2BAA2B,GAAC,eAAe,CAAC,OAAO,GAAC,GAAG,GAAE,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9G,CAAC;;oGAZU,0BAA0B;0GAA1B,0BAA0B;QCVvC,wEAAqB;QAAA,mFAAwB;QAAA,4DAAK;QAClD;QAAA,wFACI;QAAA;QAAA,sHACI;QAIR;QAAA,4DAAqB;QACrB;QAAA,wFACE;QAAA;QAAA,6EAAqC;QAAA,kEAAM;QAAA,4DAAS;QACpD;QACF;QAAA,4DAAqB;;QATZ,0DAA0B;QAA1B,iFAA0B;;6FDQtB,0BAA0B;cALtC,uDAAS;eAAC;gBACT,QAAQ,EAAE,wBAAwB;gBAClC,WAAW,EAAE,qCAAqC;gBAClD,SAAS,EAAE,CAAC,qCAAqC,CAAC;aACnD;;;;;;;;;;;;;;AETD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0E;AACc;AAC/B;AAEI;AACwC;AACpB;AACG;AAMnD;AAGU;AACK;;;;;;;;;;;;;;;;;;;;;;;ICLhC,6EAEE;IADmC,yUAAsB;IACzD;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC5B;IAAA,4DAAS;;;IAEP,iFACU;IAAA,kFAAuB;IAAA,4DAAa;;;IAC9C,iFACE;IAAA,uDACF;IAAA,4DAAa;;;IAFkD,6EAAgB;IAC7E,0DACF;IADE,oIACF;;;IAEF,4EACE;IAAA,oIACF;IAAA,4DAAY;;;IACZ,4EACI;IAAA,mHACJ;IAAA,4DAAY;;;IAqBlB,yEAAoF;IAAA,iEAAM;IAAA,4DAAK;;;IAA3E,oFAAoB;;;;IACxC,yEACE;IAAA;IAAA,uFACA;IADuC,8WAA0B;IACjE;IAAA,4DAAmB;IACrB;IAAA,4DAAK;;;IAHkC,oFAAoB;IACvC,0DAAoB;IAApB,oFAAoB;;;IAMtC,yEAAiE;IAAA,uEAAY;IAAA,4DAAK;;;IAClF,yEAAwC;IAAA,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,oGAAyB;;;IAInE,yEAAgE;IAAA,sEAAW;IAAA,4DAAK;;;IAChF,yEAAwC;IAAA,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,mGAAwB;;;IAIhE,yEAAiE;IAAA,8EAAmB;IAAA,4DAAK;;;IACzF,yEAAwC;IAAA,uDAA+B;IAAA,4DAAK;;;IAApC,0DAA+B;IAA/B,0GAA+B;;;IAIvE,yEAAgE;IAAA,+EAAoB;IAAA,4DAAK;;;IACzF,yEAAwC;IAAA,uDAAiC;IAAA,4DAAK;;;IAAtC,0DAAiC;IAAjC,4GAAiC;;;IAKzE,yEAAgE;IAAA,qEAAU;IAAA,4DAAK;;;IAC/E,yEAAwC;IAAA,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,kGAAuB;;;IAG/D,yEAAiE;IAAA,qEAAU;IAAA,4DAAK;;;IAChF,yEAAwC;IAAA,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,kGAAuB;;;IAGzD,yEAAwF;IAAA,iEAAM;IAAA,4DAAK;;;IAA9E,sFAAqB;;;;IAC1C,yEACI;IAAA;IAAA,6EACgB;IAD4B,2XAAoC;IAChE,iEAAM;IAAA,4DAAS;IACnC;IAAA,4DAAK;;;IAHQ,sFAAqB;IACR,0DAAqB;IAArB,sFAAqB;;;IAIvD,oEAA4D;;;IACxD,oEAAkE;;;;IAcpD,4FAEI;IADA,iXAA4B,iBAAiB,KAAE;IAC/C;IAAA,+EAAkC;IAAA,gEAAK;IAAA,4DAAW;IACtD;IAAA,4DAAwB;;;IAGxB,4EACI;IAAA;IAAA,2EAAyB;IAAA,qFAA0B;IAAA,4DAAO;IAC9D;IAAA,4DAAY;;;;IAQZ,4FAEI;IADA,iXAA4B,iBAAiB,KAAE;IAC/C;IAAA,+EAAkC;IAAA,gEAAK;IAAA,4DAAW;IACtD;IAAA,4DAAwB;;;IAGxB,4EACI;IAAA;IAAA,2EAAyB;IAAA,yFAA8B;IAAA,4DAAO;IAClE;IAAA,4DAAY;;;;IAsClB,4FAEI;IADA,iYAA4B,aAAa,KAAE;IAC3C;IAAA,+EAAkC;IAAA,gEAAK;IAAA,4DAAW;IACtD;IAAA,4DAAwB;;;IAGxB,4EACQ;IAAA;IAAA,2EAAyB;IAAA,mFAAwB;IAAA,4DAAO;IAC5D;IAAA,4DAAY;;;IAShB,4EACQ;IAAA,qIACJ;IAAA,4DAAY;;;;IA3BhC;IAAA,0EACI;IAAA;IAAA,0EACQ;IAAA;IAAA,qEAAI;IAAA,wGAA6C;IAAA,4DAAK;IAC1D;IAAA,yEACA;IAAA;IAAA,2EACA;IAAA;IAAA,sFACQ;IAAA;IAAA,6EAAW;IAAA,uEAAW;IAAA,2EAA0B;IAAA,6DAAC;IAAA,4DAAO;IAAA,4DAAY;IACpE;IAAA,6EACA;IADkH,6WAAyB,4PAAuE,WAAc,IAArF;IAA3I,4DACA;IAAA;IAAA,gLAEI;IAEJ;IAAA,wFAAyE;IACzE;IAAA,uFAA0C;IAC1C;IAAA,wJACQ;IAEZ;IAAA,4DAAiB;IACrB;IAAA,4DAAM;IACN;IAAA,4DAAM;IACN;IAAA,0EACA;IAAA;IAAA,2EACA;IAAA;IAAA,sFACQ;IAAA;IAAA,6EAAW;IAAA,6EAAiB;IAAA,4EAA0B;IAAA,8DAAC;IAAA,4DAAO;IAAA,4DAAY;IAC1E;IAAA,2EAAuE;IACvE;IAAA,wJACQ;IAEhB;IAAA,4DAAiB;IACjB;IAAA,4DAAM;IACN;IAAA,4DAAM;IACN;IAAA,2EACQ;IAAA;IAAA,+EACA;IAAA;IAAA,8EACI;IADoE,qaAA2F;IAC/J,yFAAG;IAAA,4DAAS;IAChB;IAAA,8EACQ;IAD+D,kVAAwB;IACvF,4FAAE;IAAA,4DAAS;IACnB;IAAA,4DAAU;IACd;IAAA,4DAAM;IACd;IAAA,4DAAM;IACV;IAAA,4DAAO;IACR;;;;IAzCO,0DAAwB;IAAxB,yFAAwB;IAKN,2DAAiC;IAAjC,2GAAiC;IAElC,0DAAe;IAAf,gFAAe;IACW,0DAAoC;IAApC,sGAAoC;IAIpC,0DAAe;IAAf,qEAAe;IAErC,0DAAmF;IAAnF,6JAAmF;IAQtF,0DAA+B;IAA/B,2GAA+B;IAG5B,0DAA8E;IAA9E,wJAA8E;;ADhKtG,MAAM,6BAA6B;IAmCxC,YAAmB,MAAiB,EAAS,QAAkB,EAAS,OAAsC,EAAS,SAAsB,EAAU,2BAAwD,EAAU,SAA8B;QAApO,WAAM,GAAN,MAAM,CAAW;QAAS,aAAQ,GAAR,QAAQ,CAAU;QAAS,YAAO,GAAP,OAAO,CAA+B;QAAS,cAAS,GAAT,SAAS,CAAa;QAAU,gCAA2B,GAA3B,2BAA2B,CAA6B;QAAU,cAAS,GAAT,SAAS,CAAqB;QAlCvP,qBAAgB,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QAOpD,iBAAY,GAAS,IAAI,CAAC;QAE1B,kBAAa,GAAG,KAAK,CAAC;QACtB,wBAAmB,GAAG,KAAK,CAAC;QAC5B,wBAAmB,GAAG,KAAK,CAAC;QAE5B,mBAAc,GAAgC,EAAE,CAAC;QACjD,YAAO,GAA8B,IAAI,CAAC;QAC1C,kBAAa,GAAY,KAAK,CAAC;QAK/B,iBAAY,GAAU,EAAE,CAAC;QAEzB,cAAS,GAAW,KAAK,CAAC;QAC1B,cAAS,GAAW,KAAK,CAAC;QAQ1B,qBAAgB,GAAa,CAAC,aAAa,EAAC,cAAc,EAAE,aAAa,EAAE,oBAAoB,EAAE,sBAAsB,EAAC,YAAY,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;QAI5J,IAAI,CAAC,eAAe,GAAG,IAAI,4FAAwB,EAAE,CAAC;IACvD,CAAC;IAEF,QAAQ;QACN,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;QAEnB,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACtF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,UAAU,CAAC;QAC3F,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAE5B,IAAI,CAAC,eAAe,GAAG,IAAI,wDAAS,CAAC;YACnC,aAAa,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAC,yDAAU,CAAC,QAAQ,CAAC;SACzD,CAAC,CAAC;QAEH,IAAI,CAAC,eAAe,GAAG,IAAI,wDAAS,CAAC;YACnC,eAAe,EAAG,IAAI,0DAAW,CAAC,IAAI,EAAC,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC7D,eAAe,EAAG,IAAI,0DAAW,CAAC,IAAI,EAAC,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC7D,iBAAiB,EAAG,IAAI,0DAAW,CAAC,IAAI,CAAG;SAC5C,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,GAAG,IAAI,wDAAS,CAAC;YAC9B,WAAW,EAAG,IAAI,0DAAW,CAAC,IAAI,EAAC,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACzD,MAAM,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;SACrD,CAAC,CAAC;QAEH,IAAG,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAC;YAChC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;QAED,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,IAAI,CAC/D,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CACxC,CAAC;QAEF,IAAI,CAAC,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC;IACjC,CAAC;IAED,kBAAkB,CAAC,aAAmB;QACpC,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC;IACpC,CAAC;IAED,SAAS;QACP,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACxB,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,mBAAmB,GAAE,KAAK,CAAC;QAChC,IAAI,CAAC,mBAAmB,GAAE,KAAK,CAAC;IAClC,CAAC;IAEO,WAAW,CAAC,KAAK;QACvB,IAAI,WAAW,CAAC;QAChB,IAAI,OAAO,KAAK,CAAC,aAAa,KAAK,QAAQ,EAAE;YAC3C,OAAO,IAAI,CAAC,YAAY,CAAC;SAC1B;QACD,IAAI,KAAK,IAAI,KAAK,CAAC,aAAa,EAAE;YAChC,IAAI,OAAO,KAAK,CAAC,aAAa,KAAK,QAAQ,EAAE;gBAC3C,WAAW,GAAG,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;aACjD;iBACI;gBACH,IAAI,KAAK,CAAC,aAAa,KAAK,IAAI,EAAE;oBAChC,WAAW,GAAG,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;iBACvD;aACF;YACD,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CACzC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CACjD,CAAC;SACH;aAAM;YACL,OAAO,IAAI,CAAC,YAAY,CAAC;SAC1B;IACH,CAAC;IAED,SAAS,CAAC,IAAS;QACjB,OAAO,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9C,CAAC;IAED,UAAU;QACR,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,UAAU,CAAC,GAAQ,EAAE,SAAS;QAC5B,IAAG,SAAS,IAAE,iBAAiB,EAAC;YAC9B,IAAG,CAAC,IAAI,CAAC,SAAS,EAAC;gBACnB,GAAG,CAAC,eAAe,EAAE,CAAC;gBACtB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,KAAK,EAAE,CAAC;aACnD;SACF;QACD,IAAG,SAAS,IAAE,iBAAiB,EAAC;YAC9B,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,KAAK,EAAE,CAAC;SACrD;QACD,IAAG,SAAS,IAAI,aAAa,EAAC;YAC5B,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,CAAC;SAC5C;IACH,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC,SAAS,CAAC,CAAC,IAAmB,EAAE,EAAE;YACpE,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;YAC5B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBACvC,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBACpE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/E,CAAC,CAAC,CAAC;QAEL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,mBAAmB,GAAE,KAAK,CAAC;QAChC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAED,wBAAwB,CAAC,eAAsB;QAC7C,IAAG,eAAe,IAAI,IAAI,EAAC;YACzB,IAAI,CAAC,2BAA2B,CAAC,qBAAqB,CAAC,mCAAM,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAC5G,CAAC,GAAQ,EAAE,EAAE;gBACX,IAAG,GAAG,IAAI,IAAI,EAAC;oBACb,IAAI,CAAC,eAAe,GAAI,GAAG,CAAC;iBAC7B;YACH,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;gBACR,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;oBACpC,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACL,CAAC,CACF,CAAC;SACH;IACH,CAAC;IAED,iBAAiB,CAAC,gBAAyB;QACzC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,IAAG,IAAI,CAAC,eAAe,CAAC,KAAK,IAAI,IAAI,EAAC;YACpC,IAAI,CAAC,2BAA2B,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAC7F,CAAC,GAA6B,EAAE,EAAE;gBAChC,IAAG,GAAG,IAAI,IAAI,EAAC;oBACb,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;oBACtB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;oBACzB,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;oBACnB,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;oBAC/E,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;oBAC/E,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACvC,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;oBAC9D,IAAG,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,EAAC;wBACjC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;wBACtB,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;wBAC1D,IAAI,CAAC,eAAe,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;wBACpE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;wBACpD,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,IAAI,CAAC;wBACvC,IAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,IAAI,IAAI,EACzC;4BACE,IAAI,CAAC,eAAe,CAAC,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;yBACzE;qBACF;yBACI;wBACH,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;wBACvB,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,IAAI,CAAC;wBACvC,IAAI,CAAC,eAAe,CAAC,eAAe,GAAG,EAAE,CAAC;wBAC1C,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;wBAC1B,IAAI,CAAC,eAAe,CAAC,iBAAiB,GAAG,EAAE,CAAC;wBAC5C,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;qBAC5B;iBACF;qBACI;oBACH,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;oBACzB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;oBACvB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE;wBAC3C,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,aAAa,CAAC;wBAC3B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;YACH,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;gBACR,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;oBACpC,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACL,CAAC,CACF,CAAC;SAEL;IACD,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAG,IAAI,CAAC,YAAY,IAAI,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC,UAAU,IAAI,IAAI,EAAE;YACvE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,EAAE;gBACjD,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,CAAC,aAAa,CAAC;gBAC3B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;SACJ;QACD,IAAG,IAAI,CAAC,eAAe,CAAC,KAAK,IAAI,IAAI,EAAC;YAClC,IAAG,IAAI,CAAC,eAAe,CAAC,eAAe,IAAI,IAAI,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,EAC/E;gBACE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;aACnG;YAED,IAAG,IAAI,CAAC,WAAW,EACnB;gBACI,IAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,eAAe,IAAI,IAAI,EAAC;oBACpD,IAAI,CAAC,eAAe,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,eAAe,CAAC;iBACnF;gBACD,IAAG,IAAI,CAAC,eAAe,CAAC,UAAU,IAAI,IAAI,EAAG;oBAC3C,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;iBAChE;gBACD,IAAI,CAAC,2BAA2B,CAAC,0BAA0B,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,EAAC,EAAE;oBACjG,IAAG,GAAG,IAAG,IAAI,EAAC;wBACZ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,0CAA0C,EAAE,EAAE,EAAE;4BAClE,QAAQ,EAAE,IAAI;4BACd,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;wBACH,IAAI,CAAC,SAAS,EAAE,CAAC;wBACjB,IAAI,CAAC,KAAK,EAAE,CAAC;qBACd;yBACG;wBACF,IAAI,CAAC,KAAK,EAAE,CAAC;wBACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;4BAChE,QAAQ,EAAE,IAAI;4BACd,UAAU,EAAE,CAAC,aAAa,CAAC;4BAC3B,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;qBACJ;gBACH,CAAC,EACD,KAAK,GAAE;oBACL,IAAI,CAAC,SAAS,EAAE,CAAC;oBACjB,IAAI,CAAC,KAAK,EAAE,CAAC;oBACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;wBACpC,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,aAAa,CAAC;wBAC3B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;aACJ;SACN;IACH,CAAC;IAED,aAAa,CAAC,SAAiB,EAAE,SAAiB;QAChD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACzB,IAAI,SAAS,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;QACpC,IAAI,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;QACxE,IAAG,CAAC,SAAS,IAAI,IAAI,IAAI,OAAO,IAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAC;YAClE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mEAAmE,EAAE,EAAE,EAAE;gBAC3F,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,CAAC,aAAa,CAAC;gBAC3B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACH,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;SAC1B;QACD,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,iBAAiB,CAAC,KAAU;QAC1B,IAAI,CAAC,WAAW,GAAG,mCAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC3D,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;QAC9D,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;QAC3C,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC;QACjC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,UAAU,EAAE,CAAC;IACrB,CAAC;IAED,0BAA0B,CAAC,iBAA0B,EAAE,UAAmB;QACzE,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,IAAG,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,IAAI,EAAC;YAC/B,IAAI,CAAC,2BAA2B,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,iBAAiB,EAAE,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;gBACjH,IAAG,GAAG,IAAI,IAAI,EAAE;oBACd,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,6CAA6C,EAAE,EAAE,EAAE;wBACrE,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACH,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;oBAC3B,IAAI,CAAC,SAAS,EAAE,CAAC;oBACjB,IAAI,CAAC,KAAK,EAAE,CAAC;oBACb,IAAI,CAAC,WAAW,EAAE,CAAC;iBACpB;YACH,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;gBACV,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;oBACrC,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,UAAU;QACR,MAAM,YAAY,GAAG,IAAI,wEAAe,EAAE,CAAC;QAC3C,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE;YAC/E,YAAY,EAAE,IAAI;YAClB,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;QACH,IAAI,CAAC,0BAA0B,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;QACjE,CAAC,CAAC,CAAC;IACL,CAAC;IAED,WAAW;QACT,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE,CAAC;IAC1C,CAAC;IAEC,KAAK;QACH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,eAAe,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1C,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,eAAe,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAC5C,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,YAAY;QACV,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;;0GAnXY,6BAA6B;6GAA7B,6BAA6B;kEA6B7B,iEAAkB;;;;;;qFAhClB,CAAC,yFAAmB,EAAE,wDAAQ,CAAC;;QCvB5C,8EACI;QAAA;QAAA,mFACE;QAAA;QAAA,0EACE;QAAA;QAAA,yEACE;QAAA;QAAA,yEACE;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,0EAAc;QAAA,2EAA2B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QACxE;QAAA,0EAKA;QAAA;QAAA,iIAEE;QAEF;QAAA,2FACE;QAAA;QAAA,0IACU;QACV;QAAA,0IACE;;QAEJ;QAAA,4DAAmB;QACnB;QAAA,wIACE;QAEF;QAAA,wIACI;QAEN;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,2EACE;QAAA;QAAA,8EACyE;QAAvE,sJAAS,oEAA4D,IAAC;QAAC,kEAAM;QAAA,4DAAS;QAC1F;QAAA,4DAAM;QACR;QAAA,4DAAM;QACR;QAAA,4DAAM;QACR;QAAA,4DAAO;QAET;QAAA,4DAAmB;QACrB;QAAA,4DAAW;QAEX;QAAA,gFACE;QAAA;QAAA,oFACE;QAAA;QAAA,2EACE;QAAA;QAAA,6EAEF;QAAA;QAAA,6EACI;QAAA;QAAA,0HAAoF;QACpF;QAAA,0HACE;QAGJ;QAAA,qEAAe;QAEf;QAAA,6EACI;QAAA;QAAA,0HAAiE;QACjE;QAAA,0HAAwC;QAC1C;QAAA,qEAAe;QAEjB;QAAA,6EACE;QAAA;QAAA,0HAAgE;QAChE;QAAA,0HAAwC;QAC1C;QAAA,qEAAe;QAEf;QAAA,6EACE;QAAA;QAAA,0HAAiE;QACjE;QAAA,0HAAwC;QAC1C;QAAA,qEAAe;QAEf;QAAA,6EACE;QAAA;QAAA,0HAAgE;QAChE;QAAA,0HAAwC;QAC1C;QAAA,qEAAe;QAGf;QAAA,6EACE;QAAA;QAAA,0HAAgE;QAChE;QAAA,0HAAwC;QAC1C;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,4HAAiE;QACjE;QAAA,4HAAwC;QAC1C;QAAA,qEAAe;QACf;QAAA,8EACQ;QAAA;QAAA,4HAAwF;QACxF;QAAA,4HACI;QAGZ;QAAA,qEAAe;QACf;QAAA,4HAAuD;QACnD;QAAA,4HAA6D;QACjE;QAAA,4DAAQ;QACV;QAAA,4DAAM;QACR;QAAA,4DAAmB;QACrB;QAAA,4DAAW;QAEX;QAAA,iFACI;QAAA;QAAA,qFACI;QAAA;QAAA,4EACI;QAAA;QAAA,2EACI;QAAA;QAAA,4EACI;QAAA;QAAA,uFACI;QAAA;QAAA,8EAAW;QAAA,6EAAgB;QAAA,4EAA0B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QACzE;QAAA,8EACA;QADqF,4NAA6C,wGAAe,iEAAyD,IAAxE,8OAA+I,WAAa,IAA5J;QAAlI,4DACA;QAAA;QAAA,kKAEI;QAEJ;QAAA,yFAAwE;QACxE;QAAA,wFAA0C;QAC1C;QAAA,0IACI;QAER;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QAEN;QAAA,4EACI;QAAA;QAAA,uFACI;QAAA;QAAA,8EAAW;QAAA,8EAAiB;QAAA,4EAA0B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QAC1E;QAAA,8EACA;QAD8D,gKAAc,2EAA8D,IAAC,kYAAsG,WAAc,IAApH;QAA3I,4DACA;QAAA;QAAA,kKAEI;QAEJ;QAAA,yFAAyE;QACzE;QAAA,wFAA0C;QAC1C;QAAA,0IACI;QAER;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACV;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,2EACI;QAAA;QAAA,uFACI;QAAA;QAAA,8EAAW;QAAA,+EAAkB;QAAA,4DAAY;QACzC;QAAA,iFAAmH;QAAhG,iOAA+C;QAAsC,4DAAW;QACvH;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACV;QAAA,4DAAM;QAEN;QAAA,2EACI;QAAA;QAAA,4EACE;QAAA;QAAA,wEACI;QAAA;QAAA,+EACoB;QADE,uJAAS,cAAU,IAAC;QACtB,iEAAI;QAAA,4DAAS;QACjC;QAAA,+EACI;QAD8C,uJAAS,eAAW,IAAC;QACnE;QAAA,6EAAU;QAAA,kEAAK;QAAA,4DAAW;QAC1B,0HACJ;QAAA,4DAAS;QACb;QAAA,4DAAM;QACR;QAAA,4DAAM;QACV;QAAA,4DAAM;QACV;QAAA,4DAAO;QACX;QAAA,4DAAmB;QACvB;QAAA,4DAAW;QAEX;QAAA,4NACE;;;;;QA/JQ,0DAA6B;QAA7B,0FAA6B;QAGb,0DAA+B;QAA/B,uGAA+B;QAEd,0DAA2B;QAA3B,wFAA2B;QAKzB,0DAA2C;QAA3C,yGAA2C;QAI/B,0DAAyB;QAAzB,sFAAyB;QACtD,0DAA4G;QAA5G,8KAA4G;QAE5G,0DAAkD;QAAlD,+JAAkD;QAIrD,0DAAqE;QAArE,mIAAqE;QAGrE,0DAAwF;QAAxF,0JAAwF;QAiBvG,2DAAqB;QAArB,kFAAqB;QAGR,0DAAyB;QAAzB,sFAAyB;QA8CvB,2DAAmC;QAAnC,iGAAmC;QACtC,0DAAgD;QAAhD,kGAAgD;QAM5D,0DAAqB;QAArB,kFAAqB;QAEhB,0DAA6B;QAA7B,0FAA6B;QAGR,0DAAiC;QAAjC,uGAAiC;QAEJ,0DAAsB;QAAtB,mFAAsB;QAC9B,0DAA6C;QAA7C,2GAA6C;QAI7C,0DAAc;QAAd,qEAAc;QAEpC,0DAAoF;QAApF,sJAAoF;QAOnF,0DAAiC;QAAjC,uGAAiC;QAEgG,0DAA6B;QAA7B,wFAA6B;QACzI,0DAA6C;QAA7C,2GAA6C;QAI7C,0DAAe;QAAf,qEAAe;QAErC,0DAAoF;QAApF,sJAAoF;QAQnF,0DAA+B;QAA/B,uGAA+B;QAExB,0DAA+C;QAA/C,0GAA+C;QAUzC,2DAAsB;QAAtB,mFAAsB;;6FD3H5D,6BAA6B;cAPzC,uDAAS;eAAC;gBACT,QAAQ,EAAE,2BAA2B;gBACrC,WAAW,EAAE,wCAAwC;gBACrD,SAAS,EAAE,CAAC,wCAAwC,CAAC;gBACrD,SAAS,EAAE,CAAC,yFAAmB,EAAE,wDAAQ,CAAC;aAE3C;umBA8BgC,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;YACS,uBAAuB;kBAA5D,uDAAS;mBAAC,yBAAyB;;;;;;;;;;;;;;AEpDpC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAoE;AACmB;AAEpB;AACkC;AAEpE;AACa;AAKyB;;;;;;;;;;;;;;;;;;;ICN7C,iFACI;IAAA,uDAAc;IAAA,4DAAa;;;IADa,gFAAoB;IAC5D,0DAAc;IAAd,yHAAc;;;IAGlB,4EACI;IAAA;IAAA,mEAA2D;IAC7D;IAAA,2EAAyB;IAAA,kFAAuB;IAAA,4DAAO;IACzD;IAAA,4DAAY;;;IAgBF,yEAAgE;IAAA,4EAAgB;IAAA,4DAAK;;;IACrF,yEAAuC;IAAA,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,uFAAsB;;;IAI7D,yEAAgE;IAAA,sEAAW;IAAA,4DAAK;;;IAChF,yEAAuC;IAAA,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,wFAAuB;;;IAIxD,yEAA+D;IAAA,4EAAiB;IAAA,4DAAK;;;IACrF,yEAAuC;IAAA,uDAA4B;IAAA,4DAAK;;;IAAjC,0DAA4B;IAA5B,6FAA4B;;;IAG3E,oEAA4D;;;IAC5D,oEAAiE;;;IAvB1F,+EACa;IAAA;IAAA,mFAEE;IAAA;IAAA,0EAEE;IAAA;IAAA,4EAEQ;IAAA;IAAA,4EACE;IAAA;IAAA,0IAAgE;IAChE;IAAA,0IAAuC;IACzC;IAAA,qEAAe;IAEf;IAAA,6EACE;IAAA;IAAA,0IAAgE;IAChE;IAAA,0IAAuC;IACzC;IAAA,qEAAe;IAEf;IAAA,6EACQ;IAAA;IAAA,0IAA+D;IAC/D;IAAA,0IAAuC;IAC/C;IAAA,qEAAe;IAEf;IAAA,0IAAuD;IACvD;IAAA,0IAA4D;IAClE;IAAA,4DAAQ;IAKZ;IAAA,4DAAM;IACR;IAAA,4DAAmB;IAC/B;IAAA,4DAAW;;;IA1BsB,0DAAyB;IAAzB,yFAAyB;IAiBf,2DAAmC;IAAnC,oGAAmC;IAC1C,0DAA+C;IAA/C,qGAA+C;;;IAmB/D,iFAAyE;IAAA,uDACzE;IAAA,4DAAa;;;IADqC,mFAAsB;IAAC,0DACzE;IADyE,4HACzE;;;IAEJ,4EACI;IAAA;IAAA,mEAA2D;IAC7D;IAAA,2EAAyB;IAAA,kFAAuB;IAAA,4DAAO;IACzD;IAAA,4DAAY;;;IAWZ,4EACI;IAAA;IAAA,mEAA2D;IAC3D;IAAA,2EAAyB;IAAA,sFAA2B;IAAA,4DAAO;IAC/D;IAAA,4DAAY;;ADvDjC,MAAM,iCAAiC;IAiD3C,YAAoB,QAA+B,EAAS,SAAsB,EAAU,OAAc,EACjG,EAAe,EAAU,SAA2B,EAAU,kBAAqC;QADxF,aAAQ,GAAR,QAAQ,CAAuB;QAAS,cAAS,GAAT,SAAS,CAAa;QAAU,YAAO,GAAP,OAAO,CAAO;QACjG,OAAE,GAAF,EAAE,CAAa;QAAU,cAAS,GAAT,SAAS,CAAkB;QAAU,uBAAkB,GAAlB,kBAAkB,CAAmB;QAhD3G,qBAAgB,GAAG,2DAAW,CAAC,oBAAoB,CAAC;QACpD,oBAAe,GAAG,2DAAW,CAAC,oBAAoB,CAAC;QACnD,oBAAe,GAAE,EAAE,CAAC;QACpB,kBAAa,GAAE,EAAE,CAAC;QAGlB,8BAAyB,GAAY,KAAK,CAAC;QAC3C,gBAAW,GAAY,KAAK,CAAC;QAC7B,mBAAc,GAAY,KAAK,CAAC;QAChC,oBAAe,GAAY,KAAK,CAAC;QAGjC,sBAAiB,GAAmB,EAAE;QAGtC,cAAS,GAAG,KAAK,CAAC;QAElB,eAAU,GAAG,EAAE,CAAC;QAChB,mBAAc,GAAE,EAAE,CAAC;QACnB,iBAAY,GAAE,EAAE,CAAC;QACjB,kBAAa,GAAG,KAAK,CAAC;QACtB,YAAO,GAAG,EAAE,CAAC;QAEb,eAAU,GAAY,KAAK,CAAC;QAE5B,kBAAa,GAAmB,EAAE,CAAC;QAEnC,mBAAc,GAAG,EAAE,CAAC;QACpB,aAAQ,GAAS,EAAE,CAAC;QAEpB,aAAQ,GAAY,KAAK,CAAC;QAE1B,yBAAoB,GAAY,KAAK,CAAC;QACtC,aAAQ,GAAY,KAAK,CAAC;QAE1B,oBAAe,GAAC,EAAE;QAClB,UAAK,GAAG,IAAI,IAAI,EAAE,CAAC;QASnB,qBAAgB,GAAG,CAAC,YAAY,EAAE,aAAa,EAAC,kBAAkB,CAAC,CAAC;QA0FtE,gBAAW,GAAG;YAEV,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;YACvC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;YAC7B,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QAE1B,CAAC;QA3FC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3C,CAAC;IACC,QAAQ;QAEN,IAAI,CAAC,QAAQ,GAAG,IAAI,yEAAY,EAAE,CAAC;QACnC,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YAE1B,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;SACvC,CAAC,CAAC;QAEL,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACnC,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACvC,YAAY,EAAE,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC3C,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACzC,iBAAiB,EAAE,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAChD,YAAY,EAAE,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC3C,kBAAkB,EAAE,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;SACpD,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,EAAE,CAAC;IAGrB,CAAC;IAIH,YAAY;QACR,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,SAAS,CAAC,CAAC,GAAoB,EAAE,EAAE;YACjE,IAAI,QAAQ,GAAU,GAAG,CAAC;YAC1B,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACjE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACjB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YAC/D,CAAC,CAAC,CAAC;YACH,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE;gBACvB,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;gBACjC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAE3D,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAC5C;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,qBAAqB,CAAC,UAAkB;QAC7C,IAAG,UAAU,GAAC,CAAC,EACf;YACE,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE;gBACjE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;gBAE5E,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;gBAKhC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAEtC,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAe,IAAI,CAAC,eAAe,CAAC,CAAC;YAE7E,CAAC,CACJ,CAAC;SACH;aACG;YACF,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;SACxC;IACD,CAAC;IAGD,kBAAkB;QAChB,IAAI,CAAC,kBAAkB,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,CAAC,IAAU,EAAE,EAAE;YAChE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAC,IAAI,EAAC,CAAC;YAChE,IAAI,CAAC,OAAO,CAAC,CAAC,GAAE,GAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAC,KAAK,EAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAC,CAAC,GAAC,CAAC;YACxE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,cAAc,CAAC,QAAiB;QAC5B,IAAI,QAAQ,IAAI,KAAK;YACjB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;;YAEvB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IAChC,CAAC;IAUD,IAAI;QACF,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,QAAQ;IACR,CAAC;;kHArJU,iCAAiC;iHAAjC,iCAAiC;kEA2C/B,iEAAkB;;;;6GA7CpB,CAAC,4FAAqB,CAAC;QC7BpC;QAAA,8EACI;QAAA;QAAA,mFACI;QAAA;QAAA,0EACI;QAAA;QAAA,yEACI;QAAA;QAAA,yEACE;QAAA;QAAA,qFACU;QAAA;QAAA,6EAAW;QAAA,0EAAc;QAAA,4DAAY;QACrC;QAAA,iFAEA;QADA,wLAAkB,uCAAmC;QACrD;QAAA,6IACI;QACR;QAAA,4DAAa;QAET;QAAA,2IACI;QAGZ;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACV;QAAA,4DAAM;QACV;QAAA,4DAAO;QACX;QAAA,4DAAmB;QACvB;QAAA,4DAAW;QAEA;QAAA,0IACa;QAgCxB;QAAA,+EACI;QAAA;QAAA,oFACI;QAAA;QAAA,uEACI;QAAA;QAAA,2EACQ;QAAA;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,0EAAc;QAAA,4DAAY;QACrC;QAAA,kFAEI;QAAA;QAAA,6IAAyE;QAE7E;QAAA,4DAAa;QACb;QAAA,2IACI;QAGR;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QAEN;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,6EAAiB;QAAA,4DAAY;QACxC;QAAA,wEACA;QAAA;QAAA,wFAAwE;QAExE;QAAA,uFAAyC;QACzC;QAAA,2IACI;QAGR;QAAA,4DAAiB;QACjB;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,yEAAa;QAAA,4DAAY;QACpC;QAAA,2EAAyF;QAC7F;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,8EAA4E;QAAjD,0JAAS,UAAM,IAAC;QAAiC,oEAAQ;QAAA,4DAAS;QACjG;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,8EAAmD;QAA3C,0JAAS,iBAAa,IAAC;QAAoB,4EAAU;QAAA,2FAC7D;QAAA,4DAAW;QAAA,iEAAK;QAAA,4DAAS;QACzB;QAAA,8EAA4E;QAArD,0JAAS,cAAU,IAAC;QAAiC,kEAAM;QAAA,4DAAS;QAC/F;QAAA,4DAAM;QAClB;QAAA,4DAAO;QACX;QAAA,4DAAM;QACN;QAAA,4DAAmB;QACvB;QAAA,4DAAW;QACX;;;QAvGc,0DAAsB;QAAtB,mFAAsB;QAGF,0DAA+B;QAA/B,uGAA+B;QAEM,0DAAiC;QAAjC,8FAAiC;QAEhE,0DAA+B;QAA/B,mFAA+B;QAIhC,0DAAmD;QAAnD,gHAAmD;QAWrC,0DAAiC;QAAjC,+FAAiC;QAoCpE,0DAA6B;QAA7B,0FAA6B;QAEP,0DAA+B;QAA/B,uGAA+B;QAI3B,0DAAqC;QAArC,uFAAqC;QAG1C,0DAA4D;QAA5D,0HAA4D;QAQ3D,0DAAiC;QAAjC,uGAAiC;QAEK,0DAAwB;QAAxB,8EAAwB;QACzC,0DAAc;QAAd,oEAAc;QAGpC,0DAAmE;QAAnE,iIAAmE;QAKlE,0DAA+B;QAA/B,uGAA+B;;6FDzD1D,iCAAiC;cAN7C,uDAAS;eAAC;gBACT,QAAQ,EAAE,gCAAgC;gBAC1C,WAAW,EAAE,6CAA6C;gBAC1D,SAAS,EAAE,CAAC,6CAA6C,CAAC;gBAC1D,SAAS,EAAE,CAAC,4FAAqB,CAAC;aACnC;siBAqCY,GAAG;kBAAX,mDAAK;YAOyB,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;;;;;;;;;;;;;;AE1EjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAkD;AAEY;AAE7B;AAIf;AAG4B;AACmB;AAIE;AAC6C;;;;;;;;;;;;;;;;;;;;;;;ICJ5F,+EACI;IAAA,iGAAY;IAAA,4DAAW;;;IAC3B,+EAAkF;IAAA,mEAClB;IAAA,4DAAW;;;IAMnE,yEACQ;IAAA;IAAA,yEACQ;IAAA;IAAA,4EACI;IAAA;IAAA,qEAAI;IAAA,oEAAG;IAAA,uDAAwC;IAAA,4DAAI;IAAA,4DAAK;IAC5D;IAAA,4DAAY;IAChB;IAAA,4DAAM;IAClB;IAAA,4DAAM;;;;IAHqB,0DAAwC;IAAxC,iHAAwC;;;IAQhB,2EAA4E;IAAA,6DAAC;IAAA,4DAAO;;;IAZ/I,0EACQ;IAAA;IAAA,0KACQ;IAMZ;IAAA,yEACI;IAAA;IAAA,0EACI;IAAA;IAAA,mFACI;IAAA;IAAA,4EACI;IAAA,wDAAuC;IAAA,6KAA4E;IACvH;IAAA,4DAAO;IACX;IAAA,4DAAe;IACnB;IAAA,4DAAM;IACN;IAAA,2EACI;IAAA;IAAA,qFACI;IAAA;IAAA,6EAAW;IAAA,oEAAQ;IAAA,4DAAY;IAC/B;IAAA,2EACwB;IAC5B;IAAA,4DAAiB;IACrB;IAAA,4DAAM;IACV;IAAA,4DAAM;IACV;IAAA,4DAAM;;;;;IAvBmB,0DAA+B;IAA/B,0GAA+B;IAS9B,0DAAiB;IAAjB,0EAAiB;IAEvB,0DAAuC;IAAvC,iKAAuC;IAAM,0DAAgD;IAAhD,wHAAgD;IAKrF,0DAA+B;IAA/B,2GAA+B;IAEZ,0DAAyB;IAAzB,sFAAyB;;;IArBhF,mFACI;IAAA;IAAA,0EACI;IAAA;IAAA,oKACQ;IAyBR;IAAA,0EACI;IAAA;IAAA,wEAAO;IAAA,kEAAO;IAAA,4DAAQ;IACtB;IAAA,qFACI;IAAA;IAAA,6EAAW;IAAA,mEAAO;IAAA,4DAAY;IAC9B;IAAA,2EACwB;IAC5B;IAAA,4DAAiB;IACrB;IAAA,4DAAM;IAEV;IAAA,4DAAM;IACV;IAAA,4DAAmB;;;;IApCW,0DAA+D;IAA/D,kGAA+D;IA4BjE,0DAA+B;IAA/B,2GAA+B;IAEZ,0DAA4B;IAA5B,wFAA4B;;;IAO3E,mFACI;IAAA;IAAA,2EAAiC;IAAA,kGAAuC;IAAA,4DAAO;IACnF;IAAA,4DAAmB;;;IArDvB,sFACI;IAAA;IAAA,6FACI;IAAA;IAAA,kFACI;IAAA,uDACJ;IAAA,4DAAkB;IAClB;IAAA,wFACI;IAAA;IAAA,yJACI;IACJ;IAAA,2JAAkF;IAEtF;IAAA,4DAAwB;IAC5B;IAAA,4DAA6B;IAC7B;IAAA,2KACI;IAsCJ;IAAA,0KACI;IAGR;IAAA,4DAAsB;;;IApDV,0DACJ;IADI,yJACJ;IAEc,0DAA6D;IAA7D,4HAA6D;IAE7D,0DAA6D;IAA7D,4HAA6D;IAI7D,0DAA6D;IAA7D,4HAA6D;IAuC7D,0DAA6D;IAA7D,4HAA6D;;;IApDvF,sEACI;IAAA;IAAA,yJACI;IAuDR;IAAA,4DAAM;;;IAxDmB,0DAAyB;IAAzB,wFAAyB;;;IA2DtD,gEACA;;;IASsB,iFAAkE;IAAA,uDAAe;IAAA,4DAAa;;;IAAhD,gFAAmB;IAAC,0DAAe;IAAf,gFAAe;;;IATvG,2EACE;IAAA;IAAA,mFACE;IAAA;IAAA,0EACE;IAAA;IAAA,yEAEI;IAAA;IAAA,yEACoB;IAAA;IAAA,qFACZ;IAAA;IAAA,6EAAW;IAAA,sFAA0B;IAAA,4DAAY;IACjD;IAAA,kFACI;IAAA;IAAA,+IAAkE;IACtE;IAAA,4DAAa;IACjB;IAAA,4DAAiB;IACrB;IAAA,4DAAM;IACV;IAAA,4DAAM;IACJ;IAAA,0EACI;IAAA;IAAA,2EACI;IAAA;IAAA,6EAAW;IAAA,yEAAa;IAAA,4EAA0B;IAAA,6DAAC;IAAA,4DAAO;IAAA,4DAAY;IAC1E;IAAA,4DAAM;IACN;IAAA,2EACI;IAAA;IAAA,uFACI;IAAA;IAAA,wFAA+B;IAAA,+DAAG;IAAA,4DAAmB;IACrD;IAAA,wFAAgC;IAAA,8DAAE;IAAA,4DAAmB;IACzD;IAAA,4DAAkB;IACtB;IAAA,4DAAM;IACN;IAAA,2EACI;IAAA;IAAA,iFAA0C;IAAA,+EAAmB;IAAA,4EAA0B;IAAA,6DAAC;IAAA,4DAAO;IAC/F;IAAA,4DAAY;IAChB;IAAA,4DAAM;IACN;IAAA,2EACI;IAAA;IAAA,uFACI;IAAA;IAAA,wFAA+B;IAAA,+DAAG;IAAA,4DAAmB;IACrD;IAAA,wFAAgC;IAAA,8DAAE;IAAA,4DAAmB;IACzD;IAAA,4DAAkB;IACtB;IAAA,4DAAM;IACV;IAAA,4DAAM;IACN;IAAA,0EACI;IAAA;IAAA,0EACI;IAAA;IAAA,qFACI;IAAA;IAAA,6EAAW;IAAA,iFAAqB;IAAA,4DAAY;IAC5C;IAAA,2EAC8F;IAClG;IAAA,4DAAiB;IACrB;IAAA,4DAAM;IACN;IAAA,0EACI;IAAA;IAAA,qFACI;IAAA;IAAA,6EAAW;IAAA,6EAAiB;IAAA,4DAAY;IACxC;IAAA,2EACoF;IACxF;IAAA,4DAAiB;IACrB;IAAA,4DAAM;IAEV;IAAA,4DAAM;IACZ;IAAA,4DAAO;IACP;IAAA,4DAAmB;IACrB;IAAA,4DAAW;;;IApDD,0DAA2B;IAA3B,2FAA2B;IAIS,0DAA+B;IAA/B,0GAA+B;IAG3C,0DAAiC;IAAjC,sFAAiC;IAW7B,2DAAY;IAAZ,uEAAY;IACZ,0DAAa;IAAb,wEAAa;IASb,2DAAY;IAAZ,uEAAY;IACZ,0DAAa;IAAb,wEAAa;IAMnB,2DAA+B;IAA/B,0GAA+B;IAO/B,2DAA+B;IAA/B,0GAA+B;;;IAqCvD,yEACI;IAAA;IAAA,yEACI;IAAA;IAAA,oFACI;IAAA;IAAA,4EAAW;IAAA,iEAAM;IAAA,4DAAY;IAC7B;IAAA,0EAC8D;IAClE;IAAA,4DAAiB;IACjB;IAAA,4DAAM;IACd;IAAA,4DAAM;;;IANmB,0DAA+B;IAA/B,0GAA+B;;;IASpD,sEAAiF;IAAA;IAAA,4DAAM;;;;IAGvF,6EAA8F;IAAnC,6VAAkC;IAAC,uDAAY;IAAA,4DAAS;;;IAArB,0DAAY;IAAZ,iFAAY;;;IAD9G;IAAA,0EACI;IAAA;IAAA,wIAA8F;IAClG;IAAA,4DAAM;IACV;;;IAFgD,0DAAkB;IAAlB,mFAAkB;;ADlI/D,MAAM,sBAAsB;IAwDjC,YACU,QAAwB,EAAU,MAAc,EAChD,SAAsB,EACvB,MAAiB,EAChB,gBAAkC,EACrC,kBAAsC,EACtC,YAAiC,EACjC,OAA0B;QANvB,aAAQ,GAAR,QAAQ,CAAgB;QAAU,WAAM,GAAN,MAAM,CAAQ;QAChD,cAAS,GAAT,SAAS,CAAa;QACvB,WAAM,GAAN,MAAM,CAAW;QAChB,qBAAgB,GAAhB,gBAAgB,CAAkB;QACrC,uBAAkB,GAAlB,kBAAkB,CAAoB;QACtC,iBAAY,GAAZ,YAAY,CAAqB;QACjC,YAAO,GAAP,OAAO,CAAmB;QA7DjC,aAAQ,GAAS,KAAK,CAAC;QACvB,gBAAW,GAAS,KAAK,CAAC;QAI1B,aAAQ,GAAW,CAAC,CAAC;QACrB,iBAAY,GAAa,EAAE,CAAC;QAC5B,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QAK9C,aAAQ,GAAY,YAAY,CAAC;QACjC,eAAU,GAAa,IAAI,CAAC;QAM5B,cAAS,GAAY,KAAK,CAAC;QAI3B,aAAQ,GAAY,KAAK,CAAC;QAC1B,aAAQ,GAAY,KAAK,CAAC;QAC1B,iBAAY,GAAG,EAAE,CAAC;QAClB,qBAAgB,GAAG,2DAAW,CAAC,oBAAoB,CAAC;QACpD,cAAS,GAAuB,IAAI,GAAG,EAAE,CAAC;QAC1C,iBAAY,GAAuB,IAAI,GAAG,EAAE,CAAC;QAC7C,eAAU,GAAwB,IAAI,GAAG,EAAE,CAAC;QAC5C,aAAQ,GAAS,EAAE,CAAC;QACpB,aAAQ,GAAY,KAAK,CAAC;QAG1B,eAAU,GAAG,EAAE,CAAC;QAEhB,mBAAc,GAAG,KAAK,CAAC;QAUtB,mBAAc,GAAG,IAAI,CAAC;QAItB,YAAO,GAAC,KAAK,CAAC;QAEd,gBAAW,GAAI,mCAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACvD,2BAAsB,GAAG,KAAK,CAAC;QAU5B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC,MAAM,CAAC,KAAK;QACrE,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAC5D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC/B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC1D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YACtC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAKnE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;YAChD,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB;YACzD,8DAA8D;YAC9D,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,EAAC,iBAAiB,EAAC,IAAI,CAAC,iBAAiB,EAAC,CAAC;YACzE,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,EAAC,sBAAsB,EAAE,IAAI,CAAC,sBAAsB,EAAC,CAAC;YACpF,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,uBAAuB,CAAC;YAC5D,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC,4BAA4B;YACrE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACzF,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YAGnG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,sBAAsB,EAAE,CAAC;YAC5D,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,sBAAsB,EAAE,CAAC;YAEhE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,sBAAsB,EAAE,CAAC;YACrE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,sBAAsB,EAAE,CAAC;YAC3E,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,sBAAsB,EAAE,CAAC;YAC1E,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC,sBAAsB,EAAE,CAAC;QAElF,CAAC,CAAC,CAAC,yCAAwC;IAC5C,CAAC;IAEJ,QAAQ;QACN,mGAAmG;QACnG,gFAAgF;QAChF,0FAA0F;QAC1F,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC;QACnD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CACxB,cAAc,CAAC,iCAAiC,CAAC,CAClD,CAAC,QAAQ,CAAC;QAEX,IAAG,IAAI,CAAC,QAAQ,IAAG,iBAAiB,EAAC;YACnC,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;SAC3B;aACI,IAAG,IAAI,CAAC,QAAQ,IAAG,KAAK,EAAC;YAC5B,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC;SAC9B;aACI,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,EAAC;YAC9B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;SACzB;QAED,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACtC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAGH,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAG1B,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,EAAE,CAAC,SAAS,CAAC,IAAI,GAAE;YAC7D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,yBAAyB;QAC3B,CAAC,CAAC;QAEF,IAAI,CAAC,UAAU,EAAE,CAAC;IAEpB,CAAC;IAID,UAAU;QAER,IAAI,CAAC,aAAa,GAAG,IAAI,wDAAS,CAAC;YACjC,QAAQ,EAAE,IAAI,0DAAW,CAAC,EAAC,KAAK,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAG,IAAI,EAAC,CAAC;YAC1F,YAAY,EAAE,IAAI,0DAAW,CAAC,EAAC,KAAK,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,EAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,EAAC,QAAQ,EAAG,IAAI,EAAC,CAAC;YACrG,iBAAiB,EAAE,IAAI,0DAAW,CAAC,EAAC,KAAK,EAAG,IAAI,EAAE,QAAQ,EAAG,IAAI,EAAC,CAAC;YACnE,uBAAuB,EAAE,IAAI,0DAAW,CAAC,EAAC,KAAK,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,EAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,IAAI,EAAC,QAAQ,EAAG,IAAI,EAAC,CAAC;YACtI,YAAY,EAAG,IAAI,0DAAW,CAAC,EAAC,KAAK,EAAG,IAAI,EAAC,QAAQ,EAAG,IAAI,CAAC,QAAQ,IAAE,KAAK,IAAI,IAAI,CAAC,QAAQ,IAAE,iBAAiB,EAAC,CAAC;YAClH,gBAAgB,EAAG,IAAI,0DAAW,CAAC,EAAC,KAAK,EAAG,IAAI,EAAC,QAAQ,EAAG,IAAI,CAAC,QAAQ,IAAE,KAAK,EAAC,CAAC;YAClF,YAAY,EAAG,IAAI,0DAAW,CAAC,IAAI,CAAC;YACpC,sBAAsB,EAAG,IAAI,0DAAW,CAAC,EAAC,KAAK,EAAG,IAAI,EAAE,QAAQ,EAAG,IAAI,EAAC,CAAC;YACzE,4BAA4B,EAAG,IAAI,0DAAW,CAAC,EAAC,KAAK,EAAE,CAAC,IAAI,CAAC,4BAA4B,CAAC,EAAC,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC,IAAI,EAAC,QAAQ,EAAG,IAAI,EAAC,CAAC;SACvJ,CAAC,CAAC;IACL,CAAC;IAGD,8BAA8B,CAAC,YAAoB;QAEjD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,gBAAgB,CAAC,6BAA6B,CAAC,IAAI,CAAC,UAAU,EAAC,YAAY,CAAC;aAC9E,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,YAA4B,EAAC,EAAE;YAChD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,YAAY,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC;gBACpC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,UAAU,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;gBAC3E,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,UAAU,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;gBAC/E,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,UAAU,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;aAC5E;QAEH,CAAC,CAAC,CAAC,KAAK,CACR,KAAK,GAAE;YACL,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uDAAuD,EAAE,GAAG,EAAE;gBAChF,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC;QACJ,CAAC,CAAC,CAAC;IACP,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,EAAE;aACnE,IAAI,CAAC,CAAC,QAAwB,EAAC,EAAE;YACjC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,YAAY,GAAE,QAAQ,CAAC;YAC5B,IAAI,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,EAAC,EAAE,GAAE,OAAO,EAAE,CAAC,cAAc,CAAC,GAAC,CAAC;YAE7E,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC;gBACzC,IAAI,CAAC,8BAA8B,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;aACvD;QACF,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAE;YACf,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAEvB,CAAC,CAAC,CAAC;IACJ,CAAC;IACD,YAAY,CAAC,OAAY,EAAE,KAAa;QAEtC,IAAI,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC;QACzC,IAAG,KAAK,IAAE,CAAC,EACX;YACE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC9D,OAAO,IAAI,CAAC;SAEb;QAED,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,YAAY,EAAE;YACnE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC9D,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,sBAAsB;QACpB,YAAY;QACZ,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,WAAW,EAAE;YAC5C,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB;aACI;YACH,oEAAoE;YACpE,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6HAAqB,EAAE;gBACxD,KAAK,EAAE,OAAO;gBACd,YAAY,EAAE,IAAI;gBAClB,IAAI,EAAE;oBACJ,OAAO,EAAE,cAAc;oBACvB,OAAO,EAAE,+DAA+D;iBACzE;aACF,CAAC,CAAC;YAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC3C,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;gBAC7B,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;gBACnC,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE;oBAC/B,8EAA8E;oBAC9E,IAAI,CAAC,SAAS,EAAE,CAAC;iBAClB;YACH,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,SAAS;QACP,IAAI,UAAU,GAAG;YACf,YAAY,EAAE,IAAI,CAAC,UAAU;YAC7B,UAAU,EAAE,IAAI,CAAC,QAAQ;YACzB,cAAc,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,YAAY;YACrD,cAAc,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,YAAY;YACrD,yBAAyB,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,gBAAgB;YACpE,wBAAwB,EAAE,IAAI,CAAC,sBAAsB;SACtD;QACD,IAAI,CAAC,aAAa,GAAG,IAAI,yEAAa,EAAE,CAAC;QACzC,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC;QAChE,IAAI,CAAC,aAAa,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC;QACxE,IAAI,CAAC,aAAa,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,iBAAiB,CAAC;QAClF,IAAI,CAAC,aAAa,CAAC,uBAAuB,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,uBAAuB,CAAC;QAC9F,IAAI,CAAC,aAAa,CAAC,sBAAsB,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,sBAAsB,CAAC;QAC5F,IAAI,CAAC,aAAa,CAAC,4BAA4B,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,4BAA4B,CAAC;QACxG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,SAAS,EAAE;aACxD,IAAI,CAAC,GAAG,EAAE;YACT,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,0BAA0B,EAAE,GAAG,EAAE;gBACnD,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,CAAC,eAAe,CAAC;gBAC7B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;gBAClC,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YACf,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,wBAAwB,EAAE,GAAG,EAAE;gBACjD,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,CAAC,aAAa,CAAC;gBAC3B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IACD,MAAM;QACJ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAC9C,yBAAyB;IAC3B,CAAC;IAED,UAAU;QACR,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,GAAO,EAAC,EAAE;YACzF,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAG,GAAG,EAAC;gBACL,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;oBAC5B,YAAY,EAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE;oBACzD,YAAY,EAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE;oBACzD,gBAAgB,EAAG,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE;iBACpF,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;QACH,IAAG,IAAI,CAAC,QAAQ,IAAI,yCAAyC,EAAC;YAC5D,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE;YAC5B,IAAI,CAAC,OAAO,GAAG,IAAI;SACpB;IACH,CAAC;;4FAtSU,sBAAsB;sGAAtB,sBAAsB;QCjCnC,6FAAmE;QAEnE;QAGA;QAAA,qEAAI;QAAA,oFAAyB;QAAA,4DAAK;QAClC;QAAA,gFACI;QAAA;QAAA,kHACI;QAyDR;QAAA,4DAAgB;QAEhB;QAAA,kHACA;QAAA;QAAA,+HACE;QAuDF;QAAA,oEACA;QAAA;QAAA,+EACI;QAAA;QAAA,oFACI;QAAA;QAAA,0EACI;QAAA;QAAA,0EACG;QAAA;QAAA,yEAA+C;QAAA,mEAAO;QAAA,4DAAK;QAC9D;QAAA,4DAAM;QACV;QAAA,4DAAM;QACN;QAAA,2EACA;QAAA;QAAA,0EACI;QAAA;QAAA,0EACA;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,yEAAa;QAAA,4DAAY;QACpC;QAAA,0EAC8D;QAClE;QAAA,4DAAiB;QACjB;QAAA,4DAAM;QACN;QAOJ;QAAA,4DAAM;QACN;QAAA,sHACI;QAQJ;QAAA,4DAAO;QACP;QAAA,0EACI;QAAA;QAAA,qHAAiF;QACrF;QAAA,iNACA;QAIJ;QAAA,4DAAM;QAEN;QAAA,4DAAmB;QACvB;QAAA,4DAAW;;;QAlKF,0DAAuC;QAAvC,qFAAuC;QA4D5C,0DAAwB;QAAxB,wFAAwB;QAClB,0DAAwB;QAAxB,wFAAwB;QAwD9B,0DAA2B;QAA3B,0FAA2B;QACrB,0DAA2B;QAA3B,0FAA2B;QAOvB,2DAA2B;QAA3B,wFAA2B;QAGZ,0DAA+B;QAA/B,uGAA+B;QAc/C,2DAAa;QAAb,uEAAa;QAWT,0DAA0E;QAA1E,2HAA0E;;6FD/H9E,sBAAsB;cALlC,uDAAS;eAAC;gBACT,QAAQ,EAAE,mBAAmB;gBAC7B,WAAW,EAAE,gCAAgC;gBAC7C,SAAS,EAAE,CAAC,gCAAgC,CAAC;aAC9C;;;;;;;;;;;;;;AEhCD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAkD;AAEY;AAM5C;AAG4B;AAKU;;;;;;AAkBjD,MAAM,6BAA6B;IAqCxC,YACU,QAAwB,EAAU,MAAc,EAChD,SAAsB,EACtB,gBAAkC,EACrC,kBAAsC;QAHnC,aAAQ,GAAR,QAAQ,CAAgB;QAAU,WAAM,GAAN,MAAM,CAAQ;QAChD,cAAS,GAAT,SAAS,CAAa;QACtB,qBAAgB,GAAhB,gBAAgB,CAAkB;QACrC,uBAAkB,GAAlB,kBAAkB,CAAoB;QAxC7C,aAAQ,GAAS,KAAK,CAAC;QACvB,gBAAW,GAAS,KAAK,CAAC;QAI1B,aAAQ,GAAW,CAAC,CAAC;QACrB,iBAAY,GAAa,EAAE,CAAC;QAC5B,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QAM9C,0BAAqB,GAAG,EAAE,CAAC;QAG3B,cAAS,GAAY,KAAK,CAAC;QAI3B,aAAQ,GAAY,KAAK,CAAC;QAC1B,aAAQ,GAAY,KAAK,CAAC;QAC1B,iBAAY,GAAG,EAAE,CAAC;QAClB,qBAAgB,GAAG,2DAAW,CAAC,oBAAoB,CAAC;QACpD,cAAS,GAAuB,IAAI,GAAG,EAAE,CAAC;QAC1C,aAAQ,GAAS,EAAE,CAAC;QACpB,aAAQ,GAAY,KAAK,CAAC;QAG1B,eAAU,GAAG,EAAE,CAAC;QAEhB,mBAAc,GAAG,KAAK,CAAC;QA6EvB,WAAM,GAAa;YACjB,EAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,8BAA8B,EAAC;YACzD,EAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,yCAAyC,EAAC;YACpE,EAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,mCAAmC,EAAC;SAC/D,CAAC;QAEF,aAAQ,GAAe;YACrB,EAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAC;YACxC,EAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAC;YACtC,EAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAC;SACxC,CAAC;IA5EC,CAAC;IAEJ,QAAQ;QACN,IAAI,CAAC,UAAU,EAAE,CAAC;QAIlB,IAAI,CAAC,UAAU;YACf,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAC,IAAI,EAAC,SAAS,EAAC;gBACzC,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,IAAI,EAAC,SAAS,EAAC;gBACjD,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,eAAe,EAAG,IAAI,EAAC,SAAS,EAAC;gBAClD,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,8BAA8B,EAAE,IAAI,EAAC,SAAS,EAAC;gBAChE,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAG,IAAI,EAAC,SAAS,EAAC;aACnD,CAAC;QAGF,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAChG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACvF,IAAI,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7E,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,mOAAmO;QACnO,0BAA0B;QAC1B,IAAI;QAEJ,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACnF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC,CAAC,CAAC;QAGH,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,uDAAuD;QAClF,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACrF,IAAI,IAAI,IAAI,CAAC;gBACX,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,IAAE,CAAC,EAAC,CAAC,EAAE,EAAC;YACnB,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC;SACxC;IACH,CAAC;IAGD,WAAW,CAAC,iBAAiB,EAAE,KAAK;QAClC,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC,4BAA4B;QAErD,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;YAC7C,iBAAiB,CAAC,KAAK,EAAE,CAAC,CAAC,mBAAmB;SAC/C;IACH,CAAC;IAEO,qBAAqB,CAAC,MAAmB;QAC/C,MAAM,uBAAuB,GAAG,yBAAyB,CAAC;QAE1D,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAE,CAAC;IACzF,CAAC;IAED,UAAU;QAER,IAAI,CAAC,aAAa,GAAG,IAAI,wDAAS,CAAC;YAEjC,aAAa,EAAE,IAAI,0DAAW,CAAC,EAAE,CAAC;YAClC,QAAQ,EAAG,IAAI,0DAAW,CAAC,EAAE,CAAC;YAE9B,WAAW,EAAE,IAAI,0DAAW,CAAC,EAAE,CAAC;SACjC,CAAC,CAAC;IACL,CAAC;IAaD,8BAA8B,CAAC,YAAoB;QACjD,IAAI,CAAC,gBAAgB,CAAC,gCAAgC,CAAC,YAAY,CAAC;aACjE,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,YAA4B,EAAC,EAAE;YAChD,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,YAAY,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC;gBACpC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,UAAU,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;aAC5E;QACH,CAAC,CAAC,CAAC,KAAK,CACR,KAAK,GAAE;YACL,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,0DAA0D,EAAE,GAAG,EAAE;gBACnF,UAAU,EAAC,CAAC,aAAa,CAAC;gBAE1B,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC;QACJ,CAAC,CAAC,CAAC;IACP,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,kBAAkB;QAChB,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;YAClB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACrC;IACH,CAAC;IACO,kBAAkB,CAAC,KAAc;QACvC,IAAI,CAAC,kBAAkB;aACpB,kBAAkB,CAAC,KAAK,CAAC;aACzB,SAAS,EAAE,CAAC,IAAI,CACf,CAAC,aAAwB,EAAE,EAAE;YAC3B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;YACnC,IAAI,CAAC,cAAc,GAAC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC;YACtD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,CAAC,CAAC,CAAC,KAAK,CACR,KAAK,CAAC,EAAE;YACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;gBAClE,UAAU,EAAC,CAAC,aAAa,CAAC;gBAE1B,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CACF,CAAC;IACN,CAAC;;0GAxKU,6BAA6B;6GAA7B,6BAA6B;QClC1C,oEAAG;QAAA,uFAA4B;QAAA,4DAAI;QACnC;;6FDiCa,6BAA6B;cALzC,uDAAS;eAAC;gBACT,QAAQ,EAAE,2BAA2B;gBACrC,WAAW,EAAE,wCAAwC;gBACrD,SAAS,EAAE,CAAC,wCAAwC,CAAC;aACtD;;;;;;;;;;;;;;AEjCD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AAEA;AACF;AACV;AACE;AAClB;AAK6B;;;;;;;;;;;;;;ICL9C,yEAAgF;IAAA,0EAAc;IAAA,4DAAK;;;IACnG,yEAAwC;IAAA,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,oGAAyB;;;IAIjE,yEAAgF;IAAA,0EAAc;IAAA,4DAAK;;;IACnG,yEAAwC;IAAA,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,oGAAyB;;;IAIjE,yEAAgF;IAAA,wEAAY;IAAA,4DAAK;;;IACjG,yEAAwC;IAAA,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,mGAAwB;;;IAIhE,yEAAgF;IAAA,sEAAU;IAAA,4DAAK;;;IAC/F,yEAAwC;IAAA,uDAAqB;IAAA,4DAAK;;;IAA1B,0DAAqB;IAArB,gGAAqB;;;IAK7D,yEAAgF;IAAA,mEAAO;IAAA,4DAAK;;;IAC5F,yEAAwC;IAAA,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,kGAAuB;;;IAI/D,yEAAgF;IAAA,mEAAO;IAAA,4DAAK;;;;IAC5F,yEACI;IAAA;IAAA,wEAAyH;IAAA,0EAAe;IAAA,4DAAI;IAChJ;IAAA,4DAAK;;;IADqC,0DAAkF;IAAlF,4LAAkF;;;IAG9H,oEAA4D;;;IAC5D,oEAAkE;;;IAClE,yEACE;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAC/C;IAAA,4DAAK;;;ADrBZ,MAAM,wBAAwB;IAqBnC,YACS,UAAsB,EACrB,qBAAuC,EACvC,oBAAmD,EACnD,KAAa,EACb,OAA0B,EAC1B,QAAqB;QALtB,eAAU,GAAV,UAAU,CAAY;QACrB,0BAAqB,GAArB,qBAAqB,CAAkB;QACvC,yBAAoB,GAApB,oBAAoB,CAA+B;QACnD,UAAK,GAAL,KAAK,CAAQ;QACb,YAAO,GAAP,OAAO,CAAmB;QAC1B,aAAQ,GAAR,QAAQ,CAAa;QAtB/B,cAAS,GAAW,aAAa,CAAC;QAClC,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QAC9C,eAAU,GAAG,IAAI,0EAAkB,EAAE,CAAC;QACtC,aAAQ,GAAY,KAAK,CAAC;QAC1B,cAAS,GAAY,KAAK,CAAC;QAC3B,kBAAa,GAAY,CAAC,CAAC;QAM3B,qBAAgB,GAAa;YAC3B,YAAY,EAAE,cAAc,EAAE,aAAa;YAC1C,UAAU,EAAE,QAAQ,EAAE,QAAQ;SAChC,CAAC;QAUE,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,EAAE;QAChE,CAAC,CAAC,CAAC;IACJ,CAAC;IAEH,QAAQ;QACN,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAEpB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC3B,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAEtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CACtB,cAAc,CAAC,iCAAiC,CAAC,CACpD,CAAC,QAAQ,CAAC;QACX,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CACxB,cAAc,CAAC,iCAAiC,CAAC,CACpD,CAAC,UAAU,CAAC;QAGb,QAAQ,IAAI,CAAC,QAAQ,EAAE;YAErB,KAAK,CAAC,0CAA0C,CAAC,CAAC,CAAC;gBACjD,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;gBACvB,MAAM;aACP;YACD,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;gBACtB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;gBACvB,MAAM;aACP;YACD,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;gBACvB,MAAM;aACP;YACD,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;gBACxB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;gBACvB,MAAM;aACP;YAED,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;gBACZ,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;gBACvB,MAAM;aACP;YAED,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;gBACjC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;gBACvB,MAAM;aACP;SAEF;QAED,IAAI,CAAC,oBAAoB;aACpB,yBAAyB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,oBAAmB;aAC5F,SAAS,EAAE,CAAC,IAAI,CAAE,CAAC,GAAU,EAAE,EAAE;YAChC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YAErB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC3B,GAAG,CAAC,OAAO,CAAE,IAAI,CAAC,EAAE;YAGpB,CAAC,CAAC,CAAC;YACH,OAAO,GAAG,CAAC;QACb,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAE;YACP,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,GAAG,CAAC,CAAC;YAC9C,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACjC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QAG7B,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YACb,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACzB,CAAC,CAAC,CAAC;IACX,CAAC;IACC,gBAAgB,CAAC,IAAqB;QACpC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACf,IAAI,CAAC,CAAC,QAAQ,IAAI,IAAI,EAAE;gBACtB,CAAC,CAAC,QAAQ,GAAG,mCAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;aACtD;QAEH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IAEtB,CAAC;;gGApHU,wBAAwB;wGAAxB,wBAAwB;kEAYxB,iEAAkB;wEAClB,wEAAY;wEACZ,8DAAO;;;;;;;QClCpB,8EACI;QAAA;QAAA,mFACE;QAAA;QAAA,qEAAK;QAAA,mEAAO;QAAA,4DAAK;QACf;QAAA,yEACI;QAAA;QAAA,2EACE;QAAA;QAAA,4EACE;QAAA;QAAA,oHAAgF;QAChF;QAAA,oHAAwC;QAC1C;QAAA,qEAAe;QAEf;QAAA,4EACE;QAAA;QAAA,oHAAgF;QAChF;QAAA,oHAAwC;QAC1C;QAAA,qEAAe;QAEf;QAAA,4EACE;QAAA;QAAA,oHAAgF;QAChF;QAAA,oHAAwC;QAC1C;QAAA,qEAAe;QAEf;QAAA,4EACE;QAAA;QAAA,oHAAgF;QAChF;QAAA,oHAAwC;QAE1C;QAAA,qEAAe;QAEf;QAAA,4EACE;QAAA;QAAA,oHAAgF;QAChF;QAAA,oHAAwC;QAE1C;QAAA,qEAAe;QACf;QAAA,6EACE;QAAA;QAAA,oHAAgF;QAChF;QAAA,oHACI;QAEN;QAAA,qEAAe;QACf;QAAA,qHAAuD;QACvD;QAAA,qHAA6D;QAC7D;QAAA,qHACE;QAEJ;QAAA,4DAAQ;QACV;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,gFAAgE;QAClE;QAAA,4DAAM;QACZ;QAAA,4DAAmB;QACvB;QAAA,4DAAW;QACX;;QAjDU,iFAAoB;QAID,0DAAyB;QAAzB,sFAAyB;QAiCrB,2DAAmC;QAAnC,iGAAmC;QAC1C,0DAAgD;QAAhD,kGAAgD;QAO/C,0DAAgC;QAAhC,kJAAgC;;6FDzB9C,wBAAwB;cALpC,uDAAS;eAAC;gBACT,QAAQ,EAAE,sBAAsB;gBAChC,WAAW,EAAE,mCAAmC;gBAChD,SAAS,EAAE,CAAC,mCAAmC,CAAC;aACjD;ikBAagC,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;YACc,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACH,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AElCtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAkD;AACkB;AAGnC;AAEa;AACmB;;;;;;;;;;;;;;;;ICJzD,wEACI;IAAA;IAAA,yEACI;IAAA;IAAA,yEACI;IAAA;IAAA,4EAAW;IAAA,wEAAa;IAAA,0EAA0B;IAAA,4DAAC;IAAA,4DAAO;IAAA,4DAAY;IAC1E;IAAA,4DAAM;IACN;IAAA,0EACI;IAAA;IAAA,sFACI;IAAA;IAAA,wFAA+B;IAAA,+DAAG;IAAA,4DAAmB;IACrD;IAAA,wFAAgC;IAAA,8DAAE;IAAA,4DAAmB;IACzD;IAAA,4DAAkB;IACtB;IAAA,4DAAM;IACN;IAAA,0EACI;IAAA;IAAA,iFAA0C;IAAA,+EAAmB;IAAA,2EAA0B;IAAA,6DAAC;IAAA,4DAAO;IAC/F;IAAA,4DAAY;IAChB;IAAA,4DAAM;IACN;IAAA,0EACI;IAAA;IAAA,uFACI;IAAA;IAAA,wFAA+B;IAAA,+DAAG;IAAA,4DAAmB;IACrD;IAAA,wFAAgC;IAAA,8DAAE;IAAA,4DAAmB;IACzD;IAAA,4DAAkB;IACtB;IAAA,4DAAM;IACV;IAAA,4DAAM;IACN;IAAA,0EACI;IAAA;IAAA,2EACI;IAAA;IAAA,sFACI;IAAA;IAAA,6EAAW;IAAA,iFAAqB;IAAA,4DAAY;IAC5C;IAAA,2EAC8F;IAClG;IAAA,4DAAiB;IACrB;IAAA,4DAAM;IACN;IAAA,2EACI;IAAA;IAAA,sFACI;IAAA;IAAA,6EAAW;IAAA,6EAAiB;IAAA,4DAAY;IACxC;IAAA,2EACoF;IACxF;IAAA,4DAAiB;IACrB;IAAA,4DAAM;IAEV;IAAA,4DAAM;IAEV;IAAA,qEAAe;;;IAjCmB,2DAAY;IAAZ,uEAAY;IACZ,0DAAa;IAAb,wEAAa;IASb,2DAAY;IAAZ,uEAAY;IACZ,0DAAa;IAAb,wEAAa;IAMnB,2DAA+B;IAA/B,0GAA+B;IAO/B,2DAA+B;IAA/B,0GAA+B;;ADlB5D,MAAM,mBAAmB;IAa9B,YAAoB,QAAwB,EACxB,kBAAqC,EACrC,SAAsB,EACtB,OAAe,EACf,OAA0B,EAC1B,mBAAwC;QALxC,aAAQ,GAAR,QAAQ,CAAgB;QACxB,uBAAkB,GAAlB,kBAAkB,CAAmB;QACrC,cAAS,GAAT,SAAS,CAAa;QACtB,YAAO,GAAP,OAAO,CAAQ;QACf,YAAO,GAAP,OAAO,CAAmB;QAC1B,wBAAmB,GAAnB,mBAAmB,CAAqB;QAhB5D,qBAAgB,GAAG,2DAAW,CAAC,oBAAoB,CAAC;QAIpD,wBAAmB,GAAG,KAAK,CAAC;QAC5B,aAAQ,GAAG,QAAQ,CAAC;QAEpB,qBAAgB,GAAG,IAAI,CAAC;QAGxB,cAAS,GAAG,KAAK,CAAC;IAM8C,CAAC;IAEjE,QAAQ;QACN,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACtC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,EAAE,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,IAAI,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,IAAI,IAAI,EAAE;YACrE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAC5B,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAC1D,CAAC,QAAQ,CAAC;YACX,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;SAC7B;QAED,IAAI,IAAI,CAAC,QAAQ,KAAK,iBAAiB,EAAE;YACvC,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;SAC/B;QAGD,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAE3B,CAAC;IAED,qBAAqB,CAAC,GAAQ;QAC5B,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;IACxB,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,cAAc,GAAG,IAAI,wDAAS,CAAC;YAClC,sBAAsB,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAC7C,4BAA4B,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACnD,iBAAiB,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACxC,uBAAuB,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAC9C,yBAAyB,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;SACjD,CAAC,CAAC;IAEL,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YAClF,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,aAAa,GAAG,IAAI,yEAAa,EAAE,CAAC;YACzC,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;YACzB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;YAE9C,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;gBAE3B,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC;oBAC7B,sBAAsB,EAAE,IAAI,CAAC,aAAa,CAAC,sBAAsB;oBACjE,4BAA4B,EAAE,IAAI,CAAC,aAAa,CAAC,4BAA4B;oBAC7E,iBAAiB,EAAE,IAAI,CAAC,aAAa,CAAC,iBAAiB;oBACvD,uBAAuB,EAAE,IAAI,CAAC,aAAa,CAAC,uBAAuB;oBACnE,yBAAyB,EAAE,IAAI,CAAC,aAAa,CAAC,yBAAyB;iBACxE,CAAC,CAAC;gBAEH,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,sBAAsB,CAAC,OAAO,EAAE,CAAC;gBAC9D,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,4BAA4B,CAAC,OAAO,EAAE,CAAC;gBACpE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,uBAAuB,CAAC,OAAO,EAAE,CAAC;gBAC/D,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;gBACzD,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,qBAAqB,EAAE;oBACvD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;iBAC1B;qBACI;oBACH,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;iBAC1B;gBACD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;aAGjC;iBACI;gBACH,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;aAC/B;QACH,CAAC,CAAC,CAAC;IAEL,CAAC;IAED,kBAAkB;QAChB,IAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAC;YAC7B,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;gBAC9B,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC;gBAC9C,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,SAAS,CAAC;gBAC1C,IAAI,CAAC,aAAa,CAAC,sBAAsB,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,sBAAsB,CAAC;gBAC7F,IAAI,CAAC,aAAa,CAAC,4BAA4B,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,4BAA4B,CAAC;gBACzG,IAAI,CAAC,aAAa,CAAC,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,iBAAiB,CAAC;gBACnF,IAAI,CAAC,aAAa,CAAC,uBAAuB,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,uBAAuB,CAAC;gBAC/F,IAAI,CAAC,aAAa,CAAC,yBAAyB,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,yBAAyB,CAAC;gBAGnG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACpB,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;oBAC3E,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;oBACpB,IAAI,GAAG,EAAE;wBACP,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oCAAoC,EAAE,GAAG,EAAE;4BAC7D,QAAQ,EAAE,IAAI;4BACd,UAAU,EAAE,CAAC,eAAe,CAAC;4BAC7B,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;wBACH,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC;qBACjD;gBACH,CAAC,EACC,KAAK,CAAC,EAAE;oBACN,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;oBACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,8BAA8B,EAAE,GAAG,EAAE;wBACvD,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,aAAa,CAAC;wBAC3B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;aACN;iBACI;gBACH,IAAI,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,mCAAM,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE;oBAC7G,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,sBAAsB,EAAE,GAAG,EAAE;wBAC/C,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;qBACI;oBACH,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;oBAC3E,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;oBACpB,IAAI,CAAC,SAAS,GAAI,KAAK,CAAC;oBACxB,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;wBAC3E,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;wBACpB,IAAI,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,EAAE;4BAC9B,IAAG,GAAG,CAAC,SAAS,CAAC,EAAC;gCAChB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE;oCACvC,QAAQ,EAAE,IAAI;oCACd,UAAU,EAAE,CAAC,eAAe,CAAC;oCAC7B,kBAAkB,EAAE,OAAO;oCAC3B,gBAAgB,EAAE,KAAK;iCACxB,CAAC,CAAC;gCACH,IAAI,CAAC,SAAS,GAAI,IAAI,CAAC;6BACxB;iCACG;gCACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;oCAClE,QAAQ,EAAE,IAAI;oCACd,UAAU,EAAE,CAAC,eAAe,CAAC;oCAC7B,kBAAkB,EAAE,OAAO;oCAC3B,gBAAgB,EAAE,KAAK;iCACxB,CAAC,CAAC;gCACH,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC;6BACjD;yBACF;oBACH,CAAC,EAAE,KAAK,CAAC,EAAE;wBACT,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;wBACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oCAAoC,EAAE,GAAG,EAAE;4BAC7D,QAAQ,EAAE,IAAI;4BACd,UAAU,EAAE,CAAC,aAAa,CAAC;4BAC3B,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;iBACJ;aAEF;SACF;IACH,CAAC;IAED,eAAe;QACb,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,yBAAyB,CAAC,aAAa,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;QAC1F,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,yBAAyB,CAAC,sBAAsB,EAAE,CAAC;QAChF,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,yBAAyB,EAAE;YACvD,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,yBAAyB,CAAC;gBACzH,SAAS,CAAC,GAAG,CAAC,EAAE;gBACd,IAAI,GAAG,EAAE;oBACP,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,qCAAqC,EAAE,GAAG,EAAE;wBAC9D,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,eAAe,CAAC;wBAC7B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACH,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC;iBACjD;YACH,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;gBACR,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,yBAAyB,EAAE,GAAG,EAAE;oBAClD,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;SACN;IACH,CAAC;IAED,MAAM;IAEN,CAAC;;sFAjNU,mBAAmB;mGAAnB,mBAAmB;QChBhC,qFAA2G;QAAvE,wLAAuB,iCAA6B;QAAC,4DAAkB;QAC3G;QAAA,8EACI;QAAA;QAAA,0EACI;QAAA;QAAA,kIACI;QAwCJ;QASA;QAAA,yEACA;QAAA;QAAA,0EACA;QAAA;QAGA;QAAA,6EAAiJ;QAA/B,4IAAS,wBAAoB,IAAC;QAAC,wDAAY;QAAA,4DAAS;QAEtK;QAAA,4DAAM;QACN;QAAA,4DAAM;QACd;QAAA,4DAAO;QACP;QAAA,4DAAW;QAEX;;QAjEiB,+EAAkB;QAEzB,0DAA6B;QAA7B,yFAA6B;QACjB,0DAAwB;QAAxB,sFAAwB;QAuD9B,0DAAyE;QAAzE,wIAAyE;QAAgE,0DAAY;QAAZ,6EAAY;;6FD1CxJ,mBAAmB;cAL/B,uDAAS;eAAC;gBACT,QAAQ,EAAE,iBAAiB;gBAC3B,WAAW,EAAE,8BAA8B;gBAC3C,SAAS,EAAE,CAAC,8BAA8B,CAAC;aAC5C;;;;;;;;;;;;;;AEfD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAkD;AACkB;AAK4C;AAClE;AAC2C;;;;;;;;;;;;;;;;;ICJjF,wEACI;IAAA;IAAA,yEACI;IAAA;IAAA,yEACI;IAAA;IAAA,4EAAW;IAAA,wEAAa;IAAA,0EAA0B;IAAA,4DAAC;IAAA,4DAAO;IAAA,4DAAY;IAC1E;IAAA,4DAAM;IACN;IAAA,0EACI;IAAA;IAAA,sFACI;IAAA;IAAA,uFAA+B;IAAA,+DAAG;IAAA,4DAAmB;IACrD;IAAA,uFAAgC;IAAA,8DAAE;IAAA,4DAAmB;IACzD;IAAA,4DAAkB;IACtB;IAAA,4DAAM;IACN;IAAA,0EACI;IAAA;IAAA,iFAA0C;IAAA,+EAAmB;IAAA,2EAA0B;IAAA,6DAAC;IAAA,4DAAO;IAC/F;IAAA,4DAAY;IAChB;IAAA,4DAAM;IACN;IAAA,0EACI;IAAA;IAAA,uFACI;IAAA;IAAA,uFAA+B;IAAA,+DAAG;IAAA,4DAAmB;IACrD;IAAA,uFAAgC;IAAA,8DAAE;IAAA,4DAAmB;IACzD;IAAA,4DAAkB;IACtB;IAAA,4DAAM;IACV;IAAA,4DAAM;IACN;IAAA,0EACI;IAAA;IAAA,2EACI;IAAA;IAAA,sFACI;IAAA;IAAA,6EAAW;IAAA,iFAAqB;IAAA,4DAAY;IAC5C;IAAA,2EAC8F;IAClG;IAAA,4DAAiB;IACrB;IAAA,4DAAM;IACN;IAAA,2EACI;IAAA;IAAA,sFACI;IAAA;IAAA,6EAAW;IAAA,6EAAiB;IAAA,4DAAY;IACxC;IAAA,2EACoF;IACxF;IAAA,4DAAiB;IACrB;IAAA,4DAAM;IAEV;IAAA,4DAAM;IAEV;IAAA,qEAAe;;;IAjCmB,2DAAY;IAAZ,uEAAY;IACZ,0DAAa;IAAb,wEAAa;IASb,2DAAY;IAAZ,uEAAY;IACZ,0DAAa;IAAb,wEAAa;IAMnB,2DAA+B;IAA/B,0GAA+B;IAO/B,2DAA+B;IAA/B,0GAA+B;;;;IAWvD,0EACI;IAAA;IAAA,6EACuC;IAAnB,uTAAkB;IAAC,uDAAY;IAAA,4DAAS;IAEhE;IAAA,4DAAM;;;IAHM,0DAAkF;IAAlF,uJAAkF;IACnD,0DAAY;IAAZ,gFAAY;;AD/B5D,MAAM,qBAAqB;IAchC,YAAoB,QAAwB,EACxB,kBAAqC,EACrC,SAAsB,EACtB,OAAe,EACf,MAAiB,EACjB,OAA0B,EAC1B,mBAAwC;QANxC,aAAQ,GAAR,QAAQ,CAAgB;QACxB,uBAAkB,GAAlB,kBAAkB,CAAmB;QACrC,cAAS,GAAT,SAAS,CAAa;QACtB,YAAO,GAAP,OAAO,CAAQ;QACf,WAAM,GAAN,MAAM,CAAW;QACjB,YAAO,GAAP,OAAO,CAAmB;QAC1B,wBAAmB,GAAnB,mBAAmB,CAAqB;QAlB5D,qBAAgB,GAAG,2DAAW,CAAC,oBAAoB,CAAC;QAIpD,wBAAmB,GAAG,KAAK,CAAC;QAC5B,aAAQ,GAAG,QAAQ,CAAC;QAEpB,qBAAgB,GAAG,IAAI,CAAC;QACxB,aAAQ,GAAG,KAAK,CAAC;IAU+C,CAAC;IAEjE,QAAQ;QACN,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACtC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,EAAE,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,IAAI,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,IAAI,IAAI,EAAE;YACrE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAC5B,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAC1D,CAAC,QAAQ,CAAC;YACX,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;YAC5B,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,KAAK,CACnC,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAC1D,CAAC,UAAU,CAAC;SACd;QAED,IAAI,IAAI,CAAC,QAAQ,KAAK,iBAAiB,EAAE;YACvC,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;SAC/B;QAGD,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAE5B,CAAC;IACD,kBAAkB;QAChB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YAClF,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,aAAa,GAAG,IAAI,yEAAa,EAAE,CAAC;YACzC,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;YACzB,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,sBAAsB,EAAE;gBAExD,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC;oBAC7B,sBAAsB,EAAE,IAAI,CAAC,aAAa,CAAC,sBAAsB;oBACjE,4BAA4B,EAAE,IAAI,CAAC,aAAa,CAAC,4BAA4B;oBAC7E,iBAAiB,EAAE,IAAI,CAAC,aAAa,CAAC,iBAAiB;oBACvD,uBAAuB,EAAE,IAAI,CAAC,aAAa,CAAC,uBAAuB;oBACnE,yBAAyB,EAAE,IAAI,CAAC,aAAa,CAAC,yBAAyB;iBACxE,CAAC,CAAC;gBAEH,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;aAC/B;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,qBAAqB,CAAC,GAAQ;QAC5B,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,GAAG,CAAC;IACpC,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,cAAc,GAAG,IAAI,wDAAS,CAAC;YAClC,sBAAsB,EAAE,IAAI,0DAAW,CAAC,KAAK,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACrE,4BAA4B,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACnD,iBAAiB,EAAE,IAAI,0DAAW,CAAC,KAAK,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAChE,uBAAuB,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;SAC/C,CAAC,CAAC;IAEL,CAAC;IAED,MAAM;QACJ,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;YAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6HAAqB,EAAE;gBACxD,KAAK,EAAE,OAAO;gBACd,YAAY,EAAE,IAAI;gBAClB,IAAI,EAAE;oBACJ,OAAO,EAAE,cAAc;oBACvB,OAAO,EAAE,mCAAmC;iBAC7C;aACF,CAAC,CAAC;YAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC3C,IAAI,MAAM,KAAK,IAAI,EAAE;oBACnB,IAAI,CAAC,aAAa,GAAG;wBACnB,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,eAAe;wBACnD,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU;wBACzC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU;wBACzC,iBAAiB,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,iBAAiB;wBAC9D,uBAAuB,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,uBAAuB;wBAC1E,sBAAsB,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,sBAAsB;wBACxE,4BAA4B,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,4BAA4B;wBACpF,gBAAgB,EAAE,IAAI,CAAC,mBAAmB;qBAC3C,CAAC;oBACF,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;oBACpB,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;wBACrE,MAAM,YAAY,GAAG,cAAc,CAAC;wBACpC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;wBACpB,IAAI,GAAG,CAAC,YAAY,CAAC,EAAE;4BACrB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iCAAiC,EAAE,GAAG,EAAE;gCAC1D,QAAQ,EAAE,IAAI;gCACd,UAAU,EAAE,CAAC,eAAe,CAAC;gCAC7B,kBAAkB,EAAE,OAAO;gCAC3B,gBAAgB,EAAE,KAAK;6BACxB,CAAC,CAAC;4BACH,IAAG,IAAI,CAAC,QAAQ,IAAI,WAAW,EAAC;gCAC9B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;6BAC9C;iCACG;gCACF,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC;6BACjD;yBACF;6BACI;4BACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,0BAA0B,EAAE,GAAG,EAAE;gCACnD,QAAQ,EAAE,IAAI;gCACd,UAAU,EAAE,CAAC,aAAa,CAAC;gCAC3B,kBAAkB,EAAE,OAAO;gCAC3B,gBAAgB,EAAE,KAAK;6BACxB,CAAC,CAAC;yBACJ;oBACH,CAAC,EACC,CAAC,KAAK,EAAE,EAAE;wBACR,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;wBACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;4BACpC,QAAQ,EAAE,IAAI;4BACd,UAAU,EAAE,CAAC,aAAa,CAAC;4BAC3B,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;iBACN;YACH,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;;0FA9IU,qBAAqB;qGAArB,qBAAqB;QCjBlC,qFAC2E;QAAvE,0LAAuB,iCAA6B;QAAC,4DAAkB;QAC3E;QAAA,8EACI;QAAA;QAAA,0EACI;QAAA;QAAA,oIACI;QAwCJ;QAAA,yEACI;QAAA;QAAA,mHACI;QAIR;QAAA,4DAAM;QACV;QAAA,4DAAO;QACX;QAAA,4DAAW;;QAlDD,0DAA4B;QAA5B,yFAA4B;QAChB,0DAAwB;QAAxB,sFAAwB;QA0C7B,0DAA8D;QAA9D,oIAA8D;;6FD7BlE,qBAAqB;cALjC,uDAAS;eAAC;gBACT,QAAQ,EAAE,mBAAmB;gBAC7B,WAAW,EAAE,gCAAgC;gBAC7C,SAAS,EAAE,CAAC,gCAAgC,CAAC;aAC9C;;;;;;;;;;;;;;AEhBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAoH;AACf;AAGpE;AAEwB;AAIQ;;;;;;;;;;;;;;;;;;;ICHzD,6EAA+D;IAAnB,4TAAkB;IAAC,2EAAU;IAAA,qEAAU;IAAA,4DAAW;IAAA,+DAAI;IAAA,4DAAS;;;IAoBvG,wEACI;IAAA;IAAA,0EAAwC;IAAA,kEAAO;IAAA,4DAAM;IACrD;IAAA,yEAAsB;IAAA,uDAA+B;IAAA,4DAAM;IAC/D;IAAA,qEAAe;;;IADW,0DAA+B;IAA/B,4GAA+B;;;IAEzD,wEACE;IAAA;IAAA,yEAAwC;IAAA,qEAAU;IAAA,4DAAM;IACxD;IAAA,yEAAsB;IAAA,uDAA8B;IAAA,4DAAM;IAC5D;IAAA,qEAAe;;;IADS,0DAA8B;IAA9B,2GAA8B;;;IAkBxD,wEACE;IAAA;IAAA,yEAAwC;IAAA,0EAAe;IAAA,4DAAM;IAC7D;IAAA,yEAAsB;IAAA,uDAAkC;IAAA,4DAAM;IAChE;IAAA,qEAAe;;;IADS,0DAAkC;IAAlC,+GAAkC;;;IAE1D,wEACE;IAAA;IAAA,yEAAwC;IAAA,oFAAyB;IAAA,4DAAM;IACzE;IAAA,yEAAsB;IAAA,uDAAkC;IAAA,4DAAM;IAC9D;IAAA,qEAAe;;;IADO,0DAAkC;IAAlC,+GAAkC;;;IAwClD,4EACE;IAAA,yHACJ;IAAA,4DAAY;;;IAUV,4EACE;IAAA,kHACJ;IAAA,4DAAY;;;IAQF,iFAAqE;IAAA,uDAAgB;IAAA,4DAAa;;;IAApD,mFAAsB;IAAC,0DAAgB;IAAhB,iFAAgB;;;IAEzF,4EACE;IAAA,uHACJ;IAAA,4DAAY;;;IAOV,4EACE;IAAA,iIACF;IAAA,4DAAY;;;IANpB,0EACI;IAAA;IAAA,qFACI;IAAA;IAAA,4EAAW;IAAA,qFAA0B;IAAA,2EAA0B;IAAA,4DAAC;IAAA,4DAAO;IAAA,4DAAY;IACnF;IAAA,0EAAiF;IACjF;IAAA,sIACE;IAEN;IAAA,4DAAiB;IACrB;IAAA,4DAAM;;;IAPc,0DAA+B;IAA/B,2GAA+B;IAGhC,0DAAiF;IAAjF,2JAAiF;;;IAOtG,0EACE;IAAA;IAAA,qFACI;IAAA;IAAA,4EAAW;IAAA,iFAAsB;IAAA,4DAAY;IAC7C;IAAA,0EAAyF;IAC7F;IAAA,4DAAiB;IACnB;IAAA,4DAAM;;;IAJY,0DAA+B;IAA/B,2GAA+B;;;;IAO/C,6EACE;IADqE,mUAAiB;IACtF;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAAC,iEAAK;IAAA,4DAAS;;;IADnC,0FAAyB;;;;IAEjC,6EAA6I;IAAxD,+UAA6B;IAA2B,uDAAY;IAAA,4DAAS;;;IAA/C,0FAAyB;IAAC,0DAAY;IAAZ,iFAAY;;;IAH7J,0EACI;IAAA;IAAA,+HACE;IACF;IAAA,+HAA6I;IAC/I;IAAA,4DAAM;;;IAH8B,0DAAiB;IAAjB,mFAAiB;IAE7B,0DAAiB;IAAjB,mFAAiB;;AD5H5C,MAAM,oBAAoB;IAmC/B,YACU,mBAAwC,EACxC,OAAe,EACf,SAAsB,EACtB,kBAAqC,EACrC,OAA0B,EAC1B,QAAwB;QALxB,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,YAAO,GAAP,OAAO,CAAQ;QACf,cAAS,GAAT,SAAS,CAAa;QACtB,uBAAkB,GAAlB,kBAAkB,CAAmB;QACrC,YAAO,GAAP,OAAO,CAAmB;QAC1B,aAAQ,GAAR,QAAQ,CAAgB;QAvClC,qBAAgB,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QAEpD,eAAU,GAAiB,EAAE,CAAC;QAC9B,YAAO,GAAiB,EAAE,CAAC;QAE3B,aAAQ,GAAS,IAAI,IAAI,EAAE,CAAC;QAC5B,iBAAY,GAAG,KAAK,CAAC;QAGrB,kBAAa,GAAkB,IAAI,yEAAa,EAAE,CAAC;QAEnD,uBAAkB,GAAG,EAAE,CAAC;QACxB,oBAAe,GAAG,EAAE,CAAC;QACrB,aAAQ,GAAG,QAAQ,CAAC;QACpB,aAAQ,GAAG,KAAK,CAAC;QACjB,iBAAY,GAAG,KAAK,CAAC;QAErB,kBAAa,GAAG,KAAK,CAAC;QACtB,YAAO,GAAG,IAAI,IAAI,EAAE,CAAC;QACrB,mBAAc,GAAG,KAAK,CAAC;QACvB,WAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QAKV,yBAAoB,GAAG,IAAI,0DAAY,EAAQ,CAAC;QAChD,sBAAiB,GAAG,IAAI,0DAAY,EAAO,CAAC;QACtD,aAAQ,GAAG,CAAC,CAAO,EAAW,EAAE;YAC9B,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;YACvB,mDAAmD;YACnD,OAAO,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;QAChC,CAAC;IAQqC,CAAC;IACvC,WAAW,CAAC,OAAsB;QAChC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;QACtC,IAAG,IAAI,CAAC,IAAI,EAAC;YACX,IAAI,CAAC,uBAAuB,EAAE,CAAC;SAChC;IACH,CAAC;IACD,QAAQ;QACN,IAAI,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,IAAI,IAAI,EAAE;YACrE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAC5B,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAC1D,CAAC,QAAQ,CAAC;YACX,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;YAC5B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CACrB,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAC1D,CAAC,UAAU,CAAC;SACd;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,IAAI,IAAI,CAAC,QAAQ,KAAK,iBAAiB,IAAI,IAAI,CAAC,QAAQ,KAAK,WAAW,EAAE;YACnG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;gBACtC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC;YACzB,CAAC,CAAC,CAAC;SACJ;QACD,IAAI,IAAI,CAAC,WAAW,KAAK,eAAe,EAAE;YACxC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;gBACtC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC;YACzB,CAAC,CAAC,CAAC;SACJ;QACD,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED,uBAAuB;QACrB,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YAC7E,IAAI,GAAG,EAAE;gBACP,IAAI,CAAC,aAAa,GAAG,IAAI,yEAAa,EAAE,CAAC;gBACzC,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;gBACzB,GAAG,CAAC,UAAU,GAAG,mCAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBAC7D,IAAI,IAAI,CAAC,aAAa,CAAC,YAAY,KAAK,CAAC,EAAC;oBACxC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;iBAC1B;gBAED,IAAI,GAAG,CAAC,eAAe,EAAE;oBAEvB,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC;wBAC9B,eAAe,EAAE,mCAAM,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;wBAChF,QAAQ,EAAE,mCAAM,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;wBAClE,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ;wBACrC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,YAAY;wBAC7C,gBAAgB,EAAE,IAAI,CAAC,aAAa,CAAC,gBAAgB;qBACtD,CAAC,CAAC;oBAEH,IAAI,CAAC,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;oBAE5C,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,IAAI,IAAI,CAAC,QAAQ,KAAK,WAAW,EAAE;wBAC5D,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;wBACxD,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;wBACjD,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;wBACrD,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;wBACzD,IAAI,GAAG,CAAC,MAAM,KAAK,iBAAiB,IAAI,IAAI,CAAC,WAAW,KAAK,cAAc,EAAE;4BAC3E,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;yBAClD;qBACF;yBACI;wBACH,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;qBAChC;oBACD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;oBACzB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;iBAE1B;qBAEI;oBACH,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;oBAC5B,IAAG,IAAI,CAAC,aAAa,CAAC,kBAAkB,EAAC;wBACvC,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;wBAC3G,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;4BACtB,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAC,CAAC,CAAC;yBACjD;6BACI,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;4BAC3B,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAC,CAAC,CAAC;yBAC7C;6BACI;4BACH,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;yBAC3C;wBACD,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC;4BAC9B,eAAe,EAAE,mCAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;4BACxD,QAAQ,EAAE,mCAAM,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;yBACnD,CAAC,CAAC;qBACJ;yBACG;wBACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,wCAAwC,EAAE,GAAG,EAAE;4BACjE,QAAQ,EAAE,IAAI;4BACd,UAAU,EAAE,CAAC,aAAa,CAAC;4BAC3B,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;qBACJ;iBACF;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,qBAAqB;QACnB,IAAI,CAAC,eAAe,GAAG,IAAI,wDAAS,CAAC;YACnC,eAAe,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC7D,QAAQ,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACtD,QAAQ,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACtD,YAAY,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC1D,gBAAgB,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;SACxC,CAAC,CAAC;IAEL,CAAC;IAED,SAAS;QACP,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,EAAE,CAAC,SAAS,CAAC,CAAC,GAAkB,EAAE,EAAE;YAC/E,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACjD,GAAG,CAAC,OAAO,CAAC,CAAC,CAAc,EAAE,EAAE;gBAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACvD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IAEL,CAAC;IAED,KAAK;QACH,UAAU,CAAC,GAAG,EAAE,CACd,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC;YAChC,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,KAAK;YAClE,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK;SACrD,CAAC,EAAE,CAAC,CAAC,CAAC;IACX,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE;YAC9B,IAAI,CAAC,aAAa,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,eAAe,CAAC;YAChF,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC;YAClE,IAAI,CAAC,aAAa,CAAC,kBAAkB,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC;YAC5E,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC;YAClE,IAAI,CAAC,aAAa,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,YAAY,CAAC;YAC1E,IAAI,CAAC,aAAa,CAAC,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,gBAAgB,CAAC;YAClF,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,CAAC,CAAC;YAClC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;gBAC7E,IAAI,GAAG,EAAE;oBACP,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;oBACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,qCAAqC,EAAE,GAAG,EAAE;wBAC9D,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,eAAe,CAAC;wBAC7B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACH,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;iBAC9C;YACH,CAAC,EACC,KAAK,CAAC,EAAE;gBACN,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,8BAA8B,EAAE,GAAG,EAAE;oBACvD,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;SACN;aACI;YACH,OAAO;SACR;IACH,CAAC;IAED,MAAM;QACJ,IAAG,IAAI,CAAC,QAAQ,KAAK,WAAW,EAAC;YAC/B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;SAC9C;aACG;YACF,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC;SACjD;IACH,CAAC;IAED,MAAM,CAAC,MAAY;QACjB,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IACD,MAAM,CAAC,GAAQ;QACb,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;;wFApOU,oBAAoB;oGAApB,oBAAoB;kEAyBpB,iEAAkB;;;;;QChD/B,8EACI;QAAA;QAAA,yEACE;QAAA;QAAA,yEACE;QAAA,8FACF;QAAA,4DAAM;QACN;QAAA,gEACA;QAAA;QAAA,yEACE;QAAA;QAAA,wHAA+D;QACjE;QAAA,4DAAM;QACR;QAAA,4DAAM;QACN;QAAA,qEAAuB;QACvB;QAAA,oFACI;QAAA;QAAA,0EACA;QAAA;QAAA,0EACA;QAAA;QAAA,0EACA;QAAA;QAAA,0EAAwC;QAAA,wEAAY;QAAA,4DAAM;QAC1D;QAAA,0EAAsB;QAAA,wDAAgC;QAAA,4DAAM;QAC9D;QAAA,4DAAM;QACN;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,0EACE;QAAA;QAAA,0EAAwC;QAAA,0EAAc;QAAA,4DAAM;QAC5D;QAAA,0EAAsB;QAAA,wDAAgC;QAAA,4DAAM;QAC9D;QAAA,4DAAM;QACN;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,0EACE;QAAA;QAAA,oIACI;QAGJ;QAAA,oIACE;QAGJ;QAAA,4DAAM;QACN;QAIA;QAAA,4DAAM;QACZ;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,0EACA;QAAA;QAAA,0EACE;QAAA;QAAA,0EAAwC;QAAA,uEAAW;QAAA,4DAAM;QACzD;QAAA,0EAAsB;QAAA,wDAA+B;QAAA,4DAAM;QAC7D;QAAA,4DAAM;QACN;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,0EACE;QAAA;QAAA,oIACE;QAGF;QAAA,oIACE;QAGJ;QAAA,4DAAM;QACN;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,0EACE;QAAA;QAAA,0EAAwC;QAAA,kEAAM;QAAA,4DAAM;QACpD;QAAA,0EAAsB;QAAA,wDAA2B;QAAA,4DAAM;QACzD;QAAA,4DAAM;QACN;QAAA,4DAAM;QACZ;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,0EACA;QAAA;QAAA,0EACE;QAAA;QAAA,2EAAwC;QAAA,4EAAe;QAAA,4DAAM;QAC7D;QAAA,2EAAsB;QAAA,yDAAmD;;QAAA,4DAAM;QACjF;QAAA,4DAAM;QACN;QAAA,4DAAM;QAEL;QAAA,2EACC;QAAA;QAAA,2EACA;QAAA;QAAA,2EAAwC;QAAA,6EAAgB;QAAA,4DAAM;QAC9D;QAAA,2EAAsB;QAAA,yDAAwD;;QAAA,4DAAM;QACtF;QAAA,4DAAM;QACN;QAAA,4DAAM;QACR;QAAA,4DAAM;QACN;QAAA,4DAAmB;QACrB;QAAA,4DAAW;QAGb;QAAA,gFACI;QAAA;QAAA,qFACI;QAAA;QAAA,4EACI;QAAA;QAAA,2EACA;QAAA;QAAA,4EACI;QAAA;QAAA,uFACA;QAAA;QAAA,8EAAW;QAAA,6EAAgB;QAAA,6EAA0B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QACzE;QAAA,yEACA;QAAA;QAAA,yFAA6E;QAC7E;QAAA,wFAA8C;QAC9C;QAAA,gIACE;QAEF;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,4EACI;QAAA;QAAA,uFACA;QAAA;QAAA,8EAAW;QAAA,8EAAiB;QAAA,6EAA0B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QAC1E;QAAA,8EACA;QADsM,6JAAc,wBAAoB,IAAC;QAAzO,4DACA;QAAA;QAAA,yFAAsE;QACtE;QAAA,wFAAuC;QACvC;QAAA,4DAAiB;QACjB;QAAA,gIACE;QAEN;QAAA,4DAAM;QACV;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,4EACI;QAAA;QAAA,uFACI;QAAA;QAAA,8EAAW;QAAA,oEAAO;QAAA,6EAA0B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QAChE;QAAA,mFACI;QAAA;QAAA,mIAAqE;QACzE;QAAA,4DAAa;QACb;QAAA,gIACE;QAEN;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,sHACI;QAQR;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,sHACE;QAKJ;QAAA,4DAAM;QACN;QAAA,qHACI;QAIJ;QAAA,4DAAO;QACX;QAAA,4DAAmB;QACvB;QAAA,4DAAW;QACX;;;;QAjJmC,2DAAgB;QAAhB,8EAAgB;QASrB,2DAAgC;QAAhC,0GAAgC;QAM9B,2DAAgC;QAAhC,0GAAgC;QAKtC,0DAAoB;QAApB,kFAAoB;QAIpB,0DAAqB;QAArB,mFAAqB;QAejB,2DAA+B;QAA/B,yGAA+B;QAKrC,0DAAoB;QAApB,kFAAoB;QAIpB,0DAAqB;QAArB,mFAAqB;QASX,2DAA2B;QAA3B,uIAA2B;QAQ/B,2DAAmD;QAAnD,6NAAmD;QAOnD,2DAAwD;QAAxD,kOAAwD;QAUxE,2DAA8B;QAA9B,0FAA8B;QAGZ,0DAA+B;QAA/B,uGAA+B;QAE/B,0DAA6B;QAA7B,8EAA6B;QACZ,0DAAmB;QAAnB,oEAAmB;QAEzC,0DAAoF;QAApF,sJAAoF;QAM/E,0DAA+B;QAA/B,uGAA+B;QAE/B,0DAAgC;QAAhC,6FAAgC;QACf,0DAAY;QAAZ,oEAAY;QAGlC,0DAA6E;QAA7E,+IAA6E;QAOxE,0DAA+B;QAA/B,uGAA+B;QAG3B,0DAAiC;QAAjC,mFAAiC;QAEtC,0DAA6E;QAA7E,+IAA6E;QAK3F,0DAAsD;QAAtD,wHAAsD;QAWxD,0DAAsD;QAAtD,wHAAsD;QAOxD,0DAAgC;QAAhC,8FAAgC;;6FDzHhC,oBAAoB;cALhC,uDAAS;eAAC;gBACT,QAAQ,EAAE,iBAAiB;gBAC3B,WAAW,EAAE,8BAA8B;gBAC3C,SAAS,EAAE,CAAC,8BAA8B,CAAC;aAC5C;ygBAyBU,IAAI;kBAAZ,mDAAK;YACyB,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;YAEnB,oBAAoB;kBAA7B,oDAAM;YACG,iBAAiB;kBAA1B,oDAAM;;;;;;;;;;;;;;AEnDT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0D;AACU;AACK;AAChB;;;;;;;;;;ICHzD,yEAAwD;IAAA,6EAAkB;IAAA,4DAAK;;;IAC/E,yEAAyD;IAAA,wEAAa;IAAA,4DAAK;;;IAC3E,yEAAwD;IAAA,wEAAa;IAAA,4DAAK;;;IAMtD,4EAA+C;IAAA,8EAAmB;IAAA,2EAA0B;IAAA,4DAAC;IAAA,4DAAO;IAAA,4DAAY;;;IAChH,4EAAgD;IAAA,sFAA2B;IAAA,2EAA0B;IAAA,4DAAC;IAAA,4DAAO;IAAA,4DAAY;;;IACzH,4EAA+C;IAAA,sFAA2B;IAAA,2EAA0B;IAAA,4DAAC;IAAA,4DAAO;IAAA,4DAAY;;ADArI,MAAM,qBAAqB;IAOhC,YAAoB,SAA8C,EAChC,IAAS;QADvB,cAAS,GAAT,SAAS,CAAqC;QAChC,SAAI,GAAJ,IAAI,CAAK;QAL3C,qBAAgB,GAAG,wDAAW,CAAC,oBAAoB,CAAC;IAKL,CAAC;IAIhD,QAAQ;QACN,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QAClC,IAAI,CAAC,iBAAiB,GAAG,IAAI,wDAAS,CAAC;YACrC,YAAY,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;SAC3D,CAAC,CAAC;IAEL,CAAC;IAED,SAAS;QACP,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAED,IAAI;QACF,IAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK;YAC/B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAErD,CAAC;;0FA5BU,qBAAqB,0MAQtB,wEAAe;qGARd,qBAAqB;QCVlC,+GAAwD;QACxD;QAAA,+GAAyD;QACzD;QAAA,+GAAwD;QACpD;QAAA,qFACA;QAAA;QAAA,0EACI;QAAA;QAAA,0EACI;QAAA;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,+HAA+C;QAC/C;QAAA,+HAAgD;QAChD;QAAA,+HAA+C;QAC/C;QAAA,0EAAiF;QACrF;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACV;QAAA,4DAAM;QAEN;QAAA,0EACI;QAAA;QAAA,0EACE;QAAA;QAAA,6EACE;QADyB,8IAAS,eAAW,IAAC;QAC9C;QAAA,4EAAU;QAAA,iEAAK;QAAA,4DAAW;QAAA,kFAC5B;QAAA,4DAAS;QACT;QAAA,6EAAuE;QAAjB,8IAAS,UAAM,IAAC;QAAC,kEAAM;QAAA,4DAAS;QAExF;QAAA,4DAAM;QACR;QAAA,4DAAM;QACZ;QAAA,4DAAO;QACP;QAAA,4DAAqB;QACzB;;QA3BqB,6FAAkC;QAClC,0DAAmC;QAAnC,8FAAmC;QACnC,0DAAkC;QAAlC,6FAAkC;QAE7C,0DAA+B;QAA/B,4FAA+B;QAGT,0DAA+B;QAA/B,uGAA+B;QAC/B,0DAAkC;QAAlC,6FAAkC;QAClC,0DAAmC;QAAnC,8FAAmC;QACnC,0DAAkC;QAAlC,6FAAkC;;6FDArD,qBAAqB;cALjC,uDAAS;eAAC;gBACT,QAAQ,EAAE,mBAAmB;gBAC7B,WAAW,EAAE,gCAAgC;gBAC7C,SAAS,EAAE,CAAC,gCAAgC,CAAC;aAC9C;;sBASI,oDAAM;uBAAC,wEAAe;;;;;;;;;;;;;;AElB3B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0D;AAEC;;;;;;;ICCnD,uEAAsF;IAAA,qEAAU;IAAA,4DAAI;;;;IAUhG,wEACI;IAAA;IAAA,yEACI;IAAA;IAAA,yEAAsB;IAAA,uDAAuB;IAAA,4DAAK;IAClD;IAAA,yEACI;IAAA,uDAA2B;IAAA,4DAAK;IACxC;IAAA,4DAAK;IACT;IAAA,4DAAQ;;;;IAJsB,0DAAuB;IAAvB,uFAAuB;IACzC,0DAAgE;IAAhE,uLAAgE;IAChE,0DAA2B;IAA3B,8HAA2B;;;IAb3C,2EACI;IAAA;IAAA,yEACI;IAAA;IAAA,qEACI;IAAA;IAAA,0EAAmB;IAAA,qEAAU;IAAA,4DAAO;IACxC;IAAA,4DAAK;IACL;IAAA,sEACI;IAAA;IAAA,2EAAmB;IAAA,kEAAM;IAAA,4DAAO;IACpC;IAAA,4DAAK;IACT;IAAA,4DAAK;IACL;IAAA,oJACI;IAMR;IAAA,4DAAQ;;;IAPG,2DAAyD;IAAzD,gHAAyD;;;IAQpE,0EACI;IAAA;IAAA,wEAAyB;IAAA,uEAAY;IAAA,4DAAI;IACzC;IAAA,2EAAiC;IAAA,0EAAe;IAAA,4DAAO;IAC3D;IAAA,4DAAM;;;IAtBV,sEACI;IAAA;IAAA,gIAAsF;IACtF;IAAA,yIACI;IAgBJ;IAAA,oIACI;IAGR;IAAA,4DAAM;;;IAtBC,0DAAqE;IAArE,6IAAqE;IACjE,0DAAqE;IAArE,6IAAqE;IAiBvE,0DAAsE;IAAtE,8IAAsE;;ADZ5E,MAAM,kCAAkC;IAK7C,YAAoB,cAA6B,EACf,IAAS;QADvB,mBAAc,GAAd,cAAc,CAAe;QACf,SAAI,GAAJ,IAAI,CAAK;IAAI,CAAC;IAEhD,QAAQ;QACN,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CACrB,cAAc,CAAC,+BAA+B,CAC/C,CAAC,UAAU,CAAC;QACb,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,KAAK,CACnC,cAAc,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAC9C;QACD,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YACvE,IAAI,CAAC,aAAa,GAAE,GAAG;YACvB,IAAG,IAAI,CAAC,aAAa,CAAC,yBAAyB,CAAC,KAAK,kBAAkB,EAAC;gBACtE,IAAG,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,EAAC;oBAC3C,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAC,CAAC,EAAE,EAAE;wBAC3D,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;4BACnC,IAAG,CAAC,CAAC,YAAY,KAAK,IAAI,CAAC,YAAY;gCACvC,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,cAAc;wBACnF,CAAC,CAAC;oBACJ,CAAC,CAAC;iBACH;aACF;QACH,CAAC,CAAC;IACJ,CAAC;IAED,QAAQ,CAAC,MAAM;QACb,IAAG,MAAM,KAAK,8BAA8B,EAAC;YAC3C,OAAO,QAAQ;SAChB;aACI,IAAG,MAAM,KAAK,6BAA6B,EAAC;YAC/C,OAAO,OAAO;SACf;aACG;YACF,OAAO,OAAO;SACf;IACH,CAAC;;oHA5CU,kCAAkC,6MAMnC,wEAAe;kHANd,kCAAkC;QCT/C,wEAAqB;QAAA,iEAAM;QAAA,4DAAK;QAChC;QAAA,wFACI;QAAA;QAAA,8HACI;QAwBR;QAAA,4DAAqB;QACrB;QAAA,wFACI;QAAA;QAAA,6EAAkE;QAAA,iEAAK;QAAA,4DAAS;QACpF;QAAA,4DAAqB;;QA5BZ,0DAAwF;QAAxF,0JAAwF;QA2BrD,0DAAyB;QAAzB,kFAAyB;;6FDpBxD,kCAAkC;cAL9C,uDAAS;eAAC;gBACT,QAAQ,EAAE,kCAAkC;gBAC5C,WAAW,EAAE,+CAA+C;gBAC5D,SAAS,EAAE,CAAC,+CAA+C,CAAC;aAC7D;;sBAOI,oDAAM;uBAAC,wEAAe;;;;;;;;;;;;;;AEf3B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAqE;AACI;AAE3B;AAC2C;AAG5B;;;;;;;;;;;AAOtD,MAAM,yBAAyB;IASpC,YACS,SAAkD,EACzB,IAAS,EACjC,WAAwB,EACxB,SAAsB,EACtB,OAAe,EACf,YAAiC;QALlC,cAAS,GAAT,SAAS,CAAyC;QACzB,SAAI,GAAJ,IAAI,CAAK;QACjC,gBAAW,GAAX,WAAW,CAAa;QACxB,cAAS,GAAT,SAAS,CAAa;QACtB,YAAO,GAAP,OAAO,CAAQ;QACf,iBAAY,GAAZ,YAAY,CAAqB;QAd3C,oBAAe,GAAG,2DAAW,CAAC,oBAAoB,CAAC;QAiBjD,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;SAElC;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAEjC,CAAC;IACD,QAAQ;QAEN,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YAC1C,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACrF,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACxF,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACxF,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACxF,cAAc,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACpG,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SAEhF,CAAC,CAAC;IACL,CAAC;IACD,aAAa;QACX,IAAI,CAAC,SAAS,GAAG,IAAI,qEAAS,EAAE,CAAC;QAEjC,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,MAAM,CAAC;QACnC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAE9B,CAAC;IAED,MAAM,CAAC,SAAc;QACnB,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;QAC/C,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QACnE,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QACrE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;QAC7E,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QACrE,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QACrE,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QAE/D,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE;aACxD,IAAI,CAAC,GAAG,EAAE;YACT,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,MAAM,EAAE;gBACtC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE;oBAC7C,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,eAAe,CAAC;oBAC7B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,UAAU,CAAC,GAAG,EAAE,CACd,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;aAC1C;QAEH,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YACf,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE;gBAC5C,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,CAAC,aAAa,CAAC;gBAC3B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IAEP,CAAC;;kGA5EU,yBAAyB,0MAW1B,wEAAe;yGAXd,yBAAyB;kEAOzB,iEAAkB;;;;;QCrB/B,wEAAqB;QAAA,8EAAmB;QAAA,4DAAK;QAC7C;QAAA,0EACI;QAAA;QAAA,yEACI;QAAA;QAAA,yEACI;QAAA;QAAA,gEACA;QAAA;QAAA,qFACQ;QAAA;QAAA,6EAAW;QAAA,sEAAU;QAAA,4DAAY;QACjC;QAAA,0EAAoG;QACxG;QAAA,4DAAiB;QACzB;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,iEACA;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,uEAAW;QAAA,4DAAY;QAClC;QAAA,0EAAqG;QACzG;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,uEAAW;QAAA,4DAAY;QAClC;QAAA,uEACA;QAAA;QACA;QAAA,sFAAyC;QAC7C;QAAA,4DAAiB;QACjB;QAAA,4DAAM;QAEN;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,uEAAW;QAAA,4DAAY;QAClC;QAAA,uEACA;QAAA;QACA;QAAA,uFAAyC;QAC7C;QAAA,4DAAiB;QACjB;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,0EAAc;QAAA,4DAAY;QACrC;QAAA,2EAAwG;QAC5G;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,mEAAO;QAAA,4DAAY;QAC9B;QAAA,2EAAiG;QACrG;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QAClB;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,+EAEE;QAAA;QAAA,8EAAyD;QAAA,iEAAK;QAAA,4DAAS;QACzE;QAAA,4DAAU;QAEd;QAAA,4DAAM;QACN;QAAA,4DAAO;;;;QArDJ,0DAA2B;QAA3B,wFAA2B;QAIc,0DAA8B;QAA9B,sGAA8B;QAO9B,2DAA8B;QAA9B,sGAA8B;QAM9B,2DAA8B;QAA9B,sGAA8B;QAEG,0DAAwB;QAAxB,8EAAwB;QAOrD,2DAA8B;QAA9B,sGAA8B;QAEG,0DAAwB;QAAxB,8EAAwB;QAMpD,2DAA8B;QAA9B,sGAA8B;QAM/B,2DAA8B;QAA9B,sGAA8B;;6FD3BzE,yBAAyB;cALrC,uDAAS;eAAC;gBACT,QAAQ,EAAE,wBAAwB;gBAClC,WAAW,EAAE,qCAAqC;gBAClD,SAAS,EAAE,CAAC,qCAAqC,CAAC;aACnD;;sBAYI,oDAAM;uBAAC,wEAAe;kVAJM,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;;;;;;;;;;;;;;AEpB/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AAOf;AAKmB;;;;;;;;;;;;;ICPzD,6EACI;IADyC,qUAAkB;IAC3D;IAAA,2EAAU;IAAA,qEAAU;IAAA,4DAAW;IAAA,yEACnC;IAAA,4DAAS;;;IAmCL,wEACE;IAAA;IAAA,yEAAwC;IAAA,kEAAO;IAAA,4DAAM;IACrD;IAAA,yEAAsB;IAAA,uDAAgC;IAAA,4DAAM;IAClE;IAAA,qEAAe;;;IADa,0DAAgC;IAAhC,kJAAgC;;;IA8B9D,yEACE;IAAA;IAAA,yEACE;IAAA;IAAA,yEAAwC;IAAA,2EAAgB;IAAA,4DAAM;IAC9D;IAAA,yEAAsB;IAAA,uDAA0D;;IAAA,4DAAM;IACxF;IAAA,4DAAM;IACN;IAAA,4DAAM;;;IAFkB,0DAA0D;IAA1D,qOAA0D;;ADxDnF,MAAM,iCAAiC;IAe5C,YACU,OAAe,EAChB,MAAiB,EACjB,EAAe,EACd,QAAwB,EACxB,mBAAwC,EACxC,YAAiC;QALjC,YAAO,GAAP,OAAO,CAAQ;QAChB,WAAM,GAAN,MAAM,CAAW;QACjB,OAAE,GAAF,EAAE,CAAa;QACd,aAAQ,GAAR,QAAQ,CAAgB;QACxB,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,iBAAY,GAAZ,YAAY,CAAqB;QAlB3C,qBAAgB,GAAG,2DAAW,CAAC,oBAAoB,CAAC;QAOpD,aAAQ,GAAG,KAAK,CAAC;QACjB,aAAQ,GAAG,IAAI,CAAC;QAEhB,gBAAW,GAAG,KAAK,CAAC;IAShB,CAAC;IAEL,QAAQ;QACN,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC;QACnD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACtC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;QACH,IAAI,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,IAAI,IAAI,EAAE;YACrE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAC5B,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAC1D,CAAC,QAAQ,CAAC;YACX,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;YAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAC1B,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAC1D,CAAC,UAAU,CAAC;SACd;QAED,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YAE7E,IAAI,CAAC,aAAa,GAAG,IAAI,yEAAa,EAAE,CAAC;YACzC,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;YACzB,MAAM,kBAAkB,GAAG;gBACzB,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ;gBACrC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,YAAY;gBAC7C,iBAAiB,EAAE,IAAI,CAAC,aAAa,CAAC,iBAAiB;gBACvD,uBAAuB,EAAE,IAAI,CAAC,aAAa,CAAC,uBAAuB;gBACnE,sBAAsB,EAAE,IAAI,CAAC,aAAa,CAAC,sBAAsB;gBACjE,4BAA4B,EAAE,IAAI,CAAC,aAAa,CAAC,4BAA4B;aAC9E,CAAC;YACF,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;YAChE,IAAI,IAAI,CAAC,aAAa,CAAC,YAAY,KAAK,CAAC,EAAC;gBACxC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;aACzB;QAEH,CAAC,CAAC,CAAC;IAEL,CAAC;IAED,MAAM;QACJ,IAAI,IAAI,CAAC,QAAQ,KAAK,yCAAyC,EAAE;YAC/D,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,wCAAwC,CAAC,CAAC,CAAC;SACnE;aACI,IAAG,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,IAAI,CAAC,WAAW,KAAK,uBAAuB,EAAC;YACrF,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,iCAAiC,CAAC,CAAC;SAC3D;aACI;YACH,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC;SAChD;IAEH,CAAC;;kHAxEU,iCAAiC;iHAAjC,iCAAiC;QCtB9C,8EACI;QAAA;QAAA,yEACE;QAAA;QAAA,yEACE;QAAA,8FACF;QAAA,4DAAM;QACN;QAAA,yEACE;QAAA;QAAA,mIACI;QAER;QAAA,4DAAM;QACN;QAAA,4DAAM;QAAC;QAAA,iEACP;QAAA;QAAA,qEAAuB;QACvB;QAAA,oFACI;QAAA;QAAA,0EACA;QAAA;QAAA,0EACA;QAAA;QAAA,0EACE;QAAA;QAAA,0EAAwC;QAAA,wEAAY;QAAA,4DAAM;QAC1D;QAAA,0EAAsB;QAAA,wDAAiC;QAAA,4DAAM;QACnE;QAAA,4DAAM;QACJ;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,0EACE;QAAA;QAAA,0EAAwC;QAAA,0EAAc;QAAA,4DAAM;QAC5D;QAAA,0EAAsB;QAAA,wDAAmC;QAAA,4DAAM;QACjE;QAAA,4DAAM;QACN;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,0EACE;QAAA;QAAA,0EAAwC;QAAA,uEAAW;QAAA,4DAAM;QACzD;QAAA,0EAAsB;QAAA,wDAAgC;QAAA,4DAAM;QAC5D;QAAA,4DAAM;QACR;QAAA,4DAAM;QAEZ;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,0EACE;QAAA;QAAA,0EACE;QAAA;QAAA,0EAAwC;QAAA,2EAAe;QAAA,4DAAM;QAC7D;QAAA,0EAAsB;QAAA,wDAAoC;QAAA,4DAAM;QACpE;QAAA,4DAAM;QACJ;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,0EACE;QAAA;QAAA,iJACE;QAGJ;QAAA,4DAAM;QACN;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,0EACE;QAAA;QAAA,0EAAwC;QAAA,sEAAU;QAAA,4DAAM;QACxD;QAAA,0EAAsB;QAAA,wDAA+B;QAAA,4DAAM;QAC/D;QAAA,4DAAM;QACJ;QAAA,4DAAM;QACN;QAYR;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,0EACA;QAAA;QAAA,0EACE;QAAA;QAAA,2EAAwC;QAAA,4EAAe;QAAA,4DAAM;QAC7D;QAAA,2EAAsB;QAAA,yDAAoD;;QAAA,4DAAM;QACpF;QAAA,4DAAM;QACJ;QAAA,4DAAM;QACN;QAAA,kIACE;QAKF;QAAA,2EACE;QAAA;QAAA,2EACE;QAAA;QAAA,2EAAwC;QAAA,yEAAY;QAAA,4DAAM;QAC1D;QAAA,2EAAsB;QAAA,yDAAmD;;QAAA,4DAAM;QACjF;QAAA,4DAAM;QACN;QAAA,4DAAM;QACV;QAAA,4DAAM;QAEN;QAAA,4DAAmB;QACrB;QAAA,4DAAW;;QApFuB,0DAAgB;QAAhB,8EAAgB;QAWpB,2DAAiC;QAAjC,6IAAiC;QAMjC,2DAAmC;QAAnC,8IAAmC;QAMjC,2DAAgC;QAAhC,4IAAgC;QASlC,2DAAoC;QAApC,+IAAoC;QAK1C,0DAAmB;QAAnB,iFAAmB;QAST,2DAA+B;QAA/B,2IAA+B;QAoBrC,2DAAoD;QAApD,6NAAoD;QAG5C,0DAAsC;QAAtC,sIAAsC;QAS5C,2DAAmD;QAAnD,2NAAmD;;6FD9DtE,iCAAiC;cAL7C,uDAAS;eAAC;gBACT,QAAQ,EAAE,iCAAiC;gBAC3C,WAAW,EAAE,8CAA8C;gBAC3D,SAAS,EAAE,CAAC,8CAA8C,CAAC;aAC5D;;;;;;;;;;;;;;AErBD;AAAA;AAAO,MAAM,aAAa;CASzB;;;;;;;;;;;;;ACTD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,MAAM,YAAY;CAsBxB;AAEM,MAAM,kBAAkB;CAG9B;AACM,MAAM,iBAAiB;CAI7B;AACM,MAAM,yBAAyB;CAUrC;AAEM,MAAM,mBAAmB;CAK/B;;;;;;;;;;;;;AClDD;AAAA;AAAO,MAAM,sBAAsB;CAalC;;;;;;;;;;;;;ACbD;AAAA;AAAO,MAAM,wBAAwB;CAiBpC;;;;;;;;;;;;;ACjBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,MAAM,aAAa;CA+CzB;AAEM,MAAM,QAAQ;CAIpB;AAEM,MAAM,yBAAyB;CAGrC;AAEM,MAAM,iBAAiB;CAI7B;AAEM,MAAM,eAAe;CAkB3B;AAGM,MAAM,aAAa;CAQzB;AAEM,MAAM,sBAAsB;CAU9B;;;;;;;;;;;;;AC3GL;AAAA;AAAO,MAAM,SAAS;CAenB;;;;;;;;;;;;;ACdH;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AACgB;AACA;;;AAKpD,MAAM,cAAc;IAGzB,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAD1C,eAAU,GAAG,uDAAe,CAAC,gBAAgB,CAAC;QAE5C,IAAI,CAAC,qBAAqB,GAAG,wEAAW,CAAC,oBAAoB,CAAC;IAChE,CAAC;IAED,kBAAkB,CAAC,MAAM,EAAE,MAAM;QAC/B,IAAI,IAAI,GAAG,IAAI,CAAC,qBAAqB,GAAE,IAAI,CAAC,UAAU,CAAC,kBAAkB,GAAC,MAAM,GAAC,GAAG,GAAC,MAAM,CAAC;QAC5F,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,aAAa,CAAC,MAAM;QAClB,IAAI,IAAI,GAAG,IAAI,CAAC,qBAAqB,GAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QACrE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC;IAC3C,CAAC;IAED,6BAA6B,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU;QACnD,IAAI,IAAI,GAAG,IAAI,CAAC,qBAAqB,GAAE,IAAI,CAAC,UAAU,CAAC,6BAA6B,GAAG,IAAI,GAAG,GAAG,GAAG,KAAK,GAAG,GAAG,GAAG,UAAU,CAAC;QAC7H,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;IAClC,CAAC;IAED,kBAAkB,CAAC,MAAM;QACvB,IAAI,IAAI,GAAG,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC;QAC3E,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC;IAC3C,CAAC;IAED,cAAc,CAAC,MAAM;QACnB,IAAI,IAAI,GAAG,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;QACvE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC;IAC3C,CAAC;IACD,6BAA6B,CAAC,WAAW;QACvC,IAAI,IAAI,GAAI,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,UAAU,CAAC,6BAA6B,GAAC,WAAW,CAAC;QACnG,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;IAClC,CAAC;IAED,gBAAgB,CAAC,MAAM;QACrB,IAAI,IAAI,GAAG,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC;QACzE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC;IAC3C,CAAC;IAED,mBAAmB,CAAC,WAAmB;QACrC,IAAI,IAAI,GAAI,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,UAAU,CAAC,mBAAmB,GAAC,WAAW,CAAC;QACzF,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;IAClC,CAAC;;4EA5CU,cAAc;iGAAd,cAAc,WAAd,cAAc,mBAFb,MAAM;6FAEP,cAAc;cAH1B,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACPD;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AAEgB;AACQ;;;AAM5D,MAAM,yBAAyB;IAKpC,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QACxC,IAAI,CAAC,UAAU,GAAG,qEAAW,CAAC,SAAS,CAAC;QACxC,IAAI,CAAC,SAAS,GAAG,uDAAe,CAAC,kBAAkB,CAAC;QACpD,IAAI,CAAC,qBAAqB,GAAG,qEAAW,CAAC,oBAAoB,CAAC;IAC/D,CAAC;IACM,wBAAwB,CAAC,wBAAgD;QAC/E,IAAI,IAAI,GAAE,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC;QAC/E,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,wBAAwB,CAAC,CAAC;IAC9D,CAAC;IAEM,wBAAwB,CAAC,kBAA0B;QACxD,IAAI,IAAI,GAAG,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,SAAS,CAAC,wBAAwB,GAAG,kBAAkB,CAAC;QACrG,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAC,EAAC,YAAY,EAAE,MAAM,EAAC,CAAC,CAAC;IAC1D,CAAC;IAEM,eAAe,CAAC,KAAY,EAAE,MAAa,EAAE,YAAoB;QACtE,IAAI,GAAG,GAAC,IAAI,CAAC,qBAAqB,GAAC,IAAI,CAAC,SAAS,CAAC,eAAe,GAAC,KAAK,GAAC,UAAU,GAAC,MAAM,GAAC,gBAAgB,GAAC,YAAY,CAAC;QACxH,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;;kGAvBY,yBAAyB;4GAAzB,yBAAyB,WAAzB,yBAAyB,mBAFxB,MAAM;6FAEP,yBAAyB;cAHrC,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACRD;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AAEgB;AACQ;;;AAM5D,MAAM,2BAA2B;IAOtC,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAC1C,4CAA4C;QAC1C,IAAI,CAAC,UAAU,GAAG,uDAAe,CAAC,oBAAoB,CAAC;QACvD,IAAI,CAAC,qBAAqB,GAAG,qEAAW,CAAC,oBAAoB,CAAC;IAC/D,CAAC;IAEM,iBAAiB,CAAC,gBAAwB,EAAE,UAAkB;QACpE,IAAI,IAAI,GAAG,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,gBAAgB,GAAI,cAAc,GAAC,UAAU,CAAC;QAC1H,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAEM,0BAA0B,CAAC,wBAAkD;QAClF,IAAI,IAAI,GAAE,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,UAAU,CAAC,0BAA0B,CAAC;QAClF,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,wBAAwB,CAAC,CAAC;IAC9D,CAAC;IAEM,qBAAqB,CAAC,eAAuB;QAClD,IAAI,IAAI,GAAG,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,GAAG,eAAe,CAAC;QAChG,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAC,EAAC,YAAY,EAAE,MAAM,EAAC,CAAC,CAAC;IAC1D,CAAC;IAEM,iBAAiB,CAAC,KAAY,EAAC,MAAa,EAAE,WAAmB;QACtE,IAAI,GAAG,GAAC,IAAI,CAAC,qBAAqB,GAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAC,KAAK,GAAC,UAAU,GAAC,MAAM,GAAC,eAAe,GAAC,WAAW,CAAC;QACzH,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;;sGA/BY,2BAA2B;8GAA3B,2BAA2B,WAA3B,2BAA2B,mBAF1B,MAAM;6FAEP,2BAA2B;cAHvC,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACRD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AAEgB;AACQ;AAC5B;;;AAUhC,MAAM,gBAAgB;IAqB3B,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAlB1C,eAAU,GAAG,qEAAW,CAAC,SAAS,CAAC;QAC3B,qCAAgC,GAAG,qEAAW,CAAC,iBAAiB,CAAC;QACzE,yBAAoB,GAAE,qEAAW,CAAC,oBAAoB;QACtD,wBAAmB,GAAG,qEAAW,CAAC,gBAAgB,CAAC;QACnD,cAAS,GAAG,uDAAe,CAAC,aAAa,CAAC;QAC1C,cAAS,GAAG,uDAAe,CAAC,QAAQ,CAAC;QACrC,aAAQ,GAAG,uDAAe,CAAC,QAAQ,CAAC;QACpC,eAAU,GAAG,uDAAe,CAAC,qBAAqB,CAAC;QAEnD,gBAAW,GAAG,IAAI,oDAAe,CAAS,CAAC,CAAC,CAAC;QAC7C,mBAAc,GAAG,IAAI,oDAAe,CAAS,IAAI,CAAC,CAAC;QACnD,aAAQ,GAAG,IAAI,oDAAe,CAAU,KAAK,CAAC,CAAC;QAC/C,eAAU,GAAG,IAAI,oDAAe,CAAS,CAAC,CAAC,CAAC;QAC5C,cAAS,GAAG,IAAI,oDAAe,CAAS,CAAC,CAAC,CAAC;QAC3C,kBAAa,GAAG,IAAI,oDAAe,CAAkB,EAAE,CAAC,CAAC;IAIX,CAAC;IAMxC,YAAY;QACjB,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;IAC5C,CAAC;IAEM,aAAa;QAElB,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;IACxC,CAAC;IAEM,cAAc;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;IACzC,CAAC;IACD,0EAA0E;IAC1E,iBAAiB;IACjB,iCAAiC;IACjC,+BAA+B;IAC/B,iBAAiB;IACjB,uBAAuB;IACvB,cAAc;IACd,sBAAsB;IACtB,iBAAiB;IACjB,uDAAuD;IACvD,IAAI;IAEG,aAAa;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;IAC/E,CAAC;IAIM,YAAY,CAAC,UAAkB;QACpC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACnC,CAAC;IAEM,eAAe,CAAC,UAAkB;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,GAAG,UAAU,CAAC;QACpF,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChC,0BAA0B;QAC1B,+FAA+F;IAEjG,CAAC;IACM,qBAAqB,CAAC,SAAiB;QAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,GAAG,SAAS,CAAC;QAChF,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IACD,gCAAgC,CAAC,YAAoB;QACnD,MAAM,GAAG,GAAG,IAAI,CAAC,gCAAgC,GAAC,IAAI,CAAC,SAAS,CAAC,gCAAgC,GAAC,YAAY,CAAC;QAC/G,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,6BAA6B,CAAC,UAAkB,EAAE,YAAY;QAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,gCAAgC,GAAC,IAAI,CAAC,SAAS,CAAC,6BAA6B,GAAG,gBAAgB,GAAE,YAAY,CAAC;QACjI,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IACA,gBAAgB,CAAC,QAAgB,EAAE,KAAa,EAAE,SAAkB;QAClE,MAAM,GAAG,GACR,IAAI,CAAC,oBAAoB;YACzB,IAAI,CAAC,SAAS,CAAC,iBAAiB;YAChC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG;YACjC,oBAAoB;YACnB,KAAK,GAAG,GAAG;YACZ,mBAAmB;YAClB,SAAS,CAAC;QACb,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAkB,GAAG,CAAC,CAAC;IACnD,CAAC;IAEC,MAAM,CAAC,YAA0B;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,gCAAgC,GAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;QACxE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAC,YAAY,CAAC,CAAC;IAChD,CAAC;IAED,uBAAuB,CAAC,YAA0B;QAChD,MAAM,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAC,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC;QAC9E,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAC,YAAY,EAAE,EAAC,YAAY,EAAE,MAAM,EAAC,CAAC,CAAC;IACxE,CAAC;IAED,kBAAkB,CAAC,UAAkB;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAE,IAAI,CAAC,UAAU,CAAC,+BAA+B,GAAG,cAAc,GAAE,UAAU,CAAC;QACpH,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IACD,wCAAwC,CAAC,UAAkB,EAAC,YAAqB;QAC/E,MAAM,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAE,IAAI,CAAC,UAAU,CAAC,wCAAwC,GAAG,cAAc,GAAE,UAAU,GAAG,gBAAgB,GAAC,YAAY,CAAC;QAC7J,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IACD,aAAa,CAAC,UAAU;QACtB,MAAM,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAE;QACtE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAC,UAAU,CAAC,CAAC;IAC9C,CAAC;IAED,uBAAuB,CAAC,UAAU;QAChC,MAAM,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,mBAAmB,GAAG,GAAG,GAAG,UAAU,CAAC;QAC/F,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,uBAAuB,CAAC,KAAK,EAAE,KAAK;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAE,IAAI,CAAC,UAAU,CAAC,uBAAuB,GAAG,GAAG,GAAG,KAAK,GAAE,GAAG,GAAE,KAAK,CAAC;QACxG,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAEH,iBAAiB,CAAC,cAAc;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;QAC5D,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAC,cAAc,CAAC,CAAC;IAElD,CAAC;;gFAlIU,gBAAgB;mGAAhB,gBAAgB,WAAhB,gBAAgB,mBAFf,MAAM;6FAEP,gBAAgB;cAH5B,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACbD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AAEgB;AACQ;AACC;;;;AAM7D,MAAM,mBAAmB;IAW9B,YAAoB,UAAsB,EAAU,MAAc;QAA9C,eAAU,GAAV,UAAU,CAAY;QAAU,WAAM,GAAN,MAAM,CAAQ;QAVlE,eAAU,GAAG,qEAAW,CAAC,SAAS,CAAC;QACrC,0BAAqB,GAAE,qEAAW,CAAC,oBAAoB;QACrD,cAAS,GAAG,uDAAe,CAAC,QAAQ,CAAC;QACrC,eAAU,GAAG,uDAAe,CAAC,qBAAqB,CAAC;QACnD,aAAQ,GAAG,uDAAe,CAAC,aAAa,CAAC;QACzC,6BAAwB,GAAG,uDAAe,CAAC,cAAc;QACzD,aAAQ,GAAC,EAAE;QACX,gBAAW,GAAW,SAAS,CAAC;QAChC,eAAU,GAAW,SAAS,CAAC;QAEwC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;QACvG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YAC9B,IAAI,KAAK,YAAY,6DAAa,EAAE;gBAClC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC;gBACnC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC;aAC7B;YAAA,CAAC;QACJ,CAAC,CAAC,CAAC;IAAC,CAAC;IAEP,wBAAwB;QACtB,IAAI,IAAI,GAAG,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC;QACjF,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,sBAAsB;QACpB,IAAI,IAAI,GAAG,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC;QAC9E,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,wBAAwB,CAAC,QAAgB,EAAC,MAAe;QACvD,IAAI,IAAI,GAAG,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,UAAU,CAAC,wBAAwB,GAAG,YAAY,GAAG,QAAQ,GAAG,UAAU,GAAE,MAAM,CAAC;QAChI,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAGM,kBAAkB,CAAC,SAAS;QACjC,IAAI,IAAI,GAAG,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC;QAC3E,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAC,SAAS,CAAC,CAAC;IAC9C,CAAC;IAEM,0BAA0B,CAAC,KAAK;QACrC,IAAI,IAAI,GAAG,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,wBAAwB,CAAC,eAAe,GAAC,cAAc,GAAC,KAAK;QAC1G,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAEM,oBAAoB,CAAC,QAAQ;QAClC,IAAI,CAAC,QAAQ,GAAG,QAAQ;IAC1B,CAAC;IACM,oBAAoB;QACzB,OAAO,IAAI,CAAC,QAAQ;IACtB,CAAC;IACM,cAAc;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IACM,sBAAsB,CAAC,UAAU;QACtC,IAAI,IAAI,GAAG,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC7D,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAC,UAAU,CAAC,CAAC;IAC/C,CAAC;;sFAzDU,mBAAmB;sGAAnB,mBAAmB,WAAnB,mBAAmB,mBAFlB,MAAM;6FAEP,mBAAmB;cAH/B,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACTD;AAAA;AAAA;AAAA;AAA6B;AAE7B,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,EAAE;IACnC,IAAI,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACxC,IAAI,SAAS,GAAG,IAAI,IAAI,gCAAgC,CAAC;IACzD,IAAI,QAAQ,GAAG,GAAG,SAAS,IAAI,QAAQ,EAAE,CAAC;IAC1C,OAAO;QACL,SAAS;QACT,QAAQ;KACT,CAAC;AACJ,CAAC,CAAC;AACK,MAAM,SAAS;IACpB,MAAM,CAAC,kBAAkB,CAAC,OAAe,EAAE,IAAa;QACtD,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,EAAE,GAAG,0CAAU,CAAC,aAAa,CAAC,cAAc,EAAwB;YACtE,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;QACH,8CAAc,CAAC,EAAE,EAAE,GAAG,QAAQ,OAAO,CAAC,CAAC;IACzC,CAAC;IACD,MAAM,CAAC,kBAAkB,CAAC,GAAU,EAAE,IAAa;QACjD,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAEhD,IAAI,EAAE,GAAG,0CAAU,CAAC,QAAQ,EAAE,CAAC;QAC/B,IAAI,EAAE,GAAG,0CAAU,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACvC,0CAAU,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;QAChD,8CAAc,CAAC,EAAE,EAAE,GAAG,QAAQ,OAAO,CAAC,CAAC;IACzC,CAAC;CACF;;;;;;;;;;;;;AC3BD;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AACwB;AACR;;;AAKpD,MAAM,iBAAiB;IAK5B,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAF1C,eAAU,GAAG,uDAAe,CAAC,WAAW,CAAC;QAGvC,IAAI,CAAC,qBAAqB,GAAG,qEAAW,CAAC,oBAAoB,CAAC;IAC/D,CAAC;IAEM,gBAAgB,CAAC,wBAAwB;QAC/C,IAAI,IAAI,GAAG,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QACnE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAC,wBAAwB,CAAC,CAAC;IAC7D,CAAC;IAEM,eAAe,CAAC,UAAU,EAAE,yBAAyB;QAC1D,IAAI,IAAI,GAAG,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,GAAG,UAAU,GAAG,6BAA6B,GAAC,yBAAyB,CAAC;QAC/I,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAEM,qBAAqB,CAAC,aAAa;QAExC,IAAI,IAAI,GAAG,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC;QAC9E,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAC,aAAa,CAAC,CAAC;IAClD,CAAC;IAEM,UAAU,CAAC,iBAAiB;QACjC,IAAI,IAAI,GAAG,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QACnE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAC,iBAAiB,CAAC,CAAC;IACtD,CAAC;IAEM,0BAA0B,CAAC,KAAK;QACrC,IAAI,IAAI,GAAG,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,UAAU,CAAC,0BAA0B,GAAG,KAAK,CAAC;QAC3F,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;;kFAjCU,iBAAiB;oGAAjB,iBAAiB,WAAjB,iBAAiB,mBAFhB,MAAM;6FAEP,iBAAiB;cAH7B,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACND;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AACiB;AAEO;AACR;;;AAOpD,MAAM,mBAAmB;IAU9B,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAN1C,eAAU,GAAG,uDAAe,CAAC,WAAW,CAAC;QACzC,aAAQ,GAAG,uDAAe,CAAC,sBAAsB,CAAC;QAE1C,oBAAe,GAAG,IAAI,4CAAO,EAAO,CAAC;QAI3C,IAAI,CAAC,kBAAkB,GAAG,qEAAW,CAAC,iBAAiB,CAAC;QACxD,IAAI,CAAC,qBAAqB,GAAG,qEAAW,CAAC,oBAAoB,CAAC;IAC/D,CAAC;IAEK,oBAAoB;QACzB,IAAI,IAAI,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAC5D,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAgB,IAAI,CAAC,CAAC;IAClD,CAAC;IAEM,aAAa,CAAC,KAAa;QAChC,IAAI,IAAI,GAAG,IAAI,CAAC,qBAAqB,GAAG,oBAAoB,GAAG,KAAK,CAAC;QACrE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAY,IAAI,CAAC,CAAC;IAC9C,CAAC;IAEM,iBAAiB,CAAC,uBAAuB;QAC9C,IAAI,IAAI,GAAG,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAC/D,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAC,uBAAuB,CAAC,CAAC;IAC5D,CAAC;IAEM,kBAAkB,CAAC,KAAc;QACtC,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CACvB,cAAc,CAAC,+BAA+B,CAC/C,CAAC,QAAQ,CAAC;QACX,IAAI,YAAY,GAAG,qEAAW,CAAC,oBAAoB,CAAC,QAAQ,CAAC,EAAC,CAAC,qEAAW,CAAC,oBAAoB,CAAC,QAAQ,CAAC,EAAC,CAAC,KAAK,CAAC;QACjH,IAAI,IAAI,GAAG,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,GAAG,GAAG,GAAG,KAAK,GAAG,gBAAgB,GAAC,YAAY,CAAC;QACzH,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAEM,mBAAmB;QACxB,IAAI,IAAI,GAAG,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAC/D,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAEM,iBAAiB,CAAC,qBAAqB;QAC5C,IAAI,IAAI,GAAG,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAC/D,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAC,qBAAqB,CAAC,CAAC;IAC1D,CAAC;IACM,kBAAkB,CAAC,YAAY;QACpC,IAAI,IAAI,GAAG,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QACzE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAC,YAAY,CAAC,CAAC;IACjD,CAAC;IAEM,gBAAgB,CAAC,UAAU;QAChC,IAAI,IAAI,GAAG,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,GAAG,GAAG,GAAG,UAAU,CAAC;QAC1F,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,kBAAkB,CAAC,iBAAsB;QACvC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC/C,CAAC;IACD,kBAAkB;QAChB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAEM,uBAAuB,CAAC,UAAU;QACvC,IAAI,IAAI,GAAG,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,UAAU,CAAC,uBAAuB,GAAG,UAAU,CAAC;QAC7F,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;;sFApEU,mBAAmB;sGAAnB,mBAAmB,WAAnB,mBAAmB,mBAFlB,MAAM;6FAEP,mBAAmB;cAH/B,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACXD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAyC;AACc;AACuC;AACqB;AACN;AACQ;AACjB;AACoB;AACS;AAC5C;AACO;AAC0C;AAChD;AACG;AACqB;AACnB;AAC6B;AAC9C;AAC6B;AACN;;;AAEjG,MAAM,MAAM,GAAW;IAErB;QACE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,0GAAsB,EAAE,QAAQ,EAAE;YACrD,EAAE,IAAI,EAAE,oBAAoB,EAAE,SAAS,EAAE,+HAA6B,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,uBAAuB,EAAE,EAAE;YAClH,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,yHAA2B,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,EAAE;YACtG,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,mGAAoB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,EAAC;YACvF,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,sGAAqB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,0BAA0B,EAAE,EAAC;YAClG,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,sGAAqB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,6BAA6B,EAAE,EAAC;YACxG,EAAE,IAAI,EAAE,kBAAkB,EAAE,SAAS,EAAE,mJAAkC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAC;YACtH,EAAE,IAAI,EAAE,mBAAmB,EAAE,SAAS,EAAE,yGAAsB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,EAAE;YACzG,EAAE,IAAI,EAAE,2BAA2B,EAAE,SAAS,EAAE,yGAAsB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,iCAAiC,EAAE,EAAE;YAC5H,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,iGAAmB,EAAE,IAAI,EAAE,EAAC,KAAK,EAAE,6BAA6B,EAAC,EAAC;YACvG,EAAE,IAAI,EAAE,kBAAkB,EAAE,SAAS,EAAE,wGAAqB,EAAE,IAAI,EAAE,EAAC,KAAK,EAAE,oBAAoB,EAAC,EAAC;YAClG,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,oIAA8B,EAAE,IAAI,EAAE,EAAC,KAAK,EAAE,yBAAyB,EAAC,EAAC;YAC9G,EAAE,IAAI,EAAE,0BAA0B,EAAE,SAAS,EAAE,6IAAiC,EAAE,IAAI,EAAE,EAAC,KAAK,EAAE,4BAA4B,EAAC,EAAC;YAC9H,EAAE,IAAI,EAAE,uBAAuB,EAAE,SAAS,EAAE,oIAA8B,EAAE,IAAI,EAAE,EAAC,KAAK,EAAE,yBAAyB,EAAC,EAAC;YACrH,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,gHAAwB,EAAE,IAAI,EAAE,EAAC,KAAK,EAAE,yBAAyB,EAAC,EAAC;YAChG,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,uFAAgB,EAAE,IAAI,EAAE,EAAC,KAAK,EAAE,wBAAwB,EAAC,EAAC;YAChG,EAAE,IAAI,EAAE,mBAAmB,EAAE,SAAS,EAAE,oHAAyB,EAAE,IAAI,EAAE,EAAC,KAAK,EAAE,4BAA4B,EAAC,EAAC;YAC/G,EAAE,IAAI,EAAE,qBAAqB,EAAE,SAAS,EAAE,8GAAuB,EAAC;YAClE,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,iIAA6B,EAAE,IAAI,EAAE,EAAC,KAAK,EAAE,KAAK,EAAC,EAAC;YACzF,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,iIAA6B,EAAE,IAAI,EAAE,EAAC,KAAK,EAAE,SAAS,EAAC,EAAC;YAC1F,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,iIAA6B,EAAE,IAAI,EAAE,EAAC,KAAK,EAAE,aAAa,EAAC,EAAC;YAC9F,EAAE,IAAI,EAAE,mBAAmB,EAAE,SAAS,EAAC,2HAA0B,EAAE,IAAI,EAAE,EAAC,KAAK,EAAE,sBAAsB,EAAC,EAAC;YACzG,EAAE,IAAI,EAAE,uBAAuB,EAAE,SAAS,EAAC,qIAA8B,EAAE,IAAI,EAAE,EAAC,KAAK,EAAE,gCAAgC,EAAC,EAAC;SAC5H;KACF;CACF,CAAC;AAMK,MAAM,0BAA0B;;yGAA1B,0BAA0B;8KAA1B,0BAA0B,kBAH5B,CAAC,4DAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAC9B,4DAAY;mIAEX,0BAA0B,uFAF3B,4DAAY;6FAEX,0BAA0B;cAJtC,sDAAQ;eAAC;gBACR,OAAO,EAAE,CAAC,4DAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACxC,OAAO,EAAE,CAAC,4DAAY,CAAC;aACxB;;;;;;;;;;;;;;ACtDD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAyC;AACM;AACmB;AACqC;AACY;AACN;AACf;AACpB;AACc;AACzC;AAC0C;AAC4B;AACG;AACV;AACe;AACS;AACL;AACvB;AACuB;AACrC;AACuB;AACf;AACf;AACC;AACK;AACc;AAC0B;AACtE;AAC8B;AAC6B;AACiB;AAC/D;AAC6B;AACN;AACqC;;AAe/H,MAAM,mBAAmB;;kGAAnB,mBAAmB;gKAAnB,mBAAmB,kBAXrB;YACP,4DAAY;YACZ,wFAA0B;YAC1B,kHAAwB;YACxB,0DAAW;YACX,kEAAmB;YACnB,2FAA2B;YAC3B,4DAAgB;YAChB,2EAAmB;SACpB;mIAEU,mBAAmB,mBAZf,+HAA6B,EAAE,yHAA2B,EAAE,0GAAsB,EAAE,sGAAqB,EAAE,kIAA6B,EAAE,qIAA8B,EAAE,2HAA0B,EAAE,0IAA+B,EAAE,mJAAkC,EAAE,8IAAiC,EAAE,uHAA0B,EAAE,8IAAiC,EAAE,yGAAsB,EAAE,gIAA6B,EAAE,iHAAwB,EAAE,kGAAmB,EAAE,mGAAoB,EAAE,wGAAqB,EAAE,sHAAyB,EAAE,gJAAiC,EAAE,wGAAqB,EAAE,qIAA8B,EAAE,sJAAmC,EAAE,uFAAgB,EAAE,oHAAyB,EAAE,8GAAuB,EAAE,mJAAkC,aAE/wB,4DAAY;QACZ,wFAA0B;QAC1B,kHAAwB;QACxB,0DAAW;QACX,kEAAmB;QACnB,2FAA2B;QAC3B,4DAAgB;QAChB,2EAAmB;6FAGV,mBAAmB;cAb/B,sDAAQ;eAAC;gBACR,YAAY,EAAE,CAAC,+HAA6B,EAAE,yHAA2B,EAAE,0GAAsB,EAAE,sGAAqB,EAAE,kIAA6B,EAAE,qIAA8B,EAAE,2HAA0B,EAAE,0IAA+B,EAAE,mJAAkC,EAAE,8IAAiC,EAAE,uHAA0B,EAAE,8IAAiC,EAAE,yGAAsB,EAAE,gIAA6B,EAAE,iHAAwB,EAAE,kGAAmB,EAAE,mGAAoB,EAAE,wGAAqB,EAAE,sHAAyB,EAAE,gJAAiC,EAAE,wGAAqB,EAAE,qIAA8B,EAAE,sJAAmC,EAAE,uFAAgB,EAAE,oHAAyB,EAAE,8GAAuB,EAAE,mJAAkC,CAAC;gBAClxB,OAAO,EAAE;oBACP,4DAAY;oBACZ,wFAA0B;oBAC1B,kHAAwB;oBACxB,0DAAW;oBACX,kEAAmB;oBACnB,2FAA2B;oBAC3B,4DAAgB;oBAChB,2EAAmB;iBACpB;aACF;;;;;;;;;;;;;;AChDD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAoE;AACiC;AAER;AAC5D;AAEa;AAOE;AAGwE;;;;;;;;;;;;;;;;;;;;;;;;ICHpG,6EAEI;IADmC,sUAAsB;IACzD;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC9B;IAAA,4DAAS;;;IAEL,iFACS;IAAA,kFAAuB;IAAA,4DAAa;;;IAC7C,iFACA;IAAA,uDACA;IAAA,4DAAa;;;IAFkD,6EAAgB;IAC/E,0DACA;IADA,8IACA;;;IAEJ,4EACI;IAAA,8IACJ;IAAA,4DAAY;;;IACZ,4EACI;IAAA,2HACJ;IAAA,4DAAY;;;IA0BJ,iFACI;IAAA,uDACJ;IAAA,4DAAa;;;IAFoC,oFAAuB;IACpE,0DACJ;IADI,2JACJ;;;IAGJ,4EACI;IAAA;IAAA,mEAA2D;IAC3D;IAAA,2EAAyB;IAAA,8EAAmB;IAAA,4DAAO;IACvD;IAAA,4DAAY;;;;IAWZ,4FAEI;IADA,6WAA4B,eAAe,KAAE;IAC7C;IAAA,+EAAkC;IAAA,gEAAK;IAAA,4DAAW;IACtD;IAAA,4DAAwB;;;IAGxB,4EACI;IAAA;IAAA,2EAA0B;IAAA,gFAAoB;IAAA,4DAAO;IACzD;IAAA,4DAAY;;;IAuBpC,+EAEI;IAAA;IAAA,qEACI;IAAA;IAAA,oEAAG;IAAA,uDAAmC;IAAA,4DAAI;IAAC,gFAAoB;IAAA,4DAAK;IACxE;IAAA,0EACI;IAAA;IAAA,6EACI;IAAA;IACA;IAAA,0EACI;IAAA;IAAA,sEACI;IAAA;IAAA,4EAAmB;IAAA,wEAAY;IAAA,4DAAO;IAC1C;IAAA,4DAAK;IACL;IAAA,sEACI;IAAA;IAAA,4EAAmB;IAAA,0EAAc;IAAA,4DAAO;IAC5C;IAAA,4DAAK;IACL;IAAA,sEACI;IAAA;IAAA,4EAAmB;IAAA,2EAAe;IAAA,4DAAO;IAC7C;IAAA,4DAAK;IACL;IAAA,sEACI;IAAA;IAAA,4EAAmB;IAAA,oEAAQ;IAAA,4DAAO;IACtC;IAAA,4DAAK;IACL;IAAA,sEACI;IAAA;IAAA,4EAAmB;IAAA,oEAAQ;IAAA,4DAAO;IACtC;IAAA,4DAAK;IACL;IAAA,sEACI;IAAA;IAAA,4EAAmB;IAAA,mEAAO;IAAA,4DAAO;IACrC;IAAA,4DAAK;IACT;IAAA,4DAAK;IACL;IAAA,yEACI;IAAA;IAAA,0EACI;IAAA;IAAA,0EAAsB;IAAA,wDAA6B;IAAA,4DAAK;IACxD;IAAA,0EAAsB;IAAA,wDAAuD;;IAAA,4DAAK;IAClF;IAAA,0EAAsB;IAAA,wDAA0C;IAAA,4DAAK;IACrE;IAAA,0EACI;IAAA;IAAA,wEACJ;IAAA;IAAA,4DAAK;IACL;IAAA,0EACI;IAAA;IAAA,wEACJ;IAAA;IAAA,4DAAK;IACL;IAAA,0EACI;IAAA;IAAA,wEACJ;IAAA;IAAA,4DAAK;IACT;IAAA,4DAAK;IACT;IAAA,4DAAQ;IACZ;IAAA,4DAAQ;IACZ;IAAA,4DAAM;IACV;IAAA,4DAAW;;;IA1CA,0DAAmC;IAAnC,iHAAmC;IA0BJ,2DAA6B;IAA7B,kGAA6B;IAC7B,0DAAuD;IAAvD,wLAAuD;IACvD,0DAA0C;IAA1C,+GAA0C;IAElB,0DAAsC;IAAtC,uGAAsC;IAGtC,0DAAwC;IAAxC,yGAAwC;IAGxC,0DAAuC;IAAvC,wGAAuC;;AD1HlG,MAAM,0BAA0B;IAwBrC,YAAoB,YAAyB,EACnC,QAAkC,EAClC,QAAwB,EACxB,QAAqB,EACrB,MAAiB,EACjB,MAAc,EACd,sBAAyD,EACzD,qBAAoD;QAP1C,iBAAY,GAAZ,YAAY,CAAa;QACnC,aAAQ,GAAR,QAAQ,CAA0B;QAClC,aAAQ,GAAR,QAAQ,CAAgB;QACxB,aAAQ,GAAR,QAAQ,CAAa;QACrB,WAAM,GAAN,MAAM,CAAW;QACjB,WAAM,GAAN,MAAM,CAAQ;QACd,2BAAsB,GAAtB,sBAAsB,CAAmC;QACzD,0BAAqB,GAArB,qBAAqB,CAA+B;QA9B9D,eAAU,GAAG,IAAI,CAAC;QAElB,qBAAgB,GAAG,2DAAW,CAAC,oBAAoB,CAAC;QAMpD,iBAAY,GAAG,EAAE,CAAC;QAClB,mBAAc,GAAG,EAAE,CAAC;QACpB,8BAAyB,GAAY,KAAK,CAAC;QAI3C,iBAAY,GAAY,KAAK,CAAC;QAG9B,sBAAiB,GAAG,KAAK,CAAC;QAC1B,iBAAY,GAAa,EAAE,CAAC;QAaxB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC;QAC9D,IAAI,CAAC,eAAe,GAAG,IAAI,mGAAmB,EAAE,CAAC;IACnD,CAAC;IAEH,QAAQ;QAEN,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,UAAU,CAAC;QAC3F,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACvF,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,cAAc,GAAG,IAAI,wDAAS,CAAC;YAClC,SAAS,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAC,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACtD,UAAU,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAC,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACvD,aAAa,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAC,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC1D,UAAU,EAAG,IAAI,0DAAW,CAAC,KAAK,CAAC;SACpC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;QAC1B,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAC9D,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CACxC,CAAC;IACJ,CAAC;IAEO,gBAAgB;QACtB,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YACtG,IAAI,CAAC,cAAc,GAAG,EAAE;YACxB,uDAAuD;YACvD,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;gBAChB,GAAG,CAAC,OAAO,CAAC,CAAC,OAAY,EAAE,EAAE;oBACzB,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;wBACrE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;gBACxF,CAAC,CAAC,CAAC;aACN;QACL,CAAC,EAAC,CAAC,KAAU,EAAE,EAAE;YACf,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,2BAA2B,EAAE,GAAG,EAAE;gBACjD,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAC,CAAC,aAAa,CAAC;gBAC1B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACT,CAAC,CACE,CAAC;IACL,CAAC;IAED,uBAAuB,CAAC,UAAkB;QACxC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;YACzB,UAAU,EAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,KAAK;SACzD,CAAC,CAAC;QACH,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;QACvC,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YACxE,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;gBAChB,GAAG,CAAC,OAAO,CAAC,CAAC,OAAY,EAAE,EAAE;oBAC3B,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE;wBAC1E,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;qBACnF;oBAAA,CAAC;gBACF,CAAC,CAAC,CAAC;gBACH,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,EAAE;oBACjC,IAAI,CAAC,eAAe,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;oBAC5D,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;oBAC/E,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;oBAC9B,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;iBACxE;;oBACI,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;aACrC;QACL,CAAC,EACG,CAAC,KAAU,EAAE,EAAE;YACX,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,sCAAsC,EAAE,GAAG,EAAE;gBAC5D,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAC,CAAC,aAAa,CAAC;gBAC1B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACT,CAAC,CACJ,CAAC;IACF,CAAC;IAEC,oBAAoB,CAAC,UAAkB,EAAE,SAAiB;QACxD,IAAI,CAAC,QAAQ,CAAC,uCAAuC,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,IAAyB,EAAE,EAAE;YACnH,IAAI,IAAI,IAAI,IAAI,EAAE;gBAChB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;gBAC9B,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBAC5C,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;gBACtC,IAAI,CAAC,eAAe,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;gBACxD,IAAG,IAAI,CAAC,UAAU,IAAI,IAAI,EAAC;oBACzB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;iBAC3D;aACF;;gBAEC,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,UAAU,CAAC,KAAK;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3B,IAAG,CAAC,KAAK,CAAC,OAAO,EAAC;YAChB,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACzB;aACI;YACH,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,IAAI,CAAC;SACxC;IACJ,CAAC;IAEA,gBAAgB;QACd,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6HAAsB,EAAC;YACxD,YAAY,EAAE,IAAI;YAClB,WAAW,EAAE,IAAI;YACjB,IAAI,EAAC;gBACH,OAAO,EAAE,sDAAsD;aAChE;SACF,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAG,MAAM,EAAC;gBACR,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC5D,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,KAAK,CAAC;aACxC;iBACG;gBAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;aAAC;QAClE,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,MAAM;QACX,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QAC5B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;QACvC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,eAAe,GAAG,IAAI,mGAAmB,EAAE,CAAC;IACnD,CAAC;IAEM,yBAAyB,CAAC,eAAoC;QACnE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC;QAC7E,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,eAAe,CAAC,UAAU,CAAC;QAC7D,IAAI,CAAC,eAAe,CAAC,aAAa,GAAG,mCAAM,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAChG,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE;YACpF,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE;gBAC7B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,iDAAiD,EAAE,EAAE,EAAE;oBACxE,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,IAAI,CAAC,MAAM,EAAE,CAAC;aACf;iBACI,IAAI,IAAI,CAAC,YAAY,IAAI,KAAK,EAAE;gBACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,qCAAqC,EAAE,EAAE,EAAE;oBAC5D,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,IAAI,CAAC,MAAM,EAAE,CAAC;aACf;QACH,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;YACX,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,sCAAsC,EAAE,GAAG,EAAE;gBAC5D,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAC,CAAC,aAAa,CAAC;gBAC1B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aAC1B,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,EAAE,CAAC;QAClB,CAAC,CAAC;IACF,CAAC;IAED,SAAS,CAAC,IAAS;QACjB,OAAO,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9C,CAAC;IAED,UAAU;QACR,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,UAAU,CAAC,GAAQ,EAAE,SAAS;QAC5B,IAAG,SAAS,IAAE,eAAe,EAAC;YAC5B,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,KAAK,EAAE,CAAC;SAClD;IACH,CAAC;IAGO,WAAW,CAAC,KAAK;QACvB,IAAI,WAAW,CAAC;QAChB,gBAAgB;QAChB,IAAI,KAAK,IAAI,KAAK,CAAC,UAAU,EAAE;YAC7B,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC;YAC/B,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAC3C,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,CAC1E,CAAC;SACH;aAAM;YACL,OAAO,IAAI,CAAC,cAAc,CAAC;SAC5B;IACH,CAAC;;oGA7NU,0BAA0B;0GAA1B,0BAA0B;kEAuB1B,iEAAkB;;;;;;QC7C/B,8EACI;QAAA;QAAA,mFACI;QAAA;QAAA,0EACI;QAAA;QAAA,yEAEI;QAAA;QAAA,yEACJ;QAAA;QAAA,qFACQ;QAAA;QAAA,6EAAW;QAAA,0EAAc;QAAA,2EAA2B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QACxE;QAAA,0EAKA;QAAA;QAAA,8HAEI;QAEJ;QAAA,2FACI;QADiE,+KAAkB,sEAA8D,IAAC;QAClJ;QAAA,uIACS;QACT;QAAA,uIACA;;QAEJ;QAAA,4DAAmB;QACnB;QAAA,qIACI;QAEJ;QAAA,qIACI;QAEJ;QAAA,4DAAiB;QACjB;QAgBJ;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,sFACI;QAAA;QAAA,6EAAW;QAAA,sGACP;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QACtC;QAAA,4DAAY;QACZ;QAAA,kFAEI;QAFgG,uNAAuC,mHACpH,uGAA0F,IAD0B;QAEvI;QAAA,uIACI;QAER;QAAA,4DAAa;QAEb;QAAA,qIACI;QAGR;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QAEN;QAAA,0EACI;QAAA;QAAA,sFACI;QAAA;QAAA,6EAAW;QAAA,yGACP;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QACtC;QAAA,4DAAY;QACZ;QAAA,6EAEA;QAFyF,sNAA2C,yOAC9F,WAAa,IADiF;QAApI,4DAEA;QAAA;QAAA,6JAEI;QAEJ;QAAA,wFAAwE;QACxE;QAAA,uFAAyC;QACzC;QAAA,qIACI;QAER;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QAEN;QAAA,0EACI;QAAA;QAAA,oFAA0E;QAA9B,iKAAU,sBAAkB,IAAC;QAAC,oEAAQ;QAAA,4DAAe;QACrG;QAAA,4DAAM;QAEN;QAAA,2EACI;QAAA;QAAA,8EACI;QADK,mJAAS,YAAQ,IAAC;QACvB;QAAA,4EAAU;QAAA,2FACV;QAAA,4DAAW;QAAA,uFACf;QAAA,4DAAS;QACT;QAAA,8EACI;QADkB,mJAAS,uDAA+C,IAAC;QAC3E,4FAAM;QAAA,4DAAS;QACvB;QAAA,4DAAM;QAEV;QAAA,4DAAM;QACV;QAAA,4DAAO;QAEX;QAAA,4DAAmB;QACvB;QAAA,4DAAW;QAEX;QAAA,uIAEI;QA4CJ;;;;QArJc,0DAA4B;QAA5B,yFAA4B;QAId,0DAA+B;QAA/B,uGAA+B;QAEV,0DAA6B;QAA7B,0FAA6B;QAK3B,0DAAuC;QAAvC,qGAAuC;QAI3B,0DAAyB;QAAzB,sFAAyB;QACpD,0DAAoG;QAApG,sKAAoG;QAEpG,0DAAkD;QAAlD,+JAAkD;QAIvD,0DAAiE;QAAjE,+HAAiE;QAGjE,0DAA8E;QAA9E,gJAA8E;QAsBzE,0DAA+B;QAA/B,uGAA+B;QAI0B,0DAA8B;QAA9B,2FAA8B;QAEnF,0DAAoC;QAApC,qFAAoC;QAKzC,0DAAsE;QAAtE,sIAAsE;QAQrE,0DAA+B;QAA/B,uGAA+B;QAIK,0DAAwB;QAAxB,+EAAwB;QAEvC,0DAA0C;QAA1C,wGAA0C;QAI1C,0DAAc;QAAd,qEAAc;QAEpC,0DAAwE;QAAxE,0IAAwE;QAyBjE,2DAAiC;QAAjC,+FAAiC;;6FDnF9D,0BAA0B;cALtC,uDAAS;eAAC;gBACT,QAAQ,EAAE,wBAAwB;gBAClC,WAAW,EAAE,qCAAqC;gBAClD,SAAS,EAAE,CAAC,qCAAqC,CAAC;aACnD;swBAwBgC,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;;;;;;;;;;;;;;AE7C/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AAC5B;AAOa;AACsD;AAGpD;;;;;;;;;;;;;;;;;;;;;;;;;ICAxB,6EAEA;IAFoE,8UAA4B,YAAY,KAAE;IAE9G;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC1B;IAAA,4DAAS;;;IACT,+EAA0D;IAAA,8EAAmB;IAAA,4DAAW;;;IAExF,iFAEI;IAAA,gHAAuB;IAAA,4DAAa;;;IACxC,iFAAqF;IAAA,0EAAe;IAAA,4DAAa;;;IACjH,iFAEI;IAAA,uDACJ;IAAA,4DAAa;;;IAFT,2EAAc;IACd,0DACJ;IADI,gJACJ;;;IAEA,4EACI;IAAA;IAAA,mEAA2D;IAC3D,oIACJ;IAAA,4DAAY;;;IACZ,4EACI;IAAA;IAAA,mEAA2D;IAC3D,qJACJ;IAAA,4DAAY;;;IAcR,iFACI;IAAA,uDAAc;IAAA,4DAAa;;;IADe,iFAAoB;IAC9D,0DAAc;IAAd,0HAAc;;;IAEtB,4EAEI;IAAA;IAAA,mEAA2D;IAC3D;IAAA,2EAAyB;IAAA,4EAAiB;IAAA,4DAAO;IACrD;IAAA,4DAAY;;;IAGpB,yEACI;IAAA;IAAA,qFACI;IAAA;IACA;IAAA,uEACJ;IAAA;IAAA,4DAAiB;IACrB;IAAA,4DAAM;;;IAJc,0DAA+B;IAA/B,2GAA+B;;;;IAa3C,4FAEI;IADA,4WAA4B,aAAa,KAAE;IAC3C;IAAA,+EAAkC;IAAA,gEAAK;IAAA,4DAAW;IACtD;IAAA,4DAAwB;;;IAGxB,4EAEI;IAAA;IAAA,mEAA2D;IAC3D;IAAA,2EAAyB;IAAA,oFAAyB;IAAA,4DAAO;IAC7D;IAAA,4DAAY;;;IAWR,iFACI;IAAA,uDAAc;IAAA,4DAAa;;;IADwB,iFAAoB;IACvE,0DAAc;IAAd,0HAAc;;;IAGtB,4EAEI;IAAA;IAAA,mEAA2D;IAC3D;IAAA,2EAAyB;IAAA,iFAAsB;IAAA,4DAAO;IAC1D;IAAA,4DAAY;;ADhF7B,MAAM,yBAAyB;IAgClC,YAAoB,QAAgC,EACzC,iBAAoC,EACnC,WAAwB,EACxB,6BAAgE,EAChE,QAAwB,EACxB,QAAqB,EACrB,OAA0B,EAC1B,gBAA4C;QAPpC,aAAQ,GAAR,QAAQ,CAAwB;QACzC,sBAAiB,GAAjB,iBAAiB,CAAmB;QACnC,gBAAW,GAAX,WAAW,CAAa;QACxB,kCAA6B,GAA7B,6BAA6B,CAAmC;QAChE,aAAQ,GAAR,QAAQ,CAAgB;QACxB,aAAQ,GAAR,QAAQ,CAAa;QACrB,YAAO,GAAP,OAAO,CAAmB;QAC1B,qBAAgB,GAAhB,gBAAgB,CAA4B;QAtCxD,qBAAgB,GAAG,2DAAW,CAAC,oBAAoB,CAAC;QAEpD,yBAAoB,GAAG,KAAK,CAAC;QAM7B,iBAAY,GAAG,EAAE,CAAC;QAClB,0BAAqB,GAAG,EAAE,CAAC;QAC3B,oBAAe,GAAE,EAAE,CAAC;QACpB,mBAAc,GAAG,EAAE,CAAC;QACpB,2BAAsB,GAAU,EAAE,CAAC;QACnC,mBAAc,GAAsB,EAAE,CAAC;QAEvC,wBAAmB,GAAG,IAAI,CAAC;QAG3B,sBAAiB,GAAG,KAAK,CAAC;QAC1B,sBAAiB,GAAG,KAAK,CAAC;QAC1B,wBAAmB,GAAG,KAAK,CAAC;QAC5B,sBAAiB,GAAS,EAAE,CAAC;QAC7B,qBAAgB,GAAY,KAAK,CAAC;QAoS1B,eAAU,GAAG,UAAU,QAAa,EAAE,MAAW;YACrD,IAAI,CAAC,QAAQ,IAAI,IAAI,IAAI,QAAQ,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI,SAAS,CAAC,EAAE;gBACxF,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;oBAC5C,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;oBACrB,OAAO,IAAI;iBACd;qBACI;oBAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,6DAA6D,EAAE,GAAG,EAAE;wBACjE,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACvB,oJAAoJ;oBACpJ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;oBACpB,OAAO,KAAK;iBACf;aAEJ;QACL,CAAC;QAEH,UAAK,GAAG;YACN,uBAAuB;YACrB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;YAChC,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;YAClC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;YACzB,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;YACzD,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YAC9D,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;YAChC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;YAChC,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,8BAA8B;QAChC,CAAC;QArTK,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC;IAClE,CAAC;IAGD,QAAQ;QACN,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,UAAU,CAAC;QAC3F,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAEvF,IAAI,CAAC,iBAAiB,GAAE,KAAK,CAAC;QAE9B,IAAI,CAAC,WAAW,GAAG,IAAI,wDAAS,CAAC;YAC/B,UAAU,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACxD,SAAS,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACvD,WAAW,EAAE,IAAI,0DAAW,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACvD,UAAU,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAG;YACnC,SAAS,EAAC,IAAI,0DAAW,CAAC,KAAK,CAAC;YAChC,aAAa,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAG;YACtC,gBAAgB,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAG;YACzC,mBAAmB,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAG;YAC5C,gBAAgB,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAG;YACzC,iBAAiB,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAG;YAC1C,kBAAkB,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAG;YAC3C,WAAW,EAAG,IAAI,0DAAW,CAAC,IAAI,CAAG;SAEvC,CAAC,CAAC;QACF,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IACD,SAAS,CAAC,IAAS;QACjB,OAAO,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9C,CAAC;IAEO,YAAY;QAChB,IAAI,CAAC,6BAA6B,CAAC,sBAAsB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YAC/G,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,IAAI,CAAC,cAAc,GAAG,EAAE;YAC1B,0DAA0D;YACxD,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACnD,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;gBAChB,GAAG,CAAC,OAAO,CAAC,CAAC,OAAY,EAAE,EAAE;oBACzB,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;wBACrE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;gBACxF,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CACxD,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CACvD,CAAC;aACL;YACD,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;gBAChB,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC;gBACjC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAY,EAAE,EAAE;oBACzB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC9C,CAAC,CAAC,CAAC;aACN;QAEL,CAAC,EACG,CAAC,KAAU,EAAE,EAAE;YACX,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,2BAA2B,EAAE,GAAG,EAAE;gBACjD,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAC,CAAC,aAAa,CAAC;gBAC1B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACL,IAAI,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC,CACJ,CAAC;IACN,CAAC;IAEA,cAAc,CAAC,UAAU;QACxB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAClB,IAAI,CAAC,iBAAiB,CAAC,8BAA8B,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,eAAsB,EAAE,EAAE;YACrG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YACjB,IAAI,CAAC,cAAc,GAAG,eAAe,CAAC;YACtC,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;YAC1B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACtD,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,OAAY,EAAE,EAAE;gBACzC,IAAI,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;oBAC7H,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;YAC5F,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;QAC7C,CAAC,EACG,CAAC,KAAU,EAAE,EAAE;YACb,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YACjB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,2BAA2B,EAAE,GAAG,EAAE;gBACjD,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAC,CAAC,aAAa,CAAC;gBAC1B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACL,IAAI,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC,CAAC,CAAC;IACX,CAAC;IAED,uBAAuB,CAAC,UAAe;QACnC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAC7D,IAAI,IAAI,GAAG,IAAI,CAAC,cAAc;QAC9B,IAAI,UAAU,IAAI,IAAI,IAAI,UAAU,IAAI,SAAS,EAAE;YAC/C,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACxD,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACtD,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACnD,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;gBACzB,IAAI,CAAC,OAAO,CAAC,CAAC,OAAwB,EAAE,EAAE;oBACtC,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE;wBACxE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;qBACnF;oBAAA,CAAC;oBACF,IAAI,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE;wBAC/C,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;wBACjC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;wBACnE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;wBACvE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;qBAChE;yBACI;wBACH,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;wBACnE,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;qBACjC;gBACL,CAAC,CAAC,CAAC;gBACH,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;oBAClB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;oBAC5E,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;oBAC9B,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;oBACvC,IAAI,CAAC,uBAAuB,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;iBACvF;qBACI;oBACH,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;oBAC/B,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;oBAC5E,IAAI,CAAC,uBAAuB,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;iBACrF;aACJ;SACJ;IACL,CAAC;IAEA,qBAAqB,CAAC,UAAkB;QACrC,IAAI,UAAU,IAAI,IAAI,IAAI,UAAU,IAAI,SAAS,EAAE;YACjD,IAAI,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC;YAC7B,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC5B,IAAI,iBAAiB,GAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC;gBACrE,IAAI,4BAA4B,GAAC,EAAE,CAAC;gBACnC,IAAI,CAAC,OAAO,CAAC,IAAI,GAAE;oBAEd,IAAG,IAAI,CAAC,SAAS,IAAG,iBAAiB,EACrC;wBACI,4BAA4B,GAAC,IAAI,CAAC,aAAa,CAAC;qBACnD;gBAEL,CAAC,CAAC,CAAC;gBACD,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,4BAA4B,CAAC,CAAC;aACrF;YACD,IAAI,IAAI,CAAC,mBAAmB,IAAI,KAAK,EAAE;gBACnC,IAAI,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,OAAwB,EAAE,EAAE;oBACzE,OAAO,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,gBAAgB,CAAC;gBACxE,CAAC,CAAC,CAAC;gBACH,IAAI,cAAc,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC;oBAC3C,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;aACtG;SACJ;QACD,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC7D,IAAI,CAAC,SAAS,EAAE,CAAC;IACrB,CAAC;IAEO,OAAO,CAAC,eAAgC;QAC5C,IAAI,eAAe,IAAI,IAAI,IAAI,eAAe,IAAI,SAAS,EAAE;YAC3D,IAAI,eAAe,CAAC,SAAS,IAAI,IAAI;gBAAE,eAAe,CAAC,SAAS,GAAG,KAAK,CAAC;YACvE,eAAe,CAAC,mBAAmB,GAAG,CAAC,CAAC;YACxC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,6BAA6B,CAAC,yBAAyB,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE;gBAClG,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE;oBAC3B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,mDAAmD,EAAE,GAAG,EAAE;wBACzE,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACL,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;oBAClC,IAAI,CAAC,KAAK,EAAE,CAAC;iBAChB;qBACI,IAAG,IAAI,CAAC,OAAO,IAAE,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,yDAAyD,CAAC,EAC5G;oBACI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,2DAA2D,EAAE,GAAG,EAAE;wBACjF,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAC,CAAC,aAAa,CAAC;wBAC1B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBAC1B,CAAC,CAAC;oBACH,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;iBACvB;qBACG;oBACF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,2CAA2C,EAAE,GAAG,EAAE;wBACjE,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAC,CAAC,aAAa,CAAC;wBAC1B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBAC1B,CAAC,CAAC;oBACH,IAAI,CAAC,KAAK,EAAE,CAAC;oBACb,OAAO;iBACV;YACL,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;gBACT,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,2CAA2C,EAAE,GAAG,EAAE;oBACjE,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAC,CAAC,aAAa,CAAC;oBAC1B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBAC1B,CAAC,CAAC;gBACH,IAAI,CAAC,KAAK,EAAE,CAAC;YACjB,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAEO,uBAAuB,CAAC,UAAkB,EAAE,SAAiB,EAAE,QAAgB;QACnF,IAAI,UAAU,IAAI,IAAI,IAAI,UAAU,IAAI,SAAS,EAAE;YAC/C,IAAI,CAAC,QAAQ,CAAC,6BAA6B,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;gBAClG,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;gBAChC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;oBAChB,GAAG,CAAC,OAAO,CAAC,CAAC,OAAY,EAAE,EAAE;wBAC3B,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;oBAC5F,CAAC,CAAC,CAAC;oBAIH,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;oBAChC,IAAG,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,EACtE;wBACA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;qBAChC;yBACI,IAAG,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,qBAAqB,CAAC,MAAM,IAAI,CAAC,EAC5E;wBACI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;wBACzE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;qBACvF;iBACJ;YAEH,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;YAEV,CAAC,CAAC,CAAC;SACN;aACI;YACF,wDAAwD;YACvD,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC7D,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SAClE;IACL,CAAC;IAED,UAAU,CAAC,GAAQ,EAAE,OAAO;QACxB,IAAI,OAAO,IAAI,aAAa,EAAC;YAC3B,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,CAAC;SAC7C;QACD,IAAG,OAAO,IAAI,YAAY,EAAC;YACzB,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;SACjC;IAEL,CAAC;IAGO,QAAQ;QACZ,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QACrE,wCAAwC;QACxC,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACnC,IAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,KAAG,CAAC,EAAC;YAC7B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;SACtD;aACI,IAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,KAAG,CAAC,EAAC;YAChC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;SACtD;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC;IAC7B,CAAC;IAwCH,MAAM;QACJ,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,IAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAC;YACtB,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC5D,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;gBAC9B,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,OAAY,EAAE,EAAE;oBAC5C,IAAI,OAAO,CAAC,KAAK,IAAI,IAAI,EAAE;wBACvB,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;qBACpC;gBACL,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;gBACtE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;aACjD;iBACI;gBACD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;aACjD;SACJ;;YACI,OAAO;IAEhB,CAAC;IACO,eAAe,CAAC,KAAK;QACzB,IAAI,WAAW,CAAC;QAChB,IAAI,KAAK,EAAE;YACP,IAAG,OAAO,KAAK,KAAK,QAAQ,EAAC;gBACzB,WAAW,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;aACrC;iBACG;gBACA,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;aAC3C;YAEH,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAC3C,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CACjD,CAAC;SACH;aAAM;YACL,OAAO,IAAI,CAAC,cAAc,CAAC;SAC5B;IACH,CAAC;IACD,gBAAgB,CAAC,eAAoB;QACjC,eAAe,CAAC,UAAU,GAAG,eAAe,CAAC,UAAU,CAAC,KAAK,CAAC;QAC9D,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;QACjC,IAAI,eAAe,CAAC,WAAW,IAAI,EAAE,IAAI,eAAe,CAAC,WAAW,IAAI,SAAS;YAAE,OAAO;QAC1F,IAAI,CAAC,eAAe,CAAC,gBAAgB,IAAI,IAAI,IAAI,eAAe,CAAC,gBAAgB,IAAI,SAAS,CAAC,IAAI,IAAI,CAAC,mBAAmB,IAAI,KAAK;YAAE,OAAO;QAC7I,eAAe,CAAC,aAAa,GAAG,mCAAM,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC3F,eAAe,CAAC,WAAW,GAAG,mCAAM,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACvF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,aAAa,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC;QAC/F,eAAe,CAAC,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACzI,IAAI,IAAI,CAAC,WAAW,EAAE;YACnB,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;SAChC;QACD,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAC/B,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAClE,CAAC;IAED,qBAAqB,CAAC,SAAS;QAC3B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC,CAAC;IACvF,CAAC;IACD,aAAa,CAAC,oBAAoB;QAC9B,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,EAAE;YAC3D,OAAO,IAAI,CAAC,gBAAgB,CAAC;SAChC;aACI;YACD,QAAQ,oBAAoB,EAAE;gBAC1B,KAAK,CAAC;oBACF,OAAO,IAAI,CAAC;gBAChB,KAAK,CAAC;oBACF,OAAO,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;aAE9C;SACJ;IACL,CAAC;IACD,SAAS;QACL,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,EAAE;YAC3D,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;SAChC;IACL,CAAC;IACD,mBAAmB,CAAC,UAAU;QAC1B,IAAI,CAAC,gBAAgB,CAAC,mCAAmC,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YACzF,IAAG,GAAG,EAAC;gBACL,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC,SAAS,CAAC;aACvC;QACL,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;;kGArbU,yBAAyB;yGAAzB,yBAAyB;kEA6BvB,iEAAkB;;;;;;QClDjC,8EACI;QAAA;QAAA,mFACI;QAAA;QAAA,0EACI;QAAA;QAAA,yEAEI;QAAA;QAAA,yEACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,kGACP;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QACtC;QAAA,4DAAY;QACZ;QAAA,0EAEA;QAAA;QAAA,6HAEA;QAEA;QAAA,iIAA0D;QAC1D;QAAA,4FACA;QADsE,oLAAkB,6CAAyC,IAAC;QAClI;QAAA,sIAEI;QACJ;QAAA,sIAAqF;QACrF;QAAA,sIAEI;;QAEJ;QAAA,4DAAmB;QACnB;QAAA,oIACI;QAGJ;QAAA,oIACI;QAGR;QAAA,4DAAiB;QAErB;QAAA,4DAAM;QAGN;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,iFAA4B;QAAA,yGACxB;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QACtC;QAAA,4DAAY;QACZ;QAAA,kFAGI;QADA,0KAAmB,iEAAyD,IAAC;QAC7E;QAAA,sIACI;QACR;QAAA,4DAAa;QACb;QAAA,oIAEI;QAGR;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,wHACI;QAMJ;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,sGACP;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QACtC;QAAA,4DAAY;QACZ;QAAA,6EAEA;QAF+D,gSAAS,WAAa,IAAC;QAAtF,4DAEA;QAAA;QAAA,4JAEI;QAEJ;QAAA,wFAAwE;QACxE;QAAA,uFAAyC;QACzC;QAAA,oIAEI;QAGR;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,kGACT;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QAC/B;QAAA,4DAAY;QAEZ;QAAA,kFAEC;QAAA;QAAA,sIACI;QACR;QAAA,4DAAa;QAEb;QAAA,sIAEI;QAIL;QAEH;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,qFAA4D;QAAA,mGAC5D;QAAA,4DAAe;QACnB;QAAA,4DAAM;QAEN;QAAA,4EACI;QAAA;QAAA,+EACI;QADI,mJAAS,WAAO,IAAC;QACrB;QAAA,6EAAU;QAAA,4FACV;QAAA,4DAAW;QAAA,wFACf;QAAA,4DAAS;QAET;QAAA,+EACI;QADkB,mJAAS,YAAQ,IAAC;QACpC,8FAAO;QAAA,4DAAS;QACxB;QAAA,4DAAM;QAEV;QAAA,4DAAM;QACV;QAAA,4DAAO;QACX;QAAA,4DAAmB;QACvB;QAAA,4DAAW;QACX;QAAA,oFAMI;QAAA;QAAA,0EAAmB;QAAA,wEAAW;QAAA,4DAAI;QACtC;QAAA,4DAAc;;;;QAnIA,0DAAyB;QAAzB,sFAAyB;QAIuB,0DAA+B;QAA/B,uGAA+B;QAIxC,0DAA6B;QAA7B,0FAA6B;QAE3B,0DAAoC;QAApC,kGAAoC;QAI/C,0DAAqC;QAArC,mGAAqC;QACvC,0DAAyB;QAAzB,sFAAyB;QAEvC,0DAA8F;QAA9F,gKAA8F;QAEtF,0DAA+D;QAA/D,6HAA+D;QAC/D,0DAA8C;QAA9C,4JAA8C;QAK/C,0DAA0D;QAA1D,wHAA0D;QAI1D,0DAA8D;QAA9D,4HAA8D;QAUnC,0DAA+B;QAA/B,uGAA+B;QAKjE,0DAA8B;QAA9B,2FAA8B;QAElB,0DAAiC;QAAjC,qFAAiC;QAI7C,0DAAyD;QAAzD,uHAAyD;QAM/C,0DAAa;QAAb,uEAAa;QAQW,0DAA+B;QAA/B,uGAA+B;QAKjE,0DAAwB;QAAxB,+EAAwB;QACK,0DAAqC;QAArC,mGAAqC;QAIrC,0DAAc;QAAd,qEAAc;QAG3C,0DAA2D;QAA3D,yHAA2D;QAOxB,0DAA+B;QAA/B,uGAA+B;QAKA,0DAAgC;QAAhC,6FAAgC;QAEtF,0DAA0C;QAA1C,8FAA0C;QAKtD,0DAAgE;QAAhE,8HAAgE;QA+B3F,2DAAoB;QAApB,6EAAoB;;6FD5GR,yBAAyB;cALrC,uDAAS;eAAC;gBACP,QAAQ,EAAE,uBAAuB;gBACjC,WAAW,EAAE,oCAAoC;gBACjD,SAAS,EAAE,CAAC,oCAAoC,CAAC;aACpD;uxBA8BkC,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;;;;;;;;;;;;;;AElDjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAoE;AACiC;AAE0B;AAC9F;AAI+E;AAGlE;AAE+B;AAGlB;AAIa;AAG0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICH1E,6EAEA;IAFuE,iVAA4B,YAAY,KAAE;IAEjH;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC1B;IAAA,4DAAS;;;IACT,+EAA6D;IAAA,8EAAmB;IAAA,4DAAW;;;IAE3F,iFAEI;IAAA,gHAAuB;IAAA,4DAAa;;;IACxC,iFAAwF;IAAA,2EAAgB;IAAA,4DAAa;;;IACrH,iFAEI;IAAA,uDACJ;IAAA,4DAAa;;;IAFT,2EAAc;IACd,0DACJ;IADI,gJACJ;;;IAEA,4EACI;IAAA;IAAA,mEAA2D;IAC3D,0IACJ;IAAA,4DAAY;;;IACZ,4EACI;IAAA;IAAA,mEAA2D;IAC3D,2JACJ;IAAA,4DAAY;;;;IAYZ,6EAEA;IAFsE,iVAA4B,WAAW,KAAE;IAE/G;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC1B;IAAA,4DAAS;;;IACT,+EAA4D;IAAA,8EAAmB;IAAA,4DAAW;;;IAE1F,iFAEI;IAAA,gHAAuB;IAAA,4DAAa;;;IACxC,iFAAuF;IAAA,yEAAc;IAAA,4DAAa;;;IAClH,iFAEI;IAAA,uDACJ;IAAA,4DAAa;;;IAFT,2EAAc;IACd,0DACJ;IADI,gJACJ;;;IAEA,4EACI;IAAA;IAAA,mEAA2D;IAC3D,mIACJ;IAAA,4DAAY;;;IACZ,4EACI;IAAA;IAAA,mEAA2D;IAC3D,oJACJ;IAAA,4DAAY;;;;IAWZ,6EAEA;IAFyE,kVAA4B,cAAc,KAAE;IAErH;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC1B;IAAA,4DAAS;;;IACT,+EAA+D;IAAA,8EAAmB;IAAA,4DAAW;;;IAE7F,iFAEI;IAAA,gHAAuB;IAAA,4DAAa;;;IACxC,iFAA0F;IAAA,sEAAW;IAAA,4DAAa;;;IAClH,iFAEI;IAAA,uDACJ;IAAA,4DAAa;;;IAFT,2EAAc;IACd,0DACJ;IADI,gJACJ;;;IAEA,4EACI;IAAA;IAAA,mEAA2D;IAC3D,gIACJ;IAAA,4DAAY;;;IACZ,4EACI;IAAA;IAAA,mEAA2D;IAC3D,iJACJ;IAAA,4DAAY;;;IAYR,iFAEI;IAAA,uDACJ;IAAA,4DAAa;;;;IAFkC,iFAAoB;IAA/D,uGAA0C;IAC1C,0DACJ;IADI,wJACJ;;;IAGJ,4EACI;IAAA;IAAA,mEAA2D;IAC3D;IAAA,2EAA0B;IAAA,wFAA4B;IAAA,4DAAO;IACjE;IAAA,4DAAY;;;IAGhB,4EAEA;IAAA;IAAA,wEAAwB;IAAA,uDAA8D;IAAA,4DAAI;IAC9F;IAAA,4DAAY;;;IADgB,0DAA8D;IAA9D,4IAA8D;;;;IAqBlF,4FAEI;IADA,gXAA4B,eAAe,KAAE;IAC7C;IAAA,+EAAkC;IAAA,gEAAK;IAAA,4DAAW;IACtD;IAAA,4DAAwB;;;IAGxB,4EACI;IAAA;IAAA,mEAA2D;IAC3D;IAAA,2EAA0B;IAAA,gFAAoB;IAAA,4DAAO;IACzD;IAAA,4DAAY;;;IAYR,iFACI;IAAA,uDACJ;IAAA,4DAAa;;;IAFoC,oFAAuB;IACpE,0DACJ;IADI,2JACJ;;;IAGJ,4EAEI;IAAA;IAAA,mEAA2D;IAC3D;IAAA,2EAA0B;IAAA,oFAAwB;IAAA,4DAAO;IAC7D;IAAA,4DAAY;;;IAWZ,4EACI;IAAA;IAAA,mEAA2D;IAC3D;IAAA,2EAA0B;IAAA,qFAAyB;IAAA,4DAAO;IACpD;IAAA,4DAAY;;;;IAR1B,oFAEI;IAAA;IAAA,4EAAW;IAAA,8EAAmB;IAAA,0EAA0B;IAAA,4DAAC;IAAA,4DAAO;IAChE;IAAA,4DAAY;IACZ;IAAA,4EACA;IADO,gVAAsB;IAA7B,4DACA;IAAA;IAAA,0JACI;IAGR;IAAA,4DAAiB;;;IATiE,2GAA+B;IAKlG,2DAAuG;IAAvG,uLAAuG;;;IAmBlH,4EAGI;IAAA;IAAA,2EAA0B;IAAA,gGAAoC;IAAA,4DAAO;IACzE;IAAA,4DAAY;;;;IAhBhB,oFACI;IAAA;IAAA,4EAAW;IAAA,0GACP;IAAA,0EAA0B;IAAA,4DAAC;IAAA,4DAAO;IACtC;IAAA,4DAAY;IACZ;IAAA,4EAEA;IAF6C,mWAAgC;IAA7E,4DAEA;IAAA;IAMA;IAAA,0JAGI;IAER;IAAA,4DAAiB;;;IAjBiE,2GAA+B;IAazG,2DAAoI;IAApI,mNAAoI;;;IAO5I,oFACI;IAAA;IAAA,4EAAW;IAAA,8GACX;IAAA,4DAAY;IACZ;IAAA,uEACJ;IAAA;IAAA,4DAAiB;;;IAJkE,2GAA+B;;;IAalH,gFACI;IAAA,mGAAc;IAAA,4DAAY;;;IAD4D,6FAA8B;;;IA8ChI,wEACI;IAAA;IAAA,yEACI;IAAA;IAAA,yEAAsB;IAAA,uDAAc;IAAA,4DAAK;IACzC;IAAA,yEAAsB;IAAA,uDAAwC;;IAAA,4DAAK;IACnE;IAAA,0EAAsB;IAAA,wDAA2B;IAAA,4DAAK;IACtD;IAAA,0EACI;IAAA;IAAA,wEACJ;IAAA;IAAA,4DAAK;IACL;IAAA,0EACI;IAAA;IAAA,wEACJ;IAAA;IAAA,4DAAK;IACL;IAAA,0EACI;IAAA;IAAA,wEACJ;IAAA;IAAA,4DAAK;IACT;IAAA,4DAAK;IACT;IAAA,4DAAQ;;;IAbsB,0DAAc;IAAd,+EAAc;IACd,0DAAwC;IAAxC,oKAAwC;IACxC,0DAA2B;IAA3B,4FAA2B;IAEH,0DAAuB;IAAvB,oFAAuB;IAGvB,0DAAyB;IAAzB,sFAAyB;IAGzB,0DAAwB;IAAxB,qFAAwB;;;IAvC1F,+EAEI;IAAA;IAAA,qEACI;IAAA;IAAA,oEAAG;IAAA,uDAAmC;IAAA,4DAAI;IAAC,gFAAoB;IAAA,4DAAK;IACxE;IAAA,0EACI;IAAA;IAAA,6EACI;IAAA;IACA;IAAA,0EACI;IAAA;IAAA,sEACI;IAAA;IAAA,4EAAmB;IAAA,wEAAY;IAAA,4DAAO;IAC1C;IAAA,4DAAK;IACL;IAAA,sEACI;IAAA;IAAA,4EAAmB;IAAA,0EAAc;IAAA,4DAAO;IAC5C;IAAA,4DAAK;IACL;IAAA,sEACI;IAAA;IAAA,4EAAmB;IAAA,2EAAe;IAAA,4DAAO;IAC7C;IAAA,4DAAK;IACL;IAAA,sEACI;IAAA;IAAA,4EAAmB;IAAA,oEAAQ;IAAA,4DAAO;IACtC;IAAA,4DAAK;IACL;IAAA,sEACI;IAAA;IAAA,4EAAmB;IAAA,oEAAQ;IAAA,4DAAO;IACtC;IAAA,4DAAK;IACL;IAAA,sEACI;IAAA;IAAA,4EAAmB;IAAA,mEAAO;IAAA,4DAAO;IACrC;IAAA,4DAAK;IACT;IAAA,4DAAK;IACL;IAAA,6IACI;IAeR;IAAA,4DAAQ;IACZ;IAAA,4DAAM;IACV;IAAA,4DAAW;;;IA1CA,0DAAmC;IAAnC,iHAAmC;IAwB3B,2DAAoC;IAApC,8FAAoC;;;IA2BvD,6FAA4H;;;IAA9D,gGAA+B;;ADvRtF,MAAM,4BAA4B;IA0DvC,oFAAoF;IACpF,sDAAsD;IACtD,YAAoB,YAAyB,EACnC,iBAAoC,EACpC,QAAoC,EACpC,mBAAwC,EACxC,cAA6B,EAC7B,QAAwB,EACxB,QAAqB,EACrB,MAAiB,EACjB,MAAc,EACd,OAA0B,EAC1B,sBAAyD,EACzD,qBAAoD,EACpD,8BAA6D;QAZnD,iBAAY,GAAZ,YAAY,CAAa;QACnC,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,aAAQ,GAAR,QAAQ,CAA4B;QACpC,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,mBAAc,GAAd,cAAc,CAAe;QAC7B,aAAQ,GAAR,QAAQ,CAAgB;QACxB,aAAQ,GAAR,QAAQ,CAAa;QACrB,WAAM,GAAN,MAAM,CAAW;QACjB,WAAM,GAAN,MAAM,CAAQ;QACd,YAAO,GAAP,OAAO,CAAmB;QAC1B,2BAAsB,GAAtB,sBAAsB,CAAmC;QACzD,0BAAqB,GAArB,qBAAqB,CAA+B;QACpD,mCAA8B,GAA9B,8BAA8B,CAA+B;QAnEvE,eAAU,GAAG,IAAI,CAAC;QAChB,qBAAgB,GAAG,2DAAW,CAAC,oBAAoB,CAAC;QAEtD,oBAAe,GAAmB,EAAE,CAAC;QACrC,sBAAiB,GAAmB,EAAE,CAAC;QACvC,iBAAY,GAAmB,EAAE,CAAC;QAClC,kBAAa,GAAmB,EAAE,CAAC;QACnC,gBAAW,GAAmB,EAAE,CAAC;QACjC,eAAU,GAAY,IAAI,CAAC;QAK3B,sBAAiB,GAA0B,EAAE,CAAC;QAE9C,iBAAY,GAAG,EAAE,CAAC;QAClB,sBAAiB,GAAG,EAAE,CAAC;QACvB,sBAAiB,GAAyB,EAAE,CAAC;QAE7C,kCAA6B,GAAW,CAAC,CAAC;QAC1C,8BAAyB,GAAY,KAAK,CAAC;QAK3C,mBAAc,GAAmB,EAAE,CAAC;QAIpC,iBAAY,GAAY,KAAK,CAAC;QAC9B,yBAAoB,GAAY,KAAK,CAAC;QAGtC,kBAAa,GAAY,KAAK,CAAC;QAC/B,yBAAoB,GAAY,KAAK,CAAC;QAKtC,sBAAiB,GAAa,KAAK,CAAC;QACpC,iBAAY,GAAa,EAAE,CAAC;QAC5B,oBAAe,GAAsB,IAAI,iGAAiB,EAAE,CAAC;QAE7D,uBAAkB,GAAW,KAAK;QAClC,mCAA8B,GAAS,KAAK;QAC5C,6BAAwB,GAAkB,EAAE,CAAC;QAC7C,sBAAiB,GAAK,EAAE;QAIxB,6BAAwB,GAAY,IAAI,CAAC;QA02BjC,eAAU,GAAG,UAAU,QAAa,EAAE,MAAW;YACvD,IAAI,CAAC,QAAQ,IAAI,IAAI,IAAI,QAAQ,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI,SAAS,CAAC,EAAE;gBAC1F,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;oBAC9C,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;oBAC1B,OAAO,IAAI;iBACZ;qBACI;oBACH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,+DAA+D,EAAE,EAAE,EAAE;wBACtF,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;oBACzB,OAAO,KAAK;iBACb;aAEF;QACH,CAAC;QAx2BC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC;QAC9D,IAAI,CAAC,eAAe,GAAG,IAAI,mGAAmB,EAAE,CAAC;IACnD,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,UAAU,CAAC;QACtF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACvF,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;YAC5C,cAAc,EAAE,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC7C,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC1C,YAAY,EAAE,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC3C,sBAAsB,EAAE,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACrD,qBAAqB,EAAE,CAAC,IAAI,CAAC;YAC7B,2BAA2B,EAAE,CAAC,EAAE,CAAC;YACjC,qBAAqB,EAAE,CAAC,IAAI,CAAC;YAC7B,uBAAuB,EAAE,CAAC,IAAI,CAAC;YAC/B,yBAAyB,EAAE,CAAC,IAAI,EAAE,yDAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACtD,oBAAoB,EAAE,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACnD,eAAe,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC5C,kBAAkB,EAAE,CAAC,EAAE,CAAC;YACxB,UAAU,EAAE,CAAC,IAAI,CAAC;YAClB,YAAY,EAAC,CAAC,IAAI,CAAC;YACnB,WAAW,EAAE,EAAE;YACf,WAAW,EAAC,CAAC,IAAI,CAAC;SACnB,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAChC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,QAAQ,EAAE,CAAC;IAElB,CAAC;IAEO,QAAQ;QACd,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnE,sCAAsC;QACtC,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACnC,IAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,KAAG,CAAC,EAAC;YAC7B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;SACtD;aACI,IAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,KAAG,CAAC,EAAC;YAChC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;SACtD;QAEH,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC;IAC7B,CAAC;IACO,cAAc;QACpB,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,CAAC,eAAsB,EAAE,EAAE;YAC5E,IAAI,CAAC,cAAc,GAAG,eAAe,CAAC;YACtC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,sDAAsD;YACtD,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACnD,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;YAC1B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACtD,eAAe,CAAC,OAAO,CAAC,CAAC,EAAgB,EAAE,EAAE;gBAC3C,IAAI,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;oBAC7C,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAK,CAAC,EAAE,CAAC,cAAc,IAAE,EAAE,IAAI,EAAE,CAAC,cAAc,IAAE,EAAE,CAAC;oBACrH,IAAG,IAAI,CAAC,QAAQ,IAAE,0BAA0B,EAAC;wBAC5C,IAAG,EAAE,CAAC,WAAW,IAAE,QAAQ,IAAI,EAAE,CAAC,WAAW,IAAE,UAAU,EACzD;4BACE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC;yBACxE;qBACF;gBACD,IAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAC3C;oBACA,IAAG,IAAI,CAAC,QAAQ,IAAI,iBAAiB,IAAI,EAAE,CAAC,gBAAgB,IAAE,IAAI,CAAC,KAAK,EAAG;wBACzE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC;qBACxE;yBACI;wBACH,IAAG,IAAI,CAAC,QAAQ,IAAI,KAAK,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,EAAE;4BACrD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC;yBACtE;qBACF;iBACF;YACH,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAC1D,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAC3C,CAAC;QACJ,CAAC,CAAC;YACA,CAAC,KAAU,EAAE,EAAE;gBACb,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,4BAA4B,EAAE,EAAE,EAAE;oBACnD,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACL,CAAC,CAAC;IACN,CAAC;IAEO,gBAAgB;QACtB,IAAI,CAAC,sBAAsB,CAAC,0BAA0B,EAAE,CAAC,SAAS,CAAC,CAAC,SAAgB,EAAE,EAAE;YACtF,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,uDAAuD;YACvD,SAAS,CAAC,OAAO,CAAC,CAAC,QAAa,EAAE,EAAE;gBAClC,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;oBAC3E,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,YAAY,EAAE,KAAK,EAAE,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;YAC1F,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa;YAC3C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAC3D,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAC5C,CAAC;YACF,wBAAwB;YACxB,sCAAsC;YACtC,qEAAqE;YAErE,2CAA2C;YAC3C,6HAA6H;YAC7H,IAAI;QACN,CAAC,CAAC;YACA,CAAC,KAAU,EAAE,EAAE;gBACb,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,8BAA8B,EAAE,EAAE,EAAE;oBACrD,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACL,CAAC,CAAC;IACN,CAAC;IAEO,wBAAwB;QAC9B,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,CAAC,GAAkB,EAAE,EAAE;YACzE,iCAAiC;YAC/B,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;YAC5B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACxD,GAAG,CAAC,OAAO,CAAC,CAAC,OAAoB,EAAE,EAAE;gBACnC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;gBACxE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,sBAAsB,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;YACxG,CAAC,CAAC,CAAC;QACL,CAAC,EACC,CAAC,KAAK,EAAE,EAAE;YACR,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,uCAAuC,EAAE,EAAE,EAAE;gBAC9D,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,CAAC,aAAa,CAAC;gBAC3B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CACF,CAAC;IACJ,CAAC;IAED,4BAA4B,CAAC,qBAA6B,EAAE,UAAkB;QAC5E,IAAI,qBAAqB,IAAI,CAAC,EAAC;YAC7B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,kBAAkB,GAAC,IAAI;YAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,KAAK,EAAE,CAAC;YAC5D,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,KAAK,EAAE,CAAC;YAC9D,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,KAAK,EAAE,CAAC;YACtD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC,KAAK,EAAE,CAAC;YAChE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,KAAK,EAAE,CAAC;YACzD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC3D,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACzD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC1D,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACzD,IAAI,CAAC,cAAc,GAAC,IAAI,CAAC;SAC1B;aACG;YACF,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;YAC/B,IAAI,CAAC,cAAc,GAAC,KAAK,CAAC;YAC1B,IAAI,CAAC,kBAAkB,GAAC,KAAK,CAAC;SAC/B;QACD,IAAG,UAAU,IAAI,CAAC;YAChB,IAAI,CAAC,mCAAmC,CAAC,UAAU,CAAC,CAAC;QACvD,IAAI,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,UAA8B,EAAE,EAAE;YACjF,OAAO,UAAU,CAAC,sBAAsB,IAAI,qBAAqB,CAAC;QACpE,CAAC,CAAC,CAAC;QACH,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACzC,IAAI,CAAC,mBAAmB,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;SACtD;IACH,CAAC;IACO,mCAAmC,CAAC,UAAkB;QAC5D,IAAI,CAAC,QAAQ,CAAC,mCAAmC,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,QAA6B,EAAE,EAAE;YACxG,yCAAyC;YACzC,IAAI,CAAC,4BAA4B,GAAG,QAAQ,CAAC;QAC/C,CAAC,EAAC,CAAC,KAAK,EAAC,EAAE;YACT,IAAI,CAAC,4BAA4B,GAAC,SAAS;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,UAAU,CAAC,GAAQ,EAAE,SAAS;QAC5B,IAAG,SAAS,IAAE,eAAe,EAAC;YAC5B,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,KAAK,EAAE,CAAC;SAClD;QACD,IAAG,SAAS,IAAE,YAAY,EAAC;YACzB,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,CAAC;YAC9C,IAAI,CAAC,wBAAwB,GAAC,EAAE,CAAC;YACjC,IAAI,CAAC,MAAM,EAAE,CAAC;SACf;QACD,IAAG,SAAS,IAAE,WAAW,EAAC;YACxB,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,CAAC;SAC9C;QACD,IAAG,SAAS,IAAE,cAAc,EAAC;YAC3B,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,KAAK,EAAE,CAAC;SACjD;IACH,CAAC;IAEM,QAAQ;QACb,IAAI,YAAY,GAAW,CAAC,CAAC;QAC7B,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC,QAAuB,EAAE,EAAE;YACvF,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,qDAAqD;YACrD,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAc,EAAE,EAAE;gBAClC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC;YACrE,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CACvD,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CACxC,CAAC;QACJ,CAAC,EAAE,CAAC,KAAU,EAAE,EAAE;YAChB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,EAAE;gBAC7C,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,CAAC,aAAa,CAAC;gBAC3B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CACA,CAAC;IACJ,CAAC;IACD,SAAS,CAAC,IAAS;QACjB,OAAO,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9C,CAAC;IAED,UAAU,CAAC,IAAQ;QACjB,OAAO,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9C,CAAC;IAEO,WAAW,CAAC,KAAK;QACvB,IAAI,WAAW,CAAC;QAChB,IAAI,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ,EAAE;YAC1C,OAAO,IAAI,CAAC,WAAW,CAAC;SACzB;QACD,IAAI,KAAK,IAAI,KAAK,CAAC,YAAY,EAAE;YAC/B,IAAI,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ,EAAE;gBAC1C,WAAW,GAAG,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;aAChD;iBACI;gBACH,IAAI,KAAK,CAAC,YAAY,KAAK,IAAI,EAAE;oBAC/B,WAAW,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;iBACtD;aACF;YACD,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CACxC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CACjD,CAAC;SACH;aAAM;YACL,OAAO,IAAI,CAAC,WAAW,CAAC;SACzB;IACH,CAAC;IACO,cAAc,CAAC,KAAK;QAE1B,IAAI,WAAW,CAAC;QAChB,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,EAAE;YACvC,OAAO,IAAI,CAAC,YAAY,CAAC;SAC1B;QACD,IAAI,KAAK,IAAI,KAAK,CAAC,SAAS,EAAE;YAC5B,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,EAAE;gBACvC,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;aAC7C;iBACI;gBACH,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI,EAAE;oBAC5B,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;iBACnD;aACF;YACD,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CACzC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CACjD,CAAC;SACH;aAAM;YACL,OAAO,IAAI,CAAC,YAAY,CAAC;SAC1B;IACH,CAAC;IACO,eAAe,CAAC,KAAK;QAE3B,IAAI,WAAW,CAAC;QAChB,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,EAAE;YACxC,OAAO,IAAI,CAAC,aAAa,CAAC;SAC3B;QACD,IAAI,KAAK,IAAI,KAAK,CAAC,UAAU,EAAE;YAC7B,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,EAAE;gBACxC,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;aAC9C;iBACI;gBACH,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI,EAAE;oBAC7B,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;iBACpD;aACF;YACD,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAC1C,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CACjD,CAAC;SACH;aAAM;YACL,OAAO,IAAI,CAAC,aAAa,CAAC;SAC3B;IACH,CAAC;IAEM,oBAAoB,CAAC,UAAkB;QAC5C,IAAI,CAAC,aAAa,GAAE,UAAU,CAAC;QAC/B,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;QAAA,CAAC;QACtC,IAAI,UAAU,GAAG,CAAC,EAAE;YAClB,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;gBACxB,UAAU,EAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,KAAK;gBACvD,QAAQ,EAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK;gBACpD,UAAU,EAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,KAAK;gBACxD,oBAAoB,EAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,KAAK;gBAC5E,SAAS,EAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,KAAK;aAC1D,CAAC,CAAC;YACH,yCAAyC;YACzC,gDAAgD;YAChD,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YACzB,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,IAA2B,EAAE,EAAE;gBAC1F,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;oBACnC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;oBAC9B,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;oBACtC,IAAI,CAAC,eAAe,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;oBAC3D,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;wBACpC,IAAI,GAAG,CAAC,aAAa,IAAI,CAAC,EAAE;4BACzB,IAAI,CAAC,6BAA6B,GAAG,GAAG,CAAC,oBAAoB,CAAC;4BAC9D,IAAI,CAAC,uBAAuB,GAAG,mCAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;yBAC/E;wBACD,IAAG,IAAI,CAAC,8BAA8B,EAAC;4BACrC,IAAI,CAAC,6BAA6B,GAAG,GAAG,CAAC;4BACzC,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;yBACrC;oBACH,CAAC,CACA;iBACF;;oBAEC,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;YAC3C,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAEM,8BAA8B,CAAC,SAAiB;QACrD,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACtD,IAAI,SAAS,GAAG,CAAC,EAAE;YACjB,IAAI,CAAC,QAAQ,CAAC,gCAAgC,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,UAA+B,EAAE,EAAE;gBACtG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;gBACtB,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;oBACzB,IAAI,OAAO,GAAG,EAAE,CAAC;oBACjB,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC;oBACrD,OAAO,CAAC,OAAO,CACb,CAAC,CAAoB,EAAE,EAAE;wBACvB,CAAC,CAAC,kBAAkB,GAAG,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,eAAe,CAAC;wBAC3D,IAAG,CAAC,CAAC,SAAS,IAAI,IAAI,EAAE;4BACxB,CAAC,CAAC,SAAS;gCACT,CAAC,CAAC,SAAS,IAAI,IAAI;oCACjB,CAAC,CAAC,mCAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;oCAC1C,CAAC,CAAC,IAAI,CAAC;yBACV;oBACH,CAAC,CAAC,CAAC;oBACL,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;iBAC5B;YAEH,CAAC,EAAE,CAAC,KAAU,EAAE,EAAE;gBAChB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,qCAAqC,EAAE,EAAE,EAAE;oBAC5D,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAID,UAAU;QACR,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAChC,IAAI,SAAS,CAAC;QACd,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mFAAkB,EAAE;gBAC/C,YAAY,EAAE,IAAI;gBAClB,WAAW,EAAE,IAAI;gBACjB,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO;gBAC/B,IAAI,EAAE;oBACJ,iBAAiB,EAAE,IAAI,CAAC,aAAa;oBACrC,aAAa,EAAE,IAAI,CAAC,oBAAoB;oBACxC,iBAAiB,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS;oBACtD,OAAO,EAAE,IAAI,CAAC,WAAW;iBAC1B;aAEF,CAAC,CAAC;SAEJ;aACI;YACH,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mFAAkB,EAAE;gBAC/C,YAAY,EAAE,IAAI;gBAClB,WAAW,EAAE,IAAI;gBACjB,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO;gBAC/B,IAAI,EAAE;oBACJ,aAAa,EAAE,IAAI,CAAC,oBAAoB;iBACzC;aACF,CAAC,CAAC;SACJ;QAGD,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAG,MAAM,IAAI,IAAI,EAAE;gBACnB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC5E,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,sBAAsB,EAAE,CAAC;gBAC1E,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC;gBACjG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC,sBAAsB,EAAE,CAAC;gBAGjF,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;gBAC7F,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,sBAAsB,EAAE,CAAC;gBAE/E,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;gBACzF,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,sBAAsB,EAAE,CAAC;aAE5E;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,wBAAwB;QACtB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,EAAC;YACvC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;YACjC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;SAC5B;aACG;YACF,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;SACnC;IACH,CAAC;IAGD,WAAW;QACT,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC;QACvG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAC;QAC3G,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,CAAC;QAC/G,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;QAC7D,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAC1F,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC7B,CAAC;IACD,KAAK;QACH,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;IACpC,CAAC;IAEM,wBAAwB,CAAC,SAAiB;QAC/C,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,KAAK,EAAE,CAAC;QACrD,IAAG,IAAI,CAAC,8BAA8B,IAAI,IAAI,EAAC;YAC7C,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,KAAK,EAAE,CAAC;SAC9D;QACD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,KAAK,EAAE,CAAC;QAC5D,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,KAAK,EAAE,CAAC;QAC9D,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC,KAAK,EAAE,CAAC;QAChE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,KAAK,EAAE,CAAC;QACzD,IAAI,SAAS,GAAG,CAAC,EAAE;YACjB,IAAI,WAAW,GAAQ,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,OAAqB,EAAE,EAAE,GAAG,OAAO,OAAO,CAAC,SAAS,IAAI,SAAS,EAAC,CAAC,CAAC,CAAC;YACxH,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;YAC5C,IAAI,CAAC,eAAe,CAAC,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;YAC9D,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,0FAAc,CAAC,0FAAc,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE;gBAC9E,8BAA8B;gBAC9B,4DAA4D;aAC7D;iBACI;gBACH,2DAA2D;gBAC3D,IAAG,IAAI,CAAC,8BAA8B,IAAI,IAAI,EAAC;oBAC/C,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;oBAC5B,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;oBAC/B,IAAI,CAAC,kBAAkB,GAAG,KAAK;iBAC9B;aACF;YACD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,KAAK,EAAE,CAAC;YAC3D,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;YACrC,IAAI,CAAC,8BAA8B,CAAC,SAAS,CAAC,CAAC;SAChD;IACH,CAAC;IAEM,qBAAqB;QAC1B,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC,SAAS,CAAC,CAAC,UAA+B,EAAE,EAAE;YAClF,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACtD,UAAU,CAAC,OAAO,CAAC,CAAC,CAAoB,EAAE,EAAE;gBAC1C,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,qBAAqB,EAAE,KAAK,EAAE,CAAC,CAAC,mBAAmB,EAAE,CAAC;YAC7F,CAAC,CAAC,CAAC;QACL,CAAC,EAAE,CAAC,KAAU,EAAE,EAAE;YAChB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE;gBAC1C,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,CAAC,aAAa,CAAC;gBAC3B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAKM,uBAAuB;QAC5B,IAAI,CAAC,QAAQ,CAAC,uBAAuB,EAAE,CAAC,SAAS,CAAC,CAAC,UAAiC,EAAE,EAAE;YACtF,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACxD,UAAU,CAAC,OAAO,CAAC,CAAC,CAAsB,EAAE,EAAE;gBAC5C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,uBAAuB,EAAE,KAAK,EAAE,CAAC,CAAC,qBAAqB,EAAE,CAAC;YACnG,CAAC,CAAC,CAAC;QACL,CAAC,EAAE,CAAC,KAAU,EAAE,EAAE;YAChB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,uCAAuC,EAAE,EAAE,EAAE;gBAC9D,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,CAAC,aAAa,CAAC;gBAC3B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IACM,oBAAoB,CAAC,SAAiB;QAC3C,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,SAAS,GAAG,CAAC,EAAE;YACjB,IAAI,CAAC,qBAAqB,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE;gBACnF,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI;oBACjC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,oBAAoB,EAAE,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;gBAE/F,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,MAAM;oBAC/D,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;gBAEvE,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,kBAAkB;oBAC3H,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAAE,KAAK,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;YAE7F,CAAC,EAAE,CAAC,KAAU,EAAE,EAAE;gBAChB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,mCAAmC,EAAE,EAAE,EAAE;oBAC1D,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAEM,UAAU,CAAC,KAAU;QAC1B,IAAI,KAAK,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC1D,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;SACzB;aACI;YACH,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC3D,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACzD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,KAAK,EAAE,CAAC;YAC5D,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,KAAK,EAAE,CAAC;YAC9D,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,KAAK,EAAE,CAAC;YACtD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC,KAAK,EAAE,CAAC;YAChE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,KAAK,EAAE,CAAC;SAC1D;IACH,CAAC;IACM,WAAW,CAAC,KAAU;QAC3B,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,KAAK,CAAC;IACxC,CAAC;IAAA,CAAC;IAEK,QAAQ,CAAC,eAAoB;QAClC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAE1B,IAAI,CAAC,eAAe,CAAC,uBAAuB,GAAG,eAAe,CAAC,uBAAuB,CAAC;QACvF,IAAI,CAAC,eAAe,CAAC,mBAAmB,GAAG,eAAe,CAAC,mBAAmB,CAAC;QAC/E,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,eAAe,CAAC,UAAU,CAAC;QAC7D,IAAI,CAAC,eAAe,CAAC,kBAAkB,GAAG,eAAe,CAAC,kBAAkB,CAAC;QAC7E,IAAI,CAAC,eAAe,CAAC,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC;QAEzD,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,IAAI,IAAI,EAAE;YACzC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,uBAAuB,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,mBAAmB,EAAC;gBAC7F,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,aAAa,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;gBACpF,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,aAAa,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;aACvF;SACF;aACI;YAEH,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,eAAe,EAAE,CAAC;YACnE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,eAAe,EAAE,CAAC;SACtE;QACD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,sBAAsB,EAAE,CAAC;QAC/E,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC,sBAAsB,EAAE,CAAC;QACjF,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;YAE7B,eAAe,CAAC,UAAU,GAAG,eAAe,CAAC,UAAU,CAAC,KAAK,CAAC;YAC9D,eAAe,CAAC,YAAY,GAAG,eAAe,CAAC,YAAY,CAAC,KAAK,CAAC;YAClE,eAAe,CAAC,SAAS,GAAG,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC;YAC5D,IAAI,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,6BAA6B,EAAE;gBAElE,IAAI,eAAe,CAAC,UAAU,IAAI,IAAI;oBAAE,eAAe,CAAC,UAAU,GAAG,KAAK,CAAC;gBAC3E,IAAI,eAAe,CAAC,SAAS,IAAI,IAAI;oBAAE,eAAe,CAAC,SAAS,GAAG,KAAK,CAAC;gBACzE,IAAI,CAAC,eAAe,CAAC,mBAAmB,GAAG,eAAe,CAAC,mBAAmB,GAAG,CAAC,CAAC,CAAC,uFAAuF;gBAC3K,IAAI,UAAU,GAAY,KAAK,CAAC;gBAChC,eAAe,CAAC,aAAa,GAAG,mCAAM,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;gBAC1F,IAAI,IAAI,CAAC,uBAAuB,IAAI,IAAI,IAAI,IAAI,CAAC,uBAAuB,IAAI,SAAS,EAAE;oBACrF,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,uBAAuB,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC;iBAC3F;qBACI;oBACH,IAAG,IAAI,CAAC,8BAA8B,EAAC;wBACrC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;wBAC1B,UAAU,GAAG,IAAI,CAAC;qBACnB;yBACG;wBACF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,8BAA8B,EAAE,EAAE,EAAE;4BACrD,QAAQ,EAAE,IAAI;4BACd,UAAU,EAAE,CAAC,aAAa,CAAC;4BAC3B,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;wBACH,OAAO;qBACR;iBACF;gBACD,IAAI,CAAC,eAAe,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,IAAI,SAAS,CAAC;oBAClF,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAC/B,IAAI,CAAC,sBAAsB,EAC3B,eAAe,CAAC,aAAa,CAAC,CAC/B,EACD;oBAEA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,6EAA6E,EAAE,EAAE,EAAE;wBACpG,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACH,OAAO;iBACR;gBACD,IAAI,IAAI,CAAC,eAAe,CAAC,UAAU,IAAI,IAAI,CAAC,eAAe,CAAC,kBAAkB,EAAE;oBAC9E,IAAI,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;oBAChE,IAAI,wBAAwB,GAAG,IAAI,CAAC,4BAA4B,IAAI,IAAI,CAAC,4BAA4B,CAAC,SAAS;oBAC/G,IAAI,kCAAkC,GAAG,IAAI,CAAC,4BAA4B,IAAI,IAAI,CAAC,4BAA4B,CAAC,oBAAoB;oBACpI,IAAG,iBAAiB,IAAI,eAAe,CAAC,SAAS,IAAI,IAAI,IAAI,wBAAwB,IAAI,CAAC,IAAI,wBAAwB,IAAI,SAAS,IAAI,kCAAkC,IAAI,EAAE,IAAI,eAAe,CAAC,oBAAoB,IAAI,CAAC,EAAC;wBAC3N,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,2DAA2D,EAAE,EAAE,EAAE;4BAClF,QAAQ,EAAE,IAAI;4BACd,UAAU,EAAE,CAAC,aAAa,CAAC;4BAC3B,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;wBACH,OAAO;qBACR;oBACD,IAAI,iBAAiB,IAAI,UAAU,IAAI,KAAK,EAAE;wBAC5C,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;wBACpB,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE;4BACtE,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE;gCAC7B,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gCACpB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;gCACvB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gCACnD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,oCAAoC,EAAE,EAAE,EAAE;oCAC3D,QAAQ,EAAE,IAAI;oCACd,kBAAkB,EAAE,OAAO;oCAC3B,gBAAgB,EAAE,KAAK;iCACxB,CAAC,CAAC;gCACH,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gCACrD,IAAI,CAAC,gBAAgB,EAAE,CAAC;gCACxB,IAAI,CAAC,MAAM,EAAE,CAAC;6BACf;iCACI,IAAI,IAAI,CAAC,YAAY,IAAI,KAAK,EAAE;gCACnC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gCACpB,IAAG,IAAI,CAAC,OAAO,IAAI,wDAAwD,EAAC;oCAC1E,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,2DAA2D,EAAE,EAAE,EAAE;wCAClF,QAAQ,EAAE,IAAI;wCACd,UAAU,EAAE,CAAC,aAAa,CAAC;wCAC3B,kBAAkB,EAAE,OAAO;wCAC3B,gBAAgB,EAAE,KAAK;qCACxB,CAAC,CAAC;iCACJ;qCACG;oCACF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,6DAA6D,EAAE,EAAE,EAAE;wCACpF,QAAQ,EAAE,IAAI;wCACd,UAAU,EAAE,CAAC,aAAa,CAAC;wCAC3B,kBAAkB,EAAE,OAAO;wCAC3B,gBAAgB,EAAE,KAAK;qCACxB,CAAC,CAAC;iCACJ;6BACF;wBACH,CAAC,CACA,CAAC;qBACH;iBACF;qBACI;oBACH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,qDAAqD,EAAE,EAAE,EAAE;wBAC5E,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;aACF;iBACI;gBACH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,8BAA8B,EAAE,EAAE,EAAE;oBACrD,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;SACF;IAEH,CAAC;IAGD,0BAA0B,CAAC,cAAsB;QAC/C,IAAI,cAAc,GAAG,CAAC,EAAE;YACtB,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC,GAAW,EAAE,EAAE;gBAC/E,IAAI,GAAG,IAAI,CAAC,EAAE;oBACZ,UAAU,CAAC,GAAG,EAAE;wBACd,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC;oBACnD,CAAC,EAAE,IAAI,CAAC,CAAC;iBACV;qBACI;oBACH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,wCAAwC,EAAE,EAAE,EAAE;wBAC/D,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,aAAa,CAAC;wBAC3B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;YACH,CAAC,EACC,CAAC,KAAU,EAAE,EAAE,CACb,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,wCAAwC,EAAE,EAAE,EAAE;gBAC/D,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,CAAC,aAAa,CAAC;gBAC3B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC,CAAC;SACT;IACH,CAAC;IAGO,iBAAiB,CAAC,eAAoC;QAC5D,IAAI,mCAA2C,CAAC;QAChD,IAAI,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,UAA8B,EAAE,EAAE;YACjF,OAAO,UAAU,CAAC,sBAAsB,IAAI,eAAe,CAAC,oBAAoB,CAAC;QACnF,CAAC,CAAC,CAAC;QACH,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACzC,mCAAmC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;SACjE;QACD,IAAI,IAAI,CAAC,4BAA4B,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,mCAAmC,EAAE;YACzI,IAAI,IAAI,CAAC,4BAA4B,CAAC,oBAAoB,GAAG,mCAAmC,IAAI,CAAC,eAAe,CAAC,SAAS,IAAI,KAAK,IAAI,eAAe,CAAC,SAAS,IAAI,IAAI,CAAC,EAAE;gBAC7K,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,EAAE;oBAC9C,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,OAAO,KAAK,CAAC;aACd;iBACI,IAAI,IAAI,CAAC,4BAA4B,CAAC,oBAAoB,IAAI,mCAAmC;gBACpG,CAAC,eAAe,CAAC,SAAS,IAAI,KAAK,IAAI,eAAe,CAAC,SAAS,IAAI,IAAI,CAAC,EAAE;gBAC3E,eAAe,CAAC,SAAS,GAAG,KAAK,CAAC;gBAClC,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;oBACnD,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,CAAC,IAAU,EAAE,EAAE;wBACvE,IAAI,IAAI,IAAI,IAAI,EAAE;4BAChB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;4BACvB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;4BACnD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,oCAAoC,EAAE,EAAE,EAAE;gCAC3D,QAAQ,EAAE,IAAI;gCACd,kBAAkB,EAAE,OAAO;gCAC3B,gBAAgB,EAAE,KAAK;6BACxB,CAAC,CAAC;4BACH,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;4BACrD,IAAI,CAAC,gBAAgB,EAAE,CAAC;4BACxB,IAAI,CAAC,MAAM,EAAE,CAAC;yBACf;6BACI;4BACH,IAAG,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE;gCAC5B,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;gCACvB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gCACnD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,oCAAoC,EAAE,EAAE,EAAE;oCAC3D,QAAQ,EAAE,IAAI;oCACd,kBAAkB,EAAE,OAAO;oCAC3B,gBAAgB,EAAE,KAAK;iCACxB,CAAC,CAAC;gCACH,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gCACrD,IAAI,CAAC,gBAAgB,EAAE,CAAC;6BACzB;4BACD,IAAI,IAAI,CAAC,YAAY,IAAI,KAAK,EAAE;gCAC9B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,6DAA6D,EAAE,EAAE,EAAE;oCACpF,QAAQ,EAAE,IAAI;oCACd,UAAU,EAAE,CAAC,aAAa,CAAC;oCAC3B,kBAAkB,EAAE,OAAO;oCAC3B,gBAAgB,EAAE,KAAK;iCACxB,CAAC,CAAC;6BACJ;4BACD,IAAI,CAAC,MAAM,EAAE,CAAC;yBACf;oBACH,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;wBACX,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gCAAgC,EAAE,EAAE,EAAE;4BACvD,QAAQ,EAAE,IAAI;4BACd,UAAU,EAAE,CAAC,aAAa,CAAC;4BAC3B,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;wBACH,OAAO,KAAK,CAAC;oBACf,CAAC,CAAC,CAAC;iBACJ;qBACI;oBACH,mDAAmD;oBACnD,oBAAoB;oBACpB,iCAAiC;oBACjC,iCAAiC;oBACjC,6BAA6B;oBAC7B,MAAM;oBACN,OAAO,KAAK,CAAC;iBACd;aACF;iBACI,IAAI,IAAI,CAAC,4BAA4B,CAAC,oBAAoB,GAAG,mCAAmC,IAAI,eAAe,CAAC,SAAS,IAAI,IAAI,EAAE;gBAC1I,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,EAAE;oBAChD,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,OAAO,KAAK,CAAC;aACd;iBACI;gBACH,OAAO,IAAI,CAAC;aACb;SACF;aACI;YACH,IAAI,CAAC,eAAe,CAAC,SAAS,IAAI,KAAK,IAAI,eAAe,CAAC,SAAS,IAAI,IAAI,CAAC,IAAK,mCAAmC,GAAG,CAAC,EAAE;gBACzH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,EAAE;oBAC9C,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,OAAO,KAAK,CAAC;aACd;iBACI;gBACH,OAAO,IAAI,CAAC;aACb;SACF;IACH,CAAC;IAEM,MAAM;QACX,IAAI,CAAC,wBAAwB,GAAC,EAAE,CAAC;QACjC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;YACxB,SAAS,EAAG,IAAI;SACjB,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;QAClC,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;QACvC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAC5B,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC;YACjD,SAAS,EAAG,IAAI;SACjB,CAAC,EAAE,CAAC,CAAC,CAAC;QACP,IAAI,CAAC,6BAA6B,GAAG,CAAC,CAAC;QACvC,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;QACpC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAC/B,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,kBAAkB,GAAC,KAAK,CAAC;QAC9B,IAAI,CAAC,eAAe,GAAG,IAAI,mGAAmB,EAAE,CAAC;QACjD,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,8BAA8B,GAAG,KAAK,CAAC;QAC5C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAC5C,IAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC;IACxC,CAAC;IAqBD,uBAAuB,CAAC,KAAU;QAChC,IAAI,KAAK,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;YAC5B,IAAI,CAAC,8BAA8B,GAAG,IAAI;YAC1C,IAAI,CAAC,aAAa,GAAC,EAAE;YACrB,IAAI,YAAmB;YACvB,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBACzC,IAAI,OAAO,CAAC,KAAK,IAAI,GAAG,EAAE;oBACxB,YAAY,GAAG,OAAO,CAAC,KAAK;oBAC5B,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;iBAC7E;YACH,CAAC,CAAC,CAAC;YACH,IAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,IAAI,IAAI;gBAC7C,IAAI,CAAC,4BAA4B,CAAC,YAAY,EAAC,CAAC,CAAC;YACnD,IAAI,CAAC,wBAAwB,EAAE,CAAC;SACjC;aACG;YACF,mCAAmC;YACnC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,iBAAiB;YAC3C,IAAI,CAAC,MAAM,EAAE;YAEb,uEAAuE;YACvE,mCAAmC;YACnC,6BAA6B;YAC7B,gCAAgC;YAChC,8CAA8C;SAC/C;IAEH,CAAC;IAED,wBAAwB;QACtB,IAAI,CAAC,wBAAwB,GAAC,EAAE;QAChC,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,8BAA8B,CAAC,oBAAoB,EAAE,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YAChF,GAAG,CAAC,OAAO,CAAC,CAAC,QAAa,EAAE,EAAE;gBAC5B,IAAI,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;oBACtF,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC3F,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,wBAAwB,CAAC;YACvD,CAAC,CAAC,CAAC;YACF,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAC3D,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAC5C,CAAC;QACJ,CAAC,CAAC;IAIH,CAAC;IACD,gBAAgB,CAAC,KAAK;QACpB,IAAI,WAAW,CAAC;QAChB,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE;YACrC,OAAO,IAAI,CAAC,aAAa,CAAC;SAC3B;IACH,CAAC;;wGAz+BU,4BAA4B;4GAA5B,4BAA4B;kEAoD5B,iEAAkB;wEAClB,wEAAY;;;;;;;QCpFzB,8EACI;QAAA;QAAA,mFACI;QAAA;QAAA,0EACI;QAAA;QAAA,yEACI;QAAA;QAAA,yEAEI;QAAA;QAAA,mFACkC;QAA9B,mKAAU,sBAAkB,IAAC;QAAC,oEAAQ;QAAA,4DAAe;QAE7D;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,mFAAuG;QAA3C,mKAAU,mCAA+B,IAAC;QAAC,yEAAa;QAAA,4DAAe;QACvI;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,wGACP;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QACtC;QAAA,4DAAY;QACZ;QAAA,4EAEA;QAAA;QAAA,iIAEA;QAEA;QAAA,qIAA6D;QAC7D;QAAA,4FACA;QAD4C,uLAAkB,mDAA+C,IAAC;QAC9G;QAAA,yIAEI;QACJ;QAAA,yIAAwF;QACxF;QAAA,yIAEI;;QAEJ;QAAA,4DAAmB;QACnB;QAAA,uIACI;QAGJ;QAAA,uIACI;QAGR;QAAA,4DAAiB;QAErB;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,sGACP;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QACtC;QAAA,4DAAY;QAEZ;QAAA,4EAEA;QAAA;QAAA,iIAEA;QAEA;QAAA,qIAA4D;QAC5D;QAAA,4FACA;QADsE,gLAAkB,uDAAmD,SAAC,6DAAyD,IAAE;QACvM;QAAA,yIAEI;QACJ;QAAA,yIAAuF;QACvF;QAAA,yIAEI;;QAEJ;QAAA,4DAAmB;QACnB;QAAA,uIACI;QAGJ;QAAA,uIACI;QAGR;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QAEN;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,8FACP;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QACtC;QAAA,4DAAY;QACZ;QAAA,4EAEA;QAAA;QAAA,mIAEA;QAEA;QAAA,uIAA+D;QAC/D;QAAA,6FACA;QAAA;QAAA,2IAEI;QACJ;QAAA,2IAA0F;QAC1F;QAAA,2IAEI;;QAEJ;QAAA,4DAAmB;QACnB;QAAA,yIACI;QAGJ;QAAA,yIACI;QAIR;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QAEN;QAAA,2EACI;QAAA;QAAA,sFACI;QAAA;QAAA,8EAAW;QAAA,wGACP;QAAA,4EAA0B;QAAA,8DAAC;QAAA,4DAAO;QACtC;QAAA,4DAAY;QACZ;QAAA,mFAEI;QADA,8KAAmB,0HAA6G,IAAC;QACjI;QAAA,2IAEI;QAER;QAAA,4DAAa;QAEb;QAAA,yIACI;QAIR;QAAA,4DAAiB;QACjB;QAAA,yIAEA;QAGJ;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,sFACI;QAAA;QAAA,8EAAW;QAAA,2HAEX;QAAA,4DAAY;QACZ;QAAA,yEAEJ;QAAA;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QAEN;QAAA,2EACI;QAAA;QAAA,sFACI;QAAA;QAAA,8EAAW;QAAA,0GACP;QAAA,4EAA0B;QAAA,8DAAC;QAAA,4DAAO;QACtC;QAAA,4DAAY;QACZ;QAAA,8EAEA;QAD8B,qSAAS,WAAa,IAAC;QADrD,4DAEA;QAAA;QAAA,iKAEI;QAEJ;QAAA,yFAAwE;QACxE;QAAA,wFAAyC;QACzC;QAAA,yIACI;QAGR;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QAIN;QAAA,2EACI;QAAA;QAAA,sFACI;QAAA;QAAA,8EAAW;QAAA,4GACP;QAAA,4EAA0B;QAAA,8DAAC;QAAA,4DAAO;QACtC;QAAA,4DAAY;QACZ;QAAA,mFACI;QAAA;QAAA,2IACI;QAER;QAAA,4DAAa;QAEb;QAAA,yIAEI;QAGR;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QAEN;QAAA,2EAEI;QAAA;QAAA,oJAEI;QAQR;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,oJACI;QAiBR;QAAA,4DAAM;QACN;QAAA,4EACI;QAAA;QAAA,mJACI;QAIR;QAAA,4DAAM;QAEN;QAAA,2EACI;QAAA;QACA;QAAA,qFAA6H;QAAA,qEAAQ;QAAA,4DAAe;QAEpJ;QAAA,qFAA2E;QAAA,oEAAO;QAAA,4DAAe;QACjG;QAAA,qFAA6F;QAAA,6EAAgB;QAAA,4DAAe;QAC5H;QAAA,yIACI;QACR;QAAA,4DAAM;QAEN;QAAA,4EACI;QAAA;QAAA,+EACI;QADK,sJAAS,YAAQ,IAAC;QACvB;QAAA,6EAAU;QAAA,4FACV;QAAA,4DAAW;QAAA,wFACf;QAAA,4DAAS;QACT;QAAA,+EACI;QADkB,sJAAS,sCAA8B,IAAC;QAC1D,+FAAQ;QAAA,4DAAS;QACzB;QAAA,4DAAM;QAEV;QAAA,4DAAM;QACV;QAAA,4DAAO;QAEX;QAAA,4DAAmB;QACvB;QAAA,4DAAW;QAEX;QAAA,wIAEI;QA4CJ;QAAA,oFAMI;QAAA;QAAA,0EAAmB;QAAA,wEAAW;QAAA,4DAAI;QACtC;QAAA,4DAAc;QACd;QAAA,6KAA8F;QAC9F;;;;;;QArTc,0DAA4B;QAA5B,yFAA4B;QAIR,0DAA2B;QAA3B,wFAA2B;QAK1B,0DAA4C;QAA5C,uGAA4C;QAG3C,0DAA+B;QAA/B,uGAA+B;QAId,0DAA4B;QAA5B,yFAA4B;QAE1B,0DAAuC;QAAvC,qGAAuC;QAIlD,0DAAwC;QAAxC,sGAAwC;QAC1C,0DAAyB;QAAzB,sFAAyB;QAEvC,0DAAoG;QAApG,sKAAoG;QAEnF,0DAAkE;QAAlE,gIAAkE;QAC3E,0DAA8C;QAA9C,4JAA8C;QAK/C,0DAA6D;QAA7D,2HAA6D;QAI7D,0DAAiE;QAAjE,+HAAiE;QAQhE,0DAA+B;QAA/B,uGAA+B;QAKd,0DAA2B;QAA3B,wFAA2B;QAEzB,0DAAsC;QAAtC,oGAAsC;QAIjD,0DAAuC;QAAvC,qGAAuC;QACzC,0DAAyB;QAAzB,sFAAyB;QAEvC,0DAAkG;QAAlG,oKAAkG;QAEjF,0DAAiE;QAAjE,+HAAiE;QAC1E,0DAA6C;QAA7C,2JAA6C;QAK9C,0DAA4D;QAA5D,0HAA4D;QAI5D,0DAAgE;QAAhE,8HAAgE;QAQ/D,0DAA+B;QAA/B,uGAA+B;QAId,0DAA0B;QAA1B,uFAA0B;QAExB,0DAAyC;QAAzC,uGAAyC;QAIpD,0DAA0C;QAA1C,wGAA0C;QAC5C,0DAAyB;QAAzB,sFAAyB;QAEvC,0DAAwG;QAAxG,0KAAwG;QAEvF,0DAAoE;QAApE,kIAAoE;QAC7E,0DAA0C;QAA1C,yJAA0C;QAK3C,0DAA+D;QAA/D,6HAA+D;QAI/D,0DAAmE;QAAnE,iIAAmE;QASlE,0DAA+B;QAA/B,uGAA+B;QAIkC,0DAA6C;QAA7C,wGAA6C;QAE1G,0DAAsC;QAAtC,0FAAsC;QAM3C,0DAAiF;QAAjF,iJAAiF;QAOhG,0DAAgH;QAAhH,sLAAgH;QAMhG,0DAA+B;QAA/B,uGAA+B;QAIN,0DAAsB;QAAtB,4FAAsB;QAM/C,0DAA+B;QAA/B,uGAA+B;QAIK,0DAAwB;QAAxB,+EAAwB;QAEvC,0DAA0C;QAA1C,wGAA0C;QAI1C,0DAAc;QAAd,qEAAc;QAEpC,0DAAwE;QAAxE,0IAAwE;QAUvE,0DAA+B;QAA/B,uGAA+B;QAK3B,2DAAoC;QAApC,qFAAoC;QAKzC,0DAA6E;QAA7E,+IAA6E;QAU5E,0DAAiE;QAAjE,qIAAiE;QAYjE,0DAAiE;QAAjE,qIAAiE;QAoBhE,0DAAiE;QAAjE,qIAAiE;QASpE,0DAAiD;QAAjD,8GAAiD;QAErB,0DAAgC;QAAhC,2FAAgC;QAC5D,0DAAkD;QAAlD,+GAAkD;QACd,0DAAuC;QAAvC,qGAAuC;QAmB7D,2DAAiC;QAAjC,+FAAiC;QAiDhF,0DAAoB;QAApB,6EAAoB;QAKQ,0DAAgC;QAAhC,8FAAgC;;6FDvRhD,4BAA4B;cALxC,uDAAS;eAAC;gBACT,QAAQ,EAAE,yBAAyB;gBACnC,WAAW,EAAE,sCAAsC;gBACnD,SAAS,EAAE,CAAC,sCAAsC,CAAC;aACpD;w0CAqDgC,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;YACc,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AEpF3C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2F;AAClB;AACF;AACZ;AACV;;;;;;;;;;;;;;;;;;ICOzC,yEAA+E;IAAA,iEAAM;IAAA,4DAAK;;;;IAExF,uFACA;IADkB,gdAA6C;IAC/D;IAAA,4DAAmB;;;IAFrB,yEACE;IAAA;IAAA,+IACA;IACF;IAAA,4DAAK;;;IAF6D,0DAAyC;IAAzC,uGAAyC;;;IAM3G,yEAAiF;IAAA,kFAAuB;IAAA,4DAAK;;;IAC7G,yEAAwC;IAAA,uDAAkC;IAAA,4DAAK;;;IAAvC,0DAAkC;IAAlC,6GAAkC;;;IAI1E,yEAAiF;IAAA,qEAAU;IAAA,4DAAK;;;IAChG,yEAAwC;IAAA,uDAAoC;IAAA,4DAAK;;;IAAzC,0DAAoC;IAApC,+GAAoC;;;IAI5E,yEAA+E;IAAA,yEAAc;IAAA,4DAAK;;;IAClG,yEAAwC;IAAA,uDAA0B;IAAA,4DAAK;;;IAA/B,0DAA0B;IAA1B,qGAA0B;;;IAKlE,yEAAiF;IAAA,6EAAkB;IAAA,4DAAK;;;IACxG,yEAAwC;IAAA,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,iGAAsB;;;IAG9D,yEAAiF;IAAA,gFAAqB;IAAA,4DAAK;;;IAC3G,yEAAwC;IAAA,uDAA4B;IAAA,4DAAK;;;IAAjC,0DAA4B;IAA5B,uGAA4B;;;IAItE,oEAA4D;;;IACxD,oEAAkE;;;IAEtE,yEACE;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAC/C;IAAA,4DAAK;;;;IAWP,6EACqD;IAAnD,+TAAuB;IAA4B,gEAAK;IAAA,4DAAS;;;IAAzC,yFAA0B;;;ADhCjD,MAAM,kBAAkB;IA+B7B,YACS,SAA2C,EAClB,IAAS,EACjC,iBAAoC,EACpC,QAAoC,EACpC,mBAAwC,EACxC,cAA6B,EAC7B,sBAAyD,EACzD,QAAqB,EACrB,qBAAoD;QARrD,cAAS,GAAT,SAAS,CAAkC;QAClB,SAAI,GAAJ,IAAI,CAAK;QACjC,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,aAAQ,GAAR,QAAQ,CAA4B;QACpC,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,mBAAc,GAAd,cAAc,CAAe;QAC7B,2BAAsB,GAAtB,sBAAsB,CAAmC;QACzD,aAAQ,GAAR,QAAQ,CAAa;QACrB,0BAAqB,GAArB,qBAAqB,CAA+B;QAtC9D,sBAAiB,GAA0B,EAAE,CAAC;QAE9C,sBAAiB,GAAyB,EAAE,CAAC;QAE7C,yBAAoB,GAAY,KAAK,CAAC;QAUtC,kBAAa,GAAa,KAAK,CAAC;QAIlC,sEAAsE;QAGpE,qBAAgB,GAAa,CAAC,SAAS,EAAC,uBAAuB,EAAC,yBAAyB;YACzF,eAAe,EAAC,WAAW,EAAC,iBAAiB,CAAC,CAAC;QAIrC,iBAAY,GAAG,IAAI,0DAAY,EAAO,CAAC;QAa7C,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC;QACrD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;QAC7C,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC;IACvD,CAAC;IAEH,QAAQ;QACN,IAAI,CAAC,qBAAqB,GAAI,IAAI,0EAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtE,IAAI,CAAC,qBAAqB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACtD,IAAI,CAAC,qBAAqB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAC5C,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAC;YAC7B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC7B,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,IAAI,CAAC;gBAC/E,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;iBAEvB,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAC;gBACpC,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,CAAC;gBAC9F,IAAI,IAAI,CAAC,wBAAwB,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM;oBAClE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;;oBAE1B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;aAC9B;SAEF;aACG;YACF,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;SAC3B;IACL,CAAC;IAED,mBAAmB;IACnB,SAAS;QACP,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAED,WAAW;QACT,IAAG,IAAI,CAAC,eAAe,IAAI,SAAS,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI;YAClE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;aACzC;YACF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,mCAAmC,EAAE,EAAE,EAAE;gBAC1D,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,CAAC,aAAa,CAAC;gBAC3B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;SACJ;IACH,CAAC;IACD,KAAK;QACH,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;IACpC,CAAC;IACD,yBAAyB,CAAC,qBAA0B;QAClD,IAAI,CAAC,eAAe,GAAG,qBAAqB,CAAC;IAC/C,CAAC;;oFA3FU,kBAAkB,0MAiCnB,wEAAe;kGAjCd,kBAAkB;wEAyBlB,wEAAY;kEACZ,8DAAO;;;;;;;;QCvDpB,wEAAsB;QAAA,kFAAsB;QAAA,4DAAK;QACjD;QAAA,yEACE;QAAA;QAAA,qEAAK;QAAA;QAAA,kEAA2D;QAC9D,sFAAqB;QAAA,4DAAK;QAC9B;QAAA,4DAAM;QAEN;QAAA,yFACE;QAAA;QAAA,0EACE;QAAA;QAAA,4EAEE;QAAA;QAAA,4EACE;QAAA;QAAA,8GAA+E;QAC/E;QAAA,8GACE;QAGJ;QAAA,qEAAe;QAEf;QAAA,4EACE;QAAA;QAAA,8GAAiF;QACjF;QAAA,8GAAwC;QAC1C;QAAA,qEAAe;QAEf;QAAA,6EACE;QAAA;QAAA,8GAAiF;QACjF;QAAA,8GAAwC;QAC1C;QAAA,qEAAe;QAEf;QAAA,6EACE;QAAA;QAAA,8GAA+E;QAC/E;QAAA,8GAAwC;QAC1C;QAAA,qEAAe;QAGf;QAAA,6EACE;QAAA;QAAA,8GAAiF;QACjF;QAAA,8GAAwC;QAC1C;QAAA,qEAAe;QACf;QAAA,6EACE;QAAA;QAAA,8GAAiF;QACjF;QAAA,8GAAwC;QAC1C;QAAA,qEAAe;QAGf;QAAA,+GAAuD;QACnD;QAAA,+GAA6D;QAEjE;QAAA,+GACE;QAGJ;QAAA,4DAAQ;QACV;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,gFAAgE;QAClE;QAAA,4DAAM;QACN;QAAA,4DAAqB;QAErB;QAAA,2EACE;QAAA;QAAA,8EAAyC;QAAtB,2IAAS,eAAW,IAAC;QAAC,iEAAK;QAAA,4DAAS;QACvD;QAAA,uHACqD;QACvD;QAAA,4DAAM;QAiBN;;QA9EsB,0DAAyB;QAAzB,sFAAyB;QAK7B,0DAA6B;QAA7B,0FAA6B;QAEb,0DAAoC;QAApC,iGAAoC;QAoC/C,2DAAmC;QAAnC,iGAAmC;QACtC,0DAAgD;QAAhD,kGAAgD;QASnD,0DAAgC;QAAhC,kJAAgC;QAM+B,0DAAyB;QAAzB,uFAAyB;;6FD/B9F,kBAAkB;cAP9B,uDAAS;eAAC;gBACT,QAAQ,EAAE,gBAAgB;gBAC1B,WAAW,EAAE,6BAA6B;gBAC1C,SAAS,EAAE,CAAC,6BAA6B,CAAC;aAC3C;;sBAoCI,oDAAM;uBAAC,wEAAe;m0BARkB,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACrB,IAAI;kBAAvB,uDAAS;mBAAC,8DAAO;YACE,KAAK;kBAAxB,uDAAS;mBAAC,OAAO;YACR,YAAY;kBAArB,oDAAM;;;;;;;;;;;;;;AEzDT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmF;;;;;;;ICkBvE,wEACI;IAAA;IAAA,wEACI;IAAA;IAAA,wEAAsB;IAAA,uDAAkB;IAAA,4DAAK;IAC7C;IAAA,wEAAsB;IAAA,uDAAwC;;IAAA,4DAAK;IACnE;IAAA,yEAAsB;IAAA,wDAAc;IAAA,4DAAK;IAC7C;IAAA,4DAAK;IACT;IAAA,4DAAQ;;;IAJsB,0DAAkB;IAAlB,kFAAkB;IAClB,0DAAwC;IAAxC,mKAAwC;IACxC,0DAAc;IAAd,8EAAc;;;IAtBxD,8EAEI;IAAA;IAAA,qEACI;IAAA;IAAA,oEAAG;IAAA,iFAAsB;IAAA,4DAAI;IAAA,4DAAK;IACtC;IAAA,yEACI;IAAA;IAAA,2EACI;IAAA;IAAA,yEACI;IAAA;IAAA,sEACI;IAAA;IAAA,2EAAmB;IAAA,wEAAY;IAAA,4DAAO;IAC1C;IAAA,4DAAK;IACL;IAAA,sEACI;IAAA;IAAA,2EAAmB;IAAA,gFAAoB;IAAA,4DAAO;IAClD;IAAA,4DAAK;IACL;IAAA,sEACI;IAAA;IAAA,2EAAmB;IAAA,mEAAO;IAAA,4DAAO;IACrC;IAAA,4DAAK;IAET;IAAA,4DAAK;IACL;IAAA,4IACI;IAMR;IAAA,4DAAQ;IACZ;IAAA,4DAAM;IACV;IAAA,4DAAW;;;IATQ,2DAAyC;IAAzC,kGAAyC;;ADTrD,MAAM,8BAA8B;IAOzC,YAAoB,kBAA8C,EACxD,QAAqB;QADX,uBAAkB,GAAlB,kBAAkB,CAA4B;QACxD,aAAQ,GAAR,QAAQ,CAAa;QALtB,eAAU,GAAY,KAAK,CAAC;IAMpC,CAAC;IAEF,WAAW,CAAC,OAAsB;QAChC,IAAG,IAAI,CAAC,UAAU,EAAC;YACjB,IAAI,CAAC,gCAAgC,EAAE,CAAC;SACzC;QACD,IAAG,IAAI,CAAC,aAAa,IAAI,SAAS,IAAI,IAAI,CAAC,aAAa,IAAG,CAAC,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,EAAC;YACzF,IAAI,CAAC,gCAAgC,EAAE,CAAC;SACzC;IACH,CAAC;IACD,QAAQ;IACR,CAAC;IAED,gCAAgC;QAC9B,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC;QACjC,IAAI,CAAC,kBAAkB,CAAC,gCAAgC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YAC3F,IAAG,GAAG,EAAC;gBACL,IAAI,CAAC,sBAAsB,GAAG,GAAG,CAAC;aACnC;QACH,CAAC,CAAC;IAEJ,CAAC;;4GA9BU,8BAA8B;8GAA9B,8BAA8B;QCT3C,qIAEI;;QAFwB,qIAAmE;;6FDSlF,8BAA8B;cAL1C,uDAAS;eAAC;gBACT,QAAQ,EAAE,6BAA6B;gBACvC,WAAW,EAAE,0CAA0C;gBACvD,SAAS,EAAE,CAAC,0CAA0C,CAAC;aACxD;oOAGU,aAAa;kBAArB,mDAAK;YACG,UAAU;kBAAlB,mDAAK;;;;;;;;;;;;;;AEZR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAuF;AACC;AAMxC;AAEF;AACuD;AACpE;;;;;;;;;;;;;;;;;;;;;ICAT,6EAEA;IAF6E,+UAA4B,YAAY,KAAE;IAEvH;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC1B;IAAA,4DAAS;;;IACT,+EAAmE;IAAA,8EAAmB;IAAA,4DAAW;;;IAEjG,iFAEI;IAAA,gHAAuB;IAAA,4DAAa;;;IACxC,iFAA8F;IAAA,2EAAgB;IAAA,4DAAa;;;IAC3H,iFAEI;IAAA,uDACJ;IAAA,4DAAa;;;IAFT,2EAAc;IACd,0DACJ;IADI,gJACJ;;;IAEA,4EACI;IAAA;IAAA,mEAA2D;IAC3D,0IACJ;IAAA,4DAAY;;;IACZ,4EACI;IAAA;IAAA,mEAA2D;IAC3D,2JACJ;IAAA,4DAAY;;;;IAYZ,6EAEA;IAF4E,+UAA4B,WAAW,KAAE;IAErH;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC1B;IAAA,4DAAS;;;IACT,+EAAkE;IAAA,8EAAmB;IAAA,4DAAW;;;IAEhG,iFAEI;IAAA,gHAAuB;IAAA,4DAAa;;;IACxC,iFAA6F;IAAA,yEAAc;IAAA,4DAAa;;;IACxH,iFAEI;IAAA,uDACJ;IAAA,4DAAa;;;IAFT,2EAAc;IACd,0DACJ;IADI,gJACJ;;;IAEA,4EACI;IAAA;IAAA,mEAA2D;IAC3D,mIACJ;IAAA,4DAAY;;;IACZ,4EACI;IAAA;IAAA,mEAA2D;IAC3D,oJACJ;IAAA,4DAAY;;;IAOZ,4EACI;IAAA;IAAA,mEAA2D;IAC3D,wIACJ;IAAA,4DAAY;;;IAPpB,yEACI;IAAA;IAAA,oFACI;IAAA;IAAA,4EAAW;IAAA,uEAAY;IAAA,0EAA0B;IAAA,4DAAC;IAAA,4DAAO;IAAA,4DAAY;IACrE;IAAA,uEACA;IAAA;IAAA,4IACI;IAGN;IAAA,4DAAiB;IACvB;IAAA,4DAAM;;;IARc,0DAA+B;IAA/B,2GAA+B;IAGhC,0DAAoE;IAApE,sIAAoE;;;;IAY/E,4FAEI;IADA,6WAA4B,eAAe,KAAE;IAC7C;IAAA,+EAAkC;IAAA,gEAAK;IAAA,4DAAW;IACtD;IAAA,4DAAwB;;;IAGxB,4EACI;IAAA;IAAA,mEAA2D;IAC3D,0IACJ;IAAA,4DAAY;;;IACZ,4EACI;IAAA;IAAA,mEAA2D;IAC3D;IAAA,2EAA0B;IAAA,gFAAoB;IAAA,4DAAO;IACzD;IAAA,4DAAY;;;IAoDxB,wEACI;IAAA;IAAA,yEACI;IAAA;IAAA,yEAAsB;IAAA,uDAAc;IAAA,4DAAK;IACzC;IAAA,yEAAsB;IAAA,uDAAwC;;IAAA,4DAAK;IACnE;IAAA,0EAAsB;IAAA,wDAA2B;IAAA,4DAAK;IACtD;IAAA,0EACI;IAAA;IAAA,wEACJ;IAAA;IAAA,4DAAK;IACL;IAAA,0EACI;IAAA;IAAA,wEACJ;IAAA;IAAA,4DAAK;IACL;IAAA,0EACI;IAAA;IAAA,wEACJ;IAAA;IAAA,4DAAK;IACT;IAAA,4DAAK;IACT;IAAA,4DAAQ;;;IAbsB,0DAAc;IAAd,+EAAc;IACd,0DAAwC;IAAxC,oKAAwC;IACxC,0DAA2B;IAA3B,4FAA2B;IAEH,0DAAuB;IAAvB,oFAAuB;IAGvB,0DAAyB;IAAzB,sFAAyB;IAGzB,0DAAwB;IAAxB,qFAAwB;;;IAtC1F,+EAEI;IAAA;IAAA,qEACI;IAAA;IAAA,oEAAG;IAAA,uDAAmC;IAAA,4DAAI;IAAC,gFAAoB;IAAA,4DAAK;IACxE;IAAA,0EACI;IAAA;IAAA,6EACI;IAAA;IAAA,0EACI;IAAA;IAAA,sEACI;IAAA;IAAA,4EAAmB;IAAA,wEAAY;IAAA,4DAAO;IAC1C;IAAA,4DAAK;IACL;IAAA,sEACI;IAAA;IAAA,4EAAmB;IAAA,0EAAc;IAAA,4DAAO;IAC5C;IAAA,4DAAK;IACL;IAAA,sEACI;IAAA;IAAA,4EAAmB;IAAA,2EAAe;IAAA,4DAAO;IAC7C;IAAA,4DAAK;IACL;IAAA,sEACI;IAAA;IAAA,4EAAmB;IAAA,oEAAQ;IAAA,4DAAO;IACtC;IAAA,4DAAK;IACL;IAAA,sEACI;IAAA;IAAA,4EAAmB;IAAA,oEAAQ;IAAA,4DAAO;IACtC;IAAA,4DAAK;IACL;IAAA,sEACI;IAAA;IAAA,4EAAmB;IAAA,mEAAO;IAAA,4DAAO;IACrC;IAAA,4DAAK;IACT;IAAA,4DAAK;IACL;IAAA,2IACI;IAeR;IAAA,4DAAQ;IACZ;IAAA,4DAAM;IACV;IAAA,4DAAW;;;IAzCA,0DAAmC;IAAnC,iHAAmC;IAuB3B,2DAAoC;IAApC,8FAAoC;;;;IAwC3C,wEACI;IAAA;IAAA,yEACI;IAAA;IAAA,yEAAsB;IAAA,uDAAkB;IAAA,4DAAK;IAC7C;IAAA,yEAAsB;IAAA,uDAAwC;;IAAA,4DAAK;IACnE;IAAA,0EAAsB;IAAA,wDAAc;IAAA,4DAAK;IACzC;IAAA,0EACI;IAAA;IAAA,8EAA+D;IAAvB,oVAAsB;IAAC,uEAAW;IAAA,4DAAS;IACvF;IAAA,4DAAK;IACT;IAAA,4DAAK;IACT;IAAA,4DAAQ;;;IAPsB,0DAAkB;IAAlB,mFAAkB;IAClB,0DAAwC;IAAxC,oKAAwC;IACxC,0DAAc;IAAd,+EAAc;;;IAzBxD,+EAEI;IAAA;IAAA,qEACI;IAAA;IAAA,oEAAG;IAAA,iFAAsB;IAAA,4DAAI;IAAA,4DAAK;IACtC;IAAA,0EACI;IAAA;IAAA,4EACI;IAAA;IAAA,0EACI;IAAA;IAAA,sEACI;IAAA;IAAA,4EAAmB;IAAA,wEAAY;IAAA,4DAAO;IAC1C;IAAA,4DAAK;IACL;IAAA,sEACI;IAAA;IAAA,4EAAmB;IAAA,gFAAoB;IAAA,4DAAO;IAClD;IAAA,4DAAK;IACL;IAAA,sEACI;IAAA;IAAA,4EAAmB;IAAA,mEAAO;IAAA,4DAAO;IACrC;IAAA,4DAAK;IACL;IAAA,sEACI;IAAA;IAAA,4EAAmB;IAAA,kEAAM;IAAA,4DAAO;IACpC;IAAA,4DAAK;IAET;IAAA,4DAAK;IACL;IAAA,2IACI;IASR;IAAA,4DAAQ;IACZ;IAAA,4DAAM;IACV;IAAA,4DAAW;;;IAZQ,2DAAyC;IAAzC,mGAAyC;;AD3KrD,MAAM,0BAA0B;IA8BrC,YAAoB,YAAyB,EACnC,iBAAoC,EACpC,QAAoC,EACpC,QAAqB,EACrB,iCAAmE;QAJzD,iBAAY,GAAZ,YAAY,CAAa;QACnC,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,aAAQ,GAAR,QAAQ,CAA4B;QACpC,aAAQ,GAAR,QAAQ,CAAa;QACrB,sCAAiC,GAAjC,iCAAiC,CAAkC;QA7B7E,iBAAY,GAAG,EAAE,CAAC;QAGlB,kBAAa,GAAmB,EAAE,CAAC;QACnC,sBAAiB,GAAK,EAAE,CAAC;QACzB,mBAAc,GAAmB,EAAE,CAAC;QAEpC,qBAAgB,GAAG,2DAAW,CAAC,oBAAoB,CAAC;QACpD,sBAAiB,GAA0B,EAAE,CAAC;QAC9C,8BAAyB,GAAY,KAAK,CAAC;QAC3C,kCAA6B,GAAW,CAAC,CAAC;QAK1C,mBAAc,GAAY,KAAK,CAAC;QAKhC,SAAI,GAAC,IAAI,IAAI,EAAE,CAAC;QAChB,YAAO,GAAE,IAAI,IAAI,EAAE,CAAC;QAShB,IAAI,CAAC,eAAe,GAAG,IAAI,kHAAmB,EAAE,CAAC;IACnD,CAAC;IACH,WAAW,CAAC,OAAsB;QAChC,+DAA+D;IACjE,CAAC;IACD,QAAQ;QACN,uBAAuB;QACvB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,UAAU,CAAC;QACtF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACvF,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;YAClD,WAAW,EAAE,CAAC,IAAI,EAAC,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACzC,YAAY,EAAE,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC3C,eAAe,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC5C,SAAS,EAAC,CAAC,IAAI,CAAC;YAChB,aAAa,EAAC,CAAC,IAAI,CAAC;SACrB,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAED,UAAU,CAAC,GAAQ,EAAE,SAAS;QAC5B,IAAG,SAAS,IAAE,eAAe,EAAC;YAC5B,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,KAAK,EAAE,CAAC;SACxD;QACD,IAAG,SAAS,IAAE,YAAY,EAAC;YACzB,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,CAAC;YACpD,IAAI,CAAC,MAAM,EAAE,CAAC;SACf;QACD,IAAG,SAAS,IAAE,WAAW,EAAC;YACxB,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,CAAC;SACpD;IACH,CAAC;IACD,SAAS,CAAC,IAAS;QACjB,OAAO,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9C,CAAC;IAEO,cAAc;QACpB,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,CAAC,eAAsB,EAAE,EAAE;YAC5E,IAAI,CAAC,cAAc,GAAG,eAAe,CAAC;YACtC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,eAAe,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;gBAC7B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3D,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAC,QAAQ,EAAE,KAAK,EAAC,CAAC,EAAC,CAAC;YAClD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,IAAI,CAChE,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAC3C,CAAC;QACJ,CAAC,CAAC;YACA,CAAC,KAAU,EAAE,EAAE;gBACb,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,4BAA4B,EAAE,EAAE,EAAE;oBACnD,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACL,CAAC,CAAC;IACN,CAAC;IAEO,gBAAgB;QACtB,IAAI,CAAC,iCAAiC,CAAC,gCAAgC,EAAE,CAAC,SAAS,CAAC,CAAC,SAAgB,EAAE,EAAE;YACvG,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAClH,SAAS,CAAC,OAAO,CAAC,CAAC,QAAa,EAAE,EAAE;gBAClC,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;oBAC5E,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,aAAa,EAAE,KAAK,EAAE,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;YAC3F,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa;YAC3C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,IAAI,CACjE,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAC5C,CAAC;QACJ,CAAC,CAAC;YACA,CAAC,KAAU,EAAE,EAAE;gBACb,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,8BAA8B,EAAE,EAAE,EAAE;oBACrD,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACL,CAAC,CAAC;IACN,CAAC;IAEO,cAAc,CAAC,KAAK;QAE1B,IAAI,WAAW,CAAC;QAChB,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,EAAE;YACvC,OAAO,IAAI,CAAC,YAAY,CAAC;SAC1B;QACD,IAAI,KAAK,IAAI,KAAK,CAAC,SAAS,EAAE;YAC5B,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,EAAE;gBACvC,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;aAC7C;iBACI;gBACH,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI,EAAE;oBAC5B,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;iBACnD;aACF;YACD,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CACzC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CACjD,CAAC;SACH;aAAM;YACL,OAAO,IAAI,CAAC,YAAY,CAAC;SAC1B;IACH,CAAC;IACO,eAAe,CAAC,KAAK;QAE3B,IAAI,WAAW,CAAC;QAChB,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,EAAE;YACxC,OAAO,IAAI,CAAC,aAAa,CAAC;SAC3B;QACD,IAAI,KAAK,IAAI,KAAK,CAAC,UAAU,EAAE;YAC7B,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,EAAE;gBACxC,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;aAC9C;iBACI;gBACH,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI,EAAE;oBAC7B,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;iBACpD;aACF;YACD,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAC1C,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CACjD,CAAC;SACH;aAAM;YACL,OAAO,IAAI,CAAC,aAAa,CAAC;SAC3B;IACH,CAAC;IAEM,oBAAoB,CAAC,UAAkB;QAC5C,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC;QAC9B,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,IAA2B,EAAE,EAAE;YAC1F,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;gBACnC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;gBAC9B,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;gBACtC,IAAI,CAAC,eAAe,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;gBAC3D,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oBACrC,IAAI,CAAC,YAAY,GAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,GAAE,EAAC,CAAC,KAAK,IAAE,GAAG,CAAC,SAAS,CAAC,CAAC;oBACrE,IAAI,GAAG,CAAC,aAAa,IAAI,CAAC,EAAE;wBACzB,IAAI,CAAC,6BAA6B,GAAG,GAAG,CAAC,oBAAoB,CAAC;wBAC9D,IAAI,CAAC,uBAAuB,GAAG,mCAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;qBAC/E;gBACH,CAAC,CACA;aACF;;gBAEC,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC;QAClC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;QAEzD,IAAI,CAAC,eAAe,GAAG,IAAI,kHAAmB,EAAE,CAAC;QACjD,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;QACvC,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC;QACjC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;IAC9B,CAAC;IACD,gBAAgB,CAAC,KAAK;QACpB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC;QACnC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjE,IAAG,IAAI,CAAC,eAAe,IAAI,CAAC,EAAC;YAC3B,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;YACvF,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,sBAAsB,EAAE,CAAC;YAC3E,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,eAAe,EAAE,CAAC;SACrE;aACG;YACF,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YACpE,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,sBAAsB,EAAE,CAAC;SAC5E;IACH,CAAC;IACD,UAAU;QACR,IAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAC;YACjC,IAAG,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,IAAI,IAAI,CAAC,eAAe,IAAI,SAAS,EAAC;gBAChG,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;gBACnB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,WAAW,CAAC;aAChE;iBACG;gBACF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;gBACjE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;aACpE;YACD,IAAI,aAAa,GAAE,mCAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAC9F,IAAI,CAAC,aAAa,GAAG;gBACnB,YAAY,EAAE,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK;gBAC9D,aAAa,EAAE,IAAI,CAAC,WAAW;gBAC/B,WAAW,EAAE,IAAI,CAAC,SAAS;gBAC3B,eAAe,EAAE,aAAa;gBAC9B,SAAS,EAAE,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,OAAO;aACnD;YACD,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;gBAC1E,IAAG,GAAG,CAAC,cAAc,CAAC,IAAI,IAAI,EAAC;oBAC7B,IAAG,GAAG,CAAC,SAAS,CAAC,IAAI,sBAAsB,EAAC;wBAC1C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,0CAA0C,EAAE,EAAE,EAAE;4BACjE,UAAU,EAAE,CAAC,aAAa,CAAC;4BAC3B,QAAQ,EAAE,IAAI;4BACd,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;qBACJ;yBACG;wBACF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,oCAAoC,EAAE,EAAE,EAAE;4BAC7D,QAAQ,EAAE,IAAI;4BACd,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;qBACF;iBACF;YACH,CAAC,EACD,KAAK,CAAC,EAAE;gBACN,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,+BAA+B,EAAE,EAAE,EAAE;oBACtD,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACL,CAAC,CAAC;YACF,IAAI,CAAC,MAAM,EAAE,CAAC;SACf;aACG;YACF,OAAM;SACP;IACH,CAAC;IAEH,gCAAgC;QAC9B,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC;QACjC,IAAI,CAAC,QAAQ,CAAC,gCAAgC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YACjF,IAAG,GAAG,EAAC;gBACL,IAAI,CAAC,sBAAsB,GAAG,GAAG,CAAC;aACnC;QACH,CAAC,CAAC;IACJ,CAAC;IACD,UAAU;QACR,IAAI,CAAC,QAAQ,CAAC,uCAAuC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YACxF,IAAG,GAAG,CAAC,cAAc,CAAC,EAAC;gBACrB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,EAAE;oBACjD,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;YACD,IAAI,CAAC,gCAAgC,EAAE,CAAC;QAC1C,CAAC,CAAC;IACJ,CAAC;;oGA1RU,0BAA0B;0GAA1B,0BAA0B;kEA4B1B,iEAAkB;;;;;;QChD/B,8EACI;QAAA;QAAA,mFACI;QAAA;QAAA,0EACI;QAAA;QAAA,yEACI;QAAA;QAAA,yEACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,wGACP;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QACtC;QAAA,4DAAY;QACZ;QAAA,0EAEA;QAAA;QAAA,8HAEA;QAEA;QAAA,kIAAmE;QACnE;QAAA,4FACA;QAD4C,8KAAkB,mDAA+C,SAAE,sCAAkC,IAAC;QAClJ;QAAA,uIAEI;QACJ;QAAA,uIAA8F;QAC9F;QAAA,uIAEI;;QAEJ;QAAA,4DAAmB;QACnB;QAAA,qIACI;QAGJ;QAAA,qIACI;QAGR;QAAA,4DAAiB;QAErB;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,sGACP;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QACtC;QAAA,4DAAY;QAEZ;QAAA,2EAEA;QAAA;QAAA,8HAEA;QAEA;QAAA,kIAAkE;QAClE;QAAA,4FACA;QADsE,qLAAkB,yCAAqC,IAAC;QAC9H;QAAA,uIAEI;QACJ;QAAA,uIAA6F;QAC7F;QAAA,uIAEI;;QAEJ;QAAA,4DAAmB;QACnB;QAAA,qIACI;QAGJ;QAAA,qIACI;QAGR;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,0HACI;QASJ;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,yGACP;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QACtC;QAAA,4DAAY;QACZ;QAAA,6EACA;QADyF,iSAAS,WAAa,IAAC;QAAhH,4DACA;QAAA;QAAA,6JAEI;QAEJ;QAAA,wFAAwE;QACxE;QAAA,uFAAyC;QACzC;QAAA,qIACI;QAGJ;QAAA,qIACI;QAGR;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QAEN;QAAA,2EACI;QAAA;QAAA,sFACI;QAAA;QAAA,8EAAW;QAAA,mFAAsB;QAAA,4DAAY;QAC7C;QAAA,4EAAgF;QACpF;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QAEN;QAAA,4EACI;QAAA;QAAA,+EACI;QADK,oJAAS,YAAQ,IAAC;QACvB;QAAA,6EAAU;QAAA,4FACV;QAAA,4DAAW;QAAA,wFACf;QAAA,4DAAS;QACT;QAAA,+EACI;QADkB,oJAAS,gBAAY,IAAC;QACxC,6FAAM;QAAA,4DAAS;QACvB;QAAA,4DAAM;QAEV;QAAA,4DAAM;QACV;QAAA,4DAAO;QAEX;QAAA,4DAAmB;QACvB;QAAA,4DAAW;QAEX;QAAA,sIAEI;QA2CJ;QAAA,sIAEI;QAgCJ;QAAA,oFAMI;QAAA;QAAA,0EAAmB;QAAA,wEAAW;QAAA,4DAAI;QACtC;QAAA,4DAAc;;;;;QAjNA,0DAAkC;QAAlC,+FAAkC;QAGZ,0DAA+B;QAA/B,uGAA+B;QAId,0DAA4B;QAA5B,yFAA4B;QAE1B,0DAA6C;QAA7C,2GAA6C;QAIxD,0DAA8C;QAA9C,4GAA8C;QAChD,0DAAyB;QAAzB,sFAAyB;QAEvC,0DAAgH;QAAhH,kLAAgH;QAE/F,0DAAwE;QAAxE,sIAAwE;QACjF,0DAA8C;QAA9C,4JAA8C;QAK/C,0DAAmE;QAAnE,iIAAmE;QAInE,0DAAuE;QAAvE,qIAAuE;QAQtE,0DAA+B;QAA/B,uGAA+B;QAKd,0DAA2B;QAA3B,wFAA2B;QAEzB,0DAA4C;QAA5C,0GAA4C;QAIvD,0DAA6C;QAA7C,2GAA6C;QAC/C,0DAAyB;QAAzB,sFAAyB;QAEvC,0DAA8G;QAA9G,gLAA8G;QAE7F,0DAAuE;QAAvE,qIAAuE;QAChF,0DAA6C;QAA7C,2JAA6C;QAK9C,0DAAkE;QAAlE,gIAAkE;QAIlE,0DAAsE;QAAtE,oIAAsE;QAMpF,0DAA4B;QAA5B,0FAA4B;QAWb,0DAA+B;QAA/B,uGAA+B;QAIpC,0DAAe;QAAf,4EAAe;QACW,0DAAgD;QAAhD,8GAAgD;QAIhD,0DAAc;QAAd,qEAAc;QAEpC,0DAAsE;QAAtE,oIAAsE;QAItE,0DAA8E;QAA9E,gJAA8E;QAQ7E,0DAA+B;QAA/B,uGAA+B;QAqBpB,2DAAiC;QAAjC,+FAAiC;QA6CpD,0DAAmE;QAAnE,qIAAmE;QAqC9F,0DAAoB;QAApB,6EAAoB;;6FD3LR,0BAA0B;cALtC,uDAAS;eAAC;gBACT,QAAQ,EAAE,wBAAwB;gBAClC,WAAW,EAAE,qCAAqC;gBAClD,SAAS,EAAE,CAAC,qCAAqC,CAAC;aACnD;iiBA6BgC,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;;;;;;;;;;;;;;AEhD/B;AAAA;AAAA;AAAA;AAAkD;;;AAO3C,MAAM,aAAa;IAExB,gBAAgB,CAAC;IAEjB,QAAQ;IACR,CAAC;;0EALU,aAAa;6FAAb,aAAa;QCP1B,yEACI;QAAA;QAAA,2EAA+B;QACnC;QAAA,4DAAM;;6FDKO,aAAa;cALzB,uDAAS;eAAC;gBACT,QAAQ,EAAE,UAAU;gBACpB,WAAW,EAAE,uBAAuB;gBACpC,SAAS,EAAE,CAAC,uBAAuB,CAAC;aACrC;;;;;;;;;;;;;;AELD;AAAA;AAAO,MAAM,eAAe;IAA5B;QAcW,cAAS,GAAY,KAAK,CAAC;IAKtC,CAAC;CAAA;;;;;;;;;;;;;ACpBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AAGsB;AACN;;;AAMpD,MAAM,wBAAwB;IAInC,YAAoB,WAAuB;QAAvB,gBAAW,GAAX,WAAW,CAAY;QACvC,IAAI,CAAC,UAAU,GAAG,uDAAe,CAAC,mBAAmB,CAAC;QACtD,IAAI,CAAC,oBAAoB,GAAG,qEAAW,CAAC,gBAAgB,CAAC;IAC7D,CAAC;IAEM,yBAAyB,CAAC,OAA4B;QAC3D,IAAI,IAAI,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,yBAAyB,CAAC;QACjF,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAEM,uCAAuC,CAAC,UAAkB,EAAE,SAAiB;QAClF,IAAI,IAAI,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,uCAAuC,GAAG,UAAU,GAAG,aAAa,GAAG,SAAS,CAAC;QACxI,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;;gGAjBY,wBAAwB;2GAAxB,wBAAwB,WAAxB,wBAAwB,mBAFvB,MAAM;6FAEP,wBAAwB;cAHpC,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACTD;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AAKsB;AACN;;;AAOpD,MAAM,0BAA0B;IAMrC,YAAoB,WAAuB;QAAvB,gBAAW,GAAX,WAAW,CAAY;QACvC,IAAI,CAAC,UAAU,GAAG,qEAAW,CAAC,SAAS,CAAC;QACxC,IAAI,CAAC,UAAU,GAAG,uDAAe,CAAC,mBAAmB,CAAC;QACtD,IAAI,CAAC,oBAAoB,GAAG,qEAAW,CAAC,gBAAgB,CAAC;QACzD,IAAI,CAAC,qBAAqB,GAAG,qEAAW,CAAC,oBAAoB;IACjE,CAAC;IAEM,oBAAoB,CAAC,IAAY;QACpC,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,6BAA6B,GAAG,IAAI,CAAC;QACpG,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAgB,GAAG,CAAC,CAAC;IACpD,CAAC;IAEM,qBAAqB;QACxB,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC;QAClE,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAsB,GAAG,CAAC,CAAC;IAC1D,CAAC;IAEM,gCAAgC,CAAC,SAAiB;QACrD,IAAI,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,gCAAgC,GAAG,SAAS,CAAC;QACnG,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAsB,GAAG,CAAC,CAAC;IAC1D,CAAC;IAEM,uBAAuB;QAC1B,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC;QACpE,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAwB,GAAG,CAAC,CAAC;IAC5D,CAAC;IAEM,uBAAuB,CAAC,UAAkB;QAC7C,IAAI,IAAI,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,uBAAuB,GAAG,UAAU,CAAC;QAC5F,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAwB,IAAI,CAAC,CAAC;IAC7D,CAAC;IACH,aAAa;IACJ,4BAA4B,CAAC,IAAY;QAC9C,IAAI,IAAI,GAAG,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,UAAU,CAAC,4BAA4B,GAAG,IAAI,CAAC;QAC5F,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IACQ,kCAAkC,CAAC,YAAoB;QAC1D,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,kCAAkC,GAAG,YAAY,CAAC;QAC/F,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAwB,IAAI,CAAC,CAAC;IAC7D,CAAC;IAEM,mCAAmC,CAAC,UAAkB;QACzD,IAAI,IAAI,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,mCAAmC,GAAG,UAAU,CAAC;QACxG,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAsB,IAAI,CAAC,CAAC;IAC3D,CAAC;IAEM,gBAAgB,CAAC,OAA4B;QAChD,IAAI,IAAI,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC;QACxE,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,gBAAgB,CAAC,uBAA+B;QAC5C,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,wBAAwB,GAAG,uBAAuB,CAAC;QAChG,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,mBAAmB,CAAC,iBAAyB;QACzC,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,mBAAmB,GAAG,iBAAiB,CAAC;QACrF,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,kBAAkB,CAAC,iBAAyB,EAAE,WAAmB;QAC7D,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,6BAA6B,GAAG,iBAAiB,GAAG,SAAS,GAAG,WAAW,CAAC;QACzH,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,UAAU,CAAC,aAAqB;QAC5B,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,aAAa,CAAC;QACxE,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,YAAY,CAAC,KAAa,EAAE,MAAc;QACtC,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,2BAA2B,GAAG,KAAK,GAAG,UAAU,GAAG,MAAM,CAAC;QACvG,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,cAAc,CAAC,OAAY;QACvB,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,yBAAyB,CAAC;QACvE,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,wBAAwB,CAAC,QAAgB,EAAE,KAAa;QACpD,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,wBAAwB,GAAG,QAAQ,GAAG,cAAc,GAAG,KAAK,CAAC;QAC5G,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAmB,IAAI,CAAC,CAAC;IACtD,CAAC;IACD,sBAAsB,CAAC,YAAoB;QACzC,IAAI,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,sBAAsB,GAAG,YAAY,CAAC;QAC5F,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAgB,GAAG,CAAC;IACnD,CAAC;IACD,yBAAyB,CAAC,iBAAiB;QACzC,IAAI,IAAI,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,yBAAyB,CAAC;QAC/E,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;IAC1D,CAAC;IAED,gCAAgC,CAAC,KAAK;QACpC,IAAI,IAAI,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,gCAAgC,GAAG,KAAK,CAAC;QAC9F,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,uCAAuC,CAAC,KAAK;QAC3C,IAAI,IAAI,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,uCAAuC,GAAG,KAAK,CAAC;QACrG,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,4BAA4B,CAAC,KAAK;QAChC,IAAI,IAAI,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,4BAA4B,GAAG,KAAK,CAAC;QAC1F,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;;oGAjHU,0BAA0B;6GAA1B,0BAA0B,WAA1B,0BAA0B,mBAFzB,MAAM;6FAEP,0BAA0B;cAHtC,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACZD;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AAEgB;AACQ;;;AAQ5D,MAAM,sBAAsB;IAMjC,YAAoB,WAAuB;QAAvB,gBAAW,GAAX,WAAW,CAAY;QACvC,IAAI,CAAC,UAAU,GAAG,qEAAW,CAAC,SAAS,CAAC;QAC1C,IAAI,CAAC,UAAU,GAAG,uDAAe,CAAC,eAAe,CAAC;QAClD,IAAI,CAAC,oBAAoB,GAAG,qEAAW,CAAC,gBAAgB,CAAC;IAC3D,CAAC;IAEM,uBAAuB,CAAC,SAAgB;QAC7C,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,uBAAuB,GAAG,SAAS,CAAC;QAChF,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAEM,cAAc;QACjB,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;QAC3D,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IAEM,aAAa;QAChB,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QAC1D,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IAEM,WAAW,CAAC,KAAa;QAC5B,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,KAAK,CAAC;QACtE,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IAEM,gBAAgB,CAAC,eAAgC;QACpD,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC;QAC9D,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IACxD,CAAC;IAEM,sBAAsB,CAAC,KAAa;QACvC,IAAI,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,sBAAsB,GAAG,KAAK,CAAC;QACrF,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IACM,6BAA6B,CAAC,KAAa,EAAE,SAAiB,EAAE,QAAgB;QACrF,IAAI,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,sBAAsB,GAAG,KAAK,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,QAAQ,CAAC;QACxH,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IACQ,8BAA8B,CAAC,KAAa;QACjD,IAAI,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,8BAA8B,GAAG,KAAK,CAAC;IAC/F,CAAC;;4FA/CU,sBAAsB;yGAAtB,sBAAsB,WAAtB,sBAAsB,mBAFrB,MAAM;6FAEP,sBAAsB;cAHlC,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACVD;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AAEwB;AACR;;;AAOpD,MAAM,iCAAiC;IAI5C,YAAoB,WAAuB;QAAvB,gBAAW,GAAX,WAAW,CAAY;QACvC,IAAI,CAAC,UAAU,GAAG,qEAAW,CAAC,SAAS,CAAC;QACxC,IAAI,CAAC,UAAU,GAAG,uDAAe,CAAC,0BAA0B,CAAC;QAC7D,IAAI,CAAC,oBAAoB,GAAG,qEAAW,CAAC,gBAAgB,CAAC;IAC7D,CAAC;IACM,uBAAuB;QAC1B,IAAI,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC;QAC9E,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IACM,0BAA0B;QAC/B,IAAI,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,0BAA0B,CAAC;QACjF,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IACQ,yBAAyB,CAAC,eAAgC;QAC7D,IAAI,IAAI,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,yBAAyB,CAAC;QACjF,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IACxD,CAAC;IAEM,sBAAsB,CAAC,UAAkB,EAAE,QAAgB;QAC9D,IAAI,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,sBAAsB,GAAG,UAAU,GAAG,GAAG,GAAG,QAAQ,CAAC;QAC3G,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IACM,0BAA0B,CAAC,UAAkB;QAClD,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,0BAA0B,GAAG,UAAU,CAAC;QACpF,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;;kHA7BU,iCAAiC;oHAAjC,iCAAiC,WAAjC,iCAAiC,mBAFhC,MAAM;6FAEP,iCAAiC;cAH7C,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACTD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAyC;AACM;AACmB;AACH;AAC+C;AACP;AACtC;AACiB;AACqB;AACG;AACjB;AACE;AAC5C;AAC2D;AACc;;AACxH,gFAAgF;AAezE,MAAM,iBAAiB;;gGAAjB,iBAAiB;4JAAjB,iBAAiB,kBAVnB;YACP,4DAAY;YACZ,+EAAuB;YACvB,kHAAwB;YACxB,0DAAW;YACX,kEAAmB;YACtB,yGAAiC;YACjC,6DAAgB;YACb,4FAA2B;SAAG;mIAErB,iBAAiB,mBAZb,0HAA4B,EAAE,6EAAa,EAAE,8FAAkB,EAAE,mHAAyB,EAAE,sHAA0B,EAAE,uHAA0B,EAAE,qIAA8B,aAG/L,4DAAY;QACZ,+EAAuB;QACvB,kHAAwB;QACxB,0DAAW;QACX,kEAAmB;QACtB,yGAAiC;QACjC,6DAAgB;QACb,4FAA2B;6FAElB,iBAAiB;cAb7B,sDAAQ;eAAC;gBACR,YAAY,EAAE,CAAC,0HAA4B,EAAE,6EAAa,EAAE,8FAAkB,EAAE,mHAAyB,EAAE,sHAA0B,EAAE,uHAA0B,EAAE,qIAA8B,EAAK;gBAEtM,OAAO,EAAE;oBACP,4DAAY;oBACZ,+EAAuB;oBACvB,kHAAwB;oBACxB,0DAAW;oBACX,kEAAmB;oBACtB,yGAAiC;oBACjC,6DAAgB;oBACb,4FAA2B;iBAAG;aACjC;;;;;;;;;;;;;;AC7BD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAyC;AACc;AACU;AAC6C;AACP;AACG;AACA;;;AAE1G,MAAM,MAAM,GAAW;IAErB;QACE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,6EAAa,EAAE,QAAQ,EAAE;YAC5C,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,0HAA4B,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,EAAE;YACxG,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,mHAAyB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAE;YAC/F,EAAE,IAAI,EAAE,mBAAmB,EAAE,SAAS,EAAE,sHAA0B,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAAE;YAC3G,EAAE,IAAI,EAAE,oBAAoB,EAAE,SAAS,EAAE,sHAA0B,EAAE,IAAI,EAAE,EAAC,KAAK,EAAE,mBAAmB,EAAC,EAAE;SAE1G;KACF;CACF,CAAC;AAMK,MAAM,uBAAuB;;sGAAvB,uBAAuB;wKAAvB,uBAAuB,kBAHzB,CAAC,4DAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAC9B,4DAAY;mIAEX,uBAAuB,uFAFxB,4DAAY;6FAEX,uBAAuB;cAJnC,sDAAQ;eAAC;gBACR,OAAO,EAAE,CAAC,4DAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACxC,OAAO,EAAE,CAAC,4DAAY,CAAC;aACxB;;;;;;;;;;;;;;ACxBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAyC;AACc;AAC+C;AAClC;AACoB;AACuB;AACrC;AACuB;AACX;AACW;AACR;AAClB;AACA;AACQ;AACsC;AAC7B;AACW;AAC+B;AACxB;AACf;AACH;AACe;AAClB;AACjB;AACiB;AACd;AACS;AACG;AACkC;AAC/B;AACT;AACS;;;AAEtF,MAAM,MAAM,GAAW;IAErB;QACE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,gFAAc,EAAE,QAAQ,EAAE;YAC7C,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,kHAAwB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE;YACvF,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,oGAAoB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;YACxF,EAAE,IAAI,EAAE,mBAAmB,EAAE,SAAS,EAAE,2HAA2B,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,EAAE;YAC7G,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,sFAAgB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;YAC5E,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,6GAAuB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE;YAClG,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,kGAAoB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE;YACtF,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,6GAAuB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE;YAClG,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,sGAAqB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE;YACzF,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,oFAAe,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;YACzE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,oFAAe,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YACvE,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,4FAAiB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE;YAChF,EAAE,IAAI,EAAE,qBAAqB,EAAE,SAAS,EAAE,kIAA6B,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,uBAAuB,EAAE,EAAE;YACnH,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,qGAAoB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;YACzF,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,gHAAuB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAE;YACnG,EAAE,IAAI,EAAE,2BAA2B,EAAE,SAAS,EAAE,+IAAkC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,4BAA4B,EAAE,EAAE;YACnI,EAAE,IAAI,EAAE,kBAAkB,EAAE,SAAS,EAAE,uHAA0B,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAE;YACzG,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,wGAAqB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE;YAC5F,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,qGAAoB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;YACzF,EAAE,IAAI,EAAE,kBAAkB,EAAE,SAAS,EAAE,oHAAyB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAE;YACxG,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,kGAAmB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YAC9E,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,iFAAc,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE;YAC3E,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,kGAAmB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE;YACtF,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,oFAAe,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;YACzE,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,6FAAkB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE;YAClF,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,gGAAmB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE;YACrF,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,kIAA6B,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,EAAE;YAC5G,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,mGAAoB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE;YACxF,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,0FAAiB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE;YAC5F,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,qGAAoB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;SAC1F;KACF;CACF,CAAC;AAMK,MAAM,kBAAkB;;iGAAlB,kBAAkB;8JAAlB,kBAAkB,kBAHpB,CAAC,4DAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAC9B,4DAAY;mIAEX,kBAAkB,uFAFnB,4DAAY;6FAEX,kBAAkB;cAJ9B,sDAAQ;eAAC;gBACR,OAAO,EAAE,CAAC,4DAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACxC,OAAO,EAAE,CAAC,4DAAY,CAAC;aACxB;;;;;;;;;;;;;;ACzED;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAyC;AACM;AACmB;AAEN;AACQ;AACoB;AACe;AACD;AACS;AACrC;AACuB;AACX;AACW;AACR;AAClB;AACA;AACQ;AACsC;AAC7B;AACW;AAC+B;AACxB;AACf;AACH;AACe;AAClB;AACjB;AACiB;AACd;AACS;AACG;AACkC;AAC/B;AACT;AAEhB;AAC2B;AACb;AACpB;AACuB;AACU;AACa;AACV;AACf;AACuB;AACO;AAC3D;;AAuBxC,MAAM,WAAW;;0FAAX,WAAW;gJAAX,WAAW,kBAnBb;YACP,4DAAY;YACZ,wEAAkB;YAClB,kHAAwB;YACxB,0DAAW;YACX,kEAAmB;YACnB,2EAAmB;YACnB,yFAA0B;YAC1B,sGAAgC;YAChC,mHAAsC;YACtC,iHAAqC;YACrC,wHAAwC;YACxC,qEAAa;YACb,4FAAwB;YACxB,yGAAiC;YACjC,2FAA2B;YAC3B,6DAAgB;SACjB;mIAEU,WAAW,mBApBP,oGAAoB,EAAE,kHAAwB,EAAE,2HAA2B,EAAE,sFAAgB,EAAE,8GAAuB,EAAE,mGAAoB,EAAE,8GAAuB,EAAE,sGAAqB,EAAE,oFAAe,EAAE,oFAAe,EAAE,4FAAiB,EAAE,kIAA6B,EAAE,qGAAoB,EAAE,gHAAuB,EAAE,+IAAkC,EAAE,uHAA0B,EAAE,wGAAqB,EAAE,qGAAoB,EAAE,oHAAyB,EAAE,kGAAmB,EAAE,iFAAc,EAAE,kGAAmB,EAAE,oFAAe,EAAE,6FAAkB,EAAE,gGAAmB,EAAE,kIAA6B,EAAE,mGAAoB,EAAE,0FAAiB,EAAE,gFAAc,EAAE,qGAAoB,aAEtrB,4DAAY;QACZ,wEAAkB;QAClB,kHAAwB;QACxB,0DAAW;QACX,kEAAmB;QACnB,2EAAmB;QACnB,yFAA0B;QAC1B,sGAAgC;QAChC,mHAAsC;QACtC,iHAAqC;QACrC,wHAAwC;QACxC,qEAAa;QACb,4FAAwB;QACxB,yGAAiC;QACjC,2FAA2B;QAC3B,6DAAgB;6FAGP,WAAW;cArBvB,sDAAQ;eAAC;gBACR,YAAY,EAAE,CAAC,oGAAoB,EAAE,kHAAwB,EAAE,2HAA2B,EAAE,sFAAgB,EAAE,8GAAuB,EAAE,mGAAoB,EAAE,8GAAuB,EAAE,sGAAqB,EAAE,oFAAe,EAAE,oFAAe,EAAE,4FAAiB,EAAE,kIAA6B,EAAE,qGAAoB,EAAE,gHAAuB,EAAE,+IAAkC,EAAE,uHAA0B,EAAE,wGAAqB,EAAE,qGAAoB,EAAE,oHAAyB,EAAE,kGAAmB,EAAE,iFAAc,EAAE,kGAAmB,EAAE,oFAAe,EAAE,6FAAkB,EAAE,gGAAmB,EAAE,kIAA6B,EAAE,mGAAoB,EAAE,0FAAiB,EAAE,gFAAc,EAAE,qGAAoB,CAAC;gBACzrB,OAAO,EAAE;oBACP,4DAAY;oBACZ,wEAAkB;oBAClB,kHAAwB;oBACxB,0DAAW;oBACX,kEAAmB;oBACnB,2EAAmB;oBACnB,yFAA0B;oBAC1B,sGAAgC;oBAChC,mHAAsC;oBACtC,iHAAqC;oBACrC,wHAAwC;oBACxC,qEAAa;oBACb,4FAAwB;oBACxB,yGAAiC;oBACjC,2FAA2B;oBAC3B,6DAAgB;iBACjB;aACF;;;;;;;;;;;;;;ACrED;AAAA;AAAA;AAAA;AAAkD;;;AAO3C,MAAM,cAAc;IAEzB,gBAAgB,CAAC;IAEjB,QAAQ;IACR,CAAC;;4EALU,cAAc;8FAAd,cAAc;QCP3B,yEACQ;QAAA;QAAA,2EAA+B;QACvC;QAAA,4DAAM;;6FDKO,cAAc;cAL1B,uDAAS;eAAC;gBACT,QAAQ,EAAE,WAAW;gBACrB,WAAW,EAAE,wBAAwB;gBACrC,SAAS,EAAE,CAAC,wBAAwB,CAAC;aACtC;;;;;;;;;;;;;;AEND;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0D;AAC6B;AACX;AAEf;AAEf;AACmB;;;;;;;;;;;;;;;;;;ICE5C,gFACG;IAAA,uDAAe;IAAA,4DAAa;;;IADY,gFAAoB;IAC5D,0DAAe;IAAf,kHAAe;;;;IAwBf,yEACG;IAAA;IAAA,mFAGA;IAHc,0WAA6C,IAAI,IAAC;IAGhE;IAAA,4DAAe;IAClB;IAAA,4DAAK;;;IAHC,0DAA0E;IAA1E,iJAA0E;;;;IAIhF,yEACG;IAAA;IAAA,mFAGA;IAHc,6OAAS,wBAAwB,IAAC,+SAC1B,+CAAmC,GAAG,IAAI,IADhB;IAGhD;IAAA,4DAAe;IAClB;IAAA,4DAAK;;;;IAFC,0DAAmD;IAAnD,uHAAmD;;;IAMzD,yEAAsC;IAAA,qEAAU;IAAA,4DAAK;;;IACrD,yEAAwC;IAAA,uDAAqB;IAAA,4DAAK;;;IAA1B,0DAAqB;IAArB,gGAAqB;;;IAEhE,oEAAyE;;;;IACzE,yEAEA;IADG,4UAAS,+CAAmC,IAAC;IAChD;IAAA,4DAAK;;;;IA8BF,yEACG;IAAA;IAAA,mFAGA;IAHc,0WAA4C,IAAI,IAAC;IAG/D;IAAA,4DAAe;IAClB;IAAA,4DAAK;;;IAHC,0DAAwE;IAAxE,iJAAwE;;;;IAI9E,yEACG;IAAA;IAAA,mFAGA;IAHc,8OAAS,wBAAwB,IAAC,gTAC1B,8CAAkC,GAAG,IAAI,IADf;IAGhD;IAAA,4DAAe;IAClB;IAAA,4DAAK;;;;IAFC,0DAAkD;IAAlD,uHAAkD;;;IAMxD,yEAAsC;IAAA,qEAAU;IAAA,4DAAK;;;IACrD,yEAAwC;IAAA,uDAAqB;IAAA,4DAAK;;;IAA1B,0DAAqB;IAArB,gGAAqB;;;IAEhE,oEAAwE;;;;IACxE,yEAEA;IADG,6UAAS,8CAAkC,IAAC;IAC/C;IAAA,4DAAK;;;;IAxF1B,+EACG;IAAA;IAAA,mFACG;IAAA;IAAA,0EACG;IAAA;IAAA,0EACG;IAAA;IAAA,2EACG;IAAA;IAAA,mFACG;IAAA;IAAA,kFAAgB;IAAA,2EAAe;IAAA,4DAAiB;IACnD;IAAA,4DAAkB;IAClB;IAAA,2EACG;IAAA;IAAA,kFACG;IAAA;IAAA,6EAAW;IAAA,kEAAM;IAAA,4DAAY;IAC7B;IAAA,iFACH;IAD6C,4VAA0C;IAApF,4DACH;IAAA;IAAA,4DAAiB;IACjB;IAAA,6EACG;IAAA;IACA;IAAA,6EACG;IAAA;IAAA,6HACG;IAKH;IAAA,6HACG;IAKN;IAAA,qEAAe;IACf;IACA;IAAA,6EACG;IAAA;IAAA,6HAAsC;IACtC;IAAA,6HAAwC;IAC3C;IAAA,qEAAe;IACf;IAAA,6HAAoE;IACpE;IAAA,6HAEA;IACH;IAAA,4DAAQ;IACX;IAAA,4DAAM;IACT;IAAA,4DAAW;IACd;IAAA,4DAAM;IACN;IAAA,2EACG;IAAA;IAAA,2EACG;IAAA;IAAA,8EACG;IADqC,gVAAmC;IACxE;IAAA,4EAAU;IAAA,yEAAa;IAAA,4DAAW;IACrC;IAAA,4DAAS;IACZ;IAAA,4DAAM;IACN;IAAA,2EACG;IAAA;IAAA,8EACG;IADqC,gVAAmC;IACxE;IAAA,4EAAU;IAAA,0EAAc;IAAA,4DAAW;IACtC;IAAA,4DAAS;IACZ;IAAA,4DAAM;IACT;IAAA,4DAAM;IACN;IAAA,2EACG;IAAA;IAAA,gFACG;IAAA;IAAA,mFACG;IAAA;IAAA,kFAAgB;IAAA,0EAAc;IAAA,4DAAiB;IAClD;IAAA,4DAAkB;IAClB;IAAA,kFACG;IAAA;IAAA,6EAAW;IAAA,kEAAM;IAAA,4DAAY;IAC7B;IAAA,iFACH;IAD6C,2VAAyC;IAAnF,4DACH;IAAA;IAAA,4DAAiB;IACjB;IAAA,2EACG;IAAA;IAAA,6EACG;IAAA;IACA;IAAA,6EACG;IAAA;IAAA,+HACG;IAKH;IAAA,+HACG;IAKN;IAAA,qEAAe;IACf;IACA;IAAA,8EACG;IAAA;IAAA,+HAAsC;IACtC;IAAA,+HAAwC;IAC3C;IAAA,qEAAe;IACf;IAAA,+HAAmE;IACnE;IAAA,+HAEA;IACH;IAAA,4DAAQ;IACX;IAAA,4DAAM;IACT;IAAA,4DAAW;IACd;IAAA,4DAAM;IACT;IAAA,4DAAM;IACN;IAAA,4EACG;IAAA;IAAA,4EACG;IAAA;IAAA,+EACG;IADwB,gUAAkB;IAC1C;IAAA,6EAAU;IAAA,kEAAK;IAAA,4DAAW;IAC1B,kGACH;IAAA,4DAAS;IACT;IAAA,+EAC+B;IAA5B,yUAA2B;IAAC,iEAAI;IAAA,4DAAS;IAC/C;IAAA,4DAAM;IACT;IAAA,4DAAM;IACT;IAAA,4DAAmB;IACtB;IAAA,4DAAW;;;IA5FwB,2DAAuC;IAAvC,uGAAuC;IAqBlC,2DAAgD;IAAhD,iHAAgD;IACvD,0DAA6D;IAA7D,kHAA6D;IA6B3D,2DAAsC;IAAtC,sGAAsC;IAqBjC,2DAA+C;IAA/C,gHAA+C;IACtD,0DAA4D;IAA5D,iHAA4D;IAczC,2DAA0B;IAA1B,0FAA0B;;ADlGvE,MAAM,oBAAoB;IAyB/B,YAAoB,SAAsB,EAAU,kBAAqC,EAAU,yBAAmD;QAAlI,cAAS,GAAT,SAAS,CAAa;QAAU,uBAAkB,GAAlB,kBAAkB,CAAmB;QAAU,8BAAyB,GAAzB,yBAAyB,CAA0B;QAxBtJ,qBAAgB,GAAG,2DAAW,CAAC,oBAAoB,CAAC;QAEpD,kCAA6B,GAAa,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QACvE,iCAA4B,GAAa,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;QAGrE,4BAAuB,GAAG,IAAI,uEAAc,CAAQ,IAAI,EAAE,EAAE,CAAC,CAAC;QAG9D,2BAAsB,GAAG,IAAI,uEAAc,CAAQ,IAAI,EAAE,EAAE,CAAC,CAAC;QAC7D,iBAAY,GAAY,KAAK,CAAC;QAG9B,SAAI,GAAY,KAAK,CAAC;QAMtB,mBAAc,GAAY,EAAE,CAAC;QAC7B,kBAAa,GAAY,EAAE,CAAC;IAI8H,CAAC;IAE3J,QAAQ;QACN,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpB,IAAI,CAAC,WAAW,GAAG,IAAI,wDAAS,CAAC;YAC/B,MAAM,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;SAC9B,CAAC,CAAC;IAGL,CAAC;IAED,YAAY;QACV,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,GAAU,EAAE,EAAE;YAC1D,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;YACpB,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACd,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACtD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,SAAS,CAAC,MAAc;QACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI,SAAS,EAAE;SAE1C;aACI;YACH,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAChC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;SACjC;IACH,CAAC;IAED,kBAAkB,CAAC,MAAc;QAC/B,IAAI,CAAC,yBAAyB,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,KAAc,EAAE,EAAE;YACjF,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;YACzB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;YAC5B,IAAI,CAAC,wBAAwB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAE9E,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;YACX,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;gBACpC,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,aAAa,CAAC,EAAE,kBAAkB,EAAE,OAAO;gBACxE,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,kBAAkB,CAAC,MAAc;QAC/B,IAAI,CAAC,yBAAyB,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,KAAc,EAAE,EAAE;YACjF,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC,uBAAuB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC5E,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;YACX,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;gBACpC,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,aAAa,CAAC,EAAE,kBAAkB,EAAE,OAAO;gBACxE,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,uBAAuB;QAErB,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAEnD,IAAI,KAAK,GAAW,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;YAEnE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;YACpD,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACrC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAE3B,CAAC,CAAC,CAAC;QAGH,IAAI,CAAC,uBAAuB,GAAG,IAAI,uEAAc,CAAQ,IAAI,EAAE,EAAE,CAAC,CAAC;QACnE,IAAI,CAAC,wBAAwB,GAAG,IAAI,0EAAkB,CAAQ,IAAI,CAAC,cAAc,CAAC,CAAC;QACnF,IAAI,CAAC,uBAAuB,GAAG,IAAI,0EAAkB,CAAQ,IAAI,CAAC,aAAa,CAAC,CAAC;IAEnF,CAAC;IAED,uBAAuB;QACrB,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAClD,IAAI,KAAK,GAAW,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;YAElE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;YACpD,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACpC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAE3B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,sBAAsB,GAAG,IAAI,uEAAc,CAAQ,IAAI,EAAE,EAAE,CAAC,CAAC;QAClE,IAAI,CAAC,uBAAuB,GAAG,IAAI,0EAAkB,CAAQ,IAAI,CAAC,aAAa,CAAC,CAAC;QACjF,IAAI,CAAC,wBAAwB,GAAG,IAAI,0EAAkB,CAAQ,IAAI,CAAC,cAAc,CAAC,CAAC;IAErF,CAAC;IAED,gFAAgF;IAChF,sBAAsB;QACpB,MAAM,WAAW,GAAG,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,MAAM,CAAC;QACjE,MAAM,OAAO,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC;QAC1D,OAAO,WAAW,KAAK,OAAO,CAAC;IACjC,CAAC;IAED,gFAAgF;IAChF,qBAAqB;QACnB,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC;YAC7B,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,CAAC,CAAC;YACtC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAEhG,CAAC;IAED,gFAAgF;IAChF,qBAAqB;QACnB,MAAM,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,MAAM,CAAC;QAChE,MAAM,OAAO,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC;QACzD,OAAO,WAAW,KAAK,OAAO,CAAC;IACjC,CAAC;IAED,gFAAgF;IAChF,oBAAoB;QAClB,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;YAC5B,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,CAAC,CAAC;YACrC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAE9F,CAAC;IAED,eAAe;QACb,IAAI,CAAC,eAAe,CAAC;QACrB,IAAI,CAAC,eAAe,GAAG,IAAI,kEAAS,EAAE,CAAC;QACvC,IAAI,QAAQ,GAAY,EAAE,CAAC;QAC3B,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAChC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QACtD,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1C,IAAI,CAAC,eAAe,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEzC,IAAI,CAAC,yBAAyB,CAAC,kBAAkB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,CAAC,QAAiB,EAAE,EAAE;YACtG,IAAI,QAAQ,IAAI,IAAI,EAAE;gBAEpB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACrC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACrC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kCAAkC,EAAE,GAAG,EAAE;oBAC3D,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,IAAI,CAAC,YAAY,GAAC,KAAK,CAAC;aACzB;QACH,CAAC,EAAE,KAAK,CAAC,EAAE;YACT,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;gBACpC,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,CAAC,aAAa,CAAC;gBAC3B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QAEL,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,MAAM;QACJ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACzB,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC5B,CAAC;IAED,wBAAwB,CAAC,KAAY;QACnC,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,CAAC,wBAAwB,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SACzE;aAAM;YACL,IAAI,CAAC,wBAAwB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SAC7E;IACH,CAAC;IAED,uBAAuB,CAAC,KAAY;QAClC,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,CAAC,uBAAuB,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SACxE;aAAM;YACL,IAAI,CAAC,uBAAuB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SAC3E;IAEH,CAAC;;wFAlNU,oBAAoB;oGAApB,oBAAoB;kEAuBpB,iEAAkB;;;;;QC3C/B,8EACG;QAAA;QAAA,mFACG;QAAA;QAAA,0EACG;QAAA;QAAA,yEACG;QAAA;QAAA,yEACG;QAAA;QAAA,qFACG;QAAA;QAAA,6EAAW;QAAA,gEAAI;QAAA,4DAAY;QAC3B;QAAA,iFACG;QADS,2KAAmB,2BAAuB,IAAC;QACpD;QAAA,iFAAqB;QAAA,uEAAW;QAAA,4DAAa;QAC7C;QAAA,gIACG;QACN;QAAA,4DAAa;QAChB;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACT;QAAA,4DAAM;QACT;QAAA,4DAAO;QACV;QAAA,4DAAmB;QACtB;QAAA,4DAAW;QACX;QAAA,8HACG;;QAjBS,0DAAyB;QAAzB,sFAAyB;QAGN,0DAA+B;QAA/B,uGAA+B;QAI7B,2DAA8B;QAA9B,kFAA8B;QASrD,0DAAY;QAAZ,0EAAY;;6FDET,oBAAoB;cALhC,uDAAS;eAAC;gBACT,QAAQ,EAAE,kBAAkB;gBAC5B,WAAW,EAAE,+BAA+B;gBAC5C,SAAS,EAAE,CAAC,+BAA+B,CAAC;aAC7C;qUAwBgC,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;;;;;;;;;;;;;;AE3C/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AAG2B;AAGD;AAEvC;AAEa;AACF;AACV;;;;;;;;;;;;;;;;;;;;;;;;;ICHrC,6EAEE;IADA,6UAA4B,eAAe,KAAE;IAC7C;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC5B;IAAA,4DAAS;;;IAEP,iFACE;IAAA,oHACF;IAAA,4DAAa;;;IACb,iFACE;IAAA,uDACF;IAAA,4DAAa;;;IAFkD,6EAAgB;IAC7E,0DACF;IADE,4HACF;;;IAEF,4EACE;IAAA,gHACF;IAAA,4DAAY;;;IACZ,4EACE;IAAA,iIACF;IAAA,4DAAY;;;;IAQZ,6EAEE;IADA,6UAA4B,QAAQ,KAAE;IACtC;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC5B;IAAA,4DAAS;;;IAEP,iFACE;IAAA,oHACF;IAAA,4DAAa;;;IACb,iFACE;IAAA,uDACF;IAAA,4DAAa;;;IAFkD,6EAAgB;IAC7E,0DACF;IADE,4HACF;;;IAEF,4EACE;IAAA,sGACF;IAAA,4DAAY;;;IACZ,4EACE;IAAA,uHACF;IAAA,4DAAY;;;IA0Bd,yEAAgF;IAAA,sEAAU;IAAA,4DAAK;;;IAC/F,yEAAwC;IAAA,uDAAqB;IAAA,4DAAK;;;IAA1B,0DAAqB;IAArB,gGAAqB;;;IAG7D,yEAAuC;IAAA,iEAAK;IAAA,4DAAK;;;;IACjD,yEACE;IAAA;IAAA,+EAAgE;IAA9B,iXAA6B;IAAC,+DAAI;IAAA,4DAAW;IACjF;IAAA,4DAAK;;;IAEP,oEAA4D;;;IAC5D,oEAAkE;;;IAClE,yEACE;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAC/C;IAAA,4DAAK;;;ADrEN,MAAM,wBAAwB;IA4BnC,YACS,aAAgC,EAChC,sBAA8C,EAAU,SAAsB,EAAS,UAAsB;QAD7G,kBAAa,GAAb,aAAa,CAAmB;QAChC,2BAAsB,GAAtB,sBAAsB,CAAwB;QAAU,cAAS,GAAT,SAAS,CAAa;QAAS,eAAU,GAAV,UAAU,CAAY;QA5BtH,kBAAa,GAAG,KAAK,CAAC;QACtB,aAAQ,GAAG,MAAM,CAAC;QAElB,cAAS,GAAG,EAAE,CAAC;QACf,kBAAa,GAAG,EAAE,CAAC;QACnB,cAAS,GAAG,EAAE,CAAC;QAQf,kBAAa,GAAG,KAAK,CAAC;QACtB,kBAAa,GAAG,KAAK,CAAC;QAUtB,qBAAgB,GAAa,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAMhD,IAAI,CAAC,OAAO,GAAG,IAAI,yFAAI,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,sBAAsB,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAC/E,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;YACjC,uBAAuB;YACtB,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACnE,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE;YAC5D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC;IACJ,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,OAAO,GAAG,IAAI,wDAAS,CAAC;YAC3B,QAAQ,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAC/B,aAAa,EAAE,IAAI,0DAAW,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACzD,MAAM,EAAE,IAAI,0DAAW,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;SAEnD,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,EAAE,CAAC;QAC3C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACzE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC9B,MAAM,OAAO,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;YAC7D,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC;YAC1C,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI;gBACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC7B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAC9E,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CACxC,CAAC;QAEF,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CACvE,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CACxC,CAAC;QACF,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,sBAAsB,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAC/E,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;YAChC,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACnE,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAED,UAAU,CAAC,KAAW,EAAE,SAAiB;QACvC,IAAI,SAAS,IAAI,eAAe,EAAC;YAC/B,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,KAAK,EAAE,CAAC;YAC1C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;YACnC,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,EAAE,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;YACpB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAC9E,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CACxC,CAAC;SACH;aACI,IAAI,SAAS,IAAI,QAAQ,EAAC;YAC7B,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;SACpC;IACH,CAAC;IAGD,UAAU,CAAC,OAAO;QAChB,IAAI,CAAC,QAAQ,GAAG,QAAQ;QACxB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC;YAC9C,KAAK,EAAE,OAAO,CAAC,QAAQ;YACvB,KAAK,EAAE,OAAO,CAAC,MAAM;SACtB,CAAC,CAAC;QACH,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC;YACvC,KAAK,EAAE,OAAO,CAAC,QAAQ;YACvB,KAAK,EAAE,OAAO,CAAC,MAAM;SACtB,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC7D,IAAI,CAAC,WAAW,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;QACtE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;IACrD,CAAC;IAED,KAAK;QACH,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;QACpC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;YACjB,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK;SAC7C,CAAC,CAAC;QACH,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC;YACjD,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK;SAC7C,CAAC,EAAE,CAAC,CAAC,CAAC;QACP,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,EAAE,CAAC;QAC3C,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3C,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACtB,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;QACpC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;YACjB,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK;YAC5C,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,KAAK;SACvD,CAAC,CAAC;QACH,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC;YACjD,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK;YAC5C,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,KAAK;SACvD,CAAC,EAAE,CAAC,CAAC,CAAC;QACP,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAC3D;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACnE,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SAClC;IACH,CAAC;IAED,WAAW;QACT,IAAI,CAAC,CAAC;QACN,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC9C,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,cAAc,EAAE;gBACvD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;gBACrC,OAAO;aACR;SACF;IACH,CAAC;IAGD,qBAAqB;QACnB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,EAAE;YACrD,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,IAAI,SAAS,EAAE;gBAC9D,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,IAAI,SAAS,EAAE;oBAC1C,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;oBACtD,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;oBACpD,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;iBACzD;qBACI;oBACH,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;oBAC7C,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;oBACpD,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;iBAChD;gBAED,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC;gBACjC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACxG,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;oBACtB,IAAG,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,IAAI,MAAM,EAAC;wBACxD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,qBAAqB,EAAE,GAAG,EAAE;4BAC9C,QAAQ,EAAE,IAAI;4BACd,UAAU,EAAE,CAAC,aAAa,CAAC;4BAC3B,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;wBACH,IAAI,CAAC,oBAAoB,EAAE,CAAC;qBAC7B;yBAEG;wBACF,IAAI,CAAC,sBAAsB;6BACxB,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC;6BACnC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;4BACtB,IAAI,GAAG,EAAE;gCACP,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gCAC9D,IAAI,IAAI,CAAC,QAAQ,IAAI,MAAM,EAAE;oCAC3B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,0BAA0B,EAAE,GAAG,EAAE;wCACnD,QAAQ,EAAE,IAAI;wCACd,kBAAkB,EAAE,OAAO;wCAC3B,gBAAgB,EAAE,KAAK;qCACxB,CAAC,CAAC;oCACH,IAAI,CAAC,oBAAoB,EAAE,CAAC;iCAC5B;qCAEG;oCACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,4BAA4B,EAAE,GAAG,EAAE;wCACrD,QAAQ,EAAE,IAAI;wCACd,kBAAkB,EAAE,OAAO;wCAC3B,gBAAgB,EAAE,KAAK;qCACxB,CAAC,CAAC;oCACH,IAAI,CAAC,oBAAoB,EAAE,CAAC;iCAC7B;6BAEF;iCACI;gCAEH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE;oCAC7C,QAAQ,EAAE,IAAI;oCACd,UAAU,EAAE,CAAC,aAAa,CAAC;oCAC3B,kBAAkB,EAAE,OAAO;oCAC3B,gBAAgB,EAAE,KAAK;iCACxB,CAAC,CAAC;6BACJ;wBACH,CAAC,EACC,CAAC,KAAK,EAAE,EAAE;4BACR,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;gCACpC,QAAQ,EAAE,IAAI;gCACd,UAAU,EAAE,CAAC,aAAa,CAAC;gCAC3B,kBAAkB,EAAE,OAAO;gCAC3B,gBAAgB,EAAE,KAAK;6BACxB,CAAC,CAAC;wBACL,CAAC,CAAC,CAAC;qBACR;iBAEF;aAEF;SAEF;IAGH,CAAC;IACD,gBAAgB,CAAC,CAAC;QAChB,IAAG,CAAC,CAAC,OAAO,KAAG,EAAE,EAAC;YAChB,OAAO;SACR;aACI,IAAG,CAAC,CAAC,OAAO,KAAG,CAAC,EAAC;YACpB,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;SACrB;IACH,CAAC;IAED,YAAY,CAAC,CAAC;QACZ,IAAG,CAAC,CAAC,OAAO,KAAG,CAAC,EAAC;YACf,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;SACrB;IACH,CAAC;IAED,YAAY,CAAC,CAAC;QACZ,wBAAwB;QACxB,yCAAyC;QACzC,sDAAsD;QACtD,IAAI;QAEJ,IAAG,IAAI,CAAC,WAAW,IAAE,SAAS,EAAC;YAC7B,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG;SACzB;aAAI;YACH,IAAG,CAAC,CAAC,OAAO,KAAG,CAAC,EAAC;gBACf,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC;aAC9C;iBAAI;gBACH,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,GAAC,CAAC,CAAC,GAAG,CAAC;aACzC;SAEF;QACH,IAAG,IAAI,CAAC,WAAW,CAAC,MAAM,IAAE,CAAC,EAAC;YAC5B,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;gBAChF,0BAA0B;gBAC1B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACjB,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;gBACzB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;gBACpB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;oBACnC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;wBAClB,KAAK,EAAE,OAAO,CAAC,QAAQ;wBACvB,KAAK,EAAE,OAAO,CAAC,MAAM;qBACtB,CAAC,CAAC;oBACH,8BAA8B;gBAChC,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAC9E,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CACxC,CAAC;gBACH,8BAA8B;YAC/B,CAAC,CAAC,CAAC;SACJ;aAAI;YACH,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;YACpB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAC9E,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CACxC,CAAC;SACH;IAED,CAAC;IAED,YAAY;QACV,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,GAAU,EAAE,EAAE;YACrD,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;YACpB,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACd,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACtD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY,CAAC,CAAC;QACZ,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;QACpE,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC9D,qCAAqC;QACrC,mEAAmE;QACnE,IAAI;IACN,CAAC;IAGD,QAAQ;QACN,IAAI,IAAI,CAAC,QAAQ,IAAI,QAAQ;YAC3B,OAAO,IAAI,CAAC;QACd,OAAO,KAAK,CAAC;IACf,CAAC;IAED,UAAU;QACR,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI;YACnC,OAAO,KAAK,CAAC;QACf,OAAO,IAAI,CAAC;IAEd,CAAC;IAID,WAAW,CAAC,MAAc;QAExB,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC;QACzD,OAAO,GAAG,CAAC,KAAK,CAAC;IACnB,CAAC;IAGO,WAAW,CAAC,KAAU;QAC5B,IAAI,WAAW,CAAC;QAChB,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,IAAE,CAAC,EAAE;YAC5C,WAAW,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;gBACtC,IAAI,MAAM,EAAE;oBACV,OAAO,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;iBACxD;YACH,CAAC,CACA,CAAC;SACH;aAAM;YACL,OAAO,IAAI,CAAC,SAAS,CAAC;SACvB;IACH,CAAC;IACO,WAAW,CAAC,KAAU;QAC5B,IAAI,WAAW,CAAC;QAChB,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;YACzB,WAAW,GAAG,KAAK,CAAC;YACpB,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;gBACtC,IAAI,MAAM,EAAE;oBACV,OAAO,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;iBACxD;YACH,CAAC,CACA,CAAC;SACH;aAAM;YACL,OAAO,IAAI,CAAC,SAAS,CAAC;SACvB;IACH,CAAC;IAGD,SAAS,CAAC,IAAS;QACjB,OAAO,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACxC,CAAC;IACD,cAAc,CAAC,IAAS;QACtB,OAAO,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACxC,CAAC;IAED,sBAAsB;QACpB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAC9E,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CACxC,CAAC;IACJ,CAAC;IAGD,sBAAsB;QACpB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CACvE,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CACxC,CAAC;IACJ,CAAC;;gGAnZU,wBAAwB;wGAAxB,wBAAwB;kEAuBxB,iEAAkB;wEAClB,wEAAY;wEACZ,8DAAO;;;;;;;QC9CpB,8EACE;QAAA;QAAA,sFACE;QAAA;QAAA,0EACE;QAAA;QAAA,yEACE;QAAA;QAAA,yEACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,0EAAc;QAAA,2EAA2B;QAAA,8DAAC;QAAA,4DAAO;QAAC;QAAA,4DAAY;QACzE;QAAA,4EAEA;QAF6B,0JAAW,4BAAwB,IAAC,oGAAa,wBAAoB,IAAjC,8FAA4C,wBAAoB,IAAhE;QAAjE,4DAEA;QAAA;QAAA,4HAEE;QAEF;QAAA,2FACE;QADkE,mLAAkB,wBAAoB,IAAC;QACzG;QAAA,qIACE;QAEF;QAAA,qIACE;;QAEJ;QAAA,4DAAmB;QACnB;QAAA,mIACE;QAEF;QAAA,mIACE;QAEJ;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,qEAAS;QAAA,2EAA2B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QACnE;QAAA,wEAEA;QAAA;QAAA,4HAEE;QAEF;QAAA,4FACE;QAAA;QAAA,qIACE;QAEF;QAAA,qIACE;;QAEJ;QAAA,4DAAmB;QACnB;QAAA,mIACE;QAEF;QAAA,mIACE;QAEJ;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,wFACuC;QAAA,qEAAS;QAAA,4DAAmB;QACrE;QAAA,4DAAM;QACR;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,2EACE;QAAA;QAAA,8EACE;QADyB,iJAAS,WAAO,IAAC;QAC1C;QAAA,4EAAU;QAAA,iEAAK;QAAA,4DAAW;QAAA,6EAC5B;QAAA,4DAAS;QACT;QAAA,8EACE;QADsC,iJAAS,2BAAuB,IAAC;QACvE,wDACF;QAAA,4DAAS;QACX;QAAA,4DAAM;QACR;QAAA,4DAAM;QACR;QAAA,4DAAO;QACT;QAAA,4DAAmB;QACrB;QAAA,4DAAW;QACX;QAAA,4EACE;QAAA;QAAA,oFACE;QAAA;QAAA,2EACE;QAAA;QAAA,6EACE;QAAA;QAAA,6EACE;QAAA;QAAA,uHAAgF;QAChF;QAAA,uHAAwC;QAC1C;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,uHAAuC;QACvC;QAAA,uHACE;QAEJ;QAAA,qEAAe;QACf;QAAA,uHAAuD;QACvD;QAAA,uHAA6D;QAC7D;QAAA,uHACE;QAEJ;QAAA,4DAAQ;QACV;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,iFAAgE;QAClE;QAAA,4DAAM;QACR;QAAA,4DAAmB;QACrB;QAAA,4DAAW;;;;QA/FuB,0DAAqB;QAArB,kFAAqB;QAKyF,2DAAwB;QAAxB,qFAAwB;QAE7H,0DAA2D;QAA3D,2HAA2D;QAIhD,0DAAyB;QAAzB,sFAAyB;QAC5C,0DAAsH;QAAtH,wLAAsH;QAG/H,0DAAkD;QAAlD,+JAAkD;QAIrD,0DAAyD;QAAzD,uHAAyD;QAGzD,0DAA2F;QAA3F,0JAA2F;QAQ/E,2DAAwB;QAAxB,qFAAwB;QAEhB,0DAAmD;QAAnD,oHAAmD;QAIxC,0DAA8B;QAA9B,2FAA8B;QACjD,0DAAsD;QAAtD,oHAAsD;QAG/D,0DAAkD;QAAlD,+JAAkD;QAIrD,0DAAkD;QAAlD,gHAAkD;QAGlD,0DAAsD;QAAtD,oHAAsD;QAOjE,0DAAoC;QAApC,4FAAoC;QASpC,2DACF;QADE,gHACF;QASa,2DAAyB;QAAzB,sFAAyB;QAWrB,2DAAmC;QAAnC,iGAAmC;QAC1C,0DAAgD;QAAhD,kGAAgD;QAO/C,0DAAgC;QAAhC,mJAAgC;;6FDzExC,wBAAwB;cALpC,uDAAS;eAAC;gBACT,QAAQ,EAAE,uBAAuB;gBACjC,WAAW,EAAE,oCAAoC;gBACjD,SAAS,EAAE,CAAC,oCAAoC,CAAC;aAClD;ubAwBgC,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;YACc,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACH,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AE9CtC;AAAA;AAAA;AAAkD;;AAO3C,MAAM,iBAAiB;IAE5B,gBAAgB,CAAC;IAEjB,QAAQ;IACR,CAAC;;kFALU,iBAAiB;iGAAjB,iBAAiB;QCP9B,oEAAG;QAAA,0EAAe;QAAA,4DAAI;QACtB;;6FDMa,iBAAiB;cAL7B,uDAAS;eAAC;gBACT,QAAQ,EAAE,cAAc;gBACxB,WAAW,EAAE,2BAA2B;gBACxC,SAAS,EAAE,CAAC,2BAA2B,CAAC;aACzC;;;;;;;;;;;;;;AEND;AAAA;AAAA;AAAkD;;AAO3C,MAAM,2BAA2B;IAEtC,gBAAgB,CAAC;IAEjB,QAAQ;IACR,CAAC;;sGALU,2BAA2B;2GAA3B,2BAA2B;QCPxC,oEAAG;QAAA,sFAA2B;QAAA,4DAAI;QAClC;;6FDMa,2BAA2B;cALvC,uDAAS;eAAC;gBACT,QAAQ,EAAE,0BAA0B;gBACpC,WAAW,EAAE,uCAAuC;gBACpD,SAAS,EAAE,CAAC,uCAAuC,CAAC;aACrD;;;;;;;;;;;;;;AEND;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AAMrC;AAC2B;AAGU;AACF;AACV;AAIQ;;;;;;;;;;;;;;;;;;;ICP7C,4EACE;IAAA,6GACF;IAAA,4DAAY;;;IACZ,4EACE;IAAA,uHACF;IAAA,4DAAY;;;IACZ,4EACE;IAAA,kIACF;IAAA,4DAAY;;;IAQZ,4EACE;IAAA,6GACF;IAAA,4DAAY;;;IACZ,4EACE;IAAA,4GACF;IAAA,4DAAY;;;IACZ,4EAAqE;IAAA,qFAA0B;IAAA,4DAAY;;;IAQ3G,4EACE;IAAA,mHACF;IAAA,4DAAY;;;IACZ,4EACE;IAAA,6GACF;IAAA,4DAAY;;;IAuBd,yEAAgF;IAAA,wEAAY;IAAA,4DAAK;;;IACjG,yEAAuC;IAAA,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,iGAAsB;;;IAI7D,yEAAgF;IAAA,wEAAY;IAAA,4DAAK;;;IACjG,yEAAuC;IAAA,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,iGAAsB;;;IAI7D,yEAAgF;IAAA,iFAAqB;IAAA,4DAAK;;;IAC1G,yEAAuC;IAAA,uDAA8B;IAAA,4DAAK;;;IAAnC,0DAA8B;IAA9B,yGAA8B;;;IAIrE,yEAAuC;IAAA,iEAAK;IAAA,4DAAK;;;;IACjD,yEACE;IAAA;IAAA,+EAAgE;IAA9B,wWAA6B;IAAC,+DAAI;IAAA,4DAAW;IACjF;IAAA,4DAAK;;;IAEP,oEAA4D;;;IAC5D,oEAAkE;;;IAClE,yEACE;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAC/C;IAAA,4DAAK;;;ADpEN,MAAM,gBAAgB;IAqB3B,YACU,cAA6B,EAC7B,aAA4B,EAC5B,SAAsB,EACvB,UAAsB;QAHrB,mBAAc,GAAd,cAAc,CAAe;QAC7B,kBAAa,GAAb,aAAa,CAAe;QAC5B,cAAS,GAAT,SAAS,CAAa;QACvB,eAAU,GAAV,UAAU,CAAY;QAvB/B,aAAQ,GAAW,EAAE,CAAC;QACtB,WAAM,GAAY,KAAK,CAAC;QACxB,kBAAa,GAAG,KAAK,CAAC;QAItB,qBAAgB,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QACpD,qBAAgB,GAAa;YAC3B,YAAY;YACZ,YAAY;YACZ,oBAAoB;YACpB,MAAM;SACP,CAAC;QAaA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc;aACnC,cAAc,EAAE;aAChB,SAAS,CAAC,CAAC,IAAc,EAAE,EAAE;YAC5B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC3D,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACnC,CAAC,CAAC,CAAC;QACL,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,EAAE;YAC9D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,SAAS,GAAG,IAAI,wDAAS,CAAC;YAC7B,UAAU,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE;gBAChC,yDAAU,CAAC,QAAQ;gBACnB,yDAAU,CAAC,OAAO,CAAC,YAAY,CAAC;gBAChC,yDAAU,CAAC,SAAS,CAAC,CAAC,CAAC;aACxB,CAAC;YACF,UAAU,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE;gBAChC,yDAAU,CAAC,QAAQ;gBACnB,yDAAU,CAAC,SAAS,CAAC,CAAC,CAAC;gBACvB,yDAAU,CAAC,SAAS,CAAC,EAAE,CAAC;aACzB,CAAC;YACF,kBAAkB,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE;gBACxC,yDAAU,CAAC,SAAS,CAAC,CAAC,CAAC;gBACvB,yDAAU,CAAC,SAAS,CAAC,GAAG,CAAC;aAC1B,CAAC;YACF,QAAQ,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;SAChC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YACjE,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,IAAI,IAAI,EAAE;gBACxC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;gBAC3C,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBAChC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;aAE1B;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;QACvB,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAI,CAAC,UAAU,EAAE,CAAC;IAEpB,CAAC;IACD,UAAU;QACR,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;IACnC,CAAC;IAED,WAAW,CAAC,WAAmB;QAC7B,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAC;QACpC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC;IAED,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAC3D;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC3D,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SAClC;IACH,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,KAAK,CAAC;QACrC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;QACvB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE,CAAC;QAC/C,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,mBAAmB,CAAC,KAAU;QAC5B,IAAI,CAAS,CAAC;QACd,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,iDAAiD;QACrE,OAAO,CACL,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CACrF,CAAC;IACJ,CAAC;IAED,mBAAmB,CAAC,KAAU;QAC5B,IAAI,CAAS,CAAC;QACd,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,iDAAiD;QACrE,OAAO,CACL,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;YAClB,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;YAClB,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC;YACnB,CAAC,IAAI,CAAC;YACN,CAAC,IAAI,EAAE,CACR,CAAC;IACJ,CAAC;IAED,2BAA2B,CAAC,KAAU;QACpC,IAAI,CAAS,CAAC;QACd,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,iDAAiD;QACrE,OAAO,CACL,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;YAClB,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;YAClB,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC;YACnB,CAAC,IAAI,CAAC;YACN,CAAC,IAAI,EAAE;YACP,CAAC,IAAI,EAAE;YACP,CAAC,IAAI,EAAE,CACR,CAAC;IACJ,CAAC;IAED,UAAU;QACR,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,EAAE;YAC1C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;SACtC;QACD,IAAI,OAAO,GAAG,IAAI,2DAAM,EAAE,CAAC;QAC3B,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC;QACrD,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC;QACrD,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,kBAAkB,CAAC;QACrE,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC;QAEjD,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,IAAI,IAAI,EAAE;YACxC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;YAC9D,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC;SACtD;QACD,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,EAAE;YAChC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,SAAS,CAClD,CAAC,GAAW,EAAE,EAAE;gBACd,IAAI,GAAG,EAAE;oBACP,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;oBACjC,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,IAAI,KAAK,EAAE;wBACzC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE;4BAC5D,QAAQ,EAAE,IAAI;4BACd,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;wBACH,IAAI,CAAC,MAAM,EAAE,CAAC;qBACf;yBACI,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,IAAI,IAAI,EAAE;wBAC7C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,qCAAqC,EAAE,GAAG,EAAE;4BAC9D,QAAQ,EAAE,IAAI;4BACd,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;wBACH,IAAI,CAAC,MAAM,EAAE,CAAC;qBACf;iBACF;YACH,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;gBACR,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;oBACpC,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACL,CAAC,CACF,CAAC;SACH;IACH,CAAC;;gFAzLU,gBAAgB;gGAAhB,gBAAgB;kEAiBhB,iEAAkB;wEAClB,wEAAY;wEACZ,8DAAO;;;;;;;QC1CpB,8EACE;QAAA;QAAA,sFACE;QAAA;QAAA,0EACE;QAAA;QAAA,yEACE;QAAA;QAAA,yEACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,uEAAW;QAAA,2EAA2B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QACrE;QAAA,4EAEA;QADE,oJAAY,+BAA2B,IAAC;QAD1C,4DAEA;QAAA;QAAA,0HACE;QAEF;QAAA,0HACE;QAEF;QAAA,0HACE;QAEJ;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,wEAAY;QAAA,2EAA2B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QACtE;QAAA,4EAEA;QADE,oJAAY,+BAA2B,IAAC;QAD1C,4DAEA;QAAA;QAAA,0HACE;QAEF;QAAA,0HACE;QAEF;QAAA,0HAAqE;QACvE;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,gFAAoB;QAAA,4DAAY;QAC3C;QAAA,6EAEA;QADgB,oJAAY,uCAAmC,IAAC;QADhE,4DAEA;QAAA;QAAA,0HACE;QAEF;QAAA,0HACE;QAEJ;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QAER;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,2EACE;QAAA;QAAA,8EACE;QADyB,yIAAS,YAAQ,IAAC;QAC3C;QAAA,4EAAU;QAAA,iEAAK;QAAA,4DAAW;QAAA,6EAC5B;QAAA,4DAAS;QACT;QAAA,8EAA+D;QAAvB,yIAAS,gBAAY,IAAC;QAAC,wDAAY;QAAA,4DAAS;QAEtF;QAAA,4DAAM;QACR;QAAA,4DAAM;QACR;QAAA,4DAAO;QACT;QAAA,4DAAmB;QACrB;QAAA,4DAAW;QAEX;QAAA,4EACE;QAAA;QAAA,oFACE;QAAA;QAAA,2EACE;QAAA;QAAA,6EACE;QAAA;QAAA,6EACE;QAAA;QAAA,6GAAgF;QAChF;QAAA,6GAAuC;QACzC;QAAA,qEAAe;QAEf;QAAA,6EACE;QAAA;QAAA,6GAAgF;QAChF;QAAA,6GAAuC;QACzC;QAAA,qEAAe;QAEf;QAAA,8EACE;QAAA;QAAA,+GAAgF;QAChF;QAAA,+GAAuC;QACzC;QAAA,qEAAe;QAEf;QAAA,8EACE;QAAA;QAAA,+GAAuC;QACvC;QAAA,+GACE;QAEJ;QAAA,qEAAe;QACf;QAAA,+GAAuD;QACvD;QAAA,+GAA6D;QAC7D;QAAA,+GACE;QAEJ;QAAA,4DAAQ;QACV;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,iFAAgE;QAClE;QAAA,4DAAM;QACR;QAAA,4DAAmB;QACrB;QAAA,4DAAW;;QAhGuB,0DAAuB;QAAvB,oFAAuB;QAG/B,0DAA+B;QAA/B,uGAA+B;QAEtC,0DAAmB;QAAnB,gFAAmB;QAEf,0DAAwD;QAAxD,sHAAwD;QAGxD,0DAAyD;QAAzD,uHAAyD;QAGzD,0DAAuD;QAAvD,qHAAuD;QAMpD,0DAA+B;QAA/B,uGAA+B;QAIlC,0DAAwD;QAAxD,sHAAwD;QAGxD,0DAAyD;QAAzD,uHAAyD;QAGzD,0DAAyD;QAAzD,uHAAyD;QAItD,0DAA+B;QAA/B,uGAA+B;QAIlC,0DAAiE;QAAjE,+HAAiE;QAGjE,0DAAiE;QAAjE,+HAAiE;QAYf,2DAAY;QAAZ,6EAAY;QAW9D,2DAAyB;QAAzB,sFAAyB;QAsBrB,2DAAmC;QAAnC,iGAAmC;QAC1C,0DAAgD;QAAhD,kGAAgD;QAO/C,0DAAgC;QAAhC,mJAAgC;;6FDxExC,gBAAgB;cAL5B,uDAAS;eAAC;gBACT,QAAQ,EAAE,aAAa;gBACvB,WAAW,EAAE,0BAA0B;gBACvC,SAAS,EAAE,CAAC,0BAA0B,CAAC;aACxC;0YAkBgC,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;YACc,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACH,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AE1CtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AAMrC;AAC2C;AAEN;AACZ;AACQ;AACE;;;;;;;;;;;;;;;;;;ICJ/C,uEAAiE;IAAA,uGAC7C;IAAA,4DAAO;;;IAS3B,uEAAwE;IAAA,8GAC7C;IAAA,4DAAO;;;IAqBpC,yEACE;IAAA,yGACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,kIACF;;;IAGA,yEACE;IAAA,gHACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,yIACF;;;IAGA,yEACE;IAAA,yFACF;IAAA,4DAAK;;;;IACL,yEACE;IAAA;IAAA,+EAAgE;IAA9B,+WAA6B;IAAC,+DAAI;IAAA,4DAAW;IACjF;IAAA,4DAAK;;;IAEP,oEAA4D;;;IAC5D,oEAAiE;;;IACjE,yEACE;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAC/C;IAAA,4DAAK;;;AD9CN,MAAM,uBAAuB;IAWlC,YACU,UAAiC,EACjC,SAAsB,EACvB,UAAsB;QAFrB,eAAU,GAAV,UAAU,CAAuB;QACjC,cAAS,GAAT,SAAS,CAAa;QACvB,eAAU,GAAV,UAAU,CAAY;QAb/B,qBAAgB,GAAa;YAC3B,oBAAoB;YACpB,2BAA2B;YAC3B,MAAM;SACP,CAAC;QAsBF,kBAAa,GAAG,KAAK,CAAC;QACtB,aAAQ,GAAG,EAAE,CAAC;QAEd,qBAAgB,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QAdlD,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YACpD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAClE,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,EAAE;YAC9D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IAQD,QAAQ;QACN,IAAI,CAAC,iBAAiB,GAAG,IAAI,wDAAS,CAAC;YACrC,kBAAkB,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAChE,yBAAyB,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;SACxE,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YACzC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,IAAI,EAAE;gBACpC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACxC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,OAAO,EAAE,CAAC;gBAC3D,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;aAC1B;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;QACvB,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,MAAM,EAAE,CAAC;QAC1D,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC;IACrD,CAAC;IAED,KAAK;QACH,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;QAC/B,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,KAAK,CAAC;QACjC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,MAAM,EAAE,CAAC;QAC1D,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;QACvB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC;IACrD,CAAC;IACD,oBAAoB;QAClB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,SAAS,GAAG,IAAI,2EAAc,EAAE,CAAC;QACrC,SAAS,CAAC,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,kBAAkB,CAAC;QAC/E,SAAS,CAAC,yBAAyB,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,yBAAyB,CAAC;QAC7F,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,IAAI,EAAE;YACpC,SAAS,CAAC,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC;YAC5E,SAAS,CAAC,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC,kBAAkB,CAAC;YACvF,SAAS,CAAC,yBAAyB,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,yBAAyB,CAAC;YAC7F,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;YAC5D,IAAI,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC;SACzC;QACD,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,IAAI,IAAI,EAAE;YACxC,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,SAAS,CACvD,CAAC,GAAG,EAAE,EAAE;gBACN,IAAI,GAAG,EAAE;oBACP,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,KAAK,EAAE;wBACrC,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,4CAA4C,EAC5C,GAAG,EACH;4BACE,QAAQ,EAAE,IAAI;4BACd,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CACF,CAAC;wBACF,IAAI,CAAC,KAAK,EAAE,CAAC;qBACd;yBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,IAAI,EAAE;wBAC3C,IAAI,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC;wBACxC,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,8CAA8C,EAC9C,GAAG,EACH;4BACE,QAAQ,EAAE,IAAI;4BACd,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CACF,CAAC;wBACF,IAAI,CAAC,KAAK,EAAE,CAAC;qBACd;iBACF;qBAAM;oBACL,IAAI,CAAC,KAAK,EAAE,CAAC;oBACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,0BAA0B,EAAE,GAAG,EAAE;wBACnD,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,aAAa,CAAC;wBAC3B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBAGJ;YACH,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;gBACR,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;oBACpC,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACL,CAAC,CACF,CAAC;SACH;IACH,CAAC;IAED,UAAU,CAAC,OAAO;QAChB,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC;QAChC,oBAAoB;QACpB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IACD,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAC3D;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAClE,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SAClC;IACH,CAAC;;8FA3IU,uBAAuB;uGAAvB,uBAAuB;kEAOvB,iEAAkB;wEAClB,wEAAY;wEACZ,8DAAO;;;;;;;QC9BpB,8EACE;QAAA;QAAA,mFACE;QAAA;QAAA,0EACE;QAAA;QAAA,yEACE;QAAA;QAAA,oFACE;QAAA;QAAA,6EAAW;QAAA,gFAAoB;QAAA,2EAA2B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QAC9E;QAAA,uEACA;QAAA;QAAA,6EACE;QAAA;QAAA,uHAAiE;QAEnE;QAAA,4DAAY;QACd;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,uFAA2B;QAAA,2EAA2B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QACrF;QAAA,uEACA;QAAA;QAAA,6EACE;QAAA;QAAA,uHAAwE;QAE1E;QAAA,4DAAY;QACd;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,6EACE;QADyB,gJAAS,WAAO,IAAC;QAC1C;QAAA,4EAAU;QAAA,iEAAK;QAAA,4DAAW;QAAA,2EAC5B;QAAA,4DAAS;QACT;QAAA,8EACE;QADsC,gJAAS,0BAAsB,IAAC;QACtE,wDACF;QAAA,4DAAS;QACX;QAAA,4DAAM;QACR;QAAA,4DAAO;QACT;QAAA,4DAAmB;QACrB;QAAA,4DAAW;QAEX;QAAA,4EACE;QAAA;QAAA,oFACE;QAAA;QAAA,2EACE;QAAA;QAAA,6EACE;QAAA;QAAA,6EACE;QAAA;QAAA,oHACE;QAEF;QAAA,oHACE;QAEJ;QAAA,qEAAe;QACf;QAAA,6EACE;QAAA;QAAA,oHACE;QAEF;QAAA,oHACE;QAEJ;QAAA,qEAAe;QACf;QAAA,6EACE;QAAA;QAAA,oHACE;QAEF;QAAA,oHACE;QAEJ;QAAA,qEAAe;QACf;QAAA,oHAAuD;QACvD;QAAA,oHAA4D;QAC5D;QAAA,oHACE;QAEJ;QAAA,4DAAQ;QACV;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,gFAAgE;QAClE;QAAA,4DAAM;QACR;QAAA,4DAAmB;QACrB;QAAA,4DAAW;;QAxEkD,0DAA+B;QAA/B,4FAA+B;QAEpE,0DAAmC;QAAnC,uGAAmC;QAIzC,2DAA0D;QAA1D,wHAA0D;QAMpD,0DAAmC;QAAnC,uGAAmC;QAIzC,2DAAiE;QAAjE,+HAAiE;QAUzE,2DACF;QADE,4GACF;QASe,2DAAyB;QAAzB,sFAAyB;QAyBrB,2DAAmC;QAAnC,iGAAmC;QAC1C,0DAA+C;QAA/C,kGAA+C;QAO9C,0DAAgC;QAAhC,mJAAgC;;6FDlDxC,uBAAuB;cALnC,uDAAS;eAAC;gBACT,QAAQ,EAAE,qBAAqB;gBAC/B,WAAW,EAAE,kCAAkC;gBAC/C,SAAS,EAAE,CAAC,kCAAkC,CAAC;aAChD;mUAQgC,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;YACc,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACH,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AE9BtC;AAAA;AAAA;AAAkD;;AAO3C,MAAM,uBAAuB;IAElC,gBAAgB,CAAC;IAEjB,QAAQ;IACR,CAAC;;8FALU,uBAAuB;uGAAvB,uBAAuB;QCPpC,oEAAG;QAAA,iFAAsB;QAAA,4DAAI;QAC7B;;6FDMa,uBAAuB;cALnC,uDAAS;eAAC;gBACT,QAAQ,EAAE,qBAAqB;gBAC/B,WAAW,EAAE,kCAAkC;gBAC/C,SAAS,EAAE,CAAC,kCAAkC,CAAC;aAChD;;;;;;;;;;;;;;AEND;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA4E;AAEjB;AAQX;AAG0D;AAC5C;AACH;AACE;AACS;AACrB;AACQ;AAEqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICZhE,4EACE;IAAA,qHACF;IAAA,4DAAY;;;IASd,4EACE;IAAA,iHACF;IAAA,4DAAY;;;;IAcZ,6EAEE;IADmC,gUAAsB;IACzD;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC5B;IAAA,4DAAS;;;IAGP,iFACU;IAAA,kFAAuB;IAAA,4DAAa;;;IAC9C,iFACE;IAAA,uDACF;IAAA,4DAAa;;;IAFkD,6EAAgB;IAC7E,0DACF;IADE,4HACF;;;IAEF,4EACE;IAAA,6HACF;IAAA,4DAAY;;;IA2Bd,yEACE;IAAA,oGACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,8HACF;;;IAIA,yEACE;IAAA,oGACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,2HACF;;;IAIA,yEACE;IAAA,oGACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,yIACF;;;IAIA,yEACE;IAAA,oGACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,kIACF;;;IAIA,yEACE;IAAA,yFACF;IAAA,4DAAK;;;;IACL,yEACE;IAAA;IAAA,+EAAqE;IAAnC,kXAAkC;IAAC,+DAAI;IAAA,4DAAW;IACtF;IAAA,4DAAK;;;IAGP,oEAA4D;;;IAC5D,oEAAiE;;;AD3FlE,MAAM,oBAAoB;IA4D/B,YACU,OAAe,EACf,kBAAqC,EACrC,kBAAqC,EACrC,OAA8B,EAC9B,SAAsB,EACvB,UAAsB,EACtB,aAA2B;QAN1B,YAAO,GAAP,OAAO,CAAQ;QACf,uBAAkB,GAAlB,kBAAkB,CAAmB;QACrC,uBAAkB,GAAlB,kBAAkB,CAAmB;QACrC,YAAO,GAAP,OAAO,CAAuB;QAC9B,cAAS,GAAT,SAAS,CAAa;QACvB,eAAU,GAAV,UAAU,CAAY;QACtB,kBAAa,GAAb,aAAa,CAAc;QAjEpC,qBAAgB,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QAGpD,yBAAoB,GAAkB,EAAE,CAAC;QACzC,kBAAa,GAAY,KAAK,CAAC;QAC/B,aAAQ,GAAG,EAAE,CAAC;QACd,WAAM,GAAY,KAAK,CAAC;QACxB,aAAQ,GAAY,IAAI,CAAC;QAKzB,iBAAY,GAAa,EAAE,CAAC;QAC5B,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QAC9C,eAAU,GAAG,IAAI,0EAAkB,EAAc,CAAC;QAClD,cAAS,GAAG,EAAE,CAAC;QAOf,SAAI,GAAG;YACL,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,iBAAiB,EAAE;YACtD,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,iBAAiB,EAAE;YACnD,EAAE,KAAK,EAAE,2BAA2B,EAAE,MAAM,EAAE,iBAAiB,EAAE;YACjE,EAAE,KAAK,EAAE,oBAAoB,EAAE,MAAM,EAAE,iBAAiB,EAAE;SAC3D,CAAC;QACF,qBAAgB,GAAa;YAC3B,gBAAgB;YAChB,aAAa;YACb,2BAA2B;YAC3B,oBAAoB;YACpB,MAAM;SACP,CAAC;QACF,qBAAgB,GAAa,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAgCzD,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YACpD,IAAI,IAAI,IAAI,IAAI,EAAE;gBAChB,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC;gBAC5B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;oBAC1C,UAAU,CAAC,yBAAyB;wBAClC,UAAU,CAAC,gBAAgB,CAAC,CAAC,2BAA2B,CAAC,CAAC;gBAC9D,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;aAClC;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,EAAE;YAC9D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IA7CD,IAAI,CAAC,KAA4B;QAC/B,8EAAe,CACb,IAAI,CAAC,gBAAgB,EACrB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,YAAY,CACnB,CAAC;IACJ,CAAC;IACD,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAC3D;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SAChE;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;YAC7B,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;SACvC;QACD,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACnC,CAAC;IA4BD,QAAQ;QACN,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,aAAa,GAAG,IAAI,wDAAS,CAAC;YACjC,cAAc,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC5D,WAAW,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACzD,cAAc,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACrC,UAAU,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;SAClC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK,EAAE;YACxB,IAAI,CAAC,oBAAoB,EAAE,CAAC;SAC7B;QACD,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YACzD,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,IAAI,IAAI,EAAE;gBAC5C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBACzB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;gBAE/C,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE;oBACvB,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAAC,EAAE;wBAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;qBACtB;yBAAM;wBACL,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;qBACvB;oBACD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;wBAC5B,cAAc,EAAE,IAAI,CAAC,cAAc;wBACnC,WAAW,EAAE,IAAI,CAAC,WAAW;wBAC7B,UAAU,EAAE,IAAI,CAAC,QAAQ;wBACzB,cAAc,EAAE,IAAI,CAAC,kBAAkB;qBACxC,CAAC,CAAC;iBACJ;aACF;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;QAEvB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAC7D,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CACxC,CAAC;IAEJ,CAAC;IAED,eAAe;IACf,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,CAAC;QACtC,IAAI,UAAU,GAAG,IAAI,mEAAU,EAAE,CAAC;QAClC,IAAG,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,IAAI,EAAC;YAClC,UAAU,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC;YACpE,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC;YAC9D,UAAU,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC;YAClE,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,IAAI,IAAI,EAAE;gBACnD,UAAU,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,CACnE,OAAO,CACR,CAAC;gBACF,UAAU,CAAC,kBAAkB,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,CACrE,OAAO,CACR,CAAC;aACH;iBAAM;gBACL,UAAU,CAAC,gBAAgB,GAAG,IAAI,CAAC;gBACnC,UAAU,CAAC,kBAAkB,GAAG,IAAI,CAAC;aACtC;YAED,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,IAAI,IAAI,EAAE;gBAC/C,UAAU,CAAC,gBAAgB,GAAG,CAAC,CAAC;aACjC;iBAAM;gBACL,UAAU,CAAC,gBAAgB,GAAG,CAAC,CAAC;aACjC;YACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,IAAI,IAAI,EAAE;gBAC5C,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,KAAK,CAAC,YAAY,CAAC;aACtF;YACD,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,IAAI,EAAE;gBACpC,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,SAAS,CAC5D,CAAC,GAAW,EAAE,EAAE;oBACd,IAAI,GAAG,EAAE;wBACP,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,EAAE,CAAC;wBAC/C,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,IAAI,KAAK,EAAE;4BAC7C,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,uCAAuC,EACvC,GAAG,EACH;gCACE,QAAQ,EAAE,IAAI;gCACd,kBAAkB,EAAE,OAAO;gCAC3B,gBAAgB,EAAE,KAAK;6BACxB,CACF,CAAC;4BACF,IAAI,CAAC,MAAM,EAAE,CAAC;yBACf;6BACI,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,IAAI,IAAI;4BAC/C,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,yCAAyC,EACzC,GAAG,EACH;gCACE,QAAQ,EAAE,IAAI;gCACd,kBAAkB,EAAE,OAAO;gCAC3B,gBAAgB,EAAE,KAAK;6BACxB,CACF,CAAC;wBACJ,IAAI,CAAC,MAAM,EAAE,CAAC;qBACf;yBAAM;wBACL,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,6BAA6B,EAAE,GAAG,EAAE;4BACtD,QAAQ,EAAE,IAAI;4BACd,UAAU,EAAE,CAAC,aAAa,CAAC;4BAC3B,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;wBACH,IAAI,CAAC,MAAM,EAAE,CAAC;qBACf;gBACH,CAAC,EACD,CAAC,QAAQ,EAAE,EAAE;oBACX,IAAI,QAAQ,GAAE,eAAe,CAAC;oBAE9B,IAAI,eAAe,GAAI,gCAAgC,CAAC;oBACxD,IAAI,eAAe,GAAG,gCAAgC,CAAC;oBAEvD,IAAG,QAAQ,CAAC,KAAK,IAAG,eAAe,IAAI,QAAQ,CAAC,KAAK,IAAG,eAAe,EACvE;wBACE,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC;qBAC3B;oBACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE;wBACjC,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,aAAa,CAAC;wBAC3B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;gBACL,CAAC,CACF,CAAC;aACH;SACF;IACH,CAAC;IAED,UAAU;QACR,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,YAAY,CAAC,KAAU,EAAE,KAAU;QACjC,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;QAC5E,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,cAAc,CAAC;QACpC,IAAI,KAAK,KAAK,SAAS,IAAI,cAAc,KAAK,SAAS,EAAE;YACvD,IAAI,OAAO,GAAG,EAAE,CAAC;YACjB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC3B,IAAI,CAAC,CAAC,KAAK,KAAK,cAAc,EAAE;oBAC9B,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC;iBACnB;YACH,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IACD,SAAS,CAAC,IAAS;QACjB,OAAO,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9C,CAAC;IAEO,WAAW,CAAC,KAAK;QACvB,IAAI,WAAW,CAAC;QAChB,IAAI,KAAK,IAAI,KAAK,CAAC,cAAc,EAAE;YACjC,WAAW,GAAG,KAAK,CAAC,cAAc,CAAC;YACnC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CACtC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CACjD,CAAC;SACH;aAAM;YACL,OAAO,IAAI,CAAC,SAAS,CAAC;SACvB;IACH,CAAC;IAED,iBAAiB,CAAC,KAAU;QAC1B,IAAI,CAAS,CAAC;QACd,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC;QACnB,OAAO,CACL,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;YAClB,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC;YACnB,CAAC,IAAI,CAAC;YACN,CAAC,IAAI,EAAE;YACP,CAAC,IAAI,EAAE;YACP,CAAC,IAAI,EAAE;YACP,CAAC,IAAI,EAAE,CACR,CAAC;IACJ,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,CAAC;QACpC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,GAAG,KAAK,CAAC;QACzC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC7B,CAAC;IAED,YAAY;QACV,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,SAAS,CAAC,CAAC,GAAU,EAAE,EAAE;YACxD,IAAI,QAAQ,GAAU,GAAG,CAAC;YAC1B,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;YACpB,yEAAyE;YACzE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBACrB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YAC5D,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAC7D,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CACxC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,EAAE,CAAC;IACjD,CAAC;IAED,eAAe,CAAC,cAAc;QAC5B,IAAI,CAAC,kBAAkB,CAAC,QAAQ,GAAG,IAAI,CAAC;QACxC,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC7D,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC;YACrD,KAAK,EAAE,cAAc,CAAC,kBAAkB;YACxC,KAAK,EAAE,cAAc,CAAC,gBAAgB;SACvC,CAAC,CAAC;IACL,CAAC;IAED,WAAW;IACX,CAAC;;wFA9SU,oBAAoB;oGAApB,oBAAoB;kEAoBpB,iEAAkB;wEAClB,wEAAY;wEACZ,8DAAO;;;;;;qFAxBP,CAAC,uFAAqB,CAAC;QC7BpC,8EACE;QAAA;QAAA,mFACE;QAAA;QAAA,0EACE;QAAA;QAAA,yEACE;QAAA;QAAA,yEACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,2EAAe;QAAA,2EAA2B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QACzE;QAAA,uEAEE;QAAA;QAAA,8HACE;QAGN;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,2EAAe;QAAA,2EAA2B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QACzE;QAAA,uEAEA;QAAA;QAAA,8HACE;QAGJ;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACR;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,0EACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,2EAAe;QAAA,4DAAY;QACtC;QAAA,4EAKA;QAAA;QAAA,yHAEE;QAEF;QAAA,4FAEE;QADA,+KAAkB,4CAAoC,IAAC;QACvD;QAAA,iIACU;QACV;QAAA,iIACE;;QAEJ;QAAA,4DAAmB;QACnB;QAAA,8HACE;QAGJ;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,6EAAW;QAAA,oEAAQ;QAAA,4DAAY;QAC/B;QAAA,mFAAuG;QACzG;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,8EACE;QADM,6IAAS,YAAQ,IAAC;QACxB;QAAA,4EAAU;QAAA,kEAAM;QAAA,4DAAW;QAAA,6EAC7B;QAAA,4DAAS;QACT;QAAA,8EACE;QADoD,6IAAS,sBAAkB,IAAC;QAChF,wDACF;QAAA,4DAAS;QACX;QAAA,4DAAM;QACR;QAAA,4DAAM;QACR;QAAA,4DAAO;QACT;QAAA,4DAAmB;QACrB;QAAA,4DAAW;QAEX;QAAA,4EACE;QAAA;QAAA,oFACE;QAAA;QAAA,2EACE;QAAA;QAAA,6EAEE;QADoC,4KAAsB,gBAAY,IAAC;QACvE;QAAA,6EACE;QAAA;QAAA,mHACE;QAEF;QAAA,mHACE;QAEJ;QAAA,qEAAe;QAEf;QAAA,8EACE;QAAA;QAAA,mHACE;QAEF;QAAA,mHACE;QAEJ;QAAA,qEAAe;QAEf;QAAA,8EACE;QAAA;QAAA,mHACE;QAEF;QAAA,mHACE;QAEJ;QAAA,qEAAe;QAEf;QAAA,8EACE;QAAA;QAAA,mHACE;QAEF;QAAA,mHACE;QAEJ;QAAA,qEAAe;QAEf;QAAA,8EACE;QAAA;QAAA,mHACE;QAEF;QAAA,mHACE;QAEJ;QAAA,qEAAe;QAEf;QAAA,mHAAuD;QACvD;QAAA,mHAA4D;QAC9D;QAAA,4DAAQ;QACV;QAAA,4DAAM;QACN;QAAA,4EACE;QAAA;QAAA,iFAAqF;QACvF;QAAA,4DAAM;QACR;QAAA,4DAAmB;QACrB;QAAA,4DAAW;;;QA/HD,0DAA2B;QAA3B,wFAA2B;QAGX,0DAAmC;QAAnC,uGAAmC;QAE1C,0DAAmB;QAAnB,gFAAmB;QAEb,0DAAgD;QAAhD,6GAAgD;QAO/C,0DAAmC;QAAnC,uGAAmC;QAItC,0DAAgD;QAAhD,6GAAgD;QAS7C,0DAAmC;QAAnC,uGAAmC;QAEpB,0DAAwB;QAAxB,qFAAwB;QAKtB,0DAA0C;QAA1C,wGAA0C;QAI9B,0DAAyB;QAAzB,sFAAyB;QAEtD,0DAA0G;QAA1G,4KAA0G;QAE1G,0DAAkD;QAAlD,+JAAkD;QAIrD,0DAAoE;QAApE,kIAAoE;QAQlB,0DAAoB;QAApB,iFAAoB;QAOjF,2DACF;QADE,gHACF;QAU6C,2DAAyB;QAAzB,sFAAyB;QA+CrD,2DAAmC;QAAnC,iGAAmC;QAC1C,0DAA+C;QAA/C,kGAA+C;QAI9C,0DAAgC;QAAhC,mJAAgC;;6FD/FxC,oBAAoB;cANhC,uDAAS;eAAC;gBACT,QAAQ,EAAE,iBAAiB;gBAC3B,WAAW,EAAE,8BAA8B;gBAC3C,SAAS,EAAE,CAAC,8BAA8B,CAAC;gBAC3C,SAAS,EAAE,CAAC,uFAAqB,CAAC;aACnC;kqBAqBgC,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;YACc,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACH,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AErDtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AAGC;AACD;AAChB;AACD;AACqB;AAGjB;AAaW;AACE;AAEZ;AACQ;;;;;;;;;;;;;;;;;;;;;;;ICf3C,iFAEE;IADA,qYAA2D;IAC3D,uDACF;IAAA,4DAAa;;;IAHmD,6EAAgB;IAE9E,0DACF;IADE,4HACF;;;IAGF,4EACE;IAAA,4GACF;IAAA,4DAAY;;;IACZ,4EACE;IAAA,wHACF;IAAA,4DAAY;;;IAQZ,4EACE;IAAA,kHACF;IAAA,4DAAY;;;IAUZ,4EACE;IAAA,kHACF;IAAA,4DAAY;;;IAqBd,yEACE;IAAA,+FACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,yHACF;;;IAIA,yEACE;IAAA,qGACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,+HACF;;;IAIA,yEACE;IAAA,qGACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,+HACF;;;IAIA,yEACE;IAAA,yFACF;IAAA,4DAAK;;;;IACL,yEACE;IAAA;IAAA,+EAAgE;IAA9B,8WAA6B;IAAC,+DAAI;IAAA,4DAAW;IACjF;IAAA,4DAAK;;;IAGP,oEAA4D;;;IAC5D,oEAAiE;;;ADpElE,MAAM,qBAAqB;IA4BhC,YACU,mBAAwC,EACxC,SAAsB,EACvB,UAAsB;QAFrB,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,cAAS,GAAT,SAAS,CAAa;QACvB,eAAU,GAAV,UAAU,CAAY;QA9B/B,qBAAgB,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QAGpD,aAAQ,GAAG,EAAE,CAAC;QACd,kBAAa,GAAG,KAAK,CAAC;QACtB,wBAAmB,GAAG,EAAE,CAAC;QACzB,YAAO,GAAgB,EAAE,CAAC;QAM1B,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QAC9C,qBAAgB,GAAa;YAC3B,WAAW;YACX,iBAAiB;YACjB,iBAAiB;YACjB,MAAM;SACP,CAAC;QAGF,qBAAgB,GAAa,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC3D,eAAU,GAAG,IAAI,0EAAkB,EAAe,CAAC;QAUjD,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1D,IAAI,CAAC,OAAO,CAAC,UAAU,KAAK;gBAC1B,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI;oBAAE,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC;;oBAC5D,KAAK,CAAC,SAAS,GAAG,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,EAAE;YAC9D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACxC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;QAEvB,IAAI,CAAC,cAAc,GAAG,IAAI,wDAAS,CAAC;YAClC,OAAO,EAAE,IAAI,0DAAW,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACnD,eAAe,EAAE,IAAI,0DAAW,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC3D,eAAe,EAAE,IAAI,0DAAW,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;SAC5D,CAAC,CAAC;QACH,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YAClD,IAAI,IAAI,CAAC,mBAAmB,CAAC,QAAQ,IAAI,IAAI,EAAE;gBAC7C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBACzB,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;aACtC;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,EAAE,CAAC;QAEb,IAAI,CAAC,mBAAmB,CAAC,cAAc,EAAE,CAAC;IAC5C,CAAC;IAED,aAAa,CAAC,KAAU,EAAE,OAAY;QACpC,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;QACtE,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,cAAc,CAAC;QACxC,IAAI,OAAO,KAAK,SAAS,IAAI,cAAc,KAAK,SAAS,EAAE;YACzD,IAAI,SAAS,GAAG,EAAE,CAAC;YACnB,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBACrC,IAAI,CAAC,CAAC,KAAK,KAAK,cAAc,EAAE;oBAC9B,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC;iBACrB;YACH,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC;YACxC,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;SACzB;IACH,CAAC;IACD,UAAU,CAAC,OAAO;QAChB,IAAI,CAAC,mBAAmB,CAAC,QAAQ,GAAG,IAAI,CAAC;QACzC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC;YAC/C,KAAK,EAAE,OAAO,CAAC,SAAS;YACxB,KAAK,EAAE,OAAO,CAAC,OAAO;SACvB,CAAC,CAAC;IACL,CAAC;IACD,aAAa;QACX,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,CAAC,GAAY,EAAE,EAAE;YAClE,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBACtB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;oBAC5B,KAAK,EAAE,OAAO,CAAC,SAAS;oBACxB,KAAK,EAAE,OAAO,CAAC,OAAO;iBACvB,CAAC,CAAC;gBACH,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,cAAc;qBAC5C,GAAG,CAAC,SAAS,CAAC;qBACd,YAAY,CAAC,IAAI,CAChB,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CACzC,CAAC;YACN,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC;QAC1C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAC3D;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SAChE;QACD,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACnC,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE,CAAC;QACvC,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,IAAI,IAAI,EAAE;YACrC,IAAI,WAAW,GAAG,IAAI,yEAAe,EAAE,CAAC;YACxC,WAAW,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,eAAe,CAAC;YACxE,WAAW,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,eAAe,CAAC;YACxE,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SAClE;QACD,IAAI,IAAI,CAAC,mBAAmB,CAAC,QAAQ,IAAI,IAAI,EAAE;YAC7C,WAAW,CAAC,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC;YACjF,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;SACxE;QAED,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,IAAI,IAAI,EAAE;YACrC,IAAI,IAAI,CAAC,mBAAmB,CAAC,QAAQ,IAAI,KAAK,EAAE;gBAC9C,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,SAAS,CAC/D,CAAC,QAAQ,EAAE,EAAE;oBACX,IAAI,QAAQ,IAAI,IAAI,EAAE;wBACpB,IAAI,CAAC,mBAAmB,CAAC,cAAc,EAAE,CAAC;wBAC1C,IAAI,IAAI,CAAC,mBAAmB,CAAC,QAAQ,IAAI,KAAK;4BAC5C,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,wCAAwC,EACxC,GAAG,EACH;gCACE,QAAQ,EAAE,IAAI;gCACd,kBAAkB,EAAE,OAAO;gCAC3B,gBAAgB,EAAE,KAAK;6BACxB,CACF,CAAC;wBACJ,IAAI,CAAC,KAAK,EAAE,CAAC;qBACd;gBACH,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;oBACR,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;wBACpC,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,aAAa,CAAC;wBAC3B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;gBACL,CAAC,CACF,CAAC;aACH;iBAAM;gBACL,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,SAAS,CAC7D,CAAC,QAAQ,EAAE,EAAE;oBACX,IAAI,QAAQ,IAAI,IAAI,EAAE;wBACpB,IAAI,CAAC,mBAAmB,CAAC,cAAc,EAAE,CAAC;wBAC1C,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,0CAA0C,EAC1C,GAAG,EACH;4BACE,QAAQ,EAAE,IAAI;4BACd,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CACF,CAAC;wBACF,IAAI,CAAC,KAAK,EAAE,CAAC;qBACd;gBACH,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;oBACR,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;wBACpC,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,aAAa,CAAC;wBAC3B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;gBACL,CAAC,CACF,CAAC;aACH;SACF;IACH,CAAC;IAED,KAAK;QACH,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QAC5B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;QACvB,IAAI,CAAC,mBAAmB,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC5C,CAAC;IACO,YAAY,CAAC,KAAK;QACxB,IAAI,WAAW,CAAC;QAChB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,WAAW,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;SACnC;aACI;YACH,OAAO,IAAI,CAAC,mBAAmB,CAAC;SACjC;QAED,OAAO,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAChD,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CACjD,CAAC;IACJ,CAAC;IACD,SAAS,CAAC,KAAgB;QACxB,OAAO,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACjD,CAAC;IACD,QAAQ,CAAC,OAAO;QACd,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,OAAO,CAAC;aACrE,KAAK,CAAC;IACX,CAAC;IACD,UAAU;QACR,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACpD,CAAC;;0FA5NU,qBAAqB;qGAArB,qBAAqB;wEAyBrB,wEAAY;wEACZ,8DAAO;;;;;;QC5DpB,8EACE;QAAA;QAAA,mFACE;QAAA;QAAA,0EACE;QAAA;QAAA,yEACE;QAAA;QAAA,yEACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,sEAAU;QAAA,2EAA2B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QACpE;QAAA,uEAIA;QAAA;QAAA,0FACE;QAAA;QAAA,iIAEE;;QAEJ;QAAA,4DAAmB;QAEnB;QAAA,gIACE;QAEF;QAAA,gIACE;QAEJ;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,4EAAgB;QAAA,2EAA2B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QAC1E;QAAA,wEAEA;QAAA;QAAA,gIACE;QAEJ;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACR;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,0EACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,4EAAgB;QAAA,2EAA2B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QAC1E;QAAA,wEAEA;QAAA;QAAA,gIACE;QAEJ;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QAEN;QAAA,2EACE;QAAA;QAAA,8EACE;QADM,8IAAS,WAAO,IAAC;QACvB;QAAA,4EAAU;QAAA,kEAAM;QAAA,4DAAW;QAAA,6EAC7B;QAAA,4DAAS;QACT;QAAA,8EACE;QADoD,8IAAS,uBAAmB,IAAC;QACjF,wDACF;QAAA,4DAAS;QACX;QAAA,4DAAM;QACR;QAAA,4DAAM;QACR;QAAA,4DAAO;QACT;QAAA,4DAAmB;QACrB;QAAA,4DAAW;QACX;QAAA,4EACE;QAAA;QAAA,oFACE;QAAA;QAAA,2EACE;QAAA;QAAA,6EACE;QAAA;QAAA,6EACE;QAAA;QAAA,kHACE;QAEF;QAAA,kHACE;QAEJ;QAAA,qEAAe;QAEf;QAAA,6EACE;QAAA;QAAA,kHACE;QAEF;QAAA,oHACE;QAEJ;QAAA,qEAAe;QAEf;QAAA,8EACE;QAAA;QAAA,oHACE;QAEF;QAAA,oHACE;QAEJ;QAAA,qEAAe;QAEf;QAAA,8EACE;QAAA;QAAA,oHACE;QAEF;QAAA,oHACE;QAEJ;QAAA,qEAAe;QAEf;QAAA,oHAAuD;QACvD;QAAA,oHAA4D;QAC9D;QAAA,4DAAQ;QACV;QAAA,4DAAM;QACN;QAAA,4EACE;QAAA;QAAA,iFAAqF;QACvF;QAAA,4DAAM;QACR;QAAA,4DAAmB;QACrB;QAAA,4DAAW;;;QA3GD,0DAA4B;QAA5B,yFAA4B;QAGZ,0DAAmC;QAAnC,uGAAmC;QAE1C,0DAAkC;QAAlC,+FAAkC;QAIC,0DAAyB;QAAzB,sFAAyB;QACrD,0DAAmD;QAAnD,gKAAmD;QAMtD,0DAA0D;QAA1D,wHAA0D;QAG1D,0DAA8D;QAA9D,4HAA8D;QAM3D,0DAAmC;QAAnC,uGAAmC;QAItC,0DAAoD;QAApD,kHAAoD;QAQjD,0DAAmC;QAAnC,uGAAmC;QAItC,0DAAoD;QAApD,kHAAoD;QAW/D,2DACF;QADE,gHACF;QAS6C,2DAAyB;QAAzB,sFAAyB;QAqCrD,2DAAmC;QAAnC,iGAAmC;QAC1C,0DAA+C;QAA/C,kGAA+C;QAI9C,0DAAgC;QAAhC,mJAAgC;;6FDxExC,qBAAqB;cALjC,uDAAS;eAAC;gBACT,QAAQ,EAAE,kBAAkB;gBAC5B,WAAW,EAAE,+BAA+B;gBAC5C,SAAS,EAAE,CAAC,+BAA+B,CAAC;aAC7C;gUA0B4C,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACH,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AE5DtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AAMrC;AAC+C;AAEV;AACF;AACV;AAEQ;;;;;;;;;;;;;;;;;;ICJ7C,4EACE;IAAA,6GACF;IAAA,4DAAY;;;IACZ,4EACE;IAAA,mHACF;IAAA,4DAAY;;;IACZ,4EACE;IAAA,4GACF;IAAA,4DAAY;;;IAyBd,yEAAgF;IAAA,wEAAY;IAAA,4DAAK;;;IACjG,yEAAuC;IAAA,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,iGAAsB;;;IAG7D,yEAAuC;IAAA,iEAAK;IAAA,4DAAK;;;;IACjD,yEACE;IAAA;IAAA,+EAAgE;IAA9B,sWAA6B;IAAC,+DAAI;IAAA,4DAAW;IACjF;IAAA,4DAAK;;;IAEP,oEAA4D;;;IAC5D,oEAAkE;;;IAClE,yEACE;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAC/C;IAAA,4DAAK;;;ADxCb,2CAA2C;AAOpC,MAAM,eAAe;IAc1B,YACU,cAAmC,EACnC,SAAsB,EACvB,UAAsB;QAFrB,mBAAc,GAAd,cAAc,CAAqB;QACnC,cAAS,GAAT,SAAS,CAAa;QACvB,eAAU,GAAV,UAAU,CAAY;QAb/B,qBAAgB,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QACpD,kBAAa,GAAG,KAAK,CAAC;QACtB,aAAQ,GAAW,EAAE,CAAC;QACtB,qBAAgB,GAAa,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAYlD,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YACjD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC3D,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,EAAE;YAC9D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,aAAa,GAAG,IAAI,wDAAS,CAAC;YACjC,UAAU,EAAE,IAAI,0DAAW,CAAC,EAAE,EAAE;gBAC9B,yDAAU,CAAC,QAAQ;gBACnB,yDAAU,CAAC,SAAS,CAAC,GAAG,CAAC;gBACzB,yDAAU,CAAC,SAAS,CAAC,CAAC,CAAC;aACxB,CAAC;SACH,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YAChD,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,IAAI,IAAI,EAAE;gBACxC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACpC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;aAC1B;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;QACvB,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAGD,WAAW,CAAC,UAAU;QACpB,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAC;QACpC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAClD,CAAC;IAED,SAAS;QACP,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,MAAM,GAAG,IAAI,+EAAgB,EAAE,CAAC;QACpC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC;QACxD,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,IAAI,IAAI,EAAE;YACxC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC;SACjE;QACD,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,IAAI,EAAE;YACpC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,SAAS,CAChD,CAAC,GAAG,EAAE,EAAE;gBACN,IAAI,GAAG,EAAE;oBACP,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;oBACjC,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,IAAI,KAAK,EAAE;wBACzC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE;4BAC5D,QAAQ,EAAE,IAAI;4BACd,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;wBACH,IAAI,CAAC,MAAM,EAAE,CAAC;qBACf;yBAAM;wBACL,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,qCAAqC,EAAE,GAAG,EAAE;4BAC9D,QAAQ,EAAE,IAAI;4BACd,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;wBACH,IAAI,CAAC,MAAM,EAAE,CAAC;qBACf;iBACF;qBAAM;oBACL,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uBAAuB,EAAE,GAAG,EAAE;wBAChD,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,aAAa,CAAC;wBAC3B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBAEH,IAAI,CAAC,MAAM,EAAE,CAAC;iBACf;YACH,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;gBACR,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;oBACpC,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACL,CAAC,CACF,CAAC;SACH;IACH,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,KAAK,CAAC;QACrC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,UAAU;QACR,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;IACnC,CAAC;IAED,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAC3D;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC3D,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SAClC;IACH,CAAC;;8EA/HU,eAAe;+FAAf,eAAe;kEAUf,iEAAkB;wEAClB,wEAAY;wEACZ,8DAAO;;;;;;;QClCpB,8EACE;QAAA;QAAA,mFACE;QAAA;QAAA,0EACE;QAAA;QAAA,yEACE;QAAA;QAAA,yEACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,uEAAW;QAAA,2EAA2B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QACrE;QAAA,uEAEA;QAAA;QAAA,yHACE;QAEF;QAAA,yHACE;QAEF;QAAA,yHACE;QAGJ;QAAA,4DAAiB;QAEnB;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,0EACE;QAAA;QAAA,8EACE;QADyB,wIAAS,YAAQ,IAAC;QAC3C;QAAA,4EAAU;QAAA,iEAAK;QAAA,4DAAW;QAAC,gFAC7B;QAAA,4DAAS;QACT;QAAA,8EACE;QADmD,wIAAS,eAAW,IAAC;QACxE,wDACF;QAAA,4DAAS;QACX;QAAA,4DAAM;QACR;QAAA,4DAAM;QACR;QAAA,4DAAM;QACR;QAAA,4DAAO;QACT;QAAA,4DAAmB;QACrB;QAAA,4DAAW;QAEX;QAAA,4EACE;QAAA;QAAA,oFACE;QAAA;QAAA,2EACE;QAAA;QAAA,6EACE;QAAA;QAAA,6EACE;QAAA;QAAA,4GAAgF;QAChF;QAAA,4GAAuC;QACzC;QAAA,qEAAe;QACf;QAAA,6EACE;QAAA;QAAA,4GAAuC;QACvC;QAAA,4GACE;QAEJ;QAAA,qEAAe;QACf;QAAA,4GAAuD;QACvD;QAAA,4GAA6D;QAC7D;QAAA,4GACE;QAEJ;QAAA,4DAAQ;QACV;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,gFAAgE;QAClE;QAAA,4DAAM;QACR;QAAA,4DAAmB;QACrB;QAAA,4DAAW;;QA5DD,0DAA2B;QAA3B,wFAA2B;QAGX,0DAA+B;QAA/B,uGAA+B;QAAC,oFAAyB;QAI5D,0DAA4D;QAA5D,0HAA4D;QAG5D,0DAA6D;QAA7D,2HAA6D;QAG7D,0DAA6D;QAA7D,2HAA6D;QAatE,2DACF;QADE,oHACF;QAWW,2DAAyB;QAAzB,sFAAyB;QAWrB,2DAAmC;QAAnC,iGAAmC;QAC1C,0DAAgD;QAAhD,kGAAgD;QAO/C,0DAAgC;QAAhC,mJAAgC;;6FDrCxC,eAAe;cAL3B,uDAAS;eAAC;gBACT,QAAQ,EAAE,YAAY;gBACtB,WAAW,EAAE,yBAAyB;gBACtC,SAAS,EAAE,CAAC,yBAAyB,CAAC;aACvC;8TAWgC,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;YACc,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACH,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AElCtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AAES;AACrB;AACa;AAC0B;AAM7B;AACE;AACZ;AACQ;;;;;;;;;;;;;;;;;;ICN7C,4EAEE;IAAA,4GACF;IAAA,4DAAY;;;IAOZ,4EACE;IAAA,4GACF;IAAA,4DAAY;;;IAqBd,yEACE;IAAA,+FACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,yHACF;;;IAIA,yEACE;IAAA,+FACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,yHACF;;;IAIA,yEACE;IAAA,yFACF;IAAA,4DAAK;;;;IACL,yEACE;IAAA;IAAA,+EAAgE;IAA9B,uWAA6B;IAAC,+DAAI;IAAA,4DAAW;IACjF;IAAA,4DAAK;;;IAGP,oEAA4D;;;IAC5D,oEAAiE;;;AD9ClE,MAAM,eAAe;IAa1B,YACU,UAAyB,EACzB,SAAsB,EACvB,UAAsB;QAFrB,eAAU,GAAV,UAAU,CAAe;QACzB,cAAS,GAAT,SAAS,CAAa;QACvB,eAAU,GAAV,UAAU,CAAY;QAd/B,qBAAgB,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QACpD,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QAE9C,iBAAY,GAAa,EAAE,CAAC;QAG5B,aAAQ,GAAG,EAAE,CAAC;QACd,UAAK,GAAG,IAAI,CAAC;QAEb,kBAAa,GAAG,KAAK,CAAC;QAoCtB,SAAI,GAAG;YACL,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE;YAC5C,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE;SAC7C,CAAC;QACF,qBAAgB,GAAa,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;QAChE,qBAAgB,GAAa,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC3D,eAAU,GAAG,IAAI,0EAAkB,EAAS,CAAC;QAnC3C,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YAC5C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACjC,IAAI,CAAC,UAAU,CAAC,mBAAmB,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7E,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,EAAE;YAC9D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,IAAI,wDAAS,CAAC;YAC7B,SAAS,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACvD,SAAS,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;SACxD,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YACzC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,IAAI,EAAE;gBACpC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBAChC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;aAC1B;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;QACvB,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAYD,IAAI,CAAC,KAA4B;QAC/B,8EAAe,CACb,IAAI,CAAC,gBAAgB,EACrB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,YAAY,CACnB,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAC3D;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC3D;QACD,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACnC,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC;IACrC,CAAC;IAED,UAAU,CAAC,OAAc;QACvB,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,KAAK,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,YAAY;QACV,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC;QAClC,IAAI,WAAW,GAAG,IAAI,yDAAK,EAAE,CAAC;QAC9B,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC;QACvD,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC;QAEvD,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,IAAI,EAAE;YACpC,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;YAC9D,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;YAC5D,mEAAmE;SACpE;QACD,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,EAAE;YAChC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,SAAS,CACjD,CAAC,GAAG,EAAE,EAAE;gBACN,IAAI,GAAG,IAAI,IAAI,EAAE;oBACf,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC;oBACnC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,KAAK;oBACnC,yHAAyH;oBAC1H;wBAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kCAAkC,EAAE,GAAG,EAAE;4BAC5D,QAAQ,EAAE,IAAI;4BACd,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;wBACH,IAAI,CAAC,KAAK,EAAE,CAAC;qBACd;oBACD,0HAA0H;yBACtH;wBACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oCAAoC,EAAE,GAAG,EAAE;4BAC7D,QAAQ,EAAE,IAAI;4BACd,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;wBACL,IAAI,CAAC,KAAK,EAAE,CAAC;qBAAC;iBACf;YACH,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;gBACR,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;oBACpC,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,6FAA6F;YAC/F,CAAC,CACF,CAAC;SACH;aAAM;YACL,iGAAiG;YACjG,gBAAgB;SACjB;IACH,CAAC;IAED,QAAQ,CAAC,KAAK;QACZ,IAAI,MAAM,GAAG,cAAc,CAAC;QAC5B,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,WAAW;QACT,4CAA4C;IAC9C,CAAC;;8EAxJU,eAAe;+FAAf,eAAe;kEACf,iEAAkB;wEAqDlB,wEAAY;wEACZ,8DAAO;;;;;;;QC7EpB,8EACE;QAAA;QAAA,mFACE;QAAA;QAAA,0EACE;QAAA;QAAA,yEACE;QAAA;QAAA,yEACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,sEAAU;QAAA,2EAA2B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QACpE;QAAA,uEACA;QAAA;QAAA,yHAEE;QAEJ;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,sEAAU;QAAA,2EAA2B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QACpE;QAAA,uEACA;QAAA;QAAA,yHACE;QAEJ;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACR;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,8EACE;QADyB,wIAAS,WAAO,IAAC;QAC1C;QAAA,4EAAU;QAAA,iEAAK;QAAA,4DAAW;QAAA,2EAC5B;QAAA,4DAAS;QACT;QAAA,8EACE;QADmD,wIAAS,kBAAc,IAAC;QAC3E,wDACF;QAAA,4DAAS;QACX;QAAA,4DAAM;QACR;QAAA,4DAAO;QACT;QAAA,4DAAmB;QACrB;QAAA,4DAAW;QACX;QAAA,4EACE;QAAA;QAAA,oFACE;QAAA;QAAA,2EACE;QAAA;QAAA,6EAEE;QADoC,uKAAsB,gBAAY,IAAC;QACvE;QAAA,6EACE;QAAA;QAAA,4GACE;QAEF;QAAA,4GACE;QAEJ;QAAA,qEAAe;QAEf;QAAA,6EACE;QAAA;QAAA,4GACE;QAEF;QAAA,4GACE;QAEJ;QAAA,qEAAe;QAEf;QAAA,6EACE;QAAA;QAAA,4GACE;QAEF;QAAA,4GACE;QAEJ;QAAA,qEAAe;QAEf;QAAA,4GAAuD;QACvD;QAAA,4GAA4D;QAC9D;QAAA,4DAAQ;QACV;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,gFAAgE;QAClE;QAAA,4DAAM;QACR;QAAA,4DAAmB;QACrB;QAAA,4DAAW;;QAzED,0DAAuB;QAAvB,oFAAuB;QAGP,0DAAmC;QAAnC,uGAAmC;QAI/C,0DAAyC;QAAzC,uGAAyC;QAM7B,0DAAmC;QAAnC,uGAAmC;QAGtC,0DAAyC;QAAzC,uGAAyC;QAWtD,2DACF;QADE,4GACF;QAQ+C,2DAAyB;QAAzB,sFAAyB;QA6BrD,2DAAmC;QAAnC,iGAAmC;QAC1C,0DAA+C;QAA/C,kGAA+C;QAI9C,0DAAgC;QAAhC,mJAAgC;;6FDlDxC,eAAe;cAL3B,uDAAS;eAAC;gBACT,QAAQ,EAAE,YAAY;gBACtB,WAAW,EAAE,yBAAyB;gBACtC,SAAS,EAAE,CAAC,yBAAyB,CAAC;aACvC;oTAEgC,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;YAqDc,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACH,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AE7EtC;AAAA;AAAA;AAAkD;;AAO3C,MAAM,6BAA6B;IAExC,gBAAgB,CAAC;IAEjB,QAAQ;IACR,CAAC;;0GALU,6BAA6B;6GAA7B,6BAA6B;QCP1C,oEAAG;QAAA,wFAA6B;QAAA,4DAAI;QACpC;;6FDMa,6BAA6B;cALzC,uDAAS;eAAC;gBACT,QAAQ,EAAE,4BAA4B;gBACtC,WAAW,EAAE,yCAAyC;gBACtD,SAAS,EAAE,CAAC,yCAAyC,CAAC;aACvD;;;;;;;;;;;;;;AEND;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AAEC;AAMA;AAOtC;AAGmC;AACV;AACY;AACf;AAGE;;;;;;;;;;;;;;;;;;;;;;;ICZpC,6EAEE;IADmC,iUAAuB;IAC1D;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC5B;IAAA,4DAAS;;;IAGP,iFAAyF;IAAA,kFAAuB;IAAA,4DAAa;;;IAC7H,iFACE;IAAA,uDACF;IAAA,4DAAa;;;;IAFD,mFAAmB;IAC7B,0DACF;IADE,0HACF;;;IAEF,4EACE;IAAA,iHACF;IAAA,4DAAY;;;IACZ,4EACE;IAAA,kIACF;IAAA,4DAAY;;;IASZ,4EACE;IAAA,mHACF;IAAA,4DAAY;;;IACZ,4EACE;IAAA,4GACF;IAAA,4DAAY;;;IACZ,4EACE;IAAA,mHACF;IAAA,4DAAY;;;IAuBd,yEAAgF;IAAA,4EAAgB;IAAA,4DAAK;;;IACrG,yEAAgD;IAAA,uDAAgC;IAAA,4DAAK;;;IAArC,0DAAgC;IAAhC,2GAAgC;;;IAGhF,yEAAgF;IAAA,8EAAkB;IAAA,4DAAK;;;IACvG,yEAAgD;IAAA,uDAA+B;IAAA,4DAAK;;;IAApC,0DAA+B;IAA/B,0GAA+B;;;IAG/E,yEAAuC;IAAA,iEAAK;IAAA,4DAAK;;;;IACjD,yEACE;IAAA;IAAA,+EAA6E;IAA3C,kYAA0C;IAAC,+DAAI;IAAA,4DAAW;IAC9F;IAAA,4DAAK;;;IAEP,oEAA4D;;;IAC5D,oEAAkE;;;IAClE,yEACE;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAC/C;IAAA,4DAAK;;;ADtDN,MAAM,oBAAoB;IA2B/B,YACU,mBAAuC,EACvC,SAAsB,EACvB,UAAsB;QAFrB,wBAAmB,GAAnB,mBAAmB,CAAoB;QACvC,cAAS,GAAT,SAAS,CAAa;QACvB,eAAU,GAAV,UAAU,CAAY;QA7B/B,qBAAgB,GAAG,2DAAW,CAAC,oBAAoB,CAAC;QAIpD,aAAQ,GAAW,EAAE,CAAC;QACtB,kBAAa,GAAG,KAAK,CAAC;QAGtB,mBAAc,GAAG,EAAE,CAAC;QAEpB,mCAAmC;QAEnC,oBAAe,GAAU,EAAE,CAAC;QAI5B,iBAAY,GAAa,EAAE,CAAC;QAC5B,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QAO9C,qBAAgB,GAAa,CAAC,YAAY,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;QAOhE,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1D,IAAI,CAAC,OAAO,CAAC,UAAU,KAAK;gBAC1B,IAAI,KAAK,CAAC,UAAU,IAAI,IAAI;oBAC1B,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC;;oBAC9C,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC;YAC9B,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAE/D,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,EAAE;YAC9D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;QACN,4BAA4B;QAC5B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,IAAI,sEAAW,EAAE,CAAC;QACrC,IAAI,CAAC,cAAc,GAAG,IAAI,wDAAS,CAAC;YAClC,YAAY,EAAE,IAAI,0DAAW,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACxD,UAAU,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE;gBAChC,yDAAU,CAAC,QAAQ;gBACnB,yDAAU,CAAC,SAAS,CAAC,GAAG,CAAC;gBACzB,yDAAU,CAAC,SAAS,CAAC,CAAC,CAAC;aACxB,CAAC;SACH,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,CAAC;QAEpB,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1D,IAAI,IAAI,CAAC,mBAAmB,CAAC,QAAQ,IAAI,IAAI,EAAE;gBAC7C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC;gBAChD,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACrC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,YAAY,CAAC,UAAU,CAClD,IAAI,CAAC,WAAW,CACjB,CAAC;gBACF,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;aAC1B;QACH,CAAC,CAAC,CAAC;QACH,iBAAiB;QAEjB,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1D,IAAI,CAAC,OAAO,CAAC,UAAU,KAAK;gBAC1B,IAAI,KAAK,CAAC,UAAU,IAAI,IAAI;oBAC1B,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC;;oBAC9C,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC;YAC9B,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC/D,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,CAAC,SAAS,CACpD,CAAC,GAAU,EAAE,EAAE;YACb,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;YACzB,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBAChB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;oBACvB,KAAK,EAAE,CAAC,CAAC,WAAW;oBACpB,KAAK,EAAE,CAAC,CAAC,YAAY;iBACtB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAC1D,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CACpC,CAAC;QACJ,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;YACR,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE;gBACnC,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,CAAC,aAAa,CAAC;gBAC3B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CACF,CAAC;IACJ,CAAC;IAED,eAAe;QACb,IAAI,CAAC,mBAAmB,CAAC,eAAe,EAAE,CAAC;IAC7C,CAAC;IAED,eAAe,CAAC,eAAe;QAC7B,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE,CAAC;QACvD,IAAI,CAAC,mBAAmB,CAAC,QAAQ,GAAG,IAAI,CAAC;QACzC,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACjE,CAAC;IAED,eAAe;QACb,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;YAC7B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAI,WAAW,GAAG,IAAI,sEAAW,EAAE,CAAC;YAEpC,IAAI,gBAAgB,GAAG,IAAI,CAAC,qBAAqB,CAC/C,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,YAAY,CACvC,CAAC;YAEF,qEAAqE;YACrE,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC;YAC9D,IAAI,IAAI,CAAC,mBAAmB,CAAC,QAAQ,IAAI,IAAI,EAAE;gBAC7C,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC;gBAC/E,WAAW,CAAC,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,KAAK,CAAC,YAAY,CAAC;aACxF;iBACG;gBACF,WAAW,CAAC,YAAY,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;aACtD;YACD,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,IAAI,IAAI,EAAE;gBACrC,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,SAAS,CAC/D,CAAC,GAAG,EAAE,EAAE;oBACN,IAAI,GAAG,IAAI,IAAI,EAAE;wBACf,IAAI,CAAC,mBAAmB,CAAC,eAAe,EAAE,CAAC;wBAC3C,IAAI,IAAI,CAAC,mBAAmB,CAAC,QAAQ,IAAI,KAAK;4BAC5C,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,yCAAyC,EACzC,EAAE,EACF;gCACE,QAAQ,EAAE,IAAI;gCACd,kBAAkB,EAAE,OAAO;gCAC3B,gBAAgB,EAAE,KAAK;6BACxB,CACF,CAAC;;4BAEF,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,2CAA2C,EAC3C,EAAE,EACF;gCACE,QAAQ,EAAE,IAAI;gCACd,kBAAkB,EAAE,OAAO;gCAC3B,gBAAgB,EAAE,KAAK;6BACxB,CACF,CAAC;wBACJ,IAAI,CAAC,MAAM,EAAE,CAAC;qBACf;gBACH,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;oBACR,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE;wBACnC,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,aAAa,CAAC;wBAC3B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;gBACL,CAAC,CACF,CAAC;aACH;SACF;IACH,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QAC5B,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,mBAAmB,CAAC,QAAQ,GAAG,KAAK,CAAC;QAC1C,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,MAAM,EAAE,CAAC;IACxD,CAAC;IAED,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAC3D;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC/D,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SAClC;IACH,CAAC;IAEO,OAAO,CAAC,KAAK;QACnB,IAAI,WAAW,CAAC;QAChB,IAAI,KAAK,IAAI,KAAK,CAAC,YAAY,EAAE;YAC/B,WAAW,GAAG,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;YAC/C,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAC3C,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CACjD,CAAC;SACH;aAAM;YACL,OAAO,IAAI,CAAC,cAAc,CAAC;SAC5B;IACH,CAAC;IAED,WAAW;QACT,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,qBAAqB,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC;IAC1D,CAAC;;wFAnOU,oBAAoB;oGAApB,oBAAoB;kEAqBpB,iEAAkB;wEAClB,wEAAY;wEACZ,8DAAO;;;;;;;QCtDpB,8EACE;QAAA;QAAA,mFACE;QAAA;QAAA,0EACE;QAAA;QAAA,yEACE;QAAA;QAAA,yEAEE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,uEAAW;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QAAA,4DAAY;QACpE;QAAA,uEAIA;QAAA;QAAA,wHAEE;QAGF;QAAA,6FACE;QAAA;QAAA,gIAAyF;QACzF;QAAA,iIACE;;QAEJ;QAAA,4DAAmB;QACnB;QAAA,+HACE;QAEF;QAAA,+HACE;QAEJ;QAAA,4DAAiB;QAGnB;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,sFACE;QAAA;QAAA,6EAAW;QAAA,8EAAkB;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QAAA,4DAAY;QAC3E;QAAA,wEACA;QAAA;QAAA,+HACE;QAEF;QAAA,+HACE;QAEF;QAAA,+HACE;QAEJ;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,2EACE;QAAA;QAAA,8EACE;QADyB,6IAAS,YAAQ,IAAC;QAC3C;QAAA,4EAAU;QAAA,iEAAK;QAAA,4DAAW;QAAC,gFAC7B;QAAA,4DAAS;QACT;QAAA,8EACE;QADmD,6IAAS,qBAAiB,IAAC;QAC9E,wDACF;QAAA,4DAAS;QACX;QAAA,4DAAM;QACR;QAAA,4DAAM;QACR;QAAA,4DAAM;QACR;QAAA,4DAAO;QACT;QAAA,4DAAmB;QACrB;QAAA,4DAAW;QAEX;QAAA,4EACE;QAAA;QAAA,oFACE;QAAA;QAAA,2EACE;QAAA;QAAA,6EACE;QAAA;QAAA,6EACE;QAAA;QAAA,iHAAgF;QAChF;QAAA,iHAAgD;QAClD;QAAA,qEAAe;QACf;QAAA,6EACE;QAAA;QAAA,iHAAgF;QAChF;QAAA,iHAAgD;QAClD;QAAA,qEAAe;QACf;QAAA,6EACE;QAAA;QAAA,iHAAuC;QACvC;QAAA,mHACE;QAEJ;QAAA,qEAAe;QACf;QAAA,mHAAuD;QACvD;QAAA,mHAA6D;QAC7D;QAAA,mHACE;QAEJ;QAAA,4DAAQ;QACV;QAAA,4DAAM;QACN;QAAA,4EACE;QAAA;QAAA,iFAAqF;QACvF;QAAA,4DAAM;QACR;QAAA,4DAAmB;QACrB;QAAA,4DAAW;;;QA1FD,0DAA4B;QAA5B,yFAA4B;QAIZ,0DAA+B;QAA/B,uGAA+B;QAEU,0DAA6B;QAA7B,0FAA6B;QAIrD,0DAAyC;QAAzC,uGAAyC;QAM1D,0DAAmE;QAAnE,iIAAmE;QAC/C,0DAA6C;QAA7C,2JAA6C;QAIpE,0DAA+D;QAA/D,6HAA+D;QAG/D,0DAAmE;QAAnE,iIAAmE;QAQhE,0DAA+B;QAA/B,uGAA+B;QAGlC,0DAA6D;QAA7D,2HAA6D;QAG7D,0DAA8D;QAA9D,4HAA8D;QAG9D,0DAA8D;QAA9D,4HAA8D;QAWvE,2DACF;QADE,oHACF;QAWW,2DAAyB;QAAzB,sFAAyB;QAerB,2DAAmC;QAAnC,iGAAmC;QAC1C,0DAAgD;QAAhD,kGAAgD;QAO1B,0DAAgC;QAAhC,mJAAgC;;6FD1D7D,oBAAoB;cALhC,uDAAS;eAAC;gBACT,QAAQ,EAAE,kBAAkB;gBAC5B,WAAW,EAAE,+BAA+B;gBAC5C,SAAS,EAAE,CAAC,+BAA+B,CAAC;aAC7C;+TAsBgC,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;YACc,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACH,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AEtDtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAkD;AAO1B;AAQwB;AAES;AACE;AACmB;;;;;;;;;;;;;;;;;;ICNlE,6EAEE;IADmC,4UAA4B,eAAe,KAAE;IAChF;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC5B;IAAA,4DAAS;;;IAGP,iFAA0F;IAAA,mGAC7E;IAAA,4DAAa;;;IAC1B,iFACE;IAAA,uDACF;IAAA,4DAAa;;;IAFkD,6EAAgB;IAC7E,0DACF;IADE,4HACF;;;IAEF,4EACE;IAAA,2GACF;IAAA,4DAAY;;;IACZ,4EACE;IAAA,4HACF;IAAA,4DAAY;;;;IAcZ,6EAEE;IADmC,4UAA4B,gBAAgB,KAAE;IACjF;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC5B;IAAA,4DAAS;;;IAGP,iFAA2F;IAAA,mGAC9E;IAAA,4DAAa;;;IAC1B,iFACE;IAAA,uDACF;IAAA,4DAAa;;;IAFsD,gFAAmB;IACpF,0DACF;IADE,+HACF;;;IAEF,4EACE;IAAA,uGACF;IAAA,4DAAY;;;IACZ,4EACE;IAAA,kIACF;IAAA,4DAAY;;AD5BjB,MAAM,uBAAuB;IAclC,YACU,OAA8B,EAC9B,QAAqB;QADrB,YAAO,GAAP,OAAO,CAAuB;QAC9B,aAAQ,GAAR,QAAQ,CAAa;QAb/B,cAAS,GAAG,EAAE,CAAC;QACf,eAAU,GAAG,EAAE,CAAC;QAIhB,oBAAe,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QAGnD,uBAAkB,GAAkC,OAAO,CAAC;QAC5D,qBAAgB,GAAgC,KAAK,CAAC;QACtD,aAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;QAKxB,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,OAAO,GAAG,IAAI,mEAAY,EAAE,CAAC;QAClC,IAAI,CAAC,cAAc,GAAG,IAAI,wDAAS,CAAC;YAClC,aAAa,EAAE,IAAI,0DAAW,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACzD,cAAc,EAAE,IAAI,0DAAW,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;SAC3D,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAEO,WAAW,CAAC,KAAK;QACvB,IAAI,WAAW,CAAC;QAChB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,WAAW,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;SACnC;aAAM;YACL,IAAI,KAAK,KAAK,IAAI,EAAE;gBAClB,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;aACzC;iBAAM;gBACL,OAAO,IAAI,CAAC,SAAS,CAAC;aACvB;SACF;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CACtC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CACjD,CAAC;IACJ,CAAC;IACO,YAAY,CAAC,KAAU;QAC7B,IAAI,WAAW,CAAC;QAChB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,WAAW,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;SACnC;aAAM;YACL,IAAI,KAAK,KAAK,IAAI,EAAE;gBAClB,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;aACzC;iBAAM;gBACL,OAAO,IAAI,CAAC,UAAU,CAAC;aACxB;SACF;QAED,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CACvC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CACjD,CAAC;IACJ,CAAC;IAED,SAAS,CAAC,IAAS;QACjB,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAChC,CAAC;IAED,cAAc,CAAC,KAAS;QACtB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,aAAa;QACX,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YAClD,wCAAwC;YACxC,IAAI,QAAQ,GAAU,GAAG,CAAC;YAC1B,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBACrB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YACnE,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,cAAc;iBAC5C,GAAG,CAAC,gBAAgB,CAAC;iBACrB,YAAY,CAAC,IAAI,CAChB,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CACzC,CAAC;QACN,CAAC,CAAC,CAAC;IACL,CAAC;IACD,YAAY;QACV,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,SAAS,CAAC,CAAC,GAAU,EAAE,EAAE;YACxD,wCAAwC;YACxC,IAAI,QAAQ,GAAU,GAAG,CAAC;YAC1B,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;YACpB,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBACrB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YAC5D,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,cAAc;iBAC3C,GAAG,CAAC,eAAe,CAAC;iBACpB,YAAY,CAAC,IAAI,CAChB,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CACxC,CAAC;QACN,CAAC,CAAC,CAAC;IACL,CAAC;IACD,aAAa,CAAC,KAAU,EAAE,KAAU;QAClC,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,KAAK;aACnE,KAAK,CAAC;QACT,IAAI,cAAc,KAAK,IAAI,EAAE;YAC3B,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;SAC1D;QACD,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,cAAc,CAAC;QACrC,IAAI,KAAK,KAAK,SAAS,IAAI,cAAc,KAAK,SAAS,EAAE;YACvD,IAAI,OAAO,GAAG,EAAE,CAAC;YACjB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC3B,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,EAAE;oBACrB,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC;iBACnB;YACH,CAAC,CAAC,CAAC;YACH,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACvE,IAAI,KAAK,GAAG,EAAE,CAAC;YACf,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC5B,IAAI,CAAC,CAAC,KAAK,KAAK,cAAc,EAAE;oBAC9B,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;iBACjB;YACH,CAAC,CAAC,CAAC;YACH,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YAExD,2CAA2C;YAC3C,6BAA6B;YAC7B,IAAI;SACL;IACH,CAAC;IAED,YAAY,CAAC,KAAU,EAAE,KAAU;QACjC,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;QAC5E,IAAI,cAAc,KAAK,IAAI,EAAE;YAC3B,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;SACzD;QACD,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,cAAc,CAAC;QACpC,IAAI,KAAK,KAAK,SAAS,IAAI,cAAc,KAAK,SAAS,EAAE;YACvD,IAAI,OAAO,GAAG,EAAE,CAAC;YACjB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC3B,IAAI,CAAC,CAAC,KAAK,KAAK,cAAc,EAAE;oBAC9B,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC;iBACnB;YACH,CAAC,CAAC,CAAC;YACH,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACvE,IAAI,KAAK,GAAG,EAAE,CAAC;YACf,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC5B,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,EAAE;oBACrB,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;iBACjB;YACH,CAAC,CAAC,CAAC;YACH,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YAExD,2CAA2C;YAC3C,6BAA6B;YAC7B,IAAI;SACL;IACH,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,CACjD,CAAC,IAAI,EAAE,EAAE;YACP,IAAI,IAAI,KAAK,IAAI,EAAE;gBACjB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,qBAAqB,EAAE,GAAG,EAAE;oBAC7C,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;oBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;iBACxC,CAAC,CAAC;aACJ;YAED,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;YACR,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,yBAAyB,EAAE,GAAG,EAAE;gBACjD,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,CAAC,aAAa,CAAC;gBAC3B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;gBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;aACxC,CAAC,CAAC;QACL,CAAC,CACF,CAAC;IACJ,CAAC;IAED,WAAW;QACT,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED,UAAU,CAAC,KAAW,EAAE,SAAiB;QACvC,IAAI,SAAS,IAAI,eAAe,EAAC;YAC/B,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,KAAK,EAAE,CAAC;YACjD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,KAAK,EAAE,CAAC;SACnD;aACI,IAAI,SAAS,IAAI,gBAAgB,EAAC;YACrC,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,KAAK,EAAE,CAAC;SACnD;IACH,CAAC;IAED,QAAQ;QACN,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC;QACnE,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC;QACrE,IAAI,WAAW,KAAK,kBAAkB,EAAE;YACtC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;SACzD;QACD,IAAI,YAAY,KAAK,cAAc,EAAE;YACnC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;SAC1D;QACD,iHAAiH;QAEjH,GAAG;QACH,OAAO;QACP,SAAS;QACT,GAAG;QACH,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE,CAAC;QAEvC,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;YAC7B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC,oBAAoB,EAAE,CAAC;SAC7B;IACH,CAAC;;8FA1OU,uBAAuB;uGAAvB,uBAAuB,qHAHvB,CAAC,sFAAqB,CAAC;;QC9BpC,8EACE;QAAA;QAAA,mFACE;QAAA;QAAA,0EACE;QADiC,mJAAY,cAAU,IAAC;QACxD;QAAA,yEACE;QAAA;QAAA,yEACE;QAAA;QAAA,qFAEE;QAFiD,wJAAS,mBAAe,eAAe,CAAC,IAAC,sGAC9E,mBAAe,eAAe,CAAC,IAD+C;QAE1F;QAAA,6EAAW;QAAA,qFACT;QAAA,2EAA2B;QAAA,8DAAC;QAAA,4DAAO;QACrC;QAAA,4DAAY;QACZ;QAAA,+EAGA;QAFE,6SAAiB,UAAoB,IAAC;QADxC,4DAGA;QAAA;QAAA,2HAEE;QAEF;QAAA,2FAEE;QADA,kLAAkB,4CAAoC,IAAC;QACvD;QAAA,oIAA0F;QAE1F;QAAA,oIACE;;QAEJ;QAAA,4DAAmB;QACnB;QAAA,kIACE;QAEF;QAAA,kIACE;QAEJ;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QAEN;QAAA,0EACE;QAAA;QAAA,qFAEE;QAFiD,wJAAS,mBAAe,gBAAgB,CAAC,IAAC,sGAC/E,mBAAe,gBAAgB,CAAC,IAD+C;QAE3F;QAAA,6EAAW;QAAA,iFACT;QAAA,2EAA2B;QAAA,8DAAC;QAAA,4DAAO;QACrC;QAAA,4DAAY;QACZ;QAAA,iFAIA;QAF0C,6SAAiB,UAAqB,IAAC;QAFjF,4DAIA;QAAA;QAAA,2HAEE;QAEF;QAAA,2FAEE;QADA,kLAAkB,4CAAoC,IAAC;QACvD;QAAA,oIAA2F;QAE3F;QAAA,oIACE;;QAEJ;QAAA,4DAAmB;QACnB;QAAA,kIACE;QAEF;QAAA,kIACE;QAEJ;QAAA,4DAAiB;QACjB;QAAA,iEACF;QAAA;QAAA,4DAAM;QACR;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,iEACA;QAAA;QAAA,8EACE;QADsC,gJAAS,WAAO,IAAC;QACvD;QAAA,4EAAU;QAAA,iEAAK;QAAA,4DAAW;QAAA,2EAC5B;QAAA,4DAAS;QACT;QAAA,8EACE;QADoC,gJAAS,cAAU,IAAC;QACxD,sFACF;QAAA,4DAAS;QACX;QAAA,4DAAM;QACR;QAAA,4DAAO;QACT;QAAA,4DAAmB;QACrB;QAAA,4DAAW;;;;QA3ED,0DAA4B;QAA5B,yFAA4B;QAGZ,0DAAkC;QAAlC,sGAAkC;QAKnB,0DAAwB;QAAxB,qFAAwB;QAGtB,0DAA0C;QAA1C,wGAA0C;QAI/B,0DAAyB;QAAzB,sFAAyB;QAErD,0DAAoE;QAApE,kIAAoE;QAEpE,0DAAkD;QAAlD,+JAAkD;QAIrD,0DAAgE;QAAhE,8HAAgE;QAGhE,0DAAoE;QAApE,kIAAoE;QAOjE,0DAAkC;QAAlC,sGAAkC;QAKnB,0DAAyB;QAAzB,sFAAyB;QAIvB,0DAA2C;QAA3C,yGAA2C;QAI/B,0DAAyB;QAAzB,sFAAyB;QAE7C,0DAAqE;QAArE,mIAAqE;QAE9E,0DAAsD;QAAtD,gKAAsD;QAIzD,0DAAiE;QAAjE,+HAAiE;QAGjE,0DAAqE;QAArE,mIAAqE;;6FD1B/E,uBAAuB;cAPnC,uDAAS;eAAC;gBACT,QAAQ,EAAE,sBAAsB;gBAChC,WAAW,EAAE,mCAAmC;gBAChD,SAAS,EAAE,CAAC,mCAAmC,CAAC;gBAChD,SAAS,EAAE,CAAC,sFAAqB,CAAC;aACnC;;;;;;;;;;;;;;AE/BD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAgF;AACvB;AAgBjC;AAS8B;AACD;AAGL;AAO4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;IC1BpD,6EAEI;IADwD,kWAAoC;IAC5F;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC9B;IAAA,4DAAS;;;IAGL,iFACI;IAAA,uDACJ;IAAA,4DAAa;;;IAF8C,6EAAgB;IACvE,0DACJ;IADI,0JACJ;;;IAEJ,4EACI;IAAA,wGAAe;IAAA,4DAAY;;;;IAW/B,6EAEI;IADwD,sWAAwC;IAChG;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC9B;IAAA,4DAAS;;;IAGL,6EACI;IAAA;IAAA,sFAAgF;IACpF;IAAA,4DAAa;;;IACb,iFAAsC;IAAA,kFAAuB;IAAA,4DAAa;;;IAC1E,iFACI;IAAA,uDACJ;IAAA,4DAAa;;;IAF0D,6EAAgB;IACnF,0DACJ;IADI,0JACJ;;;IAEJ,4EACI;IAAA,2IACJ;IAAA,4DAAY;;;IACZ,4EACI;IAAA,wIACJ;IAAA,4DAAY;;;IA2BhB,4EACI;IAAA,2HAEJ;IAAA,4DAAY;;;IAYJ,+EAA0C;IAAA,iEAAM;IAAA,4DAAW;;;;IAH/D,+EAEI;IADkD,sYAAiC;IACnF,uDACA;IAAA,sJAA0C;IAC9C;IAAA,4DAAW;;;;IAHP,0FAAyB;IACzB,0DACA;IADA,wJACA;IAAwB,0DAAiB;IAAjB,mFAAiB;;;IAQ7C,iFAAqC;IAAA,sFAA2B;IAAA,4DAAa;;;IAC7E,iFACI;IAAA,uDACJ;IAAA,4DAAa;;;IAFuC,6EAAgB;IAChE,0DACJ;IADI,4IACJ;;;IAIJ,4EAAmE;IAAA,0EAAe;IAAA,4DAAY;;;IAatF,+EAA0C;IAAA,iEAAM;IAAA,4DAAW;;;;IAH/D,+EAEI;IADkD,+XAA0B;IAC5E,uDACA;IAAA,sJAA0C;IAC9C;IAAA,4DAAW;;;;IAHP,0FAAyB;IACzB,0DACA;IADA,wJACA;IAAwB,0DAAiB;IAAjB,mFAAiB;;;IAQ7C,iFAAqC;IAAA,sFAA2B;IAAA,4DAAa;;;IAC7E,iFACI;IAAA,uDACJ;IAAA,4DAAa;;;IAFyC,6EAAgB;IAClE,0DACJ;IADI,4IACJ;;;IAEJ,4EACI;IAAA,qIACJ;IAAA,4DAAY;;;IAWZ,4EACI;IAAA,2HACJ;IAAA,4DAAY;;ADzGzB,MAAM,kCAAkC;IAoC7C,YACU,KAAiB,EACjB,SAAyB,EACzB,UAA4C,EAC5C,uBAAgD,EAChD,iBAAoC,EACpC,cAA6B,EAC7B,QAAqB;QANrB,UAAK,GAAL,KAAK,CAAY;QACjB,cAAS,GAAT,SAAS,CAAgB;QACzB,eAAU,GAAV,UAAU,CAAkC;QAC5C,4BAAuB,GAAvB,uBAAuB,CAAyB;QAChD,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,mBAAc,GAAd,cAAc,CAAe;QAC7B,aAAQ,GAAR,QAAQ,CAAa;QA1C/B,iBAAY,GAAG,8EAAY,CAAC;QAE5B,oBAAe,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QACnD,yBAAoB,GAAG,EAAE,CAAC;QAK1B,qBAAgB,GAAuB,EAAE,CAAC;QAI1C,kBAAa,GAAG,KAAK,CAAC;QACtB,eAAU,GAAG,MAAM,CAAC;QACpB,YAAO,GAAY,KAAK;QACxB,cAAS,GAAG,EAAE,CAAC;QACf,eAAU,GAAY,KAAK,CAAC;QAI5B,mBAAc,GAAG,EAAE,CAAC;QAEpB,YAAO,GAAG,IAAI,CAAC;QAEf,eAAU,GAAG,IAAI,CAAC;QAClB,cAAS,GAAG,IAAI,CAAC;QACjB,cAAS,GAAG,KAAK,CAAC;QAElB,uBAAkB,GAAkC,OAAO,CAAC;QAC5D,qBAAgB,GAAgC,KAAK,CAAC;QAC7C,uBAAkB,GAAa,CAAC,2DAAK,EAAE,2DAAK,CAAC,CAAC;QAcrD,IAAI,CAAC,gCAAgC,GAAG,IAAI,iGAAyB,EAAE,CAAC;QACxE,IAAI,CAAC,gCAAgC,CAAC,OAAO,GAAG,IAAI,KAAK,EAAS,CAAC;QACnE,IAAI,CAAC,gCAAgC,CAAC,OAAO,GAAG,IAAI,KAAK,EAAS,CAAC;QACnE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC;QAC/D,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,kBAAkB,GAAG,IAAI,wDAAS,CAAC;YACtC,2BAA2B,EAAE,IAAI,0DAAW,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACvE,uBAAuB,EAAE,IAAI,0DAAW,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACnE,8BAA8B,EAAE,IAAI,0DAAW,CAAC,EAAE,CAAC;YACnD,gBAAgB,EAAE,IAAI,0DAAW,CAAC,EAAE,CAAC;YACrC,cAAc,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC5D,cAAc,EAAE,IAAI,0DAAW,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,yDAAU,CAAC,QAAQ,CAAC;YAC/D,cAAc,EAAE,IAAI,0DAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC1C,mBAAmB,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;SAClE,CAAC,CAAC;QAEH,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC,OAAO,EAAE,CAAC;QACxE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,OAAO,EAAE,CAAC;QAE1D,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACpD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC/B,CAAC,CAAC,CAAC;IAGL,CAAC;IACO,eAAe,CAAC,KAAK;QAC3B,IAAI,WAAW,CAAC;QAEhB,IAAI,KAAK,IAAI,KAAK,CAAC,2BAA2B,EAAE;YAC9C,WAAW,GAAG,KAAK,CAAC,2BAA2B,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC;YACzE,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CACzC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CACjD,CAAC;SACH;aAAM;YACL,OAAO,IAAI,CAAC,cAAc,CAAC;SAC5B;IACH,CAAC;IACO,mBAAmB,CAAC,KAAK;QAC/B,IAAI,WAAW,CAAC;QAChB,IAAI,KAAK,IAAI,KAAK,CAAC,uBAAuB,EAAE;YAC1C,WAAW,GAAG,KAAK,CAAC,uBAAuB,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC;YACrE,OAAO,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;gBAC/C,OAAO,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;YACzD,CAAC,CACA,CAAC;SACH;aAAM;YACL,OAAO,IAAI,CAAC,oBAAoB,CAAC;SAClC;IACH,CAAC;IAED,SAAS,CAAC,IAAS;QACjB,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAChC,CAAC;IACD,QAAQ,CAAC,IAAS;QAChB,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IACvC,CAAC;IACD,aAAa;QACX,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,6EAA6E;QAC7E,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,CAAC,GAAU,EAAE,EAAE;YAC9D,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBAChB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;oBACvB,KAAK,EAAE,GAAG,CAAC,YAAY;oBACvB,KAAK,EAAE,GAAG,CAAC,gBAAgB;iBAC5B,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAC9D,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAC1C,CAAC;QACJ,CAAC,CAAC,CAAC;IAEL,CAAC;IACD,oBAAoB,CAAC,KAAU;QAC7B,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,KAAK,CAAC;QACxC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,KAAK,EAAE,CAAC;QAC/D,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC,KAAK,EAAE,CAAC;QACtE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,KAAK,EAAE,CAAC;QACxD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,KAAK,EAAE,CAAC;QACtD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,KAAK,EAAE,CAAC;QACtD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,KAAK,EAAE,CAAC;QACtD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,KAAK,EAAE,CAAC;QAC3D,IAAI,IAAI,CAAC,gCAAgC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9D,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,KAAK,CAAC;SACzC;QAED,IAAI,CAAC,gCAAgC,CAAC,OAAO,GAAG,EAAE,CAAC;QACnD,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,KAAK,CAAC;QACxC,IAAI,CAAC,gCAAgC,CAAC,OAAO,GAAG,EAAE,CAAC;QACnD,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;QACzB,wCAAwC;QACxC,IAAI,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;QAC1C,IAAI,CAAC,gCAAgC,CAAC,gBAAgB,GAAG,UAAU,CAAC;QACpE,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;QAC/B,IAAI,CAAC,+BAA+B,GAAG,EAAE,CAAC;QAC1C,gEAAgE;QAChE,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAC1E,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAC9C,CAAC;QACF,IAAI,UAAU,IAAI,IAAI;YACpB,IAAI,CAAC,UAAU,GAAG,IAAI;QACxB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,SAAS,CAC9C,CAAC,GAAU,EAAE,EAAE;YACb,GAAG,CAAC,OAAO,CAAC,CAAC,gBAAkC,EAAE,EAAE;gBACjD,IAAI,gBAAgB,CAAC,gBAAgB,KAAK,UAAU,EAAE;oBACpD,2CAA2C;oBAC3C,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;wBAC7B,KAAK,EAAE,gBAAgB,CAAC,gBAAgB;wBACxC,KAAK,EAAE,gBAAgB,CAAC,kBAAkB;qBAC3C,CAAC,CAAC;oBACH,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC;wBACxC,KAAK,EAAE,gBAAgB,CAAC,uBAAuB;wBAC/C,KAAK,EAAE,gBAAgB,CAAC,kBAAkB;qBAC3C,CAAC,CAAC;iBACJ;YACH,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,GAAG,KAAK;QACtB,CAAC,EACD,KAAK,CAAC,EAAE;YACN,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;gBACnC,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,CAAC,aAAa,CAAC;gBAC3B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;gBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;aACxC,CAAC,CAAC;QACL,CAAC,CACF,CAAC;IACJ,CAAC;IAED,cAAc,CAAC,KAAU;QACvB,wCAAwC;QACxC,IAAI,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QAC1C,IAAI,gBAAgB,CAAC,MAAM,IAAI,CAAC,EAAE;YAChC,EAAE;YACF,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,CAAC,SAAS,CACpD,CAAC,iBAAiB,EAAE,EAAE;gBACpB,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;gBAC3B,IAAI,CAAC,gBAAgB,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAC1D,MAAM,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAChD,CAAC;gBACF,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;oBACpC,IAAI,CAAC,OAAO,GAAG,IAAI;iBACpB;qBACI;oBACH,IAAI,CAAC,OAAO,GAAG,KAAK;iBACrB;YACH,CAAC,EAED,CAAC,KAAU,EAAE,EAAE;gBACb,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,KAAK,EAAE,EAAE;iBACpD;gBACD,IAAI,CAAC,cAAc;qBAChB,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC;qBACzC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;gBACjC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,iCAAiC,EAAE,GAAG,EAAE;oBACzD,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;oBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;iBACxC,CAAC,CAAC;YACL,CAAC,CACF,CAAC;SACH;IACH,CAAC;IAED,gBAAgB,CAAC,KAAU;QACzB,wCAAwC;QACxC,IAAI,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QAC1C,IAAI,gBAAgB,CAAC,MAAM,IAAI,CAAC,EAAE;YAChC,EAAE;YACF,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,CAAC,SAAS,CACpD,CAAC,iBAAiB,EAAE,EAAE;gBACpB,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;gBAC7B,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAC5D,MAAM,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAChD,CAAC;gBACF,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE;oBACtC,IAAI,CAAC,OAAO,GAAG,IAAI;iBACpB;qBACI;oBACH,IAAI,CAAC,OAAO,GAAG,KAAK;iBACrB;YACH,CAAC,EAED,CAAC,KAAU,EAAE,EAAE;gBACb,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,KAAK,EAAE,EAAE;iBACpD;gBACD,IAAI,CAAC,cAAc;qBAChB,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC;qBACzC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;gBACjC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,iCAAiC,EAAE,GAAG,EAAE;oBACzD,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;oBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;iBACxC,CAAC,CAAC;YACL,CAAC,CACF,CAAC;SACH;IACH,CAAC;IAED,6CAA6C,CAC3C,KAAU,EACV,gBAAwB;QAExB,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,KAAK,CAAC;QACxC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC,KAAK,EAAE,CAAC;QACtE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,KAAK,EAAE,CAAC;QACxD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,KAAK,EAAE,CAAC;QACtD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,KAAK,EAAE,CAAC;QACtD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,KAAK,EAAE,CAAC;QACtD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,KAAK,EAAE,CAAC;QAC3D,IAAI,CAAC,gCAAgC,CAAC,OAAO,GAAG,EAAE,CAAC;QACnD,IAAI,CAAC,gCAAgC,CAAC,OAAO,GAAG,EAAE,CAAC;QAEnD,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;QACzB,IAAI,kBAAkB,CAAC;QACvB,IAAI,gBAAgB,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE;YAC/C,kBAAkB,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;YAC9C,IAAI,CAAC,gCAAgC,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;SAC/E;QACD,EAAE;QAEF,EAAE;QACF,IAAI,kBAAkB,KAAK,CAAC,IAAI,gBAAgB,KAAK,CAAC,EAAE;YACtD,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;YAC7C,IAAI,CAAC,UAAU,GAAG,gBAAgB,CAAC;YACnC,IAAI,CAAC,UAAU;iBACZ,6CAA6C,CAC5C,kBAAkB,EAClB,gBAAgB,CACjB;iBACA,SAAS,CACR,CAAC,iCAA4D,EAAE,EAAE;gBAC/D,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,IAAI,iCAAiC,IAAI,IAAI,EAAE;oBAC7C,IAAI,CAAC,gCAAgC,GAAG,IAAI,iGAAyB,EAAE,CAAC;oBACxE,IAAI,CAAC,gCAAgC,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;oBACtE,IAAI,CAAC,gCAAgC,CAAC,OAAO,GAAG,IAAI,KAAK,EAEtD,CAAC;oBACJ,IAAI,CAAC,gCAAgC,CAAC,OAAO,GAAG,IAAI,KAAK,EAEtD,CAAC;oBACJ,IACE,iCAAiC,CAAC,OAAO,KAAK,EAAE;wBAChD,iCAAiC,CAAC,OAAO,IAAI,IAAI,EACjD;wBACA,IACE,iCAAiC;4BACjC,iCAAiC,CAAC,gBAAgB,IAAI,IAAI,EAC1D;4BACA,IAAI,CAAC,gCAAgC,CAAC,gBAAgB;gCACpD,iCAAiC,CAAC,gBAAgB,CAAC;yBACtD;6BAAM;4BACL,IAAI,CAAC,gCAAgC,CAAC,gBAAgB,GAAG,CAAC,CAAC;yBAC5D;wBAED,IACE,iCAAiC;4BACjC,iCAAiC,CAAC,kBAAkB,IAAI,IAAI,EAC5D;4BACA,IAAI,CAAC,gCAAgC,CAAC,kBAAkB;gCACtD,iCAAiC,CAAC,kBAAkB,CAAC;yBACxD;6BAAM;4BACL,IAAI,CAAC,gCAAgC,CAAC,kBAAkB,GAAG,CAAC,CAAC;yBAC9D;wBACD,IACE,iCAAiC;4BACjC,iCAAiC,CAAC,YAAY,KAAK,EAAE,EACrD;4BACA,IAAI,CAAC,gCAAgC,CAAC,YAAY;gCAChD,iCAAiC,CAAC,YAAY,CAAC;4BACjD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,UAAU,CACtD,IAAI,CAAC,gCAAgC,CAAC,YAAY,CACnD,CAAC;yBACH;6BAAM;4BACL,IAAI,CAAC,gCAAgC,CAAC,YAAY,GAAG,EAAE,CAAC;4BACxD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,UAAU,CACtD,IAAI,CAAC,gCAAgC,CAAC,YAAY,CACnD,CAAC;yBACH;wBACD,IACE,iCAAiC;4BACjC,iCAAiC,CAAC,gBAAgB;4BAClD,iCAAiC,CAAC,gBAAgB;iCAC/C,uBAAuB,KAAK,SAAS;4BACxC,iCAAiC,CAAC,gBAAgB;iCAC/C,uBAAuB,IAAI,IAAI,EAClC;4BACA,IAAI,CAAC,gCAAgC,CAAC,uBAAuB;gCAC3D,iCAAiC,CAAC,gBAAgB,CAAC,uBAAuB,CAAC;4BAC7E,IAAI,CAAC,kBAAkB,CAAC,GAAG,CACzB,gCAAgC,CACjC,CAAC,UAAU,CACV,IAAI,CAAC,gCAAgC;iCAClC,uBAAuB,CAC3B,CAAC;yBACH;6BAAM;4BACL,IAAI,CAAC,gCAAgC,CAAC,uBAAuB;gCAC3D,EAAE,CAAC;4BACL,IAAI,CAAC,kBAAkB,CAAC,GAAG,CACzB,gCAAgC,CACjC,CAAC,UAAU,CACV,IAAI,CAAC,gCAAgC;iCAClC,uBAAuB,CAC3B,CAAC;yBACH;wBACD,IACE,iCAAiC;4BACjC,iCAAiC,CAAC,YAAY,KAAK,EAAE,EACrD;4BAEA,IAAI,CAAC,gCAAgC,CAAC,YAAY;gCAChD,iCAAiC,CAAC,YAAY,CAAC;4BACjD,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC;gCACjC,mBAAmB,EAAE,IAAI,CAAC,gCAAgC;qCACvD,YAAY;6BAChB,CAAC,CAAC;yBAEJ;6BAAM;4BACL,IAAI,CAAC,gCAAgC,CAAC,YAAY,GAAG,EAAE,CAAC;4BACxD,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC;gCACjC,mBAAmB,EAAE,IAAI,CAAC,gCAAgC;qCACvD,YAAY;6BAChB,CAAC,CAAC;yBACJ;wBAED,IACE,iCAAiC;4BACjC,iCAAiC,CAAC,OAAO,KAAK,EAAE;4BAChD,iCAAiC,CAAC,OAAO,IAAI,IAAI,EACjD;4BACA,EAAE;4BACF,IAAI,OAAO,GAAG,iCAAiC,CAAC,OAAO,CAAC,KAAK,CAC3D,GAAG,CACJ,CAAC;4BACF,EAAE;4BACF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;gCACxB,IAAI,CAAC,gCAAgC,CAAC,OAAO,CAAC,IAAI,CAAC;oCACjD,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;iCACpB,CAAC,CAAC;gCACH,EAAE;gCACF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,gCAAgC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;6BACzE;iCAAM;gCACL,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oCACvC,IAAI,CAAC,gCAAgC,CAAC,OAAO,CAAC,IAAI,CAAC;wCACjD,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;qCACpB,CAAC,CAAC;iCACJ;6BACF;4BACD,EAAE;yBACH;6BAAM;4BACL,IAAI,CAAC,gCAAgC,CAAC,OAAO,GAAG,EAAE,CAAC;yBACpD;wBACD,IACE,iCAAiC;4BACjC,iCAAiC,CAAC,OAAO,KAAK,EAAE,EAChD;4BACA,IAAI,OAAO,GAAG,iCAAiC,CAAC,OAAO,CAAC,KAAK,CAC3D,GAAG,CACJ,CAAC;4BACF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;gCACxB,IAAI,CAAC,gCAAgC,CAAC,OAAO,CAAC,IAAI,CAAC;oCACjD,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;iCACpB,CAAC,CAAC;6BACJ;iCAAM;gCACL,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oCACvC,IAAI,CAAC,gCAAgC,CAAC,OAAO,CAAC,IAAI,CAAC;wCACjD,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;qCACpB,CAAC,CAAC;iCACJ;6BACF;yBACF;6BAAM;4BACL,IAAI,CAAC,gCAAgC,CAAC,OAAO,GAAG,EAAE,CAAC;yBACpD;wBACD,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;qBAC5B;yBAAM;wBACL,IAAI,CAAC,gCAAgC,GAAG;4BACtC,kBAAkB,EAAE,kBAAkB;4BACtC,gBAAgB,EAAE,IAAI;4BACtB,gBAAgB,EAAE,EAAE;4BACpB,uBAAuB,EACrB,iCAAiC,CAAC,uBAAuB;4BAC3D,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE;4BAC9B,OAAO,EAAE,EAAE;4BACX,OAAO,EAAE,EAAE;4BACX,OAAO,EAAE,IAAI,KAAK,EAAS;4BAC3B,OAAO,EAAE,IAAI,KAAK,EAAS;4BAC3B,YAAY,EAAE,EAAE;4BAChB,YAAY,EAAE,EAAE;4BAChB,gBAAgB,EAAE,gBAAgB;4BAClC,cAAc,EAAE,IAAI;4BACpB,YAAY,EAAE,EAAE;yBACjB,CAAC;wBACF,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;qBAC1B;iBACF;qBAAM;oBACL,IAAI,CAAC,gCAAgC,GAAG;wBACtC,kBAAkB,EAAE,kBAAkB;wBACtC,gBAAgB,EAAE,IAAI;wBACtB,gBAAgB,EAAE,EAAE;wBACpB,uBAAuB,EAAE,EAAE;wBAC3B,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE;wBAC9B,OAAO,EAAE,EAAE;wBACX,OAAO,EAAE,EAAE;wBACX,OAAO,EAAE,IAAI,KAAK,EAAS;wBAC3B,OAAO,EAAE,IAAI,KAAK,EAAS;wBAC3B,YAAY,EAAE,EAAE;wBAChB,YAAY,EAAE,EAAE;wBAChB,gBAAgB,EAAE,gBAAgB;wBAClC,cAAc,EAAE,IAAI;wBACpB,YAAY,EAAE,EAAE;qBACjB,CAAC;oBACF,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;iBAC1B;YACH,CAAC,CACF,CAAC;SACL;aAAM;YACL,IAAI,CAAC,gCAAgC,GAAG;gBACtC,kBAAkB,EAAE,kBAAkB;gBACtC,gBAAgB,EAAE,IAAI;gBACtB,gBAAgB,EAAE,EAAE;gBACpB,uBAAuB,EAAE,EAAE;gBAC3B,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE;gBAC9B,OAAO,EAAE,EAAE;gBACX,OAAO,EAAE,EAAE;gBACX,OAAO,EAAE,IAAI,KAAK,EAAS;gBAC3B,OAAO,EAAE,IAAI,KAAK,EAAS;gBAC3B,YAAY,EAAE,EAAE;gBAChB,YAAY,EAAE,EAAE;gBAChB,gBAAgB,EAAE,gBAAgB;gBAClC,cAAc,EAAE,IAAI;gBACpB,YAAY,EAAE,EAAE;aACjB,CAAC;SACH;QACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC,KAAK,IAAI,EAAE,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC,KAAK,IAAI,SAAS,EAAC;YAC/O,IAAI,yBAA8B,CAAC;YACnC,yBAAyB,GAAG,IAAI,CAAC,+BAA+B,CAAC,MAAM,CAAC,yBAAyB,CAAC,EAAE,CAAC,yBAAyB,CAAC,KAAK,IAAI,kBAAkB,CAAC;YAC3J,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC,UAAU,CACtE,yBAAyB,CAAC,CAAC,CAAC,CAAC,KAAK,CACnC,CAAC;SAEH;IACH,CAAC;IAED,YAAY;QACV,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,CAAC,SAAiB,EAAE,EAAE;YAC7D,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC7B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3E,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,MAAM,CAAC,gCAA2D;QAChE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,gCAAgC,CAAC,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAC9E,qBAAqB,CACtB,CAAC,KAAK,CAAC;QACR,IAAI,CAAC,gCAAgC,CAAC,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAC3E,kBAAkB,CACnB,CAAC,KAAK,CAAC;QACR,IAAI,CAAC,gCAAgC,CAAC,uBAAuB,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CACzF,gCAAgC,CACjC,CAAC,KAAK,CAAC;QACR,IAAI,CAAC,gCAAgC,CAAC,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAC9E,gBAAgB,CACjB,CAAC,KAAK,CAAC;QAIR,IAAI,gCAAgC,CAAC,gBAAgB,KAAK,CAAC,EAAE;YAC3D,OAAO;SACR;QACD,IAAI,gCAAgC,CAAC,kBAAkB,KAAK,CAAC,EAAE;YAC7D,OAAO;SACR;QAED,IACE,gCAAgC,CAAC,SAAS,KAAK,EAAE;YACjD,gCAAgC,CAAC,YAAY,KAAK,EAAE;YACpD,gCAAgC,CAAC,YAAY,KAAK,EAAE,EACpD;YACA,OAAO;SACR;QAED,IACE,gCAAgC,CAAC,SAAS,IAAI,IAAI;YAClD,gCAAgC,CAAC,YAAY,IAAI,IAAI;YACrD,gCAAgC,CAAC,YAAY,IAAI,IAAI,EACrD;YACA,OAAO;SACR;QACD,IAAI,gCAAgC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YACzD,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,IAAI,CAAC;YACvC,OAAO;SACR;QACD,gCAAgC,CAAC,YAAY;YAC3C,gCAAgC,CAAC,YAAY,CAAC;QAEhD,gCAAgC,CAAC,OAAO,GAAG,EAAE,CAAC;QAE9C,gCAAgC,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,KAAY;YACjE,OAAO,CAAC,gCAAgC,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;QACH,gCAAgC,CAAC,OAAO,GAAG,EAAE,CAAC;QAE9C,gCAAgC,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,KAAY;YACjE,OAAO,CAAC,gCAAgC,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;QAEH,gCAAgC,CAAC,OAAO,GAAG,gCAAgC,CAAC,OAAO,CAAC,MAAM,CACxF,CAAC,EACD,gCAAgC,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAC1D,CAAC;QAEF,gCAAgC,CAAC,OAAO,GAAG,gCAAgC,CAAC,OAAO,CAAC,MAAM,CACxF,CAAC,EACD,gCAAgC,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAC1D,CAAC;QAEF,IAAI,IAAI,CAAC,UAAU,KAAK,MAAM,EAAE;YAC9B,EAAE;YACF,IAAI,IAAI,CAAC,gCAAgC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC9D,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,IAAI,CAAC;aACxC;iBAAM;gBACL,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,KAAK,CAAC;aACzC;YACD,EAAE;YAEF,IAAI,CAAC,UAAU;iBACZ,4BAA4B,CAAC,gCAAgC,CAAC;iBAC9D,SAAS,CACR,CAAC,QAAiB,EAAE,EAAE;gBACpB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,sDAAsD,EACtD,GAAG,EACH;oBACE,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;oBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;iBACxC,CACF,CAAC;gBACF,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,CAAC,EAED,CAAC,KAAU,EAAE,EAAE;gBACb,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,KAAK,EAAE,EAAE;oBACnD,IAAI,CAAC,cAAc;yBAChB,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC;yBACzC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;iBAClC;gBAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,0CAA0C,EAC1C,GAAG,EACH;oBACE,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;oBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;iBACxC,CACF,CAAC;YACJ,CAAC,CACF,CAAC;SACL;aAAM;YACL,IAAI,IAAI,CAAC,gCAAgC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC9D,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,IAAI,CAAC;aACxC;iBAAM;gBACL,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,KAAK,CAAC;aACzC;YACD,EAAE;YACF,IAAI,CAAC,UAAU;iBACZ,8BAA8B,CAAC,gCAAgC,CAAC;iBAChE,SAAS,CACR,CAAC,QAAiB,EAAE,EAAE;gBACpB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,iDAAiD,EACjD,GAAG,EACH;oBACE,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;oBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;iBACxC,CACF,CAAC;gBAEF,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;gBACb,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,KAAK,EAAE,EAAE;oBACnD,IAAI,CAAC,cAAc;yBAChB,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC;yBACzC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;iBAClC;gBAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,6CAA6C,EAC7C,GAAG,EACH;oBACE,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;oBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;iBACxC,CACF,CAAC;YACJ,CAAC,CACF,CAAC;SACL;IACH,CAAC;IACD,eAAe,CAAC,KAAU;QACxB,IAAI,CAAC,gCAAgC,CAAC,OAAO,CAAC,IAAI,CAAC;YACjD,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK;SAC5B,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE,CAAC;QACzC,IAAI,IAAI,CAAC,gCAAgC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9D,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,IAAI,CAAC;SACxC;aAAM;YACL,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,KAAK,CAAC;SACzC;IACH,CAAC;IACD,eAAe,CAAC,KAAU;QACxB,IAAI,CAAC,gCAAgC,CAAC,OAAO,CAAC,IAAI,CAAC;YACjD,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK;SAC5B,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE,CAAC;IAC7C,CAAC;IACD,GAAG,CAAC,KAAwB;QAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAE1B,gBAAgB;QAChB,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE;YACxB,IAAI,CAAC,gCAAgC,CAAC,OAAO,CAAC,IAAI,CAAC;gBACjD,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE;aACtB,CAAC,CAAC;SACJ;QAED,wBAAwB;QACxB,IAAI,KAAK,EAAE;YACT,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;SAClB;IACH,CAAC;IAED,MAAM,CAAC,KAAY;QACjB,MAAM,KAAK,GAAG,IAAI,CAAC,gCAAgC,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAE3E,IAAI,KAAK,IAAI,CAAC,EAAE;YACd,IAAI,CAAC,gCAAgC,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;SAChE;IAEH,CAAC;IACD,UAAU,CAAC,KAAwB;QACjC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAE1B,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE;YACxB,IAAI,CAAC,gCAAgC,CAAC,OAAO,CAAC,IAAI,CAAC;gBACjD,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE;aACtB,CAAC,CAAC;YACH,IAAI,IAAI,CAAC,gCAAgC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC9D,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,IAAI,CAAC;aACxC;iBAAM;gBACL,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,KAAK,CAAC;aACzC;YACD,EAAE;SACH;QAED,IAAI,KAAK,EAAE;YACT,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;SAClB;QACD,IAAI,IAAI,CAAC,gCAAgC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9D,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,IAAI,CAAC;SACxC;aAAM;YACL,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,KAAK,CAAC;SACzC;IACH,CAAC;IAED,aAAa,CAAC,KAAY;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,gCAAgC,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAE3E,IAAI,KAAK,IAAI,CAAC,EAAE;YACd,IAAI,CAAC,gCAAgC,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;SAChE;QAED,EAAE;QACF,IAAI,IAAI,CAAC,gCAAgC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9D,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,IAAI,CAAC;SACxC;aAAM;YACL,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,KAAK,CAAC;SACzC;QACD,IAAI,gBAAgB,GAAY,EAAE,CAAC;QACnC,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,CAAC,SAAS,CACpD,CAAC,iBAAiB,EAAE,EAAE;YACpB,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;YAC3B,IAAI,CAAC,gBAAgB,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAC1D,MAAM,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAChD,CAAC;YACF,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;gBACpC,IAAI,CAAC,OAAO,GAAG,IAAI;aACpB;iBACI;gBACH,IAAI,CAAC,OAAO,GAAG,KAAK;aACrB;QACH,CAAC,EAED,CAAC,KAAU,EAAE,EAAE;YACb,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,KAAK,EAAE,EAAE;aACpD;YACD,IAAI,CAAC,cAAc;iBAChB,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC;iBACzC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;YACjC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,iCAAiC,EAAE,GAAG,EAAE;gBACzD,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,CAAC,aAAa,CAAC;gBAC3B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;gBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;aACxC,CAAC,CAAC;QACL,CAAC,CACF,CAAC;IAEJ,CAAC;IACD,kBAAkB,CAAC,KAAU;QAC3B,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,2BAA2B,CAAC,KAAK,EAAE,CAAC;QAErE,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;QAEnC,IAAI,CAAC,UAAU,GAAG,IAAI;IACxB,CAAC;IACD,sBAAsB,CAAC,KAAS;QAC9B,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,uBAAuB,CAAC,KAAK,EAAE,CAAC;QAEjE,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,8BAA8B,CAAC,KAAK,EAAE,CAAC;IAC1E,CAAC;IAED,KAAK;QACH,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;QACzB,IAAI,CAAC,gCAAgC,GAAG,IAAI,iGAAyB,EAAE,CAAC;QACxE,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;QAE/B,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,8BAA8B,CAAC,KAAK,EAAE,CAAC;QAIxE,IAAI,CAAC,gCAAgC,CAAC,OAAO,GAAG,IAAI,KAAK,EAAS,CAAC;QACnE,IAAI,CAAC,gCAAgC,CAAC,OAAO,GAAG,IAAI,KAAK,EAAS,CAAC;QAEnE,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,KAAK,CAAC;QACxC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;QAChC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;IAC3D,CAAC;;oHAnyBU,kCAAkC;kHAAlC,kCAAkC;;;;kEAmClC,iEAAkB;;;;;;;;QChF/B,8EACI;QAAA;QAAA,mFACI;QAAA;QAAA,0EACI;QAAA;QAAA,yEACI;QAAA;QAAA,yEACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,kGACP;QAAA,2EAA2B;QAAA,8DAAC;QAAA,4DAAO;QACvC;QAAA,4DAAY;QACZ;QAAA,uEAEA;QAAA;QAAA,sIAEI;QAEJ;QAAA,0FAEI;QADA,6LAAkB,gCAA4B,IAAC;QAC/C;QAAA,+IACI;;QAER;QAAA,4DAAmB;QACnB;QAAA,6IACI;QACR;QAAA,4DAAiB;QAErB;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,2GACP;QAAA,2EAA2B;QAAA,8DAAC;QAAA,4DAAO;QACvC;QAAA,4DAAY;QACZ;QAAA,wEAEA;QAAA;QAAA,sIAEI;QAEJ;QAAA,2FAEI;QADA,6LAAkB,gHAAwG,IAAC;QAC3H;QAAA,+IACI;QAEJ;QAAA,+IAAsC;QACtC;QAAA,+IACI;;QAER;QAAA,4DAAmB;QACnB;QAAA,6IACI;QAEJ;QAAA,6IACI;QAER;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACV;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,oFAAwB;QAAA,4DAAY;QAC/C;QAAA,wEAEJ;QAAA;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,sEAAU;QAAA,4DAAY;QACjC;QAAA,wEAEJ;QAAA;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACV;QAAA,4DAAM;QACN;QAAA,uEACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,6FACP;QAAA,2EAA2B;QAAA,8DAAC;QAAA,4DAAO;QACvC;QAAA,4DAAY;QACZ;QAAA,yEAEA;QAAA;QAAA,+IACI;QAGR;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,wEACI;QAAA;QAAA,sFACI;QAAA;QAAA,8EAAW;QAAA,+FACP;QAAA,4EAA2B;QAAA,+DAAC;QAAA,4DAAO;QACvC;QAAA,4DAAY;QACZ;QAAA,0FACI;QAAA;QAAA,6IAEI;QAGJ;QAAA,kFAIJ;QAF4C,+LAAwB,sBAAkB,IAAC,yGACtE,0BAAsB,IADgD;QAFnF,4DAIJ;QAAA;QAAA,4DAAgB;QAChB;QAAA,6FACI;QAD6C,8LAAkB,2BAAuB,IAAC;QACvF;QAAA,iJAAqC;QACrC;QAAA,iJACI;QAGR;QAAA,4DAAmB;QAEnB;QAAA,+IAAmE;QACvE;QAAA,4DAAiB;QAGrB;QAAA,4DAAM;QACN;QAAA,wEAEI;QAAA;QAAA,sFACI;QAAA;QAAA,8EAAW;QAAA,qEAAQ;QAAA,4DAAY;QAC/B;QAAA,0FACI;QAAA;QAAA,6IAEI;QAGJ;QAAA,kFAIJ;QAF4C,+LAAwB,eAAW,IAAC,yGAC/D,4BAAwB,IADuC;QAF5E,4DAIJ;QAAA;QAAA,4DAAgB;QAChB;QAAA,6FACI;QAD6C,8LAAkB,2BAAuB,IAAC;QACvF;QAAA,iJAAqC;QACrC;QAAA,iJACI;QAER;QAAA,4DAAmB;QACnB;QAAA,+IACI;QAER;QAAA,4DAAiB;QAIrB;QAAA,4DAAM;QAEN;QAAA,2EACI;QAAA;QAAA,4EACI;QAAA;QAAA,kFACqF;QACrF;QAAA,+IACI;QAER;QAAA,4DAAM;QACV;QAAA,4DAAM;QACN;QAAA,4EACI;QAAA;QAAA,kEACA;QAAA;QAAA,+EACI;QADqC,4JAAS,WAAO,IAAC;QACtD;QAAA,6EAAU;QAAA,kEAAK;QAAA,4DAAW;QAAA,oFAC9B;QAAA,4DAAS;QACT;QAAA,+EACoB;QADkB,4JAAS,gDAAwC,IAAC;QACpE,yDAAc;QAAA,4DAAS;QAC/C;QAAA,4DAAM;QAEV;QAAA,4DAAO;QACX;QAAA,4DAAmB;QACvB;QAAA,4DAAW;;;;;;;;QAlKG,0DAAgC;QAAhC,6FAAgC;QAGV,0DAA8B;QAA9B,sGAA8B;QAKtC,0DAA4B;QAA5B,gFAA4B;QACD,0DAA4D;QAA5D,0HAA4D;QAI7C,0DAAyB;QAAzB,sFAAyB;QAEvD,0DAA8C;QAA9C,2JAA8C;QAInD,0DAAoE;QAApE,kIAAoE;QAMnE,0DAA8B;QAA9B,sGAA8B;QAI4B,0DAAwB;QAAxB,gFAAwB;QAE/D,0DAAwD;QAAxD,sHAAwD;QAI7C,0DAAyB;QAAzB,sFAAyB;QAEnD,0DAAe;QAAf,6EAAe;QAGf,0DAAgB;QAAhB,8EAAgB;QAChB,0DAA0D;QAA1D,uKAA0D;QAI/D,0DAA+E;QAA/E,iJAA+E;QAG/E,0DAAkB;QAAlB,gFAAkB;QAQjB,0DAA8B;QAA9B,sGAA8B;QAO9B,2DAA8B;QAA9B,sGAA8B;QAQlC,2DAA8B;QAA9B,sGAA8B;QAM/B,2DAAuD;QAAvD,qHAAuD;QAOtD,0DAA8B;QAA9B,sGAA8B;QAK5B,2DAA+D;QAA/D,iHAA+D;QAKtD,0DAAmC;QAAnC,iFAAmC;QAMjC,0DAAe;QAAf,6EAAe;QACxB,0DAAuC;QAAvC,yFAAuC;QAM5C,0DAAuD;QAAvD,qHAAuD;QAOtD,0DAA8B;QAA9B,sGAA8B;QAG5B,0DAA+D;QAA/D,iHAA+D;QAKpD,0DAA4B;QAA5B,iFAA4B;QAM5B,0DAAe;QAAf,6EAAe;QACxB,0DAAyC;QAAzC,2FAAyC;QAI9C,0DAAuD;QAAvD,qHAAuD;QAWlD,0DAA0C;QAA1C,mGAA0C;QAE/C,0DAA4D;QAA5D,0HAA4D;QAWvD,2DAAc;QAAd,+EAAc;;6FDlHrC,kCAAkC;cAL9C,uDAAS;eAAC;gBACT,QAAQ,EAAE,gCAAgC;gBAC1C,WAAW,EAAE,6CAA6C;gBAC1D,SAAS,EAAE,CAAC,6CAA6C,CAAC;aAC3D;oqBAiC0B,UAAU;kBAAlC,uDAAS;mBAAC,YAAY;YACI,YAAY;kBAAtC,uDAAS;mBAAC,cAAc;YACK,eAAe;kBAA5C,uDAAS;mBAAC,iBAAiB;YACG,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;;;;;;;;;;;;;;AEhF/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AACwC;AAMxC;AACF;AACV;AAIH;AACgB;;;;;;;;;;;;;;;;;;;;;;;ICChD,iFACE;IAAA,uDACF;IAAA,4DAAa;;;IAFuC,qFAAwB;IAC1E,0DACF;IADE,8HACF;;;IAEF,4EACE;IAAA;IAAA,mEAA2D;IAC3D;IAAA,2EAAyB;IAAA,6EAAkB;IAAA,4DAAO;IACpD;IAAA,4DAAY;;;IAYZ,4EACE;IAAA;IAAA,2EAAyB;IAAA,wFAA6B;IAAA,4DAAO;IAC/D;IAAA,4DAAY;;;IASZ,4EACE;IAAA;IAAA,2EAAyB;IAAA,+FAAoC;IAAA,4DAAO;IACtE;IAAA,4DAAY;;;IAsBd,yEAA+E;IAAA,wEAAa;IAAA,4DAAK;;;IACjG,yEAAwC;IAAA,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,oGAAyB;;;IAGjE,yEAA+E;IAAA,4EAAiB;IAAA,4DAAK;;;IACrG,yEAAwC;IAAA,uDAA6B;IAAA,4DAAK;;;IAAlC,0DAA6B;IAA7B,wGAA6B;;;IAGrE,yEAA+E;IAAA,oGAC/E;IAAA,4DAAK;;;IACL,yEAAwC;IAAA,uDAAoC;IAAA,4DAAK;;;IAAzC,0DAAoC;IAApC,+GAAoC;;;IAI5E,yEAAuC;IAAA,iEAAK;IAAA,4DAAK;;;;IACjD,yEACE;IAAA;IAAA,6EACE;IADsB,2XAAuC;IAC7D;IAAA,2EAAU;IAAA,+DAAI;IAAA,4DAAW;IAC3B;IAAA,4DAAS;IACX;IAAA,4DAAK;;;IAGP,oEAA4D;;;IAC5D,oEAAkE;;;IAElE,yEACE;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAC/C;IAAA,4DAAK;;;ADzEN,MAAM,0BAA0B;IA6BrC,YAAoB,cAA6B,EACvC,UAAmC,EACnC,EAAe,EAAU,SAAsB,EAChD,UAAsB,EACrB,iBAAoC;QAJ1B,mBAAc,GAAd,cAAc,CAAe;QACvC,eAAU,GAAV,UAAU,CAAyB;QACnC,OAAE,GAAF,EAAE,CAAa;QAAU,cAAS,GAAT,SAAS,CAAa;QAChD,eAAU,GAAV,UAAU,CAAY;QACrB,sBAAiB,GAAjB,iBAAiB,CAAmB;QAhC9C,qBAAgB,GAAG,2DAAW,CAAC,oBAAoB,CAAC;QACpD,YAAO,GAAG,sBAAsB,CAAC;QACjC,aAAQ,GAAG,EAAE,CAAC;QACd,UAAK,GAAG,IAAI,CAAC;QACb,yBAAoB,GAAuB,EAAE,CAAC;QAI9C,WAAM,GAAY,KAAK,CAAC;QAExB,YAAO,GAAY,KAAK,CAAC;QAEzB,mBAAc,GAAmB,EAAE,CAAC;QAGpC,iBAAY,GAAa,EAAE,CAAC;QAC5B,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QAC9C,QAAG,GAAmB,EAAE,CAAC;QAQzB,qBAAgB,GAAa,CAAC,cAAc,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,CAAC,CAAC;QAQnG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;QAGhD,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YACtD,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;YACjC,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACpE,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE;YAC5D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC;IACJ,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,aAAa,EAAE,CAAC;QAGrB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACvC,gBAAgB;YAChB,kBAAkB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;YAC5B,gBAAgB,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC7C,uBAAuB,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACpD,gBAAgB,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;SAE9C,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACvC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,IAAI,EAAE;gBACpC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;gBACvC,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBAC1C,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;gBAC5E,+CAA+C;gBAC/C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;aAC1B;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;QAEvB,IAAI,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC;QACvC,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YACtD,IAAI,CAAC,OAAO,CAAC,UAAU,KAAK;gBAC1B,IAAI,KAAK,CAAC,cAAc,IAAI,IAAI;oBAC9B,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC;;oBAEvD,KAAK,CAAC,YAAY,GAAG,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAC;QAEL,CAAC,CAAC;QACF,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAED,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAC3D;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACpE,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SAClC;IACH,CAAC;IACD,KAAK;QACH,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;QACjC,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,KAAK,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IACD,mBAAmB;QACjB,IAAI,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC;IAEzC,CAAC;IACD,oBAAoB,CAAC,OAAO;QAC1B,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC;IACzC,CAAC;IAED,aAAa;QACX,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,CAAC,GAAU,EAAE,EAAE;YAC9D,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBAChB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,YAAY,EAAE,KAAK,EAAE,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAC;YACrF,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;YACA,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC;QACjC,CAAC,KAAU,EAAE,EAAE;YACb,IAAI,KAAK,CAAC,KAAK,IAAI,SAAS,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE;gBAC/C,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE;gBACtF,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;IACJ,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,uBAAuB,IAAI,IAAI,EAAE;YAClE,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,uBAAuB,GAAG,EAAE,CAAC;SAC7D;QACD,mEAAmE;QACnE,2DAA2D;QAC3D,IAAI;QACJ,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;QAC3C,IAAI,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE;YAClC,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK,EAAE;gBACxB,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,QAAgB,EAAE,EAAE;oBACjG,IAAI,QAAQ,EAAE;wBACZ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,8CAA8C,EAAE,EAAE,EAAE;4BACtE,QAAQ,EAAE,IAAI;4BACd,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;wBACH,UAAU,CAAC,GAAG,EAAE,CACd,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;wBACzC,IAAI,CAAC,oBAAoB,EAAE,CAAC;wBAC5B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;wBACrB,IAAI,CAAC,KAAK,EAAE,CAAC;wBACb,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,KAAK,CAAC;qBAClC;gBACH,CAAC,EACC,KAAK,CAAC,EAAE;oBAEN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE;wBACnC,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,aAAa,CAAC;wBAC3B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACH,UAAU,CAAC,GAAG,EAAE,CACd,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;gBAC3C,CAAC,CAAC,CAAC;aACN;iBACI;gBACH,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,QAAgB,EAAE,EAAE;oBACpG,IAAI,QAAQ,EAAE;wBACZ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,EAAE;4BAC/C,QAAQ,EAAE,IAAI;4BACd,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;wBACH,UAAU,CAAC,GAAG,EAAE,CACd,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;wBACzC,IAAI,CAAC,oBAAoB,EAAE,CAAC;wBAC5B,IAAI,CAAC,KAAK,EAAE,CAAC;wBACb,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;wBACrB,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,KAAK,CAAC;qBAClC;gBACH,CAAC,EACC,KAAK,CAAC,EAAE;oBACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE;wBACnC,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,aAAa,CAAC;wBAC3B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACH,UAAU,CAAC,GAAG,EAAE,CACd,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;gBAC3C,CAAC,CAAC,CAAC;aACN;SACF;IACH,CAAC;IACD,MAAM,CAAC,KAAa;QAClB,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;QAC/B,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC;IACpB,CAAC;IAED,MAAM,CAAC,KAAa;QAClB,EAAE;QACF,IAAI,MAAM,GAAmB,EAAE,CAAC;QAChC,KAAK,IAAI,QAAQ,IAAI,IAAI,CAAC,cAAc,EAAE;YACxC,IAAI,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE;gBACpD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;aACtB;SACF;QACD,OAAO,MAAM;IACf,CAAC;;oGAtNU,0BAA0B;0GAA1B,0BAA0B;kEAsB1B,iEAAkB;wEAClB,wEAAY;wEACZ,8DAAO;;;;;;;QC/CpB,8EACE;QAAA;QAAA,mFACE;QAAA;QAAA,0EACE;QADsC,sJAAY,cAAU,IAAC;QAC7D;QAAA,yEACE;QAAA;QAAA,yEAEE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,oFACT;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QACpC;QAAA,4DAAY;QACZ;QAAA,iFACE;QAAA;QAAA,+EAGA;QAFE,wJAAS,+BAA2B,IAAC;QADvC,4DAGA;QAAA;QAAA,iFAAqB;QAAA,2EAAe;QAAA,4DAAa;QACjD;QAAA,uIACE;QAEJ;QAAA,4DAAa;QACb;QAAA,qIACE;QAGJ;QAAA,4DAAiB;QAEnB;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,6FACT;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QACpC;QAAA,4DAAY;QACZ;QAAA,6EAGA;QAFiE,wJAAS,uBAAuB,IAAC;QADlG,4DAGA;QAAA;QAAA,qIACE;QAEJ;QAAA,4DAAiB;QAEnB;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,yFAA6B;QAAA,2EAA2B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QACvF;QAAA,6EAEA;QAF4C,wJAAS,uBAAuB,IAAC;QAA7E,4DAEA;QAAA;QAAA,qIACE;QAEJ;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QAEN;QAAA,2EACE;QAAA;QAAA,8EACE;QADM,mJAAS,WAAO,IAAC;QACvB;QAAA,4EAAU;QAAA,+EACV;QAAA,4DAAW;QAAA,6EACb;QAAA,4DAAS;QACT;QAAA,8EACE;QAAA,wDAAY;QAAA,4DAAS;QACzB;QAAA,4DAAM;QACR;QAAA,4DAAM;QACR;QAAA,4DAAO;QACT;QAAA,4DAAmB;QACrB;QAAA,4DAAW;QAEX;QAAA,4EACE;QAAA;QAAA,oFACE;QAAA;QAAA,2EACE;QAAA;QAAA,6EACE;QAAA;QAAA,6EACE;QAAA;QAAA,uHAA+E;QAC/E;QAAA,uHAAwC;QAC1C;QAAA,qEAAe;QACf;QAAA,6EACE;QAAA;QAAA,uHAA+E;QAC/E;QAAA,uHAAwC;QAC1C;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,yHAA+E;QAE/E;QAAA,yHAAwC;QAC1C;QAAA,qEAAe;QAEf;QAAA,8EACE;QAAA;QAAA,yHAAuC;QACvC;QAAA,yHACE;QAIJ;QAAA,qEAAe;QAEf;QAAA,yHAAuD;QACvD;QAAA,yHAA6D;QAE7D;QAAA,yHACE;QAGJ;QAAA,4DAAQ;QAEV;QAAA,4DAAM;QACN;QAAA,4EACE;QAAA;QAAA,iFAAgE;QAClE;QAAA,4DAAM;QACR;QAAA,4DAAmB;QACrB;QAAA,4DAAW;;QAvGD,0DAAiC;QAAjC,8FAAiC;QAIjB,0DAA+B;QAA/B,uGAA+B;QAS/B,2DAAuC;QAAvC,uFAAuC;QAI1C,0DAA+D;QAA/D,6HAA+D;QAQ5D,0DAA+B;QAA/B,uGAA+B;QAOlC,2DAA+D;QAA/D,6HAA+D;QAO5D,0DAA+B;QAA/B,uGAA+B;QAIlC,0DAAsE;QAAtE,oIAAsE;QAYjF,2DAAY;QAAZ,oGAAY;QAUD,2DAAyB;QAAzB,sFAAyB;QAwBrB,2DAAmC;QAAnC,iGAAmC;QAC1C,0DAAgD;QAAhD,kGAAgD;QAU/C,0DAAgC;QAAhC,mJAAgC;;6FD/ExC,0BAA0B;cALtC,uDAAS;eAAC;gBACT,QAAQ,EAAE,wBAAwB;gBAClC,WAAW,EAAE,qCAAqC;gBAClD,SAAS,EAAE,CAAC,qCAAqC,CAAC;aACnD;okBAuBgC,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;YACc,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACH,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AE/CtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AACwC;AAEtC;AACF;AACF;AACV;AAEH;AAGgB;AACd;AAE8B;;;;;;;;;;;;;;;;;;;;;;;ICHlE,4EACE;IAAA;IAAA,mEAA2D;IAC3D;IAAA,2EAAyB;IAAA,sFAA2B;IAAA,4DAAO;IAC7D;IAAA,4DAAY;;;IACZ,4EACE;IAAA;IAAA,2EAAyB;IAAA,+EAAoB;IAAA,4DAAO;IACtD;IAAA,4DAAY;;;IASZ,4EACE;IAAA;IAAA,mEAA2D;IAC3D;IAAA,2EAA0B;IAAA,8FAAkC;IAAA,4DAAO;IACrE;IAAA,4DAAY;;;IACZ,4EACE;IAAA;IAAA,2EAAyB;IAAA,+EAAoB;IAAA,4DAAO;IACtD;IAAA,4DAAY;;;;IAad,6EAEE;IADmC,0UAA4B,oBAAoB,KAAE;IACrF;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC5B;IAAA,4DAAS;;;IAEP,iFAAgG;IAAA,iGACnF;IAAA,4DAAa;;;IAC1B,iFACE;IAAA,uDACF;IAAA,4DAAa;;;IAFkD,6EAAgB;IAC7E,0DACF;IADE,wHACF;;;IAEF,4EACE;IAAA,uGACF;IAAA,4DAAY;;;IACZ,4EACE;IAAA,wHACF;IAAA,4DAAY;;;IAsBZ,yEAA+E;IAAA,6EAAkB;IAAA,4DAAK;;;IACtG,yEAAwC;IAAA,uDAA6B;IAAA,4DAAK;;;IAAlC,0DAA6B;IAA7B,wGAA6B;;;IAGrE,yEAA+E;IAAA,qFAA0B;IAAA,4DAAK;;;IAC9G,yEAAwC;IAAA,uDAAoC;IAAA,4DAAK;;;IAAzC,0DAAoC;IAApC,+GAAoC;;;IAI5E,yEAA+E;IAAA,8EAAmB;IAAA,4DAAK;;;IACvG,yEAAwC;IAAA,uDAAiC;IAAA,4DAAK;;;IAAtC,0DAAiC;IAAjC,4GAAiC;;;IAIzE,yEAAuC;IAAA,iEAAK;IAAA,4DAAK;;;;IACjD,yEACE;IAAA;IAAA,6EACE;IADsB,kXAAmC;IACzD;IAAA,2EAAU;IAAA,+DAAI;IAAA,4DAAW;IAC3B;IAAA,4DAAS;IACX;IAAA,4DAAK;;;IAGP,oEAA4D;;;IAC5D,oEAAkE;;;IAElE,yEACE;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAC/C;IAAA,4DAAK;;;ADxFN,MAAM,qBAAqB;IAsBhC,YAAoB,oBAAyC,EACnD,EAAe,EAAU,SAAsB,EAC/C,OAA8B,EAC/B,UAAsB;QAHX,yBAAoB,GAApB,oBAAoB,CAAqB;QACnD,OAAE,GAAF,EAAE,CAAa;QAAU,cAAS,GAAT,SAAS,CAAa;QAC/C,YAAO,GAAP,OAAO,CAAuB;QAC/B,eAAU,GAAV,UAAU,CAAY;QAxB/B,qBAAgB,GAAG,2DAAW,CAAC,oBAAoB,CAAC;QACpD,aAAQ,GAAW,EAAE,CAAC;QAGtB,kBAAa,GAAG,KAAK,CAAC;QAItB,iBAAY,GAAa,EAAE,CAAC;QAC5B,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QAC9C,cAAS,GAAG,EAAE,CAAC;QASf,qBAAgB,GAAa,CAAC,kBAAkB,EAAE,yBAAyB,EAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC;QAM1G,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;QAGhD,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YAC5D,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAChE,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE;YAC5D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC;IACJ,CAAC;IACD,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAC3D;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAChE,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SAClC;IACH,CAAC;IACD,QAAQ;QACN,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACnC,uBAAuB,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/E,gBAAgB,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YACxE,kBAAkB,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;SAEhD,CAAC,CAAC;QAEH,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAC1D,IAAI,IAAI,CAAC,oBAAoB,CAAC,QAAQ,IAAI,IAAI,EAAE;gBAC9C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC;gBACjD,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC;oBAC9B,yBAAyB,EAAE,IAAI,CAAC,uBAAuB;oBACvD,kBAAkB,EAAE,IAAI,CAAC,gBAAgB;oBACzC,oBAAoB,EAAC;wBACnB,KAAK,EAAE,IAAI,CAAC,oBAAoB;wBAChC,KAAK,EAAE,IAAI,CAAC,kBAAkB;qBAC/B;iBACF,CAAC,CAAC;gBACH,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;aAC1B;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YAC5D,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;QACvB,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAED,gBAAgB;;QACd,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,YAAY,GAAG,IAAI,uEAAY,EAAE,CAAC;QACtC,YAAY,CAAC,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,gBAAgB,CAAC;QAC5E,YAAY,CAAC,uBAAuB,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,uBAAuB,CAAC;QAC1F,YAAY,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;QACrC,YAAY,CAAC,uBAAuB,CAAC,IAAI,EAAE,CAAC;QAC5C,YAAY,CAAC,kBAAkB,SAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,kBAAkB,0CAAE,KAAK,CAAC;QACvF,IAAI,IAAI,CAAC,oBAAoB,CAAC,QAAQ,IAAI,IAAI,EAAE;YAC9C,YAAY,CAAC,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,KAAK,CAAC,cAAc,CAAC;YAC9F,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC;SACnF;QACD,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,IAAI,IAAI,EAAE;YACtC,IAAI,CAAC,oBAAoB,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC,GAAW,EAAE,EAAE;gBACpF,IAAI,GAAG,IAAI,IAAI,EAAE;oBACf,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,EAAE,CAAC;oBAC7C,IAAI,IAAI,CAAC,oBAAoB,CAAC,QAAQ,IAAI,KAAK,EAAE;wBAC/C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,0CAA0C,EAAE,GAAG,EAAE;4BACnE,QAAQ,EAAE,IAAI;4BACd,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;wBACH,UAAU,CAAC,GAAG,EAAE,CACd,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;qBAC1C;yBAEI;wBACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,4CAA4C,EAAE,GAAG,EAAE;4BACrE,QAAQ,EAAE,IAAI;4BACd,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;wBACH,UAAU,CAAC,GAAG,EAAE,CACd,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;qBAC1C;oBAED,IAAI,CAAC,KAAK,EAAE,CAAC;iBACd;YACH,CAAC,EACC,KAAK,CAAC,EAAE;gBACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;oBACpC,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,UAAU,CAAC,GAAG,EAAE,CACd,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAG3C,CAAC,CAAC,CAAC;SAEN;IAEH,CAAC;IACD,gBAAgB;QACd,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,EAAE,CAAC;IAC/C,CAAC;IAED,gBAAgB,CAAC,gBAAgB;QAC/B,IAAI,CAAC,oBAAoB,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC1C,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAClE,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC;YAC9B,yBAAyB,EAAE,gBAAgB,CAAC,uBAAuB;YACnE,kBAAkB,EAAE,gBAAgB,CAAC,gBAAgB;YACrD,oBAAoB,EAAC;gBACnB,KAAK,EAAE,gBAAgB,CAAC,oBAAoB;gBAC5C,KAAK,EAAE,gBAAgB,CAAC,kBAAkB;aAC3C;SACF,CAAC,CAAC;IAEL,CAAC;IACD,KAAK;QACH,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,oBAAoB,CAAC,QAAQ,GAAG,KAAK,CAAC;QAC3C,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,YAAY;QACV,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,SAAS,CAAC,CAAC,GAAU,EAAE,EAAE;YACxD,wCAAwC;YACxC,IAAI,QAAQ,GAAU,GAAG,CAAC;YAC1B,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;YACpB,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBACrB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YAC5D,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,eAAe;iBAC5C,GAAG,CAAC,oBAAoB,CAAC;iBACzB,YAAY,CAAC,IAAI,CAChB,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CACxC,CAAC;QACN,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,WAAW,CAAC,KAAK;QACvB,IAAI,WAAW,CAAC;QAChB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,WAAW,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;SACnC;aAAM;YACL,IAAI,KAAK,KAAK,IAAI,EAAE;gBAClB,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;aACzC;iBAAM;gBACL,OAAO,IAAI,CAAC,SAAS,CAAC;aACvB;SACF;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CACtC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CACjD,CAAC;IACJ,CAAC;IAED,UAAU,CAAC,KAAW,EAAE,SAAiB;QACvC,IAAI,SAAS,IAAI,oBAAoB,EAAC;YACpC,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,KAAK,EAAE,CAAC;SACxD;IACH,CAAC;IAED,cAAc,CAAC,KAAS;QACtB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,SAAS,CAAC,IAAS;QACjB,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAChC,CAAC;;0FAlNU,qBAAqB;qGAArB,qBAAqB;kEAgBrB,iEAAkB;wEAClB,wEAAY;wEACZ,8DAAO;;;;;;qFApBP,CAAC,sFAAqB,CAAC;;QCpBpC,8EACE;QAAA;QAAA,mFACE;QAAA;QAAA,0EACE;QADkC,iJAAY,sBAAkB,IAAC;QACjE;QAAA,yEACE;QAAA;QAAA,yEACE;QAAA;QAAA,qFAEE;QAAA;QAAA,6EAAW;QAAA,8FACT;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QACpC;QAAA,4DAAY;QACZ;QAAA,uEACA;QAAA;QAAA,+HACE;QAGF;QAAA,+HACE;QAEJ;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,qGACT;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QACpC;QAAA,4DAAY;QACZ;QAAA,uEACA;QAAA;QAAA,+HACE;QAGF;QAAA,+HACE;QAEJ;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACN;QAAA,0EAEE;QAAA;QAAA,qFAEA;QAFkD,sJAAS,mBAAe,oBAAoB,CAAC,IAAC,oGACpF,mBAAe,oBAAoB,CAAC,IADgD;QAEhG;QAAA,6EAAW;QAAA,4FACT;QAAA,2EAA2B;QAAA,8DAAC;QAAA,4DAAO;QACrC;QAAA,4DAAY;QACZ;QAAA,iFAGA;QAFE,2SAAiB,UAAyB,IAAC;QAD7C,4DAGA;QAAA;QAAA,0HAEE;QAEF;QAAA,4FACE;QAAA;QAAA,kIAAgG;QAEhG;QAAA,kIACE;;QAEJ;QAAA,4DAAmB;QACnB;QAAA,+HACE;QAEF;QAAA,+HACE;QAEJ;QAAA,4DAAiB;QACjB;QAAA,4DAAM;QAEN;QAAA,2EACE;QAAA;QAAA,8EACE;QADM,8IAAS,WAAO,IAAC;QACvB;QAAA,4EAAU;QAAA,+EACV;QAAA,4DAAW;QAAA,6EACb;QAAA,4DAAS;QACT;QAAA,8EACE;QAAA,wDAAY;QAAA,4DAAS;QACzB;QAAA,4DAAM;QACR;QAAA,4DAAM;QACR;QAAA,4DAAO;QACT;QAAA,4DAAmB;QACrB;QAAA,4DAAW;QAEX;QAAA,4EACE;QAAA;QAAA,oFACE;QAAA;QAAA,2EACE;QAAA;QAAA,6EACE;QAAA;QAAA,6EACE;QAAA;QAAA,oHAA+E;QAC/E;QAAA,oHAAwC;QAC1C;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,oHAA+E;QAC/E;QAAA,oHAAwC;QAC1C;QAAA,qEAAe;QAEf;QAAA,8EACE;QAAA;QAAA,oHAA+E;QAC/E;QAAA,oHAAwC;QAC1C;QAAA,qEAAe;QAEf;QAAA,8EACE;QAAA;QAAA,oHAAuC;QACvC;QAAA,oHACE;QAIJ;QAAA,qEAAe;QAEf;QAAA,oHAAuD;QACvD;QAAA,oHAA6D;QAE7D;QAAA,oHACE;QAGJ;QAAA,4DAAQ;QAEV;QAAA,4DAAM;QACN;QAAA,4EACE;QAAA;QAAA,iFAAgE;QAClE;QAAA,4DAAM;QACR;QAAA,4DAAmB;QACrB;QAAA,4DAAW;;;QArHD,0DAA6B;QAA7B,0FAA6B;QAGb,0DAA+B;QAA/B,uGAA+B;QAMlC,2DAAwH;QAAxH,0LAAwH;QAIxH,0DAAqE;QAArE,mIAAqE;QAMlE,0DAA+B;QAA/B,uGAA+B;QAKlC,2DAAsI;QAAtI,wMAAsI;QAItI,0DAA4E;QAA5E,0IAA4E;QAOzE,0DAAiC;QAAjC,uGAAiC;QAKpB,0DAAwB;QAAxB,qFAAwB;QAGtB,0DAAgD;QAAhD,8GAAgD;QAIrC,0DAAyB;QAAzB,sFAAyB;QACrD,0DAA0E;QAA1E,wIAA0E;QAE1E,0DAAkD;QAAlD,+JAAkD;QAIrD,0DAAsE;QAAtE,oIAAsE;QAGtE,0DAA0E;QAA1E,wIAA0E;QAYnF,2DAAY;QAAZ,oGAAY;QAUD,2DAAyB;QAAzB,sFAAyB;QAwBrB,2DAAmC;QAAnC,iGAAmC;QAC1C,0DAAgD;QAAhD,kGAAgD;QAU/C,0DAAgC;QAAhC,mJAAgC;;6FD9FxC,qBAAqB;cANjC,uDAAS;eAAC;gBACT,QAAQ,EAAE,mBAAmB;gBAC7B,WAAW,EAAE,gCAAgC;gBAC7C,SAAS,EAAE,CAAC,gCAAgC,CAAC;gBAC7C,SAAS,EAAE,CAAC,sFAAqB,CAAC;aACnC;0eAiBgC,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;YACc,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACH,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AExCtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AAEwC;AACnC;AACL;AACF;AACV;AACH;AAGgB;;;;;;;;;;;;;;;;;;ICElD,4EACE;IAAA;IAAA,mEAA2D;IAC3D;IAAA,2EAAyB;IAAA,2FAAgC;IAAA,4DAAO;IAClE;IAAA,4DAAY;;;IAUZ,4EACE;IAAA;IAAA,mEAA2D;IAC3D;IAAA,2EAAyB;IAAA,kGAAuC;IAAA,4DAAO;IACzE;IAAA,4DAAY;;;IAsBd,yEAA+E;IAAA,iFAAsB;IAAA,4DAAK;;;IAC1G,yEAAwC;IAAA,uDAAiC;IAAA,4DAAK;;;IAAtC,0DAAiC;IAAjC,4GAAiC;;;IAGzE,yEAA+E;IAAA,oGAC/E;IAAA,4DAAK;;;IACL,yEAAwC;IAAA,uDAAwC;IAAA,4DAAK;;;IAA7C,0DAAwC;IAAxC,mHAAwC;;;IAIhF,yEAAuC;IAAA,iEAAK;IAAA,4DAAK;;;;IACjD,yEACE;IAAA;IAAA,6EACE;IADsB,0XAAwC;IAC9D;IAAA,2EAAU;IAAA,+DAAI;IAAA,4DAAW;IAC3B;IAAA,4DAAS;IACX;IAAA,4DAAK;;;IAGP,oEAA4D;;;IAC5D,oEAAkE;;;IAElE,yEACE;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAC/C;IAAA,4DAAK;;;ADtDN,MAAM,yBAAyB;IAmBpC,YAAoB,UAAmC,EAC7C,EAAe,EAAU,SAAsB,EAChD,UAAsB;QAFX,eAAU,GAAV,UAAU,CAAyB;QAC7C,OAAE,GAAF,EAAE,CAAa;QAAU,cAAS,GAAT,SAAS,CAAa;QAChD,eAAU,GAAV,UAAU,CAAY;QApB/B,qBAAgB,GAAG,2DAAW,CAAC,oBAAoB,CAAC;QAEpD,UAAK,GAAG,IAAI,CAAC;QAEb,kBAAa,GAAG,KAAK,CAAC;QAGtB,iBAAY,GAAa,EAAE,CAAC;QAC5B,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QAO9C,qBAAgB,GAAa,CAAC,sBAAsB,EAAE,6BAA6B,EAAE,MAAM,CAAC,CAAC;QAM3F,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;QAGhD,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YACtD,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;YACjC,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACpE,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE;YAC5D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC;IACJ,CAAC;IAED,QAAQ;QAEN,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YAEvC,oBAAoB,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACjD,2BAA2B,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;SAEzD,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;QACvB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YACzC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,IAAI,EAAE;gBACpC,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBAC1C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;aAC1B;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAED,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAC3D;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACpE,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SAClC;IACH,CAAC;IAED,0BAA0B;QACxB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,WAAW,GAAG,IAAI,0EAAgB,EAAE,CAAC;QAEzC,WAAW,CAAC,oBAAoB,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,oBAAoB,CAAC;QACvF,WAAW,CAAC,2BAA2B,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,2BAA2B,CAAC;QAErG,IAAI,IAAI,CAAC,mBAAmB,CAAC,KAAK,IAAI,IAAI,EAAE;YAC1C,WAAW,CAAC,oBAAoB,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,oBAAoB,CAAC;YACvF,WAAW,CAAC,2BAA2B,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,2BAA2B,CAAC;YACrG,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,IAAI,EAAE;gBACpC,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;gBAC9D,WAAW,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC;aACnF;YACD,IAAI,CAAC,UAAU,CAAC,0BAA0B,CAAC,WAAW,CAAC;iBACpD,SAAS,CAAC,GAAG,CAAC,EAAE;gBACf,IAAI,GAAG,EAAE;oBACP,IAAI,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAC;oBAC1C,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,KAAK,EAAE;wBACrC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,+CAA+C,EAAE,GAAG,EAAE;4BACxE,QAAQ,EAAE,IAAI;4BACd,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;wBACH,UAAU,CAAC,GAAG,EAAE,CACd,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;qBAE1C;yBACI;wBACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iDAAiD,EAAE,GAAG,EAAE;4BAC1E,QAAQ,EAAE,IAAI;4BACd,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;qBACJ;oBACD,UAAU,CAAC,GAAG,EAAE,CACd,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;oBACzC,IAAI,CAAC,KAAK,EAAE,CAAC;iBAEd;qBACI;oBACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kCAAkC,EAAE,GAAG,EAAE;wBAC3D,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,aAAa,CAAC;wBAC3B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACH,UAAU,CAAC,GAAG,EAAE,CACd,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;oBACzC,IAAI,CAAC,KAAK,EAAE,CAAC;iBACd;YACH,CAAC,EACC,KAAK,CAAC,EAAE;gBACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;oBACpC,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,UAAU,CAAC,GAAG,EAAE,CACd,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;gBACzC,IAAI,CAAC,KAAK,EAAE,CAAC;YAEf,CAAC,CAAC,CAAC;SACR;IAEH,CAAC;IACD,uBAAuB;QACrB,IAAI,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAC;IAC5C,CAAC;IACD,qBAAqB,CAAC,gBAAgB;QACpC,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACjD,CAAC;IAED,QAAQ,CAAC,KAAK;QACZ,IAAI,MAAM,GAAG,cAAc,CAAC;QAC5B,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IACD,KAAK;QACH,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;QACvB,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,KAAK,CAAC;IACnC,CAAC;;kGAxJU,yBAAyB;yGAAzB,yBAAyB;kEAYzB,iEAAkB;wEAClB,wEAAY;wEACZ,8DAAO;;;;;;;QCjCpB,8EACE;QAAA;QAAA,mFACE;QAAA;QAAA,0EACE;QADsC,qJAAY,gCAA4B,IAAC;QAC/E;QAAA,yEACE;QAAA;QAAA,yEACE;QAAA;QAAA,qFAEE;QAAA;QAAA,6EAAW;QAAA,kGACT;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QACpC;QAAA,4DAAY;QACZ;QAAA,uEAEA;QAAA;QAAA,mIACE;QAGJ;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,yGACT;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QACpC;QAAA,4DAAY;QACZ;QAAA,uEAEA;QAAA;QAAA,mIACE;QAGJ;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QAEN;QAAA,0EACE;QAAA;QAAA,8EACE;QADM,kJAAS,WAAO,IAAC;QACvB;QAAA,4EAAU;QAAA,+EACV;QAAA,4DAAW;QAAA,6EACb;QAAA,4DAAS;QACT;QAAA,8EACE;QAAA,wDAAY;QAAA,4DAAS;QACzB;QAAA,4DAAM;QACR;QAAA,4DAAM;QACR;QAAA,4DAAO;QACT;QAAA,4DAAmB;QACrB;QAAA,4DAAW;QAEX;QAAA,4EACE;QAAA;QAAA,oFACE;QAAA;QAAA,2EACE;QAAA;QAAA,6EACE;QAAA;QAAA,6EACE;QAAA;QAAA,sHAA+E;QAC/E;QAAA,sHAAwC;QAC1C;QAAA,qEAAe;QACf;QAAA,6EACE;QAAA;QAAA,sHAA+E;QAE/E;QAAA,sHAAwC;QAC1C;QAAA,qEAAe;QAEf;QAAA,6EACE;QAAA;QAAA,sHAAuC;QACvC;QAAA,sHACE;QAIJ;QAAA,qEAAe;QAEf;QAAA,sHAAuD;QACvD;QAAA,sHAA6D;QAE7D;QAAA,sHACE;QAGJ;QAAA,4DAAQ;QAEV;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,gFAAgE;QAClE;QAAA,4DAAM;QACR;QAAA,4DAAmB;QACrB;QAAA,4DAAW;;QAhFD,0DAAiC;QAAjC,8FAAiC;QAGjB,0DAA+B;QAA/B,uGAA+B;QAOlC,2DAA8D;QAA9D,4HAA8D;QAO3D,0DAA+B;QAA/B,uGAA+B;QAMlC,2DAAqE;QAArE,mIAAqE;QAahF,2DAAY;QAAZ,oGAAY;QAUD,2DAAyB;QAAzB,sFAAyB;QAoBrB,2DAAmC;QAAnC,iGAAmC;QAC1C,0DAAgD;QAAhD,kGAAgD;QAU/C,0DAAgC;QAAhC,mJAAgC;;6FD5DxC,yBAAyB;cANrC,uDAAS;eAAC;gBACT,QAAQ,EAAE,uBAAuB;gBACjC,WAAW,EAAE,oCAAoC;gBACjD,SAAS,EAAE,CAAC,oCAAoC,CAAC;aAClD;8YAcgC,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;YACc,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACH,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AEjCtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AAEwC;AACxC;AACF;AACV;AACH;AACmB;AAGH;;;;;;;;;;;;;;;;;;ICAlD,4EACE;IAAA;IAAA,mEAA2D;IAC3D;IAAA,2EAAyB;IAAA,sFAA2B;IAAA,4DAAO;IAC7D;IAAA,4DAAY;;;IASZ,4EACE;IAAA;IAAA,mEAA2D;IAC3D;IAAA,2EAAyB;IAAA,gFAAqB;IAAA,4DAAO;IACvD;IAAA,4DAAY;;;IAqBd,yEAA+E;IAAA,4EAAiB;IAAA,4DAAK;;;IACrG,yEAAwC;IAAA,uDAA4B;IAAA,4DAAK;;;IAAjC,0DAA4B;IAA5B,uGAA4B;;;IAGpE,yEAA+E;IAAA,oFAAyB;IAAA,4DAAK;;;IAC7G,yEAAwC;IAAA,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,mGAAwB;;;IAIhE,yEAAuC;IAAA,iEAAK;IAAA,4DAAK;;;;IACjD,yEACE;IAAA;IAAA,6EACE;IADsB,gXAAmC;IACzD;IAAA,2EAAU;IAAA,+DAAI;IAAA,4DAAW;IAC3B;IAAA,4DAAS;IACX;IAAA,4DAAK;;;IAGP,oEAA4D;;;IAC5D,oEAAkE;;;IAElE,yEACE;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAC/C;IAAA,4DAAK;;;ADnDN,MAAM,oBAAoB;IAgB/B,YAAoB,UAA8B,EAAU,SAAsB,EACxE,EAAe,EAAS,UAAsB;QADpC,eAAU,GAAV,UAAU,CAAoB;QAAU,cAAS,GAAT,SAAS,CAAa;QACxE,OAAE,GAAF,EAAE,CAAa;QAAS,eAAU,GAAV,UAAU,CAAY;QAhBxD,qBAAgB,GAAG,2DAAW,CAAC,oBAAoB,CAAC;QACpD,UAAK,GAAG,KAAK,CAAC;QACd,aAAQ,GAAG,EAAE,CAAC;QAKd,iBAAY,GAAa,EAAE,CAAC;QAC5B,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QAC9C,qBAAgB,GAAa,CAAC,iBAAiB,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;QAQtE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;QAChD,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAC/C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC/D,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,EAAE;YAC9D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC;IACJ,CAAC;IAGD,QAAQ;QAEN,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YAElC,eAAe,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC5C,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;SAEzC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;QAEvB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YACzC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,IAAI,EAAE;gBACpC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACrC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;aAC1B;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IACD,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAC3D;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC/D,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SAClC;IACH,CAAC;IAGD,iBAAiB;QACf,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,WAAW,GAAG,IAAI,yEAAe,EAAE,CAAC;QAExC,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,WAAW,CAAC;QAChE,WAAW,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,eAAe,CAAC;QAExE,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,IAAI,EAAE;YACpC,WAAW,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC;SACzE;QACD,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,IAAI,IAAI,EAAE;YAErC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;gBAC7D,IAAI,GAAG,EAAE;oBACP,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC;oBACrC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,KAAK,EAAE;wBACrC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;4BAClE,QAAQ,EAAE,IAAI;4BACd,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;wBACH,UAAU,CAAC,GAAG,EAAE,CACd,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;wBACzC,IAAI,CAAC,KAAK,EAAE,CAAC;qBACd;yBAEI;wBACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,2CAA2C,EAAE,GAAG,EAAE;4BACpE,QAAQ,EAAE,IAAI;4BACd,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;qBACJ;oBAED,UAAU,CAAC,GAAG,EAAE,CACd,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;oBACzC,IAAI,CAAC,KAAK,EAAE,CAAC;iBACd;qBACI;oBACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,6BAA6B,EAAE,EAAE,EAAE;wBACrD,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,aAAa,CAAC;wBAC3B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACH,UAAU,CAAC,GAAG,EAAE,CACd,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;oBACzC,IAAI,CAAC,KAAK,EAAE,CAAC;iBACd;YAEH,CAAC,EACC,KAAK,CAAC,EAAE;gBACN,KAAK,CAAC;gBACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;oBACpC,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,UAAU,CAAC,GAAG,EAAE,CACd,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAE3C,CAAC,CAAC,CAAC;SACN;IAEH,CAAC;IACD,QAAQ,CAAC,KAAK;QACZ,IAAI,MAAM,GAAG,cAAc,CAAC;QAC5B,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IACD,kBAAkB;QAChB,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC;IACvC,CAAC;IAED,gBAAgB,CAAC,eAAe;QAC9B,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAChD,CAAC;IACD,KAAK;QACH,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QAC5B,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,KAAK,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;IACzB,CAAC;;wFAnJU,oBAAoB;oGAApB,oBAAoB;kEAYpB,iEAAkB;wEAClB,wEAAY;wEACZ,8DAAO;;;;;;;QC/BpB,8EACE;QAAA;QAAA,mFACE;QAAA;QAAA,0EACE;QADiC,gJAAY,uBAAmB,IAAC;QACjE;QAAA,yEACE;QAAA;QAAA,yEACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,6FACT;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QACpC;QAAA,4DAAY;QACZ;QAAA,uEACA;QAAA;QAAA,8HACE;QAGJ;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,uFACT;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QACpC;QAAA,4DAAY;QACZ;QAAA,uEACA;QAAA;QAAA,8HACE;QAGJ;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QAEN;QAAA,0EACE;QAAA;QAAA,8EACE;QADM,6IAAS,WAAO,IAAC;QACvB;QAAA,4EAAU;QAAA,+EACV;QAAA,4DAAW;QAAA,6EACb;QAAA,4DAAS;QACT;QAAA,8EACE;QAAA,wDAAY;QAAA,4DAAS;QACzB;QAAA,4DAAM;QACR;QAAA,4DAAM;QACR;QAAA,4DAAO;QACT;QAAA,4DAAmB;QACrB;QAAA,4DAAW;QACX;QAAA,4EACE;QAAA;QAAA,oFACE;QAAA;QAAA,2EACE;QAAA;QAAA,6EACE;QAAA;QAAA,6EACE;QAAA;QAAA,iHAA+E;QAC/E;QAAA,iHAAwC;QAC1C;QAAA,qEAAe;QACf;QAAA,6EACE;QAAA;QAAA,iHAA+E;QAC/E;QAAA,iHAAwC;QAC1C;QAAA,qEAAe;QAEf;QAAA,6EACE;QAAA;QAAA,iHAAuC;QACvC;QAAA,iHACE;QAIJ;QAAA,qEAAe;QAEf;QAAA,iHAAuD;QACvD;QAAA,iHAA6D;QAE7D;QAAA,iHACE;QAGJ;QAAA,4DAAQ;QAGV;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,gFAAgE;QAClE;QAAA,4DAAM;QACR;QAAA,4DAAmB;QACrB;QAAA,4DAAW;;QA5ED,0DAA4B;QAA5B,yFAA4B;QAGZ,0DAA+B;QAA/B,uGAA+B;QAKlC,2DAAoD;QAApD,kHAAoD;QAOjD,0DAA+B;QAA/B,uGAA+B;QAKlC,2DAAgD;QAAhD,8GAAgD;QAa3D,2DAAY;QAAZ,oGAAY;QASD,2DAAyB;QAAzB,sFAAyB;QAmBrB,2DAAmC;QAAnC,iGAAmC;QAC1C,0DAAgD;QAAhD,kGAAgD;QAW/C,0DAAgC;QAAhC,mJAAgC;;6FD1DxC,oBAAoB;cALhC,uDAAS;eAAC;gBACT,QAAQ,EAAE,kBAAkB;gBAC5B,WAAW,EAAE,+BAA+B;gBAC5C,SAAS,EAAE,CAAC,+BAA+B,CAAC;aAC7C;oYAagC,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;YACc,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACH,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AE/BtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AACwC;AACxC;AACF;AACV;AAKQ;;;;;;;;;;;;;;;;;;;;;ICD3C,iFACE;IAAA,uDACF;IAAA,4DAAa;;;IAFqC,gFAAmB;IACnE,0DACF;IADE,yHACF;;;IASE,iFACI;IAAA,uDACJ;IAAA,4DAAa;;;IAFmC,iFAAoB;IAChE,0DACJ;IADI,gIACJ;;;IAEJ,4EACI;IAAA,iHACJ;IAAA,4DAAY;;;IAUV,iFACE;IAAA,uDACF;IAAA,4DAAa;;;IAFiC,iFAAoB;IAChE,0DACF;IADE,0HACF;;;IAEF,4EACE;IAAA,6GACF;IAAA,4DAAY;;;IAQV,iFACE;IAAA,uDACF;IAAA,4DAAa;;;IAF2B,gFAAmB;IACzD,0DACF;IADE,2HACF;;;IAEF,4EACE;IAAA,0GACF;IAAA,4DAAY;;;IA6Bd,yEAAgF;IAAA,uEAAW;IAAA,4DAAK;;;IAChG,yEAAwC;IAAA,uDAAkC;IAAA,4DAAK;;;IAAvC,0DAAkC;IAAlC,6GAAkC;;;IAG1E,yEAAyG;IAAA,sEAAU;IAAA,4DAAK;;;IACxH,yEAAwC;IAAA,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,oGAAyB;;;IAGjE,yEAAyG;IAAA,wEAAY;IAAA,4DAAK;;;IAC1H,yEAAwC;IAAA,uDAAgC;IAAA,4DAAK;;;IAArC,0DAAgC;IAAhC,2GAAgC;;;IAGxE,yEAAgF;IAAA,kEAAM;IAAA,4DAAK;;;IAC3F,yEAAwC;IAAA,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,iGAAsB;;;IAG9D,yEAAuC;IAAA,iEAAK;IAAA,4DAAK;;;;IACjD,yEACE;IAAA;IAAA,+EAA4D;IAA1B,sWAAyB;IAAC,+DAAI;IAAA,4DAAW;IAC7E;IAAA,4DAAK;;;IAEP,oEAA4D;;;IAC5D,oEAAkE;;;IAClE,yEACE;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAC/C;IAAA,4DAAK;;;ADxFN,MAAM,iBAAiB;IAqB5B,YAAoB,EAAe,EACzB,gBAAiC,EACjC,aAA4B,EAC5B,aAA0B,EAC1B,kBAAqC,EACrC,SAAsB,EAAS,UAAsB;QAL3C,OAAE,GAAF,EAAE,CAAa;QACzB,qBAAgB,GAAhB,gBAAgB,CAAiB;QACjC,kBAAa,GAAb,aAAa,CAAe;QAC5B,kBAAa,GAAb,aAAa,CAAa;QAC1B,uBAAkB,GAAlB,kBAAkB,CAAmB;QACrC,cAAS,GAAT,SAAS,CAAa;QAAS,eAAU,GAAV,UAAU,CAAY;QAzB/D,kBAAa,GAAG,KAAK,CAAC;QACtB,gBAAW,GAAW,MAAM,CAAC;QAG7B,iBAAY,GAAW,CAAC,CAAC;QACzB,eAAU,GAAY,CAAC,CAAC;QAExB,sBAAiB,GAAE,EAAE,CAAC;QAEtB,eAAU,GAAG,IAAI,0EAAkB,EAAY,CAAC;QAChD,aAAQ,GAAY,KAAK,CAAC;QAEnB,oBAAe,GAAW,CAAC,CAAC;QACnC,qBAAgB,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QACpD,qBAAgB,GAAa,CAAC,YAAY,EAAC,cAAc,EAAE,qBAAqB,EAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAYhG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE;YAC5D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC;IACJ,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,YAAY,GAAG,IAAI,wDAAS,CAAC;YAChC,eAAe,EAAE,IAAI,0DAAW,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC3D,YAAY,EAAE,IAAI,0DAAW,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACxD,UAAU,EAAE,IAAI,0DAAW,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACtD,OAAO,EAAE,IAAI,0DAAW,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACnD,eAAe,EAAE,IAAI,0DAAW,CAAC,CAAC,CAAC;YACnC,QAAQ,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAC/B,QAAQ,EAAE,IAAI,0DAAW,CAAC,EAAE,CAAC;SAC9B,CAAC;IACJ,CAAC;IAED,QAAQ,CAAC,KAAK;QACZ,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC;QACnC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED,kBAAkB,CAAC,KAAK;QAEtB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC;QAChC,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED,SAAS;QACP,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,CAAC;QACtC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YAC/C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;IACD,iBAAiB;QACf,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YACnH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC5D,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACjC,IAAI,CAAC,UAAU,CAAC,mBAAmB,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7E,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY;QACV,IAAI,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC,GAAkB,EAAE,EAAE;YACtH,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBACpB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;YACrE,CAAC,CAAC,CAAC;QACL,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;YACX,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE;gBACzC,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IAEL,CAAC;IAGD,cAAc;QACZ,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC,SAAS,CAAC,CAAC,GAAiB,EAAE,EAAE;YACrE,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;YACzB,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBACpB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;YACxF,CAAC,CAAC,CAAC;QACL,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;YACX,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE;gBACzC,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,CAAC,SAAS,CACnD,CAAC,SAAgB,EAAE,EAAE;YACnB,SAAS,CAAC,OAAO,CAAC,CAAC,CAAM,EAAE,EAAE;gBAC3B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;oBAC1B,KAAK,EAAE,CAAC,CAAC,iBAAiB;oBAC1B,KAAK,EAAE,CAAC,CAAC,EAAE;iBACZ,CAAC,CAAC;gBACH,6CAA6C;gBAC7C,kDAAkD;YACpD,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACvD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACxE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,MAAM,EAAE,CAAC;YACvD,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC,EACD,KAAK,CAAC,EAAE;YACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mCAAmC,EAAE,EAAE,EAAE;gBAC3D,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACH,4BAA4B;YAC5B,uBAAuB;YACvB,8BAA8B;YAC9B,gDAAgD;YAChD,MAAM;QACR,CAAC,CACF,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAC3D;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC5D,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SAClC;IACH,CAAC;IAED,KAAK;QACH,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;YACtB,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK;YACjD,eAAe,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,KAAK;YAC/D,eAAe,EAAE,CAAC;SACnB,CAAC;QAEF,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC;YACjD,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK;YACjD,eAAe,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,KAAK;YAC/D,eAAe,EAAE,CAAC;SACnB,CAAC,EAAE,CAAC,CAAC,CAAC;QACR,EAAE;QACF,oDAAoD;QACnD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;IAC5B,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;YAC3B,IAAI,QAAQ,GAAG,EAAE,CAAC;YACnB,IAAI,UAAe,CAAE;YACtB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACpF,IAAI,IAAI,CAAC,WAAW,IAAI,MAAM,EAAE;gBACjC,0DAA0D;gBACvD,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;oBAClF,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBACzB,IAAI,CAAC,KAAK,EAAE,CAAC;oBACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;wBACxD,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;gBAEL,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;oBACX,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;wBACpC,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,aAAa,CAAC;wBAC3B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;gBAEL,CAAC,CAAC,CAAC;aACJ;iBACI;gBACH,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;oBAClF,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBACzB,IAAI,CAAC,KAAK,EAAE,CAAC;oBACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iCAAiC,EAAE,GAAG,EAAE;wBAC1D,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;gBAEL,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;oBACX,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,0BAA0B,EAAE,GAAG,EAAE;wBACnD,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,aAAa,CAAC;wBAC3B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;gBAEL,CAAC,CAAC,CAAC;aACJ;SACF;IACH,CAAC;IAED,MAAM,CAAC,EAAE;QACP,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;YAC7D,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3B,CAAC,EAAE,KAAK,CAAC,EAAE;QAEX,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,IAAc;QACnB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;QAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACtB,qDAAqD;IACtD,CAAC;;kFA1OU,iBAAiB;iGAAjB,iBAAiB;kEAiBjB,iEAAkB;wEAClB,wEAAY;wEACZ,8DAAO;;;;;;;QCxCpB,8EACE;QAAA;QAAA,sFACE;QAAA;QAAA,0EACE;QAAA;QAAA,yEACE;QAAA;QAAA,yEACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,0EAAc;QAAA,4DAAY;QACrC;QAAA,iFACE;QADsG,wKAAkB,oBAAgB;QACxI;QAAA,6HACE;QAEJ;QAAA,4DAAa;QACf;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,sEAAU;QAAA,4DAAY;QACjC;QAAA,iFACI;QADiF,wKAAkB,8BAA0B;QAC7H;QAAA,iFAAqB;QAAA,6EAAiB;QAAA,4DAAa;QACnD;QAAA,6HACI;QAER;QAAA,4DAAa;QACb;QAAA,4HACI;QAER;QAAA,4DAAiB;QACjB;QAAA,4DAAM;QACR;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,0EACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,qEAAS;QAAA,4DAAY;QAChC;QAAA,kFACE;QAAA;QAAA,iFAAqB;QAAA,2EAAe;QAAA,4DAAa;QACjD;QAAA,6HACE;QAEJ;QAAA,4DAAa;QACb;QAAA,4HACE;QAEJ;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,iEAAK;QAAA,4DAAY;QAC5B;QAAA,kFACE;QAAA;QAAA,kFAAwB;QAAA,wEAAY;QAAA,4DAAa;QACjD;QAAA,6HACE;QAEJ;QAAA,4DAAa;QACb;QAAA,4HACE;QAEJ;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,wFAAuG;QAAA,qEAAS;QAAA,4DAAmB;QACrI;QAAA,4DAAM;QACR;QAAA,4DAAM;QACN;QAGA;QAAA,0EACE;QAAA;QAAA,2EACE;QAAA;QAAA,8EACE;QADyB,0IAAS,WAAO,IAAC;QAC1C;QAAA,4EAAU;QAAA,iEAAK;QAAA,4DAAW;QAAA,6EAC5B;QAAA,4DAAS;QACT;QAAA,+EACE;QADsC,2IAAS,cAAU,IAAC;QAC1D,yDACF;QAAA,4DAAS;QACX;QAAA,4DAAM;QACR;QAAA,4DAAM;QACR;QAAA,4DAAO;QACT;QAAA,4DAAmB;QACrB;QAAA,4DAAW;QACX;QAAA,6EACE;QAAA;QAAA,qFAEE;QAAA;QAAA,4EACE;QAAA;QAAA,8EACE;QAAA;QAAA,8EACE;QAAA;QAAA,gHAAgF;QAChF;QAAA,gHAAwC;QAC1C;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,gHAAyG;QACzG;QAAA,gHAAwC;QAC1C;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,gHAAyG;QACzG;QAAA,gHAAwC;QAC1C;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,gHAAgF;QAChF;QAAA,gHAAwC;QAC1C;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,gHAAuC;QACvC;QAAA,gHACE;QAEJ;QAAA,qEAAe;QACf;QAAA,gHAAuD;QACvD;QAAA,gHAA6D;QAC7D;QAAA,gHACE;QAEJ;QAAA,4DAAQ;QACV;QAAA,4DAAM;QACN;QAAA,4EACE;QAAA;QAAA,iFAAgE;QAClE;QAAA,4DAAM;QACR;QAAA,4DAAmB;QACrB;QAAA,4DAAW;;QAlHuB,0DAA0B;QAA1B,uFAA0B;QAGlC,0DAAiC;QAAjC,uGAAiC;QAEnC,0DAAqB;QAArB,kFAAqB;QACnB,0DAAqC;QAArC,0FAAqC;QAOrC,0DAA+B;QAA/B,uGAA+B;QAEjC,0DAAqB;QAArB,kFAAqB;QAEjB,0DAAmC;QAAnC,uFAAmC;QAIxC,0DAA6D;QAA7D,2HAA6D;QAQ1D,0DAAiC;QAAjC,uGAAiC;QAEnC,0DAAqB;QAArB,kFAAqB;QAEnB,0DAAiC;QAAjC,qFAAiC;QAIpC,0DAA2D;QAA3D,yHAA2D;QAMxD,0DAA+B;QAA/B,uGAA+B;QAI/B,2DAA2B;QAA3B,kFAA2B;QAI9B,0DAAwD;QAAxD,sHAAwD;QAMR,0DAAyC;QAAzC,+FAAyC;QAYpG,2DACF;QADE,mHACF;QAUa,2DAAyB;QAAzB,sFAAyB;QAuBrB,2DAAmC;QAAnC,iGAAmC;QAC1C,0DAAgD;QAAhD,kGAAgD;QAO/C,0DAAgC;QAAhC,mJAAgC;;6FD5FxC,iBAAiB;cAL7B,uDAAS;eAAC;gBACT,QAAQ,EAAE,eAAe;gBACzB,WAAW,EAAE,4BAA4B;gBACzC,SAAS,EAAE,CAAC,4BAA4B,CAAC;aAC1C;qoBAkBgC,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;YACc,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACH,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AExCtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AAC2B;AAC/B;AAMI;AACF;AACV;;;;;;;;;;;;;;;;;;ICAnC,iFACE;IAAA,uDAAc;IAAA,4DAAa;;;IADmB,iFAAoB;IAClE,0DAAc;IAAd,0GAAc;;;IAyBpB,yEAA+E;IAAA,0EAAe;IAAA,4DAAK;;;IACnG,yEAAqC;IAAA,uDACR;IAAA,4DAAK;;;IADG,0DACR;IADQ,iMACR;;;IAI7B,yEAA+E;IAAA,kGAC/E;IAAA,4DAAK;;;IACL,yEAAqC;IAAA,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,oGAAyB;;;IAI9D,yEAAuC;IAAA,iEAAK;IAAA,4DAAK;;;;IACjD,yEACE;IAAA;IAAA,+EAA2D;IAAzB,mWAAwB;IAAC,+DAAI;IAAA,4DAAW;IAC5E;IAAA,4DAAK;;;IAGP,oEAA4D;;;IAC5D,oEAAiE;;;IACjE,yEACE;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAC/C;IAAA,4DAAK;;;ADlCN,MAAM,mBAAmB;IAsB9B,YAAoB,aAA0B,EAAU,KAAa,EAAU,SAAsB,EAAS,UAAsB;QAAhH,kBAAa,GAAb,aAAa,CAAa;QAAU,UAAK,GAAL,KAAK,CAAQ;QAAU,cAAS,GAAT,SAAS,CAAa;QAAS,eAAU,GAAV,UAAU,CAAY;QArBpI,YAAO,GAAC,KAAK,CAAC;QACd,qBAAgB,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QAGpD,kBAAa,GAAG,KAAK,CAAC;QActB,qBAAgB,GAAa,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,CAAC,CAAC;QAMzE,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE;YAC5D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC;IACJ,CAAC;IACD,QAAQ;QAEN,IAAI,CAAC,gBAAgB,GAAG,IAAI,wDAAS,CAAC;YACpC,YAAY,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAC,yDAAU,CAAC,QAAQ,CAAC;SACxD,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,GAAC,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACzE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;YAChD,IAAG,IAAI,CAAC,aAAa,CAAC,sBAAsB,EAAC;gBAC3C,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC9D,qBAAqB;gBACrB,uBAAuB;gBACvB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;gBAClC,OAAO;aACR;YACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,YAAY,CAAC;YACvD,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YACnF,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACnC,CAAC,CAAC,CAAC;QAGH,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAI3B,CAAC;IAGD,iBAAiB;QACf,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC,SAAS,CAAC,CAAC,GAAiB,EAAE,EAAE;YACrE,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;YACzB,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBACpB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;YACxF,CAAC,CAAC,CAAC;QACL,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;YACX,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;gBACpC,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,CAAC,aAAa,CAAC;gBAC3B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CACA,CAAC;IACJ,CAAC;IAKD,sBAAsB,CAAC,kBAAkB;QACvC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,OAAO,GAAC,IAAI,CAAC;QAClB,IAAI,CAAC,aAAa,CAAC,4BAA4B,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,CAAC,GAAe,EAAE,EAAE;YAChG,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;YACrB,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACzD,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACnC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,UAAU,CAAC,kBAAkB;QAC3B,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACrF,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAE,KAAK,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,QAAQ,CAAC,QAAQ;QAEf,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACrF,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC;QACnC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC9B,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,OAAO,GAAC,KAAK,CAAC;QACnB,wCAAwC;IAC1C,CAAC;IAED,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAC3D;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAEzD,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SAElC;IACH,CAAC;IAED,WAAW;QACT,IAAI,CAAC,aAAa,CAAC,sBAAsB,GAAC,KAAK,CAAC;QAChD,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;IACpC,CAAC;;sFAhIU,mBAAmB;mGAAnB,mBAAmB;kEAcnB,iEAAkB;wEAClB,wEAAY;kEACZ,8DAAO;;;;;;;QCxCpB,8EACE;QAAA;QAAA,mFACE;QAAA;QAAA,0EACE;QAAA;QAAA,yEACE;QAAA;QAAA,yEACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,sEAAU;QAAA,2EAA2B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QACpE;QAAA,iFAEE;QADA,oKAAmB,mEAA2D,IAAC;QAC/E;QAAA,iFAAqB;QAAA,4EAAgB;QAAA,4DAAa;QAClD;QAAA,+HACE;QACJ;QAAA,4DAAa;QACf;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,2EACE;QAAA;QAAA,8EACE;QADyB,4IAAS,YAAQ,IAAC;QAC3C;QAAA,4EAAU;QAAA,iEAAK;QAAA,4DAAW;QAC1B,+FACF;QAAA,4DAAS;QACT;QAAA,8EAC4D;QAA1D,4IAAS,uDAA+C,IAAC;QAAC,+DAAG;QAAA,4DAAS;QAC1E;QAAA,4DAAM;QACR;QAAA,4DAAM;QACR;QAAA,4DAAM;QACR;QAAA,4DAAO;QAET;QAAA,4DAAmB;QACrB;QAAA,4DAAW;QAEX;QAAA,gFACE;QAAA;QAAA,oFACE;QAAA;QAAA,2EACE;QAAA;QAAA,6EACE;QAAA;QAAA,6EACE;QAAA;QAAA,gHAA+E;QAC/E;QAAA,gHAAqC;QAEvC;QAAA,qEAAe;QAEf;QAAA,6EACE;QAAA;QAAA,gHAA+E;QAE/E;QAAA,gHAAqC;QACvC;QAAA,qEAAe;QAEf;QAAA,6EACE;QAAA;QAAA,gHAAuC;QACvC;QAAA,gHACE;QAEJ;QAAA,qEAAe;QAEf;QAAA,gHAAuD;QACvD;QAAA,gHAA4D;QAC5D;QAAA,gHACE;QAEJ;QAAA,4DAAQ;QACV;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,oFAA2E;QAC7E;QAAA,4DAAM;QACR;QAAA,4DAAmB;QACrB;QAAA,4DAAW;;QA/DD,0DAA8B;QAA9B,2FAA8B;QAGd,0DAA+B;QAA/B,uGAA+B;QAK/B,2DAAmC;QAAnC,uFAAmC;QAWK,2DAAmB;QAAnB,kFAAmB;QAU3E,0DAAqB;QAArB,kFAAqB;QAGR,0DAAyB;QAAzB,sFAAyB;QAoBrB,2DAAmC;QAAnC,iGAAmC;QAC1C,0DAA+C;QAA/C,kGAA+C;QAOnC,0DAAgC;QAAhC,kJAAgC;;6FDtCnD,mBAAmB;cAL/B,uDAAS;eAAC;gBACT,QAAQ,EAAE,iBAAiB;gBAC3B,WAAW,EAAE,8BAA8B;gBAC3C,SAAS,EAAE,CAAC,8BAA8B,CAAC;aAC5C;gXAegC,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;YACc,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACrB,IAAI;kBAAvB,uDAAS;mBAAC,8DAAO;;;;;;;;;;;;;;AExCpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AAC2B;AAGI;AAC9C;AAG8B;;;;;;;;;;;;;;;;ICEhD,iFACI;IAAA,uDAAc;IAAA,4DAAa;;;IADiB,iFAAoB;IAChE,0DAAc;IAAd,0HAAc;;;IAEtB,4EACI;IAAA,2IACJ;IAAA,4DAAY;;;IAQR,iFACI;IAAA,uDACJ;IAAA,4DAAa;;;IAF2C,wFAA2B;IAC/E,0DACJ;IADI,+JACJ;;;IAEJ,4EACI;IAAA,wIACJ;IAAA,4DAAY;;;IAUR,iFACI;IAAA,uDACJ;IAAA,4DAAa;;;IAFuC,sFAAyB;IACzE,0DACJ;IADI,6JACJ;;;IASA,iFACI;IAAA,uDACJ;IAAA,4DAAa;;;IAFyC,uFAA0B;IAC5E,0DACJ;IADI,8JACJ;;;IAnBhB,yEACI;IAAA;IAAA,yEACI;IAAA;IAAA,oFACI;IAAA;IAAA,4EAAY;IAAA,sEAAU;IAAA,4DAAY;IAClC;IAAA,iFACI;IAAA;IAAA,iFAAqB;IAAA,4EAAgB;IAAA,4DAAa;IAClD;IAAA,iIACI;IAER;IAAA,4DAAa;IACjB;IAAA,4DAAiB;IACrB;IAAA,4DAAM;IACN;IAAA,0EACI;IAAA;IAAA,qFACI;IAAA;IAAA,6EAAY;IAAA,wEAAW;IAAA,4DAAY;IACnC;IAAA,kFACI;IAAA;IAAA,iFAAqB;IAAA,6EAAiB;IAAA,4DAAa;IACnD;IAAA,iIACI;IAER;IAAA,4DAAa;IACjB;IAAA,4DAAiB;IACrB;IAAA,4DAAM;IACV;IAAA,4DAAM;;;IArBkB,0DAA+B;IAA/B,0GAA+B;IAE/B,0DAAwB;IAAxB,wFAAwB;IAEpB,0DAAuC;IAAvC,yFAAuC;IAO3C,0DAA+B;IAA/B,0GAA+B;IAE/B,0DAAwB;IAAxB,wFAAwB;IAEpB,0DAAyC;IAAzC,0FAAyC;;;IAYzD,4EACI;IAAA,6IACJ;IAAA,4DAAY;;;IACZ,4EACI;IAAA,6IACJ;IAAA,4DAAY;;;IAQhB,4EACI;IAAA,0IACJ;IAAA,4DAAY;;;IACZ,4EACI;IAAA,qIACJ;IAAA,4DAAY;;;IAKZ,4EACI;IAAA,iIACJ;IAAA,4DAAY;;;IACZ,4EACI;IAAA,sIACJ;IAAA,4DAAY;;ADrEzB,MAAM,cAAc;IAuBzB,YAAoB,aAA0B,EAAU,SAAsB,EAAU,KAAa;QAAjF,kBAAa,GAAb,aAAa,CAAa;QAAU,cAAS,GAAT,SAAS,CAAa;QAAU,UAAK,GAAL,KAAK,CAAQ;QArBrG,qBAAgB,GAAG,2DAAW,CAAC,oBAAoB,CAAC;QAGpD,gBAAW,GAAC,KAAK,CAAC;QAClB,gBAAW,GAAG,KAAK,CAAC;QACpB,aAAQ,GAAW,EAAE,CAAC;QACtB,iBAAY,GAAG,8EAAY,CAAC;QAE5B,oBAAe,GAAiB,EAAE,CAAC;QACnC,kBAAa,GAAiB,EAAE,CAAC;QACjC,mBAAc,GAAiB,EAAE,CAAC;QAElC,kBAAa,GAAG,KAAK,CAAC;QACtB,sBAAiB,GAAY,KAAK,CAAC;QACnC,8BAAyB,GAAY,KAAK,CAAC;QAC3C,2BAAsB,GAAY,KAAK,CAAC;QAExC,mBAAc,GAAG,IAAI,wFAAQ,EAAE,CAAC;IAIyE,CAAC;IAE1G,QAAQ;QAEN,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;QAEvB,IAAI,CAAC,OAAO,GAAG,IAAI,wDAAS,CAAC;YAC3B,YAAY,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC1D,QAAQ,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAC/B,QAAQ,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACtD,QAAQ,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAC/B,cAAc,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACrC,QAAQ,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAC/B,eAAe,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,yDAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7F,sBAAsB,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,yDAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YACnG,mBAAmB,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,yDAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YAChG,YAAY,EAAE,IAAI,0DAAW,CAAC,CAAC,CAAC;SACjC,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAE3C,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,IAAI,IAAI,EAAE;gBACvC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBAC9B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;aACzB;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACrD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAGD,iBAAiB;QACf,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC,SAAS,CAAC,CAAC,GAAiB,EAAE,EAAE;YACrE,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;YACzB,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBACpB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;YACxF,CAAC,CAAC,CAAC;YAEH,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;gBACnB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC5D,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;gBAC9B,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aAC9C;QACH,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;YACX,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE;gBACzC,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,0BAA0B,CAAC,YAAoB;QAC7C,IAAI,MAAM,GAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,YAAY,CAAC,CAAC;QACnE,IAAI,MAAM;YACP,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC;QACvC,IAAI,CAAC,aAAa,CAAC,sBAAsB,GAAC,IAAI,CAAC,cAAc;QAC5D,IAAI,YAAY,IAAI,CAAC,EAAE;YACrB,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;SACpC;;YAEC,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;QACtC,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC,SAAS,CAC/D,CAAC,uBAAwC,EAAE,EAAE;YAC3C,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAC;YACpC,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAC;YACpC,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAC;YACpC,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;YAC1B,uBAAuB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAChD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;YACpF,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,uBAAuB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBACjD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;YAClF,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;YACzB,uBAAuB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBACjD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;YACnF,CAAC,CAAC,CAAC;QACL,CAAC,CACF,CAAC;IACJ,CAAC;IAED,SAAS;QAEP,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,EAAE;YAC9B,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,sBAAsB,IAAI,IAAI;gBACnD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,sBAAsB,GAAG,EAAE,CAAC;YACjD,OAAO;YACP,oHAAoH;YACpH,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,mBAAmB,IAAI,IAAI;gBAChD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,mBAAmB,GAAG,EAAE,CAAC;YAC9C,OAAO;YACP,8GAA8G;YAC9G,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,IAAI,KAAK,EAAE;gBACxC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;oBAClE,IAAI,GAAG,EAAE;wBACP,IAAI,CAAC,aAAa,CAAC,sBAAsB,GAAG,IAAI,CAAC;wBACjD,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,IAAI,KAAK,EAAE;4BACxC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iCAAiC,EAAE,GAAG,EAAE;gCAC1D,QAAQ,EAAE,IAAI;gCACd,kBAAkB,EAAE,OAAO;gCAC3B,gBAAgB,EAAE,KAAK;6BACxB,CAAC,CAAC;4BACH,IAAI,CAAC,MAAM,EAAE,CAAC;yBACf;wBACD,IAAI,CAAC,aAAa,CAAC,sBAAsB,GAAC,IAAI,CAAC;wBAC/C,IAAI,CAAC,WAAW,GAAC,IAAI,CAAC;wBACtB,UAAU,CAAC,GAAG,EAAE;4BACd,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;wBAC5C,CAAC,EAAE,IAAI,CAAC,CAAC;qBAEV;yBACI,IAAI,GAAG,IAAI,IAAI,EAAE;wBACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE;4BAC7C,QAAQ,EAAE,IAAI;4BACd,UAAU,EAAE,CAAC,aAAa,CAAC;4BAC3B,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;wBACH,IAAI,CAAC,MAAM,EAAE,CAAC;qBACf;yBACI;wBACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,qBAAqB,EAAE,GAAG,EAAE;4BAC9C,QAAQ,EAAE,IAAI;4BACd,UAAU,EAAE,CAAC,aAAa,CAAC;4BAC3B,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;wBAEH,IAAI,CAAC,MAAM,EAAE,CAAC;qBACf;gBACH,CAAC,EACC,KAAK,CAAC,EAAE;oBACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;wBACpC,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,aAAa,CAAC;wBAC3B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;gBAEL,CAAC,CAAC,CAAC;aACN;iBACI;gBACH,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;gBAEzB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;oBAChE,IAAI,GAAG,EAAE;wBACP,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE;4BAC5D,QAAQ,EAAE,IAAI;4BACd,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;wBACH,IAAI,CAAC,MAAM,EAAE,CAAC;wBACd,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;qBAC3C;yBACI;wBACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,yBAAyB,EAAE,GAAG,EAAE;4BAClD,QAAQ,EAAE,IAAI;4BACd,UAAU,EAAE,CAAC,aAAa,CAAC;4BAC3B,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;wBAEH,IAAI,CAAC,MAAM,EAAE,CAAC;qBACf;gBACH,CAAC,EACC,KAAK,CAAC,EAAE;oBACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;wBACpC,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,aAAa,CAAC;wBAC3B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;gBAEL,CAAC,CAAC,CAAC;gBACL,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,KAAK,CAAC;aACrC;SAEF;IAEH,CAAC;IAID,cAAc;QACZ,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,WAAW,GAAC,IAAI,CAAC;QACtB,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,KAAK,CAAC;QACpC,IAAI,CAAC,aAAa,CAAC,sBAAsB,GAAC,IAAI,CAAC;QAC/C,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM;QACJ,IAAI,IAAI,CAAC,QAAQ,IAAI,QAAQ,EAAE;YAC7B,IAAI,CAAC,aAAa,CAAC,sBAAsB,GAAG,IAAI,CAAC;YACjD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;YAC9C,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,KAAK,EAAE,CAAC;YACrD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;SACnD;aACI;YACH,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;YACvC,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;YACpC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;YACvB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,IAAI,CAAC,wBAAwB,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YACxD,IAAI,CAAC,wBAAwB,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YACxD,IAAI,CAAC,wBAAwB,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YACxD,IAAI,CAAC,wBAAwB,CAAC,iBAAiB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAC/D,IAAI,CAAC,wBAAwB,CAAC,wBAAwB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YACtE,IAAI,CAAC,wBAAwB,CAAC,qBAAqB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SAEnE;IAGJ,CAAC;IACD,wBAAwB,CAAC,aAAqB,EAAE,qBAAgC;QAC9E,qBAAqB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC7D,qBAAqB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9D,qBAAqB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,eAAe,EAAE,CAAC;QAChE,qBAAqB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,sBAAsB,EAAE,CAAC;IACzE,CAAC;IACD,WAAW;QACT,IAAG,IAAI,CAAC,WAAW;YAChB,OAAM;aACL;YAAC,IAAI,CAAC,aAAa,CAAC,sBAAsB,GAAC,KAAK,CAAC;YACrD,IAAI,CAAC,MAAM,EAAE,CAAC;SACb;IACH,CAAC;;4EApQU,cAAc;8FAAd,cAAc;kEAqBd,iEAAkB;;;;;QC1C/B,2EACI;QAAA;QAAA,mFACI;QAAA;QAAA,0EACI;QAAA;QAAA,yEACI;QAAA;QAAA,yEACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAY;QAAA,wEAAW;QAAA,2EAA2B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QACtE;QAAA,iFAEI;QADA,mKAAiB,4CAAwC;QACzD;QAAA,iFAAqB;QAAA,4EAAgB;QAAA,4DAAa;QAClD;QAAA,0HACI;QACR;QAAA,4DAAa;QACb;QAAA,wHACI;QAER;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAY;QAAA,0EAAa;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QAAC;QAAA,4DAAY;QACxE;QAAA,iFACI;QAAA;QAAA,iFAAqB;QAAA,+EAAmB;QAAA,4DAAa;QACrD;QAAA,0HACI;QAER;QAAA,4DAAa;QACb;QAAA,wHACI;QAER;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACV;QAAA,4DAAM;QACN;QAAA,8GACI;QAuBJ;QAAA,0EACI;QAAA;QAAA,2EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,4EAAgB;QAAA,4DAAY;QACvC;QAAA,2EAA8E;QAC9E;QAAA,wHACI;QAEJ;QAAA,wHACI;QAER;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACV;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,2EACI;QAAA;QAAA,iFACoG;QACpG;QAAA,wHACI;QAEJ;QAAA,wHACI;QAER;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,iFACmF;QACnF;QAAA,wHACI;QAEJ;QAAA,wHACI;QAER;QAAA,4DAAM;QACV;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,2EACI;QAAA;QAAA,2EACI;QAAA;QAAA,2EACI;QAAA;QAAA,wEACI;QAAA;QAAA,+EACI;QADuB,wIAAS,oBAAgB,IAAC;QACjD;QAAA,6EAAU;QAAA,uEAAU;QAAA,4DAAW;QAC/B,yIACJ;QAAA,4DAAS;QACb;QAAA,4DAAM;QACN;QAAA,wEACI;QAAA;QAAA,+EACI;QADuB,wIAAS,YAAQ,IAAC;QACzC;QAAA,6EAAU;QAAA,kEAAK;QAAA,4DAAW;QAC1B,0IACJ;QAAA,4DAAS;QACT;QAAA,+EACoB;QADE,wIAAS,eAAW,IAAC;QACvB,yDAAY;QAAA,4DAAS;QAC7C;QAAA,4DAAM;QACV;QAAA,4DAAM;QACV;QAAA,4DAAM;QACV;QAAA,4DAAM;QACV;QAAA,4DAAM;QACV;QAAA,4DAAO;QACX;QAAA,4DAAmB;QACvB;QAAA,4DAAW;;QAnHG,0DAAqB;QAArB,kFAAqB;QAGC,0DAA+B;QAA/B,uGAA+B;QAE/B,0DAA4B;QAA5B,2FAA4B;QAGxB,0DAAmC;QAAnC,uFAAmC;QAGxC,0DAAwD;QAAxD,sHAAwD;QAMvD,0DAA+B;QAA/B,uGAA+B;QAE/B,0DAAwB;QAAxB,qFAAwB;QAEpB,0DAA2C;QAA3C,wFAA2C;QAIhD,0DAAoD;QAApD,kHAAoD;QAM1D,0DAA8B;QAA9B,4FAA8B;QA0BvB,0DAA+B;QAA/B,uGAA+B;QAGhC,0DAA4D;QAA5D,0HAA4D;QAG5D,0DAA4D;QAA5D,0HAA4D;QAQ3D,0DAAoE;QAApE,6HAAoE;QAEzE,0DAAmE;QAAnE,iIAAmE;QAGnE,0DAAmE;QAAnE,iIAAmE;QAK9D,0DAA+C;QAA/C,wGAA+C;QAEpD,0DAAgE;QAAhE,8HAAgE;QAGhE,0DAAgE;QAAhE,8HAAgE;QAqB3C,2DAAY;QAAZ,6EAAY;;6FDxFnD,cAAc;cAL1B,uDAAS;eAAC;gBACT,QAAQ,EAAE,WAAW;gBACrB,WAAW,EAAE,wBAAwB;gBACrC,SAAS,EAAE,CAAC,wBAAwB,CAAC;aACtC;uQAsBgC,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;;;;;;;;;;;;;;AE1C/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AACJ;AAEK;AAC0B;AAG7B;AACV;AACY;AACf;;;;;;;;;;;;;;;;;;ICDlC,4EACE;IAAA,gHACF;IAAA,4DAAY;;;IACZ,4EACE;IAAA,mHACF;IAAA,4DAAY;;;IACZ,4EACE;IAAA,4GACF;IAAA,4DAAY;;;IAwBd,yEAAgF;IAAA,2EAAe;IAAA,4DAAK;;;IACpG,yEAA0C;IAAA,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,oGAAyB;;;IAGnE,yEAAuC;IAAA,iEAAK;IAAA,4DAAK;;;;IACjD,yEACE;IAAA;IAAA,+EAAuE;IAArC,mXAAoC;IAAC,+DAAI;IAAA,4DAAW;IACxF;IAAA,4DAAK;;;IAEP,oEAA4D;;;IAC5D,oEAAkE;;;IAClE,yEACE;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAC/C;IAAA,4DAAK;;;ADlCN,MAAM,kBAAkB;IAwB7B,YAAoB,iBAAmC,EAAU,SAAsB,EAAS,UAAsB;QAAlG,sBAAiB,GAAjB,iBAAiB,CAAkB;QAAU,cAAS,GAAT,SAAS,CAAa;QAAS,eAAU,GAAV,UAAU,CAAY;QAvBtH,qBAAgB,GAAG,2DAAW,CAAC,oBAAoB,CAAC;QAEpD,aAAQ,GAAW,EAAE,CAAC;QACtB,kBAAa,GAAY,KAAK,CAAC;QAC/B,kBAAa,GAAG,KAAK,CAAC;QAGtB,iBAAY,GAAa,EAAE,CAAC;QAC5B,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QAU9C,qBAAgB,GAAa,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAMlD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;QAKhD,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YACtD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAE7D,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAGnC,CAAC,CAAC,CAAC;QAGH,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE;YAC5D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC;IACJ,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,gBAAgB,GAAG,IAAI,wDAAS,CAAC;YACpC,UAAU,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE;gBAChC,yDAAU,CAAC,QAAQ;gBACnB,yDAAU,CAAC,SAAS,CAAC,GAAG,CAAC;gBACzB,yDAAU,CAAC,SAAS,CAAC,CAAC,CAAC;aACxB,CAAC;SACH,CAAC,CAAC;QACH,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACpD,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,IAAI,IAAI,EAAE;gBAC3C,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACvC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;aAC1B;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;QACvB,IAAI,CAAC,MAAM,EAAE,CAAC;QAEd,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YACtD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC7D,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,EAAE,CAAC;IAGxB,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,CAAC;IAC1C,CAAC;IAED,eAAe,CAAC,aAAa;QAC3B,IAAI,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvC,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC3D,CAAC;IAGD,YAAY;QACV,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE;YAC/B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAI,SAAS,GAAG,IAAI,iEAAS,EAAE,CAAC;YAChC,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,UAAU,CAAC;YAC9D,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,IAAI,IAAI,EAAE;gBAC3C,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC;aAC1E;YACD,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,IAAI,IAAI,EAAE;gBACvC,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;oBAChE,IAAI,GAAG,EAAE;wBACP,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,CAAC;wBACxC,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,IAAI,KAAK;4BAC1C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,sCAAsC,EAAE,EAAE,EAAE;gCAC9D,QAAQ,EAAE,IAAI;gCACd,kBAAkB,EAAE,OAAO;gCAC3B,gBAAgB,EAAE,KAAK;6BACxB,CAAC,CAAC;;4BAEH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,wCAAwC,EAAE,EAAE,EAAE;gCAChE,QAAQ,EAAE,IAAI;gCACd,kBAAkB,EAAE,OAAO;gCAC3B,gBAAgB,EAAE,KAAK;6BACxB,CAAC,CAAC;wBACL,IAAI,CAAC,MAAM,EAAE,CAAC;qBACf;yBACI;wBACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,EAAE;4BAClD,QAAQ,EAAE,IAAI;4BACd,UAAU,EAAE,CAAC,aAAa,CAAC;4BAC3B,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;wBACH,IAAI,CAAC,MAAM,EAAE,CAAC;qBACf;gBACH,CAAC,EACC,KAAK,CAAC,EAAE;oBACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE;wBACnC,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,aAAa,CAAC;wBAC3B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;aAEN;SAEF;IACH,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC9B,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,iBAAiB,CAAC,QAAQ,GAAG,KAAK,CAAC;QACxC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,iBAAiB,CAAC,KAAU;QAC1B,IAAI,CAAS,CAAC;QACd,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,iDAAiD;QACrE,OAAO,CACL,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;YAClB,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC;YACnB,CAAC,IAAI,CAAC;YACN,CAAC,IAAI,EAAE;YACP,CAAC,IAAI,EAAE;YACP,CAAC,IAAI,EAAE;YACP,CAAC,IAAI,EAAE,CACR,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAC3D;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC7D,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACnC,CAAC,EAAE,IAAI,CAAC,CAAC;SACV;IACH,CAAC;;oFAxKU,kBAAkB;kGAAlB,kBAAkB;kEAclB,iEAAkB;wEAClB,wEAAY;wEACZ,8DAAO;;;;;;;QCpCpB,8EACE;QAAA;QAAA,mFACE;QAAA;QAAA,0EACE;QAAA;QAAA,yEACE;QAAA;QAAA,yEACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,4EAAgB;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QAAA,4DAAY;QACzE;QAAA,uEAEA;QAAA;QAAA,4HACE;QAEF;QAAA,4HACE;QAEF;QAAA,4HACE;QAEJ;QAAA,4DAAiB;QAEnB;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,0EACE;QAAA;QAAA,8EACE;QADyB,2IAAS,YAAQ,IAAC;QAC3C;QAAA,4EAAU;QAAA,iEAAK;QAAA,4DAAW;QAAC,gFAC7B;QAAA,4DAAS;QACT;QAAA,8EACE;QADmD,2IAAS,kBAAc,IAAC;QAC3E,wDACF;QAAA,4DAAS;QACX;QAAA,4DAAM;QACR;QAAA,4DAAM;QACR;QAAA,4DAAM;QACR;QAAA,4DAAO;QACT;QAAA,4DAAmB;QACrB;QAAA,4DAAW;QAEX;QAAA,4EACE;QAAA;QAAA,oFACE;QAAA;QAAA,2EACE;QAAA;QAAA,6EACE;QAAA;QAAA,6EACE;QAAA;QAAA,+GAAgF;QAChF;QAAA,+GAA0C;QAC5C;QAAA,qEAAe;QACf;QAAA,6EACE;QAAA;QAAA,+GAAuC;QACvC;QAAA,+GACE;QAEJ;QAAA,qEAAe;QACf;QAAA,+GAAuD;QACvD;QAAA,+GAA6D;QAC7D;QAAA,+GACE;QAEJ;QAAA,4DAAQ;QACV;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,gFAAqF;QACvF;QAAA,4DAAM;QACR;QAAA,4DAAmB;QACrB;QAAA,4DAAW;;QA3DD,0DAA8B;QAA9B,2FAA8B;QAGd,0DAA+B;QAA/B,uGAA+B;QAIlC,0DAA+D;QAA/D,6HAA+D;QAG/D,0DAAgE;QAAhE,8HAAgE;QAGhE,0DAAgE;QAAhE,8HAAgE;QAYzE,2DACF;QADE,oHACF;QAWW,2DAAyB;QAAzB,sFAAyB;QAWrB,2DAAmC;QAAnC,iGAAmC;QAC1C,0DAAgD;QAAhD,kGAAgD;QAO1B,0DAAgC;QAAhC,mJAAgC;;6FDtC7D,kBAAkB;cAL9B,uDAAS;eAAC;gBACT,QAAQ,EAAE,eAAe;gBACzB,WAAW,EAAE,4BAA4B;gBACzC,SAAS,EAAE,CAAC,4BAA4B,CAAC;aAC1C;yTAegC,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;YACc,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACH,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AEpCtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AACA;AACA;AAC2B;AAC7B;AACV;AAKQ;;;;;;;;;;;;;;;;;;;;ICD3C,uEACE;IAAA,kGAAqB;IAAA,4DAAO;;;IAS9B,uEACE;IAAA,8GAAiC;IAAA,4DAAO;;;IAyB9C,yEACE;IAAA,sGACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,+HACF;;;IAGA,yEACE;IAAA,6GACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,kIACF;;;IAGA,yEACE;IAAA,yFACF;IAAA,4DAAK;;;;IACL,yEACE;IAAA;IAAA,+EAAgE;IAA9B,4WAA6B;IAAC,+DAAI;IAAA,4DAAW;IACjF;IAAA,4DAAK;;;IAEP,oEAA4D;;;IAC5D,oEAAiE;;;IACjE,yEACE;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAC/C;IAAA,4DAAK;;;ADvDN,MAAM,oBAAoB;IAY/B,YACU,UAA8B,EAC9B,SAAsB,EACvB,UAAsB,EACtB,KAAa;QAHZ,eAAU,GAAV,UAAU,CAAoB;QAC9B,cAAS,GAAT,SAAS,CAAa;QACvB,eAAU,GAAV,UAAU,CAAY;QACtB,UAAK,GAAL,KAAK,CAAQ;QAdtB,qBAAgB,GAAa;YAC3B,iBAAiB;YACjB,oBAAoB;YACpB,MAAM;SACP,CAAC;QAwBF,kBAAa,GAAG,KAAK,CAAC;QACtB,aAAQ,GAAG,EAAE,CAAC;QAEd,qBAAgB,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QAflD,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YACjD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC/D,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,EAAE;YAC9D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IAOD,QAAQ;QACN,IAAI,CAAC,cAAc,GAAG,IAAI,wDAAS,CAAC;YAClC,eAAe,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC7D,kBAAkB,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAChE,QAAQ,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;SAChC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YAEzC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,IAAI,EAAE;gBACpC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACrC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,OAAO,EAAE,CAAC;gBACrD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;aAC1B;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;QACvB,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC;IAElD,CAAC;IAED,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAC3D;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC/D,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SAClC;IACH,CAAC;IACD,KAAK;QACH,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;YACxB,QAAQ,EAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK;SACrD,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,MAAM,EAAE,CAAC;QACpD,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC;YACjD,QAAQ,EAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK;SACrD,CAAC,EAAE,CAAC,CAAC,CAAC;QACP,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,KAAK,CAAC;QACjC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC1C,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;IACzB,CAAC;IACD,UAAU,CAAC,OAAO;QAEhB,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,SAAS,GAAG,IAAI,qEAAW,EAAE,CAAC;QAElC,SAAS,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,eAAe,CAAC;QACtE,SAAS,CAAC,kBAAkB,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,kBAAkB,CAAC;QAC5E,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC;QACxD,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,IAAI,EAAE;YACpC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC;YACtE,SAAS,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,eAAe,CAAC;YAE9E,SAAS,CAAC,kBAAkB,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,kBAAkB,CAAC;YAC5E,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC;SACzD;QACD,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,IAAI,IAAI,EAAE;YACrC,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,SAAS,CACxD,CAAC,GAAG,EAAE,EAAE;gBACN,IAAI,GAAG,EAAE;oBACP,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC;oBACrC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,KAAK,EAAE;wBACrC,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,yCAAyC,EACzC,GAAG,EACH;4BACE,QAAQ,EAAE,IAAI;4BACd,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CACF,CAAC;wBACF,IAAI,CAAC,KAAK,EAAE,CAAC;qBACd;yBAAM;wBACL,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,2CAA2C,EAC3C,GAAG,EACH;4BACE,QAAQ,EAAE,IAAI;4BACd,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CACF,CAAC;wBACF,IAAI,CAAC,KAAK,EAAE,CAAC;qBACd;iBACF;qBAAM;oBACL,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,2BAA2B,EAAE,GAAG,EAAE;wBACpD,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,aAAa,CAAC;wBAC3B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBAEH,IAAI,CAAC,KAAK,EAAE,CAAC;iBACd;YACH,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;gBACR,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;oBACpC,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACL,CAAC,CACF,CAAC;SACH;IACH,CAAC;;wFApJU,oBAAoB;oGAApB,oBAAoB;kEAQpB,iEAAkB;wEAClB,wEAAY;wEACZ,8DAAO;;;;;;;QC3BpB,8EACE;QAAA;QAAA,mFACE;QAAA;QAAA,0EACE;QAAA;QAAA,yEACE;QAAA;QAAA,yEACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,6EAAiB;QAAA,2EAA2B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QAC3E;QAAA,uEACA;QAAA;QAAA,6EACE;QAAA;QAAA,oHACE;QACJ;QAAA,4DAAY;QACd;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,oFAAwB;QAAA,2EAA2B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QAClF;QAAA,uEACA;QAAA;QAAA,6EACE;QAAA;QAAA,oHACE;QACJ;QAAA,4DAAY;QACd;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,wFAAoG;QAAA,qEAAS;QAAA,4DAAmB;QAClI;QAAA,4DAAM;QACR;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,8EACE;QADyB,6IAAS,WAAO,IAAC;QAC1C;QAAA,4EAAU;QAAA,iEAAK;QAAA,4DAAW;QAAA,2EAC5B;QAAA,4DAAS;QACT;QAAA,8EACE;QADsC,6IAAS,uBAAmB,IAAC;QACnE,wDACF;QAAA,4DAAS;QACX;QAAA,4DAAM;QACR;QAAA,4DAAO;QACT;QAAA,4DAAmB;QACrB;QAAA,4DAAW;QAEX;QAAA,4EACE;QAAA;QAAA,oFACE;QAAA;QAAA,2EACE;QAAA;QAAA,6EACE;QAAA;QAAA,6EACE;QAAA;QAAA,iHACE;QAEF;QAAA,iHACE;QAEJ;QAAA,qEAAe;QACf;QAAA,6EACE;QAAA;QAAA,iHACE;QAEF;QAAA,iHACE;QAEJ;QAAA,qEAAe;QACf;QAAA,6EACE;QAAA;QAAA,iHACE;QAEF;QAAA,iHACE;QAEJ;QAAA,qEAAe;QACf;QAAA,iHAAuD;QACvD;QAAA,iHAA4D;QAC5D;QAAA,iHACE;QAEJ;QAAA,4DAAQ;QACV;QAAA,4DAAM;QACN;QAAA,4EACE;QAAA;QAAA,iFAAgE;QAClE;QAAA,4DAAM;QACR;QAAA,4DAAmB;QACrB;QAAA,4DAAW;;QA7ED,0DAA4B;QAA5B,yFAA4B;QAGZ,0DAAmC;QAAnC,uGAAmC;QAIzC,2DAAsD;QAAtD,kHAAsD;QAMhD,0DAAmC;QAAnC,uGAAmC;QAIzC,2DAAuD;QAAvD,qHAAuD;QAMJ,0DAAsC;QAAtC,4FAAsC;QAQnG,2DACF;QADE,4GACF;QASe,2DAAyB;QAAzB,sFAAyB;QAyBrB,2DAAmC;QAAnC,iGAAmC;QAC1C,0DAA+C;QAA/C,kGAA+C;QAO9C,0DAAgC;QAAhC,mJAAgC;;6FD3DxC,oBAAoB;cALhC,uDAAS;eAAC;gBACT,QAAQ,EAAE,kBAAkB;gBAC5B,WAAW,EAAE,+BAA+B;gBAC5C,SAAS,EAAE,CAAC,+BAA+B,CAAC;aAC7C;iXASgC,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;YACc,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACH,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AE3BtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AAC6C;AAC/C;AAEV;AACY;AACf;AAEuB;AAIrB;;;;;;;;;;;;;;;;;;;;;;ICFtC,6EAEE;IADmC,kUAAyB;IAC5D;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC5B;IAAA,4DAAS;;;IAGP,iFAEE;IAAA,gHACF;IAAA,4DAAa;;;IACb,iFACE;IAAA,uDACF;IAAA,4DAAa;;;;IAFD,mFAAmB;IAC7B,0DACF;IADE,0HACF;;;IAEF,4EACE;IAAA,6GACF;IAAA,4DAAY;;;IACZ,4EACE;IAAA,8HACF;IAAA,4DAAY;;;IAOZ,4EACE;IAAA,yGACF;IAAA,4DAAY;;;IACZ,4EACE;IAAA,+GACF;IAAA,4DAAY;;;IACZ,4EACE;IAAA,wGACF;IAAA,4DAAY;;;IASZ,4EACE;IAAA,+GACF;IAAA,4DAAY;;;IACZ,4EACE;IAAA,iHACF;IAAA,4DAAY;;;IAmBd,yEAAgF;IAAA,4EAAgB;IAAA,4DAAK;;;IACrG,yEAA0C;IAAA,uDAAgD;IAAA,4DAAK;;;IAArD,0DAAgD;IAAhD,iHAAgD;;;IAI1F,yEAAgF;IAAA,wEAAY;IAAA,4DAAK;;;IACjG,yEAA2C;IAAA,uDAA8B;IAAA,4DAAK;;;IAAnC,0DAA8B;IAA9B,yGAA8B;;;IAKzE,yEAAgF;IAAA,6EAAiB;IAAA,4DAAK;;;IACtG,yEAA2C;IAAA,uDAA2B;IAAA,4DAAK;;;IAAhC,0DAA2B;IAA3B,sGAA2B;;;IAItE,yEAAuC;IAAA,iEAAK;IAAA,4DAAK;;;;IACjD,yEACE;IAAA;IAAA,+EAAoF;IAArC,sXAAoC;IAAC,+DAAI;IAAA,4DAAW;IACrG;IAAA,4DAAK;;;IAGP,oEAA4D;;;IAC5D,oEAAkE;;;AD5EjE,MAAM,mBAAmB;IAoB9B,YAAoB,kBAAqC,EAAU,SAAsB,EAAS,UAAsB;QACtH,4BAA4B;QADV,uBAAkB,GAAlB,kBAAkB,CAAmB;QAAU,cAAS,GAAT,SAAS,CAAa;QAAS,eAAU,GAAV,UAAU,CAAY;QAlBxH,qBAAgB,GAAG,2DAAW,CAAC,oBAAoB,CAAC;QACpD,kBAAa,GAAG,KAAK,CAAC;QAGtB,qBAAgB,GAAa,CAAC,oBAAoB,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;QAM7F,aAAQ,GAAW,EAAE,CAAC;QAWpB,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YAExD,IAAI,CAAC,OAAO,CAAC,UAAU,KAAK;gBAC1B,IAAI,KAAK,CAAC,cAAc,IAAI,IAAI;oBAC9B,KAAK,CAAC,kBAAkB,GAAG,KAAK,CAAC,cAAc,CAAC,kBAAkB,CAAC;;oBAChE,KAAK,CAAC,kBAAkB,GAAG,EAAE,CAAC;YACrC,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC9D,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACnC,CAAC,CAAC,CAAC;QAIH,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE;YAC5D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IAGL,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,UAAU,CAAC,mBAAmB,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE;YACvD,IAAI,QAAQ,KAAK,oBAAoB,EAAE;gBACrC,OAAO,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC;aAC/C;iBAAM;gBACL,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC;aACvB;QACH,CAAC,CAAC;QACF,IAAI,CAAC,aAAa,GAAG,IAAI,wDAAS,CAAC;YACjC,gBAAgB,EAAE,IAAI,0DAAW,CAAC,IAAI,EACtC,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACtB,cAAc,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE;gBACpC,yDAAU,CAAC,QAAQ;gBACnB,yDAAU,CAAC,SAAS,CAAC,GAAG,CAAC;gBACzB,yDAAU,CAAC,SAAS,CAAC,CAAC,CAAC;aACxB,CAAC;YACF,WAAW,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,yDAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;SAC1F,CAAC,CAAC;QAEH,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YACxD,IAAI,CAAC,OAAO,CAAC,UAAU,KAAK;gBAC1B,IAAI,KAAK,CAAC,cAAc,IAAI,IAAI;oBAC9B,KAAK,CAAC,kBAAkB,GAAG,KAAK,CAAC,cAAc,CAAC,kBAAkB,CAAC;;oBAChE,KAAK,CAAC,kBAAkB,GAAG,EAAE,CAAC;YACrC,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC9D,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;QAEvB,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAEtD,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,IAAI,IAAI,EAAE;gBAC5C,wDAAwD;gBACxD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;gBAC/C,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACpC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,gBAAgB,CAAC,UAAU,CACrD,IAAI,CAAC,kBAAkB,CACxB,CAAC;gBACF,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;aAC1B;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,eAAe;QACb,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACnC,CAAC;IAED,iBAAiB;QAEf,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,CAAC,SAAS,CAAC,CAAC,GAAyB,EAAE,EAAE;YAElF,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;YAC7B,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBACpB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,kBAAkB,EAAE,KAAK,EAAE,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;YACvG,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,YAAY,CAAC,IAAI,CAClF,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAC5C,CAAC;QACJ,CAAC,EACC,CAAC,KAAK,EAAE,EAAE;YACR,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE;gBACnC,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,CAAC,aAAa,CAAC;gBAC3B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CACF,CAAC;IAEJ,CAAC;IAED,aAAa;QACX,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;IAED,cAAc;QACZ,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,IAAI,EAAE;YACpC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAI,UAAU,GAAG,IAAI,6EAAc,EAAE,CAAC;YAEtC,UAAU,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YACjF,UAAU,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC;YACpE,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC;YAC9D,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,IAAI,IAAI,EAAE;gBAC5C,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,KAAK,CAAC,YAAY,CAAC;gBACpF,UAAU,CAAC,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,KAAK,CAAC,gBAAgB,CAAC;aAC7F;YACD,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,IAAI,EAAE;gBACpC,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;oBACnE,IAAI,GAAG,IAAI,IAAI,EAAE;wBACf,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC;wBACxC,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,IAAI,KAAK,EAAE;4BAC7C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;gCAClE,QAAQ,EAAE,IAAI;gCACb,kBAAkB,EAAE,OAAO;gCAC5B,gBAAgB,EAAE,KAAK;6BACxB,CAAC,CAAC;4BACH,IAAI,CAAC,MAAM,EAAE,CAAC;yBAEf;6BACI;4BACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,2CAA2C,EAAE,GAAG,EAAE;gCACpE,QAAQ,EAAE,IAAI;gCACb,kBAAkB,EAAE,OAAO;gCAC5B,gBAAgB,EAAE,KAAK;6BACxB,CAAC,CAAC;4BACH,IAAI,CAAC,MAAM,EAAE,CAAC;yBACf;qBACF;yBACI;wBACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,6BAA6B,EAAE,GAAG,EAAE;4BACtD,QAAQ,EAAE,IAAI;4BACd,UAAU,EAAE,CAAC,aAAa,CAAC;4BAC3B,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;wBACH,IAAI,CAAC,MAAM,EAAE,CAAC;qBACf;gBACH,CAAC,EACC,KAAK,CAAC,EAAE;oBACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;wBACpC,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,aAAa,CAAC;wBAC3B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;gBAEL,CAAC,CAAC,CAAC;aACN;SACF;IACH,CAAC;IAGD,cAAc,CAAC,cAAc;QAC3B,IAAI,CAAC,kBAAkB,CAAC,QAAQ,GAAG,IAAI,CAAC;QACxC,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC5D,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC;YACvD,KAAK,EAAE,cAAc,CAAC,kBAAkB;YACxC,KAAK,EAAE,cAAc,CAAC,gBAAgB;SACvC,CAAC,CAAC;IAEL,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,kBAAkB,CAAC,QAAQ,GAAG,KAAK,CAAC;QACzC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAC3D;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC9D,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SAElC;IACH,CAAC;IAEO,eAAe,CAAC,KAAK;QAC3B,IAAI,WAAW,CAAC;QAChB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,WAAW,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;SACnC;aAAM,IAAI,KAAK,KAAK,IAAI,EAAE;YACzB,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC;SAC3B;aAAM;YACL,OAAO,IAAI,CAAC,kBAAkB,CAAC;SAChC;QAED,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAC/C,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CACjD,CAAC;IAEJ,CAAC;IAED,aAAa;QACX,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,SAAS,CAAC,QAAoB;QAE5B,OAAO,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1D,CAAC;;sFAlPU,mBAAmB;mGAAnB,mBAAmB;kEAgBnB,wEAAY;kEACZ,8DAAO;kEACP,iEAAkB;;;;;;;QC1C/B,8EACE;QAAA;QAAA,0EACE;QAAA;QAAA,yEACE;QAAA;QAAA,yEACE;QAAA;QAAA,oFACE;QAAA;QAAA,6EAAW;QAAA,4EAAgB;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QAAA,4DAAY;QACzE;QAAA,uEAIA;QAAA;QAAA,uHAEE;QAGF;QAAA,0FACE;QAAA;QAAA,gIAEE;QAEF;QAAA,gIACE;;QAEJ;QAAA,4DAAmB;QACnB;QAAA,8HACE;QAEF;QAAA,8HACE;QAEJ;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,uEAAW;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QAAA,4DAAY;QACpE;QAAA,wEACA;QAAA;QAAA,8HACE;QAEF;QAAA,8HACE;QAEF;QAAA,8HACE;QAEJ;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QAEN;QAAA,0EACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,mFAAuB;QAAA,4DAAY;QAC9C;QAAA,wEAEA;QAAA;QAAA,8HACE;QAEF;QAAA,8HACE;QAEJ;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QAEN;QAAA,2EACE;QAAA;QAAA,8EACE;QADyB,4IAAS,YAAQ,IAAC;QAC3C;QAAA,4EAAU;QAAA,iEAAK;QAAA,4DAAW;QAC1B,uFACF;QAAA,4DAAS;QACT;QAAA,8EAAgF;QAA3B,4IAAS,oBAAgB,IAAC;QAAC,wDAAY;QAAA,4DAAS;QACvG;QAAA,4DAAM;QACR;QAAA,4DAAM;QACR;QAAA,4DAAO;QAET;QAAA,4DAAW;QACX;QAAA,4EACE;QAAA;QAAA,2EACE;QAAA;QAAA,6EACE;QAAA;QAAA,6EACE;QAAA;QAAA,gHAAgF;QAChF;QAAA,gHAA0C;QAC5C;QAAA,qEAAe;QAEf;QAAA,6EACE;QAAA;QAAA,gHAAgF;QAChF;QAAA,kHAA2C;QAC7C;QAAA,qEAAe;QAGf;QAAA,8EACE;QAAA;QAAA,kHAAgF;QAChF;QAAA,kHAA2C;QAC7C;QAAA,qEAAe;QAEf;QAAA,8EACE;QAAA;QAAA,kHAAuC;QACvC;QAAA,kHACE;QAEJ;QAAA,qEAAe;QAEf;QAAA,kHAAuD;QACvD;QAAA,kHAA6D;QAC/D;QAAA,4DAAQ;QACV;QAAA,4DAAM;QACN;QAAA,4EACE;QAAA;QAAA,iFAAqE;QACvE;QAAA,4DAAM;QAER;QAAA,4DAAW;;;QA1GH,0DAA2B;QAA3B,wFAA2B;QAGX,0DAA+B;QAA/B,uGAA+B;QAEtC,0DAAiC;QAAjC,8FAAiC;QAIT,0DAA4C;QAA5C,0GAA4C;QAKjC,0DAAyB;QAAzB,sFAAyB;QAC3C,0DACkB;QADlB,gLACkB;QAGR,0DAAiD;QAAjD,4JAAiD;QAIxE,0DAAkE;QAAlE,gIAAkE;QAGlE,0DAAsE;QAAtE,oIAAsE;QAMnE,0DAA+B;QAA/B,uGAA+B;QAGlC,0DAAgE;QAAhE,8HAAgE;QAGhE,0DAAiE;QAAjE,+HAAiE;QAGjE,0DAAiE;QAAjE,+HAAiE;QAO9D,0DAA+B;QAA/B,uGAA+B;QAIlC,0DAA8D;QAA9D,4HAA8D;QAG9D,0DAA8D;QAA9D,4HAA8D;QAWK,2DAAY;QAAZ,6EAAY;QAQ/E,2DAAyB;QAAzB,sFAAyB;QAwBrB,2DAAmC;QAAnC,iGAAmC;QAC1C,0DAAgD;QAAhD,kGAAgD;QAI/C,0DAAqC;QAArC,mJAAqC;;6FDhF3C,mBAAmB;cAL/B,uDAAS;eAAC;gBACT,QAAQ,EAAE,iBAAiB;gBAC3B,WAAW,EAAE,8BAA8B;gBAC3C,SAAS,EAAE,CAAC,8BAA8B,CAAC;aAC5C;4TAiB6C,SAAS;kBAApD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;YACH,IAAI;kBAA1C,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;YACN,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;;;;;;;;;;;;;;AE1C/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AAC2B;AAC1C;AAIY;AACG;AACF;AACV;;;;;;;;;;;;;;;;;;ICCrC,iFACE;IAAA,uDAAkB;IAAA,4DAAa;;;IADuB,qFAAwB;IAC9E,0DAAkB;IAAlB,4GAAkB;;;IAEtB,4EACE;IAAA;IAAA,uEAAM;IAAA,sFAA2B;IAAA,4DAAO;IAC1C;IAAA,4DAAY;;;IAQV,iFACE;IAAA,uDAAoB;IAAA,4DAAa;;;IADmB,uFAA0B;IAC9E,0DAAoB;IAApB,8GAAoB;;;IAExB,4EACE;IAAA;IAAA,uEAAM;IAAA,kFAAuB;IAAA,4DAAO;IACtC;IAAA,4DAAY;;;IAUZ,4EACE;IAAA;IAAA,uEAAM;IAAA,4EAAiB;IAAA,4DAAO;IAChC;IAAA,4DAAY;;;IAQZ,4EACE;IAAA;IAAA,uEAAM;IAAA,qFAA0B;IAAA,4DAAO;IACzC;IAAA,4DAAY;;;IAmBd,yEAAgF;IAAA,4EAAgB;IAAA,4DAAK;;;IACrG,yEAAqC;IAAA,uDAA2C;IAAA,4DAAK;;;IAAhD,0DAA2C;IAA3C,4GAA2C;;;IAIhF,yEAAgF;IAAA,wEAAY;IAAA,4DAAK;;;IACjG,yEAAsC;IAAA,uDAAoC;IAAA,4DAAK;;;IAAzC,0DAAoC;IAApC,+GAAoC;;;IAI1E,yEAAgF;IAAA,iEAAK;IAAA,4DAAK;;;IAC1F,yEAAsC;IAAA,uDAAoB;IAAA,4DAAK;;;IAAzB,0DAAoB;IAApB,+FAAoB;;;IAI1D,yEAAgF;IAAA,6EAAiB;IAAA,4DAAK;;;IACtG,yEAAsC;IAAA,uDAA2B;IAAA,4DAAK;;;IAAhC,0DAA2B;IAA3B,sGAA2B;;;IAIjE,yEAAuC;IAAA,iEAAK;IAAA,4DAAK;;;;IACjD,yEACE;IAAA;IAAA,+EAA6D;IAA3B,mWAA0B;IAAC,+DAAI;IAAA,4DAAW;IAC9E;IAAA,4DAAK;;;IAGP,oEAA4D;;;IAC5D,oEAAkE;;;ADzEjE,MAAM,eAAe;IAsB1B,YAAoB,cAA6B,EAAU,SAAsB,EAAS,UAAsB;QAA5F,mBAAc,GAAd,cAAc,CAAe;QAAU,cAAS,GAAT,SAAS,CAAa;QAAS,eAAU,GAAV,UAAU,CAAY;QApBhH,qBAAgB,GAAG,2DAAW,CAAC,oBAAoB,CAAC;QAEpD,qBAAgB,GAAa,CAAC,oBAAoB,EAAE,gBAAgB,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,CAAC,CAAC;QAC/G,kBAAa,GAAG,KAAK,CAAC;QACtB,kBAAa,GAAG,IAAI,CAAC;QASrB,aAAQ,GAAW,EAAE,CAAC;QAQpB,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE;YAC5D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC;IAEJ,CAAC;IAED,QAAQ;QAEN,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;QAEvB,IAAI,CAAC,SAAS,GAAG,IAAI,wDAAS,CAAC;YAC7B,gBAAgB,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE;gBACtC,yDAAU,CAAC,QAAQ;aACpB,CAAC;YACF,YAAY,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE;gBAClC,yDAAU,CAAC,QAAQ;aACpB,CAAC;YACF,SAAS,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE;gBAC/B,yDAAU,CAAC,QAAQ;aACpB,CAAC;YACF,gBAAgB,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;SACxC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,EAAE,CAAC;QAEd,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAC9C,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE;gBACxD,IAAI,IAAI,CAAC,gBAAgB,GAAG,CAAC,EAAE;oBAC7B,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;oBACzB,IAAI,CAAC,cAAc,CAAC,6BAA6B,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,GAAgB,EAAE,EAAE;wBACtG,IAAI,GAAG,CAAC,MAAM,IAAI,IAAI,EAAE;4BACtB,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gCACd,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC;4BAC/E,CAAC,CAAC,CAAC;yBACJ;wBACD,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;wBAChC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;wBAC3C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;oBAC3B,CAAC,EACC,CAAC,KAAK,EAAE,EAAE;wBACR,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;4BACpC,QAAQ,EAAE,IAAI;4BACd,UAAU,EAAE,CAAC,aAAa,CAAC;4BAC3B,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;oBAEL,CAAC,CAAC,CAAC;iBACN;aAEF;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YAChD,IAAI,CAAC,OAAO,CAAC,UAAU,KAAK;gBAC1B,IAAI,KAAK,CAAC,cAAc,IAAI,IAAI;oBAC9B,KAAK,CAAC,kBAAkB,GAAG,KAAK,CAAC,cAAc,CAAC,kBAAkB,CAAC;;oBAChE,KAAK,CAAC,kBAAkB,GAAG,EAAE,CAAC;YACrC,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,UAAU,KAAK;gBAC1B,IAAI,KAAK,CAAC,UAAU,IAAI,IAAI;oBAC1B,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC;;oBACpD,KAAK,CAAC,cAAc,GAAG,EAAE,CAAC;YACjC,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC1D,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,EAAE,CAAC;IAEnB,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,CAAC,SAAS,CAAC,CAAC,GAAyB,EAAE,EAAE;YAC9E,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;YAC7B,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBACpB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,kBAAkB,EAAE,KAAK,EAAE,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;YACvG,CAAC,CAAC,CAAC;QACL,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;YACX,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;gBACpC,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,CAAC,aAAa,CAAC;gBAC3B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QAEL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,6BAA6B,CAAC,gBAAwB;QACpD,IAAI,gBAAgB,IAAI,CAAC,IAAI,gBAAgB,IAAI,IAAI,EAAE;YACrD,IAAI,CAAC,cAAc,CAAC,6BAA6B,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,GAAqB,EAAE,EAAE;gBACtG,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;gBACzB,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;oBACpB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,cAAc,EAAE,KAAK,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;gBAC3F,CAAC,CAAC,CAAC;YACL,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;gBACX,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;oBACpC,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YAEL,CAAC,CAAC,CAAC;SACJ;aACI;YACH,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;SAC1B;IACH,CAAC;IAED,SAAS;QACP,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE;IACjC,CAAC;IAED,iBAAiB,CAAC,KAAU;QAC1B,wFAAwF;QAExF,IAAI;QACJ,IAAI,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC/C,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE;YAChC,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACjD,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;YAC1B,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,yBAAyB,EACzB,GAAG,EACH;gBACE,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CACF,CAAC;SACH;IAEL,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,MAAM,GAAG,IAAI,kEAAS,EAAE,CAAC;QAC7B,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,gBAAgB,CAAC;QAChE,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC;QACxD,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC;QAClD,MAAM,CAAC,SAAS,GAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC;QAChD,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,gBAAgB,CAAC;QAChE,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,IAAI,IAAI,EAAE;YACxC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC;YAC9D,IAAI,CAAC,6BAA6B,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;YAC5D,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC;SACzE;QACD,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,EAAE;YAChC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;gBACvD,IAAI,GAAG,EAAE;oBACP,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC;oBAChC,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,IAAI,KAAK,EAAE;wBACzC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE;4BAC5D,QAAQ,EAAE,IAAI;4BACd,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;wBACH,IAAI,CAAC,MAAM,EAAE,CAAC;qBACf;yBAEI;wBACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,qCAAqC,EAAE,GAAG,EAAE;4BAC9D,QAAQ,EAAE,IAAI;4BACd,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;wBACH,IAAI,CAAC,MAAM,EAAE,CAAC;wBACd,UAAU,CAAC,GAAG,EAAE,CACd,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;qBAC1C;iBAEF;qBACI;oBACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uBAAuB,EAAE,GAAG,EAAE;wBAChD,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,aAAa,CAAC;wBAC3B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBAEH,IAAI,CAAC,MAAM,EAAE,CAAC;iBACf;YACH,CAAC,EACC,KAAK,CAAC,EAAE;gBACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;oBACpC,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YAEL,CAAC,CAAC,CAAC;SAEN;IACH,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,KAAK,CAAC;QACrC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,SAAS,CAAC,UAAU;QAClB,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAC;QACpC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAClD,CAAC;IAED,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAC3D;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC3D;QACD,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACnC,CAAC;;8EAvPU,eAAe;+FAAf,eAAe;wEAkBf,wEAAY;wEACZ,8DAAO;kEACP,iEAAkB;;;;;;;QC3C/B,8EAEE;QAAA;QAAA,0EACE;QAAA;QAAA,yEACE;QAAA;QAAA,yEACE;QAAA;QAAA,oFACE;QAAA;QAAA,6EAAW;QAAA,2EAAe;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QAAA,4DAAY;QACxE;QAAA,iFAEE;QAF8B,sKAAkB,+CAA2C;QAE3F;QAAA,iFAAqB;QAAA,kFAAsB;QAAA,4DAAa;QACxD;QAAA,2HACE;QACJ;QAAA,4DAAa;QACb;QAAA,yHACE;QAEJ;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,uEAAW;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QAAA,4DAAY;QACpE;QAAA,kFACE;QAAA;QAAA,iFAAqB;QAAA,8EAAkB;QAAA,4DAAa;QACpD;QAAA,2HACE;QACJ;QAAA,4DAAa;QACb;QAAA,yHACE;QAEJ;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACR;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,0EACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,iEAAK;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QAAA,4DAAY;QAC9D;QAAA,6EAEA;QADE,6IAAS,6BAAyB,IAAC;QADrC,4DAEA;QAAA;QAAA,yHACE;QAEJ;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,6EAAiB;QAAA,4DAAY;QACxC;QAAA,wEAEA;QAAA;QAAA,yHACE;QAEJ;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACR;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,2EACE;QAAA;QAAA,8EACE;QADyB,wIAAS,YAAQ,IAAC;QAC3C;QAAA,4EAAU;QAAA,iEAAK;QAAA,4DAAW;QAC1B,uFACF;QAAA,4DAAS;QACT;QAAA,8EAA2E;QAArB,wIAAS,cAAU,IAAC;QAAC,wDAAY;QAAA,4DAAS;QAClG;QAAA,4DAAM;QACR;QAAA,4DAAM;QACR;QAAA,4DAAO;QACT;QAAA,4DAAW;QACX;QAAA,4EACE;QAAA;QAAA,2EACE;QAAA;QAAA,8EACE;QAAA;QAAA,8EACE;QAAA;QAAA,8GAAgF;QAChF;QAAA,8GAAqC;QACvC;QAAA,qEAAe;QAEf;QAAA,8EACE;QAAA;QAAA,8GAAgF;QAChF;QAAA,8GAAsC;QACxC;QAAA,qEAAe;QAEf;QAAA,8EACE;QAAA;QAAA,8GAAgF;QAChF;QAAA,8GAAsC;QACxC;QAAA,qEAAe;QAEf;QAAA,8EACE;QAAA;QAAA,8GAAgF;QAChF;QAAA,8GAAsC;QACxC;QAAA,qEAAe;QAEf;QAAA,8EACE;QAAA;QAAA,8GAAuC;QACvC;QAAA,8GACE;QAEJ;QAAA,qEAAe;QAEf;QAAA,8GAAuD;QACvD;QAAA,8GAA6D;QAC/D;QAAA,4DAAQ;QACV;QAAA,4DAAM;QACN;QAAA,4EACE;QAAA;QAAA,iFAAwE;QAC1E;QAAA,4DAAM;QAER;QAAA,4DAAW;;QArGH,0DAAuB;QAAvB,oFAAuB;QAGP,0DAA+B;QAA/B,uGAA+B;QAEjC,0DAAmB;QAAnB,gFAAmB;QAGjB,0DAA2C;QAA3C,2FAA2C;QAG9C,0DAA8D;QAA9D,4HAA8D;QAM3D,0DAA+B;QAA/B,uGAA+B;QAEjC,0DAAmB;QAAnB,gFAAmB;QAEjB,0DAAyC;QAAzC,uFAAyC;QAG5C,0DAA0D;QAA1D,wHAA0D;QAQvD,0DAA+B;QAA/B,uGAA+B;QAIlC,0DAAyC;QAAzC,uGAAyC;QAMtC,0DAA+B;QAA/B,uGAA+B;QAIlC,0DAAgD;QAAhD,8GAAgD;QAYc,2DAAY;QAAZ,6EAAY;QAO1E,2DAAyB;QAAzB,sFAAyB;QA4BrB,2DAAmC;QAAnC,iGAAmC;QAC1C,0DAAgD;QAAhD,kGAAgD;QAI/C,0DAAwC;QAAxC,mJAAwC;;6FD7E9C,eAAe;cAL3B,uDAAS;eAAC;gBACT,QAAQ,EAAE,YAAY;gBACtB,WAAW,EAAE,yBAAyB;gBACtC,SAAS,EAAE,CAAC,yBAAyB,CAAC;aACvC;kTAmB4C,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACH,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACL,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;;;;;;;;;;;;;;AE3C/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AAC2B;AAE3B;AACF;AACV;AAEQ;AAEE;AACG;;;;;;;;;;;;;;;;;;ICDlD,4EACE;IAAA;IAAA,uEAAO;IAAA,oFAAwB;IAAA,4DAAO;IACxC;IAAA,4DAAY;;;IACZ,4EACE;IAAA,gHACF;IAAA,4DAAY;;;IACZ,4EACE;IAAA,4GACF;IAAA,4DAAY;;;IAwBd,yEAAgF;IAAA,4EAAgB;IAAA,4DAAK;;;IACrG,yEAA2C;IAAA,uDAA0B;IAAA,4DAAK;;;IAA/B,0DAA0B;IAA1B,qGAA0B;;;IAGrE,yEAAuC;IAAA,iEAAK;IAAA,4DAAK;;;;IACjD,yEACE;IAAA;IAAA,+EAAyE;IAAvC,uXAAsC;IAAC,+DAAI;IAAA,4DAAW;IAC1F;IAAA,4DAAK;;;IAEP,oEAA4D;;;IAC5D,oEAAkE;;;IAClE,yEACE;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAC/C;IAAA,4DAAK;;;ADpCN,MAAM,mBAAmB;IAkC9B,YAAoB,kBAAqC,EAAU,SAAsB,EAAS,UAAsB;QAApG,uBAAkB,GAAlB,kBAAkB,CAAmB;QAAU,cAAS,GAAT,SAAS,CAAa;QAAS,eAAU,GAAV,UAAU,CAAY;QA7BxH,qBAAgB,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QACpD,kBAAa,GAAG,KAAK,CAAC;QACtB,aAAQ,GAAW,EAAE,CAAC;QACtB,kBAAa,GAAY,KAAK,CAAC;QAG/B,iBAAY,GAAa,EAAE,CAAC;QAC5B,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QAiB9C,qBAAgB,GAAa,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAOlD,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YACxD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC9D,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE;YAC5D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC;IAGJ,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,iBAAiB,GAAG,IAAI,wDAAS,CAAC;YACrC,UAAU,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE;gBAChC,yDAAU,CAAC,QAAQ;gBACnB,yDAAU,CAAC,SAAS,CAAC,GAAG,CAAC;gBACzB,yDAAU,CAAC,SAAS,CAAC,CAAC,CAAC;aACxB,CAAC;SACH,CAAC,CAAC;QACH,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACtD,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,IAAI,IAAI,EAAE;gBAC5C,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACxC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;aAC1B;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;QACvB,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAI,CAAC,eAAe,EAAE,CAAC;IAEzB,CAAC;IAED,aAAa;QAEX,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE;YAChC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAI,UAAU,GAAG,IAAI,mEAAU,EAAE,CAAC;YAClC,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,UAAU,CAAC;YAChE,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,IAAI,IAAI,EAAE;gBAC5C,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC;aAC7E;YACD,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,IAAI,IAAI,EAAE;gBACxC,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;oBACnE,IAAI,GAAG,EAAE;wBACP,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,CAAC;wBAC1C,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,IAAI,KAAK;4BAC3C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uCAAuC,EAAE,EAAE,EAAE;gCAC/D,QAAQ,EAAE,IAAI;gCACd,kBAAkB,EAAE,OAAO;gCAC3B,gBAAgB,EAAE,KAAK;6BACxB,CAAC,CAAC;;4BAEH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,yCAAyC,EAAE,EAAE,EAAE;gCACjE,QAAQ,EAAE,IAAI;gCACd,kBAAkB,EAAE,OAAO;gCAC3B,gBAAgB,EAAE,KAAK;6BACxB,CAAC,CAAC;wBACL,IAAI,CAAC,MAAM,EAAE,CAAC;qBACf;yBACI;wBACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,2BAA2B,EAAE,EAAE,EAAE;4BACnD,QAAQ,EAAE,IAAI;4BACd,UAAU,EAAE,CAAC,aAAa,CAAC;4BAC3B,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;wBACH,IAAI,CAAC,MAAM,EAAE,CAAC;qBACf;gBACH,CAAC,EACC,KAAK,CAAC,EAAE;oBAEN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE;wBACnC,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,aAAa,CAAC;wBAC3B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;aAEN;SACF;IACH,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;QAC/B,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,kBAAkB,CAAC,QAAQ,GAAG,KAAK,CAAC;QACzC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,iBAAiB,CAAC,KAAU;QAC1B,IAAI,CAAS,CAAC;QACd,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,iDAAiD;QACrE,OAAO,CACL,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;YAClB,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC;YACnB,CAAC,IAAI,CAAC;YACN,CAAC,IAAI,EAAE;YACP,CAAC,IAAI,EAAE;YACP,CAAC,IAAI,EAAE;YACP,CAAC,IAAI,EAAE,CACR,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAC3D;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC9D,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SAClC;IACH,CAAC;IAID,eAAe;QACb,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,CAAC;IAC5C,CAAC;IAED,gBAAgB,CAAC,cAAc;QAC7B,IAAI,CAAC,kBAAkB,CAAC,QAAQ,GAAG,IAAI,CAAC;QACxC,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC9D,CAAC;;sFAnKU,mBAAmB;mGAAnB,mBAAmB;kEAqBnB,iEAAkB;wEAClB,wEAAY;wEACZ,8DAAO;;;;;;;QCzCpB,8EACE;QAAA;QAAA,mFACE;QAAA;QAAA,0EACE;QAAA;QAAA,yEACE;QAAA;QAAA,yEACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,6EAAiB;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QAAA,4DAAY;QAC1E;QAAA,uEAEA;QAAA;QAAA,6HACE;QAEF;QAAA,6HACE;QAEF;QAAA,6HACE;QAEJ;QAAA,4DAAiB;QAEnB;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,0EACE;QAAA;QAAA,8EACE;QADyB,4IAAS,YAAQ,IAAC;QAC3C;QAAA,4EAAU;QAAA,iEAAK;QAAA,4DAAW;QAAC,gFAC7B;QAAA,4DAAS;QACT;QAAA,8EACE;QADmD,4IAAS,mBAAe,IAAC;QAC5E,wDACF;QAAA,4DAAS;QACX;QAAA,4DAAM;QACR;QAAA,4DAAM;QACR;QAAA,4DAAM;QACR;QAAA,4DAAO;QACT;QAAA,4DAAmB;QACrB;QAAA,4DAAW;QAEX;QAAA,4EACE;QAAA;QAAA,oFACE;QAAA;QAAA,2EACE;QAAA;QAAA,6EACE;QAAA;QAAA,6EACE;QAAA;QAAA,gHAAgF;QAChF;QAAA,gHAA2C;QAC7C;QAAA,qEAAe;QACf;QAAA,6EACE;QAAA;QAAA,gHAAuC;QACvC;QAAA,gHACE;QAEJ;QAAA,qEAAe;QACf;QAAA,gHAAuD;QACvD;QAAA,gHAA6D;QAC7D;QAAA,gHACE;QAEJ;QAAA,4DAAQ;QACV;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,gFAAqF;QACvF;QAAA,4DAAM;QACR;QAAA,4DAAmB;QACrB;QAAA,4DAAW;;QA3DD,0DAA+B;QAA/B,4FAA+B;QAGf,0DAA+B;QAA/B,uGAA+B;QAIlC,0DAAgE;QAAhE,8HAAgE;QAGhE,0DAAiE;QAAjE,+HAAiE;QAGjE,0DAAiE;QAAjE,+HAAiE;QAY1E,2DACF;QADE,oHACF;QAWW,2DAAyB;QAAzB,sFAAyB;QAWrB,2DAAmC;QAAnC,iGAAmC;QAC1C,0DAAgD;QAAhD,kGAAgD;QAO1B,0DAAgC;QAAhC,mJAAgC;;6FDxC7D,mBAAmB;cAL/B,uDAAS;eAAC;gBACT,QAAQ,EAAE,gBAAgB;gBAC1B,WAAW,EAAE,6BAA6B;gBAC1C,SAAS,EAAE,CAAC,6BAA6B,CAAC;aAC3C;2TAsBgC,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;YACc,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACH,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AEzCtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAoE;AACiC;AACvB;AAGnB;AAE1B;AACa;AAGE;;;;;;;;;;;;;;;;;;;;;;;ICDpB,iFAAyE;IAAA,uDACzE;IAAA,4DAAa;;;IADqC,mFAAsB;IAAC,0DACzE;IADyE,wHACzE;;;IAEJ,4EACI;IAAA;IAAA,mEAA2D;IAC3D;IAAA,2EAAyB;IAAA,8EAAmB;IAAA,4DAAO;IACvD;IAAA,4DAAY;;;;IAQZ,6EAEE;IADA,kVAA4B,OAAO,KAAE;IACrC;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC5B;IAAA,4DAAS;;;IAEL,gFAA6E;IAAA,2EAAgB;IAAA,4DAAa;;;IAC1G,gFACA;IAAA,4IACF;IAAA,4DAAa;;;IACb,iFACE;IAAA,uDACF;IAAA,4DAAa;;;IAFkD,6EAAgB;IAC7E,0DACF;IADE,oJACF;;;IAEF,4EACA;IAAA;IAAA,mEAA2D;IACzD,wIACF;IAAA,4DAAY;;;IACZ,4EACA;IAAA;IAAA,mEAA2D;IACzD,yJACF;IAAA,4DAAY;;;;IAOZ,4FAEI;IADA,gXAA4B,iBAAiB,KAAE;IAC/C;IAAA,+EAAkC;IAAA,gEAAK;IAAA,4DAAW;IACtD;IAAA,4DAAwB;;;IAGxB,4EACI;IAAA;IAAA,mEAA2D;IAC3D;IAAA,2EAAyB;IAAA,sFAA2B;IAAA,4DAAO;IAC/D;IAAA,4DAAY;;;IACZ,4EAEI;IAAA;IAAA,mEAA2D;IAC3D;IAAA,2EAAyB;IAAA,kFAAuB;IAAA,4DAAO;IAC3D;IAAA,4DAAY;;;IAEhB,4EACI;IAAA;IAAA,mEAA2D;IAC3D;IAAA,2EAAyB;IAAA,uDAAoB;IAAA,4DAAO;IACxD;IAAA,4DAAY;;;IADiB,0DAAoB;IAApB,yFAAoB;;;IA2CzD,wEACI;IAAA;IAAA,yEACI;IAAA;IAAA,yEAAsB;IAAA,uDAAc;IAAA,4DAAK;IACzC;IAAA,yEAAsB;IAAA,uDAAwC;;IAAA,4DAAK;IACnE;IAAA,0EAAsB;IAAA,wDAA2B;IAAA,4DAAK;IACtD;IAAA,0EACI;IAAA;IAAA,wEACJ;IAAA;IAAA,4DAAK;IACL;IAAA,0EACI;IAAA;IAAA,wEACJ;IAAA;IAAA,4DAAK;IACL;IAAA,0EACI;IAAA;IAAA,wEACJ;IAAA;IAAA,4DAAK;IACT;IAAA,4DAAK;IACT;IAAA,4DAAQ;;;IAbsB,0DAAc;IAAd,+EAAc;IACd,0DAAwC;IAAxC,oKAAwC;IACxC,0DAA2B;IAA3B,4FAA2B;IAEH,0DAAuB;IAAvB,oFAAuB;IAGvB,0DAAyB;IAAzB,sFAAyB;IAGzB,0DAAwB;IAAxB,qFAAwB;;;IAvC1F,+EAEI;IAAA;IAAA,qEACI;IAAA;IAAA,oEAAG;IAAA,uDAAyC;IAAA,4DAAI;IAAC,gFAAoB;IAAA,4DAAK;IAC9E;IAAA,0EACI;IAAA;IAAA,6EACI;IAAA;IACA;IAAA,0EACI;IAAA;IAAA,sEACI;IAAA;IAAA,4EAAmB;IAAA,wEAAY;IAAA,4DAAO;IAC1C;IAAA,4DAAK;IACL;IAAA,sEACI;IAAA;IAAA,4EAAmB;IAAA,0EAAc;IAAA,4DAAO;IAC5C;IAAA,4DAAK;IACL;IAAA,sEACI;IAAA;IAAA,4EAAmB;IAAA,2EAAe;IAAA,4DAAO;IAC7C;IAAA,4DAAK;IACL;IAAA,sEACI;IAAA;IAAA,4EAAmB;IAAA,oEAAQ;IAAA,4DAAO;IACtC;IAAA,4DAAK;IACL;IAAA,sEACI;IAAA;IAAA,4EAAmB;IAAA,oEAAQ;IAAA,4DAAO;IACtC;IAAA,4DAAK;IACL;IAAA,sEACI;IAAA;IAAA,4EAAmB;IAAA,mEAAO;IAAA,4DAAO;IACrC;IAAA,4DAAK;IACT;IAAA,4DAAK;IACL;IAAA,8IACI;IAeR;IAAA,4DAAQ;IACZ;IAAA,4DAAM;IACV;IAAA,4DAAW;;;IA1CA,0DAAyC;IAAzC,sHAAyC;IAwBjC,2DAAoC;IAApC,8FAAoC;;ADrFhD,MAAM,6BAA6B;IAuBxC,YAAoB,QAA+B,EAAU,iBAA6C,EAAU,aAA0B,EAAU,SAAsB,EAAU,EAAe,EAAU,OAA0B;QAAvN,aAAQ,GAAR,QAAQ,CAAuB;QAAU,sBAAiB,GAAjB,iBAAiB,CAA4B;QAAU,kBAAa,GAAb,aAAa,CAAa;QAAU,cAAS,GAAT,SAAS,CAAa;QAAU,OAAE,GAAF,EAAE,CAAa;QAAU,YAAO,GAAP,OAAO,CAAmB;QAtB3O,qBAAgB,GAAG,2DAAW,CAAC,oBAAoB,CAAC;QAIpD,cAAS,GAAG,KAAK,CAAC;QAElB,eAAU,GAAG,EAAE,CAAC;QAChB,kBAAa,GAAG,KAAK,CAAC;QACtB,YAAO,GAAG,EAAE,CAAC;QAEb,eAAU,GAAY,KAAK,CAAC;QAE5B,UAAK,GAAG,IAAI,IAAI,EAAE,CAAC;QAInB,sBAAiB,GAA0B,EAAE,CAAC;QAC9C,8BAAyB,GAAY,KAAK,CAAC;QAC3C,gBAAW,GAAS,KAAK;QAsJzB,gBAAW,GAAG;YACZ,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;YAChC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACtB,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;QACzC,CAAC;QAED,UAAK,GAAG;YACN,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,UAAU,CAAC,GAAG,EAAE,CACd,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAC3C,CAAC;QAhKC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3C,CAAC;IACD,QAAQ;QACN,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;QACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,mEAAY,EAAE,CAAC;QACnC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEhB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YAE5B,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAClC,QAAQ,EAAE,CAAC,KAAK,CAAC;YACjB,eAAe,EAAE,CAAC,EAAE,EAAE,yDAAU,CAAC,QAAQ,CAAC;YAC1C,YAAY,EAAE,CAAC,EAAE,EAAC,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;SACzC,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,OAAO,GAAC,CAAC,CAAC;IACjB,CAAC;IACD,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE1C,SAAS,CAAC,IAAS;QACjB,OAAO,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9C,CAAC;IACD,iBAAiB;QACf,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC,SAAS,CAAC,CAAC,GAAiB,EAAE,EAAE;YACrE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YACnB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;YACzB,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBACpB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;YACxF,CAAC,CAAC,CAAC;QACL,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;YACX,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YACnB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE;gBACzC,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,CAAC,aAAa,CAAC;gBAC3B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,UAAU,CAAC,GAAQ,EAAE,SAAS;QAC5B,IAAG,SAAS,IAAE,iBAAiB,EAAC;YAC9B,IAAI,CAAC,WAAW,GAAC,KAAK;YACtB,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,KAAK,EAAE,CAAC;SAC9C;QACD,IAAG,SAAS,IAAE,OAAO,EAAC;YACpB,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;SACpC;IACH,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3D,CAAC;IAEO,WAAW,CAAC,KAAK;QACvB,IAAI,WAAW,CAAC;QAChB,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE;YACnC,OAAO,IAAI,CAAC,UAAU,CAAC;SACxB;QACD,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE;YACxB,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE;gBACnC,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;aACzC;iBACI;gBACH,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,EAAE;oBACxB,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;iBAC/C;aACF;YACD,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CACvC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CACjD,CAAC;SACH;aAAM;YACL,OAAO,IAAI,CAAC,UAAU,CAAC;SACxB;IACH,CAAC;IACD,QAAQ;QACN,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE;QAClE,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,GAAC,CAAC,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,kBAAkB,CAAC,KAAK;QACtB,IAAI,CAAC,WAAW,GAAC,KAAK;QACtB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,KAAK,EAAE,CAAC;QAC7C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;QACnC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YAChE,IAAI,QAAQ,GAAQ,IAAI,CAAC;YACzB,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACnB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACvD,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CACxD,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CACxC,CAAC;QAEJ,CAAC,EAAC,CAAC,KAAK,EAAE,EAAE;YACV,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;gBACpC,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,CAAC,aAAa,CAAC;gBAC3B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CAAC;IACJ,CAAC;IAED,oBAAoB;QAClB,IAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,SAAS;YAC7C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK;QAC7D,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,eAAe,GAAG,mCAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACvG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAChC,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YACzE,IAAI,IAAI,IAAI,IAAI,EAAE;gBAChB,IAAI,CAAC,KAAK,EAAE,CAAC;gBACb,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;gBACxB,IAAI,CAAC,WAAW,GAAG,KAAK;gBACxB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,qCAAqC,EAAE,GAAG,EAAE;oBAC9D,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;QACH,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;YACX,IAAI,KAAK,CAAC,KAAK,IAAG,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,2CAA2C,CAAC,CAAC,EAAE;gBAC7F,IAAI,CAAC,WAAW,GAAG,IAAI;gBACvB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,KAAK;aACpC;iBACI;gBACH,IAAI,CAAC,KAAK,EAAE,CAAC;gBACb,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;gBACxB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;oBACpC,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAmBD,QAAQ;QACN,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;YACvB,IAAI,CAAC,oBAAoB,EAAE,CAAC;SAC7B;IACH,CAAC;IAEM,oBAAoB,CAAC,UAAkB;QAC1C,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,IAA2B,EAAE,EAAE;YACnG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;gBACnC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;gBAC9B,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;aACvC;;gBAEC,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;QAC3C,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;YACR,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;gBACpC,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,CAAC,aAAa,CAAC;gBAC3B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IACD,sBAAsB;QACpB,IAAI,CAAC,WAAW,GAAC,KAAK;IACxB,CAAC;;0GArNU,6BAA6B;6GAA7B,6BAA6B;kEAc7B,iEAAkB;;;;6GAhBlB,CAAC,sFAAqB,CAAC;;QCzBpC,8EACI;QAAA;QAAA,mFACI;QAAA;QAAA,0EACI;QAAA;QAAA,yEACI;QAAA;QAAA,yEACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,sEAAU;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QAAA,4DAAY;QACnE;QAAA,iFAEI;QAFuC,oLAAmB,oCAAgC,IAAC;QAE3F;QAAA,iFAAqB;QAAA,6EAAiB;QAAA,4DAAa;QACnD;QAAA,yIAAyE;QAE7E;QAAA,4DAAa;QACb;QAAA,uIACI;QAGR;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,sFACI;QAAA;QAAA,6EAAW;QAAA,qEAAS;QAAA,2EAA2B;QAAA,8DAAC;QAAA,4DAAO;QAAC;QAAA,4DAAY;QACpE;QAAA,wEAEA;QAAA;QAAA,kIAEE;QAEF;QAAA,4FACI;QADgE,wLAAkB,mDAA+C,IAAC;QAClI;QAAA,0IAA6E;QAC7E;QAAA,0IACA;QAEF;QAAA,yIACE;;QAEJ;QAAA,4DAAmB;QACnB;QAAA,uIACA;QAGA;QAAA,uIACA;QAGF;QAAA,4DAAiB;QACvB;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,6EAAiB;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QAAA,4DAAY;QAC1E;QAAA,6EACA;QADyJ,+JAAc,4BAAwB,IAAC,4OAAU,WAAa,IAAvB;QAAhM,4DACA;QAAA;QAAA,gKAEI;QAEJ;QAAA,wFAAwE;QACxE;QAAA,uFAAyC;QACzC;QAAA,uIACI;QAGJ;QAAA,uIAEI;QAGR;QAAA,4DAAiB;QACjB;QAAA,uIACI;QAGR;QAAA,4DAAM;QAEN;QAAA,2EACI;QAAA;QAAA,8EACI;QADI,sJAAS,WAAO,IAAC;QACrB;QAAA,4EAAU;QAAA,2FACV;QAAA,4DAAW;QAAA,uFACf;QAAA,4DAAS;QACT;QAAA,8EAA2E;QAArD,sJAAS,cAAU,IAAC;QAAiC,gEAAI;QAAA,4DAAS;QAC5F;QAAA,4DAAM;QACV;QAAA,4DAAM;QACV;QAAA,4DAAO;QACX;QAAA,4DAAmB;QACvB;QAAA,4DAAW;QAEX;QAAA,yIAEI;QA4CJ;QAAA,oFAMI;QAAA;QAAA,0EAAmB;QAAA,wEAAW;QAAA,4DAAI;QACtC;QAAA,4DAAc;QACd;;;;QAzIc,0DAAsB;QAAtB,mFAAsB;QAGA,0DAA+B;QAA/B,uGAA+B;QAK3B,2DAAqC;QAArC,uFAAqC;QAG1C,0DAA0E;QAA1E,4IAA0E;QASxD,2DAAyB;QAAzB,sFAAyB;QAEvB,0DAA8B;QAA9B,0FAA8B;QAInB,0DAAyB;QAAzB,sFAAyB;QAC1C,0DAAuD;QAAvD,qHAAuD;QACvD,0DAAsD;QAAtD,oHAAsD;QAGjE,0DAAkD;QAAlD,+JAAkD;QAIrD,0DAAkD;QAAlD,gHAAkD;QAIlD,0DAAsD;QAAtD,oHAAsD;QAOrD,0DAAiC;QAAjC,uGAAiC;QAEiB,0DAAiB;QAAjB,8EAAiB;QAC9C,0DAAsC;QAAtC,oGAAsC;QAItC,0DAAc;QAAd,qEAAc;QAEpC,0DAA4D;QAA5D,0HAA4D;QAKnE,0DAAuH;QAAvH,yLAAuH;QAKpH,0DAAmB;QAAnB,iFAAmB;QAkBR,2DAAiC;QAAjC,+FAAiC;QAiD1E,0DAAoB;QAApB,6EAAoB;;6FD3GR,6BAA6B;cANzC,uDAAS;eAAC;gBACT,QAAQ,EAAE,4BAA4B;gBACtC,WAAW,EAAE,yCAAyC;gBACtD,SAAS,EAAE,CAAC,yCAAyC,CAAC;gBACtD,SAAS,EAAE,CAAC,sFAAqB,CAAC;aACnC;kkBAaU,GAAG;kBAAX,mDAAK;YAEyB,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;;;;;;;;;;;;;;AEzC/B;AAAA;AAAA;AAAkD;;AAO3C,MAAM,oBAAoB;IAE/B,gBAAgB,CAAC;IAEjB,QAAQ;IACR,CAAC;;wFALU,oBAAoB;oGAApB,oBAAoB;QCPjC,oEAAG;QAAA,6EAAkB;QAAA,4DAAI;QACzB;;6FDMa,oBAAoB;cALhC,uDAAS;eAAC;gBACT,QAAQ,EAAE,iBAAiB;gBAC3B,WAAW,EAAE,8BAA8B;gBAC3C,SAAS,EAAE,CAAC,8BAA8B,CAAC;aAC5C;;;;;;;;;;;;;;AEND;AAAA;AAAO,MAAM,MAAM;CAMlB;;;;;;;;;;;;;ACND;AAAA;AAAO,MAAM,cAAc;CAKxB;;;;;;;;;;;;;ACJH;AAAA;AAAO,MAAM,UAAU;CAStB;;;;;;;;;;;;;ACPD;AAAA;AAAA;AAAO,MAAM,WAAW;CAOvB;AAED,sFAAsF;AAE/E,MAAM,eAAe;CAWvB;;;;;;;;;;;;;ACzBL;AAAA;AAAO,MAAM,gBAAgB;CAI1B;;;;;;;;;;;;;ACJH;AAAA;AAAO,MAAM,YAAY;CASxB;;;;;;;;;;;;;ACTD;AAAA;AAAO,MAAM,KAAK;CAMjB;;;;;;;;;;;;;ACLD;AAAA;AAAA;AAA0E;AAEnE,MAAM,WAAY,SAAQ,kFAAiB;CAKjD;;;;;;;;;;;;;ACRD;AAAA;AAAA;AAAO,MAAM,SAAS;CAKrB;AAEM,MAAM,KAAK;CAGjB;;;;;;;;;;;;;ACRD;AAAA;AAAA;AAAA;AAAO,MAAM,gBAAgB;CAQ5B;AAEM,MAAM,yBAA0B,SAAQ,gBAAgB;CAS9D;AAEM,MAAM,KAAK;CAEjB;;;;;;;;;;;;;ACzBD;AAAA;AAAO,MAAM,YAAY;CAOxB;;;;;;;;;;;;;ACPD;AAAA;AAAO,MAAM,gBAAgB;CAK1B;;;;;;;;;;;;;ACJH;AAAA;AAAO,MAAM,gBAAgB;CAK1B;;;;;;;;;;;;;ACNH;AAAA;AAAA;AAAO,MAAM,WAAW;CAIvB;AAEM,MAAM,eAAe;CAI3B;;;;;;;;;;;;;ACRD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,MAAM,QAAQ;CAqBpB;AAEM,MAAM,MAAM;CAGlB;AACM,MAAM,oBAAoB;CAahC;AACM,MAAM,YAAY;CAGxB;AACM,MAAM,YAAY;CAGxB;;;;;;;;;;;;;AClDD;AAAA;AAAO,MAAM,SAAS;CAIrB;;;;;;;;;;;;;ACJD;AAAA;AAAO,MAAM,WAAW;CAWvB;AAED,sBAAsB;AACtB,iCAAiC;AACjC,yDAAyD;AACzD,2BAA2B;AAC3B,yDAAyD;AACzD,0DAA0D;AAC1D,0BAA0B;AAC1B,wBAAwB;AACxB,qDAAqD;AACrD,gCAAgC;;;;;;;;;;;;;ACnBhC;AAAA;AAAO,MAAM,SAAS;CAWrB;;;;;;;;;;;;;ACZD;AAAA;AAAO,MAAM,cAAc;CAO1B;;;;;;;;;;;;;ACTD;AAAA;AAAO,MAAM,UAAU;CAItB;;;;;;;;;;;;;ACFD;AAAA;AAAO,MAAM,SAAS;CAYrB;;;;;;;;;;;;;ACdD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AACyB;AACV;AACnB;AAES;;;AAMzC,MAAM,sBAAsB;IAMjC,YAAoB,UAAuB;QAAvB,eAAU,GAAV,UAAU,CAAa;QAL3C,eAAU,GAAG,qEAAuB,CAAC,iBAAiB,CAAC;QACvD,kDAAkD;QAClD,cAAS,GAAG,uDAAe,CAAC,SAAS,CAAC;QACtC,aAAQ,GAAG,IAAI,oDAAe,CAAY,IAAI,2DAAS,EAAE,CAAC,CAAC;QAC3D,kBAAa,GAAG,IAAI,oDAAe,CAAc,EAAE,CAAC,CAAC;IACN,CAAC;IAEzC,YAAY,CAAC,EAAU;QAC5B,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,EAAE,CAAC;QACxD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,GAAiB,EAAC,EAAE;YACtD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACP,CAAC;IACM,YAAY;QACjB,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;IAC3C,CAAC;IACM,WAAW;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;IACtC,CAAC;IACM,WAAW,CAAC,QAAQ;QACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7B,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IACM,YAAY,CAAC,KAAK;QACvB,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,sBAAsB,GAAE,KAAK,CAAC;QACzE,OAAQ,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IACM,gBAAgB,CAAC,IAAI;QAC1B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,oCAAoC;IACpC,qEAAqE;IACrE,sCAAsC;IACtC,IAAI;IAEJ,qBAAqB,CAAC,OAAO;QACzB,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;QACnD,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC;IAC9C,CAAC;;4FAxCY,sBAAsB;yGAAtB,sBAAsB,WAAtB,sBAAsB,mBAFrB,MAAM;6FAEP,sBAAsB;cAHlC,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACVD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmD;AAInD,6EAA6E;AAClB;AAEQ;;;AAW5D,MAAM,wBAAwB;IAInC,YAAoB,KAAiB;QAAjB,UAAK,GAAL,KAAK,CAAY;QACnC,IAAI,CAAC,UAAU,GAAG,uDAAe,CAAC,eAAe,CAAC;QAClD,IAAI,CAAC,kBAAkB,GAAG,qEAAW,CAAC,iBAAiB,CAAC;IAC1D,CAAC;IAEM,cAAc,CAAC,MAAc;QAChC,IAAI,IAAI,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,GAAG,MAAM,CAAC;QACjF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAU,IAAI,CAAC,CAAC;IACzC,CAAC;IAEM,cAAc,CAAC,MAAc;QAChC,IAAI,IAAI,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,GAAG,MAAM,CAAC;QACjF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAU,IAAI,CAAC,CAAC;IACzC,CAAC;IAEM,kBAAkB,CAAC,eAA0B;QAChD,IAAI,IAAI,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC;QACxE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAU,IAAI,EAAE,eAAe,CAAC,CAAC;IAC3D,CAAC;;gGAtBU,wBAAwB;2GAAxB,wBAAwB,WAAxB,wBAAwB,mBAFvB,MAAM;6FAEP,wBAAwB;cAHpC,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACjBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AAEqB;AAClB;AACP;AACmB;;;AAKnD,MAAM,aAAa;IAOxB,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QANnC,aAAQ,GAAG,KAAK,CAAC;QAExB,gBAAW,GAAG,qEAAW,CAAC,iBAAiB,CAAC;QAC5C,cAAS,GAAG,uDAAe,CAAC,OAAO,CAAC;QACpC,YAAO,GAAG,IAAI,oDAAe,CAAS,IAAI,2DAAM,EAAE,CAAC,CAAC;QACpD,gBAAW,GAAG,IAAI,oDAAe,CAAW,EAAE,CAAC,CAAC;IACH,CAAC;IAEvC,UAAU;QACf,IAAI,CAAC,UAAU;aACZ,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;aAC3C,SAAS,CAAC,CAAC,GAAa,EAAE,EAAE;YAC3B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,aAAa;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACrE,CAAC;IAEM,aAAa,CAAC,MAAc;QACjC,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK;YACxB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EACxC,MAAM,CACP,CAAC;;YAEF,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EACxC,MAAM,CACP,CAAC;IACN,CAAC;IAEM,cAAc;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;IACzC,CAAC;IAEM,UAAU;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;IACrC,CAAC;IAED,wBAAwB;IACxB,yCAAyC;IACzC,IAAI;IAEJ,gCAAgC;IAChC,iCAAiC;IACjC,wBAAwB;IAExB,IAAI;IAEG,cAAc,CAAC,OAAO;QAC3B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3B,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;;0EAvDU,aAAa;gGAAb,aAAa,WAAb,aAAa,mBAFZ,MAAM;6FAEP,aAAa;cAHzB,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACTD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AAEwB;AACH;AACL;AACpB;;;AAKhC,MAAM,qBAAqB;IAMhC,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAL1C,eAAU,GAAG,qEAAW,CAAC,iBAAiB,CAAC;QAC3C,aAAQ,GAAG,KAAK,CAAC;QACjB,YAAO,GAAG,IAAI,oDAAe,CAAiB,IAAI,2EAAc,EAAE,CAAC,CAAC;QACpE,cAAS,GAAG,uDAAe,CAAC,cAAc,CAAC;QAC3C,uBAAkB,GAAG,IAAI,oDAAe,CAAmB,EAAE,CAAC,CAAC;IAClB,CAAC;IAE9C,qBAAqB;QACnB,IAAI,CAAC,UAAU;aACZ,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;aAC1C,SAAS,CAAC,CAAC,GAAqB,EAAE,EAAE;YACnC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACP,CAAC;IAED,oBAAoB,CAAC,SAAyB;QAC5C,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK;YACxB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CACzB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EACvC,SAAS,CACV,CAAC;aACC;YACH,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CACzB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EACvC,SAAS,CACV,CAAC;SACH;IACH,CAAC;;0FA5BU,qBAAqB;wGAArB,qBAAqB,WAArB,qBAAqB,mBAFpB,MAAM;6FAEP,qBAAqB;cAHjC,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACTD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AACwB;AAGX;AACjB;AAEoB;;;AAKpD,MAAM,iBAAiB;IAU5B,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAR1C,+CAA+C;QAC/C,mEAAmE;QACnE,gBAAW,GAAG,qEAAW,CAAC,iBAAiB,CAAC;QAC5C,cAAS,GAAG,KAAK,CAAC;QAClB,aAAQ,GAAG,KAAK,CAAC;QACjB,eAAU,GAAG,uDAAe,CAAC,UAAU,CAAC;QACxC,oBAAe,GAAG,IAAI,oDAAe,CAAa,IAAI,mEAAU,EAAE,CAAC,CAAC;QACpE,eAAU,GAAG,IAAI,oDAAe,CAAe,EAAE,CAAC,CAAC;IACN,CAAC;IAEvC,oBAAoB;QACzB,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QACnD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,GAAiB,EAAE,EAAE;YACxD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC;IACM,gBAAgB,CAAC,UAAsB;QAC5C,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QACrD,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK;YAAE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;aACrE;YACH,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YACrD,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;SAC/C;IACH,CAAC;;kFAzBU,iBAAiB;oGAAjB,iBAAiB,WAAjB,iBAAiB,mBAFhB,MAAM;6FAEP,iBAAiB;cAH7B,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACXD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AACwB;AAEQ;AACpC;AACoB;;;AAKpD,MAAM,mBAAmB;IAQ9B,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAP1C,uCAAuC;QACvC,2DAA2D;QAC3D,gBAAW,GAAG,qEAAW,CAAC,iBAAiB,CAAC;QAC5C,aAAQ,GAAG,KAAK,CAAC;QACjB,YAAO,GAAG,IAAI,oDAAe,CAAkB,IAAI,yEAAe,EAAE,CAAC,CAAC;QACtE,oBAAe,GAAG,IAAI,oDAAe,CAAoB,EAAE,CAAC,CAAC;QAC7D,cAAS,GAAG,uDAAe,CAAC,WAAW,CAAC;IACK,CAAC;IAE9C,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,uDAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7E,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,UAAU;aACZ,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;aAC3C,SAAS,CAAC,CAAC,GAAsB,EAAE,EAAE;YACpC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACP,CAAC;IAED,iBAAiB,CAAC,WAA4B;QAC5C,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EACxC,WAAW,CACZ,CAAC;IACJ,CAAC;IAED,eAAe,CAAC,WAA4B;QAC1C,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EACxC,WAAW,CACZ,CAAC;IACJ,CAAC;;sFAlCU,mBAAmB;sGAAnB,mBAAmB,WAAnB,mBAAmB,mBAFlB,MAAM;6FAEP,mBAAmB;cAH/B,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACTD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AAEqB;AACC;AACP;AACnB;;;AAKhC,MAAM,mBAAmB;IAO9B,mEAAmE;IACnE,YAAoB,UAAuB;QAAvB,eAAU,GAAV,UAAU,CAAa;QAPpC,aAAQ,GAAG,KAAK,CAAC;QAChB,cAAS,GAAG,uDAAe,CAAC,MAAM,CAAC;QACpC,eAAU,GAAG,IAAI,oDAAe,CAAmB,IAAI,+EAAgB,EAAE,CAAC,CAAC;QAC3E,gBAAW,GAAG,IAAI,oDAAe,CAAqB,EAAE,CAAC,CAAC;QACjE,+CAA+C;QAC/C,gBAAW,GAAG,qEAAW,CAAC,iBAAiB,CAAC;IAEI,CAAC;IAE1C,UAAU;QACf,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;aAC1D,SAAS,CAAC,CAAC,GAAwB,EAAE,EAAE,GAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAC,CAAC,CAAC;IAC1E,CAAC;IAEM,YAAY,CAAC,MAAyB;QAC3C,IAAG,IAAI,CAAC,QAAQ,IAAI,KAAK;YACvB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;;YAE7E,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IAC/E,CAAC;;sFApBQ,mBAAmB;sGAAnB,mBAAmB,WAAnB,mBAAmB,mBAFlB,MAAM;6FAEP,mBAAmB;cAH/B,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACTD;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AAO3C,mBAAmB;AAC4D;AACpB;;;AAGpD,MAAM,qBAAqB;IAIhC,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QACxC,IAAI,CAAC,UAAU,GAAG,qEAAkC,CAAC,SAAS,CAAC;QAC/D,IAAI,CAAC,UAAU,GAAG,uDAAe,CAAC,cAAc,CAAC;QACjD,IAAI,CAAC,oBAAoB;YACvB,qEAAkC,CAAC,oBAAoB,CAAC;IAC5D,CAAC;IAED,iBAAiB;QACf,IAAI,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAC/D,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,aAAa;QACX,IAAI,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAC/D,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,eAAe;QACb,IAAI,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;QACtE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,oBAAoB,CAAC,OAAY;QAC/B,IAAI,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC;QAC3E,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED,cAAc,CAAC,OAAY;QACzB,IAAI,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;QACrE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED,yBAAyB,CAAC,MAAc;QACtC,IAAI,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,yBAAyB,GAAG,gBAAgB,GAAG,MAAM,CAAC;QAC5G,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IACD,6BAA6B,CAAC,YAAoB;QAChD,IAAI,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,6BAA6B,GAAG,YAAY,CAAC;QACnG,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;;0FA3CU,qBAAqB;wGAArB,qBAAqB,WAArB,qBAAqB;6FAArB,qBAAqB;cADjC,wDAAU;;;;;;;;;;;;;;ACXX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AAEqB;AAEN;AACd;AACL;;;AAKhC,MAAM,aAAa;IASxB,YAAoB,UAAuB;QAAvB,eAAU,GAAV,UAAU,CAAa;QAP3C,aAAQ,GAAG,KAAK,CAAC;QACjB,eAAU,GAAG,IAAI,oDAAe,CAAU,EAAE,CAAC,CAAC;QAC9C,YAAO,GAAG,IAAI,oDAAe,CAAQ,IAAI,yDAAK,EAAE,CAAC,CAAC;QAClD,kDAAkD;QAClD,eAAU,GAAG,qEAAW,CAAC,iBAAiB,CAAC;QAC3C,0DAA0D;QAC1D,cAAS,GAAG,uDAAe,CAAC,MAAM,CAAC;IACY,CAAC;IAEhD,gBAAgB;QACd,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,GAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,GAAa,EAAC,EAAE;YAClF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACN,CAAC;IAED,YAAY,CAAC,SAAS;QACpB,IAAG,IAAI,CAAC,QAAQ,IAAI,KAAK;YACvB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,GAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;aAC5E;YACA,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,GAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;SACjF;IAEH,CAAC;;0EAxBW,aAAa;gGAAb,aAAa,WAAb,aAAa,mBAFZ,MAAM;6FAEP,aAAa;cAHzB,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACVD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AAEwB;AACR;AACA;AACpB;;;AAKhC,MAAM,kBAAkB;IAO7B,mEAAmE;IACnE,YAAoB,UAAuB;QAAvB,eAAU,GAAV,UAAU,CAAa;QAPpC,aAAQ,GAAG,KAAK,CAAC;QAChB,cAAS,GAAG,uDAAe,CAAC,WAAW,CAAC;QACzC,oBAAe,GAAG,IAAI,oDAAe,CAAc,IAAI,sEAAW,EAAE,CAAC,CAAC;QACtE,oBAAe,GAAG,IAAI,oDAAe,CAAgB,EAAE,CAAC,CAAC;QAChE,+CAA+C;QAC/C,gBAAW,GAAG,qEAAW,CAAC,iBAAiB,CAAC;IAEI,CAAC;IAE1C,eAAe;QACpB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;aAC1D,SAAS,CAAC,CAAC,GAAmB,EAAE,EAAE,GAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAC,CAAC,CAAC;IACzE,CAAC;IACM,iBAAiB;QACtB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,GAAE,uDAAe,CAAC,UAAU,CAAC,IAAI,CAAC;IAC/E,CAAC;IACM,iBAAiB,CAAC,WAAyB;QAChD,IAAG,IAAI,CAAC,QAAQ,IAAI,KAAK;YACvB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC;;YAElF,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC;IACpF,CAAC;;oFAtBQ,kBAAkB;qGAAlB,kBAAkB,WAAlB,kBAAkB,mBAFjB,MAAM;6FAEP,kBAAkB;cAH9B,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACTD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AAG2C;AACP;AAC/E,kGAAkG;AACvC;AACjC;AACa;;;AAKhC,MAAM,gCAAgC;IAW3C,YAAoB,KAAiB;QAAjB,UAAK,GAAL,KAAK,CAAY;QAPrC,aAAQ,GAAG,KAAK,CAAC;QACjB,yBAAoB,GAAG,IAAI,oDAAe,CAA8B,EAAE,CAAC,CAAC;QAC5E,YAAO,GAAG,IAAI,oDAAe,CAC3B,IAAI,iGAAyB,EAAE,CAChC,CAAC;QAIA,IAAI,CAAC,UAAU,GAAG,qEAAkC,CAAC,iBAAiB,CAAC;QACvE,IAAI,CAAC,UAAU,GAAG,uDAAe,CAAC,yBAAyB,CAAC;QAC5D,mDAAmD;IACrD,CAAC;IAdD,SAAS,CAAC,IAAwB;QAChC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAaM,6CAA6C,CAClD,kBAA0B,EAC1B,gBAAwB;QAExB,IAAI,GAAG,GACL,IAAI,CAAC,UAAU;YACf,IAAI,CAAC,UAAU,CAAC,6CAA6C;YAC7D,kBAAkB;YAClB,oBAAoB;YACpB,gBAAgB,CAAC;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4B,GAAG,CAAC,CAAC;IACxD,CAAC;IAEM,4BAA4B,CACjC,+BAA0D;QAE1D,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,4BAA4B,CAAC;QAC1E,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAU,IAAI,EAAE,+BAA+B,CAAC,CAAC;QACvE,0BAA0B;IAC5B,CAAC;IAEM,8BAA8B,CACnC,+BAA0D;QAE1D,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,8BAA8B,CAAC;QAC5E,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAU,IAAI,EAAE,+BAA+B,CAAC,CAAC;QACvE,0BAA0B;IAC5B,CAAC;IAEM,YAAY;QACjB,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QACtC,OAAO,+CAAE,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;IAED,oBAAoB;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CACnB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,mBAAmB,CACtD,CAAC;IACJ,CAAC;;gHAtDU,gCAAgC;mHAAhC,gCAAgC,WAAhC,gCAAgC,mBAF/B,MAAM;6FAEP,gCAAgC;cAH5C,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACZD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmD;AAMA;AAC0B;AAC7E,4EAA4E;AACG;AACpB;;;AAKpD,MAAM,uBAAuB;IAUlC,YAAoB,WAAuB;QAAvB,gBAAW,GAAX,WAAW,CAAY;QAT3C,6CAA6C;QAC7C,kDAAkD;QAClD,MAAM;QACN,aAAQ,GAAG,KAAK,CAAC;QACjB,yBAAoB,GAAG,IAAI,oDAAe,CAAqB,EAAE,CAAC,CAAC;QACnE,YAAO,GAAG,IAAI,oDAAe,CAAmB,IAAI,wFAAgB,EAAE,CAAC,CAAC;QAKtE,IAAI,CAAC,UAAU,GAAG,qEAAkC,CAAC,iBAAiB,CAAC;QACvE,IAAI,CAAC,UAAU,GAAG,uDAAe,CAAC,gBAAgB,CAAC;IACrD,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,WAAW;aACb,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC;aAC1D,SAAS,CAAC,CAAC,GAAuB,EAAE,EAAE;YACrC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,mBAAmB,CAAC,SAA2B;QACpD,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC;QACjE,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK;YAAE,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC5E,CAAC;IAEM,sBAAsB,CAAC,SAA2B;QACvD,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC;QACpE,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC3E,CAAC;IAEM,sBAAsB,CAC3B,kBAA0B,EAC1B,UAAkB;QAElB,IAAI,IAAI,GACN,IAAI,CAAC,UAAU;YACf,IAAI,CAAC,UAAU,CAAC,sBAAsB;YACtC,kBAAkB;YAClB,cAAc;YACd,UAAU,CAAC;QACb,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;;8FA5CU,uBAAuB;0GAAvB,uBAAuB,WAAvB,uBAAuB,mBAFtB,MAAM;6FAEP,uBAAuB;cAHnC,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACdD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AACwB;AAER;AACpB;AACqB;;;AAMrD,MAAM,mBAAmB;IAM9B,YAAoB,UAAuB;QAAvB,eAAU,GAAV,UAAU,CAAa;QALpC,aAAQ,GAAG,KAAK,CAAC;QAChB,gBAAW,GAAG,qEAAW,CAAC,iBAAiB,CAAC;QAC5C,cAAS,GAAG,uDAAe,CAAC,YAAY,CAAC;QAC1C,qBAAgB,GAAG,IAAI,oDAAe,CAAe,IAAI,uEAAY,EAAE,CAAC,CAAC;QACzE,qBAAgB,GAAG,IAAI,oDAAe,CAAiB,EAAE,CAAC,CAAC;IAClB,CAAC;IAE1C,gBAAgB,CAAC,WAAoB,IAAI;QAC9C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,GAAC,YAAY,GAAC,QAAQ,CAAC;aAChF,SAAS,CAAC,CAAC,GAAoB,EAAE,EAAE,GAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAC,CAAC,CAAC;IAC3E,CAAC;IAEM,mBAAmB,CAAC,YAA2B;QACpD,IAAG,IAAI,CAAC,QAAQ,IAAG,KAAK;YACtB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAG,YAAY,CAAC,CAAC;;YAErF,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAG,YAAY,CAAC,CAAC;IACzF,CAAC;;sFAlBU,mBAAmB;sGAAnB,mBAAmB,WAAnB,mBAAmB,mBAFlB,MAAM;6FAEP,mBAAmB;cAH/B,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACVD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AAEgB;AACQ;AACC;AAC7B;;;AAMhC,MAAM,uBAAuB;IAQlC,YAAqB,UAAuB;QAAvB,eAAU,GAAV,UAAU,CAAa;QAP5C,yBAAoB,GAAG,IAAI,oDAAe,CAAqB,EAAE,CAAC,CAAC;QACnE,YAAO,GAAI,IAAI,oDAAe,CAAmB,IAAI,+EAAgB,EAAE,CAAC,CAAC;QACzE,aAAQ,GAAG,KAAK,CAAC;QACjB,sCAAsC;QACtC,eAAU,GAAG,qEAAW,CAAC,iBAAiB,CAAC;QAC3C,0DAA0D;QAC1D,cAAS,GAAG,uDAAe,CAAC,gBAAgB,CAAC;IACG,CAAC;IACjD,uBAAuB;QACrB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAE,IAAI,CAAC,UAAU,GAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;aACxD,SAAS,CAAC,CAAC,GAAwB,EAAE,EAAE;YACtC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACL,CAAC;IACD,0BAA0B,CAAC,WAAW;QACnC,IAAG,IAAI,CAAC,QAAQ,IAAI,KAAK;YACtB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAE,IAAI,CAAC,UAAU,GAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAC,WAAW,CAAC,CAAC;aAChF;YACF,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,GAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAC,WAAW,CAAC,CAAC;SAChF;IACH,CAAC;;8FArBU,uBAAuB;0GAAvB,uBAAuB,WAAvB,uBAAuB,mBAFtB,MAAM;6FAEP,uBAAuB;cAHnC,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACVD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AAEgB;AACQ;AACL;AACvB;;;AAKhC,MAAM,kBAAkB;IAQ7B,YAAqB,UAAuB;QAAvB,eAAU,GAAV,UAAU,CAAa;QAP5C,aAAQ,GAAG,KAAK,CAAC;QACjB,oBAAe,GAAG,IAAI,oDAAe,CAAoB,EAAE,CAAC,CAAC;QAC7D,YAAO,GAAG,IAAI,oDAAe,CAAkB,IAAI,yEAAe,EAAE,CAAC,CAAC;QACtE,sCAAsC;QACtC,eAAU,GAAG,qEAAW,CAAC,iBAAiB,CAAC;QAC3C,0DAA0D;QAC1D,cAAS,GAAG,uDAAe,CAAC,WAAW,CAAC;IACQ,CAAC;IAEjD,kBAAkB;QAChB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,GAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;aACvD,SAAS,CAAC,CAAC,GAAuB,EAAE,EAAE;YACrC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IACD,iBAAiB,CAAC,SAA2B;QAE3C,IAAG,IAAI,CAAC,QAAQ,IAAI,KAAK;YACvB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,GAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;aAC5E;YACF,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,GAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;SAC/E;IACH,CAAC;;oFAvBU,kBAAkB;qGAAlB,kBAAkB,WAAlB,kBAAkB,mBAFjB,MAAM;6FAEP,kBAAkB;cAH9B,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACTD;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AAEqB;AAEN;;;AAOnD,MAAM,eAAe;IAG1B,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAF1C,gBAAW,GAAG,qEAAW,CAAC,iBAAiB,CAAC;QAC5C,cAAS,GAAG,uDAAe,CAAC,QAAQ,CAAC;IACS,CAAC;IAE/C,YAAY;QACV,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAa,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAChF,CAAC;IACD,eAAe,CAAC,KAAe;QAC7B,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC/E,CAAC;IACD,eAAe,CAAC,KAAe;QAC7B,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC/E,CAAC;IACD,eAAe,CAAC,EAAE;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC;IACrF,CAAC;IACE,kBAAkB;QACnB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAa,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,GAAC,gBAAgB,CAAC,CAAC;IACjG,CAAC;IACD,iBAAiB,CAAC,eAAsB,EAAE,YAAmB,EAAE,UAAiB;QAC9E,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAa,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,qBAAqB,GAAG,eAAe,GAAG,gBAAgB,GAAG,YAAY,GAAG,cAAc,GAAI,UAAU,CAAC,CAAC;IACrL,CAAC;IAED,uBAAuB,CAAC,eAAsB,EAAE,YAAmB;QACjE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAgB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,uBAAuB,GAAG,eAAe,GAAG,gBAAgB,GAAG,YAAY,CAAC,CAAC;IAC3J,CAAC;;8EA1BU,eAAe;kGAAf,eAAe,WAAf,eAAe,mBAFd,MAAM;6FAEP,eAAe;cAH3B,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACVD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AAEwB;AACR;AAC3D,2EAA2E;AACzB;AAEX;AACmC;;;AAKnE,MAAM,WAAW;IAQtB,YAAoB,UAAuB;QAAvB,eAAU,GAAV,UAAU,CAAa;QAPpC,aAAQ,GAAG,KAAK,CAAC;QACjB,2BAAsB,GAAC,KAAK,CAAC;QAC7B,aAAQ,GAAG,IAAI,oDAAe,CAAW,IAAI,gEAAQ,EAAE,CAAC,CAAC;QACzD,uBAAkB,GAAG,IAAI,oDAAe,CAAoB,IAAI,kFAAiB,EAAE,CAAC,CAAC;QACpF,eAAU,GAAG,qEAAW,CAAC,iBAAiB,CAAC;QAC3C,cAAS,GAAG,uDAAe,CAAC,KAAK,CAAC;IAEK,CAAC;IAEzC,iBAAiB;QACtB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,GAAC,uDAAe,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC9E,CAAC;IAEM,4BAA4B,CAAC,EAAE;QAEpC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,GAAC,IAAI,CAAC,SAAS,CAAC,4BAA4B,GAAG,EAAE,CAAC;IAC9F,CAAC;IAGM,sBAAsB,CAAC,YAAqB;QACjD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,sBAAsB,GAAI,YAAY,CAAC;IAErG,CAAC;IAEM,UAAU,CAAC,OAAiB;QACjC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,EAAG,OAAO,CAAC;IAEpF,CAAC;IAEM,QAAQ,CAAC,OAAiB;QAE/B,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,EAAG,OAAO,CAAC;IAEpF,CAAC;IAED,sBAAsB;QACpB,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC;QACnE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;;sEAvCU,WAAW;8FAAX,WAAW,WAAX,WAAW,mBAFV,MAAM;6FAEP,WAAW;cAHvB,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACZD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AAEwB;AACb;AACK;AACpB;;;AAKhC,MAAM,gBAAgB;IAO3B,mEAAmE;IACnE,YAAoB,UAAuB;QAAvB,eAAU,GAAV,UAAU,CAAa;QAPpC,aAAQ,GAAG,KAAK,CAAC;QAChB,cAAS,GAAG,uDAAe,CAAC,SAAS,CAAC;QACvC,kBAAa,GAAG,IAAI,oDAAe,CAAY,IAAI,iEAAS,EAAE,CAAC,CAAC;QAChE,kBAAa,GAAG,IAAI,oDAAe,CAAc,EAAE,CAAC,CAAC;QAC5D,+CAA+C;QAC/C,gBAAW,GAAG,qEAAW,CAAC,iBAAiB,CAAC;IAEI,CAAC;IAE1C,cAAc;QACnB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;aAC1D,SAAS,CAAC,CAAC,GAAiB,EAAE,EAAE,GAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAC,CAAC,CAAC;IACrE,CAAC;IAEM,eAAe,CAAC,SAAqB;QAC1C,IAAG,IAAI,CAAC,QAAQ,IAAI,KAAK;YACvB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC;;YAEhF,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC;IAClF,CAAC;;gFApBQ,gBAAgB;mGAAhB,gBAAgB,WAAhB,gBAAgB,mBAFf,MAAM;6FAEP,gBAAgB;cAH5B,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACTD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AAEwB;AACT;AACC;AACpB;;;AAK9B,MAAM,kBAAkB;IAM7B,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAL1C,eAAU,GAAG,qEAAW,CAAC,iBAAiB,CAAC;QAC3C,aAAQ,GAAG,KAAK,CAAC;QACjB,YAAO,GAAG,IAAI,oDAAe,CAAc,IAAI,qEAAW,EAAE,CAAC,CAAC;QAC9D,cAAS,GAAG,uDAAe,CAAC,WAAW,CAAC;QACxC,oBAAe,GAAG,IAAI,oDAAe,CAAgB,EAAE,CAAC,CAAC;IACZ,CAAC;IAE9C,kBAAkB;QAChB,IAAI,CAAC,UAAU;aACZ,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;aAC5C,SAAS,CAAC,CAAC,GAAkB,EAAE,EAAE;YAChC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACP,CAAC;IAED,qBAAqB,CAAC,SAAsB;QAC1C,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK;YACxB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CACzB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EACvC,SAAS,CACV,CAAC;aACC;YACH,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CACzB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EACvC,SAAS,CACV,CAAC;SACH;IACH,CAAC;;oFA5BU,kBAAkB;qGAAlB,kBAAkB,WAAlB,kBAAkB,mBAFjB,MAAM;6FAEP,kBAAkB;cAHhC,wDAAU;eAAC;gBACR,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACTH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AACJ;AACoB;AACO;AACP;;;AAMpD,MAAM,iBAAiB;IAQ5B,YAAoB,UAAuB;QAAvB,eAAU,GAAV,UAAU,CAAa;QAPpC,aAAQ,GAAG,KAAK,CAAC;QACjB,mBAAc,GAAG,IAAI,oDAAe,CAAiB,IAAI,6EAAc,EAAE,CAAC,CAAC;QAC3E,mBAAc,GAAG,IAAI,oDAAe,CAAmB,EAAE,CAAC,CAAC;QAElE,gBAAW,GAAG,wEAAW,CAAC,iBAAiB,CAAC;QACpC,cAAS,GAAG,uDAAe,CAAC,UAAU,CAAC;IAEA,CAAC;IAEzC,iBAAiB;QACtB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,uDAAe,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IACrF,CAAC;IAEM,aAAa;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;aACjE,SAAS,CAAC,CAAC,GAAqB,EAAE,EAAE,GAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAC,CAAC,CAAC;IAC1E,CAAC;IAEM,gBAAgB,CAAC,UAA2B;QACjD,IAAG,IAAI,CAAC,QAAQ,IAAG,KAAK;YACtB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAG,UAAU,CAAC,CAAC;;YAEnF,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAG,UAAU,CAAC,CAAC;IACvF,CAAC;;kFAxBU,iBAAiB;oGAAjB,iBAAiB,WAAjB,iBAAiB,mBAFhB,MAAM;6FAEP,iBAAiB;cAH7B,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACTD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AAEsB;AACN;AACpB;AACgB;;;AAKhD,MAAM,aAAa;IAaxB,YAAoB,UAAuB;QAAvB,eAAU,GAAV,UAAU,CAAa;QAZpC,aAAQ,GAAG,KAAK,CAAC;QAIxB,gBAAW,GAAG,qEAAW,CAAC,iBAAiB,CAAC;QACpC,cAAS,GAAG,uDAAe,CAAC,MAAM,CAAC;QAC3C,gBAAW,GAAG,qEAAW,CAAC,oBAAoB,CAAC;QAExC,eAAU,GAAG,IAAI,oDAAe,CAAY,IAAI,kEAAS,EAAE,CAAC,CAAC;QAC7D,eAAU,GAAG,IAAI,oDAAe,CAAc,EAAE,CAAC,CAAC;QAIvD,IAAI,CAAC,UAAU,GAAG,qEAAW,CAAC,SAAS,CAAC;QACxC,IAAI,CAAC,SAAS,GAAG,uDAAe,CAAC,WAAW,CAAC;IAG9C,CAAC;IAEK,iBAAiB;QACtB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,uDAAe,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IACrF,CAAC;IAEM,6BAA6B,CAAC,gBAAwB;QAC3D,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,uDAAe,CAAC,UAAU,CAAC,8BAA8B,GAAG,gBAAgB,CAAC,CAAC;IAC9H,CAAC;IAEM,SAAS;QACd,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;aACjE,SAAS,CAAC,CAAC,GAAiB,EAAE,EAAE,GAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAC,CAAC,CAAC;IAClE,CAAC;IAEM,kBAAkB,CAAC,UAAkB;QAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,kBAAkB,GAAG,UAAU,CAAC;QAC9E,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAGD,0CAA0C;IAC1C,0HAA0H;IAC1H,qCAAqC;IACrC,IAAI;IAGG,YAAY,CAAC,MAAkB;QACpC,IAAG,IAAI,CAAC,QAAQ,IAAG,KAAK;YACtB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAG,MAAM,CAAC,CAAC;;YAE/E,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAG,MAAM,CAAC,CAAC;IACnF,CAAC;;0EAlDU,aAAa;gGAAb,aAAa,WAAb,aAAa,mBAFZ,MAAM;6FAEP,aAAa;cAHzB,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACTD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AAEwB;AACX;AACG;AACpB;;;AAKhC,MAAM,iBAAiB;IAO5B,mEAAmE;IACnE,YAAoB,UAAuB;QAAvB,eAAU,GAAV,UAAU,CAAa;QAPpC,aAAQ,GAAG,KAAK,CAAC;QAChB,cAAS,GAAG,uDAAe,CAAC,UAAU,CAAC;QACxC,mBAAc,GAAG,IAAI,oDAAe,CAAa,IAAI,mEAAU,EAAE,CAAC,CAAC;QACnE,mBAAc,GAAG,IAAI,oDAAe,CAAe,EAAE,CAAC,CAAC;QAC9D,+CAA+C;QAC/C,gBAAW,GAAG,qEAAW,CAAC,iBAAiB,CAAC;IAEI,CAAC;IAE1C,eAAe;QACpB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;aAC1D,SAAS,CAAC,CAAC,GAAkB,EAAE,EAAE,GAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAC,CAAC,CAAC;IACvE,CAAC;IAEM,gBAAgB,CAAC,UAAuB;QAC7C,IAAG,IAAI,CAAC,QAAQ,IAAI,KAAK;YACvB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC;;YAEjF,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC;IACnF,CAAC;;kFApBQ,iBAAiB;oGAAjB,iBAAiB,WAAjB,iBAAiB,mBAFhB,MAAM;6FAEP,iBAAiB;cAH7B,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACTD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAyC;AACM;AACqB;AACrB;AACwD;AACxD;AACmB;AAGI;AAOqB;;AAE3F,kEAAkE;AAyB3D,MAAM,oBAAoB;;mGAApB,oBAAoB;kKAApB,oBAAoB,mBAZpB;QACT,8EAAW;KASX,YAnBO;YACP,4DAAY;YACZ,4DAAY;YACZ,kHAAwB;YACxB,4DAAgB;YAChB,0DAAW;YACX,kEAAmB;SAEpB;mIAaU,oBAAoB,mBAtBhB,gFAAc,EAAE,uGAAqB,aAElD,4DAAY;QACZ,4DAAY;QACZ,kHAAwB;QACxB,4DAAgB;QAChB,0DAAW;QACX,kEAAmB;6FAeV,oBAAoB;cAvBhC,sDAAQ;eAAC;gBACR,YAAY,EAAE,CAAC,gFAAc,EAAE,uGAAqB,CAAC;gBACrD,OAAO,EAAE;oBACP,4DAAY;oBACZ,4DAAY;oBACZ,kHAAwB;oBACxB,4DAAgB;oBAChB,0DAAW;oBACX,kEAAmB;iBAEpB;gBACD,SAAS,EAAE;oBACT,8EAAW;iBASX;aACH;;;;;;;;;;;;;;;;;;;;;;;AC1CiD;AAIS;;;;;AAOpD,MAAM,qBAAqB;IAEhC,YACU,WAAwB,EACxB,KAAa,EACb,MAAsB,EACtB,OAA0B;QAH1B,gBAAW,GAAX,WAAW,CAAa;QACxB,UAAK,GAAL,KAAK,CAAQ;QACb,WAAM,GAAN,MAAM,CAAgB;QACtB,YAAO,GAAP,OAAO,CAAmB;IAChC,CAAC;IAEC,QAAQ;;YAEZ,IAAI,QAAQ,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;gBACxC,QAAQ,GAAG,MAAM,CAAC,SAAS;YAC9B,CAAC,CAAC;YACF,IAAI,eAAe,GAAE;gBACnB,kBAAkB,EAAE,IAAI;gBACxB,SAAS,EAAC,IAAI;aACf,CAAC;YACF,eAAe,CAAC,kBAAkB,GAAG,QAAQ,CAAC;YAC9C,eAAe,CAAC,SAAS,GAAG,wEAAW,CAAC,SAAS,CAAC;YAClD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,CAAC,GAAO,EAAC,EAAE;gBACnE,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;gBAC1D,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,CAAC,EAAC,CAAC,KAAK,EAAC,EAAE;gBACT,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACpB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;YACtC,CAAC,CAAC;QACJ,CAAC;KAAA;IAED,kBAAkB;QAEhB,IAAI,CAAC,WAAW,CAAC,oBAAoB,EAAE,CAAC,SAAS,CAAC,CAAC,GAAG,EAAC,EAAE;YACvD,cAAc,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC;YAC9B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC,CAAC;IACJ,CAAC;;0FArCU,qBAAqB;qGAArB,qBAAqB;QCVlC;;6FDUa,qBAAqB;cALjC,uDAAS;eAAC;gBACT,QAAQ,EAAE,mBAAmB;gBAC7B,WAAW,EAAE,gCAAgC;gBAC7C,SAAS,EAAE,CAAC,gCAAgC,CAAC;aAC9C;;;;;;;;;;;;;;AEVD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAkD;AACkB;AAEE;AACxB;;;;;;;;;;;;ICyBlB,0EAEI;IAAA;IAAA,0EACI;IAAA;IAAA,6EAA0D;IAAlB,+SAAiB;IAAC,iEAAM;IAAA,4DAAS;IAC7E;IAAA,4DAAM;IACV;IAAA,4DAAM;;;;IAEN,0EAEI;IAAA;IAAA,0EACI;IAAA;IAAA,qFACI;IAAA;IAAA,4EAAW;IAAA,gEAAK;IAAA,4DAAY;IAC5B;IAAA,uEACJ;IAAA;IAAA,4DAAiB;IACjB;IAAA,8EAA2E;IAAtB,oTAAqB;IAAC,2GACrE;IAAA,4DAAS;IACnB;IAAA,4DAAM;IACV;IAAA,4DAAM;;;IAPkB,0DAA+B;IAA/B,0GAA+B;;AD5B5E,MAAM,cAAc;IASzB,YAAoB,KAAa,EAAU,WAAwB;QAA/C,UAAK,GAAL,KAAK,CAAQ;QAAU,gBAAW,GAAX,WAAW,CAAa;QALnE,yBAAoB,GAAW,SAAS,CAAC;QACzC,sBAAiB,GAAG,qEAAW,CAAC,OAAO,CAAC;QACxC,qBAAgB,GAAG,2DAAW,CAAC,oBAAoB,CAAC;QACpD,eAAU,GAAY,qEAAW,CAAC,UAAU,CAAC;IAE0B,CAAC;IAExE,QAAQ;QACN,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACzB;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YACtC,KAAK,EAAE;gBACL,oCAAoC;gBACpC,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,KAAK,CAAC;aACxC;YACD,QAAQ,EAAE,CAAC,EAAE,CAAC;SACf,CAAC,CAAC;IACL,CAAC;IAED,KAAK;QACH,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC;IAChD,CAAC;IAED,SAAS;QACP,cAAc,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC;QAC5D,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IAClC,CAAC;IAED,gBAAgB;QACd,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;YAC9C,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7D,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,gBAAgB,CAAC,EAAE;gBACtC,WAAW,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE;aACrC,CAAC,CAAC;SACJ;IACH,CAAC;;4EAzCU,cAAc;8FAAd,cAAc;QCX3B,0EACI;QAAA;QAAA,yEACI;QAAA;QAAA,yEACI;QAAA;QAAA,yEAEI;QAAA;QAAA,yEACI;QAAA;QAAA,0EACI;QAAA;QAAA,0EACI;QAAA;QAAA,0EACI;QAAA;QAAA,yEAAiB;QAAA,gEAAI;QAAA,4DAAK;QAC1B;QAAA,wEACI;QAAA,ybAG6D;QAAA,iEAC7D;QAAA,iIAA+B;QAAA,4DAAI;QACvC;QAAA,sEACI;QAAA;QAAA,qEACI;QAAA;QAAA,sEAAI;QAAA,6EAAiB;QAAA,4DAAK;QAC1B;QAAA,sEAAI;QAAA,gFAAoB;QAAA,4DAAK;QAC7B;QAAA,sEAAI;QAAA,8EAAkB;QAAA,4DAAK;QAC3B;QAAA,sEAAI;QAAA,kFAAsB;QAAA,4DAAK;QACnC;QAAA,4DAAI;QACR;QAAA,4DAAK;QACT;QAAA,4DAAM;QACV;QAAA,4DAAM;QACV;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,gFACI;QAAA;QAAA,6GAEI;QAKJ;QAAA,8GAEI;QASR;QAAA,4DAAW;QACf;QAAA,4DAAM;QACV;QAAA,4DAAM;QAEV;QAAA,4DAAM;QACV;QAAA,4DAAM;QACV;QAAA,4DAAM;QACV;QAAA,4DAAO;QAEP;QAAA,mFAEI;QAAA;QAAA,yEAAmB;QAAA,wDAA4B;QAAA,4DAAI;QACvD;QAAA,4DAAc;;QA3DgB,oFAAuB;QA6BpB,2DAAkB;QAAlB,gFAAkB;QAOlB,0DAAmB;QAAnB,iFAAmB;QAoBM,0DAAoB;QAApB,6EAAoB;QAEvD,0DAA4B;QAA5B,sGAA4B;;6FD/CtC,cAAc;cAL1B,uDAAS;eAAC;gBACT,QAAQ,EAAE,WAAW;gBACrB,WAAW,EAAE,wBAAwB;gBACrC,SAAS,EAAE,CAAC,wBAAwB,CAAC;aACtC;;;;;;;;;;;;;;AEED;AAAA;AAAO,MAAM,IAAI;CAWhB;;;;;;;;;;;;;ACvBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0D;AACD;AAC0C;AAClB;AACqB;AAEzB;AACW;AAEI;AAE5F,+CAA+C;AACkC;AACS;AACU;AAMnE;;;;;;;;;;;;;;;;;;;;;ICEtB,iFACC;IAAA,uDAAgB;IAAA,4DAAa;;;IADgB,kFAAsB;IACnE,0DAAgB;IAAhB,uGAAgB;;;IAqBnB,iFACC;IAAA,uDAAyB;IAAA,4DAAa;;;IADyB,4FAA+B;IAC9F,0DAAyB;IAAzB,+GAAyB;;;IAQ7B,4EACE;IAAA;IAAA,mEAA2D;IAC3D;IAAA,2EAAyB;IAAA,wFAA6B;IAAA,4DAAO;IACjE;IAAA,4DAAY;;;IACZ,4EACE;IAAA;IAAA,mEAA2D;IAC3D;IAAA,2EAAyB;IAAA,uFAA4B;IAAA,4DAAO;IAChE;IAAA,4DAAY;;;;IAXZ,yEACE;IAAA;IAAA,qFACE;IAAA;IAAA,4EAAW;IAAA,uEAAY;IAAA,4DAAY;IACnC;IAAA,4EACA;IAD0G,sUAA4B,mBAAW,iBAAiB,CAAC,WAAQ;IAA3K,4DACA;IAAA;IAAA,kIACE;IAGJ;IAAA,oIACE;IAGF;IAAA,4DAAiB;IACnB;IAAA,4DAAM;;;IAVyC,0DAA+B;IAA/B,+FAA+B;IAC/D,0DAA6F;IAA7F,qKAA6F;IAI/F,0DAA6F;IAA7F,qKAA6F;;;;IAUtG,4FAEI;IADA,mWAAsB;IACtB;IAAA,+EAAkC;IAAA,gEAAK;IAAA,4DAAW;IACtD;IAAA,4DAAwB;;;;IAP5B,yEACE;IAAA;IAAA,qFACE;IAAA;IAAA,4EAAW;IAAA,uEAAY;IAAA,4DAAY;IACnC;IAAA,4EACA;IADyG,+RAAS,WAAa,IAAC;IAAhI,4DACA;IAAA;IAAA,0JAEI;IAEJ;IAAA,wFAAwE;IACxE;IAAA,uFAAyC;IAC3C;IAAA,4DAAiB;IAEnB;IAAA,4DAAM;;;;IAT4C,0DAAwB;IAAxB,+EAAwB;IACrC,0DAAgC;IAAhC,iGAAgC;IAIhC,0DAAc;IAAd,qEAAc;;;IAW5C,iFACC;IAAA,uDAAe;IAAA,4DAAa;;;IADe,kFAAqB;IAChE,0DAAe;IAAf,qGAAe;;;;IAJrB,oFACE;IAAA;IAAA,4EAAW;IAAA,uEAAY;IAAA,4DAAY;IACnC;IAAA,iFACG;IADuC,oXAAgD;IACvF;IAAA,+IACC;IACJ;IAAA,4DAAa;IAChB;IAAA,4DAAiB;;;IANmB,0GAAiC;IAGnD,0DAA+B;IAA/B,qFAA+B;;;IAW9C,iFACA;IAAA,uDAAkB;IAAA,4DAAa;;;IADmB,qFAAwB;IAC1E,0DAAkB;IAAlB,oGAAkB;;;IAQhB,iFACE;IAAA,uDAAY;IAAA,4DAAa;;;IADqB,+EAAkB;IAChE,0DAAY;IAAZ,kGAAY;;;;IAOhB,6EAAwI;IAAvC,+TAAsB;IAAiB,uDAAgB;IAAA,4DAAS;;;IAAzB,0DAAgB;IAAhB,oFAAgB;;;;IACxJ,6EAA6G;IAAtC,8TAAqB;IAAiB,uDAAgB;IAAA,4DAAS;;;IAAzB,0DAAgB;IAAhB,oFAAgB;;AD5E5H,MAAM,kBAAkB;IAwC7B,YACU,SAAsB,EACvB,SAA2C,EAC1C,YAAyB,EACzB,oBAAyC,EACzC,0BAAqD,EACrD,sBAA6C,EAC7C,kBAAqC,EACrC,qBAA2C,EAC3C,mBAA8C;IACtD,yCAAyC;IACT,IAAwB;QAVhD,cAAS,GAAT,SAAS,CAAa;QACvB,cAAS,GAAT,SAAS,CAAkC;QAC1C,iBAAY,GAAZ,YAAY,CAAa;QACzB,yBAAoB,GAApB,oBAAoB,CAAqB;QACzC,+BAA0B,GAA1B,0BAA0B,CAA2B;QACrD,2BAAsB,GAAtB,sBAAsB,CAAuB;QAC7C,uBAAkB,GAAlB,kBAAkB,CAAmB;QACrC,0BAAqB,GAArB,qBAAqB,CAAsB;QAC3C,wBAAmB,GAAnB,mBAAmB,CAA2B;QAEtB,SAAI,GAAJ,IAAI,CAAoB;QAlD1D,qBAAgB,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QAWpD,eAAU,GAAY,KAAK,CAAC;QAa5B,aAAQ,GAAG,KAAK,CAAC;QAEjB,UAAK,GAAG,KAAK,CAAC;QASd,iBAAY,GAAW,KAAK,CAAC;QAC7B,sBAAiB,GAAQ,CAAC,CAAC;QAC3B,0BAAqB,GAAmB,IAAI,8FAAe,EAAE,CAAC;IAe5D,CAAC;IAEH,QAAQ;QACJ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;QACrC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,OAAO,GAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,mBAAmB,GAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC;QAEvD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;YAClC,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACxC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACpC,eAAe,EAAC,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC7C,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;YACxB,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACvC,8CAA8C;YAC9C,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,yDAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YAChF,YAAY,EAAE,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;SAC9C,CAAC,CAAC;QACJ,0CAA0C;QACzC,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAG,IAAI,CAAC,QAAQ,EAChB;YACE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC;YAC5C,IAAG,CAAC,IAAI,CAAC,KAAK,EAAC;gBACb,IAAI,CAAC,UAAU,EAAE,CAAC;aACnB;iBACG;gBACF,IAAI,CAAC,gBAAgB,EAAE;aACxB;SAEF;;YACK,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,CAAC;IACrD,CAAC;IAEO,UAAU;QAChB,IAAI,CAAC,oBAAoB,CAAC,mBAAmB,EAAE,CAAC,SAAS,CAAC,CAAC,GAAiB,EAAE,EAAE;YAC9E,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC;YAC7D,GAAG,CAAC,OAAO,CAAC,CAAC,CAAa,EAAE,EAAE;gBAC5B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAC,CAAC;YACjE,CAAC,CAAC;QACJ,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;YACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,wBAAwB,EAAE,GAAG,EAAE;gBACjD,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAQ,CAAC;QACZ,CAAC,CACA,CAAC;IACJ,CAAC;IAEO,mBAAmB;QACzB,IAAI,CAAC,0BAA0B,CAAC,qBAAqB,EAAE,CAAC,SAAS,CAAC,CAAC,GAA6B,EAAE,EAAE;YAClG,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;YAC9B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,yBAAyB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACjF,GAAG,CAAC,OAAO,CAAC,CAAC,CAAyB,EAAE,EAAE;gBACxC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAC,CAAC;YACzE,CAAC,CAAC,CAAC;QACL,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;YACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kCAAkC,EAAE,GAAG,EAAE;gBAC3D,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAQ,CAAC;QACZ,CAAC,CACA,CAAC;IACJ,CAAC;IAEO,YAAY;QAClB,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,CAAC,GAAmB,EAAE,EAAE;YAC1E,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC;YACjE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAe,EAAE,EAAE;gBAC9B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC,UAAU,EAAC,CAAC;YACxE,CAAC,CAAC,CAAC;QACL,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;YACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,0BAA0B,EAAE,GAAG,EAAE;gBACnD,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAQ,CAAC;QACZ,CAAC,CACA,CAAC;IACJ,CAAC;IAEO,gBAAgB;QACtB,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,EAAE,CAAC,SAAS,CAAC,CAAC,GAAuB,EAAE,EAAE;YAClF,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;YAC3B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC;YAC1E,GAAG,CAAC,OAAO,CAAC,CAAC,CAAmB,EAAE,EAAE;gBAClC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,iBAAiB,EAAE,KAAK,EAAE,CAAC,CAAC,cAAc,EAAC,CAAC;YACpF,CAAC,CAAC,CAAC;QACL,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;YACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;gBACxD,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAQ,CAAC;QACZ,CAAC,CACA,CAAC;IACJ,CAAC;IAEO,SAAS;QACf,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,GAAqB,EAAE,EAAE;YAC5E,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC;YAC3D,GAAG,CAAC,OAAO,CAAC,CAAC,CAAiB,EAAE,EAAE;gBAChC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,UAAU,GAAG,GAAG,GAAG,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,KAAK,GAAG,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAC,CAAC;YAC3I,CAAC,CAAC,CAAC;QACL,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;YACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uBAAuB,EAAE,GAAG,EAAE;gBAChD,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAQ,CAAC;QACZ,CAAC,CACA,CAAC;IACJ,CAAC;IAEO,+BAA+B;QACrC,IAAI,cAAc,GAAW,IAAI,CAAC,MAAM,CAAC;QACzC,qEAAqE;QACrE,oCAAoC;QACpC,gBAAgB;QAChB,wBAAwB;QACxB,mBAAmB;QACnB,0CAA0C;QAC1C,yDAAyD;QACzD,iFAAiF;QACjF,eAAe;QACf,aAAa;QACb,UAAU;QACV,QAAQ;QACR,OAAO;IACT,CAAC;IAEK,UAAU;QACd,IAAI,cAAc,GAAW,IAAI,CAAC,MAAM,CAAC;QACzC,IAAI,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,IAAI,CAAC,mBAAmB,CAAC;aACtE,SAAS,CACR,CAAC,GAAU,EAAE,EAAE;YACb,IAAI,GAAG,EAAE;gBACP,GAAG,CAAC,OAAO,CAAC,CAAC,OAAY,EAAE,EAAE;oBAC3B,IAAI,CAAC,qBAAqB,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;oBACvD,IAAI,CAAC,qBAAqB,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;oBACnD,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,GAAE,OAAO,CAAC,iBAAiB,CAAC;oBACxE,IAAI,CAAC,qBAAqB,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;oBAC7D,IAAI,CAAC,qBAAqB,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;oBAC3D,IAAI,CAAC,qBAAqB,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;oBACnE,IAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,IAAI,IAAI,EAAC;wBAC5C,IAAI,CAAC,qBAAqB,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;qBACtD;yBACG;wBACF,IAAI,CAAC,qBAAqB,CAAC,OAAO,GAAC,CAAC,CAAC;qBACtC;oBACD,IAAI,CAAC,iBAAiB,GAAC,IAAI,CAAC,QAAQ,GAAC,OAAO,CAAC,QAAQ,CAAC;oBACtD,IAAI,CAAC,eAAe,GAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,GAAC,OAAO,CAAC,MAAM,CAAC;oBACjE,IAAI,CAAC,uBAAuB,GAAE,IAAI,CAAC,iBAAiB,GAAC,OAAO,CAAC,iBAAiB,CAAC;oBAC/E,IAAI,CAAC,kBAAkB,GAAE,IAAI,CAAC,OAAO,GAAE,OAAO,CAAC,OAAO,CAAC;oBACvD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,UAAU,GAAC,OAAO,CAAC,UAAU,CAAC;oBAC3D,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,GAAE,OAAO,CAAC,WAAW,CAAC;oBAC9E,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,cAAc,GAAC,OAAO,CAAC,cAAc,CAAC;oBAEvE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;oBAC7D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;oBACzD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;oBAC5E,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oBAC7D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;oBAC9D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;oBAClE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;oBAEtE,IAAI,OAAO,CAAC,iBAAiB,IAAI,CAAC,EAAE,EAAE,QAAQ;wBAC5C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;wBACvB,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;wBAC3B,iFAAiF;wBACjF,qCAAqC;wBACrC,0DAA0D;qBAC3D;yBACI;wBACH,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;wBACxB,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;wBAC7B,mDAAmD;wBACnD,mEAAmE;wBACnE,wDAAwD;wBACxD,4DAA4D;qBAC3D;oBACD,IAAG,OAAO,CAAC,iBAAiB,IAAI,CAAC,EAAC,EAAE,OAAO;wBACzC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;qBAC1B;yBACG;wBACF,IAAI,CAAC,YAAY,GAAE,KAAK,CAAC;qBAC1B;oBAED,IAAI,OAAO,CAAC,iBAAiB,IAAI,CAAC,EAAE,MAAM;qBAC1C;wBACE,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;wBAC7B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,eAAe,EAAE,CAAC;wBAC9C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,sBAAsB,EAAE,CAAC;qBACtD;yBACI;wBACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;wBACjE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,sBAAsB,EAAE,CAAC;qBACtD;gBACH,CAAC,CAAC;aACH;QACH,CAAC,CACF,CAAC;IACN,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,iBAAiB,GAAC,IAAI,CAAC,QAAQ,GAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC;QAChE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,GAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;QAC7D,IAAI,CAAC,iBAAiB,GAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC;QACrE,IAAI,CAAC,OAAO,GAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;QAClD,IAAI,CAAC,UAAU,GAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC;QACvD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,GAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC;QACvE,IAAI,CAAC,cAAc,GAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC;QAE/D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACjF,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC7E,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;QAChG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACjF,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAClF,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;QACtF,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;QAE1F,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,IAAI,CAAC,EAAE,EAAE,OAAO;YAC/D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;YAC3B,iFAAiF;YACjF,qCAAqC;YACrC,0DAA0D;SAC3D;aACI;YACH,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;YAC7B,mDAAmD;YACnD,mEAAmE;YACnE,wDAAwD;YACxD,4DAA4D;SAC3D;QACX,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,IAAI,CAAC,EAAE,MAAM;SAC9D;YACE,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,eAAe,EAAE,CAAC;YAC9C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,sBAAsB,EAAE,CAAC;SACtD;aACI;YACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;YACjE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,sBAAsB,EAAE,CAAC;SACtD;IAEH,CAAC;IACD,eAAe,CAAC,QAAgB;QAC9B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,oBAAoB,CAAC,iBAAyB;QAC5C,IAAI,CAAC,YAAY,GAAC,KAAK;QACvB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,CAAC;QACvC,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,iBAAiB,IAAI,CAAC,EAAE,OAAO;SACnC;YACE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;SAC5B;aAED;YACE,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;SAC5B;QACD,IAAG,iBAAiB,IAAI,CAAC,EAAE,MAAM;SACjC;YACE,IAAI,CAAC,YAAY,GAAG,IAAI;SACzB;aACG;YACF,IAAI,CAAC,YAAY,GAAG,KAAK;SAC1B;QACD,IAAG,iBAAiB,IAAI,CAAC,EAAE,MAAM;SACjC;YACE,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,eAAe,EAAE,CAAC;YAC9C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,sBAAsB,EAAE,CAAC;SACtD;aACG;YACF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;YACjE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,sBAAsB,EAAE,CAAC;SACtD;IACH,CAAC;IAED,SAAS,CAAC,CAAC,EAAC,iBAAwB;QAElC,MAAM,YAAY,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACrC,IAAI,KAAK,GAAW,mBAAmB,CAAC;QACxC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,kCAAkC;YAC1D,kEAAkE;YAClE,CAAC,CAAC,cAAc,EAAE,CAAC;SACpB;aAEG;YACF,IAAG,iBAAiB,IAAI,CAAC,IAAI,iBAAiB,IAAI,CAAC,EAAE,qCAAqC;aAC1F;gBACE,OAAO;aACR;iBAEI;gBACH,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBAC1H,CAAC,CAAC,cAAc,EAAE,CAAC;iBACpB;aACF;SAEF;IACH,CAAC;IAED,UAAU;QACR,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,CAAC;IACzC,CAAC;IAGD,iBAAiB,CAAC,UAAkB;QAClC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,cAAc,CAAC,OAAe;QAC5B,IAAI,CAAC,OAAO,GAAE,IAAI,CAAC,kBAAkB,GAAE,OAAO;IAChD,CAAC;IAED,qBAAqB,CAAC,cAAsB;QAC1C,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;IAED,SAAS;QACP,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,UAAU;QAER,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;YAErB,IAAI,eAAgC,CAAC;YACrC,eAAe,GAAG,IAAI,8FAAe,EAAE,CAAC;YACxC,eAAe,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;YACzC,eAAe,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC;YACjD,eAAe,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACzC,eAAe,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;YAC3D,oCAAoC;YAGpC,eAAe,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YAC7C,eAAe,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;YACrD,+DAA+D;YAC/D,wEAAwE;YACxE,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;YACnD,IAAG,OAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,QAAQ,EAAC;gBACnD,eAAe,CAAC,WAAW,GAAG,oCAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;aACzF;iBACI;gBACL,eAAe,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC;aAC3D;YACD,eAAe,CAAC,WAAW,GAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,+BAA+B,CAAC,CAAC,KAAK,CAAC;YAC7F,eAAe,CAAC,SAAS,GAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,+BAA+B,CAAC,CAAC,QAAQ,CAAC;YAC9F,yCAAyC;YACzC,yCAAyC;YACzC,qCAAqC;YACrC,sCAAsC;YACtC,0CAA0C;YAC1C,eAAe,CAAC,QAAQ,GAAI,IAAI,CAAC;YACjC,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC,EAAC;gBAC9B,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;aACxC;iBACI;gBACH,eAAe,CAAC,OAAO,GAAG,CAAC,CAAC;aAC7B;YAED,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,EAAE;gBAC1B,IAAG,IAAI,CAAC,KAAK,EAAC;oBACZ,IAAI,CAAC,qBAAqB;yBACzB,WAAW,CAAC,eAAe,CAAC;yBAC5B,SAAS,CACR,GAAG,CAAC,EAAE;wBACJ,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBAC3B,CAAC,EACD,KAAK,CAAC,EAAE;wBACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;4BACpC,QAAQ,EAAE,IAAI;4BACd,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAQ,CAAC;oBACZ,CAAC,CACF,CAAC;iBACH;qBACG;oBACJ,IAAI,CAAC,qBAAqB;yBACvB,gBAAgB,CAAC,eAAe,CAAC;yBACjC,SAAS,CACR,GAAG,CAAC,EAAE;wBACJ,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBAC3B,CAAC,EACD,KAAK,CAAC,EAAE;wBACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;4BACpC,QAAQ,EAAE,IAAI;4BACd,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAQ,CAAC;oBACZ,CAAC,CACF,CAAC;iBACH;aACF;iBAAM;gBACL,eAAe,CAAC,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC;gBACxD,eAAe,CAAC,UAAU,GAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,+BAA+B,CAAC,CAAC,QAAQ,CAAC;gBAC/F,eAAe,CAAC,uBAAuB,GAAG,IAAI,CAAC,IAAI,CAAC,uBAAuB;gBAC3E,IAAG,IAAI,CAAC,KAAK,EAAC;oBACZ,IAAI,CAAC,qBAAqB;yBACzB,YAAY,CAAC,eAAe,CAAC;yBAC7B,SAAS,CACR,GAAG,CAAC,EAAE;wBACJ,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBAC3B,CAAC,EACD,KAAK,CAAC,EAAE;wBACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;4BACpC,QAAQ,EAAE,IAAI;4BACd,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAQ,CAAC;oBACZ,CAAC,CACF,CAAC;iBACH;qBACC;oBACF,IAAG,eAAe,CAAC,QAAQ,IAAI,IAAI,CAAC,qBAAqB,CAAC,QAAQ,IAAI,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,IAAI,eAAe,CAAC,iBAAiB,IAAI,IAAI,CAAC,qBAAqB,CAAC,MAAM,IAAI,eAAe,CAAC,MAAM,IAAI,IAAI,CAAC,qBAAqB,CAAC,UAAU,IAAI,eAAe,CAAC,UAAU,IAAI,IAAI,CAAC,qBAAqB,CAAC,cAAc,IAAI,eAAe,CAAC,cAAc,IAAI,IAAI,CAAC,qBAAqB,CAAC,WAAW,IAAI,eAAe,CAAC,WAAW,IAAI,IAAI,CAAC,qBAAqB,CAAC,OAAO,IAAI,eAAe,CAAC,OAAO,EAAC;wBAErf,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,sBAAsB,EAAE,GAAG,EAAE;4BAC/C,QAAQ,EAAE,IAAI;4BACd,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAQ,CAAC;wBACV,OAAO;qBACR;oBACD,IAAI,CAAC,qBAAqB;yBACvB,SAAS,CAAC,eAAe,CAAC;yBAC1B,SAAS,CACR,GAAG,CAAC,EAAE;wBACJ,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBAC3B,CAAC,EACD,KAAK,CAAC,EAAE;wBACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;4BACpC,QAAQ,EAAE,IAAI;4BACd,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAQ,CAAC;oBACZ,CAAC,CACF,CAAC;iBACL;aACA;SACF;IACH,CAAC;;oFAxgBU,kBAAkB,w9CAmDnB,wEAAe;kGAnDd,kBAAkB,+GAHlB,CAAC,mHAAyB,EAAE,0FAAiB,EAAE,qGAAmB;YAC3E,yGAAqB,EAAE,uGAAoB,EAAE,kHAAyB,CAAC;QChC3E;QAAA,8EACE;QAAA;QAAA,mFACF;QAAA;QAAA,0EACA;QAAA;QAAA,yEACE;QAAA;QAAA,yEACE;QAAA;QACF;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,6EACE;QADM,2IAAS,eAAW,IAAC;QAC3B;QAAA,qEAEJ;QAAA;QAAA,4DAAS;QACT;QAAA,4DAAM;QACR;QAAA,4DAAM;QAEN;QAAA,0EAEE;QAAA;QAAA,0EACG;QAAA;QAAA,qFACG;QAAA;QAAA,6EAAW;QAAA,sEAAU;QAAA,4DAAY;QACjC;QAAA,iFACG;QADqC,yKAAmB,iCAA6B,IAAC;QACtF;QAAA,+HACC;QACJ;QAAA,4DAAa;QAChB;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACR;QAAA,4DAAM;QAEN;QAAA,0EAEE;QAAA;QAAA,2EACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,kEAAM;QAAA,4DAAY;QAC7B;QAAA,2EAAgG;QAClG;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACR;QAAA,4DAAM;QAEN;QAAA,0EACE;QAAA;QAAA,0EACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,4EAAgB;QAAA,4DAAY;QACvC;QAAA,kFACG;QAD6C,yKAAmB,sCAAkC,IAAC;QACnG;QAAA,+HACC;QACJ;QAAA,4DAAa;QAChB;QAAA,4DAAiB;QAClB;QAAA,4DAAM;QACN;QAAA,kHACE;QAaF;QAAA,kHACE;QAYJ;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,0EACE;QAAA;QAAA,wIACE;QAMJ;QAAA,4DAAM;QACR;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,0EACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,oEAAQ;QAAA,4DAAY;QACjC;QAAA,kFACE;QADwC,yKAAmB,mCAA+B,IAAC;QAC3F;QAAA,+HACA;QACF;QAAA,4DAAa;QACd;QAAA,4DAAiB;QAClB;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,sFACE;QAAA;QAAA,8EAAW;QAAA,0EAAa;QAAA,4DAAY;QACpC;QAAA,mFACE;QAD0C,0KAAmB,uCAAmC,IAAC;QACjG;QAAA,iIACE;QACJ;QAAA,4DAAa;QAChB;QAAA,4DAAiB;QAClB;QAAA,4DAAM;QAEN;QAAA,4EACE;QAAA;QAAA,4EACE;QAAA;QAAA,yHAAwI;QACxI;QAAA,yHAA6G;QAC/G;QAAA,4DAAM;QACN;QAAA,4DAAM;QACR;QAAA,4DAAM;QAAA,4DAAO;QACb;QAAA,4DAAmB;QACrB;QAAA,4DAAW;QACX;;QAlHM,0DAAoB;QAApB,iFAAoB;QAgBF,2DAAiC;QAAjC,uGAAiC;QAGlC,0DAAiC;QAAjC,mFAAiC;QAUlC,2DAAiC;QAAjC,uGAAiC;QASnC,2DAAiC;QAAjC,uGAAiC;QAGhC,0DAAmD;QAAnD,4FAAmD;QAKjE,0DAAqB;QAArB,mFAAqB;QAcrB,0DAAoB;QAApB,kFAAoB;QAgBP,0DAAkB;QAAlB,gFAAkB;QAWhB,0DAAiC;QAAjC,uGAAiC;QAGrC,0DAAqC;QAArC,qFAAqC;QAMjC,0DAAiC;QAAjC,uGAAiC;QAGnC,0DAAmC;QAAnC,yFAAmC;QAQzB,0DAAqD;QAArD,2HAAqD;QACrD,0DAA4B;QAA5B,4FAA4B;;6FD5E7C,kBAAkB;cAP9B,uDAAS;eAAC;gBACT,QAAQ,EAAE,gBAAgB;gBAC1B,WAAW,EAAE,6BAA6B;gBAC1C,SAAS,EAAE,CAAC,6BAA6B,CAAC;gBAC1C,SAAS,EAAE,CAAC,mHAAyB,EAAE,0FAAiB,EAAE,qGAAmB;oBAC3E,yGAAqB,EAAE,uGAAoB,EAAE,kHAAyB,CAAC;aAC1E;68BAoDyC,kBAAkB;sBAAvD,oDAAM;uBAAC,wEAAe;;;;;;;;;;;;;;AEtF3B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA4E;AACY;AAGhC;AAOuC;AAGO;AACxC;AAQQ;AACX;AACE;AACZ;AACQ;;;;;;;;;;;;;;;;;;;ICjB3C,iFACE;IAAA,uDACF;IAAA,4DAAa;;;IAFqC,gFAAmB;IACnE,0DACF;IADE,yHACF;;;IAEF,4EACE;IAAA,gHACF;IAAA,4DAAY;;;IAOV,iFACE;IAAA,uDACF;IAAA,4DAAa;;;IAFmC,iFAAoB;IAClE,0DACF;IADE,0HACF;;;IAEF,4EACE;IAAA,4GACF;IAAA,4DAAY;;;IASV,iFACE;IAAA,uDACF;IAAA,4DAAa;;;IAFiC,2FAA8B;IAC1E,0DACF;IADE,wJACF;;;IAEF,4EACE;IAAA,2GACF;IAAA,4DAAY;;;IAyBd,yEACE;IAAA,mGACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,iIACF;;;IAIA,yEACE;IAAA,+FACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,qIACF;;;IAIA,yEACE;IAAA,0FACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,yHACF;;;IAIA,yEACE;IAAA,8FACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,4HACF;;;IAIA,yEACE;IAAA,2FACF;IAAA,4DAAK;;;;IACL,yEACE;IAAA;IAAA,+EAA8E;IAA5C,mYAA2C;IAAC,iEAAM;IAAA,4DAAW;IACjG;IAAA,4DAAK;;;IAGP,oEAA4D;;;IAC5D,oEAAiE;;;ADxElE,MAAM,4BAA4B;IA2DvC,YAAqB,SAAsB,EACnC,UAAsB,EACpB,kBAAqC,EACrC,gBAAiC,EACjC,0BAAqD;QAJ1C,cAAS,GAAT,SAAS,CAAa;QACnC,eAAU,GAAV,UAAU,CAAY;QACpB,uBAAkB,GAAlB,kBAAkB,CAAmB;QACrC,qBAAgB,GAAhB,gBAAgB,CAAiB;QACjC,+BAA0B,GAA1B,0BAA0B,CAA2B;QA7D/D,kBAAa,GAAG,KAAK,CAAC;QAEtB,cAAS,GAAG,IAAI,uEAAc,CAAM,IAAI,EAAE,EAAE,CAAC,CAAC;QAC9C,qBAAgB,GAAG,yDAAW,CAAC,oBAAoB,CAAC;QAC7C,mBAAc,GAAiB,EAAE,CAAC;QAClC,cAAS,GAAgB,EAAE,CAAC;QAC5B,iBAAY,GAAgB,EAAE,CAAC;QAC/B,sBAAiB,GAAiB,EAAE,CAAC;QAE5C,aAAQ,GAAG,MAAM,CAAC;QAIlB,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QAE9C,eAAU,GAAG,IAAI,0EAAkB,EAA0B,CAAC;QAC9D,iBAAY,GAAa,EAAE,CAAC;QAK5B,SAAI,GAAG;YACL,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,eAAe,EAAE;YACvD,EAAE,KAAK,EAAE,uBAAuB,EAAE,MAAM,EAAE,YAAY,EAAE;YACxD,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE;YACvC,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE;SAC/C,CAAC;QACF,qBAAgB,GAAa;YAC3B,mBAAmB;YACnB,uBAAuB;YACvB,WAAW;YACX,cAAc;YACd,QAAQ;SACT,CAAC;QACF,qBAAgB,GAAa,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QA6BzD,IAAI,CAAC,kBAAkB,GAAG,IAAI,qFAAqB,EAAE,CAAC;QACtD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;QAChD,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,EAAE;YAC9D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACF,CAAC;IAjCJ,IAAI,CAAC,KAA4B;QAC/B,8EAAe,CACb,IAAI,CAAC,gBAAgB,EACrB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,YAAY,CACnB,CAAC;IACJ,CAAC;IACD,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAC3D;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SAChE;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;YAC7B,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;SACvC;QACD,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACnC,CAAC;IAgBD,QAAQ;QACL,IAAI,CAAC,eAAe,GAAG,IAAI,wDAAS,CAAC;YACpC,eAAe,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC7D,YAAY,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC1D,eAAe,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;SACvC,CAAC,CAAC;QACH,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAEA,iBAAiB;QACf,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,CAAC,SAAS,CAAC,CAAC,SAAgB,EAAE,EAAE;YAC1E,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;YAC5B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7E,SAAS,CAAC,OAAO,CAAC,CAAC,CAAM,EAAE,EAAE;gBAC3B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,iBAAiB,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3E,CAAC,CAAC,CAAC;QACL,CAAC,EAAE,KAAK,CAAC,EAAE;YACT,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mCAAmC,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;gBACtE,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACP,wHAAwH;QAC1H,CAAC,CACA,CAAC;IACJ,CAAC;IAEA,cAAc;QACb,IAAI,CAAC,kBAAkB,CAAC,wBAAwB,EAAE,CAAC,SAAS,CAC5D,CAAC,GAAwB,EAAE,EAAE;YAC3B,IAAI,CAAC,cAAc,GAAE,EAAE,CAAC;YACxB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAC,KAAK,EAAG,mBAAmB,EAAE,KAAK,EAAE,IAAI,EAAC,CAAC;YACpE,GAAG,CAAC,OAAO,CAAC,CAAC,OAA0B,EAAE,EAAE;gBACzC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;oBACvB,KAAK,EAAG,OAAO,CAAC,WAAW;oBAC3B,KAAK,EAAG,OAAO,CAAC,YAAY;iBAC7B,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;YACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mCAAmC,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;gBACtE,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACT,CAAC,CACF,CAAC;IACJ,CAAC;IAEC,YAAY;QACV,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YAC5D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;IACF,yBAAyB,CAAC,KAAK;QAC5B,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IAED,sBAAsB;QACrB,mCAAmC;QACnC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;QAChF,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,sBAAsB,EAAE,CAAC;QACrE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;QAC7E,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,sBAAsB,EAAE,CAAC;QAClE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;QAChF,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,sBAAsB,EAAE,CAAC;QACpE,IAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,eAAe,IAAE,IAAI;YACnD,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,YAAY,IAAE,IAAI;YAC7C,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,eAAe,IAAE,IAAI;YAAE,OAAO;QAC1D,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE;YAC9B,IAAI,IAAI,CAAC,0BAA0B,CAAC,QAAQ,IAAI,KAAK,EACrD;gBACE,IAAI,CAAC,0BAA0B,CAAC,wBAAwB,CACxD,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;oBAC5C,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;oBAC3B,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;oBACzE,IAAI,CAAC,KAAK,EAAE,CAAC;oBACb,IAAI,GAAG,IAAI,CAAC;wBACX,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,4BAA4B,EAAE,EAAE,EAAE;4BACjD,QAAQ,EAAE,IAAI;4BACd,UAAU,EAAC,CAAC,eAAe,CAAC;4BAC5B,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;oBACP,0HAA0H;yBACrH,IAAI,GAAG,IAAI,CAAC,CAAC;wBACZ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oCAAoC,EAAE,EAAE,EAAE;4BAC9D,QAAQ,EAAE,IAAI;4BACf,gCAAgC;4BAC/B,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;oBACL,yHAAyH;yBACpH,IAAI,GAAG,IAAI,CAAC;wBAChB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,EAAE;4BAChD,QAAQ,EAAE,IAAI;4BACd,+BAA+B;4BAC/B,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;oBACL,8GAA8G;;wBAE/G,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oCAAoC,EAAE,EAAE,EAAE;4BACzD,QAAQ,EAAE,IAAI;4BACf,gCAAgC;4BAC/B,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;oBACP,8HAA8H;gBAC9H,CAAC,EACH,KAAK,CAAC,EAAE;oBACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;wBAClC,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACL,iGAAiG;gBACnG,CAAC,CAAC,CAAC;aACF;iBAED;gBACE,IAAI,WAAW,GAAG,IAAI,sFAAkB,EAAE,CAAC;gBAC3C,WAAW,CAAC,oBAAoB,GAAC,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC;gBACpG,WAAW,CAAC,eAAe,GAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,eAAe,CAAC;gBACvE,WAAW,CAAC,YAAY,GAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,YAAY,CAAC;gBACjE,WAAW,CAAC,eAAe,GAAE,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,eAAe,CAAC;gBACxE,IAAI,CAAC,0BAA0B,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;oBACpF,IAAI,GAAG,IAAI,CAAC;wBACZ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,8BAA8B,EAAE,EAAE,EAAE;4BAClD,QAAQ,EAAE,IAAI;4BACd,UAAU,EAAC,CAAC,eAAe,CAAC;4BAC5B,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;oBACP,+HAA+H;yBAC5H,IAAI,GAAG,IAAI,CAAC,CAAC;wBAClB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oCAAoC,EAAE,EAAE,EAAE;4BACtD,QAAQ,EAAE,IAAI;4BACf,gCAAgC;4BAC/B,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;oBACP,yHAAyH;yBACpH,IAAI,GAAG,IAAI,CAAC;wBACjB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,EAAE;4BAC7C,QAAQ,EAAE,IAAI;4BACd,+BAA+B;4BAC/B,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;oBACP,8GAA8G;yBAEhH;wBACG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oCAAoC,EAAE,EAAE,EAAE;4BACzD,QAAQ,EAAE,IAAI;4BACf,gCAAgC;4BAC/B,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;qBACR;oBACD,2HAA2H;oBAC1H,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;oBACxE,IAAI,CAAC,KAAK,EAAE,CAAC;gBACjB,CAAC,EACC,KAAK,CAAC,EAAE;oBACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;wBAClC,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACL,gGAAgG;gBAClG,CAAC,CAAC,CAAC;aACF;SACJ;IACD,CAAC;IACC,uBAAuB,CAAC,eAAuB;QAE/C,IAAI,CAAC,0BAA0B,CAAC,sBAAsB,CAAC,eAAe,CAAC,CAAC,SAAS,CAC/E,CAAC,IAA8B,EAAE,EAAE;YACjC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;YACnC,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YACtE,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACnC,CAAC,EACC,CAAC,KAAK,EAAC,EAAE;YACX,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oCAAoC,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;gBACvE,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACT,CAAC,CAAC,CAAC;IACH,CAAC;IAEH,KAAK;QACH,gCAAgC;QAC/B,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,EAAC,eAAe,EAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAC,IAAI,EAAC,CAAC,CAAC;QACnG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACjE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9D,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACjE,IAAI,CAAC,sBAAsB,GAAE,IAAI,CAAC;QAClC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACzB,CAAC;IAED,uDAAuD;IACvD,sDAAsD;IACtD,6DAA6D;IAC7D,IAAI;IACH,wBAAwB,CAAC,OAAO;QAC/B,IAAI,CAAC,0BAA0B,CAAC,wBAAwB,CACrD,OAAO,CAAC,oBAAoB,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YAC7C,eAAe;YACf,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YACzE,4BAA4B;YAC5B,yBAAyB;YACzB,gCAAgC;YAChC,mCAAmC;YACnC,MAAM;YACL,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,EAAE;gBAC5C,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAC,CAAC,eAAe,CAAC;gBAC5B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACT,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;YACR,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;gBAClC,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK;QACH,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/E,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9D,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACnE,CAAC;;wGAzTU,4BAA4B;4GAA5B,4BAA4B;wEAoB5B,wEAAY;wEACZ,8DAAO;;;;;;QC/DpB,8EACE;QAAA;QAAA,mFAEE;QAAA;QAAA,0EACE;QAAA;QAAA,yEACE;QAAA;QAAA,yEACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,0EAAc;QAAA,4DAAY;QACrC;QAAA,iFAEE;QAFgF,mLAAmB,qCAAiC,IAAC;QAErI;QAAA,wIACE;QAEJ;QAAA,4DAAa;QACb;QAAA,sIACE;QAEJ;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,wDAAuD;QAAA,4DAAY;QAC9E;QAAA,iFACE;QAAA;QAAA,wIACE;QAEJ;QAAA,4DAAa;QACb;QAAA,sIACE;QAEJ;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,qFACE;QAAA;QAEA;QAAA,6EAAW;QAAA,wDAAoD;QAAA,4DAAY;QAC3E;QAAA,iFACE;QAAA;QAAA,wIACE;QAEJ;QAAA,4DAAa;QACb;QAAA,sIACE;QAEJ;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,8EACC;QADqD,qJAAS,4BAAwB,IAAC;QACvF,yFACD;QAAA,4DAAS;QACT;QAAA,8EACC;QADqD,qJAAS,WAAO,IAAC;QACtE,0FACD;QAAA,4DAAS;QACX;QAAA,4DAAM;QACR;QAAA,4DAAM;QACR;QAAA,4DAAO;QAET;QAAA,4DAAmB;QACrB;QAAA,4DAAW;QAEX;QAAA,gFACE;QAAA;QAAA,oFACE;QAAA;QAAA,2EACE;QAAA;QAAA,6EAIE;QAFA,oLAAsB,gBAAY,IAAC;QAEnC;QAAA,6EACE;QAAA;QAAA,yHACE;QAEF;QAAA,yHACE;QAEJ;QAAA,qEAAe;QAEf;QAAA,6EACE;QAAA;QAAA,yHACE;QAEF;QAAA,yHACE;QAEJ;QAAA,qEAAe;QAEf;QAAA,6EACE;QAAA;QAAA,yHACE;QAEF;QAAA,yHACE;QAEJ;QAAA,qEAAe;QAEf;QAAA,6EACE;QAAA;QAAA,2HACE;QAEF;QAAA,2HACE;QAEJ;QAAA,qEAAe;QAEf;QAAA,8EACE;QAAA;QAAA,2HACE;QAEF;QAAA,2HACE;QAEJ;QAAA,qEAAe;QAEf;QAAA,2HAAuD;QACvD;QAAA,2HAA4D;QAC9D;QAAA,4DAAQ;QACV;QAAA,4DAAM;QACN;QAAA,4EACE;QAAA;QAAA,iFAAqF;QACvF;QAAA,4DAAM;QACR;QAAA,4DAAmB;QACrB;QAAA,4DAAW;;QAtHD,0DAA6B;QAA7B,0FAA6B;QAGb,0DAAiC;QAAjC,uGAAiC;QAIjC,0DAAqC;QAArC,0FAAqC;QAIxC,0DAAmE;QAAnE,iIAAmE;QAMhE,0DAAiC;QAAjC,uGAAiC;QACpC,0DAAuD;QAAvD,iIAAuD;QAEpD,0DAAmC;QAAnC,uFAAmC;QAItC,0DAAgE;QAAhE,8HAAgE;QAM7D,0DAAiC;QAAjC,uGAAiC;QAGpC,0DAAoD;QAApD,8HAAoD;QAEjD,0DAAiC;QAAjC,qFAAiC;QAIpC,0DAAmE;QAAnE,iIAAmE;QAsBnC,2DAAyB;QAAzB,sFAAyB;QAiDrD,2DAAmC;QAAnC,iGAAmC;QAC1C,0DAA+C;QAA/C,kGAA+C;QAI9C,0DAAgC;QAAhC,mJAAgC;;6FD5ExC,4BAA4B;cANxC,uDAAS;eAAC;gBACT,QAAQ,EAAE,yBAAyB;gBACnC,WAAW,EAAE,sCAAsC;gBACnD,SAAS,EAAE,CAAC,sCAAsC,CAAC;aAEpD;2gBAqB4C,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACH,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AE/DtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AAEC;AAC0B;AACZ;AAC5E,+CAA+C;AAGkC;AAOX;AACX;AACE;AACZ;;;;;;;;;;;;;;;;ICiB7B,yEAAsC;IAAA,uEAAY;IAAA,4DAAK;;;IACvD,yEAAwC;IAAA,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,iGAAuB;;;IAK/D,yEAA4D;IAAA,gEAAK;IAAA,4DAAK;;;;IACtE,yEACK;IAAA;IAAA,6EAAsF;IAAhC,sWAA6B;IAAG;IACnF;IAAA,+EAAyB;IAAA,+DAAI;IAAA,4DAAW;IAChD;IAAA,4DAAS;IAAC;IAAA,4DAAK;;;IAEjB,oEAA4D;;;IAC5D,oEAAkE;;;ADpB7E,MAAM,qBAAqB;IAsBhC,YACU,OAAe,EACf,eAA+B,EAC/B,oBAAyC,EACzC,SAAsB,EACvB,UAAsB;IAC7B,yCAAyC;IACjC,EAAe;QANf,YAAO,GAAP,OAAO,CAAQ;QACf,oBAAe,GAAf,eAAe,CAAgB;QAC/B,yBAAoB,GAApB,oBAAoB,CAAqB;QACzC,cAAS,GAAT,SAAS,CAAa;QACvB,eAAU,GAAV,UAAU,CAAY;QAErB,OAAE,GAAF,EAAE,CAAa;QA1BzB,oGAAoG;QAEpG,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QAMvC,mBAAc,GAAiB,EAAE,CAAC;QAClC,wBAAmB,GAAY,KAAK,CAAC;QAC5C,eAAU,GAAW,KAAK,CAAC;QAGnB,UAAK,GAAY,KAAK,CAAC;QAC/B,eAAU,GAAG,IAAI,0EAAkB,EAAc,CAAC;QAiClD,SAAI,GAAG;YACL,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE;YAC9C,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,gBAAgB,EAAE;SACtD,CAAC;QACJ,qBAAgB,GAAa,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAElD,qBAAgB,GAAa,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAxBzD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC;QACrE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;QAC/C,IAAI,CAAC,UAAU,GAAG,IAAI,yFAAU,EAAE,CAAC;QACnC,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,EAAE;YAC/D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YAC9B,QAAQ,EAAE,CAAC,CAAC,CAAC;YACb,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,yDAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;SAC5G,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IASH,IAAI,CAAC,KAA4B;QAC7B,8EAAe,CACb,IAAI,CAAC,gBAAgB,EACrB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,YAAY,CACnB,CAAC;IACJ,CAAC;IACD,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAC3D;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SAChE;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;YAC7B,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;SACrC;QACH,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACnC,CAAC;IAEO,mBAAmB;QACzB,IAAI,CAAC,oBAAoB,CAAC,mBAAmB,EAAE,CAAC,SAAS,CAAC,CAAC,kBAAgC,EAAE,EAAE;YAC7F,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;YACzB,IAAI,CAAC,cAAc,GAAG,kBAAkB,CAAC;YACzC,uCAAuC;YACvC,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC5D,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACrC,CAAC,EACC,KAAK,CAAC,EAAE;YACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,6BAA6B,EAAE,EAAE,EAAE;gBACrD,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACJ,6HAA6H;QAC9H,CAAC,CACF,CAAC;IACJ,CAAC;IAEO,oBAAoB,CAAC,UAAkB;QAC7C,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,IAAI,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,UAAU,MAAkB;gBAC/E,OAAO,CACL,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,UAAU,CAAC,WAAW,EAAE,CAC5D,CAAC;YACJ,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,KAAK,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,QAAQ,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;gBACnI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE,EAAE;oBAChD,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,wHAAwH;gBACxH,OAAO,KAAK,CAAC;aACd;iBACI;gBACH,OAAO,IAAI,CAAC;aACb;SACF;IACH,CAAC;IAEO,eAAe,CAAC,MAAkB;QACxC,IAAI,MAAM,IAAI,IAAI,CAAC,oBAAoB,EAAE;YACvC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,EAAE;gBAE1H,OAAO,KAAK,CAAC;aACd;iBACI;gBACH,OAAO,IAAI,CAAC;aACb;SACF;IACH,CAAC;IACM,UAAU;QACf,kCAAkC;QAClC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;YACzB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAC7D,IAAI,QAAQ,GAAW,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACxE,IAAI,SAAS,GAAW,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACzE,IAAI,SAAS,GAAW,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YACxE,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE;gBAC9U,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,EAAE;oBAC3C,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,0CAA0C;gBAC1C,sBAAsB;gBACtB,gCAAgC;gBAChC,gCAAgC;gBAChC,MAAM;gBACN,OAAO;aACR;YACD,qBAAqB;YACrB,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;gBAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;gBAAC,OAAO;aAAC;YACrF,IAAI,eAAe,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAClF,IAAI,CAAC,eAAe;gBAAE,OAAO;SAC9B;;YAAM,OAAO;QACd,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,EAAE;YACvC,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,cAAuB,EAAE,EAAE;gBAC7G,IAAI,cAAc,EAAE;oBAClB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,6BAA6B,EAAE,EAAE,EAAE;wBACrD,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAC,CAAC,eAAe,CAAC;wBAC5B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACL,0CAA0C;oBACxC,yBAAyB;oBACzB,gCAAgC;oBAChC,0CAA0C;oBAC1C,MAAM;oBACN,IAAI,CAAC,mBAAmB,EAAE,CAAC;oBAC3B,IAAI,CAAC,KAAK,EAAE,CAAC;iBACd;gBACD,6CAA6C;gBAC7C,8BAA8B;gBAC9B,wBAAwB;gBACxB,kCAAkC;gBAClC,wCAAwC;gBACxC,QAAQ;gBACR,IAAI;qBACC;oBACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,EAAE;wBAClD,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACN,2CAA2C;oBACxC,uBAAuB;oBACvB,8BAA8B;oBAC9B,uCAAuC;oBACvC,MAAM;iBACP;YACH,CAAC,EACC,KAAK,CAAC,EAAE;gBACN,oDAAoD;gBACpD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,EAAE;oBAClD,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACL,0CAA0C;gBACxC,uBAAuB;gBACvB,8BAA8B;gBAC9B,uCAAuC;gBACvC,MAAM;YACR,CAAC,CACF,CAAC;SACH;aACI;YACH,IAAI,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAC7D,IAAI,CAAC,UAAU,EAAC;gBACd,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,EAAE;oBAC9C,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,OAAO;aACR;YACD,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,cAAuB,EAAE,EAAE;gBAClG,IAAI,cAAc,EAAE;oBAClB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,6BAA6B,EAAE,EAAE,EAAE;wBACrD,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAC,CAAC,eAAe,CAAC;wBAC5B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACH,gIAAgI;oBAChI,IAAI,CAAC,mBAAmB,EAAE,CAAC;oBAC3B,IAAI,CAAC,KAAK,EAAE,CAAC;iBACd;gBACD,mCAAmC;gBACnC,kHAAkH;gBAClH,IAAI;gBACJ,oCAAoC;gBACpC,2IAA2I;gBAC3I,IAAI;gBACJ,oCAAoC;gBACpC,iHAAiH;gBACjH,QAAQ;gBACR,IAAI;gBACJ,oCAAoC;gBACpC,yGAAyG;gBACzG,QAAQ;gBACR,IAAI;qBACC;oBACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,EAAE;wBAClD,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACJ,yCAAyC;oBACxC,oFAAoF;oBACpF,MAAM;iBACP;YAEH,CAAC,EACC,KAAK,CAAC,EAAE;gBACN,oDAAoD;gBACpD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,EAAE;oBAClD,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,yHAAyH;YAC3H,CAAC,CACF,CAAC;SACH;IACH,CAAC;IAEA,UAAU,CAAC,MAAkB;QAC5B,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;QAC3B,IAAI,CAAC,oBAAoB,GAAG,IAAI,yFAAU,EAAE,CAAC;QAC7C,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC;QACnC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;QAC1C,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACnC,6BAA6B;IAC/B,CAAC;IAED,mDAAmD;IACnD,wCAAwC;IACxC,oDAAoD;IACpD,kCAAkC;IAClC,uCAAuC;IACvC,2BAA2B;IAC3B,sBAAsB;IACtB,wGAAwG;IACxG,qCAAqC;IACrC,oIAAoI;IACpI,0BAA0B;IAC1B,YAAY;IACZ,iBAAiB;IACjB,qJAAqJ;IACrJ,YAAY;IACZ,WAAW;IACX,qBAAqB;IACrB,0HAA0H;IAC1H,YAAY;IACZ,WAAW;IACX,SAAS;IACT,sBAAsB;IACtB,gBAAgB;IAChB,QAAQ;IACR,QAAQ;IAER,IAAI;IAEG,KAAK;QACV,IAAI,CAAC,UAAU,GAAG,IAAI,yFAAU,EAAE,CAAC;QACnC,IAAI,CAAC,UAAU,GAAG;YAChB,QAAQ,EAAE,CAAC;YACX,UAAU,EAAE,EAAE;YACd,aAAa,EAAE,EAAE;YACjB,WAAW,EAAE,IAAI;YACjB,WAAW,EAAE,IAAI;YACjB,cAAc,EAAE,KAAK;YACrB,YAAY,EAAE,IAAI;SACnB,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAC,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACvD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,6BAA6B;QAC7B,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;IACnC,CAAC;IAEM,kBAAkB,CAAC,UAAsB;QAC9C,IAAI,WAAW,GAAG,oBAAoB,CAAC;QACvC,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,EAAE;gBAC5C,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACJ,yCAAyC;YACxC,sBAAsB;YACtB,gCAAgC;YAChC,iCAAiC;YACjC,MAAM;YACN,OAAO;SACR;IACH,CAAC;IAEM,iBAAiB,CAAC,KAAU;QACjC,IAAI,CAAS,CAAC;QACd,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,iDAAiD;QACrE,OAAO,CACL,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;YAClB,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC;YACnB,CAAC,IAAI,CAAC;YACN,CAAC,IAAI,EAAE;YACP,CAAC,IAAI,EAAE;YACP,CAAC,IAAI,EAAE;YACP,CAAC,IAAI,EAAE;YACP,CAAC,IAAI,EAAE;YACP,CAAC,IAAI,EAAE,CACR,CAAC;IACJ,CAAC;;0FAvWU,qBAAqB;qGAArB,qBAAqB;kEAmBrB,wEAAY;wEACZ,8DAAO;;;;;qFAtBP,CAAC,qGAAmB,CAAC;QC1BlC,8EACE;QAAA;QAAA,mFACA;QAAA;QAAA,0EACE;QAD6B,iJAAY,gBAAY,IAAC;QACtD;QAAA,yEACE;QAAA;QAAA,yEACE;QAAA;QAAA,0EACE;QAAA;QAAA,0EACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,uEAAW;QAAA,4DAAY;QAClC;QAAA,4EACF;QADyE,yJAAY,6BAAyB,IAAC,uFAAoC,sCAA8B,IAAlE;QAA7G,4DACF;QAAA;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,0EACA;QAAA;QAAA,6EAAwD;QAAlC,8IAAS,WAAO,IAAC;QAAiB,4EAAU;QAAA,+EAClE;QAAA,4DAAW;QAAC,kEAAK;QAAA,4DAAS;QAC1B;QAAA,8EAAsD;QAAA,4EAAU;QAAA,6EAChE;QAAA,4DAAW;QAAC,wDAAc;QAAA,4DAAS;QACrC;QAAA,4DAAM;QACN;QAAA,4DAAM;QACR;QAAA,4DAAM;QACR;QAAA,4DAAM;QACR;QAAA,4DAAM;QACR;QAAA,4DAAO;QACP;QAAA,4DAAmB;QACrB;QAAA,4DAAW;QAGK;QAAA,gFACd;QAAA;QAAA,oFACE;QAAA;QAAA,2EACE;QAAA;QAAA,6EAEY;QADV,6KAAsB,gBAAY,IAAC;QACzB;QACA;QAAA,6EACE;QAAA;QAAA,kHAAsC;QACtC;QAAA,kHAAwC;QAC1C;QAAA,qEAAe;QAEf;QACA;QAAA,6EACE;QAAA;QAAA,kHAA4D;QAC5D;QAAA,kHACK;QAGP;QAAA,qEAAe;QACf;QAAA,kHAAuD;QACvD;QAAA,kHAA6D;QAC/D;QAAA,4DAAQ;QACR;QAAA,4DAAM;QAClB;QAAA,2EACE;QAAA;QAAA,gFAAqF;QACvF;QAAA,4DAAM;QACR;QAAA,4DAAmB;QACrB;QAAA,4DAAW;QACX;;QAtDQ,0DAAwB;QAAxB,qFAAwB;QAeR,2DAAc;QAAd,yFAAc;QAciB,2DAAyB;QAAzB,sFAAyB;QAgB3C,2DAAmC;QAAnC,iGAAmC;QAC1C,0DAAgD;QAAhD,kGAAgD;QAIzD,0DAAgC;QAAhC,kJAAgC;;6FDxBxC,qBAAqB;cANjC,uDAAS;eAAC;gBACT,QAAQ,EAAE,kBAAkB;gBAC5B,WAAW,EAAE,+BAA+B;gBAC5C,SAAS,EAAE,CAAC,+BAA+B,CAAC;gBAC5C,SAAS,EAAE,CAAC,qGAAmB,CAAC;aACjC;qiBAoB0B,SAAS;kBAAjC,uDAAS;mBAAC,wEAAY;YACe,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AEhDtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAgH;AAC/B;AACA;AAGnB;AACyB;AAOjB;AACX;AACE;AACZ;AACQ;AAGe;;;;;;;;;;;;;;;;;;;;;ICsC9B,iFACM;IAAA,uDACN;IAAA,4DAAa;;;IAFqC,gFAAmB;IAC/D,0DACN;IADM,qLACN;;;;IAIlB,0EACM;IAAA;IAAA,6EAAgF;IAA1D,8TAAyB;IAAiC,kEAAO;IAAA,4DAAS;IACtG;IAAA,4DAAM;;;IAYA,yEAAuC;IAAA,4EAAgB;IAAA,4DAAK;;;IAC5D,yEAAwC;IAAA;IAAA,oEAAG;IAAA,uDAA0B;IAAA,4DAAI;IAAC;IAAA,gEACpE;IAAA;IACZ;IAFM,4DAAwC;;;IAAG,0DAA0B;IAA1B,2FAA0B;;;IAI3E,yEAAoD;IAAA,6EAAiB;IAAA,gEAAK;IAAA,2EAA2B;IAAA,2EAAyB;IAAA,kEAAO;IAAA,4DAAO;IAAC;IAAA,2EAA2B;IAAA,qEAAU;IAAA,4DAAO;IAAC;IAAA,4EAA0B;IAAA,sEAAU;IAAA,4DAAO;IAAA,4DAAO;IAAA,4DAAK;;;IACjP,yEACM;IAAA;IAAA,wEAAiB;IAAA,uEAAM;IAAA,uDAA8B;IAAA,4DAAO;IACtD;IAAA,uEACA;IAAA,uDAAkC;IAAA,4DAAO;IACzC;IAAA,uEAAM;IAAA,wDACN;IAAA,4DAAO;IAEnB;IAAA,4DAAI;IAAE;IAAA,4DAAK;;;IANkB,0DAA8B;IAA9B,+FAA8B;IAE/C,0DAAkC;IAAlC,kJAAkC;IAC5B,0DACN;IADM,qJACN;;;IAKN,yEAAuC;IAAA,mEAAO;IAAA,4DAAK;;;;IACnD,yEAA8F;IAAA,uDACxF;IACZ;IACM;IAAA,4DAAK;;;IAHkC,6KAAqD;IAAE,0DACxF;IADwF,oIACxF;;;IAeZ,oEAA4D;;;IAC5D,oEAAkE;;ADzDnF,MAAM,kBAAkB;IA8D7B,YAAqB,SAAsB,EACnC,UAAsB,EACrB,kBAAqC,EACrC,EAAe,EACf,kBAAqC,EACrC,iBAAmC;QALvB,cAAS,GAAT,SAAS,CAAa;QACnC,eAAU,GAAV,UAAU,CAAY;QACrB,uBAAkB,GAAlB,kBAAkB,CAAmB;QACrC,OAAE,GAAF,EAAE,CAAa;QACf,uBAAkB,GAAlB,kBAAkB,CAAmB;QACrC,sBAAiB,GAAjB,iBAAiB,CAAkB;QA5DrC,sBAAiB,GAAiB,EAAE,CAAC;QAC5C,YAAO,GAAS,KAAK,CAAC;QACtB,aAAQ,GAAS,IAAI,CAAC;QACtB,WAAM,GAAS,KAAK,CAAC;QACrB,cAAS,GAAS,KAAK,CAAC;QAExB,qBAAqB;QACrB,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QAG9C,qBAAgB,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QASpD,iBAAY,GAAa,EAAE,CAAC;QAC5B,aAAQ,GAAG,CAAC,CAAC;QACb,oBAAe,GAAa,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAC,EAAE,CAAC,CAAC;QAC3C,iBAAY,GAAW,KAAK,CAAC;QAC7B,mBAAc,GAAiB,EAAE,CAAC;QAMlC,qBAAgB,GAAa,CAAC,gBAAgB,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;QAC3E,eAAU,GAAG,IAAI,0EAAkB,EAAiB,CAAC;QAErD,qBAAgB,GAAa,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QA8BzD,IAAI,CAAC,kBAAkB,GAAG,IAAI,oGAAqB,EAAE,CAAC;QACtD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;QAChD,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,EAAE;YAC9D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACF,CAAC;IAnCJ,IAAI,CAAC,KAA4B;QAC/B,8EAAe,CACb,IAAI,CAAC,gBAAgB,EACrB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,YAAY,CACnB,CAAC;IACJ,CAAC;IACD,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAC3D;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,EAAE,CAAC;SAC5C;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;YAC7B,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;SACvC;QACD,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACnC,CAAC;IAkBD,QAAQ;QACN,IAAI,CAAC,aAAa,GAAG,IAAI,wDAAS,CAAC;YACjC,eAAe,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;SAC9D,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,GAAG,IAAI,wDAAS,CAAC;YAC/B,OAAO,EAAE,IAAI,0DAAW,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;SACpD,CAAC,CAAC;QACL,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAED,YAAY,CAAC,YAAoB;QAE/B,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC;QAC3B,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACtB,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED,YAAY;QACV,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAED,WAAW;QACT,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;YACtD,IAAI,YAA0B,CAAC;YAC/B,YAAY,GAAG,IAAI,sFAAY,EAAE,CAAC;YAElC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC;YAC1D,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACtC,YAAY,CAAC,KAAK,GAAG,IAAI,CAAC;YAC1B,YAAY,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,CAAC;YACxE,YAAY,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC;YACxC,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;YAC5B,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC;YAC/B,YAAY,CAAC,oBAAoB,GAAG,IAAI,CAAC;YAEzC,IAAI,CAAC,kBAAkB;iBACpB,aAAa,CAAC,YAAY,CAAC;iBAC3B,SAAS,CAAC,CAAC,cAAuB,EAAE,EAAE;gBACrC,IAAI,cAAc,EAAE;oBAClB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;oBAC7C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,8BAA8B,EAAE,EAAE,EAAE;wBACtD,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,eAAe,CAAC;wBAC7B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;qBACI;oBACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,2BAA2B,EAAE,EAAE,EAAE;wBACnD,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;YACH,CAAC,EACC,KAAK,CAAC,EAAE;gBACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,2BAA2B,EAAE,EAAE,EAAE;oBACnD,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACL,CAAC,CACF,CAAC;YACF,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;SACxB;IACH,CAAC;IAED,WAAW;QACT,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAChC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,SAAS,CAC1E,CAAC,GAAU,EAAE,EAAE;YACb,IAAI,GAAG,EAAE;gBACP,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;oBAChB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC;gBACnC,CAAC,CAAC,CAAC;aACJ;iBACI;gBACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE,EAAE;oBAChD,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;QACH,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;YACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,wBAAwB,EAAE,GAAG,EAAE;gBACjD,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CACF,CAAC;IACN,CAAC;IAEA,iBAAiB;QACb,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,CAAC,SAAS,CAAC,CAAC,SAAgB,EAAE,EAAE;YAC1E,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;YAC5B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7E,SAAS,CAAC,OAAO,CAAC,CAAC,CAAM,EAAE,EAAE;gBAC3B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,iBAAiB,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3E,CAAC,CAAC,CAAC;QACL,CAAC,EAAE,KAAK,CAAC,EAAE;YACT,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mCAAmC,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;gBACtE,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACP,wHAAwH;QAC1H,CAAC,CACA,CAAC;IACJ,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,cAAc,GAAG,EAAE;QACxB,IAAI,CAAC,YAAY,GAAG,KAAK;QACzB,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,CAAC;aAC9E,SAAS,CACV,CAAC,GAAoB,EAAE,EAAE;YACvB,IAAI,GAAG,EAAE;gBACP,IAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAC;oBAChB,2BAA2B;oBAC3B,IAAI,CAAC,YAAY,GAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,EAAC,EAAE,KAAI,CAAC,MAAM,KAAG,WAAW,CAAC,CAAC;iBACjE;gBACD,GAAG,CAAC,OAAO,CAAC,CAAC,IAAmB,EAAE,EAAE;oBAClC,qCAAqC;oBACrC,IAAG,IAAI,CAAC,MAAM,IAAI,WAAW,IAAI,IAAI,CAAC,MAAM,IAAE,eAAe,EAAC;wBAC5D,IAAG,IAAI,CAAC,MAAM,IAAI,eAAe,EAAC;4BAChC,IAAI,CAAC,MAAM,GAAC,iBAAiB,CAAC;yBAC9B;wBACD,IAAG,IAAI,CAAC,MAAM,IAAI,WAAW,EAAC;4BAC7B,IAAI,CAAC,MAAM,GAAG,aAAa;yBAC5B;wBACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;qBAC/B;gBACH,CAAC,CAAC;gBACA,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC9D,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;aACpC;;gBACI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QAC9B,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;YACR,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC,CAAC,CAAC;IACP,CAAC;IAEH,OAAO;QACL,yBAAyB;QACzB,IAAI,CAAC,OAAO,GAAC,IAAI,CAAC;QAClB,IAAI,CAAC,QAAQ,GAAC,KAAK,CAAC;QACpB,IAAI,CAAC,SAAS,GAAC,IAAI,CAAC;QAErB,UAAU,CAAC,GAAG,EAAE;YACf,IAAI,CAAC,OAAO,GAAC,KAAK,CAAC;YACnB,IAAI,CAAC,QAAQ,GAAC,IAAI,CAAC;QAGrB,CAAC,EAAE,KAAK,CAAC,CAAC;IAGV,CAAC;IAED,aAAa;QACX,yBAAyB;QACzB,IAAI,CAAC,OAAO,GAAC,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAC,IAAI,CAAC;QACnB,IAAI,CAAC,SAAS,GAAC,KAAK,CAAC;QAEtB,UAAU,CAAC,GAAG,EAAE;YACf,IAAI,CAAC,OAAO,GAAC,IAAI,CAAC;YAClB,IAAI,CAAC,QAAQ,GAAC,KAAK,CAAC;QAGtB,CAAC,EAAE,KAAK,CAAC,CAAC;IAEV,CAAC;IAED,qBAAqB,CAAC,KAAK,IAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,EAAC;IAExD,QAAQ;QACN,IAAI,CAAC,MAAM,GAAC,IAAI,CAAC;QACjB,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,MAAM,GAAC,KAAK,CAAC;QACpB,CAAC,EAAE,IAAI,CAAC,CAAC;QACT,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,SAAS,GAAC,KAAK,CAAC;QACvB,CAAC,EAAE,GAAG,CAAC,CAAC;IACR,CAAC;IAED,aAAa;QACX,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,EAAC,EAAE;YAC7E,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE,EAAE;gBAChD,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAC,CAAC,eAAe,CAAC;gBAC5B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QAEL,CAAC,EACD,CAAC,KAAK,EAAC,EAAE;YACP,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,EAAE;gBAC7C,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAC,CAAC,cAAc,CAAC;gBAC3B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CAAC;IACJ,CAAC;;oFA9RU,kBAAkB;kGAAlB,kBAAkB;;wEAiClB,wEAAY;wEACZ,8DAAO;;;;;;;;QCzFpB,wFACM;QAAA;QAAA,oFACE;QAAA;QAAA,0EACA;QAAA;QAAA,8EACA;QAAA;QAAA,wEAAyB;QAAA,qEAAS;QAAA,2EAA0B;QAAA,2EAAqB;QAAA,iEAAK;QAAA,qEAAoD;QAAA,4DAAO;QAAA,qEAA0D;QAAA;QAAA,6EACxM;QADgN,wRAAS,YAAgB,IAAC;QAC1O;QAAA,4EAAU;QAAA,iEAAK;QAAA,4DAAW;QAC5B;QAAA,4DAAS;QAAC;QAAA,4DAAO;QAAA,4DAAK;QACzB;QAAA,4DAAW;QAEX;QAAA,gFACA;QAAA;QACA;QAAA,2EAEA;QAAA;QACA;QAEA;QAEA;QAEA;QAMA;QAAA,uEACA;QAAA;QAAA,iFAA4B;QAAA,wDAAe;QAAA,4DAAY;QACvD;QAAA,4DAAM;QACN;QAAA,4DAAM;QAEN;QAAA,2EACA;QAAA;QAAA,2EACE;QAAA;QAAA,sFACG;QAAA;QAAA,6EAAW;QAAA,8EAAkB;QAAA,4DAAY;QACzC;QAAA,wEACF;QAAA;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,8EACG;QADsB,2IAAS,iBAAa,IAAC;QAC7C;QAAA,4EAAU;QAAA,gEAAI;QAAA,4DAAW;QAC3B;QAAA,4DAAS;QACZ;QAAA,4DAAM;QACN;QAAA,4DAAM;QAEN;QAAA,4DAAW;QACX;QAAA,4DAAO;QACP;QAAA,4DAAc;QAEpB;QAAA,gFACM;QAAA;QAAA,oFACM;QAAA;QAAA,2EACM;QAAA;QAAA,2EACM;QAAA;QAAA,2EACM;QAAA;QAAA,sFACM;QAAA;QAAA,6EAAW;QAAA,0EAAc;QAAA,4DAAY;QACrC;QAAA,kFAEM;QAF4E,yKAAmB,iCAA6B,IAAC;QAE7H;QAAA,+HACM;QAEZ;QAAA,4DAAa;QACnB;QAAA,4DAAiB;QACvB;QAAA,4DAAM;QACN;QAAA,iHACM;QAEZ;QAAA,4DAAM;QACZ;QAAA,4DAAO;QACb;QAAA,4DAAmB;QACzB;QAAA,4DAAW;QAEX;QAAA,gFACM;QAAA;QAAA,oFACM;QAAA;QAAA,4EACM;QAAA;QAAA,8EAEM;QADA,2KAAsB,gBAAY,IAAC;QACnC;QAAA,8EACM;QAAA;QAAA,iHAAuC;QACvC;QAAA,iHAAwC;QAE9C,qEAAe;QACH;QAAA,8EACZ;QAAA;QAAA,kHAAoD;QACpD;QAAA,kHACM;QAON;QAAA,qEAAe;QACf;QAAA,8EACM;QAAA;QAAA,iHAAuC;QACvC;QAAA,iHAA8F;QAIpG;QAAA,qEAAe;QAClC;QAWmB;QAAA,iHAAuD;QACvD;QAAA,iHAA6D;QACnE;QAAA,4DAAQ;QACd;QAAA,4DAAM;QACZ;QAAA,4DAAmB;QACzB;QAAA,4DAAW;QACX;QAAA,4DAAwB;;QAnHV,0DAAyB;QAAzB,sFAAyB;QAyBL,2DAAe;QAAf,gFAAe;QAwB/B,2DAA2B;QAA3B,wFAA2B;QAGC,0DAAiC;QAAjC,uGAAiC;QAIzB,0DAAqC;QAArC,0FAAqC;QAM9D,0DAAoB;QAApB,kFAAoB;QAWkB,2DAAyB;QAAzB,sFAAyB;QAoCjD,2DAAmC;QAAnC,iGAAmC;QAC1C,0DAAgD;QAAhD,kGAAgD;mqFDnEtE;YACV,mEAAO,CAAC,cAAc,EAAE;gBACtB,iEAAK,CAAC,WAAW,EAAE,iEAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC5D,iEAAK,CAAC,UAAU,EAAE,iEAAK,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBACzC,sEAAU,CAAC,wBAAwB,EAAE,mEAAO,CAAC,sCAAsC,CAAC,CAAC;aACtF,CAAC;SACH;6FAIU,kBAAkB;cArB9B,uDAAS;eAAC;gBACT,QAAQ,EAAE,eAAe;gBACzB,WAAW,EAAE,4BAA4B;gBACzC,SAAS,EAAE,CAAC,4BAA4B,CAAC;gBACzC,eAAe;gBACf,yBAAyB;gBACzB,uBAAuB;gBACvB,uBAAuB;gBACvB,gBAAgB;gBAChB,qBAAqB;gBACrB,KAAK;gBACL,UAAU,EAAE;oBACV,mEAAO,CAAC,cAAc,EAAE;wBACtB,iEAAK,CAAC,WAAW,EAAE,iEAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;wBAC5D,iEAAK,CAAC,UAAU,EAAE,iEAAK,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;wBACzC,sEAAU,CAAC,wBAAwB,EAAE,mEAAO,CAAC,sCAAsC,CAAC,CAAC;qBACtF,CAAC;iBACH;aACF;0mBAOuB,OAAO;kBAA5B,uDAAS;mBAAC,SAAS;YA6BuB,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACH,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AEzFtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAqE;AACa;AAIxB;AAQgB;AAeZ;AAQQ;AACX;AACE;AACZ;AACQ;;;;;;;;;;;;;;;;;;;;ICtBzC,iFACE;IAAA,uDACF;IAAA,4DAAa;;;IAFqC,+EAAmB;IACnE,0DACF;IADE,4HACF;;;IAQA,iFACE;IAAA,uDACF;IAAA,4DAAa;;;IAFmC,gFAAoB;IAClE,0DACF;IADE,6HACF;;;IAQA,iFACE;IAAA,uDACF;IAAA,4DAAa;;;IAF+B,iFAAqB;IAC/D,0DACF;IADE,8HACF;;;IAUI,iFACE;IAAA,uDACF;IAAA,4DAAa;;;IAFiC,gFAAoB;IAChE,0DACF;IADE,qIACF;;;IAYhB,0EACE;IAAA;IAAA,yEACE;IAAA;IAAA,0EACE;IAAA;IAAA,0EACE;IAAA;IAAA,qEACF;IAAA;IAAA,4DAAM;IACN;IAAA,yEAAgB;IAAA,0KAAyG;IAAA,4DAAI;IAE/H;IAAA,4DAAM;IACR;IAAA,4DAAM;IAER;IAAA,4DAAM;;;;IAQN,yEACE;IAAA;IAAA,mFAGA;IAHc,2VAAoC,IAAI,IAAC;IAGvD;IAAA,4DAAe;IACjB;IAAA,4DAAK;;;IAHW,0DAAmD;IAAnD,4HAAmD;;;;IAInE,yEACE;IAAA;IAAA,mFAGA;IAHc,wOAAS,wBAAwB,IAAC,0SACf,iCAAqB,GAAG,IAAI,IADb;IAGhD;IAAA,4DAAe;IACjB;IAAA,4DAAK;;;;IAFW,0DAAqC;IAArC,0GAAqC;;;IAK7C,yEAAmD;IAAA,iEAAM;IAAA,4DAAK;;;IAC9D,yEAAwC;IAAA;IAAA,oEAAG;IAAA,uDAAsB;IAAA,4DAAI;IAAC;IAAA,gEAAK;IAAA,wEAAsB;IAAA,wEAAO;IAAA,iGAAsC;IAAA,4DAAQ;IAAA,4DAAI;IAAA,4DAAK;;;IAApH,0DAAsB;IAAtB,uFAAsB;;;IAGjE,yEAAuC;IAAA,oEAAQ;IAAA,4DAAK;;;IACpD,yEAAwC;IAAA,uDAAmB;IAAA,4DAAK;;;IAAxB,0DAAmB;IAAnB,8FAAmB;;;IAG3D,yEAAoD;IAAA,mEAAO;IAAA,4DAAK;;;IAChE,yEAAwC;IAAA,uDAAmB;IAAA,gEAAK;IAAA,2EAAyB;IAAA,wEAAO;IAAA,sEAAW;IAAA,4DAAQ;IAAA,4DAAO;IAAC;IAAA,4DAAK;;;IAAxF,0DAAmB;IAAnB,8FAAmB;;;IAE7D,oEAA4D;;;IAC5D,oEAAkE;;;IA/BxE,yEACE;IAAA;IAAA,0EAEG;IAAA;IAAA,4EACR;IAAA;IAAA,4EACG;IAAA;IAAA,sHACE;IAKF;IAAA,wHACE;IAKJ;IAAA,qEAAe;IACP;IAAA,6EACE;IAAA;IAAA,wHAAmD;IACnD;IAAA,wHAAwC;IAC1C;IAAA,qEAAe;IACf;IAAA,6EACE;IAAA;IAAA,wHAAuC;IACvC;IAAA,wHAAwC;IAC1C;IAAA,qEAAe;IACf;IAAA,6EACE;IAAA;IAAA,wHAAoD;IACpD;IAAA,wHAAwC;IAC1C;IAAA,qEAAe;IACf;IAAA,wHAAuD;IACvD;IAAA,wHAA6D;IAC/D;IAAA,4DAAQ;IACV;IAAA,4DAAM;IACR;IAAA,4DAAM;;;IA/BgB,0DAAyB;IAAzB,yFAAyB;IA2BtB,2DAAmC;IAAnC,oGAAmC;IAC1C,0DAAgD;IAAhD,qGAAgD;;ADzD/D,MAAM,oBAAoB;IA0C/B,YAAoB,MAAiB,EAC3B,SAAsB,EACtB,kBAAqC;IAC7C,yCAAyC;IACjC,gBAAiC,EACjC,EAAe,EACf,mBAA8C,EAC9C,OAAe,EACf,qBAA2C,EAC3C,iBAAmC,EACpC,SAA6C,EACpB,IAA0B;QAXxC,WAAM,GAAN,MAAM,CAAW;QAC3B,cAAS,GAAT,SAAS,CAAa;QACtB,uBAAkB,GAAlB,kBAAkB,CAAmB;QAErC,qBAAgB,GAAhB,gBAAgB,CAAiB;QACjC,OAAE,GAAF,EAAE,CAAa;QACf,wBAAmB,GAAnB,mBAAmB,CAA2B;QAC9C,YAAO,GAAP,OAAO,CAAQ;QACf,0BAAqB,GAArB,qBAAqB,CAAsB;QAC3C,sBAAiB,GAAjB,iBAAiB,CAAkB;QACpC,cAAS,GAAT,SAAS,CAAoC;QACpB,SAAI,GAAJ,IAAI,CAAsB;QApD5D,eAAU,GAAS,KAAK,CAAC;QACzB,qBAAgB,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QAEpD,4EAA4E;QAC5E,yDAAyD;QACzD,cAAS,GAAG,IAAI,uEAAc,CAAM,IAAI,EAAE,EAAE,CAAC,CAAC;QAC9C,oBAAe,GAAW,CAAC,CAAC;QAM5B,iBAAY,GAAW,CAAC,CAAC;QACzB,YAAO,GAAW,CAAC,CAAC;QACpB,eAAU,GAAW,CAAC,CAAC;QACvB,mBAAc,GAAiB,EAAE,CAAC;QAClC,cAAS,GAAiB,EAAE,CAAC;QAC7B,iBAAY,GAAiB,EAAE,CAAC;QAChC,sBAAiB,GAAiB,EAAE,CAAC;QAMrC,iBAAY,GAAa,EAAE,CAAC;QAC5B,gBAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACvC,aAAQ,GAAG,CAAC,CAAC;QACb,oBAAe,GAAa,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAC5C,yBAAoB,GAAG,EAAE,CAAC;QAE3B,SAAI,GAAG,EAAE,CAAC;QACT,eAAU,GAAG,IAAI,0EAAkB,EAAiB,CAAC;QAMrD,kGAAkG;QAElG,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QAe1C,SAAI,GAAG;YACT,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE;YACxC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;YACvC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE;SACtC,CAAC;QACF,qBAAgB,GAAa,CAAC,QAAQ;YACpC,WAAW;YACX,SAAS;YACT,QAAQ;SACT,CAAC;QACF,qBAAgB,GAAa,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;IAZI,CAAC;IAchE,IAAI,CAAC,KAA4B;QAC/B,8EAAe,CACb,IAAI,CAAC,gBAAgB,EACrB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,YAAY,CACnB,CAAC;IACJ,CAAC;IACD,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAC3D;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SAChE;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;YAC7B,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;SACvC;QACD,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACnC,CAAC;IAED,SAAS;QACP,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAGH,QAAQ;QACJ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YAC5B,eAAe,EAAE,CAAC,IAAI,CAAC;YACvB,YAAY,EAAE,CAAC,IAAI,CAAC;YACpB,OAAO,EAAE,CAAC,IAAI,CAAC;YACf,UAAU,EAAE,CAAC,IAAI,CAAC;SACvB,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;QACrC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QAC7B,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QACzB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QACzB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,+BAA+B,EAAE,CAAC;IAC3C,CAAC;IAEC,kCAAkC;QAChC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACnE,2BAA2B;QAC3B,gCAAgC;QAChC,4BAA4B;QAC5B,yBAAyB;QACzB,YAAY;QACZ,sCAAsC;QACtC,MAAM;QACN,gBAAgB;QAChB,wBAAwB;QACxB,4BAA4B;QAC5B,0CAA0C;QAC1C,qCAAqC;QACrC,2CAA2C;QAC3C,wCAAwC;QACxC,gBAAgB;QAChB,kDAAkD;QAClD,cAAc;QACd,qCAAqC;QACrC,2EAA2E;QAC3E,qCAAqC;QACrC,YAAY;QACZ,WAAW;QACX,SAAS;QACT,wBAAwB;QACxB,sEAAsE;QACtE,0BAA0B;QAC1B,uCAAuC;QACvC,kCAAkC;QAClC,YAAY;QACZ,QAAQ;QACR,OAAO;IACT,CAAC;IACD,iBAAiB;QACf,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,CAAC,SAAS,CACnD,CAAC,SAAgB,EAAE,EAAE;YACnB,SAAS,CAAC,OAAO,CAAC,CAAC,CAAM,EAAE,EAAE;gBAC3B,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC1E,IAAG,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,WAAW,EAC5C;oBACD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;wBAC1B,KAAK,EAAE,CAAC,CAAC,iBAAiB;wBAC1B,KAAK,EAAE,CAAC,CAAC,EAAE;qBACZ,CAAC,CAAC;iBACD;gBACF,6CAA6C;gBAC7C,kDAAkD;YACpD,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,MAAM,EAAE,CAAC;QACzD,CAAC,EACD,KAAK,CAAC,EAAE;YACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mCAAmC,EAAE,EAAE,EAAE;gBAC3D,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACH,4BAA4B;YAC5B,uBAAuB;YACvB,8BAA8B;YAC9B,gDAAgD;YAChD,MAAM;QACR,CAAC,CACF,CAAC;IACJ,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,kBAAkB,CAAC,wBAAwB,EAAE,CAAC,SAAS,CAC1D,CAAC,GAAwB,EAAE,EAAE;YAC3B,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;YACzB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACtE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAM,EAAE,EAAE;gBACrB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;oBACvB,KAAK,EAAE,CAAC,CAAC,WAAW;oBACpB,KAAK,EAAE,CAAC,CAAC,YAAY;iBACtB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACL,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,MAAM,EAAE,CAAC;QACpD,CAAC,EACD,KAAK,CAAC,EAAE;YACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kCAAkC,EAAE,EAAE,EAAE;gBAC1D,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACH,4BAA4B;YAC5B,uBAAuB;YACvB,8BAA8B;YAC9B,+CAA+C;YAC/C,MAAM;QACR,CAAC,CACF,CAAC;IACJ,CAAC;IAED,QAAQ,CAAC,KAAK;QACZ,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC1D,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACxE,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC;QACnC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACzB,CAAC;IACD,kBAAkB,CAAC,KAAK;QACtB,2BAA2B;QAC3B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC;QAChC,IAAI,CAAC,2BAA2B,EAAE,CAAC;IACrC,CAAC;IACD,gBAAgB;QACd,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,2BAA2B;QACzB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,2BAA2B;QAC3B,gCAAgC;QAChC,4BAA4B;QAC5B,yBAAyB;QACzB,YAAY;QACZ,WAAW;QACX,MAAM;QACN,gBAAgB;QAChB,wBAAwB;QACxB,4BAA4B;QAC5B,uEAAuE;QACvE,0CAA0C;QAC1C,kCAAkC;QAClC,oCAAoC;QACpC,qCAAqC;QACrC,gBAAgB;QAChB,4CAA4C;QAC5C,cAAc;QACd,4CAA4C;QAC5C,kCAAkC;QAClC,qEAAqE;QACrE,uDAAuD;QACvD,YAAY;QACZ,WAAW;QACX,SAAS;QACT,wBAAwB;QACxB,sEAAsE;QACtE,0BAA0B;QAC1B,uCAAuC;QACvC,kCAAkC;QAClC,YAAY;QACZ,qCAAqC;QACrC,gCAAgC;QAChC,uCAAuC;QACvC,wDAAwD;QACxD,eAAe;QACf,QAAQ;QACR,OAAO;IACT,CAAC;IAGS,+BAA+B;QACvC,IAAI,cAAc,GAAW,IAAI,CAAC,GAAG,CAAC;QACtC,qEAAqE;QACrE,gCAAgC;QAChC,gBAAgB;QAChB,wBAAwB;QACxB,mBAAmB;QACnB,0CAA0C;QAC1C,wEAAwE;QACxE,iFAAiF;QACjF,eAAe;QACf,aAAa;QACb,UAAU;QACV,QAAQ;QACR,OAAO;IACT,CAAC;IAEH,WAAW;IACX,IAAI;IACJ,yDAAyD;IACzD,kDAAkD;IAClD,uFAAuF;IACvF,KAAK;IACL,IAAI;IAEF,MAAM;QACJ,IAAI,MAAM,GAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC1C,IAAG,MAAM,IAAE,CAAC,EACZ;YACG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,4CAA4C,EAAE,EAAE,EAAE;gBACjE,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACH,OAAO;SACZ;QACC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;YACjC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;SAAE;QACnF,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,GAAE,CAAC,EAAE;YACvC,IAAI,eAAgC,CAAC;YACrC,eAAe,GAAG,IAAI,+EAAe,EAAE,CAAC;YACxC,eAAe,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YAC7C,eAAe,CAAC,WAAW,GAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YACrD,oEAAoE;YAClE,IAAI,CAAC,qBAAqB;iBACrB,SAAS,CAAC,eAAe,CAAC;iBAC1B,SAAS,CACR,GAAG,CAAC,EAAE;gBACJ,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC3B,CAAC,EACD,KAAK,CAAC,EAAE;gBACN,4BAA4B;gBAC5B,uBAAuB;gBACvB,8BAA8B;gBAC9B,wBAAwB;gBACxB,MAAM;YACR,CAAC,CACF,CAAC;SACP;IACH,CAAC;IAEC,cAAc,CAAC,IAAY;QAC3B,IAAI,CAAC,iBAAiB;aACnB,qBAAqB,CACpB,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,EAC/B,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,UAAU,CACnC;aACA,SAAS,CACR,CAAC,GAAoB,EAAE,EAAE;YACvB,IAAI,GAAG,EAAE;gBACP,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;gBACzB,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,GAAG,CAAC,CAAC;gBAC9C,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;aAClC;QACH,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;YACb,IACE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,kBAAkB;gBACrC,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,WAAW;oBACxC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC5C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,WAAW,EACxC;gBACA,yBAAyB;gBACzB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;aACxB;iBAAM,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,kBAAkB,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,mBAAmB,EAAE;gBAC5F,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,EAAE;oBAC3C,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;iBAAM;gBACL,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,mCAAmC,GAAG,KAAK,CAAC,KAAK,EACjD,GAAG,EACH;oBACE,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CACF,CAAC;aACH;QACH,CAAC,CACF,CAAC;IACN,CAAC;IAEA,gFAAgF;IAChF,aAAa;QACZ,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;QACnD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;QAC5C,OAAO,WAAW,KAAK,OAAO,CAAC;IACjC,CAAC;IAED,gFAAgF;IAChF,YAAY;QACV,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;YAClB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;YACxB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,sDAAsD;IACtD,qCAAqC;IACrC,gBAAgB;IAChB,oEAAoE;IACpE,MAAM;IACN,gGAAgG;IAChG,IAAI;IACJ,WAAW,CAAC,CAAC;QACX,IAAG,CAAC,CAAC,KAAK,IAAE,IAAI,EAAC;YACf,IAAI,CAAC,UAAU,GAAC,KAAK,CAAC;SACvB;aACG;YACF,IAAI,CAAC,UAAU,GAAC,IAAI,CAAC;SACtB;IACH,CAAC;;wFAnZU,oBAAoB,o9CAqDrB,wEAAe;oGArDd,oBAAoB;wEAkCpB,wEAAY;wEAEZ,8DAAO;;;;;;QCxFpB,8EACE;QAAA;QAAA,mFACE;QAAA;QAAA,yEACE;QAAA;QAAA,yEACE;QAAA;QAAA,wEAAqB;QAAA,mEAAQ;QAAA,4DAAK;QACpC;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,6EACF;QADU,6IAAS,eAAW,IAAC;QAC/B;QAAA,qEAEJ;QAAA;QAAA,4DAAS;QACL;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,0EACE;QAAA;QAAA,0EACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,yEAAa;QAAA,4DAAY;QACpC;QAAA,kFACE;QADgF,2KAAkB,oBAAgB;QAClH;QAAA,iIACE;QAEJ;QAAA,4DAAa;QACf;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,sEAAU;QAAA,4DAAY;QACjC;QAAA,kFACE;QADyE,2KAAkB,8BAA0B;QACrH;QAAA,iIACE;QAEJ;QAAA,4DAAa;QACf;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,iEAAK;QAAA,4DAAY;QAC5B;QAAA,kFACE;QAD+D,qKAAkB,wCAAoC;QACrH;QAAA,iIACE;QAEJ;QAAA,4DAAa;QACf;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,0EACE;QAAA;QAAA,2EACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,qEAAS;QAAA,4DAAY;QAChC;QAAA,kFACE;QADsE,qKAAkB,sBAAkB;QAC1G;QAAA,iIACE;QAEJ;QAAA,4DAAa;QACf;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACR;QAAA,4DAAM;QACR;QAAA,4DAAM;QACR;QAAA,4DAAM;QACR;QAAA,4DAAO;QACT;QAAA,4DAAM;QAIN;QAAA,oHACE;QAaF;QAAA,oHACE;QAmCF;QAAA,0EACE;QAAA;QAAA,2EACE;QAAA;QAAA,2EACE;QAAA;QAAA,8EAA4D;QAAnB,6IAAS,YAAQ,IAAC;QAAC,qEAAQ;QAAA,4DAAS;QAC/E;QAAA,4DAAM;QACR;QAAA,4DAAM;QAER;QAAA,4DAAM;QACR;QAAA,4DAAmB;QACrB;QAAA,4DAAW;;QA/GC,2DAA0B;QAA1B,uFAA0B;QAGV,0DAAiC;QAAjC,uGAAiC;QAGjC,0DAAqC;QAArC,0FAAqC;QAOrC,0DAAiC;QAAjC,uGAAiC;QAGjC,0DAAmC;QAAnC,uFAAmC;QAOnC,0DAAiC;QAAjC,uGAAiC;QAGjC,0DAA+B;QAA/B,kFAA+B;QAS3B,2DAAiC;QAAjC,uGAAiC;QAGjC,0DAAiC;QAAjC,qFAAiC;QActC,2DAAkB;QAAlB,gFAAkB;QAcxB,0DAAmB;QAAnB,iFAAmB;;6FD1B3B,oBAAoB;cALhC,uDAAS;eAAC;gBACT,QAAQ,EAAE,mBAAmB;gBAC7B,WAAW,EAAE,gCAAgC;gBAC7C,SAAS,EAAE,CAAC,gCAAgC,CAAC;aAC9C;k5BAsDyC,oBAAoB;sBAAzD,oDAAM;uBAAC,wEAAe;wBAlBzB,SAAS;kBADR,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YAGzC,IAAI;kBADH,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AExFtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AAChB;AACuB;AAM4B;AACF;AACpC;AAC4B;AAMrC;AAKQ;AAMK;AAKQ;AACX;AACE;AACZ;AACQ;AAEQ;AAGuD;;;;;;;;;;;;;;;;;;;;;;;;;;;ICe1G,iFACE;IAAA,uDACF;IAAA,4DAAa;;;IAFqC,+EAAmB;IACnE,0DACF;IADE,wHACF;;;IAQA,iFACE;IAAA,uDACF;IAAA,4DAAa;;;IAFmC,iFAAoB;IAClE,0DACF;IADE,0HACF;;;IAqBI,iFACE;IAAA,uDACF;IAAA,4DAAa;;;IAFiC,iFAAoB;IAChE,0DACF;IADE,kIACF;;;IAIJ,oEAAsB;IAAA,oEAAG;IAAA,8EAAmB;IAAA,4DAAI;IAAA,uDAAoB;IAAA,4DAAI;;;IAAxB,0DAAoB;IAApB,iGAAoB;;;;IAOlE,6EAAsI;IAAxF,0TAAoB,KAAK,KAAE;IAA6D,oEAAS;IAAA,4DAAS;;;IAA9E,gGAAgC;;;;IAatH,0EACE;IAAA;IAAA,0EACE;IAAA;IAAA,0EACE;IAAA;IAAA,8EACE;IAAA;IAAA,6EAAmE;IAA3B,gUAA0B;IAAC,mFAAwB;IAAA,4DAAS;IACtG;IAAA,4DAAU;IACZ;IAAA,4DAAM;IACR;IAAA,4DAAM;IACR;IAAA,4DAAM;;;;IAEJ,0EACA;IAAA;IAAA,0EACE;IAAA;IAAA,qEACA;IAAA;IAAA,0EACE;IAAA;IAAA,wEAAqB;IAAA,+MACA;IAAA,4DAAI;IAC3B;IAAA,4DAAM;IACN;IAAA,2EACE;IAAA;IAAA,8EAAoE;IAA5B,wTAAoB,KAAK,KAAE;IAAC,4EAAgB;IAAA,4DAAS;IAC7F;IAAA,4EAAgC;IAAA,8DAAE;IAAA,4DAAO;IACzC;IAAA,8EAAqE;IAA7D,gUAAyB;IAAoC,sEAAU;IAAA,4DAAS;IACxF;IAAA,4EAAgC;IAAA,8DAAE;IAAA,4DAAO;IACzC;IAAA,8EAAgE;IAAxD,2TAAoB;IAAoC,oEAAQ;IAAA,4DAAS;IACnF;IAAA,4DAAM;IACR;IAAA,4DAAM;IACR;IAAA,4DAAM;;;IAWA,yEAAoD;IAAA,mEAAO;IAAA,4DAAK;;;;IAM1D,2EAA4C;IAAA,8EAAmB;IAAA,gEACrE;IAAA;IAAA,6EAAmG;IAAjE,seAAgE;IAAC,iEAAM;IAAA,4DAAS;IAAA,6EAChC;IAAjE,seAAgE;IAAC,iEAAM;IAAA,4DAAS;IAAA,4DAAO;;;;IAJpG,0EACE;IAAA;IAAA,2EAAmD;IAA3B,yVAA0B;IAAC,uDAAuB;IAAA,4DAAO;IACjF;IAAA,+IAA4C;IAG9C;IAAA,4DAAM;;;;IAJ+C,0DAAuB;IAAvB,wFAAuB;IACpE,0DAAqB;IAArB,uFAAqB;;;;IAM3B,2EAA8C;IAAA,6EAAkB;IAAA,gEACtE;IAAA;IAAA,6EAAiG;IAA/D,oeAA8D;IAAC,iEAAM;IAAA,4DAAS;IAAA,6EAChC;IAA/D,oeAA8D;IAAC,iEAAM;IAAA,4DAAS;IAAA,4DAAO;;;;IAJlG,0EACE;IAAA;IAAA,2EAAuD;IAA7B,2VAA4B;IAAC,uDAAuB;IAAA,4DAAO;IACrF;IAAA,+IAA8C;IAGhD;IAAA,4DAAM;;;;IAJmD,0DAAuB;IAAvB,wFAAuB;IACxE,0DAAuB;IAAvB,yFAAuB;;;;IAVzB,yEACR;IAAA;IAAA,0EACE;IAAA;IAAA,uIACE;IAKF;IAAA,uIACE;IAKF;IACC;IAAA,0EAA+F;IAAA;IAAA,qEAAG;IAAA,wDAAsB;IAAA,4DAAI;IAAC;IAAA,iEAAM;IAAA,yEAAsB;IAAA,yEAAO;IAAA,wDAAgB;IAAA,4DAAQ;IAAA,4DAAI;IAAA,4DAAM;IACrM;IAAA,4DAAM;IACR;IAAA,4DAAK;;;;IAfI,0DAA2C;IAA3C,iHAA2C;IAM3C,0DAAyC;IAAzC,+GAAyC;IAOxC,0DAAsE;IAAtE,sLAAsE;IAAuB,0DAAsB;IAAtB,uFAAsB;IAAwC,0DAAgB;IAAhB,iFAAgB;;;IAKrL,yEAAuC;IAAA,oEAAQ;IAAA,4DAAK;;;;IAGlD,uEAA8E;IAAA,uDAA+C;IAAA,gEACrH;IAAA;IAAA,6EAA+F;IAA7D,4dAA4D;IAAC,iEAAM;IAAA,4DAAS;IAAA,6EAC5C;IAA7D,4dAA4D;IAAC,iEAAM;IAAA,4DAAS;IAAA,4DAAO;;;IAFlB,0DAA+C;IAA/C,yHAA+C;;;;IAG7H,2EAA6G;IAAhD,2VAA0B;IAAsB,uDAA+B;IAAA,4DAAO;;;IAAtC,0DAA+B;IAA/B,gGAA+B;;;;IAL9I,yEACE;IAAA;IAAA,uEAAM;IAAA,2EAAyI;IAAA,uDAAkB;IAAA,4DAAO;IACxK;IAAA,0IAA8E;IAG9E;IAAA,0IAA6G;IAAsC,gEAEnJ;IAAA;IAAA,4EAAyB;IAAA,oEAAe;IAAA,4DAAO;IAC/C;IAAA,4DAAO;IACT;IAAA,4DAAK;;;;IARS,0DAAkI;IAAlI,oPAAkI;IAAC,0DAAkB;IAAlB,mFAAkB;IAC3J,0DAAuE;IAAvE,uJAAuE;IAGvE,0DAAsD;IAAtD,8HAAsD;;;IAO9D,yEAAuC;IAAA,mEAAO;IAAA,4DAAK;;;;IAGjD,2EAA8F;IAAA,uDAA+C;IAAA,gEAC7I;IAAA;IAAA,6EAA+F;IAA7D,4dAA4D;IAAC,iEAAM;IAAA,4DAAS;IAAA,6EAC3C;IAA7D,4dAA4D;IAAC,iEAAM;IAAA,4DAAS;IAAA,4DAAO;;;IAFK,0DAA+C;IAA/C,yHAA+C;;;;IAG7I,2EAA6G;IAAhD,2VAA0B;IAAsB,uDAA+B;IAAA,4DAAO;;;IAAtC,0DAA+B;IAA/B,gGAA+B;;;IAL9I,yEACE;IAAA;IAAA,uEAAM;IAAA,2EAAyI;IAAA,uDAAkB;IAAA,4DAAO;IACxK;IAAA,0IAA8F;IAG9F;IAAA,0IAA6G;IAAsC,gEAEnJ;IAAA;IAAA,4EAAyB;IAAA,oEAAe;IAAA,4DAAO;IAC/C;IAAA,4DAAO;IACP;IACF;IAAA,4DAAK;;;;IATS,0DAAkI;IAAlI,oPAAkI;IAAC,0DAAkB;IAAlB,mFAAkB;IAC3J,0DAAuE;IAAvE,uJAAuE;IAGvE,0DAAsD;IAAtD,8HAAsD;;;IAS9D,yEAAuC;IAAA,iEAAK;IAAA,4DAAK;;;;IACjD,yEACE;IAAA;IACA;IAAA,+EAA+E;IAA3C,2YAA0C;IAAC,+DAAI;IAAA,4DAAW;IAChG;IAAA,4DAAK;;;IAIL,yEAAiE;IAAA,mEAAO;IAAA,4DAAK;;;;IAC7E,yEACE;IAAA;IACA;IAAA,+EAA+F;IAA5C,4YAA2C;IAAC,iEAAM;IAAA,4DAAW;IAClH;IAAA,4DAAK;;;IAGP,oEAA4D;;;;IAC5D,oEAA4J;;;IAA7F,8KAAuF;;;;IAtE1J,0EACE;IAAA;IAAA,4EAEE;IAFmF,uWAAmC;IAEtH;IAAA,4EACE;IAAA;IAAA,gIAAoD;IACpD;IACU;IAAA,iIACR;IAiBJ;IAAA,qEAAe;IACT;IAAA,6EACJ;IAAA;IAAA,kIAAuC;IACvC;IAAA,mIACE;IASJ;IAAA,qEAAe;IACf;IAAA,6EACE;IAAA;IAAA,kIAAuC;IACvC;IAAA,mIACE;IAUJ;IAAA,qEAAe;IAEf;IAAA,6EACE;IAAA;IAAA,kIAAuC;IACvC;IAAA,kIACE;IAGJ;IAAA,qEAAe;IAEf;IAAA,6EACE;IAAA;IAAA,kIAAiE;IACjE;IAAA,kIACE;IAGJ;IAAA,qEAAe;IAEf;IAAA,kIAAuD;IACvD;IAAA,kIAAuJ;IAEzJ;IAAA,4DAAQ;IACV;IAAA,4DAAM;;;IAxEa,0DAAyB;IAAzB,0FAAyB;IAoErB,2DAAmC;IAAnC,qGAAmC;IAC1C,0DAAkD;IAAlD,sGAAkD;;;IAuH1D,yEAAmD;IAAA,iEAAM;IAAA,4DAAK;;;IAC9D,yEAAwC;IAAA;IAAA,oEAAG;IAAA,uDAAsB;IAAA,4DAAI;IAAC;IAAA,gEAAK;IAAA,wEAAsB;IAAA,wEAAO;IAAA,uDAAgB;IAAA,4DAAQ;IAAA,4DAAI;IAAA,4DAAK;;;IAA9F,0DAAsB;IAAtB,wFAAsB;IAAuC,0DAAgB;IAAhB,kFAAgB;;;IAGxH,yEAAuC;IAAA,oEAAQ;IAAA,4DAAK;;;IACpD,yEAAwC;IAAA,uDAAmB;IAAA,4DAAK;;;IAAxB,0DAAmB;IAAnB,+FAAmB;;;IAG3D,yEAAoD;IAAA,mEAAO;IAAA,4DAAK;;;IAChE,yEAAwC;IAAA,uDAAmB;IAAA,4DAAK;;;IAAxB,0DAAmB;IAAnB,+FAAmB;;;IAG3D,yEACE;IAAA,6FACF;IAAA,4DAAK;;;IAEH,+EAAkD;IAAA,+DAAI;IAAA,4DAAW;;;IADnE,yEACE;IAAA;IAAA,mJAAkD;IACpD;IAAA,4DAAK;;;IAD+B,0DAAe;IAAf,iFAAe;;;IAInD,yEACE;IAAA,+FACF;IAAA,4DAAK;;;IAEH,+EAAkD;IAAA,iEAAM;IAAA,4DAAW;;;IADrE,yEACE;IAAA;IAAA,mJAAkD;IACpD;IAAA,4DAAK;;;IAD+B,0DAAe;IAAf,iFAAe;;;IAGrD,oEAA4D;;;IAC5D,oEAAkE;;;IAhCxE,0EACE;IAAA;IAAA,0EACE;IAAA;IAAA,4EACE;IAAA;IAAA,4EACE;IAAA;IAAA,iIAAmD;IACnD;IAAA,mIAAwC;IAC1C;IAAA,qEAAe;IACf;IAAA,6EACE;IAAA;IAAA,mIAAuC;IACvC;IAAA,mIAAwC;IAC1C;IAAA,qEAAe;IACf;IAAA,6EACE;IAAA;IAAA,mIAAoD;IACpD;IAAA,mIAAwC;IAC1C;IAAA,qEAAe;IACf;IAAA,6EACE;IAAA;IAAA,mIACE;IAEF;IAAA,mIACE;IAEJ;IAAA,qEAAe;IACf;IAAA,6EACE;IAAA;IAAA,mIACE;IAEF;IAAA,mIACE;IAEJ;IAAA,qEAAe;IACf;IAAA,mIAAuD;IACvD;IAAA,mIAA6D;IAC/D;IAAA,4DAAQ;IACV;IAAA,4DAAM;IACN;IAAA,2EACA;IAAA;IAAA,2EACE;IAAA;IAAA,sEACA;IAAA;IAAA,yEAAyB;IAAA,iFAAqB;IAAA,4DAAI;IACpD;IAAA,4DAAM;IACR;IAAA,4DAAM;IACN;IAAA,4DAAM;;;IAvCmC,0DAAyB;IAAzB,0FAAyB;IA6BzC,2DAAmC;IAAnC,qGAAmC;IAC1C,0DAAgD;IAAhD,sGAAgD;;;;IAUlE,0EACE;IAAA;IAAA,+EAAmF;IACrF;IAAA,4DAAM;;;IADW,0DAAiB;IAAjB,kFAAiB;;;IAtOtC,+EACE;IAAA;IAAA,mFACE;IAAA;IAAA,6HACE;IAyEF;IAGA;IA2CA;IACA;IA6DA;IAEA;IACA;IAAA,+HACE;IAyCF;IAAA,8HACE;IAEF;IACF;IAAA,4DAAmB;IACrB;IAAA,4DAAW;;;IAxOuB,0DAAkC;IAAlC,0GAAkC;IAyL/C,0DAAkB;IAAlB,mFAAkB;IA0C9B,0DAAgB;IAAhB,mFAAgB;;AD/TlB,MAAM,kBAAkB;IAuE7B,YACS,MAAiB,EAChB,SAAsB,EACtB,kBAAqC;IAC7C,yCAAyC;IACjC,gBAAiC,EACjC,EAAe,EACf,mBAA8C,EAC9C,OAAe,EACf,qBAA2C,EAC3C,iBAAmC,EACnC,kBAAqC,EACrC,QAAwB,EACxB,OAA0B;QAZ3B,WAAM,GAAN,MAAM,CAAW;QAChB,cAAS,GAAT,SAAS,CAAa;QACtB,uBAAkB,GAAlB,kBAAkB,CAAmB;QAErC,qBAAgB,GAAhB,gBAAgB,CAAiB;QACjC,OAAE,GAAF,EAAE,CAAa;QACf,wBAAmB,GAAnB,mBAAmB,CAA2B;QAC9C,YAAO,GAAP,OAAO,CAAQ;QACf,0BAAqB,GAArB,qBAAqB,CAAsB;QAC3C,sBAAiB,GAAjB,iBAAiB,CAAkB;QACnC,uBAAkB,GAAlB,kBAAkB,CAAmB;QACrC,aAAQ,GAAR,QAAQ,CAAgB;QACxB,YAAO,GAAP,OAAO,CAAmB;QAjFpC,qBAAgB,GAAG,yDAAW,CAAC,oBAAoB,CAAC;QAIpD,uFAAuF;QACvF,cAAS,GAAG,IAAI,uEAAc,CAAM,IAAI,EAAE,EAAE,CAAC,CAAC;QAC9C,cAAS,GAAY,KAAK,CAAC;QAC3B,kBAAa,GAAY,KAAK,CAAC;QAC/B,gBAAW,GAAY,KAAK,CAAC;QAC7B,gBAAW,GAAY,KAAK,CAAC;QAC7B,mBAAc,GAAW,EAAE,CAAC;QAC5B,uBAAkB,GAAY,KAAK,CAAC;QAGpC,gBAAW,GAAW,kBAAkB,CAAC;QAOlC,oBAAe,GAAW,CAAC,CAAC;QAC5B,iBAAY,GAAW,CAAC,CAAC;QACzB,YAAO,GAAW,CAAC,CAAC;QACpB,eAAU,GAAW,CAAC,CAAC;QACvB,mBAAc,GAAiB,EAAE,CAAC;QAClC,cAAS,GAAiB,EAAE,CAAC;QAC7B,iBAAY,GAAiB,EAAE,CAAC;QAChC,sBAAiB,GAAiB,EAAE,CAAC;QAC5C,sBAAiB,GAAG,KAAK,CAAC;QAC1B,WAAM,GAAG,KAAK,CAAC;QACf,YAAO,GAAY,KAAK,CAAC;QACzB,YAAO,GAAY,KAAK,CAAC;QACzB,YAAO,GAAY,KAAK,CAAC;QACzB,cAAS,GAAY,KAAK,CAAC;QAC3B,kBAAa,GAAY,KAAK,CAAC;QAC/B,YAAO,GAAY,KAAK,CAAC;QACzB,oBAAe,GAAY,KAAK,CAAC;QACjC,iBAAY,GAAG,KAAK,CAAC;QACrB,mBAAc,GAAG,KAAK,CAAC;QACvB,mBAAc,GAAG,KAAK,CAAC;QACvB,wBAAmB,GAAG,KAAK,CAAC;QAC5B,kBAAa,GAAY,KAAK,CAAC;QAC/B,cAAS,GAAG,KAAK,CAAC;QAClB,gBAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAGvC,kBAAa,GAAY,KAAK,CAAC;QAC/B,kBAAa,GAAY,KAAK,CAAC;QAI/B,iBAAY,GAAa,EAAE,CAAC;QAC5B,aAAQ,GAAG,CAAC,CAAC;QACb,oBAAe,GAAa,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAC5C,oBAAe,GAAa,KAAK;QACjC,eAAU,GAAG,KAAK;QAClB,eAAU,GAAG,IAAI,2EAAkB,EAAiB,CAAC;QAOrD,kGAAkG;QAElG,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QAuB9C,SAAI,GAAG;YACL,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE;YACxC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;YACvC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE;SACtC,CAAC;QACF,qBAAgB,GAAa;YAC3B,WAAW;YACX,SAAS;YACT,QAAQ;YACR,MAAM;YACN,QAAQ;SACT,CAAC;QACF,qBAAgB,GAAa,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAlBzD,IAAI,CAAC,kBAAkB,GAAG,IAAI,qFAAqB,EAAE,CAAC;QACtD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;QAChD,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAgBD,IAAI,CAAC,KAA4B;QAC/B,8EAAe,CACb,IAAI,CAAC,gBAAgB,EACrB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,YAAY,CACnB,CAAC;IACJ,CAAC;IACD,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAC3D;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,2EAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SAChE;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;YAC7B,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;SACvC;QACD,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACnC,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACjC,eAAe,EAAE,CAAC,IAAI,CAAC;YACvB,YAAY,EAAE,CAAC,IAAI,CAAC;YACpB,OAAO,EAAE,CAAC,IAAI,CAAC;YACf,UAAU,EAAE,CAAC,IAAI,CAAC;SACnB,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,GAAG,IAAI,wDAAS,CAAC;YAC/B,OAAO,EAAE,IAAI,0DAAW,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;SACpD,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACtC,IAAI,CAAC,qBAAqB,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACtC,IAAI,CAAC,wBAAwB,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC9B,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;SAC1D;QACD,IAAI,IAAI,CAAC,wBAAwB,EAAE;YACjC,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;SAChE;QACD,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;YAC1B,KAAK,EAAE,uBAAuB;YAC9B,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;QACH,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAED,YAAY;QACV,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACtB,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED,YAAY;QACV,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAED,WAAW;QACT,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;YACtD,IAAI,YAA0B,CAAC;YAC/B,YAAY,GAAG,IAAI,uEAAY,EAAE,CAAC;YAElC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC;YAC1D,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACtC,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC;YAC3B,YAAY,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YACpD,YAAY,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAC9C,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;YACxD,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC;YAE9D,IAAI,CAAC,kBAAkB;iBACpB,aAAa,CAAC,YAAY,CAAC;iBAC3B,SAAS,CAAC,CAAC,cAAuB,EAAE,EAAE;gBACrC,IAAI,cAAc,EAAE;oBAClB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;oBAC7C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,8BAA8B,EAAE,EAAE,EAAE;wBACtD,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,eAAe,CAAC;wBAC7B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;qBACI;oBACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,2BAA2B,EAAE,EAAE,EAAE;wBACnD,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;YACH,CAAC,EACC,KAAK,CAAC,EAAE;gBACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,2BAA2B,EAAE,EAAE,EAAE;oBACnD,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACL,CAAC,CACF,CAAC;YACF,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;SACxB;IACH,CAAC;IAED,WAAW;QACT,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAChC,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,EAChC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,SAAS,CACnD,CAAC,GAAU,EAAE,EAAE;YACb,IAAI,GAAG,EAAE;gBACP,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;oBAChB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC;gBACnC,CAAC,CAAC,CAAC;aACJ;iBACI;gBACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE,EAAE;oBAChD,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;QACH,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;YACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE;gBACzC,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CACF,CAAC;IACN,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,CAAC,SAAS,CACnD,CAAC,SAAgB,EAAE,EAAE;YACnB,SAAS,CAAC,OAAO,CAAC,CAAC,CAAM,EAAE,EAAE;gBAC3B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;oBAC1B,KAAK,EAAE,CAAC,CAAC,iBAAiB;oBAC1B,KAAK,EAAE,CAAC,CAAC,EAAE;iBACZ,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,IAAI,IAAI,CAAC,wBAAwB,EAAE;gBACjC,IAAI,CAAC,aAAa;qBACf,GAAG,CAAC,iBAAiB,CAAC;qBACtB,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBAClC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,OAAO,EAAE,CAAC;aAC1D;;gBAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,MAAM,EAAE,CAAC;QACjE,CAAC,EACD,KAAK,CAAC,EAAE;YACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mCAAmC,EAAE,EAAE,EAAE;gBAC3D,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CACF,CAAC;IACJ,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,kBAAkB,CAAC,wBAAwB,EAAE,CAAC,SAAS,CAC1D,CAAC,GAAwB,EAAE,EAAE;YAC3B,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;YACzB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACtE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAM,EAAE,EAAE;gBACrB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;oBACvB,KAAK,EAAE,CAAC,CAAC,WAAW;oBACpB,KAAK,EAAE,CAAC,CAAC,YAAY;iBACtB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,IAAI,IAAI,CAAC,qBAAqB,EAAE;gBAC9B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACnE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE,CAAC;gBACtD,IAAI,CAAC,YAAY,EAAE;aACpB;;gBAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,MAAM,EAAE,CAAC;QAC9D,CAAC,EACD,KAAK,CAAC,EAAE;YACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kCAAkC,EAAE,EAAE,EAAE;gBAC1D,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CACF,CAAC;IACJ,CAAC;IAED,QAAQ,CAAC,KAAK;QACZ,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC1D,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACxE,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC;QACnC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACpD,0BAA0B;QAC1B,IAAI,CAAC,OAAO;YACV,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,WAAW;gBACxC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC;gBACzC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC;QAC3C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QACxI,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,KAAK;QACvB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,kBAAkB,CAAC,cAAc,GAAG,EAAE,CAAC;QAC5C,uCAAuC;QACvC,wCAAwC;QACxC,IAAI;IACN,CAAC;IACD,kBAAkB,CAAC,KAAK;QACtB,IAAI,CAAC,UAAU,GAAC,KAAK,CAAC;QACtB,IAAI,CAAC,UAAU,GAAC,EAAE,CAAC;QACnB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC;QAChC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IACD,gBAAgB;QACd,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAChC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,2BAA2B;QACzB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,mBAAmB;aACrB,qBAAqB,CACpB,IAAI,CAAC,YAAY,CAClB;aACA,SAAS,CACR,CAAC,GAAU,EAAE,EAAE;YACb,IAAI,GAAG,EAAE;gBACP,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;gBAC/B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC5D,GAAG,CAAC,OAAO,CAAC,CAAC,OAAY,EAAE,EAAE;oBAC3B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;wBAClB,KAAK,EAAE,OAAO,CAAC,IAAI;wBACnB,KAAK,EAAE,OAAO,CAAC,EAAE;qBAClB,CAAC,CAAC;oBACH,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAC;wBACnB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,EAAE,CAAC;wBAC1B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBACzD,6CAA6C;qBAC9C;gBACH,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACvB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;gBACnH,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,EAAE,CAAC;gBACvC,IAAI,CAAC,kBAAkB,CAAC,YAAY,GAAG,EAAE,CAAC;aAC3C;iBAAM;gBACL,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;gBAC9B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;gBACnH,IAAI,CAAC,eAAe,GAAG,KAAK;gBAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACvB,IAAI,CAAC,mBAAmB,EAAE,CAAC;aAC5B;QACH,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;YACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kCAAkC,EAAE,EAAE,EAAE;gBAC1D,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACH,4BAA4B;YAC5B,uBAAuB;YACvB,8BAA8B;YAC9B,+CAA+C;YAC/C,MAAM;QACR,CAAC,CACF,CAAC;IACN,CAAC;IACD,gBAAgB;QACd,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACxE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACxE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,GAAE,IAAI,CAAC,aAAa,GAAE,KAAK,CAAC;IAClH,CAAC;IACD,cAAc,CAAC,IAAY;QACzB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,SAAS,GAAI,IAAI,CAAC;QACvB,IAAI,CAAC,UAAU,GAAC,KAAK,CAAC;QACtB,IAAI,CAAC,eAAe,GAAG,KAAK;QAC5B,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAG,IAAI,CAAC,YAAY,KAAG,IAAI,IAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,KAAG,IAAI,EAAC;YACxE,IAAI,CAAC,iBAAiB;iBACnB,qBAAqB,CACpB,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,EAChC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CACpC;iBACA,SAAS,CACR,CAAC,GAAoB,EAAE,EAAE;gBACvB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACpB,IAAI,GAAG,IAAI,IAAI,EAAE;oBACf,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;oBACzB,IAAI,CAAC,UAAU,GAAG,IAAI,2EAAkB,CAAC,GAAG,CAAC,CAAC;oBAC9C,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;oBAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;oBACjC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAmB,EAAE,EAAE;wBAClC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;wBAClC,IAAI,IAAI,CAAC,MAAM,IAAI,eAAe,EAAE;4BAClC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;4BAC1B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;4BACxB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;4BAC7B,IAAI,CAAC,UAAU,GAAG,IAAI;yBACvB;wBACD,IAAI,IAAI,CAAC,MAAM,IAAI,eAAe,EAAE;4BAClC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;4BAC1B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;4BACxB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;4BAC7B,IAAI,CAAC,UAAU,GAAG,IAAI;yBACvB;6BACI,IAAG,IAAI,CAAC,MAAM,IAAI,aAAa,IAAI,IAAI,CAAC,MAAM,IAAI,cAAc,IAAI,IAAI,CAAC,MAAM,IAAI,WAAW,IAAG,IAAI,CAAC,MAAM,IAAI,kBAAkB,IAAK,IAAI,CAAC,MAAM,IAAI,WAAW,EAAC;4BACrK,IAAI,CAAC,eAAe,GAAG,KAAK;4BAC5B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;4BACxB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;yBACxB;6BACI,IAAG,IAAI,CAAC,MAAM,IAAI,OAAO,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE,EAAC;4BAClD,IAAI,CAAC,eAAe,GAAG,IAAI;yBAC5B;wBACD,4HAA4H;wBAC5H,uNAAuN;wBACvN,8DAA8D;wBAC9D,mHAAmH;oBACrH,CAAC,CAAC,CAAC;oBAEH,IAAI,IAAI,CAAC,cAAc;wBAAE,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;oBACnD,IAAI,IAAI,IAAI,MAAM,EAAE;wBAClB,UAAU,CAAC,GAAG,EAAE;4BACd,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,EAAE;gCAClD,QAAQ,EAAE,IAAI;gCACd,UAAU,EAAE,CAAC,eAAe,CAAC;gCAC7B,kBAAkB,EAAE,OAAO;gCAC3B,gBAAgB,EAAE,KAAK;6BACxB,CAAC,CAAC;wBACL,CAAC,EAAE,EAAE,CAAC,CAAC;qBACR;yBAAM,IAAI,IAAI,IAAI,KAAK,EAAE;wBACxB,UAAU,CAAC,GAAG,EAAE;4BACd,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE,EAAE;gCAChD,QAAQ,EAAE,IAAI;gCACd,UAAU,EAAE,CAAC,eAAe,CAAC;gCAC7B,kBAAkB,EAAE,OAAO;gCAC3B,gBAAgB,EAAE,KAAK;6BACxB,CAAC,CAAC;wBACL,CAAC,EAAE,EAAE,CAAC,CAAC;qBACR;yBACI,IAAI,IAAI,IAAI,QAAQ,EAAE;wBACzB,UAAU,CAAC,GAAG,EAAE;4BACd,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,4BAA4B,EAAE,EAAE,EAAE;gCACpD,QAAQ,EAAE,IAAI;gCACd,UAAU,EAAE,CAAC,eAAe,CAAC;gCAC7B,kBAAkB,EAAE,OAAO;gCAC3B,gBAAgB,EAAE,KAAK;6BACxB,CAAC,CAAC;wBACL,CAAC,EAAE,EAAE,CAAC,CAAC;qBACR;yBACI,IAAI,IAAI,IAAI,MAAM,EAAE;wBACvB,UAAU,CAAC,GAAG,EAAE;4BACd,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,EAAE;gCAClD,QAAQ,EAAE,IAAI;gCACd,UAAU,EAAE,CAAC,eAAe,CAAC;gCAC7B,kBAAkB,EAAE,OAAO;gCAC3B,gBAAgB,EAAE,KAAK;6BACxB,CAAC,CAAC;wBACL,CAAC,EAAE,EAAE,CAAC,CAAC;qBACR;iBAEF;qBACG;oBACF,IAAI,CAAC,MAAM,GAAG,CAAC;oBACf,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;oBACtB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;oBAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;iBACxB;YACH,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;gBACb,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACpB,IAAI,CAAC,MAAM,GAAC,CAAC,CAAC;gBACd,IAAG,KAAK,CAAC,KAAK,CAAC,IAAI,KAAG,uCAAuC,EAAC;oBAC5D,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;oBAC7B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;oBACtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;oBACvB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE;wBACxC,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;qBACI,IAAG,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,EAAC;oBAC7B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;iBAC7B;qBACG,IACF,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,kBAAkB,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,kBAAkB,CAAC;oBAC5E,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,WAAW;wBACxC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC;oBAC5C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,WAAW,EACxC;oBACA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;oBACtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;iBACxB;qBAAM,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,kBAAkB,IAAI,KAAK,CAAC,KAAK,IAAI,mBAAmB;uBAChF,KAAK,CAAC,KAAK,IAAG,gBAAgB,CAAC;oBAClC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,kBAAkB,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,mBAAmB;2BAC/E,KAAK,CAAC,KAAK,CAAC,IAAI,IAAG,gBAAgB,CAAC,EAAE;oBACvC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,EAAE;wBAC3C,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;qBAAM;oBACL,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,mCAAmC,GAAG,KAAK,CAAC,KAAK,EACjD,GAAG,EACH;wBACE,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CACF,CAAC;iBACH;YACH,CAAC,CACF,CAAC;SACH;aAAI;YACH,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;SACrB;IACH,CAAC;IAED,yCAAyC;IACzC,4BAA4B;IAC5B,4BAA4B;IAC5B,yDAAyD;IACzD,oJAAoJ;IACpJ,+CAA+C;IAC/C,wEAAwE;IACxE,2EAA2E;IAC3E,6BAA6B;IAC7B,oCAAoC;IACpC,mCAAmC;IACnC,yCAAyC;IACzC,QAAQ;IACR,kBAAkB;IAClB,0BAA0B;IAC1B,qBAAqB;IACrB,4CAA4C;IAC5C,4CAA4C;IAC5C,uCAAuC;IACvC,qCAAqC;IACrC,kCAAkC;IAClC,kBAAkB;IAClB,qCAAqC;IACrC,8CAA8C;IAC9C,gFAAgF;IAChF,gBAAgB;IAChB,gBAAgB;IAChB,gCAAgC;IAChC,uCAAuC;IACvC,cAAc;IACd,mBAAmB;IACnB,2CAA2C;IAC3C,+GAA+G;IAC/G,yCAAyC;IACzC,oCAAoC;IACpC,wCAAwC;IACxC,YAAY;IACZ,WAAW;IACX,0BAA0B;IAC1B,wEAAwE;IACxE,4BAA4B;IAC5B,yCAAyC;IACzC,oCAAoC;IACpC,cAAc;IACd,UAAU;IACV,SAAS;IACT,MAAM;IACN,IAAI;IAEJ,cAAc;QACZ,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACtD,CAAC,EAAE,GAAG,CAAC,CAAC;IACV,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAEpB,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,4BAA4B;QAC9B,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC;IACD,UAAU;QACR,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAE1B,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC7B,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC;IAED,SAAS;QACP,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;IAED,YAAY;QACV,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAE5B,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC/B,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC;IAED,eAAe;QACb,IAAI,WAAW,GAAG,IAAI,0FAAkB,EAAE,CAAC;QAC3C,WAAW,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QACnD,WAAW,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7C,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;QACvD,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC;QAC7D,IAAI,IAAI,CAAC,cAAc,IAAI,kBAAkB;YAC3C,WAAW,CAAC,MAAM,GAAG,UAAU,CAAC;;YAC7B,WAAW,CAAC,MAAM,GAAG,OAAO,CAAC;QAClC,wEAAwE;QACxE,sBAAsB;QACtB,iBAAiB;QACjB,wCAAwC;QACxC,kCAAkC;QAClC,qCAAqC;QACrC,0CAA0C;QAC1C,uBAAuB;QACvB,wDAAwD;QACxD,uDAAuD;QACvD,oDAAoD;QACpD,eAAe;QACf,mCAAmC;QACnC,oCAAoC;QACpC,QAAQ;QACR,OAAO;QACP,sBAAsB;QACtB,qDAAqD;QACrD,wBAAwB;QACxB,qCAAqC;QACrC,gCAAgC;QAChC,UAAU;QACV,MAAM;QACN,KAAK;IACP,CAAC;IAED,YAAY;QACV,8CAA8C;QAC9C,sDAAsD;QACtD,gDAAgD;QAChD,0DAA0D;QAC1D,oEAAoE;QACpE,yCAAyC;QACzC,6CAA6C;QAC7C,kCAAkC;QAClC,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,SAAS,CACnH,CAAC,GAAU,EAAE,EAAE;YACb,IAAI,GAAG,EAAE;gBACP,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;aAChC;iBAAM;gBACL,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;aAC7B;QACH,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;YACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,EAAE;gBAC1C,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CACF,CAAC;IACJ,CAAC;IAED,qBAAqB;IACrB,+CAA+C;IAC/C,6CAA6C;IAC7C,0EAA0E;IAC1E,MAAM;IAEC,aAAa;QAClB,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;IAClC,CAAC;IAED,mBAAmB;QACjB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACnE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,8BAA8B;IAC9B,gCAAgC;IAChC,uHAAuH;IACvH,MAAM;IACN,IAAI;IAEJ,WAAW,CAAC,aAAa;QACvB,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IACD,gBAAgB;IAChB,8DAA8D;IAC9D,8DAA8D;IAC9D,uBAAuB;IACvB,0FAA0F;IAC1F,QAAQ;IACR,kDAAkD;IAClD,+BAA+B;IAC/B,iCAAiC;IACjC,QAAQ;IACR,IAAI;IAGJ,aAAa;QACX,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;YAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yGAAqB,EAAE;gBACxD,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE;oBACJ,SAAS,EAAE,IAAI,CAAC,eAAe;oBAC/B,KAAK,EAAE,IAAI,CAAC,YAAY;oBACxB,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO;oBACrC,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU;iBACzC;aACF,CAAC,CAAC;YACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAC/B,CAAC,GAAQ,EAAE,EAAE;gBACT,IAAI,GAAG,IAAI,EAAE,EAAE;oBACf,UAAU,CAAC,GAAG,EAAE;wBACd,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;wBACpB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;oBAChC,CAAC,EAAE,EAAE,CAAC,CAAC;iBACR;YACH,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;gBACb,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,4BAA4B,GAAG,KAAK,CAAC,KAAK,EAC1C,GAAG,EACH;oBACE,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CACF,CAAC;YACJ,CAAC,CACF,CAAC;SACL;IACH,CAAC;IAED,QAAQ;QACN,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;YAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sGAAoB,EAAE;gBACvD,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE;oBACJ,SAAS,EAAE,IAAI,CAAC,eAAe;oBAC/B,KAAK,EAAE,IAAI,CAAC,YAAY;oBACxB,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO;oBACrC,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU;iBACzC;aACF,CAAC,CAAC;YACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAC/B,CAAC,GAAQ,EAAE,EAAE;gBACT,IAAI,GAAG,IAAI,EAAE,EAAE;oBACf,UAAU,CAAC,GAAG,EAAE;wBACd,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;wBACpB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;oBAC9B,CAAC,EAAE,EAAE,CAAC,CAAC;iBACR;YACH,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;gBACb,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,4BAA4B,GAAG,KAAK,CAAC,KAAK,EAC1C,GAAG,EACH;oBACE,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CACF,CAAC;YACJ,CAAC,CACF,CAAC;SACL;IACH,CAAC;IAGD,YAAY,CAAC,OAAe,EAAE,MAAc;QAC1C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE;YACnC,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;IACL,CAAC;IAED,UAAU,CAAC,CAAC;QACV,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;YAC5B,IAAI,CAAC,IAAI,KAAK,EAAE;gBACd,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8FAAkB,EAAE;oBACrD,KAAK,EAAE,MAAM;oBACb,IAAI,EAAE;wBACJ,OAAO,EAAE,SAAS;wBAClB,OAAO,EAAE,KAAK;wBACd,SAAS,EAAE,IAAI,CAAC,eAAe;wBAC/B,KAAK,EAAE,IAAI,CAAC,YAAY;wBACxB,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO;wBACzC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU;wBAC3C,QAAQ,EAAE,KAAK;wBACf,mBAAmB,EAAC,IAAI;wBACxB,iBAAiB,EAAE,IAAI;qBACxB;iBACF,CAAC,CAAC;gBACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAC/B,CAAC,GAAQ,EAAE,EAAE;oBACX,IAAI,GAAG,IAAI,EAAE,EAAE;wBACb,UAAU,CAAC,GAAG,EAAE;4BACd,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;4BACpB,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;wBAC7B,CAAC,EAAE,EAAE,CAAC,CAAC;qBACR;gBACH,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;oBACb,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,4BAA4B,GAAG,KAAK,CAAC,KAAK,EAC1C,GAAG,EACH;wBACE,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CACF,CAAC;gBACJ,CAAC,CACF,CAAC;aACH;iBAAM;gBACL,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8FAAkB,EAAE;oBACrD,KAAK,EAAE,MAAM;oBACb,IAAI,EAAE;wBACJ,OAAO,EAAE,UAAU;wBACnB,OAAO,EAAE,QAAQ;wBACjB,SAAS,EAAE,IAAI,CAAC,eAAe;wBAC/B,QAAQ,EAAE,IAAI;wBACd,KAAK,EAAE,IAAI,CAAC,YAAY;wBACxB,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO;wBACzC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU;wBAC3C,mBAAmB,EAAC,CAAC;qBACtB;iBACF,CAAC,CAAC;gBACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;oBAC7C,IAAI,GAAG,IAAI,EAAE,EAAE;wBACb,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;wBACpB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;qBAC7B;gBACH,CAAC,CAAC,CAAC;aACJ;SACF;IACH,CAAC;IAED,UAAU;QACR,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC7B,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC;IAED,UAAU;QACR,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC7B,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC;IAED,WAAW,CAAC,kBAA0B;QACpC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8HAAsB,EAAE;YACzD,YAAY,EAAE,IAAI;YAClB,WAAW,EAAE,IAAI;YACjB,IAAI,EAAE,EAAE,OAAO,EAAE,kCAAkC,EAAE;SAEtD,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAChE,CAAC,GAAQ,EAAE,EAAE;oBACX,IAAI,GAAG,IAAI,IAAI,EAAE;wBACf,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;wBAC/B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,sCAAsC,EAAE,EAAE,EAAE;4BAC9D,QAAQ,EAAE,IAAI;4BACd,UAAU,EAAE,CAAC,eAAe,CAAC;4BAC7B,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;qBACJ;yBAAM;wBACL,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kCAAkC,EAAE,EAAE,EAAE;4BAC1D,QAAQ,EAAE,IAAI;4BACd,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;qBACJ;gBACH,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;oBACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kCAAkC,EAAE,EAAE,EAAE;wBAC1D,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;gBACL,CAAC,CACF,CAAC;aACH;QACH,CAAC,CAAC;IACJ,CAAC;IAED,iBAAiB,CAAC,CAAC;QACjB,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CACtE,CAAC,GAAQ,EAAE,EAAE;YACX,IAAI,GAAG,CAAC,YAAY,IAAI,IAAI,EAAE;gBAC5B,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;gBAC/B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,4BAA4B,EAAE,EAAE,EAAE;oBACpD,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,eAAe,CAAC;oBAC7B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;iBAAM;gBACL,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,EAAE;oBACrB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uBAAuB,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE;wBAC9D,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;qBAAM;oBACL,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uBAAuB,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE;wBAC9D,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;aACF;QACH,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;YACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,EAAE;gBAC/C,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CACF,CAAC;IACJ,CAAC;IAED,iBAAiB,CAAC,CAAC;QACjB,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CACtE,CAAC,GAAQ,EAAE,EAAE;YACX,IAAI,GAAG,CAAC,YAAY,IAAI,IAAI,EAAE;gBAC5B,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;gBAC/B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,4BAA4B,EAAE,EAAE,EAAE;oBACpD,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,eAAe,CAAC;oBAC7B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;iBAAM;gBACL,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,EAAE;oBACrB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uBAAuB,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE;wBAC9D,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;qBAAM;oBACL,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uBAAuB,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE;wBAC9D,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;aACF;QACH,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;YACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,EAAE;gBAC/C,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CACF,CAAC;IACJ,CAAC;IAED,iBAAiB,CAAC,CAAC;QACjB,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CACtE,CAAC,GAAQ,EAAE,EAAE;YACX,IAAI,GAAG,CAAC,YAAY,IAAI,IAAI,EAAE;gBAC5B,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;gBAC/B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,4BAA4B,EAAE,EAAE,EAAE;oBACpD,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,eAAe,CAAC;oBAC7B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;iBAAM;gBACL,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,EAAE;oBACrB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uBAAuB,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE;wBAC9D,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;qBAAM;oBACL,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uBAAuB,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE;wBAC9D,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;aACF;QACH,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;YACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,EAAE;gBAC/C,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CACF,CAAC;IACJ,CAAC;IAED,iBAAiB,CAAC,CAAC;QACjB,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CACtE,CAAC,GAAQ,EAAE,EAAE;YACX,IAAI,GAAG,CAAC,YAAY,IAAI,IAAI,EAAE;gBAC5B,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;gBAC/B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,4BAA4B,EAAE,EAAE,EAAE;oBACpD,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,eAAe,CAAC;oBAC7B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;iBAAM;gBACL,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,EAAE;oBACrB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uBAAuB,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE;wBAC9D,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;qBAAM;oBACL,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uBAAuB,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE;wBAC9D,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;aACF;QACH,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;YACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,EAAE;gBAC/C,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CACF,CAAC;IACJ,CAAC;IAED,qBAAqB,CAAC,CAAC;QACrB,IAAI,CAAC,qBAAqB;aACvB,qBAAqB,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC;aACvC,SAAS,CACR,CAAC,GAAQ,EAAE,EAAE;YACX,IAAI,GAAG,CAAC,YAAY,IAAI,IAAI,EAAE;gBAC5B,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;gBAC/B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,4BAA4B,EAAE,EAAE,EAAE;oBACpD,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,eAAe,CAAC;oBAC7B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;iBAAM;gBACL,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,EAAE;oBACrB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uBAAuB,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE;wBAC9D,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;qBAAM;oBACL,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uBAAuB,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE;wBAC9D,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;aACF;QACH,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;YACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,EAAE;gBAC/C,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CACF,CAAC;IACN,CAAC;IAED,qBAAqB,CAAC,CAAC;QACrB,IAAI,CAAC,qBAAqB;aACvB,qBAAqB,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC;aACvC,SAAS,CACR,CAAC,GAAQ,EAAE,EAAE;YACX,IAAI,GAAG,CAAC,YAAY,IAAI,IAAI,EAAE;gBAC5B,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;gBAC/B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,4BAA4B,EAAE,EAAE,EAAE;oBACpD,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,eAAe,CAAC;oBAC7B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;iBAAM;gBACL,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,EAAE;oBACrB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uBAAuB,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE;wBAC9D,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;qBAAM;oBACL,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uBAAuB,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE;wBAC9D,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;aACF;QACH,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;YACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,EAAE;gBAC/C,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CACF,CAAC;IACN,CAAC;IAED,mBAAmB,CAAC,CAAC;QACnB,IAAI,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CACxE,CAAC,GAAQ,EAAE,EAAE;YACX,IAAI,GAAG,CAAC,YAAY,IAAI,IAAI,EAAE;gBAC5B,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;gBAC/B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,4BAA4B,EAAE,EAAE,EAAE;oBACpD,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,eAAe,CAAC;oBAC7B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;iBAAM;gBACL,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,EAAE;oBACrB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uBAAuB,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE;wBAC9D,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;qBAAM;oBACL,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uBAAuB,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE;wBAC9D,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;aACF;QACH,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;YACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,EAAE;gBAC/C,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CACF,CAAC;IACJ,CAAC;IAED,mBAAmB,CAAC,CAAC;QACnB,IAAI,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CACxE,CAAC,GAAQ,EAAE,EAAE;YACX,IAAI,GAAG,CAAC,YAAY,IAAI,IAAI,EAAE;gBAC5B,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;gBAC/B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,4BAA4B,EAAE,EAAE,EAAE;oBACpD,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,eAAe,CAAC;oBAC7B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;iBAAM;gBACL,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,EAAE;oBACrB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uBAAuB,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE;wBAC9D,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;qBAAM;oBACL,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uBAAuB,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE;wBAC9D,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;aACF;QACH,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;YACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,EAAE;gBAC/C,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CACF,CAAC;IACJ,CAAC;IAED,YAAY;QACV,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC/I,IAAI,CAAC,kBAAkB,CAAC,YAAY,GAAG,EAAE,CAAC;QAC1C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACnE,IAAG,IAAI,CAAC,YAAY,KAAG,IAAI,EAAC;YAC5B,IAAI,CAAC,mBAAmB;iBACrB,wCAAwC,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,EAAC,IAAI,CAAC,YAAY,CAAC;iBACpG,SAAS,CACR,CAAC,GAAU,EAAE,EAAE;gBACb,IAAI,GAAG,EAAE;oBACP,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;oBAC/B,GAAG,CAAC,OAAO,CAAC,CAAC,OAAY,EAAE,EAAE;wBAC3B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;4BACrB,KAAK,EAAE,OAAO,CAAC,IAAI;4BACnB,KAAK,EAAE,OAAO,CAAC,EAAE;yBAClB,CAAC,CAAC;wBACH,IAAG,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;4BACnB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,EAAE,CAAC;4BAC7B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;yBAChE;oBACH,CAAC,CAAC,CAAC;oBACH,IAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAC;wBAChB,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;qBACzB;iBACF;qBAAM;oBACL,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;oBAC9B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;oBAClG,IAAI,CAAC,eAAe,GAAG,KAAK;oBAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;oBACvB,IAAI,CAAC,mBAAmB,EAAE,CAAC;iBAC5B;YACH,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;gBACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kCAAkC,EAAE,EAAE,EAAE;oBAC1D,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACL,CAAC,CACF,CAAC;SACH;IACH,CAAC;IAED,wBAAwB;QACtB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QAEnB,IAAI,CAAC,mBAAmB;aACrB,wBAAwB,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,EAAC,IAAI,CAAC,YAAY,EAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC;aACxH,SAAS,CACR,CAAC,GAAU,EAAE,EAAE;YACb,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;gBAClB,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;gBAClC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;aAC7B;iBAAM;gBACL,IAAI,CAAC,UAAU,GAAC,EAAE,CAAC;aACpB;QACH,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;YACb,IAAI,CAAC,UAAU,GAAC,EAAE,CAAC;QACrB,CAAC,CACF,CAAC;IAGR,CAAC;;oFA9vCU,kBAAkB;kGAAlB,kBAAkB;;wEA+DlB,yEAAY;wEAEZ,+DAAO;;;;;;;;QCzHpB,wFACA;QAAA;QAAA,oFACE;QAAA;QAAA,0EACA;QAAA;QAAA,8EACA;QAAA;QAAA,wEAAyB;QAAA,qEAAS;QAAA,2EAA0B;QAAA,2EAAqB;QAAA,iEAAK;QAAA,qEAAoD;QAAA,4DAAO;QAAA,qEAA0D;QAAA;QAAA,6EACxM;QADgN,yRAAS,YAAgB,IAAC;QAC1O;QAAA,4EAAU;QAAA,iEAAK;QAAA,4DAAW;QAC5B;QAAA,4DAAS;QAAC;QAAA,4DAAO;QAAA,4DAAK;QACzB;QAAA,4DAAW;QAEX;QAAA,gFACA;QAAA;QACA;QAAA,2EAEA;QAAA;QACA;QAEA;QAEA;QAEA;QAMA;QAAA,uEACA;QAAA;QAAA,iFAA4B;QAAA,wDAAe;QAAA,4DAAY;QACvD;QAAA,4DAAM;QACN;QAAA,4DAAM;QAEN;QAAA,2EACA;QAAA;QAAA,2EACE;QAAA;QAAA,sFACG;QAAA;QAAA,6EAAW;QAAA,8EAAkB;QAAA,4DAAY;QACzC;QAAA,wEACF;QAAA;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,8EACG;QADsB,2IAAS,iBAAa,IAAC;QAC7C;QAAA,4EAAU;QAAA,gEAAI;QAAA,4DAAW;QAC3B;QAAA,4DAAS;QACZ;QAAA,4DAAM;QACN;QAAA,4DAAM;QAEN;QAAA,4DAAW;QACX;QAAA,4DAAO;QACP;QAAA,4DAAc;QAEd;QAAA,gFACE;QAAA;QAAA,oFACE;QAAA;QAAA,2EACE;QAAA;QAAA,2EACE;QAAA;QAAA,2EACE;QAAA;QAAA,sFACE;QAAA;QAAA,6EAAW;QAAA,0EAAc;QAAA,4DAAY;QACrC;QAAA,kFACE;QADgF,yKAAkB,oBAAgB;QAClH;QAAA,+HACE;QAEJ;QAAA,4DAAa;QACf;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,sFACE;QAAA;QAAA,6EAAW;QAAA,wDAAuD;QAAA,4DAAY;QAC9E;QAAA,kFACE;QADyE,yKAAkB,8BAA0B;QACrH;QAAA,+HACE;QAEJ;QAAA,4DAAa;QACf;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACN;QAWA;QACE;QACE;QAAA,4EACE;QAAA;QAAA,uFACE;QAAA;QAAA,8EAAW;QAAA,yDAAoD;QAAA,4DAAY;QAC3E;QAAA,mFACE;QADsE,oKAAkB,sBAAkB;QAC1G;QAAA,iIACE;QAEJ;QAAA,4DAAa;QACf;QAAA,4DAAiB;QACjB;QACA;QAAA,+GAAsB;QACxB;QAAA,4DAAM;QAEN;QAAA,4EACE;QAAA;QAAA,4EACE;QAAA;QAEA;QAAA,yHAAsI;QACtI;QAIE;QACA;QACJ;QAAA,4DAAM;QACR;QAAA,4DAAM;QACR;QACF;QACF;QAAA,4DAAM;QACR;QAAA,4DAAO;QACP;QAAA,oHACE;QAQF;QACE;QAAA,oHACA;QAeJ;QAAA,4DAAmB;QACrB;QAAA,4DAAW;QAGX;QAAA,8HACE;QA0OF;QAAA,4DAAwB;QACxB;QAAA,oFAMI;QAAA;QAAA,0EAAmB;QAAA,wEAAW;QAAA,4DAAI;QACtC;QAAA,4DAAc;QACd;;QApYQ,0DAAyB;QAAzB,sFAAyB;QAyBL,2DAAe;QAAf,gFAAe;QAwBjC,2DAA2B;QAA3B,wFAA2B;QAGX,0DAAiC;QAAjC,uGAAiC;QAGjC,0DAAqC;QAArC,0FAAqC;QAOrC,0DAAiC;QAAjC,uGAAiC;QACpC,0DAAuD;QAAvD,iIAAuD;QAEpD,0DAAmC;QAAnC,uFAAmC;QAoB/B,2DAAiC;QAAjC,uGAAiC;QACpC,0DAAoD;QAApD,8HAAoD;QAEjD,0DAAiC;QAAjC,qFAAiC;QAM9C,0DAAkB;QAAlB,gFAAkB;QAOX,0DAAqC;QAArC,uGAAqC;QAarC,2DAAyC;QAAzC,2GAAyC;QAUpB,0DAAsC;QAAtC,wGAAsC;QAoBzE,0DAAkB;QAAlB,gFAAkB;QA+O3B,0DAAoB;QAApB,6EAAoB;;6FDzUR,kBAAkB;cAL9B,uDAAS;eAAC;gBACT,QAAQ,EAAE,gBAAgB;gBAC1B,WAAW,EAAE,6BAA6B;gBAC1C,SAAS,EAAE,CAAC,6BAA6B,CAAC;aAC3C;ojCAEuB,OAAO;kBAA5B,uDAAS;mBAAC,SAAS;YA+DpB,SAAS;kBADR,uDAAS;mBAAC,yEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YAGzC,IAAI;kBADH,uDAAS;mBAAC,+DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AEzHtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AAOF;AACE;AACZ;AACa;;;;;;;;;;;;;ICFtC,yEAAwF;IAAA,yEAAc;IAAA,4DAAK;;;IAC3G,yEAAwD;IAAA,uDAA8B;IAAA,4DAAK;;;IAAnC,0DAA8B;IAA9B,yGAA8B;;;IAItF,yEAAwF;IAAA,oEAAS;IAAA,4DAAK;;;IACtG,yEAAwD;IAAA,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,oGAAyB;;;IAGjF,yEAAgF;IAAA,yEAAa;IAAA,4DAAK;;;;IAGhG,6EAAqG;IAAjC,8aAA8B;IAAG;IAAA,+EAAmC;IAAA,mEAAQ;IAAA,4DAAW;IAAC,yEAAa;IAAA,4DAAS;;;IAFpL,yEACE;IAAA;IACA;IAAA,6HAAqG;IACvG;IAAA,4DAAK;;;IADK,0DAA2B;IAA3B,yFAA2B;;;IAIrC,oEAA4D;;;IAC5D,oEAAkE;;;IAClE,yEACI;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAChD;IAAA,4DAAK;;;ADRvB,MAAM,oBAAoB;IAgB/B,YAAoB,mBAAuC,EAAW,SAAsB,EAClF,OAA0B;QADhB,wBAAmB,GAAnB,mBAAmB,CAAoB;QAAW,cAAS,GAAT,SAAS,CAAa;QAClF,YAAO,GAAP,OAAO,CAAmB;QAfrC,qBAAgB,GAAa;YAC1B,mBAAmB;YACnB,cAAc;YACd,aAAa;SACd,CAAC;QAGF,iBAAY,GAAa,EAAE,CAAC;QAC5B,aAAQ,GAAG,CAAC,CAAC;QACb,oBAAe,GAAa,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAC,EAAE,CAAC,CAAC;QAC3C,eAAU,GAAG,IAAI,0EAAkB,EAAyB,CAAC;QAG7D,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QAG1C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;QAC1C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;IAC/C,CAAC;IAEJ,QAAQ;QACN,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,UAAU,CAAC;QAEnG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAE,CAAC;IAC/C,CAAC;IAEM,WAAW,CAAC,QAA+B;QAGjD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACnB,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,iBAAiB,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC,GAAe,EAAE,EAAE;YAC5I,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,GAAG,EAAE;gBACT,MAAM,MAAM,GAAG,8BAA8B,GAAG,GAAG,CAAC,OAAO,CAAC;gBAC5D,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;gBACzC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;gBACnB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;gBAC7B,IAAI,CAAC,KAAK,EAAE,CAAC;aACZ;QACF,CAAC,EAAE,CAAC,KAAU,EAAE,EAAE;YACZ,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iCAAiC,EAAE,EAAE,EAAE;gBACzD,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CACJ,CAAC;IACJ,CAAC;IAEO,YAAY,CAAC,SAAiB;QACpC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,GAA4B,EAAE,EAAE;YACnG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,GAAG,EAAE;gBACP,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;gBACzB,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,GAAG,CAAC,CAAC;gBAC9C,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;aAClC;QAEF,CAAC,EAAE,CAAC,KAAU,EAAE,EAAE;YACZ,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iCAAiC,EAAE,EAAE,EAAE;gBACzD,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CACJ,CAAC;IACJ,CAAC;;wFAxEW,oBAAoB;oGAApB,oBAAoB;wEAapB,wEAAY;wEACZ,8DAAO;;;;;;QClCpB,2EACI;QAAA;QAAA,mFACI;QAAA;QAAA,yEACI;QAAA;QAAA,yEACI;QAAA;QAAA,yEACI;QAAA;QAAA,+EAEE;QAAA;QAAA,4EACE;QAAA;QAAA,gHAAwF;QACxF;QAAA,gHAAwD;QAC1D;QAAA,qEAAe;QAEjB;QAAA,4EACI;QAAA;QAAA,gHAAwF;QACxF;QAAA,gHAAwD;QAC1D;QAAA,qEAAe;QACf;QAAA,4EACE;QAAA;QAAA,iHAAgF;QAChF;QAAA,iHACE;QAGJ;QAAA,qEAAe;QAEb;QAAA,iHAAuD;QACvD;QAAA,iHAA6D;QAC7D;QAAA,iHACI;QAER;QAAA,4DAAQ;QACV;QAAA,4DAAM;QACR;QAAA,2EACI;QAAA;QAAA,gFAAgE;QACpE;QAAA,4DAAM;QACV;QAAA,4DAAM;QACV;QAAA,4DAAM;QAEV;QAAA,4DAAmB;QACvB;QAAA,4DAAW;QACX;QAAA,mFAEI;QAAA;QAAA,yEAAmB;QAAA,uEAAW;QAAA,4DAAI;QACtC;QAAA,4DAAc;QACd;;QAtC6C,2DAAyB;QAAzB,sFAAyB;QAmB3B,2DAAmC;QAAnC,iGAAmC;QAC1C,0DAAgD;QAAhD,kGAAgD;QAOjD,0DAAgC;QAAhC,kJAAgC;QAOT,0DAAoB;QAApB,6EAAoB;;6FDnBjE,oBAAoB;cALhC,uDAAS;eAAC;gBACT,QAAQ,EAAE,kBAAkB;gBAC5B,WAAW,EAAE,+BAA+B;gBAC5C,SAAS,EAAE,CAAC,+BAA+B,CAAC;aAC7C;gTAc4C,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACH,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AElCtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAqE;AACa;AAIxB;AAQe;AAeX;AAQQ;AACX;AACE;AACZ;AACQ;;;;;;;;;;;;;;;;;;;;ICtBzC,iFACE;IAAA,uDACF;IAAA,4DAAa;;;IAFqC,+EAAmB;IACnE,0DACF;IADE,4HACF;;;IAQA,iFACE;IAAA,uDACF;IAAA,4DAAa;;;IAFmC,gFAAoB;IAClE,0DACF;IADE,6HACF;;;IAQA,iFACE;IAAA,uDACF;IAAA,4DAAa;;;IAF+B,iFAAqB;IAC/D,0DACF;IADE,8HACF;;;IAUI,iFACE;IAAA,uDACF;IAAA,4DAAa;;;IAFiC,gFAAoB;IAChE,0DACF;IADE,qIACF;;;IAYhB,0EACE;IAAA;IAAA,yEACE;IAAA;IAAA,0EACE;IAAA;IAAA,0EACE;IAAA;IAAA,qEACF;IAAA;IAAA,4DAAM;IACN;IAAA,yEAAgB;IAAA,2KAA0G;IAAA,4DAAI;IAEhI;IAAA,4DAAM;IACR;IAAA,4DAAM;IAER;IAAA,4DAAM;;;;IAQN,yEACE;IAAA;IAAA,mFAGA;IAHc,4VAAoC,IAAI,IAAC;IAGvD;IAAA,4DAAe;IACjB;IAAA,4DAAK;;;IAHW,0DAAmD;IAAnD,4HAAmD;;;;IAInE,yEACE;IAAA;IAAA,mFAGA;IAHc,yOAAS,wBAAwB,IAAC,2SACf,iCAAqB,GAAG,IAAI,IADb;IAGhD;IAAA,4DAAe;IACjB;IAAA,4DAAK;;;;IAFW,0DAAqC;IAArC,0GAAqC;;;IAK7C,yEAAmD;IAAA,iEAAM;IAAA,4DAAK;;;IAC9D,yEAAwC;IAAA;IAAA,oEAAG;IAAA,uDAAsB;IAAA,4DAAI;IAAC;IAAA,gEAAK;IAAA,wEAAsB;IAAA,wEAAO;IAAA,iGAAsC;IAAA,4DAAQ;IAAA,4DAAI;IAAA,4DAAK;;;IAApH,0DAAsB;IAAtB,uFAAsB;;;IAGjE,yEAAuC;IAAA,oEAAQ;IAAA,4DAAK;;;IACpD,yEAAwC;IAAA,uDAAmB;IAAA,4DAAK;;;IAAxB,0DAAmB;IAAnB,8FAAmB;;;IAG3D,yEAAoD;IAAA,mEAAO;IAAA,4DAAK;;;IAChE,yEAAwC;IAAA,uDAAmB;IAAA,gEAAK;IAAA,2EAAyB;IAAA,wEAAO;IAAA,sEAAW;IAAA,4DAAQ;IAAA,4DAAO;IAAC;IAAA,4DAAK;;;IAAxF,0DAAmB;IAAnB,8FAAmB;;;IAE7D,oEAA4D;;;IAC5D,oEAAkE;;;IA/BxE,yEACE;IAAA;IAAA,0EAEG;IAAA;IAAA,4EACR;IAAA;IAAA,4EACG;IAAA;IAAA,uHACE;IAKF;IAAA,yHACE;IAKJ;IAAA,qEAAe;IACP;IAAA,6EACE;IAAA;IAAA,yHAAmD;IACnD;IAAA,yHAAwC;IAC1C;IAAA,qEAAe;IACf;IAAA,6EACE;IAAA;IAAA,yHAAuC;IACvC;IAAA,yHAAwC;IAC1C;IAAA,qEAAe;IACf;IAAA,6EACE;IAAA;IAAA,yHAAoD;IACpD;IAAA,yHAAwC;IAC1C;IAAA,qEAAe;IACf;IAAA,yHAAuD;IACvD;IAAA,yHAA6D;IAC/D;IAAA,4DAAQ;IACV;IAAA,4DAAM;IACR;IAAA,4DAAM;;;IA/BgB,0DAAyB;IAAzB,yFAAyB;IA2BtB,2DAAmC;IAAnC,oGAAmC;IAC1C,0DAAgD;IAAhD,qGAAgD;;ADvD/D,MAAM,qBAAqB;IA0ChC,YAAoB,MAAiB,EAC3B,SAAsB,EACtB,kBAAqC;IAC7C,yCAAyC;IACjC,gBAAiC,EACjC,EAAe,EACf,mBAA8C,EAC9C,OAAe,EACf,qBAA2C,EAC3C,iBAAmC,EACpC,SAA8C,EACrB,IAA2B;QAXzC,WAAM,GAAN,MAAM,CAAW;QAC3B,cAAS,GAAT,SAAS,CAAa;QACtB,uBAAkB,GAAlB,kBAAkB,CAAmB;QAErC,qBAAgB,GAAhB,gBAAgB,CAAiB;QACjC,OAAE,GAAF,EAAE,CAAa;QACf,wBAAmB,GAAnB,mBAAmB,CAA2B;QAC9C,YAAO,GAAP,OAAO,CAAQ;QACf,0BAAqB,GAArB,qBAAqB,CAAsB;QAC3C,sBAAiB,GAAjB,iBAAiB,CAAkB;QACpC,cAAS,GAAT,SAAS,CAAqC;QACrB,SAAI,GAAJ,IAAI,CAAuB;QApD7D,eAAU,GAAS,KAAK,CAAC;QACzB,qBAAgB,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QAEpD,4EAA4E;QAC5E,yDAAyD;QACzD,cAAS,GAAG,IAAI,uEAAc,CAAM,IAAI,EAAE,EAAE,CAAC,CAAC;QAC9C,oBAAe,GAAW,CAAC,CAAC;QAM5B,iBAAY,GAAW,CAAC,CAAC;QACzB,YAAO,GAAW,CAAC,CAAC;QACpB,eAAU,GAAW,CAAC,CAAC;QACvB,mBAAc,GAAiB,EAAE,CAAC;QAClC,cAAS,GAAiB,EAAE,CAAC;QAC7B,iBAAY,GAAiB,EAAE,CAAC;QAChC,sBAAiB,GAAiB,EAAE,CAAC;QAMrC,iBAAY,GAAa,EAAE,CAAC;QAC5B,gBAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACvC,aAAQ,GAAG,CAAC,CAAC;QACb,oBAAe,GAAa,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAC5C,yBAAoB,GAAG,EAAE,CAAC;QAE3B,SAAI,GAAG,EAAE,CAAC;QACT,eAAU,GAAG,IAAI,0EAAkB,EAAiB,CAAC;QAMrD,kGAAkG;QAElG,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QAe1C,SAAI,GAAG;YACT,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE;YACxC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;YACvC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE;SACtC,CAAC;QACF,qBAAgB,GAAa,CAAC,QAAQ;YACpC,WAAW;YACX,SAAS;YACT,QAAQ;SACT,CAAC;QACF,qBAAgB,GAAa,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;IAZK,CAAC;IAcjE,IAAI,CAAC,KAA4B;QAC/B,8EAAe,CACb,IAAI,CAAC,gBAAgB,EACrB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,YAAY,CACnB,CAAC;IACJ,CAAC;IACD,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAC3D;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SAChE;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;YAC7B,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;SACvC;QACD,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACnC,CAAC;IAED,SAAS;QACP,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAGH,QAAQ;QACJ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YAC7B,eAAe,EAAE,CAAC,IAAI,CAAC;YACvB,YAAY,EAAE,CAAC,IAAI,CAAC;YACpB,OAAO,EAAE,CAAC,IAAI,CAAC;YACf,UAAU,EAAE,CAAC,IAAI,CAAC;SACvB,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;QACrC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QAC7B,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QACzB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QACzB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,+BAA+B,EAAE,CAAC;IAC3C,CAAC;IAEC,kCAAkC;QAChC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACnE,2BAA2B;QAC3B,gCAAgC;QAChC,4BAA4B;QAC5B,yBAAyB;QACzB,YAAY;QACZ,uCAAuC;QACvC,MAAM;QACN,gBAAgB;QAChB,wBAAwB;QACxB,4BAA4B;QAC5B,0CAA0C;QAC1C,qCAAqC;QACrC,2CAA2C;QAC3C,wCAAwC;QACxC,gBAAgB;QAChB,kDAAkD;QAClD,cAAc;QACd,qCAAqC;QACrC,4EAA4E;QAC5E,qCAAqC;QACrC,YAAY;QACZ,WAAW;QACX,SAAS;QACT,wBAAwB;QACxB,sEAAsE;QACtE,0BAA0B;QAC1B,uCAAuC;QACvC,kCAAkC;QAClC,YAAY;QACZ,QAAQ;QACR,OAAO;IACT,CAAC;IACD,iBAAiB;QACf,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,CAAC,SAAS,CACnD,CAAC,SAAgB,EAAE,EAAE;YACnB,SAAS,CAAC,OAAO,CAAC,CAAC,CAAM,EAAE,EAAE;gBAC3B,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC1E,IAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,WAAW,EAC3C;oBACD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;wBAC1B,KAAK,EAAE,CAAC,CAAC,iBAAiB;wBAC1B,KAAK,EAAE,CAAC,CAAC,EAAE;qBACZ,CAAC,CAAC;iBACD;gBACF,6CAA6C;gBAC7C,kDAAkD;YACpD,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,MAAM,EAAE,CAAC;QAC1D,CAAC,EACD,KAAK,CAAC,EAAE;YACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mCAAmC,EAAE,EAAE,EAAE;gBAC3D,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACH,4BAA4B;YAC5B,uBAAuB;YACvB,8BAA8B;YAC9B,gDAAgD;YAChD,MAAM;QACR,CAAC,CACF,CAAC;IACJ,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,kBAAkB,CAAC,wBAAwB,EAAE,CAAC,SAAS,CAC1D,CAAC,GAAwB,EAAE,EAAE;YAC3B,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;YACzB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACtE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAM,EAAE,EAAE;gBACrB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;oBACvB,KAAK,EAAE,CAAC,CAAC,WAAW;oBACpB,KAAK,EAAE,CAAC,CAAC,YAAY;iBACtB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACL,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,MAAM,EAAE,CAAC;QACrD,CAAC,EACD,KAAK,CAAC,EAAE;YACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kCAAkC,EAAE,EAAE,EAAE;gBAC1D,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACH,4BAA4B;YAC5B,uBAAuB;YACvB,8BAA8B;YAC9B,+CAA+C;YAC/C,MAAM;QACR,CAAC,CACF,CAAC;IACJ,CAAC;IAED,QAAQ,CAAC,KAAK;QACZ,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC1D,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACxE,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC;QACnC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACzB,CAAC;IACD,kBAAkB,CAAC,KAAK;QACtB,2BAA2B;QAC3B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC;QAChC,IAAI,CAAC,2BAA2B,EAAE,CAAC;IACrC,CAAC;IACD,gBAAgB;QACd,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,2BAA2B;QACzB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,2BAA2B;QAC3B,gCAAgC;QAChC,4BAA4B;QAC5B,yBAAyB;QACzB,YAAY;QACZ,WAAW;QACX,MAAM;QACN,gBAAgB;QAChB,wBAAwB;QACxB,4BAA4B;QAC5B,uEAAuE;QACvE,0CAA0C;QAC1C,kCAAkC;QAClC,oCAAoC;QACpC,qCAAqC;QACrC,gBAAgB;QAChB,4CAA4C;QAC5C,cAAc;QACd,4CAA4C;QAC5C,kCAAkC;QAClC,sEAAsE;QACtE,uDAAuD;QACvD,YAAY;QACZ,WAAW;QACX,SAAS;QACT,wBAAwB;QACxB,sEAAsE;QACtE,0BAA0B;QAC1B,uCAAuC;QACvC,kCAAkC;QAClC,YAAY;QACZ,qCAAqC;QACrC,gCAAgC;QAChC,uCAAuC;QACvC,wDAAwD;QACxD,eAAe;QACf,QAAQ;QACR,OAAO;IACT,CAAC;IAGS,+BAA+B;QACvC,IAAI,cAAc,GAAW,IAAI,CAAC,GAAG,CAAC;QACtC,qEAAqE;QACrE,gCAAgC;QAChC,gBAAgB;QAChB,wBAAwB;QACxB,mBAAmB;QACnB,0CAA0C;QAC1C,wEAAwE;QACxE,iFAAiF;QACjF,eAAe;QACf,aAAa;QACb,UAAU;QACV,QAAQ;QACR,OAAO;IACT,CAAC;IAEH,WAAW;IACX,IAAI;IACJ,yDAAyD;IACzD,kDAAkD;IAClD,uFAAuF;IACvF,KAAK;IACL,IAAI;IAEF,MAAM;QACJ,IAAI,MAAM,GAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC1C,IAAG,MAAM,IAAE,CAAC,EACZ;YACG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,8CAA8C,EAAE,EAAE,EAAE;gBACnE,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACH,OAAO;SACZ;QACC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;YACjC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;SAAE;QACnF,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,GAAE,CAAC,EAAE;YACvC,IAAI,eAAgC,CAAC;YACrC,eAAe,GAAG,IAAI,+EAAe,EAAE,CAAC;YACxC,eAAe,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YAC7C,eAAe,CAAC,WAAW,GAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YACrD,oEAAoE;YAClE,IAAI,CAAC,qBAAqB;iBACrB,SAAS,CAAC,eAAe,CAAC;iBAC1B,SAAS,CACR,GAAG,CAAC,EAAE;gBACJ,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC3B,CAAC,EACD,KAAK,CAAC,EAAE;gBACN,4BAA4B;gBAC5B,uBAAuB;gBACvB,8BAA8B;gBAC9B,wBAAwB;gBACxB,MAAM;YACR,CAAC,CACF,CAAC;SACP;IACH,CAAC;IAEC,cAAc,CAAC,IAAY;QAC3B,IAAI,CAAC,iBAAiB;aACnB,qBAAqB,CACpB,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,EAChC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CACpC;aACA,SAAS,CACR,CAAC,GAAoB,EAAE,EAAE;YACvB,IAAI,GAAG,EAAE;gBACP,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;gBACzB,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,GAAG,CAAC,CAAC;gBAC9C,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;aAClC;QACH,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;YACb,IACE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,kBAAkB;gBACrC,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,WAAW;oBACxC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC5C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,WAAW,EACxC;gBACA,yBAAyB;gBACzB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;aACxB;iBAAM,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,kBAAkB,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,mBAAmB,EAAE;gBAC5F,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,EAAE;oBAC3C,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;iBAAM;gBACL,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,mCAAmC,GAAG,KAAK,CAAC,KAAK,EACjD,GAAG,EACH;oBACE,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CACF,CAAC;aACH;QACH,CAAC,CACF,CAAC;IACN,CAAC;IAEA,gFAAgF;IAChF,aAAa;QACZ,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;QACnD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;QAC5C,OAAO,WAAW,KAAK,OAAO,CAAC;IACjC,CAAC;IAED,gFAAgF;IAChF,YAAY;QACV,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;YAClB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;YACxB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,sDAAsD;IACtD,qCAAqC;IACrC,gBAAgB;IAChB,oEAAoE;IACpE,MAAM;IACN,gGAAgG;IAChG,IAAI;IACJ,WAAW,CAAC,CAAC;QACX,IAAG,CAAC,CAAC,KAAK,IAAE,IAAI,EAAC;YACf,IAAI,CAAC,UAAU,GAAC,KAAK,CAAC;SACvB;aACG;YACF,IAAI,CAAC,UAAU,GAAC,IAAI,CAAC;SACtB;IACH,CAAC;;0FAnZU,qBAAqB,w9CAqDtB,wEAAe;qGArDd,qBAAqB;wEAkCrB,wEAAY;wEAEZ,8DAAO;;;;;;QC1FpB,8EACE;QAAA;QAAA,mFACE;QAAA;QAAA,yEACE;QAAA;QAAA,yEACE;QAAA;QAAA,wEAAqB;QAAA,qEAAU;QAAA,4DAAK;QACtC;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,6EACF;QADU,8IAAS,eAAW,IAAC;QAC/B;QAAA,qEAEJ;QAAA;QAAA,4DAAS;QACL;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,0EACE;QAAA;QAAA,0EACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,yEAAa;QAAA,4DAAY;QACpC;QAAA,kFACE;QADgF,4KAAkB,oBAAgB;QAClH;QAAA,kIACE;QAEJ;QAAA,4DAAa;QACf;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,sEAAU;QAAA,4DAAY;QACjC;QAAA,kFACE;QADyE,4KAAkB,8BAA0B;QACrH;QAAA,kIACE;QAEJ;QAAA,4DAAa;QACf;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,iEAAK;QAAA,4DAAY;QAC5B;QAAA,kFACE;QAD+D,sKAAkB,wCAAoC;QACrH;QAAA,kIACE;QAEJ;QAAA,4DAAa;QACf;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,0EACE;QAAA;QAAA,2EACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,qEAAS;QAAA,4DAAY;QAChC;QAAA,kFACE;QADsE,sKAAkB,sBAAkB;QAC1G;QAAA,kIACE;QAEJ;QAAA,4DAAa;QACf;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACR;QAAA,4DAAM;QACR;QAAA,4DAAM;QACR;QAAA,4DAAM;QACR;QAAA,4DAAO;QACT;QAAA,4DAAM;QAIN;QAAA,qHACE;QAaF;QAAA,qHACE;QAmCF;QAAA,0EACE;QAAA;QAAA,2EACE;QAAA;QAAA,2EACE;QAAA;QAAA,8EAA4D;QAAnB,8IAAS,YAAQ,IAAC;QAAC,4EAAe;QAAA,4DAAS;QACtF;QAAA,4DAAM;QACR;QAAA,4DAAM;QAER;QAAA,4DAAM;QACR;QAAA,4DAAmB;QACrB;QAAA,4DAAW;;QA/GC,2DAA2B;QAA3B,wFAA2B;QAGX,0DAAiC;QAAjC,uGAAiC;QAGjC,0DAAqC;QAArC,0FAAqC;QAOrC,0DAAiC;QAAjC,uGAAiC;QAGjC,0DAAmC;QAAnC,uFAAmC;QAOnC,0DAAiC;QAAjC,uGAAiC;QAGjC,0DAA+B;QAA/B,kFAA+B;QAS3B,2DAAiC;QAAjC,uGAAiC;QAGjC,0DAAiC;QAAjC,qFAAiC;QActC,2DAAkB;QAAlB,gFAAkB;QAcxB,0DAAmB;QAAnB,iFAAmB;;6FDxB3B,qBAAqB;cANjC,uDAAS;eAAC;gBACT,QAAQ,EAAE,oBAAoB;gBAC9B,WAAW,EAAE,iCAAiC;gBAC9C,SAAS,EAAE,CAAC,iCAAiC,CAAC;aAC/C;s5BAuDyC,qBAAqB;sBAA1D,oDAAM;uBAAC,wEAAe;wBAlBzB,SAAS;kBADR,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YAGzC,IAAI;kBADH,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AE1FtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0D;AACD;AAC2C;AACnB;AACI;AACb;;;;;;;;;;AASjE,MAAM,mBAAmB;IAQ9B,YACU,SAAsB,EACvB,SAA4C,EAC3C,YAAyB,EACzB,kBAAqC,EACb,IAAyB;QAJjD,cAAS,GAAT,SAAS,CAAa;QACvB,cAAS,GAAT,SAAS,CAAmC;QAC3C,iBAAY,GAAZ,YAAY,CAAa;QACzB,uBAAkB,GAAlB,kBAAkB,CAAmB;QACb,SAAI,GAAJ,IAAI,CAAqB;QAZ3D,qBAAgB,GAAG,wDAAW,CAAC,oBAAoB,CAAC;IAclD,CAAC;IAEH,QAAQ;QACN,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;YACxC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;SACzC,CAAC,CAAC;IACJ,CAAC;IAED,SAAS;QACR,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAEA,UAAU;QACT,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;YACzB,IAAI,YAA0B,CAAC;YAC/B,YAAY,GAAG,IAAI,qFAAY,EAAE,CAAC;YAElC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC;YACzD,YAAY,CAAC,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;YAC/C,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC;YAC3B,YAAY,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC;YAC9C,YAAY,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC;YACxC,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YACpC,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;YAEpC,IAAI,CAAC,kBAAkB;iBACpB,aAAa,CAAC,YAAY,CAAC;iBAC3B,SAAS,CACR,GAAG,CAAC,EAAE;gBACJ,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC3B,CAAC,EACD,KAAK,CAAC,EAAE;gBACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;oBAC5B,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACb,CAAC,CACF,CAAC;SACD;IACH,CAAC;;sFA3DM,mBAAmB,snBAapB,wEAAe;mGAbd,mBAAmB,gHAFnB,CAAC,kGAAiB,CAAC;QCXhC;QAAA,8EACI;QAAA;QAAA,mFACF;QAAA;QAAA,0EACA;QAAA;QAAA,yEACE;QAAA;QAAA,yEACE;QAAA;QACF;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,6EACE;QADM,4IAAS,eAAW,IAAC;QAC3B;QAAA,qEAEJ;QAAA;QAAA,4DAAS;QACT;QAAA,4DAAM;QACR;QAAA,4DAAM;QAEN;QAAA,0EACE;QAAA;QAAA,0EACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,mEAAO;QAAA,4DAAY;QAC9B;QAAA,0EAAgG;QAClG;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACR;QAAA,4DAAM;QAEN;QAAA,0EACE;QAAA;QAAA,2EACE;QAAA;QAAA,2EACE;QAAA;QAAA,8EAAiF;QAAvC,4IAAS,gBAAY,IAAC;QAAiB,gEAAI;QAAA,4DAAS;QAC9F;QAAA,8EAAgF;QAAtC,4IAAS,eAAW,IAAC;QAAiB,kEAAM;QAAA,4DAAS;QACjG;QAAA,4DAAM;QACN;QAAA,4DAAM;QACR;QAAA,4DAAM;QAAA,4DAAO;QACb;QAAA,4DAAmB;QACrB;QAAA,4DAAW;QAEb;;QAjCQ,0DAAwB;QAAxB,qFAAwB;QAeR,2DAAiC;QAAjC,uGAAiC;;6FDJ5C,mBAAmB;cAN/B,uDAAS;eAAC;gBACT,QAAQ,EAAE,iBAAiB;gBAC3B,WAAW,EAAE,8BAA8B;gBAC3C,SAAS,EAAE,CAAC,8BAA8B,CAAC;gBAC3C,SAAS,EAAE,CAAC,kGAAiB,CAAC;aAC/B;8XAcyC,mBAAmB;sBAAxD,oDAAM;uBAAC,wEAAe;;;;;;;;;;;;;;AE3B3B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0E;AAEZ;AAC8B;AACA;AACI;AAGhG,uFAAuF;AACvF,+CAA+C;AAC/C,iEAAiE;AACoC;AACI;AAOnC;AACX;AACE;AACZ;;;;;;;;;;;;;;;;;;;;;ICE3B,yEAAsC;IAAA,sEAAW;IAAA,4DAAK;;;IACtD,yEAAwC;IAAA,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,kGAAuB;;;IAG7D,yEAAsC;IAAA,wEAAa;IAAA,4DAAK;;;IACxD,yEAAwC;IAAA,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,oGAAyB;;;IAGjE,yEAAsC;IAAA,uEAAY;IAAA,4DAAK;;;IACvD,yEAAwC;IAAA,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,oGAAyB;;;IAKnE,yEAA4D;IAAA,gEAAK;IAAA,4DAAK;;;;IACtE,yEACI;IAAA;IAAA,6EACI;IAD6D,qXAAqC;IAClG;IAAA,+EAAyB;IAAA,qEAAU;IAAA,4DAAW;IACtD;IAAA,4DAAS;IAAC;IAAA,4DAAK;;;IAGb,yEAA4D;IAAA,gEAAK;IAAA,4DAAK;;;;IACtE,yEACI;IAAA;IAAA,6EACI;IADkD,4XAA4C;IAC9F;IAAA,+EAAyB;IAAA,+DAAI;IAAA,4DAAW;IAChD;IAAA,4DAAS;IAAC;IAAA,4DAAK;;;IAGf,yEAA4D;IAAA,kEAAO;IAAA,4DAAK;;;;IACxE,yEACI;IAAA;IAAA,6EAEI;IADA,2XAA2C;IAC3C;IAAA,+EAAyB;IAAA,iEAAM;IAAA,4DAAW;IAClD;IAAA,4DAAS;IAAC;IAAA,4DAAK;;;IAEnB,oEAA4D;;;IAC5D,oEAAkE;;;IAUlF;IAAA,yEAAqB;IAAA,sFAA2B;IAAA,4DAAK;IACrD;IAAA,gEACA;IAAA;IAAA,qFACI;IAAA;IAAA,qEAAI;IAAA,uDAAc;IAAA,4DAAK;IAC3B;IAAA,4DAAqB;IACrB;IAAA,0FACI;IAAA;IAAA,8EAAoC;IAAA,iEAAK;IAAA,4DAAS;IACtD;IAAA,4DAAqB;IACzB;;;IALY,0DAAc;IAAd,mFAAc;;;IAmCV,0EACI;IAAA;IAAA,0EACI;IAAA;IAAA,0EACA;IAAA;IAAA,iFACI;IAAA;IAAA,4EAAW;IAAA,uDAAO;IAAA,4DAAY;IAC9B;IAAA,wEACJ;IAAA;IAAA,4DAAiB;IACrB;IAAA,4DAAM;IACN;IAAA,4DAAM;IACV;IAAA,4DAAM;;;IARG,0DAAmB;IAAnB,gFAAmB;IAGL,0DAAO;IAAP,0EAAO;;;IANlC,sEACI;IAAA;IAAA,wEAAO;IAAA,sEAAW;IAAA,4DAAQ;IAC1B;IAAA,2IACI;IASR;IAAA,4DAAM;;;IAVgC,0DAAoF;IAApF,mHAAoF;;;;IA3BlI;IAAA,yEAAqB;IAAA,yEAAc;IAAA,4DAAK;IACxC;IAAA,gEACA;IAAA;IAAA,2EACA;IAD2B,kWAAuC;IAClE;IAAA,qFACI;IAAA;IAAA,0EACI;IAAA;IAAA,2EACI;IAAA;IAAA,kFACI;IAAA;IAAA,6EAAW;IAAA,uEAAW;IAAA,4DAAY;IAClC;IAAA,wEACJ;IAAA;IAAA,4DAAiB;IACrB;IAAA,4DAAM;IACN;IAAA,2EACI;IAAA;IAAA,kFACI;IAAA;IAAA,6EAAW;IAAA,yEAAa;IAAA,4DAAY;IACpC;IAAA,wEACJ;IAAA;IAAA,4DAAiB;IACrB;IAAA,4DAAM;IACN;IAAA,2EACI;IAAA;IAAA,kFACI;IAAA;IAAA,6EAAW;IAAA,yEAAa;IAAA,4DAAY;IACpC;IAAA,6EACJ;IADiD,sWAA4C;IAAzF,4DACJ;IAAA;IAAA,4DAAiB;IACrB;IAAA,4DAAM;IACV;IAAA,4DAAM;IAEF;IAAA,qIACI;IAaZ;IAAA,4DAAqB;IACrB;IAAA,0FACI;IAAA;IAAA,8EAAiD;IAAA,wDAAc;IAAA,4DAAS;IACxE;IAAA,8EAAuE;IAAtB,wUAAqB;IAAC,iEAAK;IAAA,4DAAS;IACrF;IAAA,8EAAoC;IAAA,iEAAK;IAAA,4DAAS;IACtD;IAAA,4DAAqB;IACzB;IAAA,4DAAO;IACP;;;IA5CU,0DAAoB;IAApB,qFAAoB;IAuBb,2DAAuB;IAAvB,yFAAuB;IAgBiB,0DAAc;IAAd,mFAAc;;;ADzFhE,MAAM,uBAAuB;IAsClC,YACU,eAA+B,EAC/B,sBAA6C,EAC7C,SAAsB,EACvB,UAAsB,EACrB,GAAgB;IACxB,oDAAoD;IAC5C,kBAAqC;IAC7C,0CAA0C;IAClC,MAAiB;QARjB,oBAAe,GAAf,eAAe,CAAgB;QAC/B,2BAAsB,GAAtB,sBAAsB,CAAuB;QAC7C,cAAS,GAAT,SAAS,CAAa;QACvB,eAAU,GAAV,UAAU,CAAY;QACrB,QAAG,GAAH,GAAG,CAAa;QAEhB,uBAAkB,GAAlB,kBAAkB,CAAmB;QAErC,WAAM,GAAN,MAAM,CAAW;QA9C3B,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QAC9C,qBAAgB,GAAa,CAAC,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QACtG,iBAAiB;QACjB,eAAU,GAAG,IAAI,0EAAkB,EAAkB,CAAC;QAa/C,uBAAkB,GAAqB,EAAE,CAAC;QAGzC,wBAAmB,GAAsB,EAAE,CAAC;QAE7C,eAAU,GAAW,eAAe,CAAC;QACrC,eAAU,GAAW,MAAM,CAAC;QAC5B,oBAAe,GAAY,KAAK,CAAC;QACjC,uBAAkB,GAAY,KAAK,CAAC;QACpC,kBAAa,GAAY,KAAK,CAAC;QAE/B,oBAAe,GAAW,EAAE,CAAC;QAC7B,oBAAe,GAAY,KAAK,CAAC;QAChC,2BAAsB,GAAY,IAAI,CAAC;QACvC,2BAAsB,GAAY,IAAI,CAAC;QACxC,oBAAe,GAAY,KAAK,CAAC;QAoCxC,SAAI,GAAG;YACL,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE;YAC9C,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE;YAClE,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE;SAEnE,CAAC;QACF,qBAAgB,GAAa,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QA1BzD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC;QACrE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;QAChD,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,EAAE;YAC9D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,iCAAiC;QAEjC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;YAC3B,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC;YAChF,YAAY,EAAE,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC3C,YAAY,EAAE,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC3C,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;SACvD,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IASD,IAAI,CAAC,KAA4B;QAC/B,8EAAe,CACb,IAAI,CAAC,gBAAgB,EACrB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,YAAY,CACnB,CAAC;IACJ,CAAC;IACD,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAC3D;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SAChE;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;YAC7B,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;SACvC;QACD,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACnC,CAAC;IACD,eAAe;QACb,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;YACpB,aAAa,EAAE,CAAC,IAAI,CAAC;YACrB,UAAU,EAAE,CAAC,IAAI,CAAC;YAClB,gBAAgB,EAAE;gBAChB,EAAE;gBACF,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;aAC9D;SACF,CAAC,CAAC;IACL,CAAC;IAED,4CAA4C;IAC5C,gDAAgD;IAChD,0DAA0D;IAC1D,uCAAuC;IACvC,uDAAuD;IACvD,UAAU;IAEV,IAAI;IACG,SAAS,CAAC,IAAY;QAC3B,IAAI,IAAI,IAAI,QAAQ,EAAE;YACpB,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;SACpD;IACH,CAAC;IACD,eAAe;QACb,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,CAAC,SAAS,CACjD,CAAC,aAA+B,EAAE,EAAE;YAClC,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;YAC7B,IAAI,CAAC,kBAAkB,GAAG,aAAa,CAAC;YACxC,kCAAkC;YAClC,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAClE,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACnC,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;YACb,IAAI,KAAK,CAAC,KAAK,IAAI,SAAS,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,GAAE;YACrD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,8BAA8B,EAAE,EAAE,EAAE;gBACtD,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACH,uCAAuC;YACvC,uBAAuB;YACvB,8BAA8B;YAC9B,2CAA2C;YAC3C,MAAM;QACR,CAAC,CACF,CAAC;IACJ,CAAC;IAEM,aAAa;QAClB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,eAAe,CAAC;QAClC,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;IAC9B,CAAC;IAED,oBAAoB,CAClB,YAAoB,EACpB,YAAoB;QAEpB,IAAI,YAAY,IAAI,IAAI,IAAI,YAAY,IAAI,CAAC,EAAE;YAC7C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mCAAmC,EAAE,EAAE,EAAE;gBAC3D,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACH,uCAAuC;YACvC,sBAAsB;YACtB,gCAAgC;YAChC,gDAAgD;YAChD,MAAM;YACN,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;YACpC,OAAO;SACR;aAAM;YACL,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;SACpC;QACD,IAAI,YAAY,IAAI,IAAI,IAAI,YAAY,IAAI,IAAI,EAAE;YAChD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SAC9C;IACH,CAAC;IAED,oBAAoB,CAAC,IAAS;QAC5B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC,YAAY;QACtE,IAAG,YAAY,IAAE,IAAI,EAAC;YACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iEAAiE,EAAE,EAAE,EAAE;gBACzF,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACH,OAAO;SACR;QACD,IAAI,YAAY,IAAI,IAAI,IAAI,YAAY,IAAI,IAAI,EAAE;YAChD,IAAI,CAAC,IAAI,CAAC,sBAAsB;gBAAE,OAAO;YACzC,IAAI,YAAY,GAAG,YAAY,EAAE;gBAC/B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iEAAiE,EAAE,EAAE,EAAE;oBACzF,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,uCAAuC;gBACvC,sBAAsB;gBACtB,gCAAgC;gBAChC,8EAA8E;gBAC9E,MAAM;gBAEN,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;gBACpC,OAAO;aACR;iBAAM,IAAI,YAAY,GAAG,EAAE,EAAE;gBAC5B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,6CAA6C,EAAE,EAAE,EAAE;oBACrE,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,uCAAuC;gBACvC,sBAAsB;gBACtB,gCAAgC;gBAChC,0DAA0D;gBAC1D,MAAM;gBACN,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;gBACpC,OAAO;aACR;iBAAM,IAAG,IAAI,CAAC,YAAY,IAAI,YAAY,EAAC;gBAC1C,IAAI,CAAC,YAAY,GAAG,YAAY;gBAChC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;gBACnC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,IAAI,wDAAS,CAAC,EAAE,CAAC,CAAC;gBACzD,MAAM,OAAO,GAAc,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;gBAChE,CAAC,OAAkB,EAAE,EAAE;oBACrB,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;wBAC3B,OAAO,CAAC,QAAQ,GAAG,EAAE,CAAC;wBACtB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;qBAC9B;gBACH,CAAC,CAAC;gBACF,KAAK,IAAI,CAAC,GAAG,YAAY,EAAE,CAAC,IAAI,YAAY,EAAE,CAAC,EAAE,EAAE;oBACjD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;iBACtC;gBACD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;aAC7B;SACF;IACH,CAAC;IAEM,YAAY,CAAC,cAA8B;QAChD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,cAAc,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC;QAClE,cAAc,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC;QACtE,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;QACrD,IAAI,cAAc,CAAC,UAAU,EAAE;YAC7B,cAAc,CAAC,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAClF,IAAI,cAAc,CAAC,UAAU,IAAI,EAAE,EAAE;gBACnC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;gBAC5B,uGAAuG;gBACvG,OAAO;aACR;iBAAM;gBACL,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;aAC9B;SACF;aAAM;YACL,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;SAC9B;QACD,IACE,cAAc,CAAC,UAAU,IAAI,EAAE;YAC/B,cAAc,CAAC,YAAY,IAAI,IAAI;YACnC,cAAc,CAAC,YAAY,IAAI,IAAI;YACnC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,KAAK,IAAI,IAAI;YAEhD,OAAO;QACT,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE;YAChC,IAAI,CAAC,oBAAoB,CACvB,cAAc,CAAC,YAAY,EAC3B,cAAc,CAAC,YAAY,CAC5B,CAAC;YACF,OAAO;SACR;QACD,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE;YAChC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC7C,OAAO;SACR;QACD,IAAI,gBAAgB,GAAU,EAAE,CAAC;QACjC,IAAI,WAAW,GAAG,mBAAmB,CAAC;QACtC,IAAI,IAAI,GAAG,EAAE,CAAC;QAAA,CAAC;QACf,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC;QAC9D,IAAI,gBAAgB,CAAC,MAAM,IAAI,CAAC,EAAE;YAChC,OAAO;SACR;aACI;YACH,IAAI,WAAW,GAAU,EAAE,CAAC;YAE5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAEhD,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC,gBAAgB;oBACtC,gBAAgB,CAAC,CAAC,CAAC,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBAC1G,IAAI,qBAAqB,GAAG,WAAW,CAAC,IAAI,CAC1C,gBAAgB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CACrC,CAAC;gBAEF,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,gBAAgB,IAAI,EAAE,IAAI,CAAC,qBAAqB,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC,gBAAgB,IAAI,IAAI,CAAC;gBAEvI,IAAI,WAAW,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;oBAC1B,IAAI,GAAG,OAAO,CAAC;iBAChB;;oBACI,IAAI,GAAG,MAAM,CAAC;aAEpB;YAED,IAAI,IAAI,IAAI,MAAM,EAAE;gBAClB,cAAc,CAAC,YAAY,GAAG,gBAAgB,CAAC,GAAG,CAChD,CAAC,gBAAgB,EAAE,KAAK,EAAE,EAAE;oBAC1B,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE;wBACvC,OAAO;4BACL,gBAAgB,EAAE,gBAAgB,CAAC,gBAAgB;4BACnD,UAAU,EAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,UAAU;4BACtD,aAAa,EAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;iCAC3C,aAAa;yBACjB,CAAC;qBACH;yBAAM;wBACL,OAAO;4BACL,gBAAgB,EAAE,gBAAgB,CAAC,gBAAgB;4BACnD,UAAU,EAAE,KAAK,GAAG,CAAC;yBACtB,CAAC;qBACH;gBACH,CAAC,CACF,CAAC;aACH;iBAAM;gBACL,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,EAAE;oBAC3C,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,4BAA4B;gBAC5B,sBAAsB;gBACtB,gCAAgC;gBAChC,gCAAgC;gBAChC,MAAM;gBACN,OAAO;aACR;SACF;QACD,IAAI,IAAI,CAAC,UAAU,IAAI,MAAM,EAAE;YAC7B,QAAQ;YACR,yCAAyC;YACzC,sCAAsC;YACtC,QAAQ;YACR,IAAI;YACJ,gDAAgD;YAChD,uDAAuD;YACvD,IAAI,CAAC,sBAAsB,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,SAAS,CAClE,CAAC,QAAgB,EAAE,EAAE;gBACnB,IAAI,QAAQ,IAAI,CAAC,EAAE;oBACjB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;oBAC7B,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;oBACvB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,8BAA8B,EAAE,EAAE,EAAE;wBACtD,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,eAAe,CAAC;wBAC7B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACH,uCAAuC;oBACvC,yBAAyB;oBACzB,gCAAgC;oBAChC,2CAA2C;oBAC3C,MAAM;oBACN,IAAI,CAAC,eAAe,EAAE,CAAC;oBACvB,iCAAiC;iBAClC;qBAAM,IAAI,QAAQ,IAAI,CAAC,CAAC,EAAE;oBACzB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,qDAAqD,EAAE,EAAE,EAAE;wBAC7E,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACH,uCAAuC;oBACvC,sBAAsB;oBACtB,gCAAgC;oBAChC,kEAAkE;oBAClE,MAAM;iBACP;qBAAM,IAAI,QAAQ,IAAI,CAAC,EAAE,EAAE;oBAC1B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,EAAE;wBAC3C,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACH,uCAAuC;oBACvC,sBAAsB;oBACtB,gCAAgC;oBAChC,gCAAgC;oBAChC,MAAM;iBACP;qBAAM;oBACL,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,EAAE;wBAClD,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACH,uCAAuC;oBACvC,uBAAuB;oBACvB,8BAA8B;oBAC9B,uCAAuC;oBACvC,MAAM;iBACP;YACH,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;gBACb,IAAI,KAAK,CAAC,KAAK,IAAI,SAAS,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,GAAG;gBACtD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,EAAE;oBAClD,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,uCAAuC;gBACvC,uBAAuB;gBACvB,8BAA8B;gBAC9B,uCAAuC;gBACvC,MAAM;YACR,CAAC,CACF,CAAC;SACH;aAAM;YACL,IAAI,CAAC,sBAAsB,CAAC,cAAc,CAAC,cAAc,CAAC;iBACvD,SAAS,CACR,CAAC,QAAgB,EAAE,EAAE;gBACnB,IAAI,QAAQ,IAAI,CAAC,EAAE;oBACjB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;oBAC7B,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;oBACvB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gCAAgC,EAAE,EAAE,EAAE;wBACxD,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,eAAe,CAAC;wBAC7B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACH,uCAAuC;oBACvC,yBAAyB;oBACzB,gCAAgC;oBAChC,6CAA6C;oBAC7C,MAAM;oBACN,IAAI,CAAC,eAAe,EAAE,CAAC;oBACvB,iCAAiC;iBAClC;qBAAM,IAAI,QAAQ,IAAI,CAAC,CAAC,EAAE;oBACzB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,qDAAqD,EAAE,EAAE,EAAE;wBAC7E,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACH,uCAAuC;oBACvC,sBAAsB;oBACtB,gCAAgC;oBAChC,kEAAkE;oBAClE,MAAM;iBACP;qBACI,IAAI,QAAQ,IAAI,CAAC,EAAE,EAAE;oBACxB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,EAAE;wBAC3C,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACH,wCAAwC;oBACxC,sBAAsB;oBACtB,gCAAgC;oBAChC,gCAAgC;oBAChC,MAAM;iBACP;qBAAM;oBACL,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,4BAA4B,EAAE,EAAE,EAAE;wBACpD,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACH,uCAAuC;oBACvC,uBAAuB;oBACvB,8BAA8B;oBAC9B,yCAAyC;oBACzC,MAAM;iBACP;YACH,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;gBACb,IAAI,KAAK,CAAC,KAAK,IAAI,SAAS,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,GAAG;gBACtD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,4BAA4B,EAAE,EAAE,EAAE;oBACpD,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,uCAAuC;gBACvC,uBAAuB;gBACvB,8BAA8B;gBAC9B,yCAAyC;gBACzC,MAAM;YACR,CAAC,CACF,CAAC;SACL;IACH,CAAC;IAED,yBAAyB,CAAC,cAA8B;QACtD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,cAAc,CAAC,UAAU,EAAE,YAAY,EAAE,cAAc,CAAC,YAAY,EAAE,YAAY,EAAE,cAAc,CAAC,YAAY,EAAE,CAAC,CAAC;QACxJ,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;QAC1C,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC7B,8BAA8B;QAC9B,6BAA6B;QAC7B,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,+BAA+B,CAAC;QAClD,IAAI,CAAC,sBAAsB;aACxB,wBAAwB,CAAC,cAAc,CAAC,OAAO,CAAC;aAChD,SAAS,CACR,CAAC,mBAAsC,EAAE,EAAE;YACzC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;YACrC,IAAI,CAAC,cAAc,CAAC,YAAY,GAAG,mBAAmB,CAAC;YACvD,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;YAC9B,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;YAC/C,mBAAmB,CAAC,OAAO,CACzB,CAAC,QAAyB,EAAE,KAAa,EAAE,EAAE;gBAC3C,MAAM,mBAAmB,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CACzC,cAAc,CACF,CAAC;gBACf,mBAAmB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC;oBACrC,aAAa,EAAE,QAAQ,CAAC,aAAa;oBACrC,UAAU,EAAE,QAAQ,CAAC,UAAU;oBAC/B,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;iBAC5C,CAAC,CAAC;YACL,CAAC,CACF,CAAC;QACJ,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;YACb,IAAI,KAAK,CAAC,KAAK,IAAI,SAAS,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,GAAG;YACtD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,qCAAqC,EAAE,EAAE,EAAE;gBAC7D,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACH,4BAA4B;YAC5B,uBAAuB;YACvB,8BAA8B;YAC9B,kDAAkD;YAClD,MAAM;QACR,CAAC,CACF,CAAC;IACN,CAAC;IAED,gBAAgB,CAAC,gBAAwB;QACvC,+BAA+B;QAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8GAAqB,EAAE;YACxD,IAAI,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,mCAAmC,EAAE;SAChF,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;YAC7B,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,EAAC;gBAC9B,IAAI,CAAC,sBAAsB,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAClE,CAAC,aAAkB,EAAE,EAAE;oBACrB,IAAI,aAAa,CAAC,KAAK,IAAI,IAAI,EAAE;wBAC/B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gCAAgC,EAAE,EAAE,EAAE;4BACxD,QAAQ,EAAE,IAAI;4BACd,UAAU,EAAE,CAAC,eAAe,CAAC;4BAC7B,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;wBACH,IAAI,CAAC,eAAe,EAAE,CAAC;qBACxB;yBACI;wBACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE;4BAC5C,QAAQ,EAAE,IAAI;4BACd,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;qBACJ;gBACH,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;oBACb,IAAI,KAAK,CAAC,KAAK,IAAI,SAAS,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE;wBACjD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,4BAA4B,EAAE,EAAE,EAAE;4BACpD,QAAQ,EAAE,IAAI;4BACd,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;aACJ;iBACI;aACJ;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEP,yBAAyB,CAAC,cAA8B;QACtD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC/B,IAAI,eAAe,GAAkB,EAAE,CAAC;QACxC,IAAI,CAAC,UAAU,GAAG,6BAA6B,CAAC;QAChD,IAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,IAAI,cAAc,CAAC,OAAO,EAAE;YAElE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACxD,IAAI,eAAe,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;gBAElD,IAAI,eAAe,CAAC,EAAE,IAAI,cAAc,CAAC,OAAO,EAAE;oBAChD,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;iBACvC;aACF;YACD,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC9B,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;aAChD;iBAAM;gBACL,IAAI,CAAC,eAAe,GAAG,YAAY,CAAC;aACrC;SAEF;IACC,CAAC;IAEM,SAAS;QACd,IAAI,CAAC,YAAY,GAAC,CAAC;QACrB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAG,IAAI,CAAC,UAAU,IAAI,MAAM,EAAE;YAC9B,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/D,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;YAC7B,IAAI,CAAC,cAAc,GAAG,IAAI,4FAAc,EAAE,CAAC;YAC3C,IAAI,CAAC,cAAc,GAAG;gBACpB,OAAO,EAAE,CAAC;gBACV,YAAY,EAAE,CAAC;gBACf,YAAY,EAAE,IAAI;gBAClB,UAAU,EAAE,EAAE;gBACd,YAAY,EAAE,IAAI,KAAK,EAAmB;aAC3C,CAAC;YACF,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;YACnC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;SACpC;aAAM;YACL,IAAI,CAAC,cAAc,CAAC,YAAY,GAAG,EAAE,CAAC;YACtC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,KAAK,EAAE,CAAC;SAC9C;IACC,CAAC;IAEM,YAAY;QACnB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;IAC/B,CAAC;IAED,eAAe,CAAC,GAAW;QACzB,IAAI,GAAG,IAAI,KAAK,EAAE;YAChB,IAAI,CAAC,YAAY,GAAC,CAAC,CAAC;YACpB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;YAC7B,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,KAAK,EAAE,CAAC;YAC7C,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC;YAC5C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YACzC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;SAC5C;aACI;YACH,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC1C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;SAC7C;QACD,MAAM,YAAY,GAAG,IAAI,wEAAe,EAAE,CAAC;QAC3C,YAAY,CAAC,YAAY,GAAG,KAAK,CAAC;QAClC,YAAY,CAAC,YAAY,GAAG,IAAI,CAAC;QACjC,YAAY,CAAC,SAAS,GAAG,KAAK,CAAC;QAC/B,YAAY,CAAC,IAAI,GAAG,QAAQ,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IAChD,CAAC;IAED,UAAU,CAAC,gBAAwB;QACjC,IAAI,CAAC,sBAAsB,CAAC,wBAAwB,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACtF,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,GAAG,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC;YACpE,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC,EAAE,GAAG,CAAC,EAAE;QACT,CAAC,CAAC,CAAC;QACH,MAAM,YAAY,GAAG,IAAI,wEAAe,EAAE,CAAC;QAC3C,YAAY,CAAC,YAAY,GAAG,KAAK,CAAC;QAClC,YAAY,CAAC,YAAY,GAAG,IAAI,CAAC;QACjC,YAAY,CAAC,SAAS,GAAG,KAAK,CAAC;QAC/B,YAAY,CAAC,IAAI,GAAG,QAAQ,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IACnD,CAAC;;8FA5oBY,uBAAuB;uGAAvB,uBAAuB;;;wEASvB,wEAAY;wEACZ,+DAAO;;;;;;;qFAZP,CAAC,yGAAqB,CAAC;QC/BpC,8EACE;QAAA;QAAA,mFACI;QAAA;QAAA,yEACE;QAAA;QAAA,yEACE;QAAA;QAAA,yEACE;QAAA;QAAA,0EACE;QAAA;QAAA,0EACA;QAAA;QAAA,6EAAuF;QAAjE,gJAAS,oBAAgB,KAAK,CAAC,IAAC;QAAiC,4EAAU;QAAA,+EACjG;QAAA,4DAAW;QAAA,yEAAa;QAAA,4DAAS;QACnC;QAAA,4DAAM;QACN;QAAA,4DAAM;QACR;QAAA,4DAAM;QACR;QAAA,4DAAM;QACZ;QAAA,4DAAM;QACN;QAAA,4DAAmB;QACrB;QAAA,4DAAW;QAET;QAAA,+EACA;QAAA;QAAA,oFACE;QAAA;QAAA,0EACc;QAAA;QAAA,4EAEE;QADZ,+KAAsB,gBAAY,IAAC;QACvB;QACA;QAAA,4EACE;QAAA;QAAA,oHAAsC;QACtC;QAAA,oHAAwC;QAC1C;QAAA,qEAAe;QACf;QAAA,6EACI;QAAA;QAAA,oHAAsC;QACtC;QAAA,oHAAwC;QAC1C;QAAA,qEAAe;QACf;QAAA,6EACE;QAAA;QAAA,oHAAsC;QACtC;QAAA,oHAAwC;QAC1C;QAAA,qEAAe;QAEjB;QACA;QAAA,6EACE;QAAA;QAAA,oHAA4D;QAC5D;QAAA,oHACI;QAGN;QAAA,qEAAe;QACf;QAAA,6EACI;QAAA;QAAA,oHAA4D;QAC5D;QAAA,oHACI;QAGN;QAAA,qEAAe;QACf;QAAA,6EACE;QAAA;QAAA,oHAA4D;QAC5D;QAAA,oHACI;QAIN;QAAA,qEAAe;QACjB;QAAA,oHAAuD;QACvD;QAAA,oHAA6D;QAC/D;QAAA,4DAAQ;QACR;QAAA,4DAAM;QACpB;QAAA,2EACE;QAAA;QAAA,gFAAqF;QACvF;QAAA,4DAAM;QACR;QAAA,4DAAmB;QACrB;QAAA,4DAAW;QAEX;QAAA,mNACI;QAUJ;QAAA,mNACI;QA+CJ;;QA5GmE,2DAAyB;QAAzB,sFAAyB;QAuCrD,2DAAmC;QAAnC,iGAAmC;QAC1C,0DAAgD;QAAhD,kGAAgD;QAI3D,0DAAgC;QAAhC,kJAAgC;;6FD/BxC,uBAAuB;cANnC,uDAAS;eAAC;gBACT,QAAQ,EAAE,sBAAsB;gBAChC,WAAW,EAAE,mCAAmC;gBAChD,SAAS,EAAE,CAAC,mCAAmC,CAAC;gBAChD,SAAS,EAAE,CAAC,yGAAqB,CAAC;aACnC;6pBAQyB,WAAW;kBAAlC,uDAAS;mBAAC,WAAW;YACC,QAAQ;kBAA9B,uDAAS;mBAAC,UAAU;YACsB,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACH,IAAI;kBAAzC,uDAAS;mBAAC,+DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AE3CtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAgH;AASlD;AACyC;AAQjC;AACX;AACE;AACZ;AACQ;AAIM;;;;;;;;;;;;;;;;;;;;ICjBjD,iFACE;IAAA,uDACF;IAAA,4DAAa;;;IAFqC,gFAAmB;IACnE,0DACF;IADE,yHACF;;;;IAMF,6EAAoF;IAAtD,6TAAqB;IAAiC,sEAAW;IAAA,4DAAS;;;IAa1G,yEAAmD;IAAA,2EAAgB;IAAA,4DAAK;;;IACxE,yEAAwC;IAAA;IAAA,oEAAG;IAAA,uDAA0B;IAAA,4DAAI;IAAC;IAAA,4DAAK;;;IAApC,0DAA0B;IAA1B,2FAA0B;;;IAGhE,yEAAoD;IAAA,6EAAiB;IAAA,gEAAK;IAAA,2EAA2B;IAAA,2EAAyB;IAAA,kEAAO;IAAA,4DAAO;IAAC;IAAA,2EAA2B;IAAA,qEAAU;IAAA,4DAAO;IAAC;IAAA,4EAAwB;IAAA,sEAAU;IAAA,4DAAO;IAAC;IAAA,4EAA0B;IAAA,sEAAU;IAAA,4DAAO;IAAA,4DAAO;IAAA,4DAAK;;;IAC3R,yEACK;IAAA;IAAA,wEAAiB;IAAA,uEAAM;IAAA,uDAA8B;IAAA,4DAAO;IACxD;IAAA,uEACA;IAAA,uDACA;IAEF;IAAA,4DAAO;IACP;IAAA,wEACE;IAAA,wDACF;IAAA,4DAAO;IACL;IAAA,wEAAM;IAAA,wDACN;IAAA,4DAAO;IAEnB;IAAA,4DAAI;IAAE;IAAA,4DAAK;;;IAZoB,0DAA8B;IAA9B,+FAA8B;IAEjD,0DACA;IADA,gKACA;IAIA,0DACF;IADE,4JACF;IACQ,0DACN;IADM,yIACN;;;IAKd,yEAAoD;IAAA,mEAAO;IAAA,4DAAK;;;IAGhE,oEACE;IAAA;IAAA,2EAAU;IAAA,kEAAO;IAAA,4DAAW;IAC9B;IAAA,4DAAI;;;IAJJ,yEAAwC;IAAA,uDAAmB;IAAA,gEAC3D;IAAA;IACA;IAAA,iHACE;IAEF;IAAA,4DAAK;;;IALmC,0DAAmB;IAAnB,8FAAmB;IAExD,0DAA6B;IAA7B,4FAA6B;;;IAOhC,yEAAoD;IAAA,mEAAO;IAAA,4DAAK;;;;IAChE,yEAEE;IAAA;IACA;IAWA;IAAA,6EAC6C;IAA7B,uWAA4B;IAAC,sEAAW;IAAA,4DAAS;IAEjE;IAEA;IAEA;IAGA;IACA;IAGA;IAEF;IAAA,4DAAK;;;IAhBqB,0DAAyN;IAAzN,2SAAyN;;;IAkBrP,oEAA4D;;;IAC5D,oEAAkE;;ADvDnE,MAAM,kBAAkB;IAsB7B,YAAoB,kBAAqC,EAAU,EAAe,EACzE,MAAiB,EAClB,iBAAmC,EAAW,SAAsB,EAClE,OAAe,EAAU,OAA0B,EACnD,qBAA0C;QAJhC,uBAAkB,GAAlB,kBAAkB,CAAmB;QAAU,OAAE,GAAF,EAAE,CAAa;QACzE,WAAM,GAAN,MAAM,CAAW;QAClB,sBAAiB,GAAjB,iBAAiB,CAAkB;QAAW,cAAS,GAAT,SAAS,CAAa;QAClE,YAAO,GAAP,OAAO,CAAQ;QAAU,YAAO,GAAP,OAAO,CAAmB;QACnD,0BAAqB,GAArB,qBAAqB,CAAqB;QAzBpD,qBAAgB,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QASpD,iBAAY,GAAa,EAAE,CAAC;QAC5B,aAAQ,GAAG,CAAC,CAAC;QACb,oBAAe,GAAa,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAC,EAAE,CAAC,CAAC;QAC3C,eAAU,GAAG,IAAI,0EAAkB,EAAiB,CAAC;QAGrD,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QACvC,sBAAiB,GAAiB,EAAE,CAAC;QAE5C,oBAAe,GAAK,EAAE,CAAC;QACvB,kBAAa,GAAS,KAAK,CAAC;QAW3B,SAAI,GAAG;YACN,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,iBAAiB,EAAE;YACtD,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,mBAAmB,EAAE;YACvD,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE;YACpC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE;SACvC,CAAC;QACF,qBAAgB,GAAa;YAC3B,gBAAgB;YAChB,eAAe;YACf,QAAQ;YACR,QAAQ;SACT,CAAC;QACF,qBAAgB,GAAa,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAhBzD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;IAClD,CAAC;IAgBD,IAAI,CAAC,KAA4B;QAC/B,8EAAe,CACb,IAAI,CAAC,gBAAgB,EACrB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,YAAY,CACnB,CAAC;IACJ,CAAC;IACD,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAC3D;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SAChE;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;YAC7B,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;SACvC;QACD,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACnC,CAAC;IAED,QAAQ;QACL,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,UAAU,CAAC;QACnG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACjG,IAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC5C,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC1C,IAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAAE,IAAI,CAAC,2BAA2B,GAAE,IAAI,CAAC,kBAAkB,CAAC;QACtH,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACjC,EAAE,EAAE,CAAC,IAAI,CAAC;SACX,CAAC,CAAC;QACH,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,SAAS,GAAC,KAAK,CAAC;IACvB,CAAC;IAEO,iBAAiB;QACvB,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,CAAC,SAAS,CAAC,CAAC,SAAgB,EAAE,EAAE;YACzE,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;YAC5B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7E,SAAS,CAAC,OAAO,CAAC,CAAC,CAAM,EAAE,EAAE;gBAC3B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,iBAAiB,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3E,CAAC,CAAC,CAAC;QACL,CAAC,EAAE,CAAC,KAAU,EAAE,EAAE;YACZ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uCAAuC,EAAE,EAAE,EAAE;gBAC/D,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CACJ,CAAC;IACJ,CAAC;IAEA,QAAQ;QACP,IAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,EACzD;YACA,IAAI,CAAC,2BAA2B,GAAE,IAAI,CAAC,kBAAkB,CAAC;YAC1D,IAAI,CAAC,iBAAiB,EAAE,CAAC;SACxB;aACI,IAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACzF,CAAC;IAEA,gBAAgB;QACf,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,iBAAiB;aACnB,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;aAC7C,SAAS,CACR,CAAC,GAAoB,EAAE,EAAE;YACvB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,GAAG,EAAE;gBACP,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;gBACzB,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,GAAG,CAAC,CAAC;gBAC9C,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBACjC,IAAI,CAAC,aAAa,GAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,EAAC,EAAE,KAAI,CAAC,MAAM,KAAG,cAAc,CAAC,CAAC;oBACnE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,EAAC,EAAE,KAAI,CAAC,MAAM,KAAG,WAAW,CAAC,CAAC;oBAC9C,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,EAAC,EAAE,KAAI,CAAC,MAAM,KAAG,eAAe,CAAC,CAAC;uBAC/C,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,EAAC,EAAE,KAAI,CAAC,MAAM,KAAG,aAAa,CAAC,CAAC;gBACpD,GAAG,CAAC,OAAO,CAAC,CAAC,IAAmB,EAAE,EAAE;oBAClC,IAAG,IAAI,CAAC,MAAM,IAAE,cAAc,EAC/B;wBACE,IAAI,CAAC,MAAM,GAAC,yBAAyB,CAAC;qBACvC;yBACI,IAAG,IAAI,CAAC,MAAM,IAAI,WAAW,EAAC;wBAClC,IAAI,CAAC,MAAM,GAAC,aAAa,CAAC;qBAC1B;yBACI,IAAG,IAAI,CAAC,MAAM,IAAI,eAAe,EAAC;wBACtC,IAAI,CAAC,MAAM,GAAC,iBAAiB,CAAC;qBAC9B;yBACI,IAAG,IAAI,CAAC,MAAM,IAAI,aAAa,EAAC;wBACnC,IAAI,CAAC,MAAM,GAAC,eAAe,CAAC;qBAC7B;yBACI,IAAG,IAAI,CAAC,MAAM,IAAI,WAAW,EAAC;wBACjC,IAAI,CAAC,MAAM,GAAG,aAAa;qBAC5B;yBACI,IAAG,IAAI,CAAC,MAAM,IAAI,eAAe,EAAC;wBACtC,IAAI,CAAC,MAAM,GAAC,iBAAiB,CAAC;qBAC9B;gBACF,CAAC,CAAC,CAAC;aACJ;;gBAAM,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QAChC,CAAC,EACD,KAAK,CAAC,EAAE;YACN,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACxB,CAAC,KAAU,EAAE,EAAE;gBAChB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,EAAE;oBACzC,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACL,CAAC;QACC,CAAC,CACF,CAAC;IACN,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,EAAC,IAAI,CAAC,2BAA2B,CAAC;aACnG,SAAS,CACV,CAAC,GAAoB,EAAE,EAAE;YACvB,IAAI,GAAG,EAAE;gBACP,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;gBACvB,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,GAAG,CAAC,CAAC;gBAC9C,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBACnC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAmB,EAAE,EAAE;oBAClC,IAAG,IAAI,CAAC,MAAM,IAAE,0BAA0B,EAC3C;wBACE,IAAI,CAAC,MAAM,GAAC,2BAA2B,CAAC;qBACzC;gBACF,CAAC,CAAC,CAAC;aACJ;QACH,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;YACR,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAG,KAAK,CAAC,KAAK,CAAC,IAAI,IAAE,EAAE,EACvB;gBACC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE;oBACxC,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;iBACG;gBACJ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;oBAClC,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;IACP,CAAC;IAEC,SAAS;QACT,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAC7B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YAC5C,IAAI,CAAC,SAAS,GAAC,KAAK,CAAC;YACrB,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,wCAAwC,EAAE,EAAE,EAAE;gBAC9D,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAC,CAAC,eAAe,CAAC;gBAC5B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACP,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;YACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,EAAE;gBACzC,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAGD,8CAA8C;IAC9C,2CAA2C;IAC3C,+EAA+E;IAC/E,uCAAuC;IACvC,6EAA6E;IAC7E,4BAA4B;IAC5B,0CAA0C;IAC1C,yCAAyC;IACzC,qCAAqC;IACrC,eAAe;IACf,SAAS;IACT,wBAAwB;IACxB,qDAAqD;IACrD,0BAA0B;IAC1B,uCAAuC;IACvC,mCAAmC;IACnC,mBAAmB;IACnB,UAAU;IACV,IAAI;IAEJ,cAAc,CAAC,IAAmB;QAC5B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IACzG,CAAC;IAEA,aAAa,CAAC,IAAmB;QAC/B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAED,+CAA+C;IAC/C,2CAA2C;IAC3C,iFAAiF;IACjF,kCAAkC;IAClC,2EAA2E;IAC3E,4BAA4B;IAC5B,0CAA0C;IAC1C,yCAAyC;IACzC,qCAAqC;IACrC,eAAe;IACf,SAAS;IACT,uBAAuB;IACvB,qDAAqD;IACrD,0BAA0B;IAC1B,uCAAuC;IACvC,mCAAmC;IACnC,mBAAmB;IACnB,UAAU;IACV,IAAI;IAEF,QAAQ,CAAC,IAAmB;QAC5B,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAC5B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YAC9D,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QACtG,CAAC,EACF,CAAC,KAAU,EAAE,EAAE;YACZ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,EAAE;gBACzC,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IACD,SAAS,CAAC,IAAmB;QAE3B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qHAA2B,EAAE;YAC9D,IAAI,EAAE;gBACJ,OAAO,EAAE,IAAI,CAAC,mBAAmB,EAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,mDAAmD;gBACrH,UAAU,EAAE;oBACV,EAAE,EAAE,KAAK;oBACT,MAAM,EAAE,IAAI;iBACb;aACF;SACF,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,SAAkB,EAAE,EAAE;YACvD,IAAI,SAAS,EAAE;gBACd,IAAI,CAAC,eAAe,GAAC;oBACpB,eAAe,EAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;oBAC7C,YAAY,EAAG,IAAI,CAAC,YAAY;iBAChC;gBACA,IAAI,CAAC,iBAAiB,CAAC,eAAe,CACvC,IAAI,CAAC,eAAe,EAAC,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;oBAC1C,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBACvB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,wCAAwC,EAAE,EAAE,EAAE;wBAC/D,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAC,CAAC,eAAe,CAAC;wBAC5B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;gBACP,CAAC,CAQA,CAAC;aACD;QACH,CAAC,CAAC,CAAC;IAEL,CAAC;IAED,SAAS;QACP,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qHAA2B,EAAE;YAC9D,IAAI,EAAE;gBACJ,OAAO,EAAE,yBAAyB;gBAClC,UAAU,EAAE;oBACV,EAAE,EAAE,KAAK;oBACT,MAAM,EAAE,IAAI;iBACb;aACF;SACF,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,SAAkB,EAAE,EAAE;YACvD,IAAI,SAAS,EAAE;gBACb,IAAI,WAAwB;gBAC5B,WAAW,GAAG,IAAI,uEAAW,EAAE;gBAC/B,WAAW,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1D,gDAAgD;gBAChD,yEAAyE;gBACzE,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;oBACnE,uBAAuB;oBACvB,IAAG,GAAG,EAAC;wBACL,IAAI,CAAC,gBAAgB,EAAE;wBACxB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iCAAiC,EAAE,EAAE,EAAE;4BACzD,QAAQ,EAAE,IAAI;4BACd,UAAU,EAAE,CAAC,eAAe,CAAC;4BAC7B,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;qBACH;gBAEF,CAAC,EACC,CAAC,KAAK,CAAC,EAAE;oBACP,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE;wBACnC,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,aAAa,CAAC;wBAC3B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;aACN;QACH,CAAC,CAAC;IACJ,CAAC;;oFArWU,kBAAkB;kGAAlB,kBAAkB;wEAclB,wEAAY;wEACZ,8DAAO;;;;;;QCvDpB,8EACE;QAAA;QAAA,mFAEE;QAAA;QAAA,0EACE;QAAA;QAAA,yEACE;QAAA;QAAA,yEACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,0EAAc;QAAA,4DAAY;QACrC;QAAA,iFACE;QADmE,mKAAkB,cAAU;QAC/F;QAAA,8HACE;QAEJ;QAAA,4DAAa;QACf;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,0EACE;QAAA;QAAA,sHAAoF;QACtF;QAAA,4DAAM;QACR;QAAA,4DAAM;QACR;QAAA,4DAAM;QACR;QAAA,4DAAO;QACT;QAAA,4DAAmB;QACrB;QAAA,4DAAW;QACT;QAAA,gFACA;QAAA;QAAA,oFACE;QAAA;QAAA,2EACE;QAAA;QAAA,6EAEE;QADA,0KAAsB,gBAAY,IAAC;QACnC;QAAA,6EACE;QAAA;QAAA,+GAAmD;QACnD;QAAA,+GAAwC;QAC1C;QAAA,qEAAe;QACf;QAAA,6EACO;QAAA;QAAA,gHAAoD;QACpD;QAAA,gHACK;QAaR;QAAA,qEAAe;QACnB;QAAA,6EACE;QAAA;QAAA,+GAAoD;QACpD;QAAA,+GAAwC;QAM1C;QAAA,qEAAe;QAEf;QAAA,6EACE;QAAA;QAAA,+GAAoD;QACpD;QAAA,gHAEE;QA6BJ;QAAA,qEAAe;QACf;QAAA,+GAAuD;QACvD;QAAA,+GAA6D;QAC/D;QAAA,4DAAQ;QACV;QAAA,4DAAM;QACR;QAAA,4DAAmB;QACrB;QAAA,4DAAW;QACX;QAAA,mFAMI;QAAA;QAAA,yEAAmB;QAAA,uEAAW;QAAA,4DAAI;QACtC;QAAA,4DAAc;QAKb;;QA7GS,0DAA2B;QAA3B,wFAA2B;QAGX,0DAAiC;QAAjC,uGAAiC;QAGjC,0DAAqC;QAArC,0FAAqC;QAQ3C,0DAAqB;QAArB,mFAAqB;QAUc,2DAAyB;QAAzB,sFAAyB;QAmErD,2DAAmC;QAAnC,iGAAmC;QAC1C,0DAAgD;QAAhD,kGAAgD;QAQnE,0DAAoB;QAApB,6EAAoB;;6FD/DR,kBAAkB;cAL9B,uDAAS;eAAC;gBACT,QAAQ,EAAE,gBAAgB;gBAC1B,WAAW,EAAE,6BAA6B;gBAC1C,SAAS,EAAE,CAAC,6BAA6B,CAAC;aAC3C;iuBAe4C,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACH,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AEvDtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AACgB;AAC7E,6EAA6E;AACyB;AACtG,qGAAqG;AACjC;AAC2B;AAOjC;AAIH;AACV;AACY;AAE7D,uCAAuC;AACvC,sFAAsF;AAEhB;;;;;;;;;;;;;;;;;;;ICU5D,yEAAsC;IAAA,+EAAoB;IAAA,4DAAK;;;IAC/D,yEAAwC;IAAA,uDAA4B;IAAA,4DAAK;;;IAAjC,0DAA4B;IAA5B,sGAA4B;;;IAKpE,yEAA0D;IAAA,gEAAK;IAAA,4DAAK;;;;IACpE,yEACE;IAAA;IAAA,6EACgB;IADsC,qXAAsC;IAC5E;IAAA,+EAAyB;IAAA,+DAAI;IAAA,4DAAW;IAChD;IAAA,4DAAS;IAAC;IAAA,4DAAK;;;IAE3B,oEAA4D;;;IAC5D,oEAAkE;;;ADbnE,MAAM,2BAA2B;IA2DtC,YAAoB,SAAsB,EAChC,kBAAqC,EACrC,SAAyB,EACzB,YAAyB,EACzB,0BAAqD,EACtD,UAAsB;IAC7B,qDAAqD;IAC7C,MAAiB;QAPP,cAAS,GAAT,SAAS,CAAa;QAChC,uBAAkB,GAAlB,kBAAkB,CAAmB;QACrC,cAAS,GAAT,SAAS,CAAgB;QACzB,iBAAY,GAAZ,YAAY,CAAa;QACzB,+BAA0B,GAA1B,0BAA0B,CAA2B;QACtD,eAAU,GAAV,UAAU,CAAY;QAErB,WAAM,GAAN,MAAM,CAAW;QAjE3B,oGAAoG;QACpG,2DAA2D;QAC3D,oBAAe,GAAG,EAAE;QAEpB,aAAQ,GAAG,CAAC,CAAC;QACb,oBAAe,GAAa,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAE5C,kGAAkG;QAElG,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QAG9C,oBAAe,GAA6B,EAAE,CAAC;QAI/C,iBAAY,GAAa,EAAE,CAAC;QAE5B,eAAU,GAAW,KAAK,CAAC;QAK3B,UAAK,GAAY,KAAK,CAAC;QACvB,eAAU,GAAG,IAAI,0EAAkB,EAA0B,CAAC;QAK9D,SAAI,GAAG;YACL,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,sBAAsB,EAAE;SAC7D,CAAC;QACF,qBAAgB,GAAa;YAC3B,iBAAiB;YACjB,MAAM;SACP,CAAC;QACF,qBAAgB,GAAa,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QA+BzD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC;QAC/D,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;QAChD,IAAI,CAAC,sBAAsB,GAAG,IAAI,4GAAsB,EAAE,CAAC;QAC3D,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,EAAE;YAC9D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IArCD,IAAI,CAAC,KAA4B;QAC/B,8EAAe,CACb,IAAI,CAAC,gBAAgB,EACrB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,YAAY,CACnB,CAAC;IACJ,CAAC;IACD,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAC3D;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SAChE;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;YAC7B,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;SACvC;QACD,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACnC,CAAC;IAmBD,QAAQ;QACN,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;YAC7C,EAAE,EAAE,CAAC,CAAC,CAAC;YACP,eAAe,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,yDAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;SACjH,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IACD,eAAe,CAAC,KAAU;QACxB,IAAI,CAAM,CAAC;QACX,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC;QACnB,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;IACzG,CAAC;IAEM,uBAAuB,CAAC,eAAuB;QACpD,IAAI,WAAW,GAAG,kBAAkB,CAAC;QACrC,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,+BAA+B,EAAE,EAAE,EAAE;gBACvD,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACH,+HAA+H;YAC/H,OAAO;SACR;IACH,CAAC;IAEO,mBAAmB;QACzB,IAAI,CAAC,0BAA0B,CAAC,qBAAqB,EAAE,CAAC,SAAS,CAAC,CAAC,GAA6B,EAAE,EAAE;YAClG,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;YAC1B,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;YAC3B,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;YACzB,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;YAC3B,iEAAiE;YACjE,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC/D,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACnC,CAAC,EACC,CAAC,KAAU,EAAE,EAAE;YACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iCAAiC,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;gBACxE,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACH,gIAAgI;QAClI,CAAC,CACF,CAAC;IACJ,CAAC;IAEO,6BAA6B,CAAC,eAAuB;QAC3D,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,IAAI,oBAAoB,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,OAA+B;gBAC9F,OAAO,CACL,OAAO,CAAC,eAAe,CAAC,WAAW,EAAE,IAAI,eAAe,CAAC,WAAW,EAAE,CACvE,CAAC;YACJ,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,KAAK,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,QAAQ,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;gBACrI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kCAAkC,EAAE,EAAE,EAAE;oBAC1D,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,iIAAiI;gBACjI,OAAO,KAAK,CAAC;aACd;iBACI;gBACH,OAAO,IAAI,CAAC;aACb;SACF;IACH,CAAC;IAEO,eAAe,CAAC,WAAmC;QACzD,IAAI,WAAW,IAAI,IAAI,CAAC,6BAA6B,EAAE;YACrD,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,EAAE,IAAI,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,eAAe,IAAI,WAAW,CAAC,eAAe,CAAC,EAAE;gBAEpJ,OAAO,KAAK,CAAC;aACd;iBACI;gBACH,OAAO,IAAI,CAAC;aACb;SACF;IACH,CAAC;IAEM,UAAU;QACf,kCAAkC;QAClC,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE;YAC9B,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACvE,IAAI,QAAQ,GAAW,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAClF,IAAI,SAAS,GAAW,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACnF,IAAI,SAAS,GAAW,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YAClF,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE;gBAC1Y,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,EAAE;oBAC3C,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,uCAAuC;gBACvC,sBAAsB;gBACtB,gCAAgC;gBAChC,gCAAgC;gBAChC,MAAM;gBACN,OAAO;aACR;YACD,qBAAqB;YACrB,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;gBAAE,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;gBAAC,OAAO;aAAE;YACtG,IAAI,eAAe,GAAG,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YACrG,IAAI,CAAC,eAAe;gBAAE,OAAO;SAC9B;;YAAM,OAAO;QACd,IAAI,IAAI,CAAC,UAAU,IAAI,KAAK,EAAE;YAC5B,IAAI,CAAC,0BAA0B,CAAC,wBAAwB,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,CAAC,cAAuB,EAAE,EAAE;gBACzI,IAAI,cAAc,EAAE;oBAClB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,wCAAwC,EAAE,EAAE,EAAE;wBAChE,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,eAAe,CAAC;wBAC7B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACH,uCAAuC;oBACvC,yBAAyB;oBACzB,gCAAgC;oBAChC,oDAAoD;oBACpD,MAAM;oBACN,IAAI,CAAC,mBAAmB,EAAE,CAAC;oBAC3B,IAAI,CAAC,KAAK,EAAE,CAAC;iBACd;gBACD,6CAA6C;gBAC7C,8BAA8B;gBAC9B,wBAAwB;gBACxB,kCAAkC;gBAClC,wCAAwC;gBACxC,QAAQ;gBACR,IAAI;qBACC;oBACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oCAAoC,EAAE,EAAE,EAAE;wBAC5D,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACH,wCAAwC;oBACxC,uBAAuB;oBACvB,8BAA8B;oBAC9B,iDAAiD;oBACjD,MAAM;iBACP;YACH,CAAC,EACC,KAAK,CAAC,EAAE;gBACN,oDAAoD;gBACpD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oCAAoC,EAAE,EAAE,EAAE;oBAC5D,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,wCAAwC;gBACxC,uBAAuB;gBACvB,8BAA8B;gBAC9B,iDAAiD;gBACjD,MAAM;YACR,CAAC,CACF,CAAC;SACH;aACI;YACH,IAAI,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAClE,IAAI,CAAC,UAAU;gBAAE,OAAO;YACxB,IAAI,CAAC,0BAA0B,CAAC,wBAAwB,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,cAAuB,EAAE,EAAE;gBACzH,IAAI,cAAc,EAAE;oBAClB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,wCAAwC,EAAE,EAAE,EAAE;wBAChE,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,eAAe,CAAC;wBAC7B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACH,0IAA0I;oBAC1I,IAAI,CAAC,mBAAmB,EAAE,CAAC;oBAC3B,IAAI,CAAC,KAAK,EAAE,CAAC;iBACd;qBACI;oBACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oCAAoC,EAAE,EAAE,EAAE;wBAC5D,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACH,oCAAoC;oBACpC,8FAA8F;oBAC9F,MAAM;iBACP;YAEH,CAAC,EACC,KAAK,CAAC,EAAE;gBACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oCAAoC,EAAE,EAAE,EAAE;oBAC5D,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,kIAAkI;YACpI,CAAC,CACF,CAAC;SACH;IACH,CAAC;IAED,mBAAmB,CAAC,WAAmC;QACrD,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;QAC3B,IAAI,CAAC,6BAA6B,GAAG,IAAI,4GAAsB,EAAE,CAAC;QAClE,IAAI,CAAC,6BAA6B,GAAG,WAAW,CAAC;QACjD,IAAI,CAAC,sBAAsB,GAAG,WAAW,CAAC;QAC1C,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,eAAe,CAAC;QAClD,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAC/C,CAAC;IACM,KAAK;QACV,IAAI,CAAC,sBAAsB,GAAG,IAAI,4GAAsB,EAAE,CAAC;QAC3D,IAAI,CAAC,sBAAsB,GAAG;YAC5B,EAAE,EAAE,CAAC;YACL,eAAe,EAAE,EAAE;SACpB,CAAC;QACF,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;QAClE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACjE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC;IACxC,CAAC;IACD,eAAe,CAAC,EAAU,EAAE,kBAA0B;QACpD,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;QAC5B,IAAI,EAAE,IAAI,kBAAkB,IAAI,kBAAkB,IAAI,EAAE,EAAE;YACxD,IAAI,CAAC,sBAAsB,GAAG,IAAI,4GAAsB,EAAE,CAAC;YAC3D,IAAI,CAAC,sBAAsB,CAAC,EAAE,GAAG,EAAE,CAAC;YACpC,IAAI,CAAC,sBAAsB,CAAC,eAAe,GAAG,kBAAkB,CAAC;YACjE,IAAI,CAAC,eAAe,GAAG,kBAAkB,CAAC;SAC3C;IACH,CAAC;IAED,mCAAmC;IACnC,4CAA4C;IAC5C,sBAAsB;IAEtB,2CAA2C;IAC3C,iBAAiB;IACjB,kBAAkB;IAClB,gFAAgF;IAChF,YAAY;IACZ,YAAY;IACZ,oDAAoD;IACpD,sBAAsB;IACtB,kFAAkF;IAClF,gCAAgC;IAChC,+BAA+B;IAC/B,wFAAwF;IACxF,kCAAkC;IAClC,iDAAiD;IACjD,+CAA+C;IAC/C,2CAA2C;IAC3C,oBAAoB;IACpB,+JAA+J;IAC/J,sCAAsC;IACtC,oFAAoF;IACpF,kCAAkC;IAClC,+CAA+C;IAC/C,2CAA2C;IAC3C,oBAAoB;IACpB,wJAAwJ;IACxJ,sCAAsC;IACtC,sEAAsE;IACtE,kCAAkC;IAClC,+CAA+C;IAC/C,2CAA2C;IAC3C,oBAAoB;IACpB,0IAA0I;IAC1I,uBAAuB;IACvB,oFAAoF;IACpF,kCAAkC;IAClC,+CAA+C;IAC/C,2CAA2C;IAC3C,oBAAoB;IACpB,uJAAuJ;IACvJ,gBAAgB;IAChB,wCAAwC;IACxC,qDAAqD;IACrD,yCAAyC;IACzC,0CAA0C;IAC1C,eAAe;IACf,8BAA8B;IAC9B,kFAAkF;IAClF,gCAAgC;IAChC,6CAA6C;IAC7C,yCAAyC;IACzC,kBAAkB;IAClB,4JAA4J;IAC5J,gBAAgB;IAChB,UAAU;IACV,eAAe;IACf,UAAU;IACV,UAAU;IACV,MAAM;IACN,IAAI;IAEG,MAAM;QACX,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC;IACxC,CAAC;;sGAxXU,2BAA2B;2GAA3B,2BAA2B;kEA2B3B,wEAAY;wEACZ,8DAAO;;;;;qFA/BP,CAAC,0FAAiB,EAAE,mHAAyB,CAAC;QC/B3D,8EACE;QAAA;QAAA,mFACE;QAAA;QAAA,0EACE;QADkC,uJAAY,gBAAY,IAAC;QAC3D;QAAA,yEACE;QAAA;QAAA,yEACI;QAAA;QAAA,0EACE;QAAA;QAAA,0EACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,gFAAoB;QAAA,4DAAY;QAC3C;QAAA,uEACF;QAAA;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,0EACE;QAAA;QAAA,6EAAuD;QAAlC,oJAAS,WAAO,IAAC;QAAiB,4EAAU;QAAA,+EACvE;QAAA,4DAAW;QAAC,kEAAK;QAAA,4DAAS;QACpB;QAAA,8EAAsD;QAAA,4EAAU;QAAA,6EACtE;QAAA,4DAAW;QAAC,wDAAc;QAAA,4DAAS;QAC/B;QAAA,4DAAM;QACR;QAAA,4DAAM;QACR;QAAA,4DAAM;QACV;QAAA,4DAAM;QACR;QAAA,4DAAM;QACR;QAAA,4DAAO;QACT;QAAA,4DAAmB;QACrB;QAAA,4DAAW;QAEX;QAAA,gFACE;QAAA;QAAA,oFACE;QAAA;QAAA,2EACE;QAAA;QAAA,6EAEE;QADA,mLAAsB,gBAAY,IAAC;QACnC;QACA;QAAA,6EACE;QAAA;QAAA,wHAAsC;QACtC;QAAA,wHAAwC;QAC1C;QAAA,qEAAe;QAEf;QACA;QAAA,6EACE;QAAA;QAAA,wHAA0D;QAC1D;QAAA,wHACE;QAGJ;QAAA,qEAAe;QACf;QAAA,wHAAuD;QACvD;QAAA,wHAA6D;QAC/D;QAAA,4DAAQ;QACV;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,gFAAqF;QACvF;QAAA,4DAAM;QACR;QAAA,4DAAmB;QACrB;QAAA,4DAAW;;QApDD,0DAA6B;QAA7B,0FAA6B;QAef,2DAAc;QAAd,yFAAc;QAaiB,2DAAyB;QAAzB,sFAAyB;QAgBrD,2DAAmC;QAAnC,iGAAmC;QAC1C,0DAAgD;QAAhD,kGAAgD;QAI/C,0DAAgC;QAAhC,kJAAgC;;6FDjBxC,2BAA2B;cAPvC,uDAAS;eAAC;gBACT,QAAQ,EAAE,0BAA0B;gBACpC,WAAW,EAAE,uCAAuC;gBACpD,SAAS,EAAE,CAAC,uCAAuC,CAAC;gBACpD,SAAS,EAAE,CAAC,0FAAiB,EAAE,mHAAyB,CAAC;aAC1D;uqBA6B0B,SAAS;kBAAjC,uDAAS;mBAAC,wEAAY;YACe,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AE9DtC;AAAA;AAAA;AAAA;AAAkD;;;AAO3C,MAAM,YAAY;IAEvB,gBAAgB,CAAC;IAEjB,QAAQ;IACR,CAAC;;wEALU,YAAY;4FAAZ,YAAY;QCPzB,yEACQ;QAAA;QAAA,2EAA+B;QACvC;QAAA,4DAAM;QACN;;6FDIa,YAAY;cALxB,uDAAS;eAAC;gBACT,QAAQ,EAAE,SAAS;gBACnB,WAAW,EAAE,sBAAsB;gBACnC,SAAS,EAAE,CAAC,sBAAsB,CAAC;aACpC;;;;;;;;;;;;;;AEND;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AAGH;AACc;AAE3B;AACuB;AAIuB;AAO7B;AACC;AAKO;AACX;AACE;AACZ;AACQ;AAEC;AAEiD;AAC7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICwB9D,iFACE;IAAA,uDACF;IAAA,4DAAa;;;IAFqC,+EAAmB;IACnE,0DACF;IADE,4HACF;;;IAQA,iFACE;IAAA,uDACF;IAAA,4DAAa;;;IAFmC,iFAAoB;IAClE,0DACF;IADE,8HACF;;;IAoBI,iFACE;IAAA,uDACF;IAAA,4DAAa;;;IAFiC,iFAAoB;IAChE,0DACF;IADE,sIACF;;;IAGJ,oEAAsB;IAAA,oEAAG;IAAA,8EAAmB;IAAA,4DAAI;IAAA,uDAAoB;IAAA,4DAAI;;;IAAxB,0DAAoB;IAApB,iGAAoB;;;;IAIlE,6EAAgG;IAAvD,0TAAoB,KAAK,KAAE;IAA4B,4FACxF;IAAA,4DAAS;;;IAkBvB,yEAAmD;IAAA,iEAAM;IAAA,4DAAK;;;;IAKxD,2EAA4C;IAAA,8EAAmB;IAAA,gEAC9D;IAAA;IAAA,6EAAqF;IAAnD,6cAAkD;IAAC,oEAAS;IAAA,4DAAS;IAAA,4DAAO;;;;IAHjH,0EACE;IAAA;IAAA,2EAA0D;IAAlC,sbAAiC;IAAC,uDAAuB;IAAA,4DAAO;IACxF;IAAA,oIAA4C;IAE9C;IAAA,4DAAM;;;;IAHsD,0DAAuB;IAAvB,wFAAuB;IAC3E,0DAAqB;IAArB,uFAAqB;;;;IAK3B,2EAA8C;IAAA,6EAAkB;IAAA,gEAC/D;IAAA;IAAA,6EAA2G;IAAjD,2cAAgD;IAAC,iEAAM;IAAA,4DAAS;IAAA,4DAAO;;;;IAHpI,0EACE;IAAA;IAAA,2EAAuD;IAA7B,gVAA4B;IAAC,uDAAuB;IAAA,4DAAO;IACrF;IAAA,oIAA8C;IAEhD;IAAA,4DAAM;;;;IAHmD,0DAAuB;IAAvB,wFAAuB;IACxE,0DAAuB;IAAvB,yFAAuB;;;IATnC,yEACE;IAAA;IAAA,0EACE;IAAA;IAAA,4HACE;IAIF;IAAA,4HACE;IAIF;IACA;IAAA,0EAAkN;IAAA,wDAAuB;IAAA,iEAAM;IAAA,yEAAsB;IAAA,yEAAO;IAAA,wDAAgB;IAAA,4DAAQ;IAAA,4DAAI;IAAA,4DAAM;IAChT;IAAA,4DAAM;IACR;IAAA,4DAAK;;;;IAbI,0DAA0C;IAA1C,gHAA0C;IAK1C,0DAAwC;IAAxC,8GAAwC;IAMxC,0DAAyL;IAAzL,0SAAyL;IAAoB,0DAAuB;IAAvB,kGAAuB;IAAmC,0DAAgB;IAAhB,iFAAgB;;;IAKhS,yEAAuC;IAAA,oEAAQ;IAAA,4DAAK;;;;IAGlD,uEAA6E;IAAA,uDAA0C;IAAA,gEAAM;IAAA,6EACf;IAAhF,mdAA8D;IAAkB,mEAAQ;IAAA,4DAAS;IAAA,4DAAO;;;IADzD,0DAA0C;IAA1C,oHAA0C;;;;IAEvH,2EAA6I;IAAhD,gVAA0B;IAAsB,uDAA+B;IAAA,4DAAO;;;IAAtC,0DAA+B;IAA/B,gGAA+B;;;IAJ9K,yEACE;IAAA;IAAA,uEAAM;IAAA,2EAAgM;IAAA,uDAAkB;IAAA,4DAAO;IAC/N;IAAA,+HAA6E;IAE7E;IAAA,+HAA6I;IAAsC,gEAEnL;IAAA;IAAA,4EAAyB;IAAA,oEAAe;IAAA,4DAAO;IAC/C;IAAA,4DAAO;IACT;IAAA,4DAAK;;;;IAPS,0DAAyL;IAAzL,0SAAyL;IAAC,0DAAkB;IAAlB,mFAAkB;IAClN,0DAAsE;IAAtE,sJAAsE;IAEtE,0DAAsF;IAAtF,oKAAsF;;;IAO9F,yEAAuC;IAAA,mEAAO;IAAA,4DAAK;;;IACnD,yEACE;IAAA;IAAA,2EAAgM;IAAA,uDAAkB;IAAA,4DAAO;IACxN;IASD;IAKF;IAAA,4DAAK;;;;IAfG,0DAAyL;IAAzL,0SAAyL;IAAC,0DAAkB;IAAlB,mFAAkB;;;IAmBpN,yEAAuC;IAAA;IAAA,4DAAK;;;;IAE1C,2EAAwN;IAAlC,wbAAiC;IAAC,uDAAoB;IAAA,4DAAO;;;IAA3B,0DAAoB;IAApB,qFAAoB;;;;IAC5O,2EAAgL;IAAlC,wbAAiC;IAAC,4DAAC;IAAA,4DAAO;;;;IACxL,2EAA2K;IAAlC,wbAAiC;IAAC,4DAAC;IAAA,4DAAO;;;IAGjL,oFAA6F;IAAA,uDAAyC;IAAA,4DAAgB;;;IAAzD,0DAAyC;IAAzC,mHAAyC;;;IACtI,oFAA4G;IAAA,uDAAqD;IAAA,4DAAgB;;;IAArE,0DAAqD;IAArD,+HAAqD;;;IACjK,oFAAwH;IAAA,uDAAwD;IAAA,4DAAgB;;;IAAxE,0DAAwD;IAAxD,kIAAwD;;;IAChL,oFAA+G;IAAA,uDAAgE;IAAA,4DAAgB;;;IAAhF,0DAAgE;IAAhE,0IAAgE;;;IAC/K,oFAAiH;IAAA,uDAA6K;IAAA,4DAAgB;;;IAA7L,0DAA6K;IAA7K,6QAA6K;;;IAC9R,oFAAsG;IAAA,kFAAuB;IAAA,4DAAgB;;;IAC7I,oFAAmG;IAAA,8EAAmB;IAAA,4DAAgB;;;;IAPvI,+EACC;IAAA;IAAA,4JAA6F;IAC7F;IAAA,4JAA4G;IAC5G;IAAA,4JAAwH;IACxH;IAAA,4JAA+G;IAC/G;IAAA,8JAAiH;IACjH;IAAA,8JAAsG;IACtG;IAAA,8JAAmG;IACnG;IAAA,8EAA+E;IAA5D,ocAA0C;IAAkB,kEAAM;IAAA,4DAAS;IAC9F;IAAA,8EAAiF;IAA9D,scAA4C;IAAkB,kEAAM;IAAA,4DAAS;IACjG;IAAA,4DAAW;;;IATqB,0DAA6D;IAA7D,uIAA6D;IAC7D,0DAA4E;IAA5E,sJAA4E;IAC5E,0DAAwF;IAAxF,kKAAwF;IACxF,0DAA+E;IAA/E,yJAA+E;IAC/E,0DAAiF;IAAjF,2JAAiF;IACjF,0DAAsE;IAAtE,4IAAsE;IACtE,0DAAmE;IAAnE,yIAAmE;;;IAZtG,yEACE;IAAA;IAAA,+HAAwN;IACxN;IAAA,+HAAgL;IAChL;IAAA,+HAA2K;IAE1K;IAAA,wIACC;IAUJ;IAAA,4DAAK;;;;IAfG,0DAA0J;IAA1J,oPAA0J;IAC1J,0DAAmH;IAAnH,yMAAmH;IACnH,0DAAgH;IAAhH,sMAAgH;IAE/F,0DAA6E;IAA7E,6JAA6E;;;IAetG,yEAAuC;IAAA,iEAAK;IAAA,4DAAK;;;;IACjD,yEACE;IAAA;IACA;IAAA,+EAAgE;IAA9B,mXAA6B;IAAC,+DAAI;IAAA,4DAAW;IACjF;IAAA,4DAAK;;;IAIL,yEAAgF;IAAA,mEAAO;IAAA,4DAAK;;;;IAC5F,yEACE;IAAA;IACA;IAAA,+EAAiE;IAA/B,oXAA8B;IAAC,iEAAM;IAAA,4DAAW;IACpF;IAAA,4DAAK;;;IAGP,oEAA4D;;;;IAC5D,yEACA;IAAA;IAAA,4DAAK;;;;IADO,2NAAmF;;;;IAO/F,sEACI;IAAA;IAAA,0EACE;IAAA;IAAA,6EAA+D;IAAvB,uUAAsB;IAAC,iEAAM;IAAA,4DAAS;IAChF;IAAA,4DAAM;IACV;IAAA,4DAAM;;;;IAEN,0EACE;IAAA;IAAA,0EACE;IAAA;IAAA,6EAAiE;IAAzD,yUAAwB;IAAiC,2EAAgB;IAAA,4DAAS;IAC1F;IAAA,2EAAoB;IAAA,yFAA8B;IAAA,4DAAO;IACzD;IAAA,8EAA0D;IAAlD,wUAAsB;IAA4B,iFAAqB;IAAA,4DAAS;IAC1F;IAAA,4DAAM;IACR;IAAA,4DAAM;;;;;IACN,0EACE;IAAA;IAAA,0EACE;IAAA;IAAA,0EACE;IAAA;IAAA,0EACE;IAAA;IAAA,0EACE;IAAA;IAAA,+EAA4F;IAC5F;IAAA,yEAAyB;IAAA,8EAAkB;IAAA,4DAAI;IACjD;IAAA,4DAAM;IACR;IAAA,4DAAM;IACN;IAAA,2EACE;IAAA;IAAA,2EACE;IAAA;IAAA,sEACA;IAAA;IAAA,yEAAyB;IAAA,yGAA6C;IAAA,4DAAI;IAC5E;IAAA,4DAAM;IACR;IAAA,4DAAM;IACN;IAAA,2EACE;IAAA;IAAA,2EACE;IAAA;IAAA,8EAA+D;IAA5B,6UAA2B;IAAC,4EAAgB;IAAA,4DAAS;IACxF;IAAA,4EAAqB;IAAA,oGAAwC;IAAA,4DAAO;IACpE;IAAA,8EACQ;IAAA;IAAA,sEACA;IAAA;IAAA,4DAAS;IACnB;IAAA,4DAAM;IACR;IAAA,4DAAM;IACN;IAKF;IAAA,4DAAM;IACR;IAAA,4DAAM;IACN;IAKF;IAAA,4DAAM;;IA/BkB,2DAAgB;IAAhB,yEAAgB;IAeD,2DAAmC;IAAnC,6IAAmC;;;;IArI9E,0EACE;IAAA;IAAA,4EAEE;IAFyF,8VAAmC;IAE5H;IAAA,4EACE;IAAA;IAAA,qHAAmD;IACnD;IAAA,sHACE;IAeJ;IAAA,qEAAe;IACf;IAAA,6EACE;IAAA;IAAA,uHAAuC;IACvC;IAAA,wHACE;IAQJ;IAAA,qEAAe;IACf;IAAA,6EACE;IAAA;IAAA,uHAAuC;IACvC;IAAA,uHACE;IAgBJ;IAAA,qEAAe;IAEf;IAAA,6EACE;IAAA;IAAA,uHAAuC;IACvC;IAAA,wHACE;IAgBJ;IAAA,qEAAe;IAEf;IAAA,6EACE;IAAA;IAAA,uHAAuC;IACvC;IAAA,uHACE;IAGJ;IAAA,qEAAe;IAEf;IAAA,6EACE;IAAA;IAAA,uHAAgF;IAChF;IAAA,uHACE;IAGJ;IAAA,qEAAe;IAEf;IAAA,uHAAuD;IACvD;IAAA,uHACA;IACF;IAAA,4DAAQ;IACR;IAGA;IAAA,uEACE;IAAA;IAAA,yHACI;IAKJ;IAAA,0HACE;IAMF;IAAA,0HACE;IAoCJ;IAAA,4DAAM;IACR;IAAA,4DAAM;;;IAtJa,0DAAyB;IAAzB,yFAAyB;IA2FrB,2DAAmC;IAAnC,oGAAmC;IAC0C,0DAAgD;IAAhD,qGAAgD;IAO3I,0DAAmD;IAAnD,oIAAmD;IAMnD,0DAAmC;IAAnC,2GAAmC;IAOnC,0DAAsB;IAAtB,uFAAsB;;;IA4CvB,yEAAmD;IAAA,iEAAM;IAAA,4DAAK;;;IAC9D,yEAAwC;IAAA;IAAA,oEAAG;IAAA,uDAAsB;IAAA,4DAAI;IAAA,4DAAK;;;IAA/B,0DAAsB;IAAtB,wFAAsB;;;IAGjE,yEAAuC;IAAA,oEAAQ;IAAA,4DAAK;;;IACpD,yEAAwC;IAAA,uDAAmB;IAAA,4DAAK;;;IAAxB,0DAAmB;IAAnB,+FAAmB;;;IAG3D,0EAAoD;IAAA,mEAAO;IAAA,4DAAK;;;IAChE,yEAAwC;IAAA,uDAAmB;IAAA,4DAAK;;;IAAxB,0DAAmB;IAAnB,+FAAmB;;;IAG3D,yEAAuC;IAAA;IAAA,4DAAK;;;;IAC5C,yEACE;IAAA;IAAA,2EAA0D;IAAlC,4XAAiC;IAAC,4DAAC;IAAA,4DAAO;IACpE;IAAA,4DAAK;;;IAIL,yEACE;IAAA,iGACF;IAAA,4DAAK;;;IAEH,gFAAkD;IAAA,+DAAI;IAAA,4DAAW;;;IADnE,yEACE;IAAA;IAAA,wIAAkD;IACpD;IAAA,4DAAK;;;IAD+B,0DAAe;IAAf,kFAAe;;;IAInD,yEACE;IAAA,mGACF;IAAA,4DAAK;;;IAEH,gFAAkD;IAAA,iEAAM;IAAA,4DAAW;;;IADrE,yEACE;IAAA;IAAA,wIAAkD;IACpD;IAAA,4DAAK;;;IAD+B,0DAAe;IAAf,kFAAe;;;IAGrD,oEAA4D;;;IAC5D,oEAAsJ;;;;IAA1I,8NAAmF;;;;IAG/F,0EACE;IAAA;IAAA,2EACE;IAAA;IAAA,0EACE;IAAA;IAAA,0EACE;IAAA;IAAA,0EACE;IAAA;IAAA,+EAA4F;IAC5F;IAAA,yEAAyB;IAAA,0EAAc;IAAA,4DAAI;IAC7C;IAAA,4DAAM;IACR;IAAA,4DAAM;IACN;IAAA,2EACE;IAAA;IAAA,2EACE;IAAA;IAAA,sEACA;IAAA;IAAA,yEAAyB;IAAA,6FAAiC;IAAA,4DAAI;IAChE;IAAA,4DAAM;IACR;IAAA,4DAAM;IACN;IAAA,2EACE;IAAA;IAAA,2EACE;IAAA;IACA;IAAA,+EAA8E;IAA3C,sUAAoB;IAAuB,kFAAsB;IAAA,4DAAS;IAC/G;IAAA,4DAAM;IACR;IAAA,4DAAM;IACR;IAAA,4DAAM;IACR;IAAA,4DAAM;IACN;IAKF;IAAA,4DAAM;;;IAvBkB,2DAAgB;IAAhB,yEAAgB;IAa0B,2DAAqB;IAArB,uFAAqB;;;IA5D7F,0EACE;IAAA;IAAA,0EACE;IAAA;IAAA,4EACE;IAAA;IAAA,4EACE;IAAA;IAAA,qHAAmD;IACnD;IAAA,uHAAwC;IAC1C;IAAA,qEAAe;IACf;IAAA,6EACE;IAAA;IAAA,uHAAuC;IACvC;IAAA,uHAAwC;IAC1C;IAAA,qEAAe;IACf;IAAA,6EACE;IAAA;IAAA,uHAAoD;IACpD;IAAA,uHAAwC;IAC1C;IAAA,qEAAe;IACf;IAAA,6EACE;IAAA;IAAA,uHAAuC;IACvC;IAAA,uHACE;IAEJ;IAAA,qEAAe;IAEf;IAAA,6EACE;IAAA;IAAA,uHACE;IAEF;IAAA,uHACE;IAEJ;IAAA,qEAAe;IACf;IAAA,6EACE;IAAA;IAAA,uHACE;IAEF;IAAA,uHACE;IAEJ;IAAA,qEAAe;IACf;IAAA,uHAAuD;IACvD;IAAA,uHAAiJ;IACnJ;IAAA,4DAAQ;IACR;IAAA,4EACE;IAAA;IAAA,0HACE;IA4BJ;IAAA,4DAAM;IACR;IAAA,4DAAM;IACR;IAAA,4DAAM;;;IAvEqC,0DAAyB;IAAzB,yFAAyB;IAoC3C,2DAAmC;IAAnC,oGAAmC;IAC0C,0DAAgD;IAAhD,qGAAgD;IAGrH,0DAAoC;IAApC,4GAAoC;;ADvQpE,MAAM,kBAAkB;IA6D7B,YACS,MAAiB,EACjB,SAAsB;IAC7B,yCAAyC;IACjC,kBAAqC,EACrC,iBAAmC,EACnC,EAAe,EACf,mBAA8C,EAC9C,qBAA2C,EAC3C,kBAAqC,EACrC,QAAwB,EACxB,OAA0B;QAV3B,WAAM,GAAN,MAAM,CAAW;QACjB,cAAS,GAAT,SAAS,CAAa;QAErB,uBAAkB,GAAlB,kBAAkB,CAAmB;QACrC,sBAAiB,GAAjB,iBAAiB,CAAkB;QACnC,OAAE,GAAF,EAAE,CAAa;QACf,wBAAmB,GAAnB,mBAAmB,CAA2B;QAC9C,0BAAqB,GAArB,qBAAqB,CAAsB;QAC3C,uBAAkB,GAAlB,kBAAkB,CAAmB;QACrC,aAAQ,GAAR,QAAQ,CAAgB;QACxB,YAAO,GAAP,OAAO,CAAmB;QArEpC,qBAAgB,GAAG,yDAAW,CAAC,oBAAoB,CAAC;QAEpD,cAAS,GAAG,IAAI,uEAAc,CAAM,IAAI,EAAE,EAAE,CAAC,CAAC;QAC9C,mBAAc,GAAY,KAAK,CAAC;QAChC,kBAAa,GAAY,KAAK,CAAC;QAC/B,kBAAa,GAAY,KAAK,CAAC;QAC/B,cAAS,GAAY,KAAK,CAAC;QAC3B,eAAU,GAAY,KAAK,CAAC;QAC5B,gBAAW,GAAY,KAAK,CAAC;QAC7B,gBAAW,GAAY,KAAK,CAAC;QAC7B,kBAAa,GAAY,KAAK,CAAC;QAC/B,kBAAa,GAAY,KAAK,CAAC;QAC/B,YAAO,GAAY,KAAK,CAAC;QACzB,mBAAc,GAAY,KAAK,CAAC;QAEhC,YAAO,GAAY,KAAK,CAAC;QACzB,kBAAa,GAAY,KAAK,CAAC;QAC/B,kBAAa,GAAY,KAAK,CAAC;QAC/B,cAAS,GAAY,KAAK,CAAC;QAC3B,kBAAa,GAAY,KAAK,CAAC;QAC/B,YAAO,GAAY,KAAK,CAAC;QACzB,oBAAe,GAAY,KAAK,CAAC;QAEjC,aAAQ,GAAS,KAAK,CAAC;QAIhB,sBAAiB,GAAiB,EAAE,CAAC;QACrC,mBAAc,GAAiB,EAAE,CAAC;QAClC,cAAS,GAAiB,EAAE,CAAC;QAC7B,iBAAY,GAAiB,EAAE,CAAC;QAIhC,oBAAe,GAAW,CAAC,CAAC;QAC5B,iBAAY,GAAW,CAAC,CAAC;QACzB,YAAO,GAAW,CAAC,CAAC;QACpB,eAAU,GAAW,CAAC,CAAC;QAC9B,uBAAkB,GAAW,CAAC,CAAC;QAG/B,iBAAY,GAAa,EAAE,CAAC;QAC5B,aAAQ,GAAG,CAAC,CAAC;QACb,oBAAe,GAAa,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAC5C,kBAAa,GAAS,KAAK,CAAC;QAC5B,mBAAc,GAAiB,EAAE,CAAC;QAClC,qBAAgB,GAAS,KAAK,CAAC;QAC/B,YAAO,GAAiB,EAAE,CAAC;QAE3B,eAAU,GAAG,IAAI,0EAAkB,EAAiB,CAAC;QAKrD,kGAAkG;QAElG,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QAsB9C,SAAI,GAAG;YACL,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE;YACxC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;YACvC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE;SACtC,CAAC;QACF,qBAAgB,GAAa;YAC3B,WAAW;YACX,SAAS;YACT,QAAQ;SAET,CAAC;QACF,qBAAgB,GAAa,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAlBzD,IAAI,CAAC,kBAAkB,GAAG,IAAI,6FAAqB,EAAE,CAAC;QACtD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;QAChD,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,UAAU,CAAC;QACnG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,QAAQ,CAAC;IACjG,CAAC;IAcD,IAAI,CAAC,KAA4B;QAC/B,8EAAe,CACb,IAAI,CAAC,gBAAgB,EACrB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,YAAY,CACnB,CAAC;IACJ,CAAC;IACD,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAC3D;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SAChE;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;YAC7B,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;SACvC;QACD,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACnC,CAAC;IAED,QAAQ;QACN,IAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAE,CAAC,CAAC,EAAC;YACrD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAE,MAAM,EAClC,QAAQ,CAAC;SACZ;aAAI;YACH,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACrC;QACD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACjC,eAAe,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACtC,YAAY,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACnC,OAAO,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAC9B,UAAU,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;SAClC,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,GAAG,IAAI,wDAAS,CAAC;YAC/B,OAAO,EAAE,IAAI,0DAAW,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;SACpD,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACtC,IAAI,CAAC,qBAAqB,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACtC,IAAI,CAAC,wBAAwB,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC9B,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;SAC1D;aAAM;YACL,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,EAAE;gBAC1D,IAAI,CAAC,oCAAoC,EAAE,CAAC;aAC7C;SACF;QACD,IAAI,IAAI,CAAC,wBAAwB,EAAE;YACjC,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;SAChE;QACD,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;YAC1B,KAAK,EAAE,uBAAuB;YAC9B,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;QACH,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YAC9I,IAAI,CAAC,cAAc,EAAE,CAAC;SACvB;IACH,CAAC;IAEO,oCAAoC;QAC1C,IAAI,CAAC,kBAAkB,CAAC,oCAAoC,CAAC,IAAI,CAAC,kBAAkB,CAAC;aAClF,SAAS,CACR,CAAC,GAAwB,EAAE,EAAE;YAC3B,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;YACzB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACtE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAM,EAAE,EAAE;gBACrB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;oBACvB,KAAK,EAAE,CAAC,CAAC,WAAW;oBACpB,KAAK,EAAE,CAAC,CAAC,YAAY;iBACtB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,IAAI,IAAI,CAAC,qBAAqB,EAAE;gBAC9B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACnE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE,CAAC;gBACtD,IAAI,CAAC,2BAA2B,EAAE,CAAC;aACpC;;gBAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,MAAM,EAAE,CAAC;QAC9D,CAAC,EACD,KAAK,CAAC,EAAE;YACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kCAAkC,EAAE,EAAE,EAAE;gBAC1D,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CACF,CAAC;IACN,CAAC;IAEO,iBAAiB;QACvB,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,CAAC,SAAS,CACnD,CAAC,SAAgB,EAAE,EAAE;YACnB,SAAS,CAAC,OAAO,CAAC,CAAC,CAAM,EAAE,EAAE;gBAC3B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;oBAC1B,KAAK,EAAE,CAAC,CAAC,iBAAiB;oBAC1B,KAAK,EAAE,CAAC,CAAC,EAAE;iBACZ,CAAC,CAAC;gBACH,6CAA6C;gBAC7C,kDAAkD;YACpD,CAAC,CAAC,CAAC;YACH,IAAI,IAAI,CAAC,wBAAwB,EAAE;gBACjC,IAAI,CAAC,aAAa;qBACf,GAAG,CAAC,iBAAiB,CAAC;qBACtB,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBAClC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,OAAO,EAAE,CAAC;aAC1D;;gBAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,MAAM,EAAE,CAAC;QACjE,CAAC,EACD,KAAK,CAAC,EAAE;YACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mCAAmC,EAAE,EAAE,EAAE;gBAC3D,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACH,4BAA4B;YAC5B,uBAAuB;YACvB,8BAA8B;YAC9B,gDAAgD;YAChD,MAAM;QACR,CAAC,CACF,CAAC;IACJ,CAAC;IAEO,cAAc;QACpB,IAAI,CAAC,kBAAkB,CAAC,wBAAwB,EAAE,CAAC,SAAS,CAC1D,CAAC,GAAwB,EAAE,EAAE;YAC3B,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;YACzB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACtE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAM,EAAE,EAAE;gBACrB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;oBACvB,KAAK,EAAE,CAAC,CAAC,WAAW;oBACpB,KAAK,EAAE,CAAC,CAAC,YAAY;iBACtB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,IAAI,IAAI,CAAC,qBAAqB,EAAE;gBAC9B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACnE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE,CAAC;gBACtD,IAAI,CAAC,2BAA2B,EAAE,CAAC;aACpC;;gBAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,MAAM,EAAE,CAAC;QAC9D,CAAC,EACD,KAAK,CAAC,EAAE;YACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kCAAkC,EAAE,EAAE,EAAE;gBAC1D,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CACF,CAAC;IACJ,CAAC;IAED,QAAQ,CAAC,KAAK;QACZ,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC;QACnC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,IAAI,CAAC,wBAAwB,EAAE;YACjC,IAAI,CAAC,2BAA2B,EAAE,CAAC;SACpC;IACH,CAAC;IACD,kBAAkB,CAAC,KAAK;QACtB,IAAI,CAAC,UAAU,GAAC,EAAE,CAAC;QACnB,IAAI,CAAC,aAAa,GAAC,KAAK,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,KAAK;QAC1B,IAAI,CAAC,QAAQ,GAAC,KAAK;QACnB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC;QAChC,IAAI,CAAC,MAAM,GAAC,CAAC,CAAC;QACd,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACpD,sCAAsC;QACtC,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IACD,2BAA2B;QACzB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,2BAA2B;QAC3B,gCAAgC;QAChC,4BAA4B;QAC5B,yBAAyB;QACzB,YAAY;QACZ,WAAW;QACX,MAAM;QACN,gBAAgB;QAChB,wBAAwB;QACxB,mBAAmB;QACnB,4CAA4C;QAC5C,wEAAwE;QACxE,0CAA0C;QAC1C,kCAAkC;QAClC,oCAAoC;QACpC,qCAAqC;QACrC,gBAAgB;QAChB,4CAA4C;QAC5C,cAAc;QACd,kCAAkC;QAClC,sEAAsE;QACtE,uDAAuD;QACvD,YAAY;QACZ,UAAU;QACV,SAAS;QACT,wBAAwB;QACxB,sEAAsE;QACtE,0BAA0B;QAC1B,uCAAuC;QACvC,mCAAmC;QACnC,YAAY;QACZ,QAAQ;QACR,OAAO;QACP,IAAI,CAAC,mBAAmB;aACrB,qBAAqB,CACpB,IAAI,CAAC,YAAY,CAClB;aACA,SAAS,CACR,CAAC,GAAU,EAAE,EAAE;YACb,IAAI,GAAG,EAAE;gBACP,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC5D,GAAG,CAAC,OAAO,CAAC,CAAC,OAAY,EAAE,EAAE;oBAC3B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;wBAClB,KAAK,EAAE,OAAO,CAAC,IAAI;wBACnB,KAAK,EAAE,OAAO,CAAC,EAAE;qBAClB,CAAC,CAAC;oBACH,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAC;wBACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,EAAE,CAAC;wBAC1B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBACzD,IAAI,CAAC,kCAAkC,EAAE,CAAC;qBACzC;gBACH,CAAC,CAAC,CAAC;gBACH,0BAA0B;gBAC1B,mCAAmC;gBACnC,gEAAgE;gBAChE,WAAW;gBACX,wDAAwD;gBACxD,MAAM;gBACN,sBAAsB;gBACtB,iDAAiD;gBACjD,MAAM;gBACN,IAAI;gBACJ,IAAG,GAAG,CAAC,MAAM,GAAC,CAAC,EAAC;oBACd,6CAA6C;iBAC9C;qBACG;oBACF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;oBACzB,IAAI,CAAC,mBAAmB,EAAE,CAAC;iBAC1B;aACF;QACH,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;YACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kCAAkC,EAAE,EAAE,EAAE;gBAC1D,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACH,4BAA4B;YAC5B,uBAAuB;YACvB,8BAA8B;YAC9B,+CAA+C;YAC/C,MAAM;QACR,CAAC,CACF,CAAC;IACN,CAAC;IAED,+CAA+C;IAC/C,gCAAgC;IAChC,yBAAyB;IACzB,+CAA+C;IAC/C,IAAI;IAEJ,kCAAkC;QAChC,IAAI,CAAC,aAAa,GAAG,KAAK;QAC1B,IAAI,CAAC,QAAQ,GAAC,KAAK;QACnB,IAAI,CAAC,MAAM,GAAC,CAAC;QACb,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,kBAAkB,CAAC,YAAY,GAAG,EAAE,CAAC;QAC1C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACpD,oEAAoE;QACpE,2BAA2B;QAC3B,gCAAgC;QAChC,4BAA4B;QAC5B,yBAAyB;QACzB,YAAY;QACZ,uCAAuC;QACvC,MAAM;QACN,gBAAgB;QAChB,wBAAwB;QACxB,mBAAmB;QACnB,0CAA0C;QAC1C,qCAAqC;QACrC,2CAA2C;QAC3C,wCAAwC;QACxC,gBAAgB;QAChB,kDAAkD;QAClD,cAAc;QACd,qCAAqC;QACrC,4EAA4E;QAC5E,qCAAqC;QACrC,YAAY;QACZ,UAAU;QACV,SAAS;QACT,wBAAwB;QACxB,sEAAsE;QACtE,0BAA0B;QAC1B,uCAAuC;QACvC,mCAAmC;QACnC,YAAY;QACZ,QAAQ;QACR,OAAO;QACP,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACnE,IAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,KAAG,IAAI,IAAE,IAAI,CAAC,YAAY,KAAG,IAAI,EAAC;YACrE,IAAI,CAAC,mBAAmB;iBACrB,mBAAmB,CAClB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CACjC;iBACA,SAAS,CACR,CAAC,GAAU,EAAE,EAAE;gBACb,IAAI,GAAG,EAAE;oBACP,GAAG,CAAC,OAAO,CAAC,CAAC,OAAY,EAAE,EAAE;wBAC3B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;4BACrB,KAAK,EAAE,OAAO,CAAC,IAAI;4BACnB,KAAK,EAAE,OAAO,CAAC,EAAE;yBAClB,CAAC,CAAC;wBACH,IAAG,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;4BACnB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,EAAE,CAAC;4BAC7B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;yBAChE;oBACH,CAAC,CAAC,CAAC;oBACH,6BAA6B;oBAC7B,oEAAoE;oBACpE,gCAAgC;oBAChC,0CAA0C;oBAC1C,IAAI;oBACJ,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;wBAClB,kEAAkE;wBAClE,2BAA2B;wBAC3B,IAAI,CAAC,8BAA8B,EAAE;qBACtC;yBACG;wBACF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;wBACzB,IAAI,CAAC,mBAAmB,EAAE,CAAC;qBAC1B;iBACF;gBACD,uBAAuB;YACzB,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;gBACb,uBAAuB;gBACvB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kCAAkC,EAAE,EAAE,EAAE;oBAC1D,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACL,CAAC,CACF,CAAC;SACH;IACH,CAAC;IAED,mBAAmB;QACjB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACnE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9D,CAAC;IAID,QAAQ;QACN,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC5D,CAAC;IAED,YAAY;QACV,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+GAA2B,EAAE;YAC9D,IAAI,EAAE;gBACJ,OAAO,EAAE,yBAAyB;gBAClC,UAAU,EAAE;oBACV,EAAE,EAAE,KAAK;oBACT,MAAM,EAAE,IAAI;iBACb;aACF;SACF,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,SAAkB,EAAE,EAAE;YACvD,IAAI,SAAS,EAAE;gBACb,IAAI,WAAW,GAAG,IAAI,uEAAW,EAAE,CAAC;gBACpC,WAAW,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;gBACnD,WAAW,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;gBAC7C,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC;gBACjE,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;oBACxE,IAAI,CAAC,SAAS,GAAG,KAAK;oBACtB,IAAI,CAAC,8BAA8B,EAAE;oBACrC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,EAAE;wBAC/C,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,eAAe,CAAC;wBAC7B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;gBACL,CAAC,EACC,CAAC,KAAK,CAAC,EAAE;oBACP,IAAI,CAAC,SAAS,GAAG,IAAI;oBACrB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE;wBAC3C,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,eAAe,CAAC;wBAC7B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;aACN;QACH,CAAC,CAAC;QACF,wEAAwE;QACxE,sBAAsB;QACtB,iBAAiB;QACjB,oCAAoC;QACpC,oEAAoE;QACpE,eAAe;QACf,qCAAqC;QACrC,QAAQ;QACR,OAAO;QACP,sBAAsB;QACtB,qDAAqD;QACrD,wBAAwB;QACxB,qCAAqC;QACrC,iCAAiC;QACjC,UAAU;QACV,MAAM;QACN,KAAK;IACP,CAAC;IACD,UAAU,CAAC,CAAC;QACV,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;YAC5B,IAAI,CAAC,IAAI,KAAK,EAAE;gBACd,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mFAAkB,EAAE;oBACrD,KAAK,EAAE,MAAM;oBACb,IAAI,EAAE;wBACJ,OAAO,EAAE,SAAS;wBAClB,OAAO,EAAE,KAAK;wBACd,SAAS,EAAE,IAAI,CAAC,eAAe;wBAC/B,KAAK,EAAE,IAAI,CAAC,YAAY;wBACxB,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO;wBACzC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU;wBAC3C,QAAQ,EAAE,KAAK;wBACf,KAAK,EAAE,IAAI;wBACX,mBAAmB,EAAE,IAAI;qBAC1B;iBACF,CAAC,CAAC;gBACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAC/B,CAAC,GAAQ,EAAE,EAAE;oBACX,IAAI,GAAG,IAAI,EAAE,EAAE;wBACb,UAAU,CAAC,GAAG,EAAE;4BACd,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;4BACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;4BACpB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;4BAC1B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;4BAChD,8BAA8B;4BAC9B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,wBAAwB,EAAG,EAAE,EAAE;gCACjD,QAAQ,EAAE,IAAI;gCACd,kBAAkB,EAAE,OAAO;gCAC3B,gBAAgB,EAAE,KAAK;6BACxB,CAAC,CAAC;4BACH,IAAI,CAAC,8BAA8B,EAAE;wBACvC,CAAC,EAAE,EAAE,CAAC,CAAC;qBACR;gBACH,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;oBACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,4BAA4B,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;wBACnE,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;gBACL,CAAC,CACF,CAAC;aACH;iBACK;gBACJ,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mFAAkB,EAAE;oBACrD,KAAK,EAAE,MAAM;oBACb,IAAI,EAAE;wBACJ,OAAO,EAAE,UAAU;wBACnB,OAAO,EAAE,QAAQ;wBACjB,SAAS,EAAE,IAAI,CAAC,eAAe;wBAC/B,QAAQ,EAAE,IAAI;wBACd,KAAK,EAAE,IAAI;wBACX,KAAK,EAAE,IAAI,CAAC,YAAY;wBACxB,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO;wBACzC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU;wBAC3C,mBAAmB,EAAE,CAAC,CAAC,YAAY;wBACnC,uBAAuB,EAAG,CAAC,CAAC,uBAAuB;wBACnD,iBAAiB,EAAC,CAAC;qBACpB;iBACF,CAAC,CAAC;gBACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;oBAC7C,IAAI,GAAG,IAAI,EAAE,EAAE;wBACb,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;wBACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;wBACpB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;wBAC1B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;wBAChD,+BAA+B;wBAC/B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,0BAA0B,EAAG,EAAE,EAAE;4BACnD,QAAQ,EAAE,IAAI;4BACd,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;wBACH,IAAI,CAAC,8BAA8B,EAAE;qBACtC;gBACH,CAAC,CAAC,CAAC;aACJ;SACF;IACH,CAAC;IAED,uBAAuB,CAAC,CAAC;QACvB,CAAC,CAAC,QAAQ,GAAC,CAAC,CAAC,QAAQ,KAAG,KAAK,EAAC,MAAK,EAAC,KAAI,CAAC;QACzC,CAAC,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe;QAC5D,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU;QAClD,IAAI,CAAC,qBAAqB,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,SAAS,CAC7D,CAAC,GAAQ,EAAE,EAAE;YACX,IAAG,GAAG,KAAG,8CAA8C;gBACvD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE;oBAC3B,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACH,IAAI,CAAC,8BAA8B,EAAE,CAAC;QAExC,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;YACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kCAAkC,EAAE,EAAE,EAAE;gBAC1D,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CACF,CAAC;IACJ,CAAC;IAED,yBAAyB,CAAC,CAAC;QACzB,CAAC,CAAC,QAAQ,GAAC,CAAC,CAAC,QAAQ,KAAG,KAAK,EAAC,MAAK,EAAC,KAAI,CAAC;QACzC,IAAI,CAAC,qBAAqB,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,SAAS,CAC7D,CAAC,GAAQ,EAAE,EAAE;YACX,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE;gBAC3B,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACH,IAAI,CAAC,8BAA8B,EAAE,CAAC;QAExC,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;YACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kCAAkC,EAAE,EAAE,EAAE;gBAC1D,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CACF,CAAC;IACJ,CAAC;IAED,uBAAuB,CAAC,CAAC;QACvB,IAAI,CAAC,qBAAqB,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,SAAS,CAC7D,CAAC,GAAQ,EAAE,EAAE;YACX,IAAI,GAAG,CAAC,YAAY,IAAI,IAAI,EAAE;gBAC5B,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;gBAC/B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,sCAAsC,EAAE,EAAE,EAAE;oBAC9D,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,eAAe,CAAC;oBAC7B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;iBAAM;gBACL,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,EAAE;oBACrB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kCAAkC,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE;wBACzE,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;qBAAM;oBACL,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kCAAkC,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE;wBACzE,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;aACF;QACH,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;YACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kCAAkC,EAAE,EAAE,EAAE;gBAC1D,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CACF,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,CAAC;QACX,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CACjD,CAAC,GAAQ,EAAE,EAAE;YACX,IAAI,GAAG,CAAC,YAAY,IAAI,IAAI,EAAE;gBAC5B,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;gBAC/B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,sCAAsC,EAAE,EAAE,EAAE;oBAC9D,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,eAAe,CAAC;oBAC7B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;iBAAM;gBACL,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,EAAE;oBACrB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kCAAkC,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE;wBACzE,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;qBAAM;oBACL,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kCAAkC,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE;wBACzE,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;aACF;QACH,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;YACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kCAAkC,EAAE,EAAE,EAAE;gBAC1D,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CACF,CAAC;IACJ,CAAC;IAED,eAAe;QACb,IAAI,WAAW,GAAG,IAAI,uFAAkB,EAAE,CAAC;QAC3C,WAAW,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QACnD,WAAW,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7C,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;QACvD,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC;QAC7D,WAAW,CAAC,MAAM,GAAG,aAAa,CAAC;QACnC,wEAAwE;QACxE,sBAAsB;QACtB,iBAAiB;QACjB,oEAAoE;QACpE,iCAAiC;QACjC,sCAAsC;QACtC,wCAAwC;QACxC,2CAA2C;QAC3C,yJAAyJ;QACzJ,eAAe;QACf,oCAAoC;QACpC,oCAAoC;QACpC,QAAQ;QACR,OAAO;QACP,sBAAsB;QACtB,qDAAqD;QACrD,wBAAwB;QACxB,qCAAqC;QACrC,iCAAiC;QACjC,UAAU;QACV,mCAAmC;QACnC,8BAA8B;QAC9B,qCAAqC;QACrC,uCAAuC;QACvC,aAAa;QACb,MAAM;QACN,KAAK;IACP,CAAC;IACD,YAAY;QACV,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACtB,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED,YAAY;QACV,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAED,WAAW;QACT,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;YACtD,IAAI,YAA0B,CAAC;YAC/B,YAAY,GAAG,IAAI,mEAAY,EAAE,CAAC;YAElC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC;YAC1D,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACtC,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC;YAC3B,YAAY,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YACpD,YAAY,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAC9C,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;YACxD,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC;YAE9D,IAAI,CAAC,kBAAkB;iBACpB,aAAa,CAAC,YAAY,CAAC;iBAC3B,SAAS,CAAC,CAAC,cAAuB,EAAE,EAAE;gBACrC,IAAI,cAAc,EAAE;oBAClB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;oBAC7C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,8BAA8B,EAAE,EAAE,EAAE;wBACtD,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,eAAe,CAAC;wBAC7B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACH,uCAAuC;oBACvC,sBAAsB;iBACvB;qBACI;oBACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,2BAA2B,EAAE,EAAE,EAAE;wBACnD,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;YACH,CAAC,EACC,KAAK,CAAC,EAAE;gBACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,2BAA2B,EAAE,EAAE,EAAE;oBACnD,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACL,CAAC,CACF,CAAC;YACF,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;SACxB;IACH,CAAC;IAED,WAAW;QACT,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAChC,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,EAChC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,SAAS,CACnD,CAAC,GAAU,EAAE,EAAE;YACb,IAAI,GAAG,EAAE;gBACP,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;oBAChB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC;gBACnC,CAAC,CAAC,CAAC;aACJ;iBACI;gBACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE,EAAE;oBAChD,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;QACH,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;YACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE;gBACzC,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CACF,CAAC;IACN,CAAC;IAED,UAAU;QACR,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+GAA2B,EAAE;YAC9D,IAAI,EAAE;gBACJ,OAAO,EAAE,yBAAyB;gBAClC,UAAU,EAAE;oBACV,EAAE,EAAE,KAAK;oBACT,MAAM,EAAE,IAAI;iBACb;aACF;SACF,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,SAAkB,EAAE,EAAE;YACvD,IAAI,SAAS,EAAE;gBACb,IAAI,WAAwB;gBAC5B,WAAW,GAAG,IAAI,uEAAW,EAAE;gBAC/B,WAAW,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;gBACnD,WAAW,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;gBAC7C,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC;gBACjE,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;oBACzE,6BAA6B;oBAC7B,IAAI,CAAC,SAAS,GAAG,KAAK;oBACtB,IAAI,CAAC,8BAA8B,EAAE;oBACrC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,EAAE;wBAC/C,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACH,IAAI,CAAC,SAAS,EAAE;gBAElB,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;oBACX,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;oBAC3B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,EAAE;wBAC1C,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;gBACL,CAAC,CAAC;aACH;QACH,CAAC,CAAC;IACJ,CAAC;IAED,cAAc;QACZ,IAAI,WAAW,GAAG,IAAI,uFAAkB,EAAE,CAAC;QAC3C,WAAW,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QACnD,WAAW,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7C,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;QACvD,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC;QAC7D,WAAW,CAAC,MAAM,GAAG,gBAAgB,CAAC;QACtC,wEAAwE;QACxE,sBAAsB;QACtB,iBAAiB;QACjB,iCAAiC;QACjC,mCAAmC;QACnC,+CAA+C;QAC/C,eAAe;QACf,qCAAqC;QACrC,QAAQ;QACR,OAAO;QACP,sBAAsB;QACtB,qDAAqD;QACrD,wBAAwB;QACxB,qCAAqC;QACrC,iCAAiC;QACjC,UAAU;QACV,mCAAmC;QACnC,8BAA8B;QAC9B,qCAAqC;QACrC,uCAAuC;QACvC,aAAa;QACb,MAAM;QACN,KAAK;IACP,CAAC;IAED,cAAc,CAAC,IAAY;QACzB,IAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,KAAG,IAAI,IAAE,IAAI,CAAC,YAAY,KAAG,IAAI,IAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,KAAG,IAAI,EAAC;YACjH,IAAI,CAAC,iBAAiB;iBACnB,qBAAqB,CACpB,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,EAChC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,EACnC,IAAI,CACL;iBACA,SAAS,CACR,CAAC,GAAoB,EAAE,EAAE;gBACvB,IAAI,GAAG,EAAE;oBACP,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;oBACzB,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,GAAG,CAAC,CAAC;oBAC9C,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;oBAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;oBACjC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;oBAC1B,GAAG,CAAC,OAAO,CAAC,CAAC,IAAmB,EAAE,EAAE;wBAClC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,IAAI,eAAe,CAAC;wBACpD,IAAI,IAAI,CAAC,MAAM,IAAI,eAAe,EAAE;4BAClC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;yBAC3B;wBACD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,IAAI,mBAAmB,CAAC;wBACzD,IAAI,IAAI,CAAC,MAAM,IAAI,aAAa,EAAE;4BAChC,IAAI,CAAC,QAAQ,EAAE,CAAC;4BAChB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;yBAC3B;oBAEH,CAAC,CAAC,CAAC;oBACH,0BAA0B;oBAC1B,oDAAoD;oBACpD,IAAI,IAAI,IAAI,MAAM,EAAE;wBAClB,UAAU,CAAC,GAAG,EAAE;4BACd,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,EAAE;gCAClD,QAAQ,EAAE,IAAI;gCACd,UAAU,EAAE,CAAC,eAAe,CAAC;gCAC7B,kBAAkB,EAAE,OAAO;gCAC3B,gBAAgB,EAAE,KAAK;6BACxB,CAAC,CAAC;wBACL,CAAC,EAAE,EAAE,CAAC,CAAC;qBACR;yBAAM,IAAI,IAAI,IAAI,KAAK,EAAE;wBACxB,UAAU,CAAC,GAAG,EAAE;4BACd,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE,EAAE;gCAChD,QAAQ,EAAE,IAAI;gCACd,UAAU,EAAE,CAAC,eAAe,CAAC;gCAC7B,kBAAkB,EAAE,OAAO;gCAC3B,gBAAgB,EAAE,KAAK;6BACxB,CAAC,CAAC;wBACL,CAAC,EAAE,EAAE,CAAC,CAAC;qBACR;iBACF;YACH,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;gBACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE;oBACzC,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACL,CAAC,CACF,CAAC;SACH;IACH,CAAC;IAED,WAAW,CAAC,CAAC;QACX,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+GAA2B,EAAE;YAC9D,IAAI,EAAE;gBACJ,OAAO,EAAE,4BAA4B;gBACrC,UAAU,EAAE;oBACV,EAAE,EAAE,KAAK;oBACT,MAAM,EAAE,IAAI;iBACb;aACF;SACF,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,SAAkB,EAAE,EAAE;YACzD,IAAI,SAAS,EAAE;gBACf,IAAI,YAAY,GAAG;oBACjB,YAAY,EAAE,CAAC,CAAC,YAAY;oBAC5B,uBAAuB,EAAE,CAAC,CAAC,uBAAuB;iBACnD;gBAED,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,SAAS,CAC/D,CAAC,GAAQ,EAAE,EAAE;oBACT,kCAAkC;oBAClC,IAAI,CAAC,aAAa,GAAG,IAAI;oBACzB,IAAI,CAAC,8BAA8B,EAAE;oBACrC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,sCAAsC,EAAE,EAAE,EAAE;wBAC9D,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,eAAe,CAAC;wBAC7B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;gBACP,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;oBACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kCAAkC,EAAE,EAAE,EAAE;wBAC1D,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;gBACL,CAAC,CACF,CAAC;aACD;QACH,CAAC,CAAC;IACF,CAAC;IAGD,UAAU;QACR,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC7B,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC;IAGD,UAAU;QACR,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC7B,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC;IAED,UAAU,CAAC,OAAO;QACjB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,GAAE,QAAO,CAAC,kBAAkB,GAAC,KAAK,CAAC,CAAC;QAC/D,OAAO,CAAC,kBAAkB,GAAC,IAAI,CAAC;QAChC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC7B,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC;IAED,SAAS;QACP,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;IAGD,SAAS,CAAC,kBAA0B;QAClC,IAAI,CAAC,qBAAqB,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAC5E,CAAC,GAAQ,EAAE,EAAE;YACX,IAAI,GAAG,IAAI,IAAI,EAAE;gBACf,kCAAkC;gBAClC,IAAI,CAAC,8BAA8B,EAAE;gBACrC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,sCAAsC,EAAE,EAAE,EAAE;oBAC9D,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,eAAe,CAAC;oBAC7B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;iBAAM;gBACL,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kCAAkC,EAAE,EAAE,EAAE;oBAC1D,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;QACH,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;YACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kCAAkC,EAAE,EAAE,EAAE;gBAC1D,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,YAAY;QACV,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAE5B,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC/B,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC;IAED,8BAA8B;QAC5B,IAAG,IAAI,CAAC,aAAa,EAAC;YACpB,IAAI,CAAC,aAAa,GAAG,KAAK;YAC1B,IAAI,CAAC,aAAa,GAAG,KAAK;YAC5B,IAAI,CAAC,MAAM,GAAC,CAAC;YACb,IAAI,CAAC,cAAc,GAAC,EAAE,CAAC;YACvB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,qBAAqB,CAAC,qCAAqC,CAAC,IAAI,CAAC,eAAe,EAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,SAAS,CAClI,CAAC,GAAoB,EAAE,EAAE;gBACvB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACpB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,GAAG,EAAE;oBACP,4BAA4B;oBAC5B,iDAAiD;oBACjD,8CAA8C;oBAC9C,oCAAoC;oBACpC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAmB,EAAE,EAAE;wBAClC,qCAAqC;wBACrC,IAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,EAAC;4BACpB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;yBAC/B;wBACD,IAAG,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,EAAC;4BAC3C,IAAI,CAAC,aAAa,GAAG,IAAI;yBAC1B;wBACD,IAAI,IAAI,CAAC,MAAM,IAAI,eAAe,EAAE;4BAClC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;4BAC1B,2BAA2B;yBAC5B;wBACD,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE;4BACrB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;4BAC1B,IAAI,CAAC,SAAS,GAAC,KAAK;yBACrB;wBACD,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,EAAE;4BACtB,IAAI,CAAC,QAAQ,GAAC,IAAI;yBACnB;oBACH,CAAC,CAAC,CAAC;oBACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;oBACzC,IAAG,IAAI,CAAC,MAAM,IAAI,CAAC,EAAC;wBAClB,IAAI,CAAC,SAAS,GAAG,KAAK;qBACvB;oBACD,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;oBAC9D,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;oBAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;iBAClC;qBACG;oBACF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;iBACxB;YAEH,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;gBACb,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACpB,IAAI,CAAC,MAAM,GAAC,CAAC,CAAC;gBACd,IAAG,KAAK,CAAC,KAAK,CAAC,IAAI,KAAG,uCAAuC,EAAC;oBAC5D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;oBACtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;iBACxB;gBACH,aAAa;gBACb,wFAAwF;gBACxF,sDAAsD;gBACtD,sDAAsD;gBACtD,+CAA+C;gBAC/C,QAAQ;gBACR,6BAA6B;gBAC7B,8BAA8B;gBAC9B,MAAM;qBACE,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,kBAAkB,IAAI,KAAK,CAAC,KAAK,IAAI,mBAAmB;uBAC/E,KAAK,CAAC,KAAK,IAAG,gBAAgB,CAAC;oBAClC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,kBAAkB,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,mBAAmB;2BAC/E,KAAK,CAAC,KAAK,CAAC,IAAI,IAAG,gBAAgB,CAAC,EAAE;oBACvC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,EAAE;wBAC3C,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACH,IAAI,CAAC,UAAU,GAAG,IAAI;iBACvB;qBAAM;oBACL,IAAI,CAAC,UAAU,GAAC,IAAI;oBACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,mCAAmC,GAAG,KAAK,CAAC,KAAK,EACjD,GAAG,EACH;wBACE,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CACF,CAAC;iBACH;YACH,CAAC,CACF,CAAC;SACH;aAAK;YACF,IAAI,CAAC,qBAAqB,CAAC,2BAA2B,CAAC,IAAI,CAAC,eAAe,EAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,SAAS,CACxH,CAAC,GAAoB,EAAE,EAAE;gBACvB,IAAI,GAAG,IAAI,IAAI,EAAE;oBACf,IAAI,CAAC,OAAO,GAAC,GAAG,CAAC;oBAEjB,MAAM,SAAS,GAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAC,cAAc,CAAC,CAAC;oBACnE,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;oBACzB,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,GAAG,CAAC,CAAC;oBAC9C,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;oBAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;oBACjC,yCAAyC;oBACzC,0CAA0C;oBAC1C,0CAA0C;oBAC1C,iCAAiC;oBACjC,kCAAkC;oBAClC,MAAM;oBACN,0CAA0C;oBAC1C,iCAAiC;oBACjC,kCAAkC;oBAClC,MAAM;oBACN,MAAM;iBACP;qBACG;oBACF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;iBACxB;gBACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACxB,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;gBACb,IAAI,CAAC,MAAM,GAAC,CAAC,CAAC;gBACd,IAAG,KAAK,CAAC,KAAK,CAAC,IAAI,KAAG,uCAAuC,EAAC;oBAC5D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;oBACtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;iBAChC;gBACK,aAAa;gBACb,wFAAwF;gBACxF,sDAAsD;gBACtD,sDAAsD;gBACtD,+CAA+C;gBAC/C,QAAQ;gBACR,6BAA6B;gBAC7B,8BAA8B;gBAC9B,MAAM;qBACE,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,kBAAkB,IAAI,KAAK,CAAC,KAAK,IAAI,mBAAmB;uBAC/E,KAAK,CAAC,KAAK,IAAG,gBAAgB,CAAC;oBAClC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,kBAAkB,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,mBAAmB;2BAC/E,KAAK,CAAC,KAAK,CAAC,IAAI,IAAG,gBAAgB,CAAC,EAAE;oBACvC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,EAAE;wBAC3C,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACH,IAAI,CAAC,UAAU,GAAG,IAAI;iBACvB;qBAAM;oBACL,IAAI,CAAC,UAAU,GAAC,IAAI;oBACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,mCAAmC,GAAG,KAAK,CAAC,KAAK,EACjD,GAAG,EACH;wBACE,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CACF,CAAC;iBACH;YACH,CAAC,CACF,CAAC;SACH;IACH,CAAC;IAED,oBAAoB,CAAC,KAAU,EAAE,KAAU;QACzC,IAAI,eAAe,GAAQ,CAAC,CAAC;QAC7B,IAAG,KAAK,CAAC,iBAAiB,KAAG,KAAK,CAAC,iBAAiB;YACpD,eAAe,EAAE,CAAC;QAClB,IAAG,KAAK,CAAC,MAAM,KAAG,KAAK,CAAC,MAAM;YAC9B,eAAe,EAAE,CAAC;QAClB,IAAG,KAAK,CAAC,UAAU,KAAG,KAAK,CAAC,UAAU;YACtC,eAAe,EAAE,CAAC;QAClB,IAAG,KAAK,CAAC,cAAc,KAAG,KAAK,CAAC,cAAc;YAC9C,eAAe,EAAE,CAAC;QAClB,IAAG,KAAK,CAAC,WAAW,KAAG,KAAK,CAAC,WAAW;YACxC,eAAe,EAAE,CAAC;QAElB,OAAO,eAAe,CAAC;IACxB,CAAC;IAEF,gBAAgB,CAAC,IAAI,EAAC,GAAG;QACvB,MAAM,MAAM,GAAC,EAAC,UAAU,EAAC,IAAI,EAAC,SAAS,EAAC,EAAE,EAAC;QAC3C,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAC,MAAM,EAAC,SAAS,EAAC,EAAE;YACrC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAC,MAAM,CAAC,CAAC;YAC5B,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAC,MAAM,EAAC,SAAS,EAAC,EAAE;gBACnC,IAAG,MAAM,KAAG,MAAM,EAAC;oBACf,IAAG,KAAK,CAAC,YAAY,KAAG,IAAI,IAAE,KAAK,CAAC,YAAY,KAAG,IAAI;wBACrD,KAAK,CAAC,YAAY,KAAG,KAAK,CAAC,YAAY,EAAC;wBACtC,IAAG,KAAK,CAAC,uBAAuB,KAAG,CAAC,EAAC;4BAClC,KAAK,CAAC,UAAU,GAAC,KAAK,CAAC;yBACzB;6BAAI;4BACH,IAAG,KAAK,CAAC,UAAU,KAAG,KAAK,EAAC;gCACzB,KAAK,CAAC,WAAW,GAAC,KAAK,CAAC,WAAW,CAAC;gCACpC,KAAK,CAAC,eAAe,GAAC,KAAK,CAAC,eAAe,CAAC;gCAC5C,KAAK,CAAC,MAAM,GAAC,KAAK,CAAC,MAAM,CAAC;gCAC1B,KAAK,CAAC,MAAM,GAAC,KAAK,CAAC,MAAM,CAAC;6BAC5B;iCAAI;gCACH,KAAK,CAAC,SAAS,GAAC,KAAK,CAAC,SAAS,CAAC;gCAChC,KAAK,CAAC,cAAc,GAAC,KAAK,CAAC,WAAW,CAAC;gCACvC,KAAK,CAAC,kBAAkB,GAAC,KAAK,CAAC,eAAe,CAAC;gCAC/C,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAAC;gCAC1C,KAAK,CAAC,eAAe,GAAG,KAAK,CAAC,cAAc,CAAC;gCAC7C,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC;gCAC/B,KAAK,CAAC,QAAQ,GAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAC,KAAK,CAAC,CAAC;6BACvD;yBAEF;wBACD,IAAG,KAAK,CAAC,uBAAuB,KAAG,CAAC,EAAC;4BACnC,KAAK,CAAC,UAAU,GAAC,KAAK,CAAC;yBACxB;6BAAI;4BACH,IAAG,KAAK,CAAC,UAAU,KAAG,KAAK,EAAC;gCAC1B,KAAK,CAAC,WAAW,GAAC,KAAK,CAAC,WAAW,CAAC;gCACpC,KAAK,CAAC,eAAe,GAAC,KAAK,CAAC,eAAe,CAAC;gCAC5C,KAAK,CAAC,MAAM,GAAC,KAAK,CAAC,MAAM,CAAC;gCAC1B,KAAK,CAAC,MAAM,GAAC,KAAK,CAAC,MAAM,CAAC;6BAC5B;iCAAI;gCACJ,KAAK,CAAC,SAAS,GAAC,KAAK,CAAC,MAAM,CAAC;gCAC7B,KAAK,CAAC,cAAc,GAAC,KAAK,CAAC,WAAW,CAAC;gCACvC,KAAK,CAAC,kBAAkB,GAAC,KAAK,CAAC,eAAe,CAAC;gCAC/C,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAAC;gCAC3C,KAAK,CAAC,eAAe,GAAG,KAAK,CAAC,cAAc,CAAC;gCAC7C,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC;gCAC/B,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAC,KAAK,CAAC,CAAC;6BACvD;yBACD;qBACJ;iBACJ;YACL,CAAC,CAAC;QACJ,CAAC,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS;QACP,IAAI,CAAC,SAAS,GAAC,KAAK;QACpB,IAAI,CAAC,OAAO,GAAC,KAAK;QAClB,IAAI,CAAC,aAAa,GAAC,KAAK;IAC1B,CAAC;IACD,QAAQ;QACN,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+GAA2B,EAAE;YAC9D,IAAI,EAAE;gBACJ,OAAO,EAAE,yBAAyB;gBAClC,UAAU,EAAE;oBACV,EAAE,EAAE,KAAK;oBACT,MAAM,EAAE,IAAI;iBACb;aACF;SACF,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,SAAkB,EAAE,EAAE;YACvD,IAAI,SAAS,EAAE;gBACb,IAAI,WAAwB;gBAC5B,WAAW,GAAG,IAAI,uEAAW,EAAE;gBAC/B,WAAW,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;gBACnD,WAAW,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;gBAC7C,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC;gBACjE,IAAI,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;oBAC5E,IAAI,CAAC,QAAQ,GAAG,IAAI;oBACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iCAAiC,EAAE,EAAE,EAAE;wBACzD,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,eAAe,CAAC;wBAC7B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;gBACL,CAAC,EACC,CAAC,KAAK,CAAC,EAAE;oBACP,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE;wBAC3C,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,eAAe,CAAC;wBAC7B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;aACN;QACH,CAAC,CAAC;IACJ,CAAC;IACD,YAAY;QACV,IAAI,CAAC,aAAa,GAAG,KAAK;QAC1B,IAAI,CAAC,QAAQ,GAAC,KAAK;QACnB,IAAI,CAAC,MAAM,GAAC,CAAC;QACb,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,kBAAkB,CAAC,YAAY,GAAG,EAAE,CAAC;QAC1C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACnE,IAAG,IAAI,CAAC,YAAY,KAAG,IAAI,EAAC;YAC5B,IAAI,CAAC,mBAAmB;iBACrB,wCAAwC,CACvC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,EAAC,IAAI,CAAC,YAAY,CAC3D;iBACA,SAAS,CACR,CAAC,GAAU,EAAE,EAAE;gBACb,IAAI,GAAG,EAAE;oBACP,GAAG,CAAC,OAAO,CAAC,CAAC,OAAY,EAAE,EAAE;wBAC3B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;4BACrB,KAAK,EAAE,OAAO,CAAC,IAAI;4BACnB,KAAK,EAAE,OAAO,CAAC,EAAE;yBAClB,CAAC,CAAC;wBACH,IAAG,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;4BACnB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,EAAE,CAAC;4BAC7B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;4BAC/D,IAAI,CAAC,8BAA8B,EAAE;yBACtC;oBACH,CAAC,CAAC,CAAC;oBACH,6BAA6B;oBAC7B,oEAAoE;oBACpE,gCAAgC;oBAChC,0CAA0C;oBAC1C,IAAI;oBACJ,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;wBAClB,kEAAkE;wBAClE,2BAA2B;wBAC3B,wCAAwC;qBACzC;yBACG;wBACF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;wBACzB,IAAI,CAAC,mBAAmB,EAAE,CAAC;qBAC1B;iBACF;gBACD,uBAAuB;YACzB,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;gBACb,uBAAuB;gBACvB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kCAAkC,EAAE,EAAE,EAAE;oBAC1D,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACL,CAAC,CACF,CAAC;SACH;IACH,CAAC;IAED,wBAAwB;QACtB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,mBAAmB;aACrB,wBAAwB,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC;aAC1H,SAAS,CACR,CAAC,GAAU,EAAE,EAAE;YACb,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;gBAClB,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;aACnC;iBAAM;gBACL,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;aACtB;QACH,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;YACb,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACvB,CAAC,CACF,CAAC;IACN,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAChC,IAAI,CAAC,8BAA8B,EAAE,CAAC;IACxC,CAAC;;oFAx5CU,kBAAkB;kGAAlB,kBAAkB;;wEAuDlB,wEAAY;wEACZ,+DAAO;;;;;;;;QCrGpB,wFACE;QAAA;QAAA,oFACE;QAAA;QAAA,0EACA;QAAA;QAAA,8EACA;QAAA;QAAA,wEAAyB;QAAA,qEAAS;QAAA,2EAA0B;QAAA,2EAAqB;QAAA,iEAAK;QAAA,qEAAoD;QAAA,4DAAO;QAAA,qEAA0D;QAAA;QAAA,6EACxM;QADgN,yRAAS,YAAgB,IAAC;QAC1O;QAAA,4EAAU;QAAA,iEAAK;QAAA,4DAAW;QAC5B;QAAA,4DAAS;QAAC;QAAA,4DAAO;QAAA,4DAAK;QACzB;QAAA,4DAAW;QAEX;QAAA,gFACA;QAAA;QACA;QAAA,2EAEA;QAAA;QACA;QAEA;QAEA;QAEA;QAMA;QAAA,uEACA;QAAA;QAAA,iFAA4B;QAAA,wDAAe;QAAA,4DAAY;QACvD;QAAA,4DAAM;QACN;QAAA,4DAAM;QAEN;QAAA,2EACA;QAAA;QAAA,2EACE;QAAA;QAAA,sFACG;QAAA;QAAA,6EAAW;QAAA,8EAAkB;QAAA,4DAAY;QACzC;QAAA,wEACF;QAAA;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,8EACG;QADsB,2IAAS,iBAAa,IAAC;QAC7C;QAAA,4EAAU;QAAA,gEAAI;QAAA,4DAAW;QAC3B;QAAA,4DAAS;QACZ;QAAA,4DAAM;QACN;QAAA,4DAAM;QAEN;QAAA,4DAAW;QACX;QAAA,4DAAO;QACP;QAAA,4DAAc;QAEd;QAAA,gFACE;QAAA;QAAA,oFACE;QAAA;QAAA,2EACE;QAAA;QAAA,2EACE;QAAA;QAAA,2EACE;QAAA;QAAA,sFACE;QAAA;QAAA,6EAAW;QAAA,0EAAc;QAAA,4DAAY;QACrC;QAAA,kFACE;QADgF,yKAAkB,oBAAgB;QAClH;QAAA,+HACE;QAEJ;QAAA,4DAAa;QACf;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,sFACE;QAAA;QAAA,6EAAW;QAAA,wDAAuD;QAAA,4DAAY;QAC9E;QAAA,kFACE;QADyE,yKAAkB,8BAA0B;QACrH;QAAA,+HACE;QAEJ;QAAA,4DAAa;QACf;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACN;QAUA;QACE;QACE;QAAA,4EACE;QAAA;QAAA,uFACE;QAAA;QAAA,8EAAW;QAAA,yDAAoD;QAAA,4DAAY;QAC3E;QAAA,mFACE;QADsE,oKAAmB,sBAAkB,IAAC;QAC5G;QAAA,iIACE;QAEJ;QAAA,4DAAa;QACf;QAAA,4DAAiB;QACjB;QAAA,+GAAsB;QACxB;QAAA,4DAAM;QACN;QAAA,4EACE;QAAA;QACE;QAAA,yHAAgG;QAEhG;QAAA,+EACE;QAAA;QAAA,4DAAS;QACb;QACF;QAAA,4DAAM;QACR;QACF;QACF;QAAA,4DAAM;QACR;QAAA,4DAAO;QACT;QAAA,4DAAmB;QACrB;QAAA,4DAAW;QAEX;QAAA,iFACE;QAAA;QAAA,qFACE;QAAA;QAAA,oHACE;QAuJF;QACA;QAAA,oHACE;QAyEF;QAEA;QACA;QA2CA;QAMA;QACF;QAAA,4DAAmB;QACrB;QAAA,4DAAW;QACX;QAAA,4DAAwB;QACxB;QAAA,uFACE;QAAA;QAAA,+EAA4C;QAAtB,4IAAS,eAAW,IAAC;QAAC,mEAAM;QAAA,4DAAS;QAC7D;QAAA,4DAAW;QACX;QAAA,oFAME;QAAA;QAAA,0EAAmB;QAAA,wEAAW;QAAA,4DAAI;QACtC;QAAA,4DAAc;QACd;;QArZU,0DAAyB;QAAzB,sFAAyB;QAyBL,2DAAe;QAAf,gFAAe;QAwBjC,2DAA2B;QAA3B,wFAA2B;QAGX,0DAAiC;QAAjC,uGAAiC;QAGjC,0DAAqC;QAArC,0FAAqC;QAOrC,0DAAiC;QAAjC,uGAAiC;QACpC,0DAAuD;QAAvD,iIAAuD;QAEpD,0DAAmC;QAAnC,uFAAmC;QAmB/B,2DAAiC;QAAjC,uGAAiC;QACpC,0DAAoD;QAApD,8HAAoD;QAEjD,0DAAiC;QAAjC,qFAAiC;QAK9C,0DAAkB;QAAlB,gFAAkB;QAIX,0DAAgC;QAAhC,oGAAgC;QAetB,2DAAwC;QAAxC,0GAAwC;QAyJrD,0DAAqB;QAArB,mFAAqB;QAwI3C,2DAAoB;QAApB,6EAAoB;;6FDrWR,kBAAkB;cAL9B,uDAAS;eAAC;gBACT,QAAQ,EAAE,gBAAgB;gBAC1B,WAAW,EAAE,6BAA6B;gBAC1C,SAAS,EAAE,CAAC,6BAA6B,CAAC;aAC3C;m7BAEuB,OAAO;kBAA5B,uDAAS;mBAAC,SAAS;YAsDuB,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACH,IAAI;kBAAzC,uDAAS;mBAAC,+DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AErGtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAkD;AACkB;AAKX;;;;;;;;;;;;;;;ICG3C,iFACE;IAAA,uDACF;IAAA,4DAAa;;;IAFqC,+EAAmB;IACnE,0DACF;IADE,wHACF;;;IAEF,4EAA2E;IAAA,mGAC3E;IAAA,4DAAY;;;IAQV,iFACE;IAAA,uDACF;IAAA,4DAAa;;;IAFmC,gFAAoB;IAClE,0DACF;IADE,yHACF;;;IASA,iFACE;IAAA,uDACF;IAAA,4DAAa;;;IAF+B,iFAAqB;IAC/D,0DACF;IADE,0HACF;;;IAQA,iFACE;IAAA,uDACF;IAAA,4DAAa;;;IAFiC,gFAAoB;IAChE,0DACF;IADE,yHACF;;;IASF,4EAA2L;IAAA,oHAAyD;IAAA,4DAAY;;ADxC5Q,MAAM,WAAW;CAKhB;AAOM,MAAM,gBAAgB;IAe3B,YAAqB,kBAAqC,EAAS,SAAsB,EAAW,mBAA8C,EAAS,EAAe,EAAW,oBAA0C;QAA1M,uBAAkB,GAAlB,kBAAkB,CAAmB;QAAS,cAAS,GAAT,SAAS,CAAa;QAAW,wBAAmB,GAAnB,mBAAmB,CAA2B;QAAS,OAAE,GAAF,EAAE,CAAa;QAAW,yBAAoB,GAApB,oBAAoB,CAAsB;QAd/N,qBAAgB,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QAE7C,sBAAiB,GAAiB,EAAE,CAAC;QACrC,mBAAc,GAAiB,EAAE,CAAC;QAClC,cAAS,GAAiB,EAAE,CAAC;QAC7B,iBAAY,GAAiB,EAAE,CAAC;QAChC,oBAAe,GAAW,CAAC,CAAC;QAC5B,YAAO,GAAW,CAAC,CAAC;QACpB,eAAU,GAAW,CAAC,CAAC;QACvB,iBAAY,GAAW,CAAC,CAAC;QAGhC,0BAAqB,GAAG,IAAI,WAAW,EAAE,CAAC;IAEyL,CAAC;IAEpO,QAAQ;QACN,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YAC/B,eAAe,EAAE,CAAC,EAAE,EAAC,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC3C,YAAY,EAAE,CAAC,EAAE,CAAC;YAClB,OAAO,EAAE,CAAC,EAAE,CAAC;YACb,UAAU,EAAE,CAAC,EAAE,CAAC;YAChB,YAAY,EAAE,CAAC,EAAE,EAAC,CAAC,yDAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,yDAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,yDAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;SAC5G,CAAC,CAAC;QACH,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;YAC1B,KAAK,EAAE,uBAAuB;YAC9B,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;QACH,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,CAAC,SAAS,CACnD,CAAC,SAAgB,EAAE,EAAE;YACnB,SAAS,CAAC,OAAO,CAAC,CAAC,CAAM,EAAE,EAAE;gBAC3B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;oBAC1B,KAAK,EAAE,CAAC,CAAC,iBAAiB;oBAC1B,KAAK,EAAE,CAAC,CAAC,EAAE;iBACZ,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,EACD,KAAK,CAAC,EAAE;YACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mCAAmC,EAAE,EAAE,EAAE;gBAC3D,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CACF,CAAC;IACJ,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,kBAAkB,CAAC,wBAAwB,EAAE,CAAC,SAAS,CAC1D,CAAC,GAAwB,EAAE,EAAE;YAC3B,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;YACzB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACtE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAM,EAAE,EAAE;gBACrB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;oBACvB,KAAK,EAAE,CAAC,CAAC,WAAW;oBACpB,KAAK,EAAE,CAAC,CAAC,YAAY;iBACtB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,EACD,KAAK,CAAC,EAAE;YACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kCAAkC,EAAE,EAAE,EAAE;gBAC1D,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CACF,CAAC;IACJ,CAAC;IAED,QAAQ,CAAC,KAAK;QACZ,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC;QACnC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;IAED,kBAAkB,CAAC,KAAK;QACtB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC;QAChC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,CAAC,2BAA2B,EAAE,CAAC;IACrC,CAAC;IAED,2BAA2B;QACzB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,mBAAmB;aACrB,qBAAqB,CACpB,IAAI,CAAC,YAAY,CAClB;aACA,SAAS,CACR,CAAC,GAAU,EAAE,EAAE;YACb,IAAI,GAAG,EAAE;gBACP,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC5D,GAAG,CAAC,OAAO,CAAC,CAAC,OAAY,EAAE,EAAE;oBAC3B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;wBAClB,KAAK,EAAE,OAAO,CAAC,IAAI;wBACnB,KAAK,EAAE,OAAO,CAAC,EAAE;qBAClB,CAAC,CAAC;oBACH,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAC;wBACnB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,EAAE,CAAC;wBAC1B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;qBACtD;gBACL,CAAC,CAAC,CAAC;gBACD,IAAG,GAAG,CAAC,MAAM,GAAC,CAAC,EAAC;oBACd,IAAI,CAAC,kCAAkC,EAAE,CAAC;iBAC3C;aACJ;iBAAM;gBACL,IAAI,CAAC,mBAAmB,EAAE,CAAC;aAC5B;QACH,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;YACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kCAAkC,EAAE,EAAE,EAAE;gBAC1D,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CACF,CAAC;IACN,CAAC;IAED,kCAAkC;QAChC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACnE,IAAI,CAAC,mBAAmB;aACrB,mBAAmB,CAClB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAC/B;aACA,SAAS,CACR,CAAC,GAAU,EAAE,EAAE;YACb,IAAI,GAAG,EAAE;gBACP,GAAG,CAAC,OAAO,CAAC,CAAC,OAAY,EAAE,EAAE;oBAC3B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;wBACrB,KAAK,EAAE,OAAO,CAAC,IAAI;wBACnB,KAAK,EAAE,OAAO,CAAC,EAAE;qBAClB,CAAC,CAAC;oBACD,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAC;wBACnB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,EAAE,CAAC;wBAC7B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;qBAC5D;gBACP,CAAC,CAAC,CAAC;aACJ;iBAAM;gBACL,IAAI,CAAC,mBAAmB,EAAE,CAAC;aAC5B;QACH,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;YACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kCAAkC,EAAE,EAAE,EAAE;gBAC1D,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CACF,CAAC;IACN,CAAC;IAED,mBAAmB;QACjB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACnE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,WAAW;QACT,IAAI,CAAC,qBAAqB,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY;QAC7E,IAAG,IAAI,CAAC,qBAAqB,CAAC,YAAY,IAAI,IAAI,EAAC;YACjD,IAAI,CAAC,qBAAqB,CAAC,YAAY,GAAC,EAAE;SAC3C;QACD,IAAI,CAAC,qBAAqB,CAAC,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,eAAe;QACnF,IAAI,CAAC,qBAAqB,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY;QAC7E,IAAI,CAAC,qBAAqB,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU;QACrE,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;YAC1B,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,IAAI,CAAC,qBAAqB,CAAC,YAAY,EAAE,IAAI,CAAC,qBAAqB,CAAC,eAAe,EAAE,IAAI,CAAC,qBAAqB,CAAC,YAAY,EAAE,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;gBACvN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,4BAA4B,EAAE,EAAE,EAAE;oBACpD,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,IAAI,CAAC,KAAK,EAAE;YACd,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;gBACX,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,EAAE;oBAC/C,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC;gBACF,IAAI,CAAC,KAAK,EAAE;YACd,CAAC,CAAC;SACH;IACH,CAAC;IACD,KAAK;QACH,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;QACxB,IAAI,CAAC,qBAAqB,CAAC,YAAY,GAAC,EAAE;QAC1C,IAAI,CAAC,qBAAqB,CAAC,YAAY,GAAC,CAAC;QACzC,IAAI,CAAC,qBAAqB,CAAC,eAAe,GAAC,CAAC;QAC5C,IAAI,CAAC,qBAAqB,CAAC,MAAM,GAAC,CAAC;IACrC,CAAC;;gFA1MU,gBAAgB;gGAAhB,gBAAgB;QC1B7B,8EACE;QAAA;QAAA,mFACE;QAAA;QAAA,0EACE;QAAA;QAAA,yEACE;QAAA;QAAA,yEACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,0EAAc;QAAA,4DAAY;QACrC;QAAA,iFAEE;QADA,uKAAkB,oBAAgB;QAClC;QAAA,4HACE;QAEJ;QAAA,4DAAa;QACb;QAAA,0HAA2E;QAE7E;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,8EAAkB;QAAA,4DAAY;QACzC;QAAA,iFAEE;QADA,uKAAkB,8BAA0B;QAC5C;QAAA,4HACE;QAEJ;QAAA,4DAAa;QACf;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,yEAAa;QAAA,4DAAY;QACpC;QAAA,kFAEE;QADA,iKAAmB,wCAAoC,IAAC;QACxD;QAAA,4HACE;QAEJ;QAAA,4DAAa;QACf;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,4EAAgB;QAAA,4DAAY;QACvC;QAAA,kFACE;QAAA;QAAA,4HACE;QAEJ;QAAA,4DAAa;QACf;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EACC;QAAA,0EAAc;QAAA,4DAAY;QAC3B;QAAA,wEACA;QAAA;QAAA,0HAA2L;QAC7L;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACR;QAAA,4DAAM;QACN;QAAA,uEACE;QAAA;QAAA,8EAA4F;QAAzD,yIAAS,iBAAa,IAAC;QAAkC,wEAAY;QAAA,4DAAS;QACnH;QAAA,4DAAM;QACR;QAAA,4DAAO;QACT;QAAA,4DAAmB;QACrB;QAAA,4DAAW;;QA7DD,0DAAyB;QAAzB,sFAAyB;QAGT,0DAAiC;QAAjC,uGAAiC;QAIjC,0DAAqC;QAArC,0FAAqC;QAIxC,0DAA+D;QAA/D,6HAA+D;QAK5D,0DAAiC;QAAjC,uGAAiC;QAIjC,0DAAmC;QAAnC,uFAAmC;QAOnC,0DAAiC;QAAjC,uGAAiC;QAIjC,0DAA+B;QAA/B,kFAA+B;QAO/B,0DAAiC;QAAjC,uGAAiC;QAGjC,0DAAiC;QAAjC,qFAAiC;QAOhC,0DAAiC;QAAjC,uGAAiC;QAIrC,0DAA+K;QAA/K,qPAA+K;QAKnI,0DAAgC;QAAhC,6FAAgC;;6FDjCtF,gBAAgB;cAL5B,uDAAS;eAAC;gBACT,QAAQ,EAAE,cAAc;gBACxB,WAAW,EAAE,2BAA2B;gBACxC,SAAS,EAAE,CAAC,2BAA2B,CAAC;aACzC;;;;;;;;;;;;;;AEzBD;AAAA;AAAA;AAA2E;;AAMpE,MAAM,eAAe;IAE1B,YAAoB,GAAe;QAAf,QAAG,GAAH,GAAG,CAAY;IAAI,CAAC;IAEL,aAAa,CAAC,KAAK;QACpD,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC;QACjD,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACnE,IAAK,WAAW,KAAK,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,EAAE;YACjD,KAAK,CAAC,eAAe,EAAE,CAAC;SACzB;IACH,CAAC;;8EAVU,eAAe;+FAAf,eAAe;6IAAf,yBAEb;;6FAFa,eAAe;cAH3B,uDAAS;eAAC;gBACT,QAAQ,EAAE,oBAAoB;aAC/B;wGAKoC,aAAa;kBAA/C,0DAAY;mBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;;;;;;;;;;;;;;ACVnC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAyC;AACc;AACO;AACgD;AACC;AACtB;AACU;AACjB;AACA;AACA;AACF;AACJ;AACY;;;AAGxF,MAAM,MAAM,GAAW;IACnB;QACF,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,0EAAY;QAC3B,QAAQ,EAAE;YACN,EAAE,IAAI,EAAE,qBAAqB,EAAE,SAAS,EAAE,0HAA4B,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,uBAAuB,EAAE,EAAC;YACjH,EAAE,IAAI,EAAE,oBAAoB,EAAE,SAAS,EAAE,2HAA2B,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAC;YAC3G,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,qGAAqB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAC;YACpF,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,+GAAuB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAC;YACrF,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,8FAAkB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAC;YACpG,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,8FAAkB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAC;YAC/F,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,6FAAkB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAC;YAC9E,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,8FAAkB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAC;YAC3E,EAAE,IAAI,EAAE,0CAA0C,EAAE,SAAS,EAAE,8FAAkB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAC;YAC9H,EAAE,IAAI,EAAE,0CAA0C,EAAE,SAAS,EAAE,8FAAkB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAC;YAC9H,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,yFAAgB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,EAAC;YAChF,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,qGAAoB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,EAAC;SACxF;KACP;CACJ,CAAC;AAMK,MAAM,gBAAgB;;+FAAhB,gBAAgB;0JAAhB,gBAAgB,kBAHlB,CAAC,4DAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAC9B,4DAAY;mIAEX,gBAAgB,uFAFjB,4DAAY;6FAEX,gBAAgB;cAJ5B,sDAAQ;eAAC;gBACR,OAAO,EAAE,CAAC,4DAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACxC,OAAO,EAAE,CAAC,4DAAY,CAAC;aACxB;;;;;;;;;;;;;;ACtCD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAyC;AACM;AACmB;AAEV;AACM;AACgD;AACC;AACR;AACd;AACU;AAChB;AACA;AACtB;AACsB;AACW;AACZ;AACF;AACK;AACK;AAC3C;AAC6B;AACA;AACY;;AAgBjF,MAAM,SAAS;;wFAAT,SAAS;4IAAT,SAAS,kBAVX;YACP,4DAAY;YACZ,kHAAwB;YACxB,oEAAgB;YAChB,0DAAW;YACX,kEAAmB;YACnB,2EAAmB;YACnB,6DAAgB;SACjB;mIAEU,SAAS,mBAbL,0EAAY,EAAC,0HAA4B,EAAC,2HAA2B,EAAC,qGAAqB;QACzG,+GAAuB,EAAC,+FAAkB,EAAC,+FAAkB,EAAC,0GAAqB,EAAC,+FAAkB,EAAC,+FAAkB;QACzH,6FAAkB,EAAE,kGAAmB,EAAE,uGAAoB,EAAE,yFAAgB,EAAE,wFAAe,EAAE,qGAAoB,aAErH,4DAAY;QACZ,kHAAwB;QACxB,oEAAgB;QAChB,0DAAW;QACX,kEAAmB;QACnB,2EAAmB;QACnB,6DAAgB;6FAGP,SAAS;cAdrB,sDAAQ;eAAC;gBACR,YAAY,EAAE,CAAC,0EAAY,EAAC,0HAA4B,EAAC,2HAA2B,EAAC,qGAAqB;oBACzG,+GAAuB,EAAC,+FAAkB,EAAC,+FAAkB,EAAC,0GAAqB,EAAC,+FAAkB,EAAC,+FAAkB;oBACzH,6FAAkB,EAAE,kGAAmB,EAAE,uGAAoB,EAAE,yFAAgB,EAAE,wFAAe,EAAE,qGAAoB,CAAC;gBACxH,OAAO,EAAE;oBACP,4DAAY;oBACZ,kHAAwB;oBACxB,oEAAgB;oBAChB,0DAAW;oBACX,kEAAmB;oBACnB,2EAAmB;oBACnB,6DAAgB;iBACjB;aACF;;;;;;;;;;;;;;ACrCD;AAAA;AAAO,MAAM,YAAY;CAWxB;;;;;;;;;;;;;ACZD;AAAA;AAAO,MAAM,WAAW;IAAxB;QAGI,gBAAW,GAAU,EAAE,CAAC;IAE5B,CAAC;CAAA;;;;;;;;;;;;;ACLD;AAAA;AAAO,MAAM,sBAAsB;CAGlC;;;;;;;;;;;;;ACHD;AAAA;AAAA;AAAO,MAAM,kBAAkB;CAU9B;AAEM,MAAM,sBAAsB;CAWlC;;;;;;;;;;;;;ACvBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kEAAkE;AAE3D,MAAM,aAAa;IAA1B;QAQI,uBAAkB,GAAmB,EAAE,CAAC;IAC5C,CAAC;CAAA;AAEM,MAAM,eAAe;CAiB3B;AAEM,MAAM,eAAe;CAQ3B;AACM,MAAM,iBAAiB;IAA9B;QAGI,gBAAW,GAAU,EAAE,CAAC;IAE5B,CAAC;CAAA;AAEM,MAAM,eAAe;CAiB3B;;;;;;;;;;;;;ACjED;AAAA;AAAA;AAAA;AAAO,MAAM,YAAY;CAMxB;AAEM,MAAM,cAAe,SAAQ,YAAY;CAI/C;AAEM,MAAM,eAAe;CAK3B;;;;;;;;;;;;;ACnBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AACwB;AAEgC;AAC5D;AACmB;;;AAOnD,MAAM,yBAAyB;IAQpC,YAAoB,UAAuB;QAAvB,eAAU,GAAV,UAAU,CAAa;QAN3C,gBAAW,GAAG,qEAAW,CAAC,eAAe,CAAC;QAC1C,qBAAgB,GAAG,qEAAW,CAAC,iBAAiB,CAAC;QACjD,aAAQ,GAAG,KAAK,CAAC;QACjB,YAAO,GAAG,IAAI,oDAAe,CAAyB,IAAI,0FAAsB,EAAE,CAAC,CAAC;QACpF,2BAAsB,GAAG,IAAI,oDAAe,CAA2B,EAAE,CAAC,CAAC;QAC3E,cAAS,GAAG,uDAAe,CAAC,kBAAkB,CAAC;IACC,CAAC;IAE5C,qBAAqB,CAAC,eAAuB,EAAE,YAAoB,EAAE,eAAuB;QAC3F,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,qBAAqB,GAAG,eAAe,GAAG,gBAAgB,GAAG,YAAY,CAAC;QACtH,CAAE,mBAAmB,GAAG,eAAe,CAAC;QACxC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAgC,GAAG,CAAC,CAAC;IACvE,CAAC;IACM,sBAAsB,CAAC,eAAuB;QAC7C,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,qBAAqB,GAAC,eAAe,CAAC;QAClF,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAgC,GAAG,CAAC,CAAC;IACvE,CAAC;IAEO,wBAAwB,CAAC,sBAA0C;QACnE,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC;QACrE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAAC;IAC7D,CAAC;IAEG,sBAAsB,CAAC,sBAA0C;QACjE,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;QACnD,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAAC;IAC7D,CAAC;IAEO,oBAAoB,CAAC,sBAA0C;QACnE,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC;QACjE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAC,sBAAsB,CAAC,CAAC;IAC5D,CAAC;IAEO,wBAAwB,CAAC,wBAAgC;QAC7D,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,wBAAwB,CAAC;QAC9E,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;IAEM,yBAAyB,CAAC,eAAuB,EAAE,YAAoB,EAAE,eAAuB,EAAE,OAAe;QACpH,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,qBAAqB,GAAG,eAAe,CAAE;QACrF,IAAG,YAAY,GAAC,CAAC;YAAE,GAAG,GAAC,GAAG,GAAE,gBAAgB,GAAG,YAAY,CAAC;QAC5D,IAAG,eAAe,GAAC,CAAC;YAAC,GAAG,GAAC,GAAG,GAAE,mBAAmB,GAAG,eAAe,CAAC;;YAC/D,GAAG,GAAC,GAAG,GAAE,mBAAmB,CAAC;QAClC,IAAG,OAAO,GAAC,CAAC;YAAC,GAAG,GAAC,GAAG,GAAE,WAAW,GAAG,OAAO,CAAC;QAE5C,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAa,GAAG,CAAC,CAAC;IACpD,CAAC;IACM,cAAc;QACnB,IAAI,GAAG,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAG;QAClE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAa,GAAG,CAAC,CAAC;IAC9C,CAAC;IAEM,qBAAqB,CAAC,YAAoB;QAC/C,IAAI,GAAG,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAG;QACzE,IAAG,YAAY,GAAC,CAAC;YAAE,GAAG,GAAC,GAAG,GAAE,gBAAgB,GAAG,YAAY,CAAC;QAC5D,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAa,GAAG,CAAC,CAAC;IAC9C,CAAC;IACM,mBAAmB,CAAC,YAAoB,EAAE,OAAe;QAC9D,IAAI,GAAG,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAG;QACvE,IAAG,YAAY,GAAC,CAAC;YAAE,GAAG,GAAC,GAAG,GAAE,gBAAgB,GAAG,YAAY,CAAC;QAC5D,IAAG,OAAO,GAAC,CAAC;YAAC,GAAG,GAAC,GAAG,GAAE,WAAW,GAAG,OAAO,CAAC;QAE5C,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAa,GAAG,CAAC,CAAC;IAC9C,CAAC;IAEM,wCAAwC,CAAC,eAAuB,EAAE,YAAoB;QAC3F,IAAI,GAAG,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,uBAAuB,GAAG,eAAe,GAAG,gBAAgB,GAAG,YAAY,CAAC;QAC7H,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAa,GAAG,CAAC,CAAC;IAC9C,CAAC;IAEM,wBAAwB,CAAC,eAAsB,EAAC,YAAmB,EAAC,UAAiB;QAC1F,IAAI,GAAG,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,2BAA2B,GAAG,eAAe,GAAG,gBAAgB,GAAG,YAAY,GAAG,cAAc,GAAG,UAAU,CAAC;QAC/J,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAa,GAAG,CAAC,CAAC;IAC9C,CAAC;;kGA3EY,yBAAyB;4GAAzB,yBAAyB,WAAzB,yBAAyB,mBAFxB,MAAM;6FAEP,yBAAyB;cAHrC,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACXD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmD;AAKgB;AACT;;;AAOnD,MAAM,mBAAmB;IAG9B,YAAoB,KAAiB;QAAjB,UAAK,GAAL,KAAK,CAAY;QAAI,IAAI,CAAC,UAAU,GAAG,qEAAW,CAAC,eAAe,CAAC;QAAC,IAAI,CAAC,UAAU,GAAG,8DAAe,CAAC,YAAY,CAAC;IAAC,CAAC;IAClI,mBAAmB;QACxB,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QACvD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAe,GAAG,CAAC,CAAC;IAC3C,CAAC;IAEM,YAAY,CAAC,UAAkB;QACpC,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;QAC1D,IAAI,KAAK,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAU,IAAI,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC;IAEM,YAAY,CAAC,KAAiB;QACnC,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;QAC1D,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAU,IAAI,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC;IAEM,YAAY,CAAC,QAAgB;QAClC,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,QAAQ,CAAC;QACrE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAS,IAAI,EAAE,QAAQ,CAAC,CAAC;IACjD,CAAC;;sFAvBU,mBAAmB;sGAAnB,mBAAmB,WAAnB,mBAAmB,mBAHlB,MAAM;6FAGP,mBAAmB;cAJ/B,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACXD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AACwB;AAE5B;AAEmB;;;AAMnD,MAAM,gBAAgB;IAI3B,YAAoB,UAAuB;QAAvB,eAAU,GAAV,UAAU,CAAa;QAH3C,gBAAW,GAAG,qEAAW,CAAC,eAAe,CAAC;QAC1C,kBAAa,GAAG,IAAI,oDAAe,CAAkB,EAAE,CAAC,CAAC;QACzD,cAAS,GAAG,8DAAe,CAAC,SAAS,CAAC;IACU,CAAC;IAExC,qBAAqB,CAAC,eAAuB,EAAE,YAAoB,EAAE,KAAa,EAAE,UAAkB,EAAE,KAAK,GAAC,KAAK;QACtH,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,kBAAkB,GAAG,eAAe,GAAG,cAAc,GAAG,UAAU,CAAC;QAC9G,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAuB,GAAG,CAAC,CAAC;IAC3D,CAAC;;gFATQ,gBAAgB;mGAAhB,gBAAgB,WAAhB,gBAAgB,mBAFf,MAAM;6FAEP,gBAAgB;cAH5B,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACVD;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AACwB;AAET;;;AAUnD,MAAM,kBAAkB;IAG7B,YAAoB,UAAuB;QAAvB,eAAU,GAAV,UAAU,CAAa;QAF3C,gBAAW,GAAG,qEAAW,CAAC,oBAAoB,CAAC;QAC/C,cAAS,GAAG,8DAAe,CAAC,GAAG,CAAC;IACe,CAAC;IAEzC,oBAAoB,CAAC,UAAkB;QAC5C,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,oBAAoB,GAAE,cAAc,GAAE,UAAU,CAAC;QAC5F,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAA+B,GAAG,CAAC,CAAC;IACnE,CAAC;IAGM,WAAW,CAAC,YAAoB,EAAE,aAAsB,EAAE,QAAgB;QAC/E,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,GAAE,gBAAgB,GAAE,YAAY,GAAE,iBAAiB,GAAE,aAAa,GAAE,YAAY,GAAE,QAAQ,CAAE;QAClJ,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAa,GAAG,CAAC,CAAC;IAC/C,CAAC;;oFAdY,kBAAkB;qGAAlB,kBAAkB,WAAlB,kBAAkB,mBAFjB,MAAM;6FAEP,kBAAkB;cAH9B,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACZD;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AACwB;AAGT;;;AAOnD,MAAM,iBAAiB;IAG5B,YAAoB,KAAiB;QAAjB,UAAK,GAAL,KAAK,CAAY;QACnC,IAAI,CAAC,UAAU,GAAG,qEAAW,CAAC,eAAe,CAAC;QAC9C,IAAI,CAAC,UAAU,GAAG,8DAAe,CAAC,UAAU,CAAC;IAC/C,CAAC;IAEM,aAAa,CAAC,YAA0B;QAC7C,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QAC1D,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAC9C,CAAC;IAEQ,UAAU,CAAC,eAAuB,EAAE,YAAoB,EAAE,OAAe,EAAE,UAAkB,EAAE,KAAc;QAClH,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,eAAe,GAAG,gBAAgB,GAAG,YAAY;cACpG,WAAW,GAAG,OAAO,GAAG,cAAc,GAAG,UAAU,GAAG,SAAS,GAAG,KAAK,CAAC;QAC9E,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAsB,GAAG,CAAC,CAAC;IACpD,CAAC;;kFAjBY,iBAAiB;oGAAjB,iBAAiB,WAAjB,iBAAiB,mBAFhB,MAAM;6FAEP,iBAAiB;cAH7B,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACVD;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AAIwB;AACT;;;AAInD,MAAM,yBAAyB;IAGlC,YAAoB,KAAiB;QAAjB,UAAK,GAAL,KAAK,CAAY;QACnC,IAAI,CAAC,UAAU,GAAG,qEAAW,CAAC,eAAe,CAAC;QAC9C,IAAI,CAAC,UAAU,GAAG,8DAAe,CAAC,eAAe,CAAC;IACpD,CAAC;IAED,qBAAqB;QACjB,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC;QAC/D,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAA2B,GAAG,CAAC,CAAC;IACzD,CAAC;IAEM,wBAAwB,CAAC,iBAAyB;QACrD,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,GAAG,iBAAiB,CAAC;QACtF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;IACnD,CAAC;IAEM,wBAAwB,CAAC,eAAuB;QAEnD,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC;QAClE,IAAI,KAAK,GAAG,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC;QACjD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAU,GAAG,EAAE,KAAK,CAAC,CAAC;IAChD,CAAC;IAEM,wBAAwB,CAAC,sBAA8C;QAE1E,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC;QAClE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAU,GAAG,EAAE,sBAAsB,CAAC,CAAC;IAChE,CAAC;;kGA7BQ,yBAAyB;4GAAzB,yBAAyB,WAAzB,yBAAyB,mBAFZ,MAAM;6FAEnB,yBAAyB;cAFrC,wDAAU;eAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;;;;;;;;;;;;ACPlC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AACwB;AAE5B;AAEmB;;;AAMnD,MAAM,gBAAgB;IAK3B,YAAoB,UAAuB;QAAvB,eAAU,GAAV,UAAU,CAAa;QAJ3C,gBAAW,GAAG,qEAAW,CAAC,eAAe,CAAC;QAC1C,kBAAa,GAAG,IAAI,oDAAe,CAAkB,EAAE,CAAC,CAAC;QACzD,cAAS,GAAG,8DAAe,CAAC,SAAS,CAAC;QACtC,aAAQ,GAAG,8DAAe,CAAC,WAAW,CAAC;IACQ,CAAC;IAIlD,wFAAwF;IACxF,qGAAqG;IACrG,kEAAkE;IAClE,QAAQ;IAEG,gBAAgB,CAAC,eAAuB;QAC7C,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,GAAE,mBAAmB,GAAE,eAAe,CAAC;QAClG,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAuB,GAAG,CAAC,CAAC;IAC3D,CAAC;IAEI,iBAAiB,CAAC,eAAuB;QACxC,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,iBAAiB,GAAE,GAAG,GAAE,eAAe,CAAC;QAClF,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAuB,GAAG,CAAC,CAAC;IAC3D,CAAC;IAEG,iBAAiB,CAAC,eAAuB,EAAC,YAAoB;QAC5D,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,GAAE,GAAG,GAAE,eAAe,GAAC,GAAG,GAAE,YAAY,CAAC;QACvG,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAuB,GAAG,CAAC,CAAC;IAC9D,CAAC;IAEF,4FAA4F;IAC5F,uBAAuB;IACvB,wBAAwB;IACxB,YAAY;IACZ,8HAA8H;IAC9H,YAAY;IACZ,2GAA2G;IAC3G,kDAAkD;IAClD,QAAQ;IACD,eAAe,CAAC,eAAe,EAAC,SAAS,GAAC,IAAI;QACnD,IAAI,GAAG,GAAE,EAAE,CAAC;QACZ,IAAG,SAAS,EACZ;YACA,oHAAoH;YACpH,GAAG,GAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,0BAA0B;SAChE;QACD,mGAAmG;QACnG,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,EAAE,EAAC,YAAY,EAAE,MAAM,EAAC,CAAC,CAAC;IAC5E,CAAC;IAEO,QAAQ,CAAC,eAAuB,EAAE,YAAoB;QACtD,IAAI,GAAG,GAAE,EAAE,CAAC;QACZ,GAAG,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAE,GAAG,GAAE,eAAe,GAAE,GAAG,GAAG,YAAY,CAAC;QAC3F,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;IAEO,SAAS,CAAC,eAAuB,EAAE,YAAoB,EAAG,SAAS,GAAC,IAAI;QAC5E,IAAI,GAAG,GAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,GAAE,GAAG,GAAE,eAAe,GAAE,GAAG,GAAG,YAAY,GAAG,GAAG,GAAE,SAAS,CAAC;QAChH,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;IAEM,YAAY,CAAC,mBAAmB;QACrC,IAAI,GAAG,GAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;QACxD,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;IAC1D,CAAC;IAES,SAAS,CAAC,eAAuB;QACrC,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,GAAE,GAAG,GAAE,eAAe,CAAC;QAC5E,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;;gFApEO,gBAAgB;mGAAhB,gBAAgB,WAAhB,gBAAgB,mBAFf,MAAM;6FAEP,gBAAgB;cAH5B,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACTD;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AAEuB;AACP;;;AAKpD,MAAM,oBAAoB;IAK7B,YAAoB,KAAiB;QAAjB,UAAK,GAAL,KAAK,CAAY;QACnC,IAAI,CAAC,UAAU,GAAG,qEAAW,CAAC,eAAe,CAAC;QAC9C,IAAI,CAAC,UAAU,GAAG,uDAAe,CAAC,SAAS,CAAC;QAC5C,IAAI,CAAC,SAAS,GAAG,uDAAe,CAAC,WAAW,CAAC;QAC7C,IAAI,CAAC,YAAY,GAAG,uDAAe,CAAC,GAAG;IACzC,CAAC;IAEM,gBAAgB,CAAC,eAAgC;QACpD,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC;QAC7D,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IACjD,CAAC;IAEM,SAAS,CAAC,eAAgC;QAC7C,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QACtD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IACjD,CAAC;IAEM,oBAAoB,CAAC,EAAU;QAC9B,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAI,IAAI,CAAC,UAAU,CAAC,oBAAoB,GAAG,EAAE,CAAC;QACvE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAyB,GAAG,CAAC,CAAC;IAC3D,CAAC;IACO,SAAS,CAAC,eAAgC;QAC9C,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QACtD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IACjD,CAAC;IAEM,SAAS,CAAC,kBAA0B;QACvC,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,kBAAkB,CAAC;QAC3E,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAS,GAAG,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;IAEK,qBAAqB,CAAC,kBAA0B;QAClD,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,wBAAwB,GAAG,kBAAkB,CAAC;QAC1F,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAS,GAAG,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;IACD,8EAA8E;IAC9E,uFAAuF;IACvF,iDAAiD;IACjD,IAAI;IAEI,uBAAuB,CAAC,kBAA0B;QACtD,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,uBAAuB,GAAG,kBAAkB,CAAC;QACzF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAS,GAAG,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;IAEM,uBAAuB,CAAC,kBAA0B;QACrD,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,uBAAuB,GAAG,kBAAkB,CAAC;QACzF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAS,GAAG,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;IAEG,iBAAiB,CAAC,sBAA8B,EAAE,QAAgB;QAClE,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,sBAAsB,GAAG,YAAY,GAAC,QAAQ,CAAC;QAC/G,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAS,GAAG,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;IAEO,iBAAiB,CAAC,sBAA8B,EAAE,QAAgB;QACtE,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,sBAAsB,GAAG,YAAY,GAAC,QAAQ,CAAC;QAC/G,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAS,GAAG,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;IAEO,iBAAiB,CAAC,sBAA8B,EAAE,QAAgB;QACtE,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,sBAAsB,GAAG,YAAY,GAAC,QAAQ,CAAC;QAC/G,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAS,GAAG,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;IAEO,iBAAiB,CAAC,sBAA8B,EAAE,QAAgB;QACtE,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,sBAAsB,GAAI,YAAY,GAAC,QAAQ,CAAC;QAChH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAS,GAAG,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;IAEM,qBAAqB,CAAC,sBAA8B,EAAE,QAAgB;QACzE,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,GAAG,sBAAsB,GAAI,YAAY,GAAC,QAAQ,CAAC;QACpH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAS,GAAG,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;IAEU,qBAAqB,CAAC,sBAA8B,EAAE,QAAgB;QAC7E,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,GAAG,sBAAsB,GAAI,YAAY,GAAC,QAAQ,CAAC;QACpH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAS,GAAG,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;IAEU,mBAAmB,CAAC,sBAA8B,EAAE,QAAgB;QAC3E,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,mBAAmB,GAAG,sBAAsB,GAAI,YAAY,GAAC,QAAQ,CAAC;QAClH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAS,GAAG,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;IAEU,mBAAmB,CAAC,sBAA8B,EAAE,QAAgB;QAC3E,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,mBAAmB,GAAG,sBAAsB,GAAI,YAAY,GAAC,QAAQ,CAAC;QAClH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAS,GAAG,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;IAEO,WAAW,CAAC,kBAA0B;QAC1C,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,kBAAkB,CAAC;QAC7E,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAS,GAAG,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;IAEO,eAAe,CAAC,eAAuB,EAAE,eAAuB,EAAG,MAAc;QACrF,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,GAAG,eAAe,GAAG,mBAAmB,GAAG,eAAe,GAAI,UAAU,GAAG,MAAM,CAAC;QAC7I,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAEM,qCAAqC,CAAC,eAAsB,EAAE,UAAmB;QACpF,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,sBAAsB,GAAG,mBAAmB,GAAG,eAAe,GAAG,cAAc,GAAE,UAAU;QACtI,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IACM,WAAW,CAAC,MAAM;QACrB,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;QAClD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAC,EAAC,YAAY,EAAE,MAAM,EAAC,CAAC,CAAC;IAC/D,CAAC;IACM,YAAY,CAAC,OAAO;QACvB,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;QACrD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAC,EAAC,YAAY,EAAE,MAAM,EAAC,CAAC,CAAC;IAChE,CAAC;IACM,cAAc,CAAC,YAAY;QAC9B,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;QACrD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,EAAC,EAAC,YAAY,EAAE,MAAM,EAAC,CAAC,CAAC;IACrE,CAAC;IACM,gBAAgB,CAAC,UAAU;QAC9B,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;QACzD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,EAAC,EAAC,YAAY,EAAE,MAAM,EAAC,CAAC,CAAC;IACnE,CAAC;IACM,mBAAmB,CAAC,UAAU;QACjC,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;QACxD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,EAAC,EAAC,YAAY,EAAE,MAAM,EAAC,CAAC;IACjE,CAAC;IACM,eAAe,CAAC,UAAU;QAC9B,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;QACvD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,EAAC,EAAC,YAAY,EAAE,MAAM,EAAC,CAAC;IACjE,CAAC;IAEK,2BAA2B,CAAC,eAAsB,EAAE,UAAmB;QAC1E,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,2BAA2B,GAAG,mBAAmB,GAAG,eAAe,GAAG,cAAc,GAAE,UAAU;QAC3I,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IACM,uBAAuB,CAAC,OAAO;QAClC,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC;QACnE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAC,OAAO,EAAC,EAAC,YAAY,EAAE,MAAM,EAAC,CAAC,CAAC;IAC/D,CAAC;IAEM,uBAAuB,CAAC,OAAO;QAClC,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC;QACnE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAC,OAAO,EAAC,EAAC,YAAY,EAAE,MAAM,EAAC,CAAC,CAAC;IAC/D,CAAC;IAEM,SAAS,CAAC,OAAO;QACpB,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;QACrD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAC,OAAO,EAAC,EAAC,YAAY,EAAE,MAAM,EAAC,CAAC,CAAC;IAC/D,CAAC;IAEM,WAAW,CAAC,YAAY,EAAC,eAAe,EAAC,YAAY,EAAC,MAAM;QAC/D,MAAM,GAAG,GAAG,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY;QACpD,MAAM,GAAG,GAAG,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM;QACxC,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,GAAG,gBAAgB,GAAG,YAAY,GAAE,mBAAmB,GAAC,eAAe,GAAC,gBAAgB,GAAC,GAAG,GAAC,UAAU,GAAC,GAAG,CAAE;QACzK,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAC,EAAC,YAAY,EAAE,MAAM,EAAC,CAAC;IAErD,CAAC;;wFA/JQ,oBAAoB;uGAApB,oBAAoB,WAApB,oBAAoB,mBAFP,MAAM;6FAEnB,oBAAoB;cAFhC,wDAAU;eAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;;;;;;;;;;;;ACNlC;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AAGwB;AACT;;;AAOnD,MAAM,qBAAqB;IAIhC,YAAoB,KAAiB;QAAjB,UAAK,GAAL,KAAK,CAAY;QAAI,IAAI,CAAC,UAAU,GAAG,qEAAW,CAAC,eAAe,CAAC;QAAC,IAAI,CAAC,UAAU,GAAG,8DAAe,CAAC,WAAW,CAAC;IAAA,CAAC;IAEhI,WAAW;QAChB,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QACxD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAwB,GAAG,CAAC,CAAC;IACpD,CAAC;IACM,wBAAwB,CAAC,gBAAuB;QACrD,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,wBAAwB,GAAG,gBAAgB,CAAC;QACxF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAyB,GAAG,CAAC,CAAC;IACrD,CAAC;IAEM,cAAc,CAAC,KAAqB;QACzC,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;QAC5D,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAS,IAAI,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC;IACM,cAAc,CAAC,KAAqB;QACzC,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;QAC5D,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAS,IAAI,EAAE,KAAK,CAAC,CAAC;IAE7C,CAAC;IACM,cAAc,CAAC,gBAAwB;QAC7C,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,GAAG,gBAAgB,CAAC;QAC1E,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAS,IAAI,EAAE,IAAI,CAAC,CAAC;IACjD,CAAC;;0FA3BU,qBAAqB;wGAArB,qBAAqB,WAArB,qBAAqB,mBAFpB,MAAM;6FAEP,qBAAqB;cAHjC,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACXD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAkD;AAEH;AAC/C,8DAA8D;AACW;AAES;AAKZ;;;;;;;;;;;;;;;ICJlE,mEAAuE;;;IACvE,qEACA;;;IAD6B,0IAAa;;;;IAgB1C,0EACE;IAAA;IAAA,+EACE;IADQ,uWAAgC;IACxC;IAAA,mFACE;IAAA;IAAA,0EACE;IAAA;IAAA,0EACE;IADmB,kWAAgC;IACnD;IAAA,2EACE;IAAA;IAAA,0EAAoB;IAAA,wDAAgB;IAAA,4DAAK;IAC3C;IAAA,4DAAM;IACR;IAAA,4DAAM;IACR;IAAA,4DAAM;IACR;IAAA,4DAAmB;IACrB;IAAA,4DAAW;IACb;IAAA,4DAAM;;;IAN0B,2DAAgB;IAAhB,8EAAgB;;ADX7C,MAAM,mBAAmB;IAe7B,YAAoB,OAAe,EAC1B,YAAyB,EACzB,WAAwB,EACxB,aAA0B,EAC1B,OAA0B,EAC1B,YAAyB;QALd,YAAO,GAAP,OAAO,CAAQ;QAC1B,iBAAY,GAAZ,YAAY,CAAa;QACzB,gBAAW,GAAX,WAAW,CAAa;QACxB,kBAAa,GAAb,aAAa,CAAa;QAC1B,YAAO,GAAP,OAAO,CAAmB;QAC1B,iBAAY,GAAZ,YAAY,CAAa;QAnB5B,cAAS,GAAS,IAAI,uDAAI,EAAE,CAAC;QAEpC,YAAO,GAAG,IAAI,CAAC;QACf,UAAK,GAAU,EAAE,CAAC;QAElB,oBAAe,GAAG,KAAK,CAAC;QACxB,yBAAoB,GAAG,KAAK,CAAC;QAE7B,iBAAY,GAAG,KAAK,CAAC;QAErB,aAAQ,GAAG,EAAE,CAAC;QACd,mBAAc,GAAG,KAAK,CAAC;QACvB,iBAAY,GAAG,qEAAkC,CAAC,UAAU,CAAC;QAS3D,IAAI,CAAC,YAAY,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QAC5C,2DAA2D;QAC3D,iCAAiC;QACjC,wDAAwD;QACxD,OAAO;QACP,2EAA2E;QAC3E,IAAI;QACJ,wBAAwB;QACxB,0BAA0B;IAC5B,CAAC;IAED,QAAQ;QACN,yBAAyB;QACzB,uCAAuC;QACvC,kBAAkB;QAClB,IAAI;QACJ,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAED,mBAAmB;IACnB,wDAAwD;IACxD,wBAAwB;IACxB,qCAAqC;IACrC,QAAQ;IACR,IAAI;IACJ,oBAAoB;QAClB,cAAc,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;QAC5C,8EAA8E;QAC9E,YAAY;QACZ,wCAAwC;QACxC,8BAA8B;QAC9B,4BAA4B;QAC5B,yDAAyD;QACzD,MAAM;QAEN,IAAI,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QACpC,kBAAkB;QAClB,6CAA6C;QAC7C,IAAI;QACJ,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,YAAY,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC,SAAS,CACzD,CAAC,IAAS,EAAE,EAAE;YACZ,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YAClC,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;YACrC,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YAC5C,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAChD,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrC,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC;YACxD,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACrC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBACjD,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClD,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjD,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,SAAS,EAAE;oBACxC,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,EAAE,CAAC;iBAC9B;gBACD,IAAI,CAAC,SAAS,CAAC,QAAQ;oBACrB,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;aAC5D;YACD,cAAc,CAAC,iCAAiC,CAAC,GAAG,IAAI,CAAC,SAAS,CAChE,IAAI,CAAC,SAAS,CACf,CAAC;YACF,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC3C,cAAc,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YAC3C,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC3B,IAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAC;gBACjB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;oBACrB,IAAG,OAAO,IAAI,EAAE,EAAC;wBACf,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;qBACrD;gBACH,CAAC,CAAC,CAAC;aACJ;iBACG;gBACF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;aACtC;YACD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;YACR,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;QACxC,CAAC,CACF,CAAC;IAGJ,CAAC;IAED,UAAU,CAAC,QAAgB;QACzB,IAAI,QAAQ,IAAI,IAAI,IAAI,QAAQ,IAAI,SAAS,EAAE;YAC7C,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACnC,cAAc,CAAC,iCAAiC,CAAC,GAAG,IAAI,CAAC,SAAS,CAChE,IAAI,CAAC,SAAS,CACf,CAAC;YACF,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,KAAK,CACnC,cAAc,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAC9C;YACD,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBACzC,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE;oBACjC,MAAM,OAAO,GAAG;wBACd,cAAc,EAAE,OAAO,CAAC,YAAY;wBACpC,gBAAgB,EAAE,OAAO,CAAC,cAAc;qBACzC;oBACD,cAAc,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;iBAC/D;YACH,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;SAC9C;aAAM;YACL,OAAO;SACR;IACH,CAAC;IACD,mBAAmB,CAAC,KAAW;QAC7B,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC9B,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE;YACnC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;QAC7B,CAAC,EAAE,KAAK,CAAC,CAAC;QACV,IAAI,KAAK,EAAE;YACT,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC5B,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SACnC;QACD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC7B,CAAC;IAID,sBAAsB;QACpB,IAAI,CAAC,aAAa,CAAC,sBAAsB,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YAC1D,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC;YAC/B,cAAc,CAAC,qBAAqB,CAAC,GAAG,IAAI,CAAC,SAAS,CACpD,IAAI,CAAC,mBAAmB,CACzB,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;IAED,MAAM;QACJ,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,qEAAW,CAAC,SAAS,CAAC;IAC/C,CAAC;;sFA7JU,mBAAmB;mGAAnB,mBAAmB,gHAFnB,CAAC,iFAAkB,CAAC;QCjBjC,8EACE;QAAA;QAAA,yEACE;QAAA;QAAA,uEAAwB;QAAA,sEAAW;QAAA,4DAAI;QACzC;QAAA,4DAAM;QAEN;QAAA,qEAAiC;QACjC;QAAA,6EACE;QAAA;QAAA,6GAAmE;QACnE;QAAA,iHACA;QAAA;QACF;QAAA,4DAAS;QACT;QAAA,6EACE;QAAA;QAAA,4EAAU;QAAA,sEAAU;QAAA,4DAAW;QACjC;QAAA,4DAAS;QACX;QAAA,4DAAc;QACd;QAAA,qFACE;QAAA;QAAA,6EACE;QADoB,4IAAS,YAAQ,IAAC;QACtC;QAAA,4EAAU;QAAA,8EAAkB;QAAA,4DAAW;QACvC;QAAA,wEAAM;QAAA,oEAAQ;QAAA,4DAAO;QACvB;QAAA,4DAAS;QACX;QAAA,4DAAW;QACX;QAAA,0EACE;QAAA;QAAA,2EAEE;QAAA;QAAA,mHACE;QAYJ;QAAA,4DAAM;QACR;QAAA,4DAAM;QACN;QAAA,mFAMI;QAAA;QAAA,yEAAmB;QAAA,uEAAW;QAAA,4DAAI;QACtC;QAAA,4DAAc;;;QAvCP,2DAAyB;QAAzB,qFAAyB;QACvB,0DAAwB;QAAxB,oFAAwB;QAGmB,0DAAiC;QAAjC,kFAAiC;QAatD,2DAA0B;QAA1B,8EAA0B;QAkBxD,0DAAoB;QAApB,6EAAoB;;6FDvBR,mBAAmB;cAN/B,uDAAS;eAAC;gBACT,QAAQ,EAAE,iBAAiB;gBAC3B,WAAW,EAAE,8BAA8B;gBAC3C,SAAS,EAAE,CAAC,8BAA8B,CAAC;gBAC3C,SAAS,EAAE,CAAC,iFAAkB,CAAC;aAChC;;;;;;;;;;;;;;AElBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0D;AACc;;;;;AAYjE,MAAM,sBAAsB;IAEjC,YAAmB,SAA+C,EAChC,KAAc,EAAS,OAAe;QADrD,cAAS,GAAT,SAAS,CAAsC;QAChC,UAAK,GAAL,KAAK,CAAS;QAAS,YAAO,GAAP,OAAO,CAAQ;IAAI,CAAC;IAE3E,QAAQ;QACN,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAEH,QAAQ;QACN,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK;IACpC,CAAC;;4FAZU,sBAAsB,0MAGvB,wEAAe;sGAHd,sBAAsB;QCbnC,qFACI;QAAA,mGACJ;QAAA,4DAAqB;QACrB;QAAA,wFACI;QAAA;QAAA,4EAAwC;QAArB,8IAAS,cAAU,IAAC;QAAC,8DAAG;QAAA,4DAAS;QACpD;QAAA,4EAA6C;QAAA,6DAAE;QAAA,4DAAS;QAC1D;QAAA,4DAAqB;QACvB;;QAFuB,0DAAyB;QAAzB,kFAAyB;;6FDQnC,sBAAsB;cALlC,uDAAS;eAAC;gBACT,QAAQ,EAAE,oBAAoB;gBAC9B,WAAW,EAAE,iCAAiC;gBAC9C,SAAS,EAAE,CAAC,iCAAiC,CAAC;aAC/C;;sBAII,oDAAM;uBAAC,wEAAe;;;;;;;;;;;;;;AEhB3B;AAAA;AAAA;AAAkD;;AAO3C,MAAM,kBAAkB;IAE7B,gBAAgB,CAAC;IAEjB,QAAQ;IACR,CAAC;;oFALU,kBAAkB;kGAAlB,kBAAkB;QCP/B,oEAAG;QAAA,2EAAgB;QAAA,4DAAI;QACvB;;6FDMa,kBAAkB;cAL9B,uDAAS;eAAC;gBACT,QAAQ,EAAE,eAAe;gBACzB,WAAW,EAAE,4BAA4B;gBACzC,SAAS,EAAE,CAAC,4BAA4B,CAAC;aAC1C;;;;;;;;;;;;;;AEND;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAC4C;AACG;AAEL;AACe;AAOzD,gDAAgD;AACkC;;;;;;;;;;;;;;;;;;ICD5E,oFAAwF;;;IAAnC,yEAAa;;ADGxE,gFAAgF;AAQzE,MAAM,qBAAqB;IAyChC,YAAmB,UAAsB,EAAS,gBAAkC,EAAE,iBAAoC,EACxH,KAAmB,EACX,YAAyB,EACzB,YAAyB,EACzB,OAAe;QAJN,eAAU,GAAV,UAAU,CAAY;QAAS,qBAAgB,GAAhB,gBAAgB,CAAkB;QAE1E,iBAAY,GAAZ,YAAY,CAAa;QACzB,iBAAY,GAAZ,YAAY,CAAa;QACzB,YAAO,GAAP,OAAO,CAAQ;QA3CzB,UAAK,GAAG,EAAE,CAAC;QACX,mBAAc,GAAG,KAAK,CAAC;QAKvB,eAAU,GAAG,IAAI,CAAC;QAClB,gBAAW,GAAY,KAAK,CAAC;QAC7B,cAAS,GAAG,KAAK,CAAC;QAClB,mBAAc,GAAY,KAAK,CAAC;QAChC,WAAM,GAAa,EAAE,CAAC;QACtB,WAAM,GAAY,IAAI,CAAC;QAEvB,mBAAc,GAAG,KAAK,CAAC;QAEvB,iBAAY,GAAG,qEAAkC,CAAC,UAAU,CAAC;QAC7D,iBAAY,GAAG,EAAE,CAAC;QAClB,gBAAW,GAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAkBrC,YAAO,GAAG,8DAAO,CAAC;QAClB,aAAQ,GAAG,kDAAQ,CAAC;QACpB,eAAU,GAAE,wDAAW,CAAC,oBAAoB,CAAC;QAO3C,+BAA+B;QACjC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;QACrC,MAAM,CAAC,QAAQ,GAAG,GAAG,EAAE;YACrB,wCAAwC;YACxC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;QAEvC,CAAC,CAAC;QAEF,IAAI,CAAC,YAAY,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;QACxD,IAAI,CAAC,kBAAkB,GAAG,GAAG,EAAE,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;QAClE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACpD,wBAAwB;QACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;QAC1C,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvC,GAAG;IAGL,CAAC;IA5CD,UAAU;QACR,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;IACH,CAAC;IAED,UAAU;QACR,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;IACH,CAAC;IAoCD,eAAe;QACb,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAG3C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,KAAK,CAAC;QACjF,MAAM,IAAI,GAAU,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE1C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACnB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;SAC5B;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CACxB,cAAc,CAAC,iCAAiC,CAAC,CAClD,CAAC,QAAQ,CAAC;QACX,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC;YAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QACvD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CACxB,cAAc,CAAC,iCAAiC,CAAC,CAClD,CAAC,QAAQ,CAAC;QACX,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE,IAAI,IAAI,CAAC,QAAQ,IAAI,SAAS,EAAE;YACrD,cAAc,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;YAC5C,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CACvD,CAAC,GAAQ,EAAE,EAAE;gBACX,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;gBACvB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;YAC/C,CAAC,EACD,KAAK,CAAC,EAAE,GAAE,CAAC,CACZ,CAAC;SACH;IAEH,CAAC;IAID,WAAW;QACT,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACzD,CAAC;IAID,mBAAmB,CAAC,KAAW;QAC7B,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC9B,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE;YACnC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;QAC7B,CAAC,EAAE,KAAK,CAAC,CAAC;QACV,IAAI,KAAK,EAAE;YACT,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SAC7B;QACD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC7B,CAAC;IACD,MAAM;QACJ,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK;YAC7B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;;YAC/B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACnC,CAAC;;0FAvHU,qBAAqB;qGAArB,qBAAqB;;;;;;QCvBlC,wFACE;QAAA;QAAA,4EAA6D;QAC7D;QAAA,4EAAqC;QACrC;QAAA,oFAEE;QAAA;QAAA,yEACE;QAAA;QAAA,sEAAI;QAAA,qEAAG;QAAA,gEAAI;QAAA,4DAAI;QAAA,4DAAK;QACpB;QAAA,6EACE;QADgC,8IAAS,uBAAmB,IAAC;QAC7D;QAAA,qEACF;QAAA;QAAA,4DAAS;QACX;QAAA,4DAAM;QACN;QAAA,gFACE;QAAA;QAAA,iJAAmE;QACrE;QAAA,4DAAe;QACjB;QAAA,4DAAc;QACd;QAAA,4EAA+B;QAC/B;QAAA,qEAAkB;QAClB;QAAA,2EAA2B;QAAA,wDAA8E;QAAA,4DAAO;QAClH;QAAA,4DAAwB;QACxB;;QAhB0B,0DAA4B;QAA5B,yFAA4B;QAS5B,2DAAgC;QAAhC,oFAAgC;QAK7B,0DAA8E;QAA9E,6JAA8E;;6FDM9F,qBAAqB;cANjC,uDAAS;eAAC;gBACT,QAAQ,EAAE,mBAAmB;gBAC7B,WAAW,EAAE,gCAAgC;gBAC7C,SAAS,EAAE,CAAC,gCAAgC,CAAC;gBAC7C,aAAa,EAAE,+DAAiB,CAAC,IAAI;aACtC;ilBAqCyB,SAAS;kBAAhC,uDAAS;mBAAC,WAAW;;;;;;;;;;;;;;AE3DxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAoE;AAEW;AAG3B;AACnB;;;;;;;;;;ICI/B,0EACE;IAAA;IAAA,qEAAoB;IACpB;IAAA,2EACE;IAAA,oFACF;IAAA,4DAAW;IACb;IAAA,4DAAO;;;IAHK,0DAAuD;IAAvD,wHAAuD;;;IAMnE,wFACA;IAAA;IAAA,4DAAqB;;;;IADqE,0EAAc;;;IAD1G,sEACE;IAAA;IAAA,sJACA;;IACF;IAAA,4DAAM;;;IAFgB,0DAAqE;IAArE,mLAAqE;;;;ADPpF,MAAM,WAAW;IACvB,SAAS,CAAC,KAAU,EAAE,MAAc,EAAE,KAAK;QAC3C,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,kCAAkC;QAE1E,OAAO,sDAAO,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAC7C,CAAC;;sEALU,WAAW;wGAAX,WAAW;6FAAX,WAAW;cAHvB,kDAAI;eAAC;gBACL,IAAI,EAAE,SAAS;aACf;;AAuBM,MAAM,qBAAqB;IAMhC,YAAmB,UAAsB,EACtB,MAAc;QADd,eAAU,GAAV,UAAU,CAAY;QACtB,WAAM,GAAN,MAAM,CAAQ;QANjC,aAAQ,GAAU,KAAK,CAAC;QACW,iBAAY,GAAG,IAAI,CAAC,QAAQ,CAAC;QAS9D,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;YAC5B,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;SAChB;IACH,CAAC;IAED,QAAQ;QAEN,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,GAAW,EAAE,EAAE;YACnD,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,GAAG,EAAE;gBAC1B,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC;gBACzD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC;aACnC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,cAAc,CAAC,IAAS;QACtB,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YAC/C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SACnC;QACD,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YAC7C,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;SAChC;IACH,CAAC;;0FAjCU,qBAAqB;qGAArB,qBAAqB;;;QC/BlC;QAAA,uEAGE;QAHiE,wIAAS,4BAAoB,IAAC;QAG/F;QACA;QAAA,0EAAmB;QAAA,+DAA+B;QAAA,4DAAO;QAEzD;QACA,uDACA;QAAA,mHACE;QAKJ;QAAA,4DAAI;QACJ;QAAA,mHACE;QAMF;;QAtBiB,0DAAiD;QAAjD,iKAAiD;QAI1C,0DAAuB;QAAvB,wEAAuB;QAG7C,0DACA;QADA,gGACA;QAAa,0DAAiD;QAAjD,mHAAiD;QAO3D,0DAAgB;QAAhB,8EAAgB;qnBDgBR,qBAAqB,WAtBrB,WAAW,or3yBAYV;YACV,mEAAO,CAAC,iBAAiB,EAAE;gBACzB,iEAAK,CAAC,WAAW,EAAE,iEAAK,CAAC,EAAC,SAAS,EAAE,cAAc,EAAC,CAAC,CAAC;gBACtD,iEAAK,CAAC,UAAU,EAAE,iEAAK,CAAC,EAAC,SAAS,EAAE,gBAAgB,EAAC,CAAC,CAAC;gBACvD,sEAAU,CAAC,wBAAwB,EACjC,mEAAO,CAAC,mCAAmC,CAAC,CAC7C;aACF,CAAC;SACH;6FAEU,qBAAqB;cAdjC,uDAAS;eAAC;gBACT,QAAQ,EAAE,oBAAoB;gBAC9B,WAAW,EAAE,iCAAiC;gBAC9C,SAAS,EAAE,CAAC,iCAAiC,CAAC;gBAC9C,UAAU,EAAE;oBACV,mEAAO,CAAC,iBAAiB,EAAE;wBACzB,iEAAK,CAAC,WAAW,EAAE,iEAAK,CAAC,EAAC,SAAS,EAAE,cAAc,EAAC,CAAC,CAAC;wBACtD,iEAAK,CAAC,UAAU,EAAE,iEAAK,CAAC,EAAC,SAAS,EAAE,gBAAgB,EAAC,CAAC,CAAC;wBACvD,sEAAU,CAAC,wBAAwB,EACjC,mEAAO,CAAC,mCAAmC,CAAC,CAC7C;qBACF,CAAC;iBACH;aACF;kLAGoC,YAAY;kBAA9C,yDAAW;mBAAC,oBAAoB;YACxB,IAAI;kBAAZ,mDAAK;YACG,KAAK;kBAAb,mDAAK;;;;;;;;;;;;;;AErCR;AAAA;AAAA;AAAkD;;AAO3C,MAAM,gBAAgB;IAE3B,gBAAgB,CAAC;IAEjB,QAAQ;IACR,CAAC;;gFALU,gBAAgB;gGAAhB,gBAAgB;QCP7B,yEACI;QAAA;QAAA,yEACI;QAAA;QAAA,oEAAgC;QAChC;QAAA,qEAAI;QAAA,8DAAG;QAAA,4DAAK;QACZ;QAAA,qEAAI;QAAA,qGAAyC;QAAA,4DAAK;QACtD;QAAA,4DAAM;QACV;QAAA,4DAAM;QACN;;6FDAa,gBAAgB;cAL5B,uDAAS;eAAC;gBACT,QAAQ,EAAE,aAAa;gBACvB,WAAW,EAAE,0BAA0B;gBACvC,SAAS,EAAE,CAAC,0BAA0B,CAAC;aACxC;;;;;;;;;;;;;;AEND;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0D;AACe;AAEP;AACjC;;;;;;;IC6BjB,qEACE;IAAA;IAAA,qEAAI;IAAA,yEAAQ;IAAA,0EAAe;IAAA,4DAAS;IAAA,4DAAK;IACzC;IAAA,qEAAI;IAAA,uDAAiC;IAAA,4DAAK;IAC5C;IAAA,4DAAK;;;IADC,0DAAiC;IAAjC,qGAAiC;;;IAMvC,qEACI;IAAA;IAAA,qEAAI;IAAA,yEAAQ;IAAA,oEAAS;IAAA,4DAAS;IAAA,4DAAK;IACnC;IAAA,qEAAI;IAAA,uDAAuB;IAAA,4DAAK;IAClC;IAAA,4DAAK;;;IADC,0DAAuB;IAAvB,2FAAuB;;AD/BxC,MAAM,sBAAsB;IAEjC,YAAmB,SAA+C,EAChC,IAAS,EAAS,QAA2B;QAD5D,cAAS,GAAT,SAAS,CAAsC;QAChC,SAAI,GAAJ,IAAI,CAAK;QAAS,aAAQ,GAAR,QAAQ,CAAmB;QAE/E,eAAU,GAAU,IAAI,CAAC,KAAK,CAC5B,cAAc,CAAC,+BAA+B,CAC/C,CAAC,UAAU,CAAC;QAEb,mBAAc,GAAG,IAAI,wEAAO,EAAE,CAAC;IANoD,CAAC;IAQpF,QAAQ;QACN,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,GAAW,EAAC,EAAE;YACtE,IAAI,CAAC,cAAc,CAAC,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC;YACpD,IAAI,CAAC,cAAc,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;YAClD,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;YACtC,IAAI,CAAC,cAAc,CAAC,UAAU,GAAG,mCAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAC7E,IAAI,CAAC,cAAc,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU;YAC/C,IAAI,CAAC,cAAc,CAAC,gBAAgB,GAAG,GAAG,CAAC,gBAAgB,CAAC;YAC5D,IAAI,CAAC,cAAc,CAAC,cAAc,GAAG,GAAG,CAAC,cAAc,CAAC;YACxD,IAAI,CAAC,cAAc,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;YACpC,IAAI,CAAC,cAAc,CAAC,YAAY,GAAC,GAAG,CAAC,YAAY,CAAC;QACpD,CAAC,EACD,CAAC,KAAK,EAAC,EAAE;QAET,CAAC,CAAC;IACJ,CAAC;IAED,YAAY;QACV,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;;4FAlCU,sBAAsB,0MAGvB,wEAAe;sGAHd,sBAAsB;QCXnC;QAAA,wEAAuC;QAAA,uFACnC;QAAA,8EAAqD;QAAzB,gJAAS,kBAAc,IAAC;QAAC,gEAAK;QAAA,4DAAW;QACzE;QAAA,4DAAK;QACL;QAAA,qFACI;QAAA;QAAA,yEACI;QAAA;QAAA,0EACI;QAAA;QAAA,qEACA;QAAA;QAAA,wEACE;QAAA;QAAA,qEACA;QAAA;QAAA,2EAA8B;QAAA,0EAAS;QAAA,yEAAa;QAAA,4DAAS;QAAC,wDAAoC;QAAA,4DAAO;QAAA,4DAAI;QACnH;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,yEACI;QAAA;QAAA,4EACI;QAAA;QAAA,qEACF;QAAA;QAAA,4DAAW;QACb;QAAA,sEACE;QAAA;QAAA,sEAAI;QAAA,0EAAQ;QAAA,gEAAI;QAAA,4DAAS;QAAA,4DAAK;QAC9B;QAAA,sEAAI;QAAA,wDAA+B;QAAA,4DAAK;QAC1C;QAAA,4DAAK;QACL;QAAA,sEACE;QAAA;QAAA,sEAAI;QAAA,0EAAQ;QAAA,uEAAW;QAAA,4DAAS;QAAA,4DAAK;QACrC;QAAA,sEAAI;QAAA,wDAA8B;QAAA,4DAAK;QACzC;QAAA,4DAAK;QACL;QAAA,sEACE;QAAA;QAAA,sEAAI;QAAA,0EAAQ;QAAA,iEAAK;QAAA,4DAAS;QAAA,4DAAK;QAC/B;QAAA,sEAAI;QAAA,wDAAwB;QAAA,4DAAK;QACnC;QAAA,4DAAK;QACL;QAAA,sEACE;QAAA;QAAA,sEAAI;QAAA,0EAAQ;QAAA,2EAAe;QAAA,4DAAS;QAAA,4DAAK;QACzC;QAAA,sEAAI;QAAA,wDAA6B;QAAA,4DAAK;QACxC;QAAA,4DAAK;QACL;QAAA,mHACE;QAGF;QAAA,sEACE;QAAA;QAAA,sEAAI;QAAA,0EAAQ;QAAA,6EAAiB;QAAA,4DAAS;QAAA,4DAAK;QAC3C;QAAA,sEAAI;QAAA,wDAAmC;QAAA,4DAAK;QAC9C;QAAA,4DAAK;QACL;QAAA,mHACI;QAGR;QAAA,4DAAQ;QACZ;QAAA,4DAAM;QAEV;QAAA,4DAAM;QACV;QAAA,4DAAqB;QACrB;;QAxC4E,2DAAoC;QAApC,+GAAoC;QAS1F,2DAA+B;QAA/B,gGAA+B;QAI/B,2DAA8B;QAA9B,+FAA8B;QAI9B,2DAAwB;QAAxB,yFAAwB;QAIxB,2DAA6B;QAA7B,8FAA6B;QAE/B,0DAAsC;QAAtC,sGAAsC;QAMpC,0DAAmC;QAAnC,oGAAmC;QAErC,0DAAsC;QAAtC,sGAAsC;;6FD7B7C,sBAAsB;cALlC,uDAAS;eAAC;gBACT,QAAQ,EAAE,oBAAoB;gBAC9B,WAAW,EAAE,iCAAiC;gBAC9C,SAAS,EAAE,CAAC,iCAAiC,CAAC;aAC/C;;sBAII,oDAAM;uBAAC,wEAAe;;;;;;;;;;;;;;AEf3B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAKuB;AAQ2D;AACpC;AAIsC;AACd;;;;;;;;;;;;;;;;;;;;;;ICjBhE,0EACA;IAAA;IAAA,wEAAwB;IAAA,+DAAI;IAAA,4DAAI;IAChC;IAAA,6EACI;IAD8B,6RAAS,0BAAmB,IAAC;IAC3D;IAAA,qEACJ;IAAA;IAAA,4DAAS;IACb;IAAA,4DAAM;;;IAUA,+EAAkE;IAAA,iEAAM;IAAA,4DAAW;;;;IAEnF,6EAEA;IADmB,wTAAsB;IACzC;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC1B;IAAA,4DAAS;;;ADIV,MAAM,eAAe;IAY1B,YACS,UAAsB,EACrB,kBAAuC,EAC/C,iBAAoC,EACpC,KAAmB,EACX,YAAyB,EACzB,YAAyB,EACzB,OAAe,EAChB,gBAAkC,EACjC,WAAyB,EAC1B,MAAiB;QATjB,eAAU,GAAV,UAAU,CAAY;QACrB,uBAAkB,GAAlB,kBAAkB,CAAqB;QAGvC,iBAAY,GAAZ,YAAY,CAAa;QACzB,iBAAY,GAAZ,YAAY,CAAa;QACzB,YAAO,GAAP,OAAO,CAAQ;QAChB,qBAAgB,GAAhB,gBAAgB,CAAkB;QACjC,gBAAW,GAAX,WAAW,CAAc;QAC1B,WAAM,GAAN,MAAM,CAAW;QArB1B,cAAS,GAAW,EAAE,CAAC;QACvB,cAAS,GAAY,KAAK,CAAC;QAC3B,gBAAW,GAAY,KAAK,CAAC;QAC7B,gBAAW,GAAW,EAAE,CAAC;QACzB,qBAAgB,GAAG,2DAAW,CAAC,oBAAoB,CAAC;QAGpD,iBAAY,GAAG,qEAAkC,CAAC,UAAU,CAAC;QAkB3D,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,EAAE;YAC9D,IAAI,YAAY,IAAI,EAAE,EAAE;gBACtB,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC;aACjC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,QAAQ,GAAG,GAAG,EAAE;YACrB,wCAAwC;YACxC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;gBAClD,IAAI,CAAC;gBACL,IAAI,IAAI,IAAI,MAAM,CAAC,UAAU,GAAG,GAAG,EAAE;oBACnC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;iBAC1B;qBAAM,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,UAAU,GAAG,GAAG,EAAE;oBAC3C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;iBACzB;qBAAM;oBACL,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;iBACzB;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YAClD,IAAI,CAAC;YACL,IAAI,IAAI,IAAI,MAAM,CAAC,UAAU,GAAG,GAAG,EAAE;gBACnC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;aAC1B;iBAAM,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,UAAU,GAAG,GAAG,EAAE;gBAC3C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;aACzB;iBAAM;gBACL,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;aACzB;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,SAAS,CAC9C,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC,CACpD,CAAC;IACJ,CAAC;IAED,QAAQ;QACN,IAAI,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,IAAI,IAAI,EAAE;YACrE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CACjC,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAC1D,CAAC,QAAQ,CAAC;YACX,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC;SAC/D;QACD,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;YACvD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAE/D,CAAC;IACD,UAAU,CAAC,CAAC;QACV,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,EAAE;YACtB,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;SACzC;aAAM;YACL,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SAC1C;IACH,CAAC;IAED,UAAU;QACR,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IACpC,CAAC;IAGD,MAAM;QACJ,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,qEAAW,CAAC,SAAS,CAAC;IAC/C,CAAC;IAED,WAAW,CAAC,MAAM;QAChB,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;IACD,UAAU;QACR,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+FAAsB,EAAE;YACvC,MAAM,EAAC,OAAO;YACd,KAAK,EAAC,OAAO;YACb,YAAY,EAAE,IAAI;SACnB,CAAC,CAAC;IACL,CAAC;;8EA3GU,eAAe;+FAAf,eAAe;QC1B5B,yEACE;QAAA;QAAA,8EACI;QAAA;QAAA,4GACA;QAMF;QAAA,yEACF;QAAA;QAAA,wEAA8C;QAAA,uDAAa;QAAA,4DAAK;QAChE;QAAA,4DAAM;QACF;QACD;QAAA,0EACC;QAAA;QAAA,0EACA;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,kEAAM;QAAA,4DAAY;QAC7B;QAAA,uHAAkE;QAClE;QAAA,+EACA;QADgB,yLAAyB,qFAAW,uBAAmB,IAA9B;QAAzC,4DACA;QAAA;QAAA,oHAEA;QAEF;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACR;QAAA,4DAAM;QACH;QAAA,2EACC;QAAA;QACE;QACA;QAAA,4EACE;QAAA,0FACF;QAAA,4DAAO;QAEL;QACI;QACF;QAAA,4EACE;QAAA,wDACF;QAAA,4DAAO;QAET;QACN;QAGE;QAAA,8EACE;QAAA;QAAA,4EAAU;QAAA,sEAAU;QAAA,4DAAW;QACjC;QAAA,4DAAS;QACX;QAAA,4DAAM;QAER;QAAA,4DAAc;QACd;QAAA,4DAAM;QAEN;QAAA,sFACE;QAAA;QACC;QAIC;QAAA,8EACE;QADoB,wIAAS,uBAAmB,IAAC;QACjD;QAAA,4EAAU;QAAA,kEAAM;QAAA,4DAAW;QAC3B;QAAA,wEAAO;QAAA,oEAAO;QAAA,4DAAO;QACvB;QAAA,4DAAS;QAET;QAKA;QAAA,8EACE;QADqB,wIAAS,gBAAY,IAAC;QAC3C;QAAA,4EAAU;QAAA,mEAAO;QAAA,4DAAW;QAC5B;QAAA,wEAAO;QAAA,wEAAW;QAAA,4DAAO;QAC3B;QAAA,4DAAS;QAGT;QAAA,8EACE;QADoB,wIAAS,YAAQ,IAAC;QACtC;QAAA,4EAAU;QAAA,8EAAkB;QAAA,4DAAW;QACvC;QAAA,wEAAM;QAAA,oEAAQ;QAAA,4DAAO;QACvB;QAAA,4DAAS;QACX;QAAA,4DAAW;;;QA3EJ,0DAAmB;QAAnB,iFAAmB;QAQxB,0DAAyC;QAAzC,4JAAyC;QAAC,0DAAa;QAAb,8EAAa;QAKvC,0DAA+B;QAA/B,uGAA+B;QAEX,0DAAoB;QAApB,kFAAoB;QACtC,0DAAyB;QAAzB,oFAAyB;QACC,0DAAmB;QAAnB,iFAAmB;QAiBvD,2DACF;QADE,6HACF;QAM6C,0DAAiC;QAAjC,kFAAiC;QAwBtC,2DAAoB;QAApB,iFAAoB;;6FDzC3D,eAAe;cAL3B,uDAAS;eAAC;gBACT,QAAQ,EAAE,aAAa;gBACvB,WAAW,EAAE,0BAA0B;gBACvC,SAAS,EAAE,CAAC,0BAA0B,CAAC;aACxC;;;;;;;;;;;;;;AExBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AAOd;AACkB;AAEM;AACuB;;;AAIrE,MAAM,qBAAqB;IAGhC,YAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAE,CAAC;IACtC,SAAS,CAAC,OAAyB,EAAE,IAAiB;QACnD,IAAI,CAAC,QAAQ,GAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC;QAC9D,IAAK,cAAc,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE;YAClC,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC;gBACpB,UAAU,EAAE;oBACV,aAAa,EAAE,UAAU,cAAc,CAAC,OAAO,CAAC,EAAE;oBAChD,QAAQ,EAAC,IAAI,CAAC,QAAQ,IAAE,SAAS,IAAG,IAAI,CAAC,QAAQ,IAAE,IAAI,EAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAC,GAAE;iBAC9F;aACF,CAAC,CAAC;SACR;QAEJ,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;aAC1B,IAAI,CACD,0DAAG,CAAC,KAAK,CAAC,EAAE;YACV,IAAI,KAAK,YAAY,iEAAY,EAAE;aAElC;QACH,CAAC,EAAE,KAAK,CAAC,EAAE;YAEJ,IAAI,KAAK,CAAC,MAAM,IAAI,GAAG,EAAE;gBACvB,cAAc,CAAC,KAAK,EAAE,CAAC;gBACvB,IAAG,qEAAkC,CAAC,UAAU,IAAI,IAAI,EAAC;oBACnD,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,qEAAkC,CAAC,SAAS,CAAC;iBACzE;;oBAEC,qCAAqC;oBAErC,OAAO,0CAAK,CAAC;aACf;iBACG;gBACD,OAAO,uDAAU,CAAC,KAAK,CAAC,CAAC;aAC5B;QAER,CAAC,CAAC,CACH;IAEJ,CAAC;IAAA,CAAC;;0FAxCO,qBAAqB;wGAArB,qBAAqB,WAArB,qBAAqB;6FAArB,qBAAqB;cAFjC,wDAAU;;;;;;;;;;;;;;ACdX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAyC;AACM;AAC0B;AACiC;AACf;AACY;AAC/C;AACI;AACoB;AACN;AAIW;AACxC;AACiD;AACA;AAC/C;;AAkBxC,MAAM,kBAAkB;;iGAAlB,kBAAkB;8JAAlB,kBAAkB,kBAZpB;YACP,4DAAY;YACf,0EAAmB;YAChB,kHAAwB;YACxB,qEAAgB;YAChB,2DAAW;YACX,6DAAgB;SACjB;mIAKU,kBAAkB,mBAbd,+FAAW,EAAE,qFAAe,EAAE,yGAAqB,EAAE,uGAAqB,EAAE,4FAAkB,EAAE,sFAAgB,EAAE,kGAAmB,EAAE,2GAAsB,EAAE,2GAAsB,aAElM,4DAAY;QACf,0EAAmB;QAChB,kHAAwB;QACxB,qEAAgB;QAChB,2DAAW;QACX,6DAAgB,aAGhB,uGAAqB,EAAC,qFAAe,EAAC,yGAAqB,EAAC,2GAAsB;6FAGzE,kBAAkB;cAd9B,sDAAQ;eAAC;gBACR,YAAY,EAAE,CAAC,+FAAW,EAAE,qFAAe,EAAE,yGAAqB,EAAE,uGAAqB,EAAE,4FAAkB,EAAE,sFAAgB,EAAE,kGAAmB,EAAE,2GAAsB,EAAE,2GAAsB,CAAC;gBACrM,OAAO,EAAE;oBACP,4DAAY;oBACf,0EAAmB;oBAChB,kHAAwB;oBACxB,qEAAgB;oBAChB,2DAAW;oBACX,6DAAgB;iBACjB;gBACD,OAAO,EAAC;oBACN,uGAAqB,EAAC,qFAAe,EAAC,yGAAqB,EAAC,2GAAsB;iBACnF;aACF;;;;;;;;;;;;;;AClCD;AAAA;AAAA;AAAA;AAAyC;AACc;;;AAEvD,MAAM,MAAM,GAAW,EAAE,CAAC;AAMnB,MAAM,mBAAmB;;kGAAnB,mBAAmB;gKAAnB,mBAAmB,kBAHrB,CAAC,4DAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAC9B,4DAAY;mIAEX,mBAAmB,uFAFpB,4DAAY;6FAEX,mBAAmB;cAJ/B,sDAAQ;eAAC;gBACR,OAAO,EAAE,CAAC,4DAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACxC,OAAO,EAAE,CAAC,4DAAY,CAAC;aACxB;;;;;;;;;;;;;;ACND;AAAA;AAAO,MAAM,QAAQ,GAAc;IACnC,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE;YACzE,EAAE,WAAW,EAAE,mBAAmB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,gBAAgB,EAAE;YACzF,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,kBAAkB,EAAE;YACtF,EAAE,WAAW,EAAE,sBAAsB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,yBAAyB,EAAE;YACrG,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,eAAe,EAAE;YAC9E,EAAE,WAAW,EAAE,iBAAiB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,sBAAsB,EAAE;YAC7F,EAAE,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,kBAAkB,EAAE;YACrF,EAAE,WAAW,EAAE,iBAAiB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,sBAAsB,EAAE;YAC7F,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,mBAAmB,EAAE;YACvF,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,cAAc,EAAE;YAC5E,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,aAAa,EAAE;YAC3E,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,gBAAgB,EAAE;YAChF,EAAE,WAAW,EAAE,wBAAwB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,2BAA2B,EAAE;YACzG,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,mBAAmB,EAAE;YACvF,EAAE,WAAW,EAAE,kBAAkB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,sBAAsB,EAAE;YAC9F,EAAE,WAAW,EAAE,4BAA4B,EAAE,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,iCAAiC,EAAE;YACnH,EAAE,WAAW,EAAE,oBAAoB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,wBAAwB,EAAE;YAClG,EAAE,WAAW,EAAE,eAAe,EAAE,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,oBAAoB,EAAE;YACzF,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,mBAAmB,EAAE;YACvF,EAAE,WAAW,EAAE,mBAAmB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,wBAAwB,EAAE;YACjG,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,gBAAgB,EAAE;YAClF,EAAE,WAAW,EAAE,kBAAkB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,eAAe,EAAE;YACvF,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,kBAAkB,EAAE;YACpF,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,cAAc,EAAE;YAC5E,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,iBAAiB,EAAE;YAClF,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,kBAAkB,EAAE;YACpF,EAAE,WAAW,EAAE,wBAAwB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,sBAAsB,EAAE;YACpG,EAAE,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,mBAAmB,EAAE;YACtF,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,sBAAsB,EAAE;SACrF;KACE;IACD,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE;IACzD,EAAE,WAAW,EAAE,gBAAgB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,KAAK,EAAE,eAAe,EAAE;IACzF,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,YAAY,EAAE;IAC9E,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,WAAW,EAAE;IAC3E,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE;IAClE;QACE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE;YAC/D,EAAE,WAAW,EAAE,uBAAuB,EAAE,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,wBAAwB,EAAE;YACpG,EAAE,WAAW,EAAE,mBAAmB,EAAE,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,wBAAwB,EAAE;YAChG,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,kBAAkB,EAAE;YAC/E,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,iBAAiB,EAAE;YAC9E,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,oBAAoB,EAAE;YACjF,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,eAAe,EAAE;YAC3E,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE;SAC3E;KACF;IACD,EAAE,WAAW,EAAE,iBAAiB,EAAE,QAAQ,EAAE,qBAAqB,EAAE,KAAK,EAAE,gBAAgB,EAAE;IAC5F,EAAE,WAAW,EAAE,wBAAwB,EAAE,QAAQ,EAAE,4BAA4B,EAAE,KAAK,EAAE,uBAAuB,EAAE;IACjH,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE;IACrE,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE;IAClE,EAAE,WAAW,EAAE,mBAAmB,EAAE,QAAQ,EAAE,uBAAuB,EAAE,KAAK,EAAE,kBAAkB,EAAE;CAEnG,CAAC;;;;;;;;;;;;;AC1BA;AAAA;AAAA;AAAA;AAAA;AAAO,MAAM,IAAI;CAGhB;AAEM,MAAM,KAAK;CAcjB;AAEM,MAAM,oBAAoB;CAKhC;AACM,MAAM,UAAU;CAItB;;;;;;;;;;;;;AC5DH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,MAAM,mBAAmB;IAAhC;QA4BI,eAAU,GAAY,KAAK,CAAC;QAC5B,cAAS,GAAY,KAAK,CAAC;QAC3B,aAAQ,GAAY,KAAK,CAAC;QAM1B,cAAS,GAAY,KAAK,CAAC;QAE3B,eAAU,GAAa,KAAK,CAAC;QAC7B,eAAU,GAAa,KAAK,CAAC;IAEjC,CAAC;CAAA;AACD,sCAAsC;AACtC,mCAAmC;AACnC,0BAA0B;AAC1B,yBAAyB;AACzB,sBAAsB;AACtB,kCAAkC;AAClC,qCAAqC;AACrC,mCAAmC;AACnC,oCAAoC;AACpC,wCAAwC;AACxC,uCAAuC;AACvC,oCAAoC;AACpC,2BAA2B;AAC3B,0BAA0B;AAC1B,wBAAwB;AACxB,6BAA6B;AAC7B,IAAI;AAEG,MAAM,iBAAiB;CAc7B;AACM,MAAM,mBAAmB;CAK/B;AAEM,MAAM,gBAAgB;CAG5B;AAEM,MAAM,WAAW;CAKvB;AAEM,MAAM,kBAAkB;CAG9B;;;;;;;;;;;;;AClGD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,MAAM,YAAY;CAGtB;AACM,MAAM,kBAAkB;CAG9B;AACM,MAAM,aAAa;CAGzB;AAEM,MAAM,WAAW;CAGvB;AAEM,MAAM,YAAa,SAAQ,WAAW;CAG5C;;;;;;;;;;;;;ACrBH;AAAA;AAAO,MAAM,eAAe;CAG3B;;;;;;;;;;;;;ACHD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,MAAM,UAAU;CA2BtB;AAEM,MAAM,UAAU;IAAvB;QAMI,mBAAc,GAAY,KAAK,CAAC;IAEpC,CAAC;CAAA;AAEM,MAAM,aAAc,SAAQ,UAAU;CAO5C;AAEM,MAAM,aAAa;CAGzB;AAEM,MAAM,qBAAqB;CAKjC;AAEM,MAAM,YAAY;CAGxB;AAEM,MAAM,gBAAgB;CAG5B;;;;;;;;;;;;;ACpED;AAAA;AAAA;AAAA;AAAO,MAAM,WAAW;IAAxB;QAEA,eAAU,GAAO,EAAE,CAAC;QACpB,cAAS,GAAO,EAAE,CAAC;QACnB,WAAM,GAAO,EAAE,CAAC;IAYhB,CAAC;CAAA;AAEM,MAAM,gBAAgB;CAG5B;AAEM,MAAM,UAAU;CAwBlB;;;;;;;;;;;;;AC5CL;AAAA;AAAA;AAAO,MAAM,cAAc;CAK1B;AACM,MAAM,YAAa,SAAQ,cAAc;CAwC/C;;;;;;;;;;;;;AC9CD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gDAAgD;AAEzC,MAAM,iBAAiB;CAI7B;AAEM,MAAM,QAAS,SAAQ,iBAAiB;CAoB9C;AACM,MAAM,eAAe;CAI3B;AAEM,MAAM,MAAM;CAGlB;AACM,MAAM,YAAY;CAGxB;AACM,MAAM,YAAY;CAGxB;AAEM,MAAM,oBAAoB;CAahC;AAED,mBAAmB;;;;;;;;;;;;;ACtDnB;AAAA;AAAA;AAAO,MAAM,IAAI;CAWhB;AAEM,MAAM,OAAO;CAUnB;;;;;;;;;;;;;ACnCD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AAEoC;AACpB;AACA;AAGT;;;AAM3C,MAAM,aAAa;IAKtB,YAAqB,KAAiB;QAAjB,UAAK,GAAL,KAAK,CAAY;QAF9B,yBAAoB,GAAG,qEAAkC,CAAC,oBAAoB,CAAC;QAGnF,IAAI,CAAC,UAAU,GAAG,qEAAkC,CAAC,SAAS,CAAC;QAE/D,IAAI,CAAC,UAAU,GAAG,uDAAe,CAAC,MAAM,CAAC;IAE7C,CAAC;IACM,iBAAiB,CAAC,QAAgB;QACrC,IAAI,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAE,IAAI,CAAC,UAAU,CAAC,oBAAoB,GAAG,QAAQ,CAAC;QACrF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;IAC9B,CAAC;IAED,WAAW,CAAC,KAAU;QAClB,IAAI,IAAI,GAAG;YACP,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE;YACjE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE;SAC3F,CAAC;QACF,KAAK,IAAI,KAAK,IAAI,IAAI,EAAE;YACpB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;gBAAE,SAAS;YAC1C,IAAI,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE;gBAC/D,OAAO,CAAC,eAAe;aAC1B;SACJ;QACD,KAAK,CAAC,cAAc,EAAE,CAAC;IAC3B,CAAC;IAAA,CAAC;IAEK,QAAQ,CAAC,QAAgB,EAAE,YAAoB;QAClD,IAAI,CAAC,eAAe,GAAG,IAAI,sEAAe,EAAE,CAAC;QAC7C,IAAI,CAAC,eAAe,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzC,IAAI,CAAC,eAAe,CAAC,YAAY,GAAG,YAAY,CAAC;QACjD,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QACrD,OAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,CAAC;QAElD,sCAAsC;QAC9B,0BAA0B;QAC1B,0BAA0B;QAC1B,sBAAsB;QACtB,8BAA8B;QACtC,MAAM;IACV,CAAC;IAED,0BAA0B,CAAE,OAAqB;QAC7C,IAAG,OAAO,CAAC,KAAK,IAAI,IAAI,IAAI,OAAO,CAAC,KAAK,IAAI,EAAE,EAC/C;YACE,IAAI,CAAC,GAAY,OAAO,CAAC,KAAK,CAAC;YAC/B,IAAI,eAAe,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;YAC/B,IAAG,eAAe,IAAI,EAAE;gBACtB,OAAO,IAAI,CAAC;;gBAEZ,OAAO,EAAC,WAAW,EAAE,IAAI,EAAC,CAAC;SAC9B;;YAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEI,aAAa,CAAC,QAAgB;QACjC,IAAI,MAAc,CAAC;QACnB,QAAQ,QAAQ,EAAE;YACd,KAAK,6DAAc,CAAC,QAAQ;gBACxB,MAAM,GAAG,UAAU,CAAC;gBACpB,MAAM;YACV,KAAK,6DAAc,CAAC,KAAK;gBACrB,MAAM,GAAG,SAAS,CAAC;gBACnB,MAAM;YACV,KAAK,6DAAc,CAAC,oBAAoB;gBACpC,MAAM,GAAG,8BAA8B,CAAC;gBACxC,MAAM;YACV,KAAK,6DAAc,CAAC,gCAAgC;gBAChD,MAAM,GAAG,sCAAsC,CAAC;gBAChD,MAAM;YACV,+CAA+C;YAC/C,+CAA+C;YAC/C,aAAa;YACb,gDAAgD;YAChD,+CAA+C;YAC/C,aAAa;YACb,KAAK,6DAAc,CAAC,oBAAoB;gBACpC,MAAM,GAAG,0BAA0B,CAAC;gBACpC,MAAM;YACV,8CAA8C;YAC9C,4CAA4C;YAC5C,aAAa;YACb;gBACI,MAAM,GAAG,eAAe,CAAC;gBACzB,MAAM;SACb;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEM,UAAU,CAAC,cAAsB;QACpC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,CAAC;IACnD,CAAC;IAEM,UAAU,CAAC,cAAmB;QACjC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,CAAC;IACnD,CAAC;IACM,iBAAiB,CAAC,KAAU;QAC/B,IAAI,CAAM,CAAC;QACX,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,iDAAiD;QACrE,OAAO,CACH,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;YAClB,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC;YACnB,CAAC,IAAI,CAAC;YACN,CAAC,IAAI,EAAE;YACP,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CACvB,CAAC;IACN,CAAC;IAEM,WAAW,CAAC,QAAa,EAAE,MAAW;QACzC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC;QAC5D,OAAO,KAAK,CAAC;IACjB,CAAC;IAAA,CAAC;;0EAnHO,aAAa;gGAAb,aAAa,WAAb,aAAa,mBAFV,MAAM;6FAET,aAAa;cAHzB,wDAAU;eAAC;gBACR,UAAU,EAAE,MAAM;aACrB;;;;;;;;;;;;;;ACZD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AAG3C,4CAA4C;AACb;AAUkC;AACN;;;AAUpD,MAAM,iBAAiB;IAQ1B,YAAoB,KAAiB;QAAjB,UAAK,GAAL,KAAK,CAAY;QACjC,IAAI,CAAC,oBAAoB,GAAG,qEAAW,CAAC,gBAAgB,CAAC;QACzD,IAAI,CAAC,UAAU,GAAG,qEAAW,CAAC,SAAS,CAAC;QACxC,IAAI,CAAC,kBAAkB,GAAG,qEAAW,CAAC,iBAAiB,CAAC;QACxD,IAAI,CAAC,qBAAqB,GAAG,qEAAW,CAAC,oBAAoB,CAAC;QAC9D,IAAI,CAAC,UAAU,GAAG,uDAAe,CAAC,UAAU,CAAC;QAC7C,IAAI,CAAC,gBAAgB,GAAG,qEAAW,CAAC,eAAe,CAAC;QACpD,IAAI,CAAC,oBAAoB,GAAG,qEAAW,CAAC,kBAAkB,CAAC;IAC/D,CAAC;IAED,wBAAwB;QACpB,IAAI,GAAG,GAAG,IAAI,CAAC,kBAAkB,GAAG,uDAAe,CAAC,UAAU,CAAC,IAAI,CAAC;QACpE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAsB,GAAG,CAAC,CAAC;IACpD,CAAC;IAED,cAAc;QACV,IAAI,GAAG,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;QACnE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAsB,GAAG,CAAC,CAAC;IACpD,CAAC;IAED,iBAAiB;QACb,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC;QAC9D,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAsB,GAAG,CAAC,CAAC;IACpD,CAAC;IAED,QAAQ;QACJ,IAAI,GAAG,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAC7D,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAQ,GAAG,CAAC;IACrC,CAAC;IAED,sBAAsB,CAAC,YAAoB;QACvC,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,sBAAsB,GAAG,YAAY,CAAC;QAClF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgB,GAAG,CAAC;IAC7C,CAAC;IAED,mBAAmB,CAAC,SAAiB;QACjC,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,mBAAmB,GAAG,SAAS,CAAC;QAC5E,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,kBAAkB;QACd,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC;QAC/D,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAQ,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,8BAA8B,CAAC,gBAAwB;QACnD,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,8BAA8B,GAAG,gBAAgB,CAAC;QAC9F,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;IAC9B,CAAC;IAED,sBAAsB,CAAC,YAAoB;QACvC,IAAI,GAAG,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,GAAG,YAAY,CAAC;QACzF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,oBAAoB;QAChB,IAAI,GAAG,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC;QACzE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,eAAe;QACX,IAAI,IAAI,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;QACtE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAmB,IAAI,CAAC;IACjD,CAAC;IAED,8BAA8B,CAAC,KAAY;QACvC,IAAI,IAAI,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,8BAA8B,GAAC,KAAK,CAAC;QAC5F,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAmB,IAAI,CAAC;IACjD,CAAC;IAED,UAAU;QACN,IAAI,IAAI,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAChE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;IAC/B,CAAC;IAED,6BAA6B,CAAC,YAAwB;QAClD,IAAI,IAAI,CAAC;QACT,IAAG,YAAY,IAAE,IAAI,EACrB;YACD,IAAI,GAAG,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,UAAU,CAAC,6BAA6B,GAAC,gBAAgB,GAAC,YAAY,CAAC;SAC9G;aACG;YACA,IAAI,GAAG,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,UAAU,CAAC,6BAA6B,CAAC;SACrF;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgB,IAAI,CAAC;IAC9C,CAAC;IAED,iBAAiB;QACb,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC;QAC9D,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgB,GAAG,CAAC,CAAC;IAC9C,CAAC;IAED,mBAAmB,CAAC,gBAAwB;QACxC,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,GAAG,gBAAgB,CAAC;QAC9E,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAW,GAAG,CAAC,CAAC;IACzC,CAAC;IAED,2BAA2B,CAAC,UAAkB;QAC1C,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,2BAA2B,GAAG,UAAU,CAAC;QACrF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAS,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,uBAAuB,CAAC,gBAAwB;QAC5C,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,uBAAuB,GAAG,gBAAgB,CAAC;QACvF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAGD,mBAAmB,CAAC,gBAAwB;QACxC,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,mBAAmB,GAAG,gBAAgB,CAAC;QACnF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAGD,mBAAmB;QACf,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC;QACjE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgB,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,kBAAkB;QACd,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC;QAC/D,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAA0B,GAAG,CAAC,CAAC;IACxD,CAAC;IAED,gBAAgB;QACZ,IAAI,GAAG,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC;QACrE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAiB,GAAG,CAAC,CAAC;IAC/C,CAAC;IAED,gBAAgB;QACZ,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC;QAC9D,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAU,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,mBAAmB;QACf,IAAI,IAAI,GAAG,IAAI,CAAC,kBAAkB,GAAG,uDAAe,CAAC,MAAM,CAAC,IAAI,CAAC;QACjE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAU,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,aAAa;QACT,IAAI,IAAI,GAAG,IAAI,CAAC,kBAAkB,GAAG,uDAAe,CAAC,QAAQ,CAAC,UAAU,CAAC;QACzE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAW,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED,kBAAkB;QACd,IAAI,IAAI,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC;QACxE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgB,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,wBAAwB;QACpB,IAAI,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC;QAC/E,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAuB,GAAG,CAAC,CAAC;IACrD,CAAC;IAED,cAAc;QACV,IAAI,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAG,uDAAe,CAAC,aAAa,CAAC,cAAc,CAAC;QACnF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgB,GAAG,CAAC,CAAC;IAC5C,CAAC;IAEH,kBAAkB;QACd,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC;QAC/D,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgB,GAAG,CAAC;IAC7C,CAAC;IAED,eAAe;QACX,IAAI,GAAG,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;QACpE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAoB,GAAG,CAAC;IACjD,CAAC;IAED,iDAAiD;IACjD,oEAAoE;IACpE,oDAAoD;IACpD,IAAI;IAEJ,iBAAiB;QACb,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;QAC5D,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgB,GAAG,CAAC,CAAC;IAC9C,CAAC;IACD,eAAe;QACX,IAAI,GAAG,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;QAClE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IACD,qBAAqB;QACjB,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC;QAClE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgB,GAAG,CAAG,CAAC;IAChD,CAAC;IACD,mBAAmB;QACf,IAAI,GAAG,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC;QACtE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IACD,YAAY;QACR,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;QACzD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAiB,GAAG,CAAG;IAChD,CAAC;IACD,iBAAiB;QACb,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC;QAC9D,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgB,GAAG,CAAG,CAAC;IAChD,CAAC;IAED,WAAW;QACP,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QACxD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgB,GAAG,CAAG,CAAC;IAChD,CAAC;IAED,+BAA+B,CAAC,gBAAwB;QACpD,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,+BAA+B,GAAG,gBAAgB,CAAC;QAC/F,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAQ,GAAG,CAAG,CAAC;IACxC,CAAC;IAED,kBAAkB;QACd,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC;QAC/D,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAQ,GAAG,CAAG,CAAC;IACxC,CAAC;IAED,sBAAsB,CAAC,gBAAwB;QAC3C,IAAI,GAAG,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,sBAAsB,GAAG,gBAAgB,CAAC;QAE9F,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAQ,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,aAAa;QACT,IAAI,GAAG,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QAClE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAG;IAChC,CAAC;IAED,qBAAqB,CAAC,aAAqB;QACvC,IAAI,GAAG,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,GAAG,aAAa,CAAC;QAC1F,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAQ,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,mBAAmB,CAAC,OAAe;QAC/B,IAAI,GAAG,GAAG,IAAI,CAAC,gBAAgB,GAAG,uDAAe,CAAC,QAAQ,CAAC,mBAAmB,GAAG,OAAO,CAAC;QACzF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,0BAA0B;QACtB,IAAI,GAAG,GAAG,IAAI,CAAC,gBAAgB,GAAG,uDAAe,CAAC,aAAa,CAAC,iBAAiB,CAAC;QAClF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;;kFAtPQ,iBAAiB;oGAAjB,iBAAiB,WAAjB,iBAAiB,mBAFd,MAAM;6FAET,iBAAiB;cAH7B,wDAAU;eAAC;gBACR,UAAU,EAAE,MAAM;aACrB;;;;;;;;;;;;;;ACxBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AAEoC;AACpB;;;AAKpD,MAAM,WAAW;IAKtB,YAAoB,KAAiB;QAAjB,UAAK,GAAL,KAAK,CAAY;QACnC,IAAI,CAAC,UAAU,GAAG,qEAAkC,CAAC,iBAAiB,CAAC;QACvE,IAAI,CAAC,aAAa,GAAG,uDAAe,CAAC,IAAI,CAAC;IAC5C,CAAC;IAED,cAAc,CAAC,QAAgB;QAC7B,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,GAAG,QAAQ,CAAC;QAC1E,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;;sEAbU,WAAW;8FAAX,WAAW,WAAX,WAAW,mBAFV,MAAM;6FAEP,WAAW;cAHvB,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACPD;AAAA;AAAA;AAAA;AAAA;AAAuD;AACM;AACf;;;AAGvC,MAAM,UAAU;IASrB,YAAoB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;QAP3B,eAAU,GAAG,IAAI,oDAAe,CAAS,SAAS,CAAC,CAAC;QACpD,qBAAgB,GAAG,IAAI,oDAAe,CAAU,IAAI,CAAC,CAAC;QAE7D,uDAAuD;QAChD,kBAAa,GAAG,IAAI,4CAAO,EAAO,CAAC;QAC1C,yBAAoB,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;QAGvD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAY,EAAE,EAAE;YAC5C,IAAI,KAAK,YAAY,6DAAa,EAAE;gBAClC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;aAC/C;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,QAAQ;QACb,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAEM,OAAO;QACZ,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IACxB,CAAC;IACM,MAAM;QACX,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;QACxB,IAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAC;YACxB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAClC;aACG;YACF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACnC;IACH,CAAC;IAED,eAAe,CAAC,CAAS;QACvB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED,mBAAmB,CAAC,UAAc;QAChC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;;oEAzCU,UAAU;6FAAV,UAAU,WAAV,UAAU;6FAAV,UAAU;cADtB,wDAAU;;;;;;;;;;;;;;ACJX;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AAEoC;AACb;;;AAK3D,MAAM,kBAAkB;IAO3B,YAAoB,KAAiB;QAAjB,UAAK,GAAL,KAAK,CAAY;QACjC,IAAI,CAAC,UAAU,GAAG,qEAAkC,CAAC,SAAS,CAAC;QAC/D,IAAI,CAAC,UAAU,GAAG,2DAAe,CAAC,KAAK,CAAC;QACxC,IAAI,CAAC,aAAa,GAAG,2DAAe,CAAC,IAAI,CAAC;QAC1C,IAAI,CAAC,aAAa,GAAG,2DAAe,CAAC,qBAAqB,CAAC;IAC/D,CAAC;IACD,eAAe,CAAC,MAAc,EAAE,SAAiB;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,GAAG,MAAM,GAAG,aAAa,GAAG,SAAS,CAAC;QAEtG,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,gBAAgB,CAAC,SAAiB;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,GAAG,SAAS,CAAC;QAE9E,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,UAAU,CAAC,eAAoB;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC;QAEnE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IAEjD,CAAC;IAEA,oBAAoB,CAAC,UAAkB;QAChC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,oBAAoB,GAAG,UAAU,CAAC;QAEnF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAGL,YAAY,CAAC,eAAoB;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;QAE7D,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IACjD,CAAC;IAED,aAAa,CAAC,eAAoB;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;QAE5D,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IAEjD,CAAC;IAED,yBAAyB,CAAC,UAAkB;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,yBAAyB,GAAG,UAAU,CAAC;QAExF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IACD,cAAc,CAAC,QAAgB;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,gCAAgC,GAAG,QAAQ,CAAC;QAC3E,OAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;;oFA5DQ,kBAAkB;qGAAlB,kBAAkB,WAAlB,kBAAkB,mBAFf,MAAM;6FAET,kBAAkB;cAH9B,wDAAU;eAAC;gBACR,UAAU,EAAE,MAAM;aACrB;;;;;;;;;;;;;;ACPD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAY,WAGX;AAHD,WAAY,WAAW;IACnB,+DAAiB;IACjB,yDAAc;AAClB,CAAC,EAHW,WAAW,KAAX,WAAW,QAGtB;AAED,IAAY,gBAMX;AAND,WAAY,gBAAgB;IACxB,2DAAU;IACV,+DAAY;IACZ,uEAAgB;IAChB,yDAAS;IACT,+DAAY;AAChB,CAAC,EANW,gBAAgB,KAAhB,gBAAgB,QAM3B;AAED,IAAY,aAQX;AARD,WAAY,aAAa;IACrB,mDAAS;IACT,iFAAwB;IACxB,+FAA+B;IAC/B,qFAA0B;IAC1B,mFAAyB;IACzB,yDAAY;IACZ,mDAAS;AACb,CAAC,EARW,aAAa,KAAb,aAAa,QAQxB;AACD,IAAY,cAOX;AAPD,WAAY,cAAc;IACtB,qDAAS;IACT,2GAAoC;IACpC,mFAAwB;IACxB,2DAAY;IACZ,2FAA4B;IAC5B,yGAAmC;AACvC,CAAC,EAPW,cAAc,KAAd,cAAc,QAOzB;AACD,IAAY,WAGX;AAHD,WAAY,WAAW;IACnB,0DAAe;IACf,4DAAgB;AACpB,CAAC,EAHW,WAAW,KAAX,WAAW,QAGtB;AAED,IAAY,cAEX;AAFD,WAAY,cAAc;IACtB,mEAAY;AAChB,CAAC,EAFW,cAAc,KAAd,cAAc,QAEzB;AAED,IAAY,KASX;AATD,WAAY,KAAK;IACb,+BAAG;IACH,+BAAG;IACH,qCAAM;IACN,+CAAW;IACX,qCAAM;IACN,iCAAI;IACJ,qDAAc;IACd,6BAAE;AACN,CAAC,EATW,KAAK,KAAL,KAAK,QAShB;AAED,IAAY,cAGX;AAHD,WAAY,cAAc;IACtB,2DAAY;IACZ,iEAAe;AACnB,CAAC,EAHW,cAAc,KAAd,cAAc,QAGzB;AAED,IAAY,WAEX;AAFD,WAAY,WAAW;IACnB,yDAAc;AAClB,CAAC,EAFW,WAAW,KAAX,WAAW,QAEtB;AACD,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC1B,6DAAS;IACT,uEAAc;IACd,+DAAU;IACV,2DAAQ;AACZ,CAAC,EALW,kBAAkB,KAAlB,kBAAkB,QAK7B;AACD,IAAY,cAOX;AAPD,WAAY,cAAc;IACtB,6EAAqB;IACrB,qEAAiB;IACjB,uDAAU;IACV,iDAAO;IACP,iDAAO;IACP,iDAAO;AACX,CAAC,EAPW,cAAc,KAAd,cAAc,QAOzB;AACD,IAAY,MAaX;AAbD,WAAY,MAAM;IACd,yCAAW;IACX,2CAAY;IACZ,qCAAS;IACT,qCAAS;IACT,iCAAO;IACP,mCAAQ;IACR,mCAAQ;IACR,uCAAU;IACV,6CAAa;IACb,0CAAY;IACZ,4CAAa;IACb,4CAAa;AACjB,CAAC,EAbW,MAAM,KAAN,MAAM,QAajB;AAED,IAAY,eAQX;AARD,WAAY,eAAe;IACvB,qFAAwB;IACxB,6DAAY;IACZ,qEAAgB;IAChB,+DAAa;IACb,6DAAY;IACZ,+DAAa;IACb,yEAAkB;AACtB,CAAC,EARW,eAAe,KAAf,eAAe,QAQ1B;;;;;;;;;;;;;AC/FD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2D;AAC2B;AAKvB;AAEJ;AAGqD;AAC/E;AACwB;;;;;;;;;;;;;;;;;;;;ICLrC,4EAAiF;IAAA,iFAAsB;IAAA,4DAAY;;;IAanH,4EAAgF;IAAA,gFAAqB;IAAA,4DAAY;;;IAOjH,4EAA4F;IAAA,6FAAkC;IAAA,4DAAY;;;IAC1I,4EAA2F;IAAA,oFAAyB;IAAA,4DAAY;;;IAa5H,4EAAgF;IAAA,oFAAyB;IAAA,4DAAY;;;IACzH,4EAA+E;IAAA,oFAAyB;IAAA,4DAAY;;;;IAQpH,4FAEI;IADA,mXAA4B,eAAe,KAAE;IAC7C;IAAA,+EAAkC;IAAA,gEAAK;IAAA,4DAAW;IACtD;IAAA,4DAAwB;;;IAGxB,4EAAqF;IAAA,mFAAwB;IAAA,4DAAY;;;IAiBrH,iFACA;IAAA,uDACA;IAAA,4DAAa;;;IAF4C,2EAAc;IACvE,0DACA;IADA,2IACA;;;IAEJ,4EAAwF;IAAA,kFAAuB;IAAA,4DAAY;;;IAiBvH,iFACE;IAAA,uDACF;IAAA,4DAAa;;;IAF0B,gFAAmB;IACxD,0DACF;IADE,6IACF;;;IAEF,4EAAyF;IAAA,sFAA2B;IAAA,4DAAY;;;IAO9H,iFACE;IAAA,uDACF;IAAA,4DAAa;;;IAF6B,qFAAwB;IAChE,0DACF;IADE,iJACF;;;IAEF,4EAAuF;IAAA,iFAAsB;IAAA,4DAAY;;;IAOvH,iFACE;IAAA,uDACF;IAAA,4DAAa;;;IAF8B,uFAA0B;IACnE,0DACF;IADE,6JACF;;;IAEF,4EAAqF;IAAA,iFAAsB;IAAA,4DAAY;;;IAOrH,iFACE;IAAA,uDACF;IAAA,4DAAa;;;IAFoC,+EAAkB;IACjE,0DACF;IADE,8IACF;;;IAEF,4EAAoF;IAAA,8EAAmB;IAAA,4DAAY;;;IAUjH,iFACE;IAAA,uDACF;IAAA,4DAAa;;;IAF8B,+EAAkB;IAC3D,0DACF;IADE,4IACF;;;IAEF,4EAAwF;IAAA,iFAAsB;IAAA,4DAAY;;ADvHzI,MAAM,gCAAgC;IAwB3C,YAAoB,OAAe,EACzB,SAAyB,EAAQ,MAAiB,EAClD,YAAyB,EAAS,SAAsB,EACxD,eAAgC,EAAS,iBAAoC;QAHnE,YAAO,GAAP,OAAO,CAAQ;QACzB,cAAS,GAAT,SAAS,CAAgB;QAAQ,WAAM,GAAN,MAAM,CAAW;QAClD,iBAAY,GAAZ,YAAY,CAAa;QAAS,cAAS,GAAT,SAAS,CAAa;QACxD,oBAAe,GAAf,eAAe,CAAiB;QAAS,sBAAiB,GAAjB,iBAAiB,CAAmB;QArBnF,aAAQ,GAAU,EAAE,CAAC;QACrB,iBAAY,GAAU,EAAE,CAAC;QACzB,gBAAW,GAAU,EAAE,CAAC;QACxB,eAAU,GAAU,EAAE,CAAC;QACvB,sBAAiB,GAAU,EAAE,CAAC;QAC9B,eAAU,GAAY,KAAK,CAAC;QAE5B,oBAAe,GAAG,EAAE,CAAC;QACrB,eAAU,GAAG,EAAE,CAAC;QAGhB,qBAAgB,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QAEpD,kBAAa,GAAY,KAAK,CAAC;QAS/B,IAAI,CAAC,YAAY,GAAG,IAAI,iEAAS,EAAE,CAAC;IACrC,CAAC;IAED,UAAU;QACT,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wHAAsB,EAAE;YACzD,YAAY,EAAE,IAAI;YAClB,WAAW,EAAE,IAAI;YACjB,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,EAAC,KAAK,EAAC,kCAAkC,EAAC;SACjD,CAAC,CAAC;IACL,CAAC;IAEH,QAAQ;QACN,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,YAAY,CAAC,aAAa,GAAG,EAAE,CAAC;QACrC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,EAAE,CAAC;QAC/B,IAAI,CAAC,YAAY,CAAC,aAAa,GAAE,CAAC,CAAC;QACnC,IAAI,CAAC,YAAY,CAAC,cAAc,GAAG,EAAE,CAAC;QACtC,IAAI,CAAC,YAAY,CAAC,YAAY,GAAG,EAAE,CAAC;QACpC,IAAI,CAAC,YAAY,CAAC,YAAY,GAAG,EAAE,CAAC;QACpC,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,EAAE,CAAC;QACjC,IAAI,CAAC,YAAY,CAAC,aAAa,GAAG,EAAE,CAAC;QAGrC,uCAAuC;QACvC,yCAAyC;QACzC,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QACtB,IAAI,CAAC,OAAO,GAAC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAC,CAAC,EAAC,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAEpE,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEhB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,uDAAe,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,GAAS,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC;QAC5G,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,uDAAe,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,GAAS,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,CAAC,CAAC;QAEvH,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,uDAAe,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,GAAS,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW;YACxG,GAAG,CAAC,CAAC,CAAC;QAEN,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,uDAAe,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,GAAS,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC;QACvH,yBAAyB;QACzB,yEAAyE;QACzE,oCAAoC;QACpC,QAAQ;QAEN,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;YAC9C,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACtC,UAAU,EAAE,CAAC,EAAE,CAAC;YAChB,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACrC,oBAAoB,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,EAAC,yDAAU,CAAC,KAAK,EAAE,EAAE,yDAAU,CAAC,OAAO,CAAC,yJAAyJ,CAAC,CAAC,CAAC;YACnP,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC1C,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,EAAC,yDAAU,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC;YAC9E,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACzC,gBAAgB,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC7C,iBAAiB,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC9C,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC1C,eAAe,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC5C,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACzC,gBAAgB,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC7C,WAAW,EAAE,CAAC,EAAE,CAAC;SAClB,CAAC,CAAC;QACH,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QACtD,IAAI,CAAC,eAAe,EAAE,CAAC;IAC3B,CAAC;IAED,eAAe;QACb,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,CAAC,SAAS,CAAC,CAAC,IAAW,EAAE,EAAE;YACpE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,oBAAoB,CAAC,KAAK;QACxB,IAAG,KAAK,EAAC;YACP,IAAI,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YACtD,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC;YACjC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBACjC,IAAI,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE;oBACpJ,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;iBACpF;YACH,CAAC,CAAC,CAAC;SACN;aACI;YACH,IAAI,CAAC,sBAAsB,GAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,0BAA0B,EAAE,CAAC;SACnC;IAEH,CAAC;IAED,iBAAiB,CAAC,KAAU;QAC1B,IAAI,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;QACzB,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE;YAChC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;SAC1B;aACI;YACJ,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC5D,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,eAAe,EAAE,CAAC;YAC7D,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,sBAAsB,EAAE,CAAC;YACxE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;SAC3B;QACD,IAAG,MAAM,IAAE,IAAI,EACf;YACA,IAAI,CAAC,iBAAiB;iBACrB,6BAA6B,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,GAAkB,EAAE,EAAE;gBACtE,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;YAC/B,CAAC,CAAC,CAAC;SACJ;IAED,CAAC;IACD,0BAA0B;QACxB,IAAI,CAAC,sBAAsB,GAAC,EAAE,CAAC;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpD,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;SAChI;IACH,CAAC;IAED,QAAQ;QACN,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,EACnB,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,EACtB,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAExC,CAAC;IAED,QAAQ,CAAC,KAAU;QACjB,IAAI,CAAM,CAAC;QACX,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,iDAAiD;QACrE,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACxE,CAAC;IAED,cAAc,CAAC,KAAU;QACvB,IAAI,IAAI,GAAG;YACT,MAAM,EAAE,EAAE;YACV,SAAS,EAAE,CAAC;YACZ,GAAG,EAAE,CAAC;YACN,KAAK,EAAE,EAAE;YACT,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,EAAE;SACR,CAAC;QACF,KAAK,IAAI,KAAK,IAAI,IAAI,EAAE;YACtB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;gBAAE,SAAS;YAC1C,IAAI,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE;gBACjE,OAAO,CAAC,eAAe;aACxB;SACF;QACD,KAAK,CAAC,cAAc,EAAE,CAAC;IACzB,CAAC;IAED,QAAQ;QACN,qCAAqC;QACrC,iDAAiD;QACjD,sBAAsB;QACtB,qEAAqE;QACrE,SAAS;QAET,uBAAuB;QACvB,6BAA6B;QAE7B,SAAS;QACT,MAAM;IAER,CAAC;IAED,OAAO;QACL,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC9B,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,UAAU,CAAC,GAAQ,EAAE,SAAS;QAC5B,IAAG,SAAS,IAAE,eAAe,EAAC;YAC5B,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,KAAK,EAAE,CAAC;SACpD;IACH,CAAC;IAED,SAAS,CAAC,WAAgB;QACxB,OAAO,WAAW,IAAI,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5D,CAAC;IAED,qBAAqB,CAAC,WAAW;QAC/B,IAAG,WAAW,IAAI,WAAW,CAAC,EAAE,EAAC;YAC/B,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,aAAmB,EAAC,EAAE;gBAC5F,IAAG,aAAa,EAAC;oBAElB,IAAI,CAAC,YAAY,CAAC,SAAS,GAAC,aAAa,CAAC,SAAS,CAAC;oBACpD,IAAI,CAAC,YAAY,CAAC,OAAO,GAAC,aAAa,CAAC,OAAO,CAAC;oBAChD,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;iBAG5E;YACH,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;YACb,CAAC,CACF,CAAC;SACH;aACG;YACD,IAAI,CAAC,YAAY,CAAC,SAAS,GAAC,EAAE,CAAC;SACjC;IACD,CAAC;IAED,mBAAmB,CAAC,KAAU;QAC5B,IAAI,gBAAgB,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC,SAAS,CACvE,CAAC,mBAAmB,EAAE,EAAE;YAEtB,IAAI,CAAC,UAAU,GAAG,mBAAmB,CAAC;YACtC,IAAI,CAAC,eAAe,GAAG,EAAE;YACzB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,IAAI,EAAC,CAAC;YAEhE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBAChC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;oBACxB,KAAK,EAAE,OAAO,CAAC,eAAe;oBAC9B,KAAK,EAAE,OAAO,CAAC,aAAa;iBAC7B,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,OAAO,IAAI,CAAC,eAAe,CAAC;QAC9B,CAAC;QAED,oBAAoB;QACpB,uDAAuD;QACvD,0BAA0B;QAC1B,mDAAmD;QACnD,kCAAkC;QAClC,IAAI;SACL,CAAC;IACJ,CAAC;IAGH,QAAQ;QAEN,IAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAC;YAE/B,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,gBAAgB,EAAE;gBAClD,IAAI,CAAC,YAAY,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC;aACnF;iBACD;gBACI,IAAI,CAAC,YAAY,CAAC,aAAa,GAAE,CAAC,CAAC;gBACnC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAC,EAAE,CAAC;aAC/B;YACD,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,SAAS,CAAC;YACpE,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC;YAClE,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,UAAU,CAAC;YACtE,IAAI,CAAC,YAAY,CAAC,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,iBAAiB,CAAC;YACjF,IAAI,CAAC,YAAY,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,aAAa,CAAC;YAC3E,IAAI,CAAC,YAAY,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,eAAe,CAAC;YAC7E,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,YAAY,CAAC;YACvE,IAAI,CAAC,YAAY,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,gBAAgB,CAAC;YAC/E,IAAI,CAAC,YAAY,CAAC,oBAAoB,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,oBAAoB,CAAC;YAC1F,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC;YAClE,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,WAAW,CAAC;YACxE,IAAI,CAAC,YAAY,CAAC,aAAa,GAAG,mCAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACzG,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,aAAa,CAAC;YAEvE,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;YAGvE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC,GAAO,EAAE,EAAE;gBACnE,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,GAAG,CAAC;gBAE3B,IAAG,GAAG,IAAI,IAAI,EAAC;oBACb,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,mDAAmD,EACnD,GAAG,EACH;wBACE,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CACF,CAAC;oBACF,IAAI,CAAC,OAAO,EAAE,CAAC;oBACf,UAAU,CAAC,GAAG,EAAE;wBAER,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC;oBAC9D,CAAC,EAAE,IAAI,CAAC,CAAC;iBAChB;qBACG;oBACF,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,+CAA+C,EAC/C,GAAG,EACH;wBACE,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAC,CAAC,aAAa,CAAC;wBAC1B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CACF,CAAC;iBACH;YACD,CAAC,EACA,KAAK,CAAC,EAAE;gBACP,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,KAAK,CAAC,KAAK,EACX,GAAG,EACH;oBACE,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAC,CAAC,aAAa,CAAC;oBAC1B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CACF,CAAC;YACH,CAAC,CACH,CAAC;SACH;IACD,CAAC;;gHAjVY,gCAAgC;gHAAhC,gCAAgC;kEAoB5B,iEAAkB;;;;;;QC/CnC,2EACI;QAAA;QAAA,mFACI;QAAA;QAAA,0EACA;QAAA;QAAA,yEACI;QAAA;QAAA,yEACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,uEAAW;QAAA,2EAA2B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QACrE;QAAA,4EACA;QADwE,oKAAY,oBAAgB,IAAC;QAArG,4DACA;QAAA;QAAA,0IAAiF;QACrF;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,uEAAW;QAAA,4DAAY;QAClC;QAAA,uEACJ;QAAA;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,qEAAS;QAAA,2EAA2B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QACnE;QAAA,4EACA;QADuE,oKAAY,oBAAgB,IAAC;QAApG,4DACA;QAAA;QAAA,0IAAgF;QACpF;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,6EAAiB;QAAA,2EAA2B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QAC3E;QAAA,uEACA;QAAA;QAAA,0IAA4F;QAC5F;QAAA,0IAA2F;QAC/F;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACV;QAAA,4DAAM;QAGN;QAAA,0EACI;QAAA;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,0EAAc;QAAA,2EAA2B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QACxE;QAAA,6EAGI;QADA,8JAAS,uBAAuB,IAAC,4GAAa,0BAAsB,IAAnC;QAFrC,4DAGI;QAAA;QAAA,0IAAgF;QACpF;QAAA,0IAA+E;QACnF;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,wEAAY;QAAA,2EAA2B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QACtE;QAAA,6EAEA;QADA,uSAAS,UAAoB,IAAC;QAD9B,4DAEA;QAAA;QAAA,mKAEI;QAEJ;QAAA,wFAA+E;QAC/E;QAAA,sFAAiE;QACjE;QAAA,4IAAqF;QACzF;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,2EACM;QAAA;QAAA,sFACE;QAAA;QAAA,8EAAW;QAAA,wEAAW;QAAA,4EAA0B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QACpE;QAAA,8EAQA;QARO,yJAAS,gCAA4B,IAAC,uGAE5B,gCAA4B,IAFA;QAA7C,4DAQA;QAAA;QAAA,6FAGI;QADJ,4LAAkB,8CAA0C,IAAC;QACzD;QAAA,+IACA;QAEJ;QAAA,4DAAmB;QACnB;QAAA,4IAAwF;QAC5F;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,sFACI;QAAA;QAAA,8EAAW;QAAA,kEAAK;QAAA,4EAA2B;QAAA,+DAAC;QAAA,4DAAO;QAAA,4DAAY;QAC/D;QAAA,8EACJ;QADgE,+JAAS,uBAAuB,IAAC;QAA7F,4DACJ;QAAA;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACV;QAAA,4DAAM;QAGN;QAAA,2EACI;QAAA;QAAA,2EACI;QAAA;QAAA,sFACI;QAAA;QAAA,8EAAW;QAAA,4EAAe;QAAA,4EAA2B;QAAA,+DAAC;QAAA,4DAAO;QAAA,4DAAY;QACzE;QAAA,mFACI;QAAA;QAAA,+IACE;QAEJ;QAAA,4DAAa;QACb;QAAA,4IAAyF;QAC/F;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,sFACI;QAAA;QAAA,8EAAW;QAAA,uEAAU;QAAA,4EAA2B;QAAA,+DAAC;QAAA,4DAAO;QAAA,4DAAY;QACpE;QAAA,mFACI;QAD0C,wLAAmB,6BAAyB,IAAC;QACvF;QAAA,+IACE;QAEJ;QAAA,4DAAa;QACb;QAAA,4IAAuF;QAC7F;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,sFACI;QAAA;QAAA,8EAAW;QAAA,uEAAU;QAAA,4EAA2B;QAAA,+DAAC;QAAA,4DAAO;QAAA,4DAAY;QACpE;QAAA,mFACI;QAAA;QAAA,+IACE;QAEJ;QAAA,4DAAa;QACb;QAAA,4IAAqF;QAC3F;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,sFACI;QAAA;QAAA,8EAAW;QAAA,oEAAO;QAAA,4EAA2B;QAAA,+DAAC;QAAA,4DAAO;QAAA,4DAAY;QACjE;QAAA,mFACI;QAAA;QAAA,+IACE;QAEJ;QAAA,4DAAa;QACb;QAAA,4IAAoF;QAC1F;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACV;QAAA,4DAAM;QAEN;QAAA,4EACI;QAAA;QAAA,2EACI;QAAA;QAAA,sFACI;QAAA;QAAA,8EAAW;QAAA,uEAAU;QAAA,4EAA2B;QAAA,+DAAC;QAAA,4DAAO;QAAA,4DAAY;QACpE;QAAA,mFACI;QAAA;QAAA,+IACE;QAEJ;QAAA,4DAAa;QACb;QAAA,4IAAwF;QAE9F;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,sFACI;QAAA;QAAA,8EAAW;QAAA,yEAAY;QAAA,4DAAY;QACnC;QAAA,8EACJ;QADiC,qKAAY,oBAAgB,IAAC;QAA1D,4DACJ;QAAA;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACV;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,4EACI;QAAA;QAAA,+EACI;QADoE,0JAAS,cAAU,IAAC;QACxF,uFAAI;QAAA,4DAAS;QACjB;QAAA,+EACI;QADsD,0JAAS,aAAS,IAAC;QACzE,wFAAK;QAAA,4DAAS;QAClB;QAAA,+EAA0G;QAAvB,0JAAS,gBAAY,IAAC;QAAC,mEAAM;QAAA,4DAAS;QAC7H;QAAA,4DAAM;QACV;QAAA,4DAAM;QACV;QAAA,4DAAO;QACP;QAAA,4DAAmB;QACvB;QAAA,4DAAW;QAEX;;;;QAxKsC,0DAA8B;QAA9B,2FAA8B;QAGnC,0DAA+B;QAA/B,uGAA+B;QAGjC,0DAAqE;QAArE,8HAAqE;QAInE,0DAA+B;QAA/B,uGAA+B;QAM/B,2DAA+B;QAA/B,uGAA+B;QAGjC,0DAAoE;QAApE,6HAAoE;QAIlE,0DAA+B;QAA/B,uGAA+B;QAGjC,0DAAgF;QAAhF,yIAAgF;QAChF,0DAA+E;QAA/E,wIAA+E;QAQ7E,0DAA+B;QAA/B,uGAA+B;QAK7B,0DAAoE;QAApE,6HAAoE;QACxE,0DAAmE;QAAnE,4HAAmE;QAIjE,0DAA+B;QAA/B,uGAA+B;QAE5B,0DAA+B;QAA/B,8EAA+B;QAEd,0DAA4C;QAA5C,0GAA4C;QAI5C,0DAAqB;QAArB,oEAAqB;QAE3C,0DAAyE;QAAzE,kIAAyE;QAIrE,0DAA+B;QAA/B,uGAA+B;QAQtC,0DAAwB;QAAxB,gFAAwB;QAGhC,0DAAyB;QAAzB,sFAAyB;QAET,0DAA4C;QAA5C,+FAA4C;QAIjD,0DAA4E;QAA5E,qIAA4E;QAI1E,0DAA+B;QAA/B,uGAA+B;QAU/B,2DAA+B;QAA/B,uGAA+B;QAG5B,0DAA0B;QAA1B,iFAA0B;QAI7B,0DAA6E;QAA7E,sIAA6E;QAI7E,0DAA+B;QAA/B,uGAA+B;QAG5B,0DAA6B;QAA7B,oFAA6B;QAIhC,0DAA2E;QAA3E,oIAA2E;QAI5E,0DAA+B;QAA/B,uGAA+B;QAEG,0DAA0B;QAA1B,uFAA0B;QACxD,0DAA8B;QAA9B,qFAA8B;QAIjC,0DAAyE;QAAzE,kIAAyE;QAIzE,0DAA+B;QAA/B,uGAA+B;QAG5B,0DAAoC;QAApC,0FAAoC;QAIvC,0DAAwE;QAAxE,iIAAwE;QAOxE,0DAA+B;QAA/B,uGAA+B;QAG5B,0DAA8B;QAA9B,mFAA8B;QAIjC,0DAA4E;QAA5E,qIAA4E;QAK5E,0DAA+B;QAA/B,uGAA+B;;6FD5HnD,gCAAgC;cAL5C,uDAAS;eAAC;gBACT,QAAQ,EAAE,+BAA+B;gBACzC,WAAW,EAAE,4CAA4C;gBACzD,SAAS,EAAE,CAAC,4CAA4C,CAAC;aAC1D;+lBAqBoC,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;;;;;;;;;;;;;;AE/CnC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0D;AAC0B;AACtC;AAGqC;AAE1B;AAEX;AACH;;;;;;;;;;;;;;ICGvB,iFACsB;IAAA,uDACtB;IAAA,4DAAa;;;IADT,6EAAiB;IAAC,0DACtB;IADsB,4GACtB;;;IAEJ,4EAA2D;IAAA,6GAC/C;IAAA,4DAAY;;ADDjC,MAAM,8BAA8B;IAUzC,YAA4C,IAAQ,EAAQ,QAAsC,EAAS,MAAe,EAAQ,SAAuD,EAAS,SAAuB;QAA7K,SAAI,GAAJ,IAAI,CAAI;QAAQ,aAAQ,GAAR,QAAQ,CAA8B;QAAS,WAAM,GAAN,MAAM,CAAS;QAAQ,cAAS,GAAT,SAAS,CAA8C;QAAS,cAAS,GAAT,SAAS,CAAc;QATzN,qBAAgB,GAAG,2DAAW,CAAC,oBAAoB,CAAC;QACpD,0BAAqB,GAA2B,EAAE,CAAC;QAEnD,+BAA0B,GAA2B,IAAI,yFAAuB,EAAE,CAAE;QACpF,uBAAkB,GAAG,IAAI,0DAAW,CAAC,EAAE,EAAC,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;QACxD,2BAAsB,GAA2C,IAAI,kDAAa,CAA0B,CAAC,CAAC,CAAC;QAC/G,yBAAoB,GAAG,IAAI,0DAAW,CAAC,IAAI,CAAC,CAAC;QAC1C,eAAU,GAAG,IAAI,4CAAO,EAAQ,CAAC;IAEkL,CAAC;IAE9N,QAAQ;QACN,IAAI,CAAC,2BAA2B,EAAE,CAAC;IACrC,CAAC;IAEM,2BAA2B;QACjC,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;QAC/B,IAAI,CAAC,QAAQ,CAAC,wBAAwB,EAAE,CAAC,SAAS,CAAC,CAAC,GAA2B,EAAC,EAAE;YAChF,IAAI,CAAC,qBAAqB,GAAG,GAAG,CAAC;YACjC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC,CAAC;YACrE,IAAI,CAAC,oBAAoB,CAAC,YAAY;iBACnC,IAAI,CAAC,gEAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;iBAChC,SAAS,CAAC,GAAG,EAAE;gBACd,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC/B,CAAC,CAAC,CAAC;QACP,CAAC,EAAC,CAAC,KAAK,EAAC,EAAE;YACT,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,yCAAyC,EACzC,GAAG,EACH;gBACE,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,CAAC,aAAa,CAAC;gBAC3B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CACF,CAAC;QAEJ,CAAC,CAAC;IAEJ,CAAC;IAEM,UAAU,CAAC,KAAK;QACrB,IAAI,CAAC,YAAY,GAAC,KAAK,CAAC,KAAK,CAAC;IAChC,CAAC;IAEM,MAAM;QACX,IAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAC;YACjC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YACvB,IAAI,CAAC,0BAA0B,CAAC,kBAAkB,GAAG,IAAI,CAAC,YAAY,CAAC;YACvE,IAAI,CAAC,0BAA0B,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC;YACvD,IAAI,CAAC,QAAQ,CAAC,2BAA2B,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,EAAC,EAAE;gBAC1F,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,wCAAwC,EACxC,GAAG,EACH;oBACE,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,eAAe,CAAC;oBAC7B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CACF,CAAC;gBACF,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC;YACjD,CAAC,EAAC,CAAC,KAAK,EAAC,EAAE;gBACT,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,mCAAmC,EACnC,GAAG,EACH;oBACE,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CACF,CAAC;YACJ,CAAC,CAAC;SACH;aACI;YACH,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,iCAAiC,EACjC,GAAG,EACH;gBACE,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CACF,CAAC;SACH;IACD,CAAC;IAED,SAAS;QACP,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAED,qBAAqB;QACnB,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE;YAC/B,OAAO;SACR;QACD,yBAAyB;QACzB,IAAI,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;QAC7C,IAAI,CAAC,MAAM,EAAE;YACX,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC,CAAC;YACrE,OAAO;SACR;aAAM;YACL,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;SAC/B;QACD,0CAA0C;QAC1C,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAC9B,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAC9F,CAAC;IACJ,CAAC;;4GA7GU,8BAA8B,kEAUrB,wEAAe;8GAVxB,8BAA8B;QCjB3C,4EAA6C;QAAtB,sJAAS,eAAW,IAAC;QAAC,4DAAC;QAAA,4DAAS;QACvD;QAAA,wEAA0C;QAAA,mFAAwB;QAAA,4DAAK;QACvE;QAAA,qFACI;QAAA;QAAA,yEACI;QAAA;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,mGACP;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QACtC;QAAA,4DAAY;QACZ;QAAA,iFACI;QADQ,qLAAmB,sBAAkB,IAAC;QAC9C;QAAA,8EACI;QAAA;QAAA,uFAAsJ;QACxJ;QAAA,4DAAa;QACf;QAAA,0IACsB;;QAE1B;QAAA,4DAAa;QACb;QAAA,wIAA2D;QAE/D;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACV;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,8EAA2D;QAAnB,uJAAS,YAAQ,IAAC;QAAC,gEAAI;QAAA,4DAAS;QAC5E;QAAA,4DAAM;QACV;QAAA,4DAAqB;QACrB;;QArB4B,2DAA+B;QAA/B,uGAA+B;QAIQ,0DAAkC;QAAlC,+FAAkC;QAEtD,0DAAoC;QAApC,iGAAoC;QAEnD,0DAAmD;QAAnD,iKAAmD;QAIxD,0DAA+C;QAA/C,6GAA+C;;6FDA7D,8BAA8B;cAL1C,uDAAS;eAAC;gBACT,QAAQ,EAAE,+BAA+B;gBACzC,WAAW,EAAE,4CAA4C;gBACzD,SAAS,EAAE,CAAC,4CAA4C,CAAC;aAC1D;;sBAWc,oDAAM;uBAAC,wEAAe;;;;;;;;;;;;;;AE3BrC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAkD;AACR;AAEe;AAClB;AAGE;AAGc;AACtB;AAGqC;AACb;AAOmC;AAEa;AAEsB;;;;;;;;;;;;;;;;;;ICV/F,yEAAgE;IAAA,8GAC5D;IAAA,2EAA2B;IAAA,6DAAC;IAAA,4DAAO;IACvC;IAAA,4DAAK;;;IAKO,4EAA8E;IAAA,mFAAwB;IAAA,4DAAY;;;IAClH,4EAA+E;IAAA,6FAAkC;IAAA,4DAAY;;;IAC7H,4EAA6E;IAAA,qFAA0B;IAAA,4DAAY;;;;IAN/H,yEACI;IAAA;IAAA,qFACI;IAAA;IAAA,4EAEI;IAF2D,0OAAS,uBAAuB,IAAC;IAAhG,4DAEI;IAAA;IAAA,mJAA8E;IAC9E;IAAA,mJAA+E;IAC/E;IAAA,qJAA6E;IACrF;IAAA,4DAAiB;IACrB;IAAA,4DAAK;;;;;IARoD,gFAAmB;IACxD,0DAA8B;IAA9B,yGAA8B;IAEtC,0DAAuB;IAAvB,oFAAuB;IACZ,0DAAkE;IAAlE,uIAAkE;IAClE,0DAAmE;IAAnE,wIAAmE;IACnE,0DAAiE;IAAjE,sIAAiE;;;IAKpF,yEAAiE;IAAA,qHAC7D;IAAA,2EAA2B;IAAA,6DAAC;IAAA,4DAAO;IACvC;IAAA,4DAAK;;;IAKO,4EAAiF;IAAA,sFAA2B;IAAA,4DAAY;;;IACxH,4EAAkF;IAAA,6FAAkC;IAAA,4DAAY;;;;IAL5I,yEACI;IAAA;IAAA,qFACI;IAAA;IAAA,+EAC6H;IAD9E,iWAA+B,qLACrE,uBAAuB,IAD8C;IACoC,4DAAW;IACzH;IAAA,mJAAiF;IACjF;IAAA,mJAAkF;IAC1F;IAAA,4DAAiB;IACrB;IAAA,4DAAK;;;;;IAPmD,gFAAmB;IACvD,0DAA8B;IAA9B,yGAA8B;IAER,0DAA6B;IAA7B,0FAA6B;IAChD,0DAAqE;IAArE,0IAAqE;IACrE,0DAAsE;IAAtE,2IAAsE;;;IAMzF,yEAAgE;IAAA,qHAC5D;IAAA,2EAA2B;IAAA,6DAAC;IAAA,4DAAO;IACvC;IAAA,4DAAK;;;IAKO,4EAAqF;IAAA,kFAAuB;IAAA,4DAAY;;;IACxH,4EAAsF;IAAA,4FAAiC;IAAA,4DAAY;;;IACnI,4EAAoF;IAAA,qFAA0B;IAAA,4DAAY;;;;IANtI,yEACI;IAAA;IAAA,qFACI;IAAA;IAAA,4EAEI;IAFsD,0OAAS,uBAAuB,IAAC;IAA3F,4DAEI;IAAA;IAAA,mJAAqF;IACrF;IAAA,mJAAsF;IACtF;IAAA,qJAAoF;IAC5F;IAAA,4DAAiB;IACrB;IAAA,4DAAK;;;;;IARoD,gFAAmB;IACxD,0DAA8B;IAA9B,yGAA8B;IAErC,0DAAiC;IAAjC,8FAAiC;IACvB,0DAAyE;IAAzE,8IAAyE;IACzE,0DAA0E;IAA1E,+IAA0E;IAC1E,0DAAwE;IAAxE,6IAAwE;;;IAM3F,yEAA+D;IAAA,wEAAa;IAAA,2EAA2B;IAAA,6DAAC;IAAA,4DAAO;IAC/G;IAAA,4DAAK;;;;IAMW,4FAEI;IADA,gdAA4B,aAAa,YAAK;IAC9C;IAAA,+EAAkC;IAAA,gEAAK;IAAA,4DAAW;IACtD;IAAA,4DAAwB;;;IAGxB,4EAAqF;IAAA,mFAAwB;IAAA,4DAAY;;;;IAXzI,yEACQ;IAAA;IAAA,qFACQ;IAAA;IAAA,4EAAW;IAAA,2EAAgB;IAAA,4DAAY;IACvC;IAAA,4EAEA;IADA,+XAAiC,kiBAA0G,uBAAuB,IAAjI,wPAAqJ,WAAkB,IAAvK;IADjC,4DAEA;IAAA;IAAA,2KAEI;IAEJ;IAAA,wFAA6E;IAC7E;IAAA,uFAA+C;IAC/C;IAAA,qJAAqF;IACrG;IAAA,4DAAiB;IACjB;IAAA,4DAAK;;;;;;IAbmD,gFAAmB;IACnD,0DAA8B;IAA9B,yGAA8B;IAErB,0DAA6B;IAA7B,+EAA6B;IAEb,0DAAmD;IAAnD,wHAAmD;IAInD,0DAAmB;IAAnB,qEAAmB;IAEzC,0DAAyE;IAAzE,8IAAyE;;;IAKpG,yEAAgE;IAAA,uEAAW;IAAA,2EAA2B;IAAA,6DAAC;IAAA,4DAAO;IAC9G;IAAA,4DAAK;;;;IAMG,4FAEI;IADA,gdAA4B,WAAW,YAAK;IAC5C;IAAA,+EAAkC;IAAA,gEAAK;IAAA,4DAAW;IACtD;IAAA,4DAAwB;;;IAGxB,4EAAmF;IAAA,iFAAsB;IAAA,4DAAY;;;;IAX7H,yEACI;IAAA;IAAA,qFACI;IAAA;IAAA,4EAAW;IAAA,yEAAc;IAAA,4DAAY;IACrC;IAAA,4EAEA;IAF4C,gTAAS,WAAgB,IAAC,wPAAiG,WAAgB,IAAjH,22BACuC,uBAAuB,IAD9D;IAAtE,4DAEA;IAAA;IAAA,2KAEI;IAEJ;IAAA,wFAA4E;IAC5E;IAAA,uFAA6C;IAC7C;IAAA,qJAAmF;IACvF;IAAA,4DAAiB;IACrB;IAAA,4DAAK;;;;;;IAbmD,gFAAmB;IACvD,0DAA8B;IAA9B,0GAA8B;IAE6B,0DAA4B;IAA5B,yFAA4B;IAElE,0DAAiD;IAAjD,uHAAiD;IAIjD,0DAAiB;IAAjB,qEAAiB;IAEvC,0DAAuE;IAAvE,6IAAuE;;;IAKtF,yEAAgE;IAAA,oIAC5D;IAAA,2EAA2B;IAAA,6DAAC;IAAA,4DAAO;IACvC;IAAA,4DAAK;;;IAKO,4EAAuF;IAAA,yFAA8B;IAAA,4DAAY;;;IACjI,4EAAwF;IAAA,6FAAkC;IAAA,4DAAY;;;IACtI,4EAAsF;IAAA,qFAA0B;IAAA,4DAAY;;;;IANxI,yEACI;IAAA;IAAA,qFACI;IAAA;IAAA,+EACiK;IAA5J,uYAAyC,sLAA8C,uBAAuB,IAArE;IAAwG,4DAAW;IAC7J;IAAA,mJAAuF;IACvF;IAAA,mJAAwF;IACxF;IAAA,qJAAsF;IAC9F;IAAA,4DAAiB;IACrB;IAAA,4DAAK;;;;;IARoD,gFAAmB;IACxD,0DAA8B;IAA9B,0GAA8B;IAEK,0DAAmC;IAAnC,gGAAmC;IACnE,0DAA2E;IAA3E,iJAA2E;IAC3E,0DAA4E;IAA5E,kJAA4E;IAC5E,0DAA0E;IAA1E,gJAA0E;;;IAMjG,yEAAgE;IAAA,mEAAO;IAAA,4DAAK;;;;IAC5E,yEACY;IAAA;IAAA,6EACgB;IADsC,8VAA8B,KAAK,KAAE;IAC3E;IAAA,2EAAU;IAAA,8DAAG;IAAA,4DAAW;IACxC;IAAA,4DAAS;IACrB;IAAA,4DAAK;;;IAH6C,0DAAe;IAAf,6EAAe;;;IAMjE,oEAA2C;;;;IAC3C,yEAAwF;IAAA,6EAA2F;IAApD,wXAA+B;IAAqB,2EAAU;IAAA,iEAAM;IAAA,4DAAW;IAAA,4DAAS;IAAA,4DAAK;;;;IAA7D,0DAAmB;IAAnB,wFAAmB;;;IAEtM,oEAAoE;;;IAEpE,oEAA0E;;;IAuBtE,yEAAgE;IAAA,sGAC5D;IAAA,2EAA2B;IAAA,6DAAC;IAAA,4DAAO;IACvC;IAAA,4DAAK;;;IAKO,4EAAiF;IAAA,2EAAgB;IAAA,4DAAY;;;IAC7G,4EAAkF;IAAA,4FAAiC;IAAA,4DAAY;;;IAC/H,4EAAgF;IAAA,qFAA0B;IAAA,4DAAY;;;;IANlI,yEACI;IAAA;IAAA,qFACI;IAAA;IAAA,4EAEI;IADgC,0SAAyB,MAAM,4BAAwB,oLAAU,uBAAuB,IAAjC;IAD3F,4DAEI;IAAA;IAAA,oJAAiF;IACjF;IAAA,oJAAkF;IAClF;IAAA,sJAAgF;IACxF;IAAA,4DAAiB;IACrB;IAAA,4DAAK;;;;;IARuD,iFAAmB;IAC3D,0DAA8B;IAA9B,0GAA8B;IAErC,0DAA8B;IAA9B,4FAA8B;IACpB,0DAAqE;IAArE,4IAAqE;IACrE,0DAAsE;IAAtE,6IAAsE;IACtE,0DAAoE;IAApE,2IAAoE;;;IAMvF,yEAAgE;IAAA,iHAC5D;IAAA,2EAA2B;IAAA,6DAAC;IAAA,4DAAO;IACvC;IAAA,4DAAK;;;IAKO,4EAAwF;IAAA,kFAAuB;IAAA,4DAAY;;;IAC3H,4EAAyF;IAAA,4FAAiC;IAAA,4DAAY;;;IACtI,4EAAuF;IAAA,qFAA0B;IAAA,4DAAY;;;;IANzI,yEACI;IAAA;IAAA,qFACI;IAAA;IAAA,4EAEI;IADuC,0SAAyB,aAAa,4BAAwB,oLAAU,uBAAuB,IAAjC;IADzG,4DAEI;IAAA;IAAA,oJAAwF;IACxF;IAAA,oJAAyF;IACzF;IAAA,sJAAuF;IAC/F;IAAA,4DAAiB;IACrB;IAAA,4DAAK;;;;;IARuD,iFAAmB;IAC3D,0DAA8B;IAA9B,0GAA8B;IAErC,0DAAqC;IAArC,mGAAqC;IAC3B,0DAA4E;IAA5E,mJAA4E;IAC5E,0DAA6E;IAA7E,oJAA6E;IAC7E,0DAA2E;IAA3E,kJAA2E;;;IAM9F,yEAAgE;IAAA,sHAC5D;IAAA,2EAA2B;IAAA,6DAAC;IAAA,4DAAO;IACvC;IAAA,4DAAK;;;IAMO,4EAAwF;IAAA,mFAAwB;IAAA,4DAAY;;;IAC5H,4EAAyF;IAAA,4FAAiC;IAAA,4DAAY;;;;IANlJ,yEACI;IAAA;IAAA,qFACI;IAAA;IAAA,4EAGI;IAFsD,0SAAyB,aAAa,4BAAwB,oLAAU,uBAAuB,IAAjC;IADxH,4DAGI;IAAA;IAAA,oJAAwF;IACxF;IAAA,oJAAyF;IACjG;IAAA,4DAAiB;IACrB;IAAA,4DAAK;;;;;IARuD,iFAAmB;IAC3D,0DAA8B;IAA9B,0GAA8B;IAEtB,0DAAqC;IAArC,mGAAqC;IAE1C,0DAA4E;IAA5E,mJAA4E;IAC5E,0DAA6E;IAA7E,oJAA6E;;;IAMhG,yEAAgE;IAAA,6HAC5D;IAAA,2EAA2B;IAAA,6DAAC;IAAA,4DAAO;IACvC;IAAA,4DAAK;;;IAKO,4EAA2F;IAAA,sFAA2B;IAAA,4DAAY;;;IAClI,4EAA4F;IAAA,6FAAkC;IAAA,4DAAY;;;;IALtJ,yEACI;IAAA;IAAA,qFACI;IAAA;IAAA,+EAC4K;IADtF,qWAA+B,qPAC/B,gBAAgB,4BADe,uLACmB,uBAAuB,IAD1C;IAC4C,4DAAW;IACxK;IAAA,oJAA2F;IAC3F;IAAA,oJAA4F;IACpG;IAAA,4DAAiB;IACrB;IAAA,4DAAK;;;;;IAPuD,iFAAmB;IAC3D,0DAA8B;IAA9B,0GAA8B;IAEtB,0DAAwC;IAAxC,sGAAwC;IAC7C,0DAA+E;IAA/E,sJAA+E;IAC/E,0DAAgF;IAAhF,uJAAgF;;;IAMnG,yEAAgE;IAAA,wIAC5D;IAAA,2EAA2B;IAAA,6DAAC;IAAA,4DAAO;IACvC;IAAA,4DAAK;;;IAKO,4EAA+F;IAAA,2FAAgC;IAAA,4DAAY;;;IAC3I,4EAAgG;IAAA,4FAAiC;IAAA,4DAAY;;;IAC7I,4EAAgK;IAAA,2FAAgC;IAAA,4DAAY;;;;IANxN,yEACI;IAAA;IAAA,qFACI;IAAA;IAAA,4EAEI;IAD4D,0SAAyB,oBAAoB,4BAAwB,oLAAU,uBAAuB,IAAjC;IADrI,4DAEI;IAAA;IAAA,oJAA+F;IAC/F;IAAA,oJAAgG;IAChG;IAAA,sJAAgK;IACxK;IAAA,4DAAiB;IACrB;IAAA,4DAAK;;;;;IARuD,iFAAmB;IAC3D,0DAA8B;IAA9B,0GAA8B;IAEvB,0DAA4C;IAA5C,0GAA4C;IAChD,0DAAmF;IAAnF,0JAAmF;IACnF,0DAAoF;IAApF,2JAAoF;IACpF,0DAAoJ;IAApJ,wOAAoJ;;;IAMvK,yEAAgE;IAAA,oIAC5D;IAAA,2EAA2B;IAAA,6DAAC;IAAA,4DAAO;IACvC;IAAA,4DAAK;;;IAKO,4EAAqF;IAAA,qFAA0B;IAAA,4DAAY;;;IAC3H,4EAA4J;IAAA,qFAA0B;IAAA,4DAAY;;;IAClM,4EAAoF;IAAA,qFAA0B;IAAA,4DAAY;;;;IANtI,yEACI;IAAA;IAAA,qFACI;IAAA;IAAA,4EAEI;IAFmE,sWAAmC,kPACZ,UAAU,4BADE,oLACgC,uBAAuB,IADvD;IAA1G,4DAEI;IAAA;IAAA,oJAAqF;IACrF;IAAA,oJAA4J;IAC5J;IAAA,sJAAoF;IAC5F;IAAA,4DAAiB;IACrB;IAAA,4DAAK;;;;;IARuD,iFAAmB;IAC3D,0DAA8B;IAA9B,0GAA8B;IAER,0DAAkC;IAAlC,gGAAkC;IACrD,0DAAyE;IAAzE,gJAAyE;IACzE,0DAAgJ;IAAhJ,oOAAgJ;IAChJ,0DAAwE;IAAxE,+IAAwE;;;IAM3F,yEAAgE;IAAA,mEAAO;IAAA,4DAAK;;;;IAC5E,yEACY;IAAA;IAAA,6EACgB;IADsC,+VAA2B;IACjE;IAAA,2EAAU;IAAA,8DAAG;IAAA,4DAAW;IACxC;IAAA,4DAAS;IACrB;IAAA,4DAAK;;;IAH6C,0DAAe;IAAf,6EAAe;;;IAMjE,oEAA2C;;;;IAC3C,yEAA4F;IAAA,6EAA+F;IAAzD,8XAAoC;IAAqB,2EAAU;IAAA,iEAAM;IAAA,4DAAW;IAAA,4DAAS;IAAA,4DAAK;;;;IAA7D,0DAAmB;IAAnB,wFAAmB;;;IAEtM,oEAA0E;;;IAEtF,oEAAgF;;;;IAO5F,6EACK;IAD0E,yWAAoC,IAAI,KAAG;IACrH,0FAAI;IAAA,4DAAS;;;;IAClB,6EACI;IAD0E,yWAAoC,KAAK,KAAE;IACrH,2FAAM;IAAA,4DAAS;;;IA3PnC,0EAEQ;IAAA;IAAA,yEACA;IAAA;IAAA,sEACI;IAAA;IAAA,yEACI;IAAA;IAAA,yEACA;IAAA;IAAA,0EACA;IAAA;IAAA,+EACQ;IAAA;IAAA,6EACI;IAAA;IAAA,iIAAgE;IAGhE;IAAA,kIACI;IAQR;IAAA,qEAAe;IACf;IAAA,6EACQ;IAAA;IAAA,iIAAiE;IAGjE;IAAA,kIACI;IAOJ;IAAA,iEAAS;IACb;IAAA,qEAAe;IACf;IAAA,6EACQ;IAAA;IAAA,iIAAgE;IAGhE;IAAA,kIACI;IAQJ;IAAA,iEAAS;IACb;IAAA,qEAAe;IACf;IAAA,6EACQ;IAAA;IAAA,iIAA+D;IAE/D;IAAA,kIACQ;IAaZ;IAAA,qEAAe;IACf;IAAA,6EACI;IAAA;IAAA,iIAAgE;IAEhE;IAAA,kIACI;IAaR;IAAA,qEAAe;IACf;IAAA,6EACQ;IAAA;IAAA,iIAAgE;IAGhE;IAAA,kIACI;IASR;IAAA,qEAAe;IACnB;IAAA,6EACQ;IAAA;IAAA,iIAAgE;IAChE;IAAA,iIACY;IAIpB;IAAA,qEAAe;IACf;IAAA,6EACQ;IAAA;IAAA,iIAAsC;IACtC;IAAA,iIAAwF;IACpG;IAAA,qEAAe;IACvB;IAAA,iIAA+D;IAE/D;IAAA,iIAAqE;IACrE;IAAA,iEACR;IAAA;IAAA,4DAAQ;IACR;IAAA,4DAAM;IACN;IAAA,4DAAM;IAEV;IAAA,4DAAM;IACN;IAAA,4DAAM;IACV;IAAA,4DAAM;IAEV;IAAA,0EACQ;IAAA;IAAA,0EACQ;IAAA;IAAA,yEAA2B;IAAA,kFAAsB;IAAA,4DAAK;IAC9D;IAAA,4DAAM;IACN;IAAA,iEACJ;IAAA;IAAA,4DAAM;IAGN;IAAA,0EACA;IAAA;IAAA,4EACA;IAAA;IAAA,2EACQ;IAAA;IAAA,kFACQ;IAAA;IAAA,8EACI;IAAA;IAAA,mIAAgE;IAGhE;IAAA,oIACI;IASR;IAAA,qEAAe;IACf;IAAA,8EACQ;IAAA;IAAA,mIAAgE;IAGhE;IAAA,oIACI;IASR;IAAA,qEAAe;IACf;IAAA,8EACQ;IAAA;IAAA,mIAAgE;IAGhE;IAAA,oIACI;IASR;IAAA,qEAAe;IACf;IAAA,8EACQ;IAAA;IAAA,mIAAgE;IAGhE;IAAA,oIACI;IAQR;IAAA,qEAAe;IACf;IAAA,8EACQ;IAAA;IAAA,mIAAgE;IAGhE;IAAA,oIACI;IASR;IAAA,qEAAe;IACf;IAAA,8EACQ;IAAA;IAAA,mIAAgE;IAGhE;IAAA,oIACI;IASR;IAAA,qEAAe;IACf;IAAA,8EACQ;IAAA;IAAA,mIAAgE;IAChE;IAAA,mIACY;IAIpB;IAAA,qEAAe;IACf;IAAA,8EACQ;IAAA;IAAA,mIAAsC;IACtC;IAAA,mIAA4F;IACxG;IAAA,qEAAe;IACf;IAAA,mIAAqE;IAEjF;IAAA,mIAA2E;IACvF;IAAA,4DAAQ;IACR;IAAA,4DAAM;IACN;IAAA,kEACR;IAAA;IAAA,4DAAM;IACN;IAAA,2EACI;IAAA;IAAA,gFACI;IAAA;IAAA,2IACK;IACL;IAAA,2IACI;IACR;IAAA,4DAAU;IACd;IAAA,4DAAM;IACF;IAAA,4DAAM;IAGlB;IAAA,4DAAO;;;IAjQwB,8FAA8B;IAOrB,2DAA+C;IAA/C,+GAA+C;IA2G5C,2DAA2C;IAA3C,4GAA2C;IAElD,0DAAwD;IAAxD,6GAAwD;IAqBnD,2DAAwC;IAAxC,wGAAwC;IAsGtB,2DAAiD;IAAjD,kHAAiD;IAEpE,0DAA8D;IAA9D,mHAA8D;IAO/B,2DAAqB;IAArB,sFAAqB;IAErB,0DAAqB;IAArB,sFAAqB;;ADpOhG,sEAAsE;AAE/D,MAAM,UAAU,GAAG;IACxB,KAAK,EAAE;QACL,SAAS,EAAE,IAAI;KAChB;IACD,OAAO,EAAE;QACP,SAAS,EAAE,YAAY;QACvB,cAAc,EAAE,MAAM;QACtB,aAAa,EAAE,IAAI;QACnB,kBAAkB,EAAE,MAAM;KAC3B;CACF,CAAC;AAYK,MAAM,4BAA4B;IACvC,YAAmB,MAAiB,EAAU,QAAqB,EAAU,YAAsB,oEAAW,EAAE,EAC3E,QAA2B;IAC9D,yCAAyC;IACjB,OAAe,EAAU,QAAwB,EAAS,EAAe,EAAS,OAA0B;QAHnH,WAAM,GAAN,MAAM,CAAW;QAAU,aAAQ,GAAR,QAAQ,CAAa;QAAU,cAAS,GAAT,SAAS,CAA0B;QAC3E,aAAQ,GAAR,QAAQ,CAAmB;QAEtC,YAAO,GAAP,OAAO,CAAQ;QAAU,aAAQ,GAAR,QAAQ,CAAgB;QAAS,OAAE,GAAF,EAAE,CAAa;QAAS,YAAO,GAAP,OAAO,CAAmB;QAUtI,eAAU,GAAG,IAAI,iEAAS,EAAE,CAAC;QAC7B,oBAAe,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QAInD,WAAM,GAAW,KAAK,CAAC;QACvB,UAAK,GAAY,KAAK,CAAC;QACvB,oBAAe,GAAY,KAAK,CAAC;QACjC,wBAAmB,GAAa,KAAK,CAAC;QAKtC,SAAI,GAAW,KAAK,CAAC;QAKrB,uBAAkB,GAAkC,OAAO,CAAC;QAC5D,qBAAgB,GAAgC,KAAK,CAAC;QAOtD,6BAAwB,GAAa,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACzI,mCAA8B,GAAa,CAAC,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;QAmQlK,yBAAoB,GAAG,UAAU,KAAa;YAG5C,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC;YAC9B,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;gBACjE,yCAAyC;gBACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACnC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,mCAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;oBACrE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,mCAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;iBAClE;gBACD,IAAI,CAAC,UAAU,CAAC,qBAAqB,GAAG,GAAG,CAAC;gBAC5C,IAAI,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,MAAM,KAAK,CAAC,EAAE;oBACtD,2CAA2C;oBAC3C,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAC;iBAC/I;gBACD,mFAAmF;gBACnF,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAC7B,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAE7B,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;gBACpE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;gBACnB,IAAI,CAAC,UAAU,CAAC,cAAc,GAAG,GAAG,CAAC;gBACrC,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC/C,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;iBACpB;gBACD,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC/C,2CAA2C;oBAC3C,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,kBAAkB,EAAE,EAAE,EAAE,CAAC,CAAC;iBACnJ;gBACD,6EAA6E;gBAC7E,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAC7B,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAE7B,CAAC,EAAC,CAAC,KAAK,EAAC,EAAE;gBACT,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YACrB,CAAC,CAAC,CAAC;QAEL,CAAC,CAAC;QAGF,gDAAgD;QAChD,gBAAW,GAAG,UAAU,QAAa,EAAE,MAAW;YAChD,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;gBAC7C,OAAO,IAAI,CAAC;aACb;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QAEF,gCAA2B,GAAG;YAC5B,wCAAwC;YACxC,IAAI,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC;YAEhE,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;gBACpE,OAAO,CAAC,CAAC;aACV;YACD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;gBAE/D,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,mBAAmB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;uBACtF,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,OAAO,IAAI,mBAAmB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;uBAC7F,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,WAAW,IAAI,mBAAmB,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;uBACrG,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,WAAW;uBACvC,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE;oBAE1C,IAAI,KAAK,KAAK,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE;wBAClF,OAAO,CAAC,CAAC;qBACV;oBAED,OAAO,CAAC,CAAC;iBACV;gBACD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,EAAE;oBACnG,OAAO,CAAC,CAAC;iBACV;aACF;YACD,OAAO,CAAC,CAAC;QACX,CAAC,CAAC;QAEF,0BAAqB,GAAG;YACtB,IAAI,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;YACnD,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;gBACxD,OAAO,KAAK,CAAC;aACd;YACD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;gBACzD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;uBAC1E,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,WAAW,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,KAAK,CAAC;uBACvF,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,WAAW,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,KAAK,CAAC;uBACvF,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,cAAc,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,cAAc,KAAK,CAAC;uBAC7F,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,kBAAkB,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,kBAAkB,KAAK,CAAC;uBACrG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;oBACnC,IAAI,KAAK,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE;wBACrE,OAAO,KAAK,CAAC;qBACd;oBACD,OAAO,KAAK,CAAC;iBACd;aACF;YAAA,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QAvYC,IAAI,CAAC,UAAU,CAAC,qBAAqB,GAAG,IAAI,KAAK,EAAqB,CAAC;QACvE,2CAA2C;QAC3C,iJAAiJ;QACjJ,IAAI,CAAC,UAAU,CAAC,cAAc,GAAG,IAAI,KAAK,EAA0B,CAAC;QACrE,2CAA2C;QAC3C,qJAAqJ;IACvJ,CAAC;IAkCD,QAAQ;QACN,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;QAEnB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,wBAAwB;QACxB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC;QACxF,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IACD,qBAAqB;QACnB,IAAI,CAAC,gBAAgB,GAAG,IAAI,wDAAS,CAAC;YACpC,qBAAqB,EAAE,IAAI,wDAAS,CAAC,EAAE,CAAC;YACxC,2BAA2B,EAAE,IAAI,wDAAS,CAAC,EAAE,CAAC;SAC/C,CAAC,CAAC;IACL,CAAC;IACD,mBAAmB;QAEjB,IAAI,CAAC,qBAAqB,GAAG,IAAI,wDAAS,CAAC,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC,2BAA2B,GAAG,IAAI,wDAAS,CAAC,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;YAC7D,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,uBAAuB,CAAc,CAAC;YAC7F,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;YACnD,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,6BAA6B,CAAc,CAAC;YACzG,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;IACL,CAAC;IACD,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,qBAAkC,CAAC;IAC3E,CAAC;IACD,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,2BAAwC,CAAC;IACjF,CAAC;IACD,SAAS,CAAC,cAAc;QAEtB,OAAO,IAAI,wDAAS,CAAC;YACnB,2CAA2C;YAC3C,IAAI,EAAE,IAAI,0DAAW,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,EAAC,yDAAU,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,yDAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/H,2CAA2C;YAC3C,OAAO,EAAE,IAAI,0DAAW,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,yDAAU,CAAC,QAAQ,EAAC,yDAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YACjG,2CAA2C;YAC3C,WAAW,EAAE,IAAI,0DAAW,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,yDAAU,CAAC,QAAQ,EAAC,yDAAU,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,yDAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5I,WAAW,EAAE,IAAI,0DAAW,CAAC,cAAc,CAAC,WAAW,EAAC,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC9E,SAAS,EAAE,IAAI,0DAAW,CAAC,cAAc,CAAC,SAAS,EAAC,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC1E,aAAa,EAAE,IAAI,0DAAW,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC,yDAAU,CAAC,QAAQ,EAAC,yDAAU,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,yDAAU,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;SAClJ,CAAC,CAAC;IACL,CAAC;IACD,gBAAgB,CAAC,WAAW;QAE1B,OAAO,IAAI,wDAAS,CAAC;YACnB,IAAI,EAAE,IAAI,0DAAW,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,yDAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5H,WAAW,EAAE,IAAI,0DAAW,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,yDAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1I,WAAW,EAAE,IAAI,0DAAW,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,yDAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3I,cAAc,EAAE,IAAI,0DAAW,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YAC7G,kBAAkB,EAAE,IAAI,0DAAW,CAAC,WAAW,CAAC,kBAAkB,EAAE,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,OAAO,CAAC,sDAAsD,CAAC,CAAC,CAAC;YACtK,QAAQ,EAAE,IAAI,0DAAW,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;SACvG,CAAC,CAAC;IACL,CAAC;IACD,UAAU,CAAC,KAAU;QACnB,IAAI,CAAM,CAAC;QACX,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAE,iDAAiD;QACtE,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC5H,CAAC;IAED,iBAAiB,CAAC,KAAU;QAC1B,IAAI,CAAM,CAAC;QACX,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAE,iDAAiD;QACtE,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC5H,CAAC;IAED,QAAQ,CAAC,KAAU;QACjB,IAAI,CAAM,CAAC;QACX,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAE,iDAAiD;QACtE,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,eAAe,CAAC,UAA6B,EAAE,SAAS;QACtD,2CAA2C;QAC3C,IAAI,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,MAAM,CAAC;QACxE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,oBAAoB,GAAG,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,oBAAoB,GAAG,CAAC,CAAC,CAAC,SAAS;YAC5J,CAAC,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,oBAAoB,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,oBAAoB,GAAG,CAAC,CAAC,CAAC,WAAW;YACrJ,CAAC,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,oBAAoB,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,oBAAoB,GAAG,CAAC,CAAC,CAAC,aAAa,EAAE;YAC5J,OAAO;SACR;QACD,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACtJ,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,uBAAuB,CAAc,CAAC;QAC7F,2CAA2C;QAC3C,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC9K,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC;QACxD,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC;QACtD,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC;QACjD,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC;QACxD,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC;QACpD,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,IAAI,CAAC,WAAW,CAAC;QAC1D,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC;IAEf,CAAC;IAED,kBAAkB,CAAC,OAAe,EAAE,eAA0B;QAC5D,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAClD,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,CAAC;QACpD,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,sBAAsB,EAAE,CAAC;IAC7D,CAAC;IAGD,kBAAkB,CAAC,KAAa;QAC9B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,yBAAyB,CAAC,CAAC;QAC3D,2BAA2B;QAC3B,2BAA2B;IAC7B,CAAC;IAED,UAAU,CAAC,OAAO,EAAE,OAAO;QACzB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8GAAqB,EAAE;YACxD,YAAY,EAAE,IAAI;YAClB,WAAW,EAAE,IAAI;YACjB,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE;SAC7C,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;YAC7B,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE;gBAC/B,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACxB,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;gBACxB,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4IAAsB,EAAE;oBAC1D,YAAY,EAAE,IAAI;oBAClB,WAAW,EAAE,IAAI;oBACjB,KAAK,EAAE,OAAO;oBACd,IAAI,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,uCAAuC,EAAE;iBACpF,CAAC;aACH;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAKD,gBAAgB;QACd,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChD,kFAAkF;QAClF,sBAAsB;QACtB,mDAAmD;QACnD,+CAA+C;QAC/C,MAAM;IACR,CAAC;IACD,sBAAsB,CAAC,IAAY;IAEnC,CAAC;IAGD,YAAY,CAAC,WAAmC;QAC9C,IAAI,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,CAAC;QAC9D,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,WAAW;YACzM,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,kBAAkB,EAAE;YACvN,OAAO;SACR;QACD,2CAA2C;QAC3C,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1J,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,6BAA6B,CAAc,CAAC;QACzG,2CAA2C;QAC3C,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACrM,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAC,IAAI,CAAC,UAAU,CAAC;QACnD,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAC,IAAI,CAAC,UAAU,CAAC;QAC/C,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAC,IAAI,CAAC,UAAU,CAAC;QACtD,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAC,IAAI,CAAC,UAAU,CAAC;QACtD,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,EAAC,IAAI,CAAC,UAAU,CAAC;QACzD,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,EAAC,IAAI,CAAC,UAAU,CAAC;QAC7D,2CAA2C;QAC3C,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC;IAEf,CAAC;IAGD,uBAAuB,CAAC,KAAa;QACnC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,yBAAyB,CAAC,CAAC;IAE9D,CAAC;IAED,WAAW,CAAC,OAAO,EAAE,OAAO;QAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8GAAqB,EAAE;YACxD,YAAY,EAAE,IAAI;YAClB,WAAW,EAAE,IAAI;YACjB,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE;SAC7C,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;YAC7B,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE;gBAC/B,IAAI,CAAC,MAAM,EAAE,CAAC;gBACd,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;gBACzB,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4IAAsB,EAAE;oBAC1D,YAAY,EAAE,IAAI;oBAClB,WAAW,EAAE,IAAI;oBACjB,KAAK,EAAE,OAAO;oBACd,IAAI,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,8CAA8C,EAAE;iBAC3F,CAAC;aACH;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,MAAM;QACJ,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACrD,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC;IAED,QAAQ;QACN,wDAAwD;QACxD,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QACvF,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACpC,CAAC;IAED,QAAQ,CAAC,MAAY,EAAE,QAAc;QACnC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,MAAM,IAAI,QAAQ,EAAE;YACtB,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,OAAY,EAAE,EAAE;gBAC7D,IAAI,OAAO,CAAC,SAAS,IAAI,MAAM,IAAI,OAAO,CAAC,WAAW,IAAI,QAAQ,EAAE;oBAClE;wBACE,KAAK,EAAE,CAAC;qBACT;iBACF;YACH,CAAC,CAAC,CAAC;SACJ;QAED,IAAI,KAAK,KAAK,CAAC,EAAE;YACf,0HAA0H;YAC1H,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;gBACjE,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;gBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;aACxC,CAAC,CAAC;SACJ;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,UAAU,CAAC,GAAQ,EAAE,SAAS,EAAE,CAAC;QAC/B,IAAG,SAAS,IAAE,aAAa,EAAC;YAC1B,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,CAAC;SAC3D;QACD,IAAG,SAAS,IAAE,WAAW,EAAC;YACxB,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,CAAC;SACzD;IACH,CAAC;IAmGD,OAAO,CAAC,KAAK,EAAE,CAAC;QACd,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,mCAAM,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC5G,CAAC;IACD,SAAS,CAAC,KAAK,EAAE,CAAC;QAChB,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,mCAAM,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC1G,CAAC;IACD,iBAAiB,CAAC,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;IACrE,CAAC;IACD,aAAa,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;IACxE,CAAC;IACD,iBAAiB,CAAC,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;IAC5E,CAAC;IACD,mBAAmB,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;IAC9E,CAAC;IAED,cAAc,CAAC,GAAc,EAAE,KAAc;QAC3C,IAAI,KAAK,GAAQ,IAAI,IAAI,EAAE,CAAC;QAC5B,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;QACnF,IAAI,yBAAyB,GAAG,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACnE,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAC;YACjC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,sBAAsB,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC;YAC5D,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC;YAC1D,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC;YACrD,IAAI,CAAC,sBAAsB,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC;YAC5D,IAAI,CAAC,sBAAsB,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC;YACxD,IAAI,CAAC,sBAAsB,CAAC,eAAe,EAAE,IAAI,CAAC,WAAW,CAAC;SAC/D;QACD,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAC;YAChC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;YAChC,IAAI,CAAC,sBAAsB,CAAC,UAAU,EAAC,IAAI,CAAC,UAAU,CAAC;YACvD,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAC,IAAI,CAAC,UAAU,CAAC;YACnD,IAAI,CAAC,sBAAsB,CAAC,aAAa,EAAC,IAAI,CAAC,UAAU,CAAC;YAC1D,IAAI,CAAC,sBAAsB,CAAC,aAAa,EAAC,IAAI,CAAC,UAAU,CAAC;YAC1D,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,EAAC,IAAI,CAAC,UAAU,CAAC;YAC7D,IAAI,CAAC,sBAAsB,CAAC,oBAAoB,EAAC,IAAI,CAAC,UAAU,CAAC;SAClE;QACD,IAAI,yBAAyB,KAAK,CAAC,EAAE;YACnC,6GAA6G;YAC7G,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,0BAA0B,EAAE,GAAG,EAAE;gBAClD,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;gBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;aACxC,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;SACb;QAED,IAAI,yBAAyB,KAAK,CAAC,EAAE;YAEnC,gIAAgI;YAChI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,2CAA2C,EAAE,GAAG,EAAE;gBACnE,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;gBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;aACxC,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;SACb;QAED,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE;YACjC,oIAAoI;YACpI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gDAAgD,EAAE,GAAG,EAAE;gBACxE,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;gBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;aACxC,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;SACb;QAED,IAAI,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;QACnD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACzD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,kBAAkB,CAAC,EAAE;gBAEhE,4IAA4I;gBAC5I,OAAO,KAAK,CAAC;aACd;YACD,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,EAAE,EAAE;gBAE7C,wHAAwH;gBACxH,OAAO,KAAK,CAAC;aACd;SACF;QAED,IAAI,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC;QAChE,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YAE/D,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE;gBACpE,sIAAsI;gBACtI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,kDAAkD,EAAE,GAAG,EAAE;oBAC1E,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;oBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;iBACxC,CAAC,CAAC;gBACH,OAAO,KAAK,CAAC;aACd;YACD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE;gBAClE,gJAAgJ;gBAChJ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,4DAA4D,EAAE,GAAG,EAAE;oBACpF,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;oBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;iBACxC,CAAC,CAAC;gBACH,OAAO,KAAK,CAAC;aACd;SACF;QAED,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;QAC1C,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YACtE,IAAI,KAAK,EAAE;gBACT,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,wCAAwC,EAAE,GAAG,EAAE;oBAChE,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;oBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;iBACxC,CAAC,CAAC;aACJ;iBACG;gBACF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,0CAA0C,EAAE,GAAG,EAAE;oBAClE,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;oBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;iBACxC,CAAC,CAAC;aACJ;YACD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC/C,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;YACX,sHAAsH;YACtH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,oCAAoC,EAAE,GAAG,EAAE;gBAC5D,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAC,CAAC,aAAa,CAAC;gBAC1B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;gBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;aACxC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC;IACf,CAAC;IAED,sBAAsB,CAAC,WAAkB,EAAE,UAAqB;QAC9D,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;QACrE,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,sBAAsB,EAAE,CAAC;QACxD,IAAI,WAAW,KAAK,eAAe,EAAC;YAClC,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;YAC7B,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,QAAQ,EAAC,yDAAU,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,yDAAU,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;YACnI,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,sBAAsB,EAAE,CAAC;SAC3D;aACI,IAAI,WAAW,KAAK,aAAa,EAAC;YACrC,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,QAAQ,EAAC,yDAAU,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,yDAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;YAClI,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,sBAAsB,EAAE,CAAC;SAC3D;aAEI,IAAI,WAAW,KAAK,SAAS,EAAC;YACjC,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,QAAQ,EAAC,yDAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/F,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,sBAAsB,EAAE,CAAC;SAC3D;aAEI,IAAI,WAAW,KAAK,MAAM,EAAC;YAC9B,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,QAAQ,EAAC,yDAAU,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,yDAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YACnI,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,sBAAsB,EAAE,CAAC;SAC3D;aACI,IAAI,WAAW,KAAK,oBAAoB,EAAC;YAC5C,IAAI,CAAC,mBAAmB,GAAG,KAAK;YAChC,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,OAAO,CAAC,sDAAsD,CAAC,CAAC,CAAC;YACjJ,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,sBAAsB,EAAE,CAAC;SAC3D;aACI,IAAI,WAAW,KAAK,aAAa,EAAC;YACrC,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,QAAQ,EAAC,yDAAU,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,yDAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YACnI,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,sBAAsB,EAAE,CAAC;SAC3D;aACI,IAAI,WAAW,KAAK,UAAU,EAAC;YAClC,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,QAAQ,EAAC,yDAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;YACpG,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,sBAAsB,EAAE,CAAC;SAC3D;IACL,CAAC;IAED,cAAc,CAAC,KAAU;QACvB,IAAI,IAAI,GAAG;YACT,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE;YACnD,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE;SACzF,CAAC;QACF,KAAK,IAAI,KAAK,IAAI,IAAI,EAAE;YACtB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;gBAAE,SAAS;YAC1C,IAAI,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE;gBACjE,OAAO,CAAC,eAAe;aACxB;SACF;QACD,KAAK,CAAC,cAAc,EAAE,CAAC;IACzB,CAAC;IACD,aAAa,CAAC,KAAU;QACtB,IAAI,MAAM,GAAG,mDAAmD,CAAC;QACjE,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACtB,OAAO,IAAI,CAAC;SACb;aACI;YACH,OAAO,KAAK,CAAC;SACd;IACH,CAAC;IAED,WAAW,CAAC,KAAU;QACpB,IAAI,CAAM,CAAC;QACX,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAE,iDAAiD;QACtE,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACpG,CAAC;;wGAxlBU,4BAA4B,4cAE7B,8EAAiB,mEAEjB,sDAAM;4GAJL,4BAA4B;;;;;;;qFAP5B;QAGT,sDAAsD;SACvD;QCjDS;QAAA,yEACQ;QAAA;QAAA,yEACQ;QAAA;QAAA,wEAA2B;QAAA,oFAAyB;QAAA,4DAAK;QACjE;QAAA,4DAAM;QACV;QAAA,4DAAM;QAElB;QAAA,8HAEQ;QAgQR;QAAA,kFAEA;QAAA;QAAA,wEAAmB;QAAA,uEAAW;QAAA,4DAAI;QAClC;QAAA,4DAAc;QAElB;;QAvQU,2DAAwB;QAAxB,sFAAwB;QAkQ4B,0DAAmB;QAAnB,4EAAmB;;6FDpNpE,4BAA4B;cAXxC,uDAAS;eAAC;gBACT,QAAQ,EAAE,0BAA0B;gBACpC,WAAW,EAAE,uCAAuC;gBACpD,SAAS,EAAE,CAAC,uCAAuC,CAAC;gBACpD,SAAS,EAAE;gBAGT,sDAAsD;iBACvD;aACF;;sBAII,oDAAM;uBAAC,8EAAiB;;sBAExB,oDAAM;uBAAC,sDAAM;kPAoBI,KAAK;kBAAxB,uDAAS;mBAAC,OAAO;YACG,MAAM;kBAA1B,uDAAS;mBAAC,QAAQ;;;;;;;;;;;;;;AE9ErB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAoE;AACX;AAGI;AACF;AACV;AACE;AAClB;;;;;;;;;;;;ICHjB,yEAAgF;IAAA,iEAAK;IAAA,4DAAK;;;IAC1F,yEAAyC;IAAA,uDAAkB;IAAA,4DAAK;;;IAAvB,0DAAkB;IAAlB,6FAAkB;;;IAI3D,yEAAgF;IAAA,uEAAW;IAAA,4DAAK;;;IAChG,yEAAyC;IAAA,uDAA4B;IAAA,4DAAK;;;IAAjC,0DAA4B;IAA5B,uGAA4B;;;IAIrE,yEAAgF;IAAA,wEAAY;IAAA,4DAAK;;;IACjG,yEAAyC;IAAA,uDAA6B;IAAA,4DAAK;;;IAAlC,0DAA6B;IAA7B,wGAA6B;;;IAItE,yEAAgF;IAAA,uEAAW;IAAA,4DAAK;;;IAChG,yEAAyC;IAAA,uDAA4B;IAAA,4DAAK;;;IAAjC,0DAA4B;IAA5B,uGAA4B;;;IAIrE,yEAAgF;IAAA,yEAAa;IAAA,4DAAK;;;IAClG,yEAAyC;IAAA,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,iGAAsB;;;IAK/D,yEAAgF;IAAA,oEAAQ;IAAA,4DAAK;;;IAC7F,yEAAyC;IAAA,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,kGAAuB;;;IAIhE,yEAAuC;IAAA,iEAAK;IAAA,4DAAK;;;;IACjD,yEACE;IAAA;IAAA,+EAA2E;IAAzC,6XAAwC;IAAC,+DAAI;IAAA,4DAAW;IAC5F;IAAA,4DAAK;;;IAEP,oEAA4D;;;IAClE,oEAAkE;;;IAClE,yEACE;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAC/C;IAAA,4DAAK;;;AD5BN,MAAM,yBAAyB;IAqBpC,YAAoB,sBAAgD,EAAQ,UAAsB,EAAyB,OAAe,EAAS,OAA0B;QAAzJ,2BAAsB,GAAtB,sBAAsB,CAA0B;QAAQ,eAAU,GAAV,UAAU,CAAY;QAAyB,YAAO,GAAP,OAAO,CAAQ;QAAS,YAAO,GAAP,OAAO,CAAmB;QAhB7K,qBAAgB,GAAa;YAC3B,MAAM;YACN,gBAAgB;YAChB,iBAAiB;YACjB,gBAAgB;YAChB,UAAU;YACV,WAAW;YACX,MAAM;SACP,CAAC;QASA,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,EAAE;YAC9D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACJ,CAAC;IAEF,QAAQ;QACN,IAAI,CAAC,uBAAuB,EAAE,CAAC;IACjC,CAAC;IAED,uBAAuB;QACrB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,sBAAsB,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YAAG,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;YAC7F,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAK,EAAE,EAAE;gBACjC,IAAG,CAAC,CAAC,QAAQ,IAAI,IAAI;oBACjB,CAAC,CAAC,QAAQ,GAAE,mCAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;;oBACnD,CAAC,CAAC,QAAQ,GAAC,EAAE,CAAC;YACnB,CAAC,CAAC,CAAC;YAEF,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,aAAa,CAAE,CAAC;YAC9D,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACjC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,UAAU,CAAC,mBAAmB,GAAG,CAAC,IAAS,EAAE,YAAoB,EAAU,EAAE;gBAChF,IAAI,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,QAAQ,EAAE;oBAC1C,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,iBAAiB,EAAE,CAAC;iBAC/C;gBAED,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC;YAC5B,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IAET,CAAC;IAED,oBAAoB,CAAC,gBAA2B;QAC9C,IAAI,OAAO,GAAG,eAAe,CAAC;QAC9B,gBAAgB,CAAC,aAAa,GAAG,gBAAgB,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QACnF,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,qCAAqC,GAAG,gBAAgB,CAAC,aAAa,GAAG,GAAG,GAAG,gBAAgB,CAAC,UAAU,GAAG,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC;IACvJ,CAAC;IAED,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,WAAW,EAAC;gBACd,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;gBAC1D,0EAA0E;aACzE;iBACG;gBACJ,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBAC7D,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBACjC,IAAI,CAAC,UAAU,CAAC,mBAAmB,GAAG,CAAC,IAAS,EAAE,YAAoB,EAAU,EAAE;oBAChF,IAAI,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,QAAQ,EAAE;wBAC1C,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,iBAAiB,EAAE,CAAC;qBAC/C;oBAED,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC;gBAC5B,CAAC,CAAC;aACD;SACJ;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC7D,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACjC,IAAI,CAAC,UAAU,CAAC,mBAAmB,GAAG,CAAC,IAAS,EAAE,YAAoB,EAAU,EAAE;gBAChF,IAAI,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,QAAQ,EAAE;oBAC1C,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,iBAAiB,EAAE,CAAC;iBAC/C;gBAED,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC;YAC5B,CAAC,CAAC;SACH;IACH,CAAC;;kGA7FY,yBAAyB,gXAqBuE,sDAAM;yGArBtG,yBAAyB;kEAgBzB,iEAAkB;wEAClB,wEAAY;wEACZ,8DAAO;;;;;;;QCnCpB,2EACI;QAAA;QAAA,mFACE;QAAA;QAAA,yEACE;QAAA;QAAA,2EACI;QAAA;QAAA,2EACI;QAAA;QAAA,qHAAgF;QAChF;QAAA,qHAAyC;QAC3C;QAAA,qEAAe;QAEf;QAAA,4EACE;QAAA;QAAA,qHAAgF;QAChF;QAAA,qHAAyC;QAC3C;QAAA,qEAAe;QAEf;QAAA,4EACE;QAAA;QAAA,qHAAgF;QAChF;QAAA,qHAAyC;QAC3C;QAAA,qEAAe;QAEf;QAAA,4EACE;QAAA;QAAA,qHAAgF;QAChF;QAAA,qHAAyC;QAC3C;QAAA,qEAAe;QAEf;QAAA,4EACE;QAAA;QAAA,qHAAgF;QAChF;QAAA,qHAAyC;QAE3C;QAAA,qEAAe;QAEf;QAAA,4EACE;QAAA;QAAA,qHAAgF;QAChF;QAAA,qHAAyC;QAC3C;QAAA,qEAAe;QAEf;QAAA,6EACE;QAAA;QAAA,sHAAuC;QACvC;QAAA,qHACE;QAEJ;QAAA,qEAAe;QACf;QAAA,sHAAuD;QAC7D;QAAA,sHAA6D;QAC7D;QAAA,sHACE;QAEF;QAAA,4DAAQ;QACZ;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,gFAAgE;QAClE;QAAA,4DAAM;QACN;QAAA,4DAAmB;QACnB;QAAA,4DAAW;QACX;QAAA,mFAEE;QAAA;QAAA,yEAAmB;QAAA,uEAAW;QAAA,4DAAI;QACpC;QAAA,4DAAc;;QArDO,0DAAyB;QAAzB,sFAAyB;QAsCjB,2DAAmC;QAAnC,iGAAmC;QAChD,0DAAgD;QAAhD,kGAAgD;QAO/C,0DAAgC;QAAhC,kJAAgC;QAIS,0DAAoB;QAApB,6EAAoB;;6FDpCrE,yBAAyB;cALrC,uDAAS;eAAC;gBACT,QAAQ,EAAE,uBAAuB;gBACjC,WAAW,EAAE,oCAAoC;gBACjD,SAAS,EAAE,CAAC,oCAAoC,CAAC;aAClD;;sBAsBqG,oDAAM;uBAAC,sDAAM;iGALlF,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;YACc,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACH,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AEnCtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0D;AAGM;AAClB;AACW;;;;;;;;;;;;;ICuBjC,4EAAkD;IAAA,qFAA0B;IAAA,4DAAY;;;IA8BpG,0EACI;IAAA;IAAA,+EAAgC;IAAA,2EAAe;IAAA,4DAAW;IAC1D,uDAAgD;;IAAA,yEAAQ;IAAA,uDAAc;IAAA,4DAAS;IACnF;IAAA,4DAAM;;;IADF,0DAAgD;IAAhD,6MAAgD;IAAQ,0DAAc;IAAd,kFAAc;;;IAG1E,0EACI;IAAA,uDACJ;;IAAA,4DAAM;;;IADF,0DACJ;IADI,mOACJ;;AD/CL,MAAM,yBAAyB;IAmBpC,YAAoB,OAA8B,EAAU,SAAsB;QAA9D,YAAO,GAAP,OAAO,CAAuB;QAAU,cAAS,GAAT,SAAS,CAAa;QAlBlF,eAAU,GAAW,CAAC,CAAC;QACvB,mBAAc,GAAW,CAAC,CAAC;QAC3B,gBAAW,GAAW,CAAC,CAAC;QACxB,YAAO,GAAW,EAAE,CAAC;QACrB,WAAM,GAAW,EAAE,CAAC;QACpB,UAAK,GAAG,IAAI,IAAI,EAAE,CAAC;QAGnB,wBAAmB,GAAW,EAAE,CAAC;QACjC,eAAU,GAAW,EAAE,CAAC;QACxB,qBAAgB,GAAG,2DAAW,CAAC,oBAAoB,CAAC;QACpD,cAAS,GAAG,IAAI,0DAAW,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;QACvD,wBAAmB,GAAW,KAAK,CAAC;QACpC,kBAAa,GAAU,QAAQ,CAAC;QAChC,+CAA+C;QAC/C,qBAAgB,GAAG,CAAC,QAAQ,CAAC,CAAC;IAK9B,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,uBAAuB,EAAE,CAAC;IACjC,CAAC;IAED,QAAQ;QACN,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;YACxB,IAAI,OAAO,GAAoB,IAAI,yEAAe,EAAE,CAAC;YACrD,IAAI,KAAK,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACpC,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;YACxB,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YAC7C,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC;YACvC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;gBACpD,IAAI,GAAG,CAAC,YAAY,IAAI,IAAI,EAAE;oBAC5B,IAAI,CAAC,YAAY,EAAE,CAAC;oBACpB,IAAI,CAAC,uBAAuB,EAAE,CAAC;oBAC/B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,0BAA0B,EAAE,GAAG,EAAE;wBACnD,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,eAAe,CAAC;wBAC7B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBAEJ;YACH,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;gBACX,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iDAAiD,EAAE,GAAG,EAAE;oBAC1E,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACL,CAAC,CAAC;SACH;aAEG;YACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,6BAA6B,EAAE,GAAG,EAAE;gBACtD,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;SACJ;IACH,CAAC;IAED,YAAY;QACV,IAAG,IAAI,CAAC,aAAa,EAAC;YACpB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;gBAC/D,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC;gBAC1B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC;gBACxD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;gBAChD,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC3D,IAAI,IAAI,CAAC,SAAS,CAAC,kBAAkB;uBAChC,CAAC,EAAE;oBACN,IAAI,CAAC,mBAAmB,GAAG,qCAAqC,CAAC;iBAClE;YACH,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;YAEb,CAAC,CAAC;SACH;IACH,CAAC;IAED,WAAW;QACT,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE;YACpC,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC;IAED,WAAW;QACT,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACpC,CAAC;IAED,uBAAuB;QACrB,IAAI,KAAK,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACpC,IAAI,CAAC,OAAO,CAAC,gCAAgC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YAC1E,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAChD,2CAA2C;YAC3C,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE;gBACjC,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;gBACvC,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC;gBAC9B,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;gBACvB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;aAEjC;iBACI;gBACH,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;gBACjB,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;aAClC;QAEH,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;YACX,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;YACjB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE;gBACtC,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,CAAC,aAAa,CAAC;gBAC3B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CAAC;IACJ,CAAC;IAED,gBAAgB,CAAC,KAAK;QACpB,IAAI,KAAK,GAAW,mBAAmB,CAAC;QACxC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YAC1B,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,oCAAoC,EACpC,GAAG,EACH;gBACE,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CACF,CAAC;YACF,KAAK,CAAC,cAAc,EAAE,CAAC;SACxB;IACH,CAAC;IAED,WAAW;QACT,IAAI,KAAK,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,GAAO,EAAC,EAAE;YAC3D,IAAG,GAAG,CAAC,YAAY,IAAI,IAAI,EAAC;gBAC1B,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBAC/B,IAAI,CAAC,YAAY,EAAE,CAAC;gBACpB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;gBACjB,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,oCAAoC,EACpC,GAAG,EACH;oBACE,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,eAAe,CAAC;oBAC7B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CACF,CAAC;aACH;QACF,CAAC,CAAC;IACH,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,KAAK,CACf,cAAc,CAAC,+BAA+B,CAC/C,CAAC,KAAK,CAAC;IACV,CAAC;IAED,aAAa,CAAC,CAAC;QACb,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC;QAC7B,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;;kGAxKU,yBAAyB;yGAAzB,yBAAyB;QClBtC,2EACI;QAAA;QAAA,mFACI;QAAA;QAAA,yEACI;QAAA;QAAA,oEAAG;QAAA,6EAAkB;QAAA,uEACjB;QAAA;QAAA,uFACiB;QAAA,kEAAM;QAAA,4DAAmB;QAC1C;QAOJ;QAAA,4DAAO;QACX;QAAA,4DAAI;QAEJ;QAAA,4DAAM;QACN;QAAA,uEACI;QAAA;QAAA,0EACI;QAAA;QAAA,0EACI;QAAA,oHACJ;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,2EAAe;QAAA,2EAA2B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QACzE;QAAA,4EAGA;QAFI,6JAAY,4BAAwB,IAAC;QADzC,4DAGA;QAAA;QAAA,mIAAkD;QACtD;QAAA,4DAAiB;QACjB,8GACA;QAAA,wEAAM;QAAA,gEAAI;QAAA,0EAAQ;QAAA,wDAAgB;;QAAA,4DAAS;QAAA,4DAAO;QACtD;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAEA;QAAA,8EACqD;QADiB,kJAAS,cAAU,IAAC;QACrC,qEAAS;QAAA,4DAAS;QACvE;QAAA,8EACoB;QADkD,kJAAS,iBAAa,IAAC;QACzE,mEAAO;QAAA,4DAAS;QAExC;QAAA,4DAAM;QACN;QAEJ;QAAA,4DAAM;QAEN;QAAA,2EACI;QAAA;QAAA,yEACI;QAAA;QAAA,sEAAI;QAAA,uEAAW;QAAA,4DAAK;QACpB;QAAA,sEAAI;QAAA,2EAAe;QAAA,4DAAK;QACxB;QAAA,sEAAI;QAAA,wEAAY;QAAA,4DAAK;QACrB;QAAA,sEACI;QAAA;QAAA,sEAAI;QAAA,wDAAc;QAAA,4DAAK;QACvB;QAAA,sEAAI;QAAA,wDAAkB;QAAA,4DAAK;QAC3B;QAAA,sEAAI;QAAA,wDAAe;QAAA,4DAAK;QAC5B;QAAA,4DAAK;QACT;QAAA,4DAAQ;QACZ;QAAA,4DAAM;QACN;QAAA,wHACI;QAIJ;QAAA,wHACI;QAER;QAAA,4DAAM;QACV;QAAA,4DAAmB;QACvB;QAAA,4DAAW;QAEX;;QA/CoC,2DAA+B;QAA/B,uGAA+B;QAEf,0DAAyB;QAAzB,sFAAyB;QAG1C,0DAAsC;QAAtC,oGAAsC;QAGnC,0DAAgB;QAAhB,6IAAgB;QAKM,0DAA6B;QAA7B,0FAA6B;QAE7B,0DAA6B;QAA7B,0FAA6B;QAc7D,2DAAc;QAAd,+EAAc;QACd,0DAAkB;QAAlB,mFAAkB;QAClB,0DAAe;QAAf,gFAAe;QAI1B,0DAA0B;QAA1B,wFAA0B;QAK1B,0DAAiD;QAAjD,mHAAiD;;6FD7CrD,yBAAyB;cALrC,uDAAS;eAAC;gBACT,QAAQ,EAAE,uBAAuB;gBACjC,WAAW,EAAE,oCAAoC;gBACjD,SAAS,EAAE,CAAC,oCAAoC,CAAC;aAClD;;;;;;;;;;;;;;AEjBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAgG;AAClC;AACmC;AAIlC;AAErB;AAEkB;AAChB;AAEyD;AAE5C;AACR;AACU;AACE;AAM4C;AACsB;;;;;;;;;;;;;;;;;;;;;;;ICI/G,yEAAuD;IAAA,4FACvD;IAAA,4DAAK;;;IACL,yEACI;IAAA,uDACJ;IAAA,4DAAK;;;IADD,0DACJ;IADI,4IACJ;;;IAGI,yEAAuD;IAAA,2FACvD;IAAA,4DAAK;;;IACL,yEACI;IAAA,uDACJ;IAAA,4DAAK;;;IADD,0DACJ;IADI,+IACJ;;;IAGI,yEAAuD;IAAA,iGACvD;IAAA,4DAAK;;;IACL,yEACI;IAAA,uDACJ;IAAA,4DAAK;;;IADD,0DACJ;IADI,yJACJ;;;IAGI,yEAAuD;IAAA,wGACvD;IAAA,4DAAK;;;IACL,yEACI;IAAA,uDACJ;IAAA,4DAAK;;;IADD,0DACJ;IADI,oKACJ;;;IAGI,yEAAuD;IAAA,uGACvD;IAAA,4DAAK;;;IACL,yEACI;IAAA,uDACJ;IAAA,4DAAK;;;IADD,0DACJ;IADI,uKACJ;;;IAGI,yEAAuD;IAAA,2GACvD;IAAA,4DAAK;;;IACL,yEACI;IAAA,uDACJ;IAAA,4DAAK;;;IADD,0DACJ;IADI,+KACJ;;;IAGpB,yEAAsC;IAAA,+DAAI;IAAA,4DAAK;;;;IAC/C,yEACQ;IAAA;IAAA,6EAAgF;IAAxC,8XAAuC;IAAC,+EAAkC;IAAA,+DAAI;IAAA,4DAAW;IAAA,4DAAS;IAC9I;IAAA,4DAAK;;;IAGL,yEAAsC;IAAA,iEAAM;IAAA,4DAAK;;;;IACjD,yEACQ;IAAA;IAAA,6EAA0F;IAAjD,uYAAgD;IAAC,2EAAU;IAAA,iEAAM;IAAA,4DAAW;IAAA,4DAAS;IAClI;IAAA,4DAAK;;;IAEjB,oEAA4D;;;IAE5D,oEAAkE;;;IAClE,yEACQ;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAEzD;IAHI,4DACQ;;;IA6BJ,yEAAuD;IAAA,6FACvD;IAAA,4DAAK;;;IACL,yEACI;IAAA,uDACJ;IAAA,4DAAK;;;IADD,0DACJ;IADI,0IACJ;;;IAGI,yEAAuD;IAAA,6FACvD;IAAA,4DAAK;;;IACL,yEACI;IAAA,uDACJ;IAAA,4DAAK;;;IADD,0DACJ;IADI,iJACJ;;;IAGI,yEAAuD;IAAA,oGACvD;IAAA,4DAAK;;;IACL,yEACI;IAAA,uDACJ;IAAA,4DAAK;;;IADD,0DACJ;IADI,4JACJ;;;IAGI,yEAAuD;IAAA,mGACvD;IAAA,4DAAK;;;IACL,yEACI;IAAA,uDACJ;IAAA,4DAAK;;;IADD,0DACJ;IADI,+JACJ;;;IAGI,yEAAuD;IAAA,uGACvD;IAAA,4DAAK;;;IACL,yEACI;IAAA,uDACJ;IAAA,4DAAK;;;IADD,0DACJ;IADI,uKACJ;;;IAGhB,yEAAsC;IAAA,+DAAI;IAAA,4DAAK;;;;IAC/C,yEACQ;IAAA;IAAA,6EAA6E;IAArC,4XAAoC;IAAC,+EAAkC;IAAA,+DAAI;IAAA,4DAAW;IAAA,4DAAS;IAC3I;IAAA,4DAAK;;;IAGL,yEAAsC;IAAA,iEAAM;IAAA,4DAAK;;;;IACjD,yEACQ;IAAA;IAAA,6EAAyF;IAAjD,wYAAgD;IAAC,2EAAU;IAAA,iEAAM;IAAA,4DAAW;IAAA,4DAAS;IACjI;IAAA,4DAAK;;;IAEjB,oEAA2D;;;IAE3D,oEAAiE;;;IACjE,yEACQ;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAEzD;IAHI,4DACQ;;;IAyBI,iFACI;IAAA,uDACJ;IAAA,4DAAa;;;IAF6B,8EAAiB;IACvD,0DACJ;IADI,6IACJ;;;IACA,4EACI;IAAA,2IACJ;IAAA,4DAAY;;;IAQZ,iFACI;IAAA,uDACJ;IAAA,4DAAa;;;IAF6B,8EAAiB;IACvD,0DACJ;IADI,6IACJ;;;IAEJ,4EACQ;IAAA,sIACR;IAAA,4DAAY;;;;IAThB,oFACI;IAAA;IAAA,4EAAW;IAAA,sEAAW;IAAA,2EAA0B;IAAA,6DAAC;IAAA,4DAAO;IAAA,4DAAY;IACpE;IAAA,iFACI;IAD0D,4YAA2C;IACrG;IAAA,2KACI;IAER;IAAA,4DAAa;IACb;IAAA,2KACQ;IAEZ;IAAA,4DAAiB;;;IAVuB,0GAAkC;IAGtD,0DAA6B;IAA7B,wFAA6B;IAIlC,0DAA4D;IAA5D,8HAA4D;;;IAWnE,iFACI;IAAA,uDACJ;IAAA,4DAAa;;;IAFwB,8EAAiB;IAClD,0DACJ;IADI,6IACJ;;;IAEJ,4EACI;IAAA,iIACJ;IAAA,4DAAY;;;IAXhB,oFACI;IAAA;IAAA,4EAAW;IAAA,+FACP;IAAA,2EAA0B;IAAA,6DAAC;IAAA,4DAAO;IACtC;IAAA,4DAAY;IACZ;IAAA,iFACI;IAAA;IAAA,6KACI;IAER;IAAA,4DAAa;IACb;IAAA,2KACI;IAER;IAAA,4DAAiB;;;IAZqB,0GAAkC;IAKpD,2DAAwB;IAAxB,mFAAwB;IAI7B,0DAAuD;IAAvD,yHAAuD;;;IAc9D,4EAEI;IAAA,yKACJ;IAAA,4DAAY;;;IACZ,4EAEI;IAAA,wKACJ;IAAA,4DAAY;;;;IAbpB,oFACI;IAAA;IAAA,4EAAW;IAAA,qGACP;IAAA,2EAAyB;IAAA,4DAAC;IAAA,4DAAO;IACrC;IAAA,4DAAY;IACZ;IAAA,4EAEI;IADC,gQAAS,uBAAuB,IAAC;IADtC,4DAEI;IAAA;IAAA,2KAEI;IAEJ;IAAA,2KAEI;IAEZ;IAAA,4DAAiB;;;IAdkB,0GAAkC;IAMlD,2DAA4D;IAA5D,8HAA4D;IAI5D,0DAAwD;IAAxD,0HAAwD;;;IAevE,4EAEI;IAAA,2JACJ;IAAA,4DAAY;;;IACZ,4EAEI;IAAA,0JACJ;IAAA,4DAAY;;;;IAbhB,oFACI;IAAA;IAAA,4EACQ;IAAA,qIACA;IAAA,2EAAyB;IAAA,4DAAC;IAAA,4DAAO;IACzC;IAAA,4DAAY;IACZ;IAAA,4EACA;IADmF,qZAAuE,wMAAyB,uBAAuB,IAAhD;IAA1J,4DACA;IAAA;IAAA,2KAEI;IAEJ;IAAA,2KAEI;IAER;IAAA,4DAAiB;;;IAdmC,0GAAkC;IAMvE,2DAA8D;IAA9D,gIAA8D;IAI9D,0DAA6D;IAA7D,+HAA6D;;;IAahE,4EAEQ;IAAA,kMACF;IAAA,4DAAY;;;IACZ,4EAEM;IAAA,qMACN;IAAA,4DAAY;;;;IAb1B,oFACQ;IAAA;IAAA,4EACQ;IAAA,kJACA;IAAA,2EAAyB;IAAA,4DAAC;IAAA,4DAAO;IACzC;IAAA,4DAAY;IACZ;IAAA,4EACA;IAD6E,kZAAoE,wMAAyB,uBAAuB,IAAhD;IAAjJ,4DACA;IAAA;IAAA,2KAEQ;IAEF;IAAA,2KAEM;IAEhB;IAAA,4DAAiB;;;IAd+B,0GAAkC;IAMnE,2DAA2D;IAA3D,6HAA2D;IAIrD,0DAA0D;IAA1D,4HAA0D;;;IAavE,4EAEQ;IAAA,6MACF;IAAA,4DAAY;;;IACZ,4EAEM;IAAA,gNACN;IAAA,4DAAY;;;IAGZ,4EACM;IAAA,uDACF;IAAA,4DAAY;;;IADV,0DACF;IADE,kMACF;;;;IAlBlB,oFACQ;IAAA;IAAA,4EACQ;IAAA,yJACA;IAAA,2EAAyB;IAAA,4DAAC;IAAA,4DAAO;IACzC;IAAA,4DAAY;IACZ;IAAA,4EACA;IADqG,mZAAkE,yMAAU,uBAAuB,IAAjC;IAAvK,4DACA;IAAA;IAAA,2KAEQ;IAEF;IAAA,2KAEM;IAIN;IAAA,2KACM;IAEhB;IAAA,4DAAiB;;;IAnB+B,0GAAkC;IAMnE,2DAAyD;IAAzD,2HAAyD;IAInD,0DAAwD;IAAxD,0HAAwD;IAMxD,0DAA6B;IAA7B,+FAA6B;;;IAa9C,4EAEI;IAAA,wLACJ;IAAA,4DAAY;;;IACZ,4EAEI;IAAA,uLACJ;IAAA,4DAAY;;;IAEZ,4EACI;IAAA,uDACJ;IAAA,4DAAY;;;IADR,0DACJ;IADI,gLACJ;;;;IAlBJ,oFACI;IAAA;IAAA,4EACI;IAAA,iJACA;IAAA,2EAAyB;IAAA,4DAAC;IAAA,4DAAO;IACrC;IAAA,4DAAY;IACZ;IAAA,4EAEA;IAFqG,mZAAkE,yMAC1J,uBAAuB,IADmI;IAAvK,4DAEA;IAAA;IAAA,2KAEI;IAEJ;IAAA,2KAEI;IAGJ;IAAA,2KACI;IAER;IAAA,4DAAiB;;;IAnBmC,0GAAkC;IAOvE,2DAAyD;IAAzD,2HAAyD;IAIzD,0DAAwD;IAAxD,0HAAwD;IAKxD,0DAA6B;IAA7B,+FAA6B;;;;IAUpC,6EACI;IAD0F,uXAAyC;IACnI,yGAAI;IAAA,4DAAS;;;;IACjB,6EACI;IADyF,uXAAyC;IAClI,2GAAM;IAAA,4DAAS;;;;IAP3B,0EACI;IAAA;IAAA,8EACI;IAAA;IAAA,6EACI;IADmE,oWAA+B;IAClG,2GAAM;IAAA,4DAAS;IACnB;IAAA,wJACI;IACJ;IAAA,wJACI;IAER;IAAA,4DAAU;IACd;IAAA,4DAAM;;;IAN0E,0DAAqB;IAArB,uFAAqB;IAErB,0DAAoB;IAApB,sFAAoB;;;;IA9J3H;IAAA,8EACO;IAAA;IAAA,uEAAM;IAAA,+FAAoC;IAAA,4DAAO;IACjD;IAAA,8EACI;IAAA;IAAA,6EACI;IADoD,4VAA+B;IACnF;IAAA,4EAAU;IAAA,iEAAK;IAAA,4DAAW;IAC9B;IAAA,4DAAS;IACb;IAAA,4DAAU;IAClB;IAAA,4DAAc;IACV;IAAA,4EACI;IAAA;IAAA,2EACI;IAAA;IAAA,0EACI;IAAA;IAAA,2EACJ;IAAA;IAAA,qFACI;IAAA;IAAA,6EAAW;IAAA,wEAAY;IAAA,4EAA0B;IAAA,8DAAC;IAAA,4DAAO;IAAA,4DAAY;IACrE;IAAA,kFACI;IAD0D,+XAA6C;IACvG;IAAA,2JACI;IAEJ;IAAA,yJACI;IAER;IAAA,4DAAa;IACjB;IAAA,4DAAiB;IACjB;IAAA,4DAAM;IACN;IAAA,2EACA;IAAA;IAAA,oKACI;IAUJ;IAAA,4DAAM;IACN;IAAA,2EACA;IAAA;IAAA,oKACI;IAYJ;IAAA,4DAAM;IACN;IAAA,4DAAM;IACN;IAAA,0EACI;IAAA;IAAA,2EACJ;IAAA;IAAA,oKACI;IAcJ;IAAA,4DAAM;IACN;IAAA,4DAAM;IACN;IAAA,0EACI;IAAA;IAAA,2EACJ;IAAA;IAAA,oKACI;IAcJ;IAAA,4DAAM;IACN;IAAA,2EACI;IAAA;IAAA,oKACQ;IAcJ;IAAA,4DAAM;IACN;IAAA,2EACA;IAAA;IAAA,oKACQ;IAmBJ;IAAA,4DAAM;IACN;IAAA,2EACA;IAAA;IAAA,oKACI;IAmBJ;IAAA,4DAAM;IACN;IAAA,4DAAM;IACN;IAAA,8IACI;IAUpB;IAAA,4DAAM;IACV;IAAA,4DAAO;IACf;;;IA7Jc,2DAAoB;IAApB,qFAAoB;IAIF,0DAAkC;IAAlC,0GAAkC;IAG9B,0DAA6B;IAA7B,wFAA6B;IAG9B,0DAA4E;IAA5E,sJAA4E;IAO/E,0DAAuB;IAAvB,uFAAuB;IAavB,0DAAqB;IAArB,uFAAqB;IAiBrB,0DAAkB;IAAlB,oFAAkB;IAmBlB,0DAAmC;IAAnC,6GAAmC;IAiB/B,0DAAmC;IAAnC,6GAAmC;IAiB/B,0DAAmC;IAAnC,6GAAmC;IAsB/B,0DAAmC;IAAnC,6GAAmC;IAsB5B,0DAAmC;IAAnC,6GAAmC;;;;ADpS/E,MAAM,8BAA8B;IA4DzC,YAAmB,MAAiB,EAAU,QAAqB,EAAS,EAAe,EAAU,QAAwB,EAAU,OAAsB,EAAU,oBAAyC,EAAU,iBAAoC,EAAS,OAA0B;QAA9Q,WAAM,GAAN,MAAM,CAAW;QAAU,aAAQ,GAAR,QAAQ,CAAa;QAAS,OAAE,GAAF,EAAE,CAAa;QAAU,aAAQ,GAAR,QAAQ,CAAgB;QAAU,YAAO,GAAP,OAAO,CAAe;QAAU,yBAAoB,GAApB,oBAAoB,CAAqB;QAAU,sBAAiB,GAAjB,iBAAiB,CAAmB;QAAS,YAAO,GAAP,OAAO,CAAmB;QA1DjS,uBAAkB,GAAkC,OAAO,CAAC;QAC5D,qBAAgB,GAAgC,KAAK,CAAC;QACtD,kBAAa,GAAY,KAAK,CAAC;QAE/B,oBAAe,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QACnD,sBAAiB,GAAmB,EAAE,CAAC;QACvC,mBAAc,GAAmB,EAAE,CAAC;QAQpC,kBAAa,GAAY,KAAK,CAAC;QAC/B,eAAU,GAAY,KAAK,CAAC;QAC5B,eAAU,GAAY,KAAK,CAAC;QAC5B,iBAAY,GAAY,KAAK,CAAC;QAC9B,kBAAa,GAAY,KAAK,CAAC;QAG/B,SAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAGlB,0BAAqB,GAAW,EAAE,CAAC;QACnC,0BAAqB,GAAW,EAAE,CAAC;QAKP,cAAS,GAAG,IAAI,uDAAS,EAAgB,CAAC;QAC/C,SAAI,GAAG,IAAI,uDAAS,EAAW,CAAC;QAIvD,iBAAY,GAAa,EAAE,CAAC;QACpB,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QAGtD,sBAAiB,GAAG;YAClB,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,gBAAgB,EAAE;YACrD,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE;YAC3C,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE;YAC/C,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,gBAAgB,EAAE;YACrD,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE;YAC3C,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE;SAC5C,CAAC;QACF,qBAAgB,GAAG,CAAC,gBAAgB,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAClI,mBAAc,GAAG;YACf,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,iBAAiB,EAAE;YACpD,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE;YAC/C,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,gBAAgB,EAAE;YACrD,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE;YAC3C,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE;SAC5C,CAAC;QACF,oBAAe,GAAG,CAAC,iBAAiB,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAIrH,IAAI,CAAC,WAAW,GAAG,IAAI,KAAK,EAAgB,CAAC;QAC7C,IAAI,CAAC,WAAW,GAAG,IAAI,KAAK,EAAgB,CAAC;QAC7C,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,EAAgB,CAAC;QACxC,IAAI,CAAC,gBAAgB,GAAG,IAAI,KAAK,EAAgB,CAAC;QAClD,IAAI,CAAC,kBAAkB,GAAG,IAAI,8EAAY,EAAE,CAAC;QAC7C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;IAClD,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;QACnB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,yBAAyB;QACzB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;QACvB,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;QACnB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,iEAAW,CAAC,aAAa,EAAE,CAAC,CAAC;QAClF,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,iEAAW,CAAC,UAAU,EAAE,CAAC,CAAC;QAC/E,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YAC1B,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC1C,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;YAC1B,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;YACrB,YAAY,EAAE,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC,CAAC;YACvE,cAAc,EAAE,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;YACjF,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;YAC9E,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC;YAChF,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC;SACjF,CAAC,CAAC;QACH,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACpE,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAChE,CAAC;IACD,WAAW,CAAC,KAAY;QACtB,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;QAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC5D,CAAC;IACD,YAAY,CAAC,KAAY;QACvB,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;QAC7D,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC7D,CAAC;IACD,UAAU;QACR,MAAM,YAAY,GAAG,IAAI,wEAAe,EAAE,CAAC;QAC3C,IAAI,CAAC,8BAA8B,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,2BAA2B,EAAE;YACvF,YAAY,EAAE,IAAI;YAClB,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;QAGH,IAAI,CAAC,8BAA8B,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;QACrE,CAAC,CAAC,CAAC;IACL,CAAC;IACD,WAAW;QACT,IAAI,CAAC,8BAA8B,CAAC,KAAK,EAAE,CAAC;IAC9C,CAAC;IACD,qBAAqB;QACnB,IAAI,CAAC,oBAAoB,CAAC,sBAAsB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,gBAAgC,EAAE,EAAE;YAC/G,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YACnB,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;YAC1C,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;QACxC,CAAC,EAAE,CAAC,KAAU,EAAE,EAAE;YAChB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YACnB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,oCAAoC,EAAE,GAAG,EAAE;gBAC5D,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAC,CAAC,aAAa,CAAC;gBAC1B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;gBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;aACxC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IACD,kBAAkB,CAAC,gBAAqC;QACtD,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,iEAAW,CAAC,aAAa,CAAC,CAAC;QACnG,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACjE,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QACxD,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IACD,cAAc,CAAC,gBAAqC;QAClD,IAAI,CAAC,cAAc,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,iEAAW,CAAC,UAAU,CAAC,CAAC;QAC7F,IAAI,CAAC,WAAW,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC/D,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IACD,aAAa;QACX,IAAI,CAAC,oBAAoB,CAAC,wBAAwB,EAAE,CAAC,SAAS,CAAC,CAAC,cAAoC,EAAE,EAAE;YACtG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,cAAc,CAAC,OAAO,CAAC,CAAC,CAAqB,EAAE,EAAE;gBAC/C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC;YAC3E,CAAC,CAAC,CAAC;QACL,CAAC,EAAE,CAAC,KAAU,EAAE,EAAE;YAChB,mHAAmH;YACnH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,iCAAiC,EAAE,GAAG,EAAE;gBACzD,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAC,CAAC,aAAa,CAAC;gBAC1B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;gBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;aACxC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IACD,eAAe,CAAC,KAAU;QACxB,IAAI,CAAC,kBAAkB,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC;QAC/E,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;QACvB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IACD,aAAa;QACX,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC,SAA0B,EAAE,EAAE;YACxG,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9D,SAAS,CAAC,OAAO,CAAC,CAAC,CAAgB,EAAE,EAAE;gBACrC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YAC7D,CAAC,CAAC,CAAC;QAEL,CAAC,EAAE,CAAC,KAAU,EAAE,EAAE;YAChB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,iCAAiC,EAAE,GAAG,EAAE;gBACzD,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAC,CAAC,aAAa,CAAC;gBAC1B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;gBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;aACxC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IACD,4BAA4B;QAC1B,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;QAChC,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YAC3C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;YAC5C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;SACxC;aACI;YACH,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;YAC1C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;YAC3C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;SACvC;QACD,IAAI,CAAC,kBAAkB,CAAC,WAAW,GAAG,IAAI,CAAC;QAC3C,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IACD,iBAAiB,CAAC,KAAU;QAC1B,IAAI,CAAC,kBAAkB,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC;QAC7E,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;QAChC,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACvD,IAAI,KAAK,CAAC,KAAK,KAAK,iEAAW,CAAC,aAAa,EAAE;YAC7C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;YAC1C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACrC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;YACzC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;YAC5C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;YACzC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;SACxC;QACD,IAAI,KAAK,CAAC,KAAK,KAAK,iEAAW,CAAC,UAAU,EAAE;YAC1C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;YAC1C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;YACzC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;YAC5C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;YACzC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;SACxC;QACD,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,KAAK,CAAC,KAAK,KAAK,iEAAW,CAAC,aAAa,EAAE;YAC7C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;SACzB;aACI,IAAI,KAAK,CAAC,KAAK,KAAK,iEAAW,CAAC,UAAU,EAAE;YAC/C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;SAC5B;aACI;YACH,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;SAC5B;IAEH,CAAC;IACD,oBAAoB,CAAC,KAAU;QAC7B,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;QACvC,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YAC3C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;YAC5C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;SACxC;aACI;YACH,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;YAC1C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;YAC3C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;SACvC;QACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC7D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC/D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAC7D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC7D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACnE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACzD,IAAI,CAAC,kBAAkB,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QACxD,IAAI,CAAC,kBAAkB,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;QAC1D,IAAI,CAAC,kBAAkB,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC;QAChE,IAAI,CAAC,kBAAkB,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;QAC9D,IAAI,CAAC,kBAAkB,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QACxD,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QACpD,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QACpD,IAAI,CAAC,kBAAkB,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QACxD,IAAI,CAAC,kBAAkB,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;QAC1D,IAAI,CAAC,kBAAkB,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC;QAChE,IAAI,CAAC,kBAAkB,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;QAC9D,IAAI,CAAC,kBAAkB,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QACxD,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QACpD,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IACtD,CAAC;IACD,iBAAiB,CAAC,KAAU;QAC1B,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YAC3C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;YAC5C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;SACxC;aACI;YACH,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;YAC1C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;YAC3C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;SACvC;QACD,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,EAAE,CAAC;QACzB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC7D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC7D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACnE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC/D,IAAI,CAAC,kBAAkB,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QACxD,IAAI,CAAC,kBAAkB,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;QAC1D,IAAI,CAAC,kBAAkB,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;QAC9D,IAAI,CAAC,kBAAkB,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QACxD,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QACpD,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IACtD,CAAC;IACD,6BAA6B,CAAC,KAAU;QACtC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+GAAqB,EAAE;YACxD,YAAY,EAAE,IAAI;YAClB,WAAW,EAAE,IAAI;YACjB,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,wBAAwB,EAAE;SACrE,CAAC,CAAC;QAGH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;YAC7B,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE;gBAC/B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,WAAW,CAAC;gBAC1C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC1B,IAAI,CAAC,yBAAyB,EAAE,CAAC;gBACjC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6IAAsB,EAAE;oBAC1D,YAAY,EAAE,IAAI;oBAClB,WAAW,EAAE,IAAI;oBACjB,KAAK,EAAE,OAAO;oBACd,IAAI,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,2CAA2C,EAAE;iBACxF,CAAC;aACH;QACH,CAAC,CAAC,CAAC;IAEL,CAAC;IACD,yBAAyB;QACvB,IAAI,CAAC,oBAAoB,CAAC,yBAAyB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YAC3G,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC7B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACtB,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;YACX,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,wCAAwC,EAAE,GAAG,EAAE;gBAChE,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAC,CAAC,aAAa,CAAC;gBAC1B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;gBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;aACxC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IACD,kBAAkB;QAChB,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED,uBAAuB,CAAC,UAAkB,EAAE,kBAA6B;QACvE,kBAAkB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACxD,kBAAkB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,eAAe,EAAE,CAAC;QAC1D,kBAAkB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,sBAAsB,EAAE,CAAC;IACnE,CAAC;IAED,6BAA6B;QAE3B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAE1B,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,KAAK,CAAC,EAAC;YAC/C,IAAI,CAAC,uBAAuB,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC;YACzD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACpE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,sBAAsB,EAAE,CAAC;YACzD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACzE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,sBAAsB,EAAE,CAAC;SAC/D;aACI,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,KAAK,CAAC,EAAC;YACpD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC,CAAC;YAC1H,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,sBAAsB,EAAE,CAAC;YAC9D,IAAI,CAAC,uBAAuB,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC;YACpD,IAAI,CAAC,uBAAuB,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC;SAC1D;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO;QAChC,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC;QACzE,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC;QAEzE,IAAI,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1C,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,WAAW,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE;YAC5H,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,WAAW,EAAE;gBACnD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,2CAA2C,EAAE,GAAG,EAAE;oBACnE,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;oBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;iBACxC,CAAC,CAAC;aACJ;iBACI;gBACH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;oBACjE,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;oBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;iBACxC,CAAC,CAAC;aACJ;YACD,OAAO,KAAK,CAAC;SACd;QAED,QAAQ,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE;YAC3C,KAAK,iEAAW,CAAC,aAAa;gBAC5B,IAAI,UAAyB,CAAC;gBAC9B,UAAU,GAAG,IAAI,+EAAa,EAAE,CAAC;gBACjC,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;gBACxC,IAAI,IAAI,CAAC,QAAQ,EAAE;oBACjB,UAAU,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;iBAC/B;gBACD,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC;gBAClE,UAAU,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;gBAChE,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC;gBAC7D,UAAU,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC;gBACtE,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC;gBAChE,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC;gBAC5D,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC;gBAC5D,IAAI,UAAU,IAAI,CAAC,CAAC,UAAU,CAAC,YAAY,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE;oBAC3E,OAAO;iBACR;gBACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACtD,IAAI,UAAU,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,eAAe,IAAI,UAAU,CAAC,eAAe,IAAI,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,UAAU,CAAC,YAAY;2BACnK,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,UAAU,CAAC,WAAW,IAAI,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,UAAU,CAAC,WAAW,CAAC,WAAW,EAAE;2BAC9J,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,IAAI,UAAU,CAAC,cAAc,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,UAAU,CAAC,SAAS;2BAChK,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE;wBACjE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;4BAC/D,QAAQ,EAAE,IAAI;4BACd,UAAU,EAAC,CAAC,aAAa,CAAC;4BAC1B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;4BAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;yBACxC,CAAC,CAAC;wBACH,OAAO;qBACR;iBACF;gBACD,IAAI,UAAU,IAAI,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE;oBACtC,IAAI,CAAC,oBAAoB,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;wBAC/E,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,2CAA2C,EAAE,GAAG,EAAE;4BACnE,QAAQ,EAAE,IAAI;4BACd,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;4BAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;yBACxC,CAAC,CAAC;wBACH,IAAI,CAAC,qBAAqB,EAAE,CAAC;wBAC7B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;wBAC3B,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,CAAC;wBACpC,qBAAqB;oBACvB,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;wBACX,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;4BAC/D,QAAQ,EAAE,IAAI;4BACd,UAAU,EAAC,CAAC,aAAa,CAAC;4BAC1B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;4BAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;yBACxC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;iBACJ;gBACD,IAAI,UAAU,IAAI,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE;oBACtC,IAAI,CAAC,oBAAoB,CAAC,0BAA0B,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;wBAClF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,6CAA6C,EAAE,GAAG,EAAE;4BACrE,QAAQ,EAAE,IAAI;4BACd,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;4BAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;yBACxC,CAAC,CAAC;wBACH,IAAI,CAAC,qBAAqB,EAAE,CAAC;wBAC7B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;wBAC3B,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;wBACpB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;oBACrB,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;wBACX,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;4BACjE,QAAQ,EAAE,IAAI;4BACd,UAAU,EAAC,CAAC,aAAa,CAAC;4BAC1B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;4BAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;yBACxC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;iBACJ;gBACD,MAAM;YACR,KAAK,iEAAW,CAAC,UAAU;gBACzB,IAAI,UAAsB,CAAC;gBAC3B,UAAU,GAAG,IAAI,4EAAU,EAAE,CAAC;gBAC9B,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;gBACxC,IAAI,IAAI,CAAC,QAAQ,EAAE;oBACjB,UAAU,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;iBAC/B;gBACD,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC;gBAChE,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC;gBAClE,UAAU,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC;gBACtE,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC;gBAChE,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC;gBAC5D,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC;gBAC5D,IAAI,UAAU,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE;oBAC1C,OAAO;iBACR;gBACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACnD,IAAI,UAAU,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,UAAU,CAAC,YAAY,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,UAAU,CAAC,WAAW;2BACrJ,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,UAAU,CAAC,WAAW,CAAC,WAAW,EAAE;2BACxF,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,IAAI,UAAU,CAAC,cAAc,CAAC,WAAW,EAAE;2BAC9F,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,UAAU,CAAC,SAAS,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE;wBAC1H,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,oCAAoC,EAAE,GAAG,EAAE;4BAC5D,QAAQ,EAAE,IAAI;4BACd,UAAU,EAAC,CAAC,aAAa,CAAC;4BAC1B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;4BAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;yBACxC,CAAC,CAAC;wBACH,OAAO;qBACR;iBACF;gBACD,IAAI,UAAU,IAAI,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE;oBACtC,IAAI,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;wBAC5E,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,wCAAwC,EAAE,GAAG,EAAE;4BAChE,QAAQ,EAAE,IAAI;4BACd,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;4BAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;yBACxC,CAAC,CAAC;wBACH,IAAI,CAAC,qBAAqB,EAAE,CAAC;wBAC7B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;wBAC3B,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;wBAChC,IAAI,CAAC,WAAW,EAAE,CAAC;oBACrB,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;wBACX,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,oCAAoC,EAAE,GAAG,EAAE;4BAC5D,QAAQ,EAAE,IAAI;4BACd,UAAU,EAAC,CAAC,aAAa,CAAC;4BAC1B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;4BAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;yBACxC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;iBACJ;gBACD,IAAI,UAAU,IAAI,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE;oBACtC,IAAI,CAAC,oBAAoB,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;wBAC/E,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,0CAA0C,EAAE,GAAG,EAAE;4BAClE,QAAQ,EAAE,IAAI;4BACd,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;4BAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;yBACxC,CAAC,CAAC;wBACH,IAAI,CAAC,qBAAqB,EAAE,CAAC;wBAC7B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;wBAC3B,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;wBACpB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;wBACnB,IAAI,CAAC,WAAW,EAAE,CAAC;oBACrB,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;wBACX,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,sCAAsC,EAAE,GAAG,EAAE;4BAC9D,QAAQ,EAAE,IAAI;4BACd,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;4BAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;yBACxC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;iBACJ;gBACD,MAAM;YACR;gBACE,MAAM;SACT;QACD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IACD,mBAAmB;QACjB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED,WAAW,CAAC,KAAU;QACpB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC;IACjC,CAAC;IAAA,CAAC;IACF,aAAa,CAAC,KAAU;QACtB,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;QAChC,IAAI,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1C,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QACpC,IAAI,IAAI,CAAC,SAAS,GAAG,WAAW,EAAE;YAChC,IAAI,CAAC,qBAAqB,GAAG,2CAA2C,CAAC;YACzE,OAAO,KAAK,CAAC;SACd;IACH,CAAC;IACD,aAAa,CAAC,KAAU;QACtB,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE;YACvC,IAAI,CAAC,qBAAqB,GAAG,6CAA6C,CAAC;YAC3E,OAAO,KAAK,CAAC;SACd;IACH,CAAC;;4GAjlBU,8BAA8B;8GAA9B,8BAA8B;kEA8B9B,iEAAkB;;kEAEf,wEAAY;kEACZ,8DAAO;;;;;;;;QCnEvB;QAAA,4EAA8I;QAA3C,sJAAS,kCAA8B,IAAC;QAAG,+DAAG;QAAA,4DAAS;QAC1J;QAAA,gEACA;QAAA;QAAA,gEACA;QAAA;QAAA,yEACQ;QAAA;QAAA,0EACQ;QAAA;QAAA,yEAA2B;QAAA,yEAAa;QAAA,4DAAK;QACrD;QAAA,4DAAM;QACV;QAAA,4DAAM;QACV;QAAA,2EAEI;QAAA;QAAA,0EACQ;QAAA;QAAA,8EACR;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,kEAAM;QAAA,4DAAY;QAC7B;QAAA,+EACJ;QADoB,4JAAS,uBAAmB,IAAC;QAA7C,4DACJ;QAAA;QAAA,4DAAiB;QACjB;QAAA,4DAAU;QACV;QAAA,4DAAM;QACN;QAAA,mFAEI;QAAA;QAAA,yEAAmB;QAAA,uEAAW;QAAA,4DAAI;QACtC;QAAA,4DAAc;QAId;QAAA,2EACI;QAAA;QAAA,iFACI;QAAA;QAAA,6EACI;QAAA;QAAA,2HAAuD;QAEvD;QAAA,2HACI;QAER;QAAA,qEAAe;QACf;QAAA,6EACQ;QAAA;QAAA,2HAAuD;QAEvD;QAAA,2HACI;QAER;QAAA,qEAAe;QACf;QAAA,6EACQ;QAAA;QAAA,2HAAuD;QAEvD;QAAA,2HACI;QAER;QAAA,qEAAe;QACf;QAAA,6EACQ;QAAA;QAAA,2HAAuD;QAEvD;QAAA,2HACI;QAER;QAAA,qEAAe;QACf;QAAA,6EACQ;QAAA;QAAA,2HAAuD;QAEvD;QAAA,2HACI;QAER;QAAA,qEAAe;QACf;QAAA,6EACQ;QAAA;QAAA,2HAAuD;QAEvD;QAAA,2HACI;QAER;QAAA,qEAAe;QACnC;QAAA,6EACI;QAAA;QAAA,2HAAsC;QACtC;QAAA,2HACQ;QAEZ;QAAA,qEAAe;QACf;QAAA,6EACQ;QAAA;QAAA,2HAAsC;QACtC;QAAA,2HACQ;QAEZ;QAAA,qEAAe;QACnB;QAAA,6HAAuD;QAEvD;QAAA,6HAA6D;QAC7D;QAAA,6HACQ;QAEZ,4DAAQ;QACR;QAAA,4EACQ;QAAA;QAAA,iFAA+D;QACvE;QAAA,4DAAM;QACV;QAAA,4DAAM;QACV;QAAA,4DAAO;QAGP;QAAA,2EACQ;QAAA;QAAA,2EACQ;QAAA;QAAA,0EAA2B;QAAA,uEAAU;QAAA,4DAAK;QAClD;QAAA,4DAAM;QACV;QAAA,4DAAM;QACV;QAAA,4EACI;QAAA;QAAA,4EACQ;QAAA;QAAA,+EACR;QAAA;QAAA,sFACI;QAAA;QAAA,8EAAW;QAAA,mEAAM;QAAA,4DAAY;QAC7B;QAAA,iFACJ;QADoB,6JAAS,wBAAoB,IAAC;QAA9C,4DACJ;QAAA;QAAA,4DAAiB;QACjB;QAAA,4DAAU;QACV;QAAA,4DAAM;QAGN;QAAA,4EACI;QAAA;QAAA,kFACI;QAAA;QAAA,8EACI;QAAA;QAAA,6HAAuD;QAEvD;QAAA,6HACI;QAER;QAAA,qEAAe;QACf;QAAA,8EACQ;QAAA;QAAA,6HAAuD;QAEvD;QAAA,6HACI;QAER;QAAA,qEAAe;QACf;QAAA,8EACQ;QAAA;QAAA,6HAAuD;QAEvD;QAAA,6HACI;QAER;QAAA,qEAAe;QACf;QAAA,8EACQ;QAAA;QAAA,6HAAuD;QAEvD;QAAA,6HACI;QAER;QAAA,qEAAe;QACf;QAAA,8EACQ;QAAA;QAAA,6HAAuD;QAEvD;QAAA,6HACI;QAER;QAAA,qEAAe;QAC/B;QAAA,8EACI;QAAA;QAAA,6HAAsC;QACtC;QAAA,6HACQ;QAEZ;QAAA,qEAAe;QACf;QAAA,8EACQ;QAAA;QAAA,6HAAsC;QACtC;QAAA,6HACQ;QAEZ;QAAA,qEAAe;QACnB;QAAA,6HAAsD;QAEtD;QAAA,6HAA4D;QAC5D;QAAA,6HACQ;QAEZ,4DAAQ;QACR;QAAA,4EACQ;QAAA;QAAA,iFAA+D;QACvE;QAAA,4DAAM;QACV;QAAA,4DAAM;QACV;QAAA,4DAAO;QAEP;QAAA,6NACK;QAuKL;;QAzUoB,2DAAkC;QAAlC,sGAAkC;QAMQ,2DAAmB;QAAnB,4EAAmB;QAQjD,0DAAyB;QAAzB,sFAAyB;QAuD1B,2DAAmC;QAAnC,iGAAmC;QAE1C,0DAAgD;QAAhD,kGAAgD;QAMzC,0DAA+B;QAA/B,mJAA+B;QAc1C,2DAAkC;QAAlC,sGAAkC;QAStB,2DAA0B;QAA1B,uFAA0B;QAgD3B,2DAAkC;QAAlC,gGAAkC;QAEzC,0DAA+C;QAA/C,iGAA+C;QAMxC,0DAA+B;QAA/B,mJAA+B;;6FDtIjD,8BAA8B;cAL1C,uDAAS;eAAC;gBACT,QAAQ,EAAE,4BAA4B;gBACtC,WAAW,EAAE,yCAAyC;gBACtD,SAAS,EAAE,CAAC,yCAAyC,CAAC;aACvD;isBA+BgC,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;YAED,SAAS;kBAApC,0DAAY;mBAAC,wEAAY;YACH,IAAI;kBAA1B,0DAAY;mBAAC,8DAAO;YACqB,2BAA2B;kBAApE,uDAAS;mBAAC,6BAA6B;;;;;;;;;;;;;;AErE1C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAyD;AAC0B;AACtB;;;;;;;ICEjD,yEAAgF;IAAA,kEAAM;IAAA,4DAAK;;;IAC3F,yEAAwC;IAAA,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,gGAAsB;;;IAG9D,yEAAgF;IAAA,wEAAY;IAAA,4DAAK;;;IACjG,yEAAwC;IAAA,uDAAiC;IAAA,4DAAK;;;IAAtC,0DAAiC;IAAjC,2GAAiC;;;IAE7E,oEAA4D;;;IAC5D,yEAEA;IAAA;IAAA,4DAAK;;ADLN,MAAM,6BAA6B;IAExC,YAA4C,IAAiB,EACrD,SAAqD;QADjB,SAAI,GAAJ,IAAI,CAAa;QACrD,cAAS,GAAT,SAAS,CAA4C;QAF7D,eAAU,GAAyB,IAAI,0EAAkB,EAAO,CAAE;QAUlE,qBAAgB,GAAa;YAC3B,WAAW;YACX,aAAa;SACd,CAAC;QAVA,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED,QAAQ;QACN,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE9B,CAAC;IAKD,cAAc;QAEZ,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;IACA,WAAW,CAAC,OAAc,IAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAC,KAAK,EAAC,OAAO,EAAC,CAAC,CAAC,CAAC,CAAC;;0GAnB/D,6BAA6B,kEAEpB,wEAAe;6GAFxB,6BAA6B;QCT1C,yEACA;QAAA;QAAA,yEACI;QAAA;QAAA,2EACI;QAAA;QAAA,2EACI;QAAA;QAAA,uHAAgF;QAChF;QAAA,yHAAwC;QAC5C;QAAA,qEAAe;QACf;QAAA,4EACI;QAAA;QAAA,yHAAgF;QAChF;QAAA,yHAAwC;QAC5C;QAAA,qEAAe;QACf;QAAA,yHAAuD;QACvD;QAAA,yHAEA;QAEJ;QAAA,4DAAQ;QACZ;QAAA,4DAAM;QACN;QAAA,4DAAM;QACN;QAAA,0EAEI;QAAA;QAAA,8EAAgG;QAA5B,sJAAS,gBAAY,IAAI,CAAC,IAAC;QAAC,8DAAE;QAAA,4DAAS;QAC3G;QAAA,8EAAuF;QAAjC,sJAAS,gBAAY,QAAQ,CAAC,IAAC;QAAE,kEAAM;QAAA,4DAAS;QACxG;QAAA,4DAAM;QACR;;QAtBqB,0DAAyB;QAAzB,sFAAyB;QASnB,2DAAmC;QAAnC,iGAAmC;QAC1C,0DAAoD;QAApD,kGAAoD;;6FDH3D,6BAA6B;cALzC,uDAAS;eAAC;gBACT,QAAQ,EAAE,4BAA4B;gBACtC,WAAW,EAAE,yCAAyC;gBACtD,SAAS,EAAE,CAAC,yCAAyC,CAAC;aACvD;;sBAGc,oDAAM;uBAAC,wEAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AEXwB;AACwC;AAGtB;AAIjB;AAEd;AAEsB;AACb;AACI;AAEZ;AAE1B;AAG0D;AAGuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICAhF,6EAEI;IADmC,6UAA4B,SAAS,KAAE;IAC1E;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC9B;IAAA,4DAAS;;;;IAGL,iFAEI;IAFQ,gXAA2B,SAAS,iBAAS;IAErD,uDACJ;IAAA,4DAAa;;;IAFyC,6EAAgB;IAClE,0DACJ;IADI,0JACJ;;;IAEJ,4EAAiE;IAAA,0EAAe;IAAA,4DAAY;;;IAC5F,4EAAqE;IAAA,2JAE1D;IAAA,4DAAY;;;IAUvB,4EAAkF;IAAA,6GACtE;IAAA,4DAAY;;;IACxB,4EAAiF;IAAA,4GACtE;IAAA,4DAAY;;;IAanB,iFACI;IAAA,uDAAY;IAAA,4DAAa;;;IADmB,8EAAiB;IAC7D,0DAAY;IAAZ,wHAAY;;;IAEpB,4EACqF;IAAA,qHAChE;IAAA,4DAAY;;;IAYjC,4EAAmF;IAAA,0JAC1B;IAAA,4DAAY;;;IACrE,4EAAoF;IAAA,2IAExE;IAAA,4DAAY;;;IACxB,4EACI;IAAA,mJACJ;IAAA,4DAAY;;;IACZ,4EACI;IAAA,4IACJ;IAAA,4DAAY;;;;IAgB5B,6EAAsF;IAA9B,4UAA6B;IAAC,uDAC9D;IAAA,4DAAS;;;IADqD,0DAC9D;IAD8D,sIAC9D;;;;IACxB,6EAAuF;IAA9B,4UAA6B;IAAC,uDAC/D;IAAA,4DAAS;;;IADsD,0DAC/D;IAD+D,kIAC/D;;;IAaA,yEAAgF;IAAA,mGAChF;IAAA,4DAAK;;;IACL,yEAAwC;IAAA,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,iGAAsB;;;IAG9D,yEAAgF;IAAA,qGAChF;IAAA,4DAAK;;;IACL,yEAAwC;IAAA,uDAAoB;IAAA,4DAAK;;;IAAzB,0DAAoB;IAApB,+FAAoB;;;IAG5D,yEACI;IAAA,6GAAY;IAAA,4DAAK;;;IACrB,yEAAwC;IAAA,uDAAiC;IAAA,4DAAK;;;IAAtC,0DAAiC;IAAjC,4GAAiC;;;IAGzE,yEACI;IAAA,sHAAqB;IAAA,4DAAK;;;IAC9B,yEAAwC;IAAA,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,kGAAuB;;;IAG/D,yEAAgF;IAAA,2GACvE;IAAA,4DAAK;;;IACd,yEAAwC;IAAA,uDAAqB;IAAA,4DAAK;;;IAA1B,0DAAqB;IAArB,gGAAqB;;;IAG7D,yEAAgF;IAAA,oGAChF;IAAA,4DAAK;;;IACL,yEAAwC;IAAA,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,kGAAuB;;;IAG/D,yEAAuC;IAAA,mEAAO;IAAA,4DAAK;;;;IAE/C,6EACI;IAAA;IAAA,+EAC6B;IADa,mbAA4B;IACzC,+DAAI;IAAA,4DAAW;IAChD;IAAA,4DAAS;;;;IAFK,0DAA+B;IAA/B,oGAA+B;;;IAG7C,6EAEI;IAAA;IAAA,+EAAmC;IAAA,+DAAI;IAAA,4DAAW;IACtD;IAAA,4DAAS;;;;IAH4B,sGAAiC;;;;IAItE,6EACI;IAAA;IAAA,+EACmC;IAA/B,qbAA8B;IAAC,iEAAM;IAAA,4DAAW;IACxD;IAAA,4DAAS;;;IAZb,yEACI;IAAA;IAAA,kIACI;IAGJ;IAAA,kIAEI;IAEJ;IAAA,kIACI;IAIR;IAAA,4DAAK;;;;IAbO,0DAA6B;IAA7B,mGAA6B;IAI7B,0DAA4B;IAA5B,kGAA4B;IAI5B,0DAAwE;IAAxE,4IAAwE;;;IAgBhE,yEAAuC;IAAA,6EAAiB;IAAA,4DAAK;;;IAC7D,yEACI;IAAA,uDAAgC;IAAA,4DAAK;;;IAArC,0DAAgC;IAAhC,qKAAgC;;;IAIpC,yEAAuC;IAAA,sEAAU;IAAA,4DAAK;;;IACtD,yEACI;IAAA,uDAAuC;IAAA,4DAAK;;;IAA5C,0DAAuC;IAAvC,4KAAuC;;;IAG3C,yEACI;IAAA,0IAAqB;IAAA,4DAAK;;;IAC9B,yEAAwC;IAAA,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,mGAAuB;;;IAG/D,yEAAgE;IAAA,+HACvD;IAAA,4DAAK;;;IACd,yEAAwC;IAAA,uDAAqB;IAAA,4DAAK;;;IAA1B,0DAAqB;IAArB,iGAAqB;;;IAG7D,yEAAuC;IAAA,mEAAO;IAAA,4DAAK;;;IACnD,yEAAwC;IAAA,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,mGAAuB;;;IAI/D,yEAAuC;IAAA,oEAAQ;IAAA,4DAAK;;;IACpD,yEAC+B;IAAA,uDAAoB;IAAA,4DAAK;;;IADhC,uGAAgC;IACzB,0DAAoB;IAApB,gGAAoB;;;IAInD,yEAAuC;IAAA,2EAAe;IAAA,4DAAK;;;IAC3D,yEAAwC;IAAA,uDAChB;;IAAA,4DAAK;;;IADW,0DAChB;IADgB,qLAChB;;;IAIxB,yEAAuC;IAAA,0EAAc;IAAA,4DAAK;;;IAC1D,yEAAwC;IAAA,uDAChB;;IAAA,4DAAK;;;IADW,0DAChB;IADgB,oLAChB;;;IAG5B,oEAAoE;;;IACpE,yEACA;IAAA;IAAA,4DAAK;;;IArDrB,yEACI;IAAA;IAAA,0EAGI;IAAA;IAAA,+EACI;IAAA;IAAA,4EAEI;IAAA;IAAA,4EACI;IAAA;IAAA,4HAAuC;IACvC;IAAA,4HACI;IACR;IAAA,qEAAe;IAEf;IAAA,6EACI;IAAA;IAAA,4HAAuC;IACvC;IAAA,4HACI;IACR;IAAA,qEAAe;IACf;IAAA,6EACI;IAAA;IAAA,4HACI;IACJ;IAAA,4HAAwC;IAC5C;IAAA,qEAAe;IACf;IAAA,6EACI;IAAA;IAAA,4HAAgE;IAEhE;IAAA,4HAAwC;IAC5C;IAAA,qEAAe;IACf;IAAA,6EACI;IAAA;IAAA,4HAAuC;IACvC;IAAA,4HAAwC;IAC5C;IAAA,qEAAe;IAEf;IAAA,6EACI;IAAA;IAAA,4HAAuC;IACvC;IAAA,4HAC+B;IACnC;IAAA,qEAAe;IAEf;IAAA,6EACI;IAAA;IAAA,4HAAuC;IACvC;IAAA,4HAAwC;IAE5C;IAAA,qEAAe;IAEf;IAAA,6EACI;IAAA;IAAA,4HAAuC;IACvC;IAAA,4HAAwC;IAE5C;IAAA,qEAAe;IAEf;IAAA,4HAA+D;IAC/D;IAAA,4HACA;IACJ;IAAA,4DAAQ;IAEZ;IAAA,4DAAW;IACf;IAAA,4DAAM;IACV;IAAA,4DAAK;;;;IA1DkC,6GAAgD;IAE/E,0DAAuE;IAAvE,4IAAuE;IAG5D,0DAA8B;IAA9B,+FAA8B;IA8Cd,2DAA2C;IAA3C,6GAA2C;IAClD,0DAAwD;IAAxD,8GAAwD;;;IAQxF,oEAA4D;;;;IAC5D,yEAGA;IADI,gXAA6B;IACjC;IAAA,4DAAK;;;;IAFD,2HAA0D;;;IAG9D,yEACA;IAAA;IAAA,4DAAK;;;IAgBD,yEAAgF;IAAA,mGAChF;IAAA,4DAAK;;;IACL,yEAAwC;IAAA,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,kGAAsB;;;IAG9D,yEAAgF;IAAA,qGAChF;IAAA,4DAAK;;;IACL,yEAAwC;IAAA,uDAAoB;IAAA,4DAAK;;;IAAzB,0DAAoB;IAApB,gGAAoB;;;IAG5D,yEACI;IAAA,6GAAY;IAAA,4DAAK;;;IACrB,yEAAwC;IAAA,uDAAiC;IAAA,4DAAK;;;IAAtC,0DAAiC;IAAjC,6GAAiC;;;IAGzE,yEACI;IAAA,sHAAqB;IAAA,4DAAK;;;IAC9B,yEAAwC;IAAA,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,mGAAuB;;;IAG/D,yEAAgF;IAAA,2GACvE;IAAA,4DAAK;;;IACd,yEAAwC;IAAA,uDAAqB;IAAA,4DAAK;;;IAA1B,0DAAqB;IAArB,iGAAqB;;;IAG7D,yEAAgF;IAAA,oGAChF;IAAA,4DAAK;;;IACL,yEAAwC;IAAA,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,mGAAuB;;;IAG/D,yEAAuC;IAAA,mEAAO;IAAA,4DAAK;;;;IAE/C,6EACI;IAAA;IAAA,+EAC6B;IADa,wbAA4B;IACzC,+DAAI;IAAA,4DAAW;IAChD;IAAA,4DAAS;;;;IAFK,0DAA+B;IAA/B,sGAA+B;;;IAG7C,6EAEI;IAAA;IAAA,+EAAmC;IAAA,+DAAI;IAAA,4DAAW;IACtD;IAAA,4DAAS;;;;IAH4B,wGAAiC;;;;IAItE,6EACI;IAAA;IAAA,+EACmC;IAA/B,0bAA8B;IAAC,iEAAM;IAAA,4DAAW;IACxD;IAAA,4DAAS;;;IAZb,yEACI;IAAA;IAAA,kIACI;IAGJ;IAAA,kIAEI;IAEJ;IAAA,kIACI;IAIR;IAAA,4DAAK;;;;IAbO,0DAA6B;IAA7B,oGAA6B;IAI7B,0DAA4B;IAA5B,mGAA4B;IAI5B,0DAAwE;IAAxE,8IAAwE;;;IAgBhE,yEAAuC;IAAA,6EAAiB;IAAA,4DAAK;;;IAC7D,yEACI;IAAA,uDAAgC;IAAA,4DAAK;;;IAArC,0DAAgC;IAAhC,qKAAgC;;;IAIpC,yEAAuC;IAAA,sEAAU;IAAA,4DAAK;;;IACtD,yEACI;IAAA,uDAAuC;IAAA,4DAAK;;;IAA5C,0DAAuC;IAAvC,4KAAuC;;;IAG3C,yEACI;IAAA,2IAAsB;IAAA,4DAAK;;;IAC/B,yEAAwC;IAAA,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,mGAAuB;;;IAG/D,yEAAgE;IAAA,+HACvD;IAAA,4DAAK;;;IACd,yEAAwC;IAAA,uDAAqB;IAAA,4DAAK;;;IAA1B,0DAAqB;IAArB,iGAAqB;;;IAG7D,yEAAuC;IAAA,mEAAO;IAAA,4DAAK;;;IACnD,yEAAwC;IAAA,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,mGAAuB;;;IAI/D,yEAAuC;IAAA,oEAAQ;IAAA,4DAAK;;;IACpD,yEAC+B;IAAA,uDAAoB;IAAA,4DAAK;;;IADhC,uGAAgC;IACzB,0DAAoB;IAApB,gGAAoB;;;IAInD,yEAAuC;IAAA,2EAAe;IAAA,4DAAK;;;IAC3D,yEAAwC;IAAA,uDAChB;;IAAA,4DAAK;;;IADW,0DAChB;IADgB,qLAChB;;;IAIxB,yEAAuC;IAAA,0EAAc;IAAA,4DAAK;;;IAC1D,yEAAwC;IAAA,uDAChB;;IAAA,4DAAK;;;IADW,0DAChB;IADgB,oLAChB;;;IAG5B,oEAAoE;;;IACpE,yEACA;IAAA;IAAA,4DAAK;;;IArDrB,yEACI;IAAA;IAAA,0EAGI;IAAA;IAAA,+EACI;IAAA;IAAA,4EAEI;IAAA;IAAA,4EACI;IAAA;IAAA,4HAAuC;IACvC;IAAA,4HACI;IACR;IAAA,qEAAe;IAEf;IAAA,6EACI;IAAA;IAAA,4HAAuC;IACvC;IAAA,4HACI;IACR;IAAA,qEAAe;IACf;IAAA,6EACI;IAAA;IAAA,4HACI;IACJ;IAAA,4HAAwC;IAC5C;IAAA,qEAAe;IACf;IAAA,6EACI;IAAA;IAAA,4HAAgE;IAEhE;IAAA,4HAAwC;IAC5C;IAAA,qEAAe;IACf;IAAA,6EACI;IAAA;IAAA,4HAAuC;IACvC;IAAA,4HAAwC;IAC5C;IAAA,qEAAe;IAEf;IAAA,6EACI;IAAA;IAAA,4HAAuC;IACvC;IAAA,4HAC+B;IACnC;IAAA,qEAAe;IAEf;IAAA,6EACI;IAAA;IAAA,4HAAuC;IACvC;IAAA,4HAAwC;IAE5C;IAAA,qEAAe;IAEf;IAAA,6EACI;IAAA;IAAA,4HAAuC;IACvC;IAAA,4HAAwC;IAE5C;IAAA,qEAAe;IAEf;IAAA,4HAA+D;IAC/D;IAAA,4HACA;IACJ;IAAA,4DAAQ;IAEZ;IAAA,4DAAW;IACf;IAAA,4DAAM;IACV;IAAA,4DAAK;;;;IA1DkC,6GAAgD;IAE/E,0DAAuE;IAAvE,6IAAuE;IAG5D,0DAA8B;IAA9B,+FAA8B;IA8Cd,2DAA2C;IAA3C,6GAA2C;IAClD,0DAAwD;IAAxD,8GAAwD;;;IAQxF,oEAA4D;;;;IAC5D,yEAGA;IADI,gXAA6B;IACjC;IAAA,4DAAK;;;;IAFD,2HAA0D;;;IAG9D,yEACA;IAAA;IAAA,4DAAK;;;;ADpU1B,MAAM,wBAAwB;IAqEnC,YACU,QAAwB,EACxB,KAAa,EACb,SAA8B,EAC9B,aAA4B,EAC5B,aAAgC,EAChC,YAA2B,EAC3B,SAAsB,EACvB,MAAiB;QAPhB,aAAQ,GAAR,QAAQ,CAAgB;QACxB,UAAK,GAAL,KAAK,CAAQ;QACb,cAAS,GAAT,SAAS,CAAqB;QAC9B,kBAAa,GAAb,aAAa,CAAe;QAC5B,kBAAa,GAAb,aAAa,CAAmB;QAChC,iBAAY,GAAZ,YAAY,CAAe;QAC3B,cAAS,GAAT,SAAS,CAAa;QACvB,WAAM,GAAN,MAAM,CAAW;QAjE1B,WAAM,GAAW,KAAK,CAAC;QAGvB,aAAQ,GAAG,EAAE,CAAC;QACd,aAAQ,GAAG,KAAK,CAAC;QACjB,cAAS,GAAG,KAAK,CAAC;QAClB,qBAAgB,GAAY,KAAK,CAAC;QAKlC,iBAAY,GAAG,CAAC,CAAC;QACjB,oBAAe,GAAG,CAAC,CAAC;QAIpB,sBAAiB,GAAiB,EAAE,CAAC;QACrC,kBAAa,GAAG,KAAK,CAAC;QAEtB,iBAAY,GAAa,EAAE,CAAC;QACpB,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QACtD,mCAA8B,GAAU,EAAE,CAAC;QAC3C,qCAAgC,GAAU,EAAE,CAAC;QAC7C,UAAK,GAAQ,CAAC,CAAC;QAEf,qBAAgB,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QAEpD,qBAAgB,GAAa;YAC3B,WAAW;YACX,SAAS;YACT,aAAa;YACb,YAAY;YACZ,UAAU;YACV,QAAQ;YACR,QAAQ;SACT,CAAC;QACF,6BAAwB,GAAa;YACnC,iBAAiB;YACjB,UAAU;YACV,YAAY;YACZ,UAAU;YACV,QAAQ;YACR,SAAS;YACT,eAAe;YACf,cAAc;SACf;QAKD,uBAAkB,GAAY,KAAK,CAAC;QAiBlC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;QAChD,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,UAAU;QAClF,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IACD,QAAQ;QACN,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAED,UAAU,CAAC,KAAW,EAAE,SAAiB;QACrC,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,IAAI,SAAS,IAAI,SAAS,EAAC;YACzB,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;YAChC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC;YACrC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC;YACrC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,KAAK,EAAE,CAAC;YAChD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,CAAC;YACxC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC;YACtC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,KAAK,EAAE,CAAC;YAChD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,CAAC;YACxC,IAAI,CAAC,UAAU,GAAC,EAAE,CAAC;YACnB,KAAK,CAAC,eAAe,EAAE,CAAC;SACzB;IACH,CAAC;IAED,UAAU;QACR,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,IAAI,wDAAS,CAAC;YAC5B,kBAAkB,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACzC,gBAAgB,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACvC,YAAY,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACnC,UAAU,EAAC,IAAI,0DAAW,CAAC,IAAI,CAAC;YAChC,OAAO,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACrD,kBAAkB,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,yDAAU,CAAC,QAAQ,CAAC;YAC9D,UAAU,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ;gBACpD,yDAAU,CAAC,OAAO,CAAC,2DAA2D,CAAC;gBAC/E,IAAI,CAAC,gBAAgB,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC1C,QAAQ,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAC,yDAAU,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,EAAE,yDAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,yDAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YACzL,SAAS,EAAE,IAAI,0DAAW,CAAC,KAAK,CAAC;YACjC,iCAAiC;YACjC,UAAU,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACjC,EAAE,EAAE,IAAI,0DAAW,CAAC,CAAC,CAAC;YACtB,OAAO,EAAG,IAAI,0DAAW,CAAC,IAAI,CAAC;SAChC,CAAC,CAAC;IACL,CAAC;IAEO,kBAAkB,CAAC,KAAK;QAC9B,IAAI,WAAW,CAAC;QAChB,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE;YACrC,OAAO,IAAI,CAAC,UAAU,CAAC;SACxB;QACD,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,EAAE;YAC1B,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE;gBACrC,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;aAC3C;iBACI;gBACH,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,EAAE;oBAC1B,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;iBACjD;aACF;YACD,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CACvC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CACjD,CAAC;SACH;aAAM;YACL,OAAO,IAAI,CAAC,UAAU,CAAC;SACxB;IACH,CAAC;IAED,cAAc,CAAC,KAAU;QACvB,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,YAAY,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,EAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YAC9I,IAAI,aAAa,GAAE,EAAE,CAAC;YACtB,IAAI,eAAe,GAAE,EAAE,CAAC;YACxB,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,GAAG,CAAC,MAAM,EAAC,CAAC,EAAE,EAC3B;gBACC,IAAG,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,IAAE,IAAI,EACxB;oBACC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC3B;qBACG;oBACH,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC7B;aACF;YACD,IAAI,CAAC,YAAY,GAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAE,EAAC,CAAC,UAAU,IAAE,SAAS,CAAC,CAAC;YAC3D,IAAI,CAAC,KAAK,GAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;YACnC,IAAI,CAAC,8BAA8B,GAAG,aAAa,CAAC;YACpD,IAAI,CAAC,iBAAiB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;YACrF,IAAI,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC;YACzD,IAAI,CAAC,iBAAiB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YAExC,IAAI,CAAC,gCAAgC,GAAG,eAAe,CAAC;YACxD,IAAI,CAAC,mBAAmB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;YACzF,IAAI,CAAC,mBAAmB,CAAC,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC;YAC7D,IAAI,CAAC,iBAAiB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAC1C,CAAC,CAAC,CAAC;IACL,CAAC;IACK,sBAAsB,CAAC,OAAO;;YAClC,IAAI,QAAQ,GAAO,MAAM,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE;YACnG,OAAO,QAAQ;QACjB,CAAC;KAAA;IACK,UAAU,CAAC,OAAwB;;YACvC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAG,IAAI,CAAC,eAAe,IAAE,IAAI,IAAI,IAAI,CAAC,eAAe,IAAE,OAAO,EAAC;gBAC7D,IAAI,CAAC,WAAW,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;gBAE9D,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAC,CAAC,OAAO,CAAC;aAErE;iBACG;gBACF,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;gBACtB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;aAC7B;YACD,IAAI,CAAC,eAAe,GAAI,IAAI,0EAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACnE,CAAC;KAAA;IACD,YAAY;QACV,IAAI,IAAI,CAAC,WAAW,IAAI,EAAE,EAAC;YACzB,OAAO,IAAI,CAAC;SACb;aACG;YACF,OAAO,KAAK,CAAC;SACd;IACH,CAAC;IACD,uBAAuB,CAAC,YAAY;QAElC,IAAI,YAAY,IAAI,IAAI,IAAI,YAAY,CAAC,MAAM,IAAE,CAAC,EAAE;YAClD,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC,MAAa,EAAE,EAAE;gBAC1E,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;gBACjC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;gBACrB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;oBACvB,IAAG,OAAO,CAAC,kBAAkB,CAAC,WAAW,EAAE,IAAI,eAAe,EAAC;wBAC7D,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;qBAC5E;gBAEH,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CACvD,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAC/C,CAAC;YACJ,CAAC,CAAC,CAAC;YACF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC;SACxC;aACG;YACF,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;SACtB;IACH,CAAC;IAED,kBAAkB;QAEhB,IAAI,CAAC,aAAa,CAAC,oBAAoB,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YACxD,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;YAC5B,IAAI,CAAC,0BAA0B,GAAG,EAAE,CAAC;YACrC,IAAI,CAAC,0BAA0B,GAAG,GAAG,CAAC;YACtC,IAAI,CAAC,0BAA0B,GAAG,GAAG,CAAC;YACtC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,oBAAoB,KAAK,OAAO,CAAC,CAAC;YAC9G,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACnC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;oBAC1B,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC;oBACrC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC;iBACpC,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,SAAS,CAAC,QAAQ;QAChB,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,iBAAiB,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;QAC/E,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC;QAC1C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,OAAO,EAAE,CAAC;QAClD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;QACvC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;YACvB,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,OAAO,EAAE,iBAAiB;YAC1B,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB;YAC/C,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB;YAC/C,UAAU,EAAE,QAAQ,CAAC,cAAc;YACnC,UAAU,EAAE,IAAI,CAAC,EAAE;YACnB,OAAO,EAAG,QAAQ,CAAC,OAAO;YAC1B,gBAAgB,EAAG,QAAQ,CAAC,gBAAgB;YAC5C,YAAY,EAAC,QAAQ,CAAC,YAAY;SACnC,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,GAAG;YACpB,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB;YAC/C,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,UAAU,EAAE,IAAI,CAAC,EAAE;YACnB,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,OAAO,EAAG,QAAQ,CAAC,OAAO;YAC1B,gBAAgB,EAAG,QAAQ,CAAC,gBAAgB;YAC5C,YAAY,EAAC,QAAQ,CAAC,YAAY;SACnC,CAAC;IACJ,CAAC;IAED,SAAS,CAAC,IAAS;QACjB,OAAO,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9C,CAAC;IAED,iBAAiB,CAAC,QAAQ,EAAE,IAAI;QAC9B,IAAI,QAAQ,IAAG,SAAS,EAAE;YACxB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC;YAClC,IAAI,UAAU,GAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,GAAE,EAAC,CAAC,OAAO,IAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YAC3E,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;YACnF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;YACvE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;YAC/E,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;SAExE;IACH,CAAC;IACD,MAAM;QACJ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,QAAQ,GAAG,IAAI,oFAAW,EAAE,CAAC;QACjC,IAAI,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC5C,IAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,YAAY,EAAC;YAC7C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iDAAiD,EAAE,GAAG,EAAE;gBAC1E,UAAU,EAAE,CAAC,aAAa,CAAC;gBAC3B,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;SACd;QAED,IAAG,CAAC,IAAI,CAAC,cAAc,EAAE,EAAC;YACxB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uBAAuB,EAAE,GAAG,EAAE;gBAChD,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACH,OAAO;SACR;QAGD,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,EAAE;YAC/B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC;YAEvC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI;gBACvC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;YACxC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC;YACzC,6FAA6F;YAC7F,oCAAoC;YACpC,OAAO;YACP,oCAAoC;YACpC,IAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,EAAC;gBACrC,IAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAE,CAAC,CAAC,IAAI,GAAG,EAAC;oBACpH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,6CAA6C,EAAC,GAAG,EAAE;wBACrE,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACH,OAAO;iBACR;gBAED,IAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAE,CAAC,CAAC,IAAI,GAAG,EAAC;oBACpH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,0CAA0C,EAAC,GAAG,EAAE;wBAClE,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACH,OAAO;iBACR;aAEF;YAED,IAAI,IAAI,CAAC,QAAQ,IAAI,MAAM,EAAE;gBAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACrC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;gBACjD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAC,CAAC,CAAC;gBACvB,IAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,IAAE,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,IAAG,EAAE,EAAC;oBACvE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE;wBAC5D,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACH,OAAO,KAAK,CAAC;iBACd;gBACD,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;oBACpE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,0BAA0B,EAAE,GAAG,EAAE;wBACnD,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBAEH,IAAI,CAAC,MAAM,EAAE,CAAC;oBACd,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC3B,CAAC,EACC,CAAC,KAAK,EAAE,EAAE;oBACR,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,QAAQ,CAAC;oBACvC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;wBACpC,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,aAAa,CAAC;wBAC3B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;aACN;iBACI;gBACH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACrC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBAC/C,IAAG,8CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,EAAE;oBACtD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,sBAAsB,EAAE,GAAG,EAAE;wBAC/C,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,aAAa,CAAC;wBAC3B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;qBACG;oBACF,IAAI,CAAC,YAAY,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;wBACtE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,4BAA4B,EAAE,GAAG,EAAE;4BACrD,QAAQ,EAAE,IAAI;4BACd,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;wBACH,IAAI,CAAC,iBAAiB,EAAE,CAAC;wBACzB,IAAI,CAAC,MAAM,EAAE,CAAC;oBACd,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;wBACR,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,QAAQ,CAAC;wBACvC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;4BACpC,QAAQ,EAAE,IAAI;4BACd,UAAU,EAAE,CAAC,aAAa,CAAC;4BAC3B,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;iBACJ;aACJ;SAEF;QACD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IACD,MAAM;QACJ,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC;QACtC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC;QACrC,IAAI,CAAC,UAAU,GAAC,EAAE,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;YACvB,kBAAkB,EAAE,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,kBAAkB;SAC7F,CAAC;QACF,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;QACvB,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAChC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;IAC3D,CAAC;IACD,gBAAgB,CAAC,KAAK;QACpB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC;QAC/B,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE;YAC3B,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,EAAE;gBAC5B,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;oBACvB,kBAAkB,EAAE,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,kBAAkB;iBAC1F,CAAC,CAAC;aACJ;SACF;aACI;YACH,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,EAAE;gBAC5B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,KAAK,EAAE,CAAC;aACjD;SACF;IACH,CAAC;IAED,WAAW,CAAC,KAAY;QACtB,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;QAC7D,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACjE,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrE,CAAC;IAED,iBAAiB;QAEd,IAAI,SAAS,GAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uHAA6B,EAAE;YAC5D,KAAK,EAAC,OAAO;YACb,uBAAuB;YACvB,IAAI,EAAE,EAAE,IAAI,EAAC,IAAI,CAAC,YAAY,EAAC;SAChC,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAG,MAAM,CAAC,KAAK,IAAE,IAAI,EACrB;gBACA,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;oBAClE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,wBAAwB,EAAE,GAAG,EAAE;wBACjD,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACH,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;oBACX,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;wBACpC,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,aAAa,CAAC;wBAC3B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBAC1B,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;aACJ;QACD,CAAC,CAAC,CAAC;IACP,CAAC;IAED,WAAW,CAAC,QAAQ;QAClB,IAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,EAAC;YAC3B,OAAO,IAAI,CAAC;SACb;aACG;YACF,OAAO,KAAK,CAAC;SACd;IAEH,CAAC;IAED,WAAW,CAAC,OAAO;QACjB,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,EAAC,EAAE;YACzD,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,IAAG,GAAG,EAAC;gBACL,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,4BAA4B,EAAE,GAAG,EAAE;oBACrD,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAC,CAAC,eAAe,CAAC;oBAC5B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;iBACG;gBACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,2BAA2B,EAAE,GAAG,EAAE;oBACpD,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;QACH,CAAC,EAAC,CAAC,KAAK,EAAC,EAAE;YACT,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;gBAClE,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CAAC;IAEJ,CAAC;IAED,cAAc,CAAC,KAAK;QACnB,IAAG,KAAK,EAAC;YACR,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;SAC/B;IACF,CAAC;IAED,cAAc;QACZ,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC;QACjD,IAAI,MAAM,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QACjC,IAAG,MAAM,EAAC;YACR,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC;gBAChC,IAAG,MAAM,CAAC,CAAC,CAAC,IAAE,GAAG;oBACjB,MAAM,CAAC,CAAC,CAAC,IAAE,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,IAAG,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,IAAE,MAAM;oBAC3D,MAAM,CAAC,CAAC,CAAC,IAAE,OAAO,EAAC;oBACjB,OAAO,KAAK,CAAC;iBACd;aACF;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gCAAgC;IAChC,sDAAsD;IACtD,yDAAyD;IACzD,2DAA2D;IAC3D,8BAA8B;IAC9B,+EAA+E;IAC/E,wBAAwB;IACxB,qCAAqC;IACrC,iCAAiC;IACjC,WAAW;IACX,aAAa;IACb,OAAO;IACP,IAAI;IAEJ,gBAAgB,CAAC,OAAO;QACtB,qCAAqC;QACrC,MAAM,UAAU,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,MAAM,GAAG,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QAEpC,IAAG,MAAM,IAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAC,EAAE,EAAC;YAEjC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;SAElC;QAED,OAAO,IAAI,CAAC,CAAC,WAAW;IAC1B,CAAC;IAED,WAAW,CAAC,OAAO;QACjB,MAAM,UAAU,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAE7C,IAAG,UAAU,IAAI,GAAG,IAAI,UAAU,IAAI,MAAM,EAAC;YAE3C,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;SAEnC;QAED,OAAO,IAAI,CAAC,CAAC,WAAW;IAC1B,CAAC;;gGA/kBU,wBAAwB;wGAAxB,wBAAwB;kEAsCxB,iEAAkB;;;wEA4BlB,8DAAO;;;;;;;qFA5EP,CAAC,8EAAmB,CAAC;QCjClC,sEACI;QAAA;QAAA,2EACI;QAAA;QAAA,0EACI;QAAA;QAAA,yEACI;QAAA;QAAA,yEACI;QAAA;QAAA,2EACI;QAAA;QAAA,iEACA;QAAA;QAAA,mFACoD;QADtC,+JAAU,4BAAwB,IAAC;QACG,wEAAW;QAAA,4DAAe;QAC9E;QAAA,iEACA;QAAA;QAAA,iEACJ;QAAA;QAAA,4DAAU;QACd;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,wEAAuB;QAAA,iHAAqD;QAAA,4DAAI;QACpF;QAAA,4DAAM;QACV;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,iEAAK;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QAAA,4DAAY;QAC9D;QAAA,iFAGA;QAFI,gJAAS,uDAA+C,IAAC;QAD7D,4DAGA;QAAA;QAAA,6HAEI;QAEJ;QAAA,4FAEI;QADA,mLAAkB,uCAAmC,IAAC;QACtD;QAAA,qIAEI;;QAER;QAAA,4DAAmB;QACnB;QAAA,mIAAiE;QACjE;QAAA,mIAAqE;QAGzE;QAAA,4DAAiB;QACjB;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,uEAAW;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QAAA,4DAAY;QACpE;QAAA,wEACJ;QAAA;QAAA,4DAAiB;QACjB;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,qEAAS;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QAAA,4DAAY;QAClE;QAAA,6EAEA;QAF0D,4JAAY,0BAAsB,IAAC;QAA7F,4DAEA;QAAA;QAAA,mIAAkF;QAElF;QAAA,mIAAiF;QAErF;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,mEAAO;QAAA,4DAAY;QAC9B;QAAA,wEACJ;QAAA;QAAA,4DAAiB;QACjB;QAEA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,6EAAiB;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QAAA,4DAAY;QAC1E;QAAA,mFACI;QAAA;QAAA,uIACI;QACR;QAAA,4DAAa;QACb;QAAA,qIACqF;QAEzF;QAAA,4DAAiB;QAErB;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,sFACI;QAAA;QAAA,8EAAW;QAAA,4EAAe;QAAA,4EAA0B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QACxE;QAAA,yEACJ;QAAA;QAAA,4DAAiB;QACjB;QAAA,sFACI;QAAA;QAAA,8EAAW;QAAA,uEAAU;QAAA,4EAA0B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QACnE;QAAA,yEACA;QAAA;QAAA,qIAAmF;QAEnF;QAAA,qIAAoF;QAGpF;QAAA,qIACI;QAEJ;QAAA,qIACI;QAER;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACV;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,4EACI;QAAA;QAAA,+EACI;QADuB,kJAAS,YAAQ,IAAC;QACzC;QAAA,6EAAU;QAAA,kEAAK;QAAA,4DAAW;QAAA,wFAC9B;QAAA,4DAAS;QACT;QAAA,+EAA2D;QAAnB,kJAAS,YAAQ,IAAC;QAAC,yDAAY;QAAA,4DAAS;QACpF;QAAA,4DAAM;QACV;QAAA,4DAAM;QACV;QAAA,4DAAO;QACX;QAAA,4DAAW;QAEX;QAAA,4EACI;QAAA;QAAA,+HAAsF;QAEtF;QAAA,+HAAuF;QAEvF;QAAA,uFACI;QAAA;QAAA,8EAAW;QAAA,mEAAM;QAAA,4DAAY;QAC7B;QAAA,kFACJ;QADoB,uJAAS,uBAAmB,IAAC;QAA7C,4DACJ;QAAA;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,sFACI;QAAA;QAAA,gFACI;QAAA;QAAA,iFACI;QAAA;QAAA,wFACI;QAAA;QAAA,4EACI;QAAA;QAAA,8EACI;QAAA;QAAA,8EACI;QAAA;QAAA,uHAAgF;QAEhF;QAAA,uHAAwC;QAC5C;QAAA,qEAAe;QACf;QAAA,8EACI;QAAA;QAAA,uHAAgF;QAEhF;QAAA,uHAAwC;QAC5C;QAAA,qEAAe;QACf;QAAA,8EACI;QAAA;QAAA,uHACI;QACJ;QAAA,uHAAwC;QAC5C;QAAA,qEAAe;QACf;QAAA,8EACI;QAAA;QAAA,uHACI;QACJ;QAAA,uHAAwC;QAC5C;QAAA,qEAAe;QACf;QAAA,8EACI;QAAA;QAAA,uHAAgF;QAEhF;QAAA,uHAAwC;QAC5C;QAAA,qEAAe;QACf;QAAA,8EACI;QAAA;QAAA,uHAAgF;QAEhF;QAAA,uHAAwC;QAC5C;QAAA,qEAAe;QACf;QAAA,8EACI;QAAA;QAAA,uHAAuC;QACvC;QAAA,uHACI;QAcR;QAAA,qEAAe;QACf;QAAA,8EACI;QAAA;QAAA,wHACI;QA0DR;QAAA,qEAAe;QACf;QAAA,uHAAuD;QACvD;QAAA,uHAGA;QACA;QAAA,uHACA;QACJ;QAAA,4DAAQ;QACZ;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,qFACqD;QACzD;QAAA,4DAAM;QACV;QAAA,4DAAmB;QACvB;QAAA,4DAAW;QACf;QAAA,4DAAU;QACV;QAAA,gFACI;QAAA;QAAA,iFACI;QAAA;QAAA,wFACI;QAAA;QAAA,4EACI;QAAA;QAAA,8EACI;QAAA;QAAA,8EACI;QAAA;QAAA,uHAAgF;QAEhF;QAAA,uHAAwC;QAC5C;QAAA,qEAAe;QACf;QAAA,8EACI;QAAA;QAAA,uHAAgF;QAEhF;QAAA,uHAAwC;QAC5C;QAAA,qEAAe;QACf;QAAA,8EACI;QAAA;QAAA,uHACI;QACJ;QAAA,uHAAwC;QAC5C;QAAA,qEAAe;QACf;QAAA,8EACI;QAAA;QAAA,uHACI;QACJ;QAAA,uHAAwC;QAC5C;QAAA,qEAAe;QACf;QAAA,8EACI;QAAA;QAAA,uHAAgF;QAEhF;QAAA,uHAAwC;QAC5C;QAAA,qEAAe;QACf;QAAA,8EACI;QAAA;QAAA,uHAAgF;QAEhF;QAAA,uHAAwC;QAC5C;QAAA,qEAAe;QACf;QAAA,8EACI;QAAA;QAAA,uHAAuC;QACvC;QAAA,uHACI;QAcR;QAAA,qEAAe;QACf;QAAA,8EACI;QAAA;QAAA,wHACI;QA0DR;QAAA,qEAAe;QACf;QAAA,uHAAuD;QACvD;QAAA,uHAGA;QACA;QAAA,uHACA;QACJ;QAAA,4DAAQ;QACZ;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,qFACqD;QACzD;QAAA,4DAAM;QACV;QAAA,4DAAmB;QACvB;QAAA,4DAAW;QACf;QAAA,4DAAU;QACd;QAAA,4DAAgB;QAEpB;QAAA,4DAAM;;;QAzXQ,0DAAsB;QAAtB,mFAAsB;QAMR,2DAA8C;QAA9C,2GAA8C;QAWtC,2DAA+B;QAA/B,uGAA+B;QAEd,0DAAyB;QAAzB,sFAAyB;QAGvB,0DAA8B;QAA9B,4FAA8B;QAIlB,0DAAyB;QAAzB,sFAAyB;QAG5D,0DAAiD;QAAjD,8JAAiD;QAI9C,0DAAqD;QAArD,kHAAqD;QACrD,0DAAyD;QAAzD,sHAAyD;QAIxD,0DAA+B;QAA/B,uGAA+B;QAI/B,2DAA+B;QAA/B,uGAA+B;QAIhC,0DAAsE;QAAtE,wIAAsE;QAEtE,0DAAqE;QAArE,uIAAqE;QAKpE,0DAA+B;QAA/B,uGAA+B;QAM/B,0DAA+B;QAA/B,uGAA+B;QAG3B,0DAAmC;QAAnC,0FAAmC;QAI/C,0DAAgF;QAAhF,kJAAgF;QAMxE,0DAA+B;QAA/B,uGAA+B;QAI/B,2DAA+B;QAA/B,uGAA+B;QAGhC,0DAAuE;QAAvE,yIAAuE;QAEvE,0DAAwE;QAAxE,0IAAwE;QAGxE,0DAA+E;QAA/E,iJAA+E;QAG/E,0DAAgF;QAAhF,kJAAgF;QAWpC,2DAAY;QAAZ,6EAAY;QAO3E,0DAAe;QAAf,+EAAe;QAEf,0DAAgB;QAAhB,gFAAgB;QAEc,0DAA+B;QAA/B,uGAA+B;QAUpC,2DAAgC;QAAhC,6FAAgC;QA8G1B,2DAAmC;QAAnC,iGAAmC;QAC1C,0DAAoD;QAApD,kGAAoD;QAIpD,0DAAiD;QAAjD,oJAAiD;QAM7D,0DAAgC;QAAhC,mJAAgC;QASnB,2DAAkC;QAAlC,+FAAkC;QA8G5B,2DAAmC;QAAnC,iGAAmC;QAC1C,0DAAoD;QAApD,kGAAoD;QAIpD,0DAAiD;QAAjD,oJAAiD;QAM7D,0DAAgC;QAAhC,mJAAgC;2vMDlV9C;YACV,oEAAO,CAAC,cAAc,EAAE;gBACtB,kEAAK,CAAC,WAAW,EAAE,kEAAK,CAAC,EAAC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAC,CAAC,CAAC;gBAC1D,kEAAK,CAAC,UAAU,EAAE,kEAAK,CAAC,EAAC,MAAM,EAAE,GAAG,EAAC,CAAC,CAAC;gBACvC,uEAAU,CAAC,wBAAwB,EAAE,oEAAO,CAAC,sCAAsC,CAAC,CAAC;aACtF,CAAC;SACH;6FAGU,wBAAwB;cAdpC,uDAAS;eAAC;gBACT,QAAQ,EAAE,sBAAsB;gBAChC,WAAW,EAAE,mCAAmC;gBAChD,SAAS,EAAE,CAAC,mCAAmC,CAAC;gBAChD,SAAS,EAAE,CAAC,8EAAmB,CAAC;gBAChC,UAAU,EAAE;oBACV,oEAAO,CAAC,cAAc,EAAE;wBACtB,kEAAK,CAAC,WAAW,EAAE,kEAAK,CAAC,EAAC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAC,CAAC,CAAC;wBAC1D,kEAAK,CAAC,UAAU,EAAE,kEAAK,CAAC,EAAC,MAAM,EAAE,GAAG,EAAC,CAAC,CAAC;wBACvC,uEAAU,CAAC,wBAAwB,EAAE,oEAAO,CAAC,sCAAsC,CAAC,CAAC;qBACtF,CAAC;iBACH;aACF;0rBAwCgC,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;YA0BoB,gBAAgB;kBAAhE,uDAAS;mBAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACI,kBAAkB;kBAApE,uDAAS;mBAAC,oBAAoB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACX,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AE7GtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AAEA;AACZ;AAGa;AAE7B;AACqC;AAIE;;;;;;;;;;;;;;;ICHpD,yEACI;IAAA,mHACJ;IAAA,4DAAK;;;IACL,yEACI;IAAA,uDACJ;IAAA,4DAAK;;;IADD,0DACJ;IADI,6IACJ;;;IAGA,yEACI;IAAA,mHACJ;IAAA,4DAAK;;;IACL,yEACI;IAAA,uDACJ;IAAA,4DAAK;;;IADD,0DACJ;IADI,6IACJ;;;IAGA,yEACI;IAAA,wHACJ;IAAA,4DAAK;;;IACL,yEACI;IAAA,uDACJ;IAAA,4DAAK;;;IADD,0DACJ;IADI,8IACJ;;;IAGA,yEACI;IAAA,0HACJ;IAAA,4DAAK;;;IACL,yEACI;IAAA,uDACJ;IAAA,4DAAK;;;IADD,0DACJ;IADI,0JACJ;;;IAGA,yEACI;IAAA,qHACJ;IAAA,4DAAK;;;IACL,yEACI;IAAA,uDACJ;IAAA,4DAAK;;;IADD,0DACJ;IADI,+IACJ;;;IAGA,yEACI;IAAA,+GACJ;IAAA,4DAAK;;;IAFD,6HAAoD;;;;IAGxD,yEACI;IAAA;IAAA,+EAA0E;IAAxC,+XAAuC;IAAC,+DAAI;IAAA,4DAAW;IAC7F;IAAA,4DAAK;;;IAFD,6HAAoD;;;IAI5D,oEAA4D;;;IAC5D,oEAAiE;;;IACjE,yEACI;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IACjD;IAAA,4DAAK;;AD1Cd,MAAM,6BAA6B;IA0BxC,YAAoB,qBAAmD,EAAS,OAAe,EAAS,SAAsB,EAAS,UAAsB,EAAY,OAA0B,EAC1L,MAAiB;QADN,0BAAqB,GAArB,qBAAqB,CAA8B;QAAS,YAAO,GAAP,OAAO,CAAQ;QAAS,cAAS,GAAT,SAAS,CAAa;QAAS,eAAU,GAAV,UAAU,CAAY;QAAY,YAAO,GAAP,OAAO,CAAmB;QAC1L,WAAM,GAAN,MAAM,CAAW;QAzBlB,YAAO,GAAW,MAAM,CAAC;QAGzB,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QACtD,qBAAgB,GAAa;YAC3B,SAAS;YACT,SAAS;YACT,UAAU;YACV,sBAAsB;YACtB,WAAW;YACX,MAAM;SACP,CAAC;QACF,eAAU,GAAkC,IAAI,0EAAkB,EAAE,CAAC;QAGrE,aAAQ,GAAG,EAAE,CAAC;QACd,gBAAW,GAAG,CAAC,CAAC;QAChB,oBAAe,GAAa,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QAC7C,iBAAY,GAAQ,EAAE,CAAC;QAQrB,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,EAAE;YAC9D,IAAG,YAAY,EAAE;gBACf,IAAI,CAAC,YAAY,GAAI,YAAY,CAAC,MAA2B,CAAC,KAAK,CAAC;aACrE;iBACG;gBACF,IAAI,CAAC,YAAY,GAAG,EAAE;aACvB;YACD,IAAG,IAAI,CAAC,YAAY,IAAI,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,EAAC;gBAC1D,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;gBACrB,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACxB,IAAI,CAAC,2BAA2B,EAAE,CAAC;aACpC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,QAAQ;QACN,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACvF,IAAI,CAAC,2BAA2B,EAAE,CAAC;IACrC,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YACpF,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,2BAA2B;QAC3B,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YACxH,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;YAC7B,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAM,EAAE,EAAE;gBACtC,IAAI,CAAC,CAAC,QAAQ,IAAI,IAAI;oBACpB,CAAC,CAAC,QAAQ,GAAG,mCAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;;oBAClD,CAAC,CAAC,QAAQ,GAAG,EAAE,CAAC;YACvB,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC;YAC9C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACjC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,UAAU,CAAC,mBAAmB,GAAG,CAAC,IAAS,EAAE,YAAoB,EAAU,EAAE;gBAChF,IAAI,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,QAAQ,EAAE;oBAC1C,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,iBAAiB,EAAE,CAAC;iBAC/C;gBAED,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC;YAC5B,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACH,CAAC;IAGC,oBAAoB,CAAC,YAAiB;QACpC,IAAI,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;QACnC,YAAY,CAAC,aAAa,GAAG,YAAY,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QACtE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,qCAAqC,GAAG,YAAY,CAAC,aAAa,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACrI,CAAC;IAED,QAAQ,CAAC,gBAA0B;QACjC,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mFAAkB,EAAE;YACnD,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;YAC7B,YAAY,EAAE,IAAI;YAClB,IAAI,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE;SACpC,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;QAE3C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,4BAA4B;QAC1B,IAAI,CAAC,qBAAqB,CAAC,kCAAkC,EAAE,CAAC,SAAS,CAAC,CAAC,IAAQ,EAAE,EAAE;YACrF,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,IAAI,CAAC,OAAO,EACZ,GAAG,EACH;gBACE,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CACF,CAAC;YACF,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACrC,CAAC,EAAC,CAAC,KAAK,EAAC,EAAE;YACT,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,qCAAqC,EACrC,GAAG,EACH;gBACE,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IAEL,CAAC;IACD,WAAW,CAAC,KAAgB;QAC1B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,2BAA2B,EAAE,CAAC;IACrC,CAAC;;0GA9HQ,6BAA6B;6GAA7B,6BAA6B;kEAsB7B,wEAAY;wEACZ,8DAAO;;;;;;QC1CpB,2EACI;QAAA;QAAA,mFACI;QAAA;QAAA,sEACI;QAAA;QAAA,4EACI;QAD0D,qJAAS,kCAA8B,IAAC;QAClG,+FACJ;QAAA,4DAAS;QACb;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,4EACI;QAAA;QAAA,4EACI;QAAA;QAAA,yHACI;QAEJ;QAAA,yHACI;QAER;QAAA,qEAAe;QACf;QAAA,4EACI;QAAA;QAAA,yHACI;QAEJ;QAAA,yHACI;QAER;QAAA,qEAAe;QACf;QAAA,4EACI;QAAA;QAAA,yHACI;QAEJ;QAAA,yHACI;QAER;QAAA,qEAAe;QACf;QAAA,4EACI;QAAA;QAAA,yHACI;QAEJ;QAAA,yHACI;QAER;QAAA,qEAAe;QACf;QAAA,4EACI;QAAA;QAAA,yHACI;QAEJ;QAAA,yHACI;QAER;QAAA,qEAAe;QACf;QAAA,6EACI;QAAA;QAAA,0HACI;QAEJ;QAAA,0HACI;QAER;QAAA,qEAAe;QACf;QAAA,0HAAuD;QACvD;QAAA,0HAA4D;QAC5D;QAAA,0HACI;QAER;QAAA,4DAAQ;QACZ;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,yFAEA;QADwC,iKAAQ,uBAAmB,IAAC;QACpE;QAAA,4DAAgB;QACpB;QAAA,4DAAM;QACV;QAAA,4DAAmB;QACvB;QAAA,4DAAW;QACX;QAAA,mFAMI;QAAA;QAAA,yEAAmB;QAAA,uEAAW;QAAA,4DAAI;QACtC;QAAA,4DAAc;QACd;;QAvE6B,2DAAyB;QAAzB,sFAAyB;QAiDnB,2DAAmC;QAAnC,iGAAmC;QAC1C,0DAA+C;QAA/C,kGAA+C;QAOrC,0DAAqB;QAArB,kFAAqB;QAS1D,0DAAoB;QAApB,6EAAoB;;6FDvDR,6BAA6B;cALzC,uDAAS;eAAC;gBACT,QAAQ,EAAE,0BAA0B;gBACpC,WAAW,EAAE,uCAAuC;gBACpD,SAAS,EAAE,CAAC,uCAAuC,CAAC;aACrD;2hBAuB0B,SAAS;kBAAjC,uDAAS;mBAAC,wEAAY;YACe,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AE1CtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAqE;AACX;AACR;AACY;AACA;AAC9D,+CAA+C;AACuB;AAEd;AACxD,oDAAoD;AACqD;AAEsB;;;;;;;;;;;;;;;;;;;;;ICwB/D,yEAAgF;IAAA,iEAAK;IAAA,4DAAK;;;IAC1F,yEAAwD;IAAA,uDAAQ;IAAA,4DAAK;;;IAAb,0DAAQ;IAAR,qFAAQ;;;IAGhE,yEAAgF;IAAA,0EAAc;IAAA,4DAAK;;;IACnG,yEAAwC;IAAA,uDAAqB;IAAA,4DAAK;;;IAA1B,0DAAqB;IAArB,gGAAqB;;;IAG7D,yEAAgE;IAAA,mEAAO;IAAA,4DAAK;;;;IAC5E,yEACQ;IAAA;IAAA,+EAA8D;IAApD,8WAA2B;IAAyB,iEAAM;IAAA,4DAAW;IACvF;IAAA,4DAAK;;;IAEb,oEAA4D;;;IAC5D,oEAAkE;;;IAClE,yEACQ;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAC7D;IAFQ,4DACQ;;AD/BzD,MAAM,wBAAwB;IA6BjC,YACgC,KAAiB,EAAS,MAAiB,EACxC,QAAuB,EAC9B,OAAe,EAC/B,QAAwB,EAAa,SAAsB,EAC3D,OAA0B;QAJN,UAAK,GAAL,KAAK,CAAY;QAAS,WAAM,GAAN,MAAM,CAAW;QACxC,aAAQ,GAAR,QAAQ,CAAe;QAC9B,YAAO,GAAP,OAAO,CAAQ;QAC/B,aAAQ,GAAR,QAAQ,CAAgB;QAAa,cAAS,GAAT,SAAS,CAAa;QAC3D,YAAO,GAAP,OAAO,CAAmB;QA3BtC,eAAU,GAAU,EAAE,CAAC;QACvB,2BAA2B;QACnB,eAAU,GAAG,uDAAe,CAAC,MAAM,CAAC;QAC5C,8BAA8B;QACtB,eAAU,GAAG,qEAAW,CAAC,oBAAoB,CAAC;QAStD,iBAAY,GAAW,EAAE,CAAC;QAC1B,iBAAY,GAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QACjC,qBAAgB,GAAa;YAC3B,KAAK;YACL,cAAc;YACd,QAAQ;SACT,CAAC;IAWF,CAAC;IAED,iBAAiB;QACb,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YACxD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YACnB,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;QAC1B,CAAC,EAAC,CAAC,KAAK,EAAC,EAAE;YACP,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;QACvB,CAAC,CAAC,CAAC;IACP,CAAC;IACD,oBAAoB,CAAC,OAAe;QAChC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3D,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;QACnB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,eAAe;QACf,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,IAAI,wDAAS,CAC1B;YACI,gBAAgB,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACvC,YAAY,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;SACtC,CACJ,CAAC;IACN,CAAC;IAED,MAAM;QACF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QAC9C,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAChC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;gBACzD,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;oBAChE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,mBAAmB,EAAE,GAAG,EAAE;wBAC5E,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAC,CAAC,aAAa,CAAC;wBAC1B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBAEP,6IAA6I;oBAC3I,+EAA+E;oBAC/E,OAAO,KAAK,CAAC;iBAChB;aACJ;YACD,IAAI,QAAQ,GAAa,IAAI,QAAQ,EAAE,EACnC,GAAG,GAAmB,IAAI,cAAc,EAAE,CAAC;YAC/C,GAAG,CAAC,kBAAkB,GAAG;gBACrB,IAAI,GAAG,CAAC,UAAU,IAAI,CAAC,EAAE;oBACrB,IAAI,GAAG,CAAC,YAAY,KAAK,MAAM,EAAE;wBAC7B,2CAA2C;wBAC3C,yHAAyH;wBACzH,yDAAyD;wBACzD,OAAO,IAAI,CAAC;qBACf;yBACI;wBACD,0DAA0D;wBAC1D,yHAAyH;wBACzH,sEAAsE;wBACtE,OAAO,IAAI,CAAC;qBACf;iBACJ;YACL,CAAC;YACD,QAAQ,CAAC,MAAM,CAAC,eAAe,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACzD,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACzD,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;YAClD,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAChE,mEAAmE;YACnE,IAAI,cAAc,CAAC,OAAO,CAAC,EAAE;gBACzB,GAAG,CAAC,gBAAgB,CAAC,eAAe,EAAE,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;aAC9E;YACD,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEnB,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE,CAAC;YAChD,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE,CAAC;YAC/C,OAAO,KAAK,CAAC;SAChB;aACI;YACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,8BAA8B,EAAE,GAAG,EAAE;gBACvD,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACH,oHAAoH;YAClH,uDAAuD;YACvD,OAAO,KAAK,CAAC;SAChB;IAEL,CAAC;IACD,kBAAkB;QACd,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACtE,QAAQ,EAAE,IAAI;YACd,UAAU,EAAC,CAAC,aAAa,CAAC;YAC1B,kBAAkB,EAAE,OAAO;YAC3B,gBAAgB,EAAE,KAAK;SACxB,CAAC,CAAC;QACP,4HAA4H;IAC9H,CAAC;IACF;;;;;;;;;;;QAWI;IAEH,UAAU,CAAC,OAAO,EAAC,OAAO,EAAC,EAAE,EAAE,uBAAuB;QAClD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8GAAqB,EAAE;YACxD,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,EAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAC;YAC1C,YAAY,EAAE,IAAI;SACnB,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACxC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;YAC7B,IAAG,IAAI,CAAC,cAAc,IAAE,IAAI,EAAC;gBAC5B,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,uBAAuB,CAAC,CAAC;gBACzC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4IAAsB,EAAE;oBACxD,KAAK,EAAE,OAAO;oBACd,YAAY,EAAE,IAAI;oBAClB,IAAI,EAAE,EAAC,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,wCAAwC,EAAC;iBACnF,CAAC;aACL;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEH,MAAM,CAAC,EAAU,EAAE,qBAA6B;QAC5C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,qBAAqB,CAAC,CAAC,SAAS,CAAC,CAAC,KAAU,EAAE,EAAE;YACrE,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC7B,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;YACT,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,+CAA+C,EAAE,GAAG,EAAE;gBACtE,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAC,CAAC,aAAa,CAAC;gBAC1B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACP,2IAA2I;QAC7I,CAAC,CAAC,CAAC;QACH,0CAA0C;IAC9C,CAAC;IAGD,QAAQ,CAAC,YAAiB;QACtB,IAAI,CAAC,qBAAqB,GAAG,YAAY,CAAC;QAC1C,IAAI,CAAC,UAAU,CAAC,cAAc,EAAC,yBAAyB,EAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;IACrG,CAAC;IAGD,QAAQ;QACJ,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IAC5C,CAAC;IACD,WAAW;QAEP,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAChD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACzB,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;YACT,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,+CAA+C,EAAE,GAAG,EAAE;gBACtE,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAC,CAAC,aAAa,CAAC;gBAC1B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACP,0IAA0I;QAC5I,CAAC,CAAC,CAAC;IACP,CAAC;IAED,sBAAsB;IACtB,gFAAgF;IAChF,6BAA6B;IAE7B,8BAA8B;IAC9B,8BAA8B;IAC9B,uIAAuI;IACvI,6EAA6E;IAC7E,sBAAsB;IACtB,+IAA+I;IAC/I,qFAAqF;IACrF,UAAU;IACV,IAAI;IACJ,eAAe;QACX,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;QACnB,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;YACvD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,sCAAsC,EAAE,GAAG,EAAE;gBAC7D,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACL,mIAAmI;QACvI,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;YACT,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,+CAA+C,EAAE,GAAG,EAAE;gBACtE,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAC,CAAC,aAAa,CAAC;gBAC1B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACP,2IAA2I;YACzI,0EAA0E;QAC9E,CAAC,CAAC,CAAC;IAEP,CAAC;;gGAtPQ,wBAAwB,kEA8BrB,+DAAU,wMACV,sEAAa,mEACb,sDAAM;wGAhCT,wBAAwB;;;;;;;;;;;;;;;QClBb;QAAA,yEACQ;QAAA;QAAA,yEACQ;QAAA;QAAA,wEAA2B;QAAA,2EAAgB;QAAA,4DAAK;QACxD;QAAA,4DAAM;QACd;QAAA,4DAAM;QACN;QAAA,2EACQ;QAAA;QAAA,0EACQ;QAAA;QAAA,iEACA;QAAA;QAAA,+EAER;QADgB,gSAAU,mCAAsC,IAAC;QADzD,4DAER;QAAA;QAAA,4DAAM;QACN;QAAA,0EACQ;QAAA;QAAA,iEACA;QAAA;QAAA,0EACQ;QAAA;QAAA,0EACQ;QAAA;QAAA,0EAER;QAAA;QAAA,4DAAM;QACN;QAAA,2EACQ;QAAA;QAAA,8EACQ;QADgC,iJAAS,YAAQ,IAAC;QAClD;QAAA,4EAAU;QAAA,mEAAO;QAAA,4DAAW;QAAC,6HACrC;QAAA,4DAAS;QACjB;QAAA,4DAAM;QACd;QAAA,4DAAM;QAEd;QAAA,4DAAM;QACd;QAAA,4DAAO;QAEP;QAAA,4EACQ;QAAA;QAAA,oFACQ;QAAA;QAAA,2EACQ;QAAA;QAAA,6EACQ;QAAA;QAAA,6EACQ;QAAA;QAAA,qHAAgF;QAChF;QAAA,qHAAwD;QAChE;QAAA,qEAAe;QACf;QAAA,6EACQ;QAAA;QAAA,qHAAgF;QAChF;QAAA,qHAAwC;QAChD;QAAA,qEAAe;QACf;QAAA,6EACQ;QAAA;QAAA,qHAAgE;QAChE;QAAA,qHACQ;QAEhB;QAAA,qEAAe;QACf;QAAA,qHAAuD;QACvD;QAAA,qHAA6D;QAC7D;QAAA,qHACQ;QAChB,4DAAQ;QAEhB;QAAA,4DAAM;QAKN;QAAA,0EACQ;QAAA;QAAA,2EACQ;QAAA;QAAA,+EACQ;QAAA;QAAA,iEACA;QAAA;QAAA,8EAA6G;QAA5B,iJAAS,qBAAiB,IAAC;QAAC,kEAAM;QAAA,4DAAS;QAEpI;QAAA,4DAAU;QAClB;QAAA,4DAAM;QACd;QAAA,4DAAM;QACd;QAAA,4DAAmB;QAE3B;QAAA,4DAAW;QACX;QAAA,mFAEQ;QAAA;QAAA,yEAAmB;QAAA,wEAAW;QAAA,4DAAI;QAC1C;QAAA,4DAAc;;QAnER,2DAAuB;QAAvB,oFAAuB;QAGyF,0DAA2B;QAA3B,wFAA2B;QAOE,2DAAsB;QAAtB,mFAAsB;QAgBhI,2DAAyB;QAAzB,sFAAyB;QAef,2DAAmC;QAAnC,iGAAmC;QAC1C,0DAAgD;QAAhD,kGAAgD;QAcE,2DAA0B;QAA1B,uFAA0B;QAQ9D,0DAAmB;QAAnB,4EAAmB;;6FDnDxF,wBAAwB;cALpC,uDAAS;eAAC;gBACT,QAAQ,EAAE,qBAAqB;gBAC/B,WAAW,EAAE,kCAAkC;gBAC/C,SAAS,EAAE,CAAC,kCAAkC,CAAC;aAChD;;sBA+BQ,oDAAM;uBAAC,+DAAU;;sBACjB,oDAAM;uBAAC,sEAAa;;sBACpB,oDAAM;uBAAC,sDAAM;gQAnBW,cAAc;kBAA1C,uDAAS;mBAAC,gBAAgB;YACF,UAAU;kBAAlC,uDAAS;mBAAC,YAAY;YACI,YAAY;kBAAtC,uDAAS;mBAAC,cAAc;YACD,iBAAiB;kBAAxC,uDAAS;mBAAC,WAAW;YACC,gBAAgB;kBAAtC,uDAAS;mBAAC,UAAU;;;;;;;;;;;;;;AEtCzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAkD;AACO;AAEE;AAE9B;AACgC;;;;;;;;;;;;ICEzC,gFACmB;IAAA,uDACnB;IAAA,4DAAa;;;IADT,0EAAc;IAAC,0DACnB;IADmB,uGACnB;;;IAUA,gFACyB;IAAA,uDACzB;IAAA,4DAAa;;;IADT,gFAAoB;IAAC,0DACzB;IADyB,6GACzB;;ADNb,MAAM,+BAA+B;IAE1C,YAAoB,gCAAkE,EAAS,OAA+B,EAAS,QAAkB;QAArI,qCAAgC,GAAhC,gCAAgC,CAAkC;QAAS,YAAO,GAAP,OAAO,CAAwB;QAAS,aAAQ,GAAR,QAAQ,CAAU;QAC3J,cAAS,GAAC,EAAE,CAAC;QAEb,cAAS,GAAqB,EAAE,CAAC;QAIjC,UAAK,GAAC,IAAI,IAAI,EAAE,CAAC;QAEjB,gBAAW,GAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,kBAAa,GAAC,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,GAAC,CAAC,CAAC;QACtC,iBAAY,GAAC,IAAI,CAAC,WAAW,CAAC;IAXiI,CAAC;IAYhK,SAAS;QAEL,YAAY;QACZ,IAAI,CAAC,OAAO,GAAC,wEAAW,CAAC,mBAAmB,CAAC;QAE7C,KAAI,IAAI,IAAI,GAAC,IAAI,CAAC,OAAO,EAAC,IAAI,IAAE,IAAI,CAAC,WAAW,EAAC,IAAI,EAAE,EACvD;YACE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC3B;QACD,YAAY;QACX,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,IAAI,OAAO,GAAE,IAAI,IAAI,EAAE,CAAC;QACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,WAAW,CAAC;QAEnD,KAAI,IAAI,IAAI,GAAC,IAAI,CAAC,KAAK,EAAC,IAAI,GAAG,OAAO,EAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,EACzE;YACG,IAAI,KAAK,GAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAChD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAC,KAAK,EAAC,KAAK,EAAE,KAAK,EAAC,IAAI,CAAC,QAAQ,EAAE,GAAC,CAAC,EAAC,CAAC,CAAC;SAC7D;IACL,CAAC;IACC,QAAQ;QACR,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,UAAU,EAAE,CAAC;IAElB,CAAC;IACD,4BAA4B;IAC5B,UAAU;QAEZ,IAAI,CAAC,IAAI,GAAG,IAAI,0DAAW,CAAC,IAAI,CAAC,YAAY,EAAC,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,KAAK,GAAG,IAAI,0DAAW,CAAC,IAAI,CAAC,aAAa,EAAC,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IACrE,CAAC;IACD,QAAQ;QAGP,IAAI,CAAC,gCAAgC,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,GAAO,EAAC,EAAE;YAC7G,IAAI,CAAC,UAAU,GAAC,IAAI,0EAAkB,CAAC,GAAG,CAAC,CAAC;YAC5C,MAAM,SAAS,GAAG,0CAAU,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACjE,MAAM,QAAQ,GAAkB,0CAAU,CAAC,QAAQ,EAAE,CAAC;YACtD,0CAAU,CAAC,iBAAiB,CAAC,QAAQ,EAAE,SAAS,EAAE,uBAAuB,CAAC,CAAC;YAC3E,IAAI,KAAK,GAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAE,EAAC,CAAC,KAAK,IAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACvE,IAAI,QAAQ,GAAC,yBAAyB,GAAC,KAAK,GAAC,GAAG,GAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAE,OAAO,CAAC;YAC1E,8CAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACnC,0CAAU,CAAC,iBAAiB,CAAC,QAAQ,EAAE,SAAS,EAAE,uBAAuB,CAAC,CAAC;YAC3E,8CAAc,CAAC,QAAQ,EAAE,2BAA2B,CAAC,CAAC;QACvD,CAAC,CACA;IAEF,CAAC;;8GA7DU,+BAA+B;+GAA/B,+BAA+B;QChB5C,2EACI;QAAA;QAAA,yEACI;QAAA;QAAA,yEACI;QAAA;QAAA,iFACI;QAAA;QAAA,4EAAW;QAAA,qFACP;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QACtC;QAAA,4DAAY;QACZ;QAAA,iFACI;QAAA;QAAA,2IACmB;QAEvB;QAAA,4DAAa;QACjB;QAAA,4DAAiB;QACjB;QAAA,4DAAM;QACN;QAAA,0EACA;QAAA;QAAA,kFACI;QAAA;QAAA,6EAAW;QAAA,uFACP;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QACtC;QAAA,4DAAY;QACZ;QAAA,iFACI;QAAA;QAAA,2IACyB;QAE7B;QAAA,4DAAa;QAEjB;QAAA,4DAAiB;QACjB;QAAA,0EACI;QAAA;QAAA,6EAA2E;QAArB,wJAAS,cAAU,IAAC;QAAC,2EAAe;QAAA,4DAAS;QACtG;QAAA,4DAAM;QACP;QAAA,4DAAM;QACV;QAAA,4DAAM;QAEd;QAAA,4DAAW;;QAzBkB,2DAAoB;QAApB,iFAAoB;QACjB,0DAA8B;QAA9B,kFAA8B;QAWjC,2DAAqB;QAArB,kFAAqB;QAClB,0DAA8B;QAA9B,kFAA8B;;6FDJjD,+BAA+B;cAN3C,uDAAS;eAAC;gBACT,QAAQ,EAAE,8BAA8B;gBACxC,WAAW,EAAE,2CAA2C;gBACxD,SAAS,EAAE,CAAC,2CAA2C,CAAC;aAEvD;;;;;;;;;;;;;;AEfH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwF;AACf;AAGtB;;;;;;;;AAY5C,MAAM,kCAAkC;IAc/C,YACU,SAA2D,EACjC,IAAgC;QAD1D,cAAS,GAAT,SAAS,CAAkD;QACjC,SAAI,GAAJ,IAAI,CAA4B;QAbpE,oBAAe,GAAoB;YACjC,WAAW,EAAE,cAAc;YAC3B,MAAM,EAAE,EACH;SACN,CAAC;QAKK,cAAS,GAAG,IAAI,oDAAe,CAAC,EAAE,CAAC,CAAC;QAMvC,0BAA0B;QAC1B,kEAAkE;QAClE,kEAAkE;QAClE,6DAA6D;QAC7D,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YAAG,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;gBACxE,IAAG,KAAK,CAAC,KAAK,KAAK,SAAS,EAAC;oBAC3B,KAAK,CAAC,iBAAiB,CAAC,GAAG,QAAQ;iBACpC;qBACI,IAAG,KAAK,CAAC,KAAK,KAAK,SAAS,EAAC;oBAChC,KAAK,CAAC,iBAAiB,CAAC,GAAG,MAAM;iBAClC;qBACI,IAAG,KAAK,CAAC,KAAK,KAAI,SAAS,EAAC;oBAC/B,KAAK,CAAC,iBAAiB,CAAC,GAAG,OAAO;iBACnC;qBACI,IAAG,KAAK,CAAC,KAAK,IAAI,KAAK,EAAC;oBACzB,KAAK,CAAC,SAAS,CAAC,GAAG,MAAM;iBAC5B;qBAEI,IAAG,KAAK,CAAC,KAAK,IAAI,KAAK,EAAC;oBAC3B,KAAK,CAAC,iBAAiB,CAAC,GAAG,SAAS;oBACpC,KAAK,CAAC,WAAW,CAAC,GAAG,OAAO;iBAE7B;qBAGI;oBACH,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;oBACnC,iKAAiK;oBACjK,0CAA0C;oBAC1C,kCAAkC;oBAClC,uDAAuD;oBACvD,IAAI;oBACJ,IAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC,CAAC,EAAC;wBACpG,oCAAoC;wBACpC,IAAG,KAAK,CAAC,CAAC,CAAC,KAAI,qBAAqB,EAAC;4BACnC,KAAK,CAAC,iBAAiB,CAAC,GAAG,KAAK,CAAC;yBAClC;6BACG;4BACH,KAAK,CAAC,SAAS,CAAC,GAAE,MAAM;yBACxB;qBACF;iBACF;gBACD,OAAO,KAAK,CAAC;YACf,CAAC,CAAC;QAAA,CAAC,CAAC,CAAC;QACL,IAAI,CAAC,YAAY,GAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;QAC9C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAElC,IAAI,CAAC,eAAe,GAAG;YACrB,WAAW,EAAE,cAAc;YAC3B,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;YACjC,eAAe;YACf,MAAM,EAAG,IAAI,CAAC,SAAS;YACvB,UAAU,EAAE,OAAO;YACnB,gBAAgB,EAAE,OAAO;SASzB,CAAC;IACL,CAAC;IAED,QAAQ;IAER,CAAC;IAED,OAAO;QACJ,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;IACtC,CAAC;;oHA9FO,kCAAkC,0MAgBnC,wEAAe;kHAhBd,kCAAkC;;;;;;QCf/C;QAAA,yEACI;QAAA;QAAA,yEACG;QAAA;QAAA,oEAAI;QAAA,uDAAiB;QAAA,4DAAI;QAAC,uDAC7B;QAAA,4DAAM;QACN;QAAA,yEACE;QAAA;QAAA,6EACE;QADyB,2JAAS,aAAS,IAAC;QAC5C;QAAA,4EAAU;QAAA,iEAAK;QAAA,4DAAW;QAAA,4DAAS;QACvC;QAAA,4DAAM;QACR;QAAA,4DAAM;QAEJ;QAAA,sFACI;QAAA;QAAA,0EACI;QAAA;QAAA,0EACI;QAAA;QAAA,+EACiB;QACrB;QAAA,4DAAM;QACV;QAAA,4DAAM;QACV;QAAA,4DAAqB;QAEzB;;QAjBW,0DAAiB;QAAjB,4FAAiB;QAAK,0DAC7B;QAD6B,iIAC7B;QAUyD,2DAA2B;QAA3B,wFAA2B;;6FDE3E,kCAAkC;cAL9C,uDAAS;eAAC;gBACT,QAAQ,EAAE,iCAAiC;gBAC3C,WAAW,EAAE,8CAA8C;gBAC3D,SAAS,EAAE,CAAC,8CAA8C,CAAC;aAC5D;;sBAiBI,oDAAM;uBAAC,wEAAe;wBANJ,iBAAiB;kBAAvC,uDAAS;mBAAC,UAAU;;;;;;;;;;;;;;AE1BrB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAkD;;;;;AAO3C,MAAM,uCAAuC;IAElD,gBAAgB,CAAC;IAEjB,QAAQ;IAER,CAAC;;8HANU,uCAAuC;uHAAvC,uCAAuC;QCNpD;QAAA,wEAAqB;QAAA,kEACrB;QAAA,4DAAK;QAEL;QAAA,wFACI;QAAA;QAAA,8EAA8B;QAAA,wEAAa;QAAA,4DAAW;QAAA,iEAAM;QAAA,uEAAM;QAAA,wFAA4B;QAAA,4DAAO;QACzG;QAAA,4DAAqB;QAErB;QAAA,yFACI;QAAA;QAAA,6EAA2D;QAAA,iEAAK;QAAA,4DAAS;QAC3E;QAAA,4DAAqB;QACvB;;6FDJa,uCAAuC;cALnD,uDAAS;eAAC;gBACT,QAAQ,EAAE,uCAAuC;gBACjD,WAAW,EAAE,oDAAoD;gBACjE,SAAS,EAAE,CAAC,oDAAoD,CAAC;aAClE;;;;;;;;;;;;;;AEND;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AACO;AAET;AAGE;AAE5B;AAO2J;AAE9I;AACgB;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;ICFvC,4FAEI;IADA,qXAA4B,UAAU,KAAE;IACxC;IAAA,+EAAkC;IAAA,gEAAK;IAAA,4DAAW;IACtD;IAAA,4DAAwB;;;IAGxB,4EAAiE;IAAA,sGACjE;IAAA,4DAAY;;;;IAUZ,4FAEI;IADA,qXAA4B,QAAQ,KAAE;IACtC;IAAA,+EAAkC;IAAA,gEAAK;IAAA,4DAAW;IACtD;IAAA,4DAAwB;;;IAGxB,4EAA+D;IAAA,8EAAmB;IAAA,4DAAY;;;;IAgCjG,wEAEG;IADA,uUAAwB;IACxB;IAAA,qEAAiC;IACrC;IAAA,4DAAI;;;IAUI,yEAAkF;IAAA,6DAAE;IAAA,4DAAK;;;IACzF,yEAAkE;IAAA,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,oGAAyB;;;IAI3F,yEAAmF;IAAA,+DAAI;IAAA,4DAAK;;;IAC5F,yEAAkE;IAAA,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,oGAAyB;;;IAGzF,yEAAmF;IAAA,kEAAO;IAAA,4DAAK;;;IAC/F,yEAAmE;IAAA,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,mGAAwB;;;IAG3F,yEAAmF;IAAA,4EAAiB;IAAA,4DAAK;;;IACzG,yEAAkE;IAAA,uDAAiC;IAAA,4DAAK;;;IAAtC,0DAAiC;IAAjC,4GAAiC;;;IAGjG,yEAAqF;IAAA,4EAAiB;IAAA,4DAAK;;;IAC3G,yEAAoE;IAAA,uDACpE;IAAA,4DAAK;;;IAD+D,0DACpE;IADoE,oIACpE;;;IAGF,yEAAmF;IAAA,0EAAe;IAAA,+EAAqF;IAAA,+DAAI;IAAA,4DAAW;IAAA,4DAAK;;;IAC3M,yEAAoE;IAAA,uDACpE;IAAA,4DAAK;;;IAD+D,0DACpE;IADoE,+HACpE;;;IAGF,yEAAmF;IAAA,0EAAe;IAAA,+EAAmF;IAAA,+DAAI;IAAA,4DAAW;IAAA,4DAAK;;;IACzM,yEAAoE;IAAA,uDACpE;IAAA,4DAAK;;;IAD+D,0DACpE;IADoE,6HACpE;;;IAGF,yEAAmF;IAAA,8EAAmB;IAAA,+EAAiF;IAAA,+DAAI;IAAA,4DAAW;IAAA,4DAAK;;;IAC3M,yEAAoE;IAAA,uDACpE;IAAA,4DAAK;;;IAD+D,0DACpE;IADoE,0HACpE;;;IAGI,yEAAkF;IAAA,sEAAW;IAAA,4DAAK;;;;IAClG,yEAAoE;IAAA;IAAA,+EAAqG;IAA1C,sYAAwC;IAAE,sEAAU;IAAA,4DAAW;IAAC;IAAA,4DAAK;;;IAG1M,oEAA4D;;;IACxD,oEAAkE;;;IAClE,yEACI;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAChD;IAAA,4DAAK;;;ADxGvB,MAAM,kCAAkC;IA+C7C,YAAoB,gCAAkE,EAC5E,mBAAwC,EACzC,UAAsB,EACrB,OAA0B,EAC1B,SAAsB,EACtB,EAAe,EAChB,MAAiB,EAChB,iBAAoC,EACpC,MAAgB,EAChB,QAAwB;QATd,qCAAgC,GAAhC,gCAAgC,CAAkC;QAC5E,wBAAmB,GAAnB,mBAAmB,CAAqB;QACzC,eAAU,GAAV,UAAU,CAAY;QACrB,YAAO,GAAP,OAAO,CAAmB;QAC1B,cAAS,GAAT,SAAS,CAAa;QACtB,OAAE,GAAF,EAAE,CAAa;QAChB,WAAM,GAAN,MAAM,CAAW;QAChB,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,WAAM,GAAN,MAAM,CAAU;QAChB,aAAQ,GAAR,QAAQ,CAAgB;QArDlC,oBAAe,GAAG,2DAAW,CAAC,oBAAoB,CAAC;QAGnD,iBAAY,GAAuB,EAAE,CAAC;QACtC,kBAAa,GAA6B,EAAE,CAAC;QAI7C,wBAAmB,GAAY,KAAK,CAAC;QAGrC,iBAAY,GAAW,EAAE,CAAC;QAC1B,SAAI,GAAC,CAAC,CAAC;QAEA,iBAAY,GAAY,KAAK,CAAC;QACrC,cAAS,GAAY,KAAK,CAAC;QAI3B,iBAAY,GAAa,EAAE,CAAC;QAIpB,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QACtD,qBAAgB,GAAa,CAAC,cAAc,EAAC,cAAc,EAAC,aAAa,EAAC,sBAAsB,EAAC,iBAAiB,EAAC,cAAc,EAAC,cAAc,EAAE,kBAAkB,EAAE,MAAM,CAAC,CAAC;QAC9K,iBAAY,GAAU,EAAE,CAAC;QAIzB,mBAAc,GAAiB,EAAE,CAAC;QAGlC,uBAAkB,GAAkC,OAAO,CAAC;QAC5D,qBAAgB,GAAgC,KAAK,CAAC;QAMtD,yBAAoB,GAAG,IAAI,CAAC;QAgB9B,IAAI,CAAC,UAAU,GAAG,IAAI,uHAAsB,EAAE,CAAC;QAC/C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;QAE5C,IAAI,CAAC,4BAA4B,GAAC,wEAAW,CAAC,4BAA4B,CAAC;QAC3E,IAAI,CAAC,OAAO,GAAC,IAAI,CAAC,4BAA4B,CAAC;QAC/C,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;QAE1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CACrB,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAC1D,CAAC,UAAU,CAAC;QAEb,IAAI,CAAC,gCAAgC,CAAC,gCAAgC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAC1F,CAAC,QAAiB,EAAE,EAAE;YACpB,IAAI,CAAC,oBAAoB,GAAG,QAAQ,CAAC;YACrC,IAAG,IAAI,CAAC,oBAAoB,KAAK,IAAI;gBAC7C,IAAI,CAAC,gBAAgB,GAAG,CAAC,cAAc,EAAC,cAAc,EAAC,aAAa,EAAC,sBAAsB,EAAC,iBAAiB,EAAC,cAAc,EAAC,cAAc,EAAC,kBAAkB,EAAC,MAAM,CAAC,CAAC;;gBAEvK,IAAI,CAAC,gBAAgB,GAAG,CAAC,cAAc,EAAC,cAAc,EAAC,sBAAsB,EAAC,iBAAiB,EAAC,cAAc,EAAC,cAAc,EAAC,kBAAkB,EAAC,MAAM,CAAC,CAAC;YACjJ,IAAI,CAAC,kBAAkB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACpE,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC;YAC7B,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACnD,kDAAkD;QAEpD,CAAC,EACD,CAAC,KAAU,EAAE,EAAE,GAAI,CAAC,CACrB,CAAC;QAEN,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE;YAC9D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACH,CAAC;IAIC,QAAQ;QACN,uDAAuD;QACvD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAI,CAAC,MAAM,GAAC,MAAM,CAAC,MAAM,EAAC,CAAC,CAAC,CAAC;QAE7G,IAAI,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,IAAI,IAAI,EAAE;YACrE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CACxB,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAC1D,CAAC,QAAQ,CAAC;YAEX,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CACrB,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAC1D,CAAC,UAAU,CAAC;YACb,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;YAC1B,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;SAC5B;QACD,IAAI,CAAC,gCAAgC,CAAC,gCAAgC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAC1F,CAAC,QAAiB,EAAE,EAAE;YACpB,IAAI,CAAC,oBAAoB,GAAG,QAAQ,CAAC;QACvC,CAAC,EACD,CAAC,KAAU,EAAE,EAAE,GAAI,CAAC,CACrB,CAAC;QAEF,IAAG,IAAI,CAAC,oBAAoB,KAAK,IAAI;YACrC,IAAI,CAAC,gBAAgB,GAAG,CAAC,cAAc,EAAC,cAAc,EAAC,aAAa,EAAC,sBAAsB,EAAC,iBAAiB,EAAC,cAAc,EAAC,cAAc,EAAC,kBAAkB,EAAC,MAAM,CAAC,CAAC;;YAEvK,IAAI,CAAC,gBAAgB,GAAG,CAAC,cAAc,EAAC,cAAc,EAAC,sBAAsB,EAAC,iBAAiB,EAAC,cAAc,EAAC,cAAc,EAAC,kBAAkB,EAAC,MAAM,CAAC,CAAC;QAEzJ,IAAI,CAAC,kBAAkB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC5D,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACnD,kDAAkD;QACtD,IAAI,QAAQ,GAAC,IAAI,IAAI,EAAE,CAAC;QACxB,IAAI,MAAM,GAAC,IAAI,IAAI,EAAE,CAAC;QACtB,IAAG,IAAI,CAAC,QAAQ,IAAE,IAAI,IAAG,IAAI,CAAC,MAAM,IAAE,IAAI,EAC1C;YACE,QAAQ,GAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACjC,MAAM,GAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC9B;aAED;YACE,2CAA2C;YAC3C,IAAI,IAAI,GAAC,IAAI,IAAI,EAAE;YACnB,QAAQ,GAAC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAC,IAAI,CAAC,QAAQ,EAAE,EAAC,CAAC,CAAC,CAAC;YACxD,IAAG,QAAQ,GAAC,IAAI,CAAC,4BAA4B,EAC7C;gBACE,QAAQ,GAAC,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;aAC9C;SACF;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YAC1B,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC3C,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;SACxC,CAAC,CAAC;QAGH,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAED,qBAAqB;QACnB,IAAI,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,IAAI,IAAI,EAAE;YACrE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CACxB,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAC1D,CAAC,QAAQ,CAAC;YAEX,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAC7B,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAC1D,CAAC,QAAQ,CAAC;YAEX,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAC5B,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAC1D,CAAC,YAAY,CAAC;SAChB;QAED,IAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAC;YACnB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;SACf;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,KAAK,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,KAAK,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,EAAE;YACxL,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,OAAO;SACR;QACD,IAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAE,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAE,SAAS,EAC3E;YACE,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,GAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;SAC1D;QACD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;QACnB,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,IAAI,EAAE;YACtE,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE;gBACxD,IAAI,CAAC,YAAY,GAAG,qCAAqC,CAAC;gBAC1D,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;gBACnB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,qCAAqC,EAAE,GAAG,EAAE;oBAC9D,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBAEH,OAAO,KAAK,CAAC;aACd;YACD,IAAI,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE;gBACtD,IAAI,CAAC,YAAY,GAAG,mCAAmC,CAAC;gBACxD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;gBACnB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE;oBAC5D,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,OAAO,KAAK,CAAC;aACd;YACD,IAAI,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;gBACpE,IAAI,CAAC,YAAY,GAAG,uCAAuC,CAAC;gBAC5D,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;gBACnB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;oBAChE,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,OAAO,KAAK,CAAC;aACd;YAED,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACjF,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAC7E,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC;YAClD,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YACjD,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;YACxC,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC;YACjD,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACzC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC5C;IACH,CAAC;IAED,oBAAoB,CAAC,MAA8B;QACjD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAEpB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,gCAAgC,CAAC,mCAAmC,CAAC,MAAM,CAAC,CAAC,SAAS,CACzF,CAAC,QAA4B,EAAE,EAAE;YAC/B,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;YAC7B,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACvB,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC,gBAAgB,CAAC;gBAC7C,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,CAAC;YACzC,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,kBAAkB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACpE,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACnD,kDAAkD;QACpD,CAAC,EACD,CAAC,KAAU,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CACzC,CAAC;IACJ,CAAC;IAED,mBAAmB,CAAC,MAA8B;QAChD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,gCAAgC,CAAC,kCAAkC,CAAC,MAAM,CAAC,CAAC,SAAS,CACxF,CAAC,QAAkC,EAAE,EAAE;YACrC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;QAChC,CAAC,EACD,CAAC,KAAU,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CACzC,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,WAAW,EAAE;gBACf,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;aACnE;iBAAM;gBACL,IAAI,CAAC,kBAAkB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACpE,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBACnD,6CAA6C;aAC9C;SACF;aAAM;YACL,IAAI,CAAC,kBAAkB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACpE,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACnD,6CAA6C;SAC9C;IACH,CAAC;IAED,UAAU,CAAC,GAAQ,EAAE,SAAS;QAC5B,IAAG,SAAS,IAAE,QAAQ,EAAC;YACrB,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;YAClC,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB;QACD,IAAG,SAAS,IAAE,UAAU,EAAC;YACvB,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC;YACpC,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB;IACH,CAAC;IAED,WAAW;QACT,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;QAC7B,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,IAAI,uHAAsB,EAAE,CAAC;QAC/C,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,kBAAkB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACrE,8CAA8C;QAC7C,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACnD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;QAClD,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;IACvB,CAAC;IAED,SAAS;QACR,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,kBAAkB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACpE,6CAA6C;QAC7C,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACnD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;QAClD,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;IACvB,CAAC;IAEJ,YAAY;QACV,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAG,IAAI,CAAC,oBAAoB,IAAI,IAAI,EACpC;YACA,MAAM,wBAAwB,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAEtE,IAAI,EAAE,CAAC,CAAC,YAAY;gBACpB,MAAM,EAAE,CAAC,CAAC,YAAY;gBACtB,SAAS,EAAE,CAAC,CAAC,WAAW;gBACxB,mBAAmB,EAAE,CAAC,CAAC,oBAAoB;gBAC3C,YAAY,EAAE,CAAC,CAAC,eAAe;gBAC/B,gBAAgB,EAAG,CAAC,CAAC,YAAY;gBACjC,gBAAgB,EAAG,CAAC,CAAC,YAAY;gBACjC,cAAc,EAAG,CAAC,CAAC,WAAW;aAE/B,CAAC,CAAC,CAAC;YACJ,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,wBAAwB,EAAE,6BAA6B,CAAC,CAAC;SAChG;aAEA;YACC,MAAM,wBAAwB,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACtE,IAAI,EAAE,CAAC,CAAC,YAAY;gBACpB,MAAM,EAAE,CAAC,CAAC,YAAY;gBACtB,mBAAmB,EAAE,CAAC,CAAC,oBAAoB;gBAC3C,YAAY,EAAE,CAAC,CAAC,eAAe;gBAC/B,gBAAgB,EAAG,CAAC,CAAC,YAAY;gBACjC,gBAAgB,EAAG,CAAC,CAAC,YAAY;gBACjC,cAAc,EAAG,CAAC,CAAC,WAAW;aAC/B,CAAC,CAAC,CAAC;YACJ,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,wBAAwB,EAAE,6BAA6B,CAAC,CAAC;SAChG;QACD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;IAEF,qBAAqB,CAAC,QAA0B;QAE/C,IAAI,CAAC,YAAY,GAAG,IAAI,uHAAsB,EAAE,CAAC;QACjD,IAAI,CAAC,YAAY,CAAC,YAAY,GAAE,QAAQ,CAAC,YAAY,CAAC;QACtD,IAAI,CAAC,YAAY,CAAC,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;QACvD,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QACtD,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAClD,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,CAAC,CAAC;QAEhC,uBAAuB;QACvB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,2BAA2B,CAAC,CAAC;QACnD,IAAI,CAAC,gCAAgC,CAAC,kCAAkC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,SAAS,CACnG,CAAC,QAAkC,EAAE,EAAE;YACrC,uBAAuB;YACvB,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;YAC9B,IAAI,CAAC,UAAU,GAAG,IAAI,2HAA0B,EAAE,CAAC;YACnD,IAAI,CAAC,UAAU,CAAC,SAAS,GAAI,IAAI,CAAC,aAAa,CAAC;YAChD,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;YACrD,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,QAAQ,CAAC,eAAe,CAAC;YACtD,IAAI,CAAC,gCAAgC,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;YAC1E,2EAA2E;YAC3E,qBAAqB;YACrB,wBAAwB;YACxB,0BAA0B;YAC1B,eAAe;QACjB,CAAC,EACD,CAAC,KAAU,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CACzC,CAAC;IAEH,CAAC;;oHAhYS,kCAAkC;kHAAlC,kCAAkC;;wEA6ClC,wEAAY;;;;;;;QCxEzB,gFACI;QAAA;QAAA,yFACE;QAD8C,oLAAe,CAAC,IAAC,4HAAgB,CAAC,IAAjB;QAC/D;QAAA,6FACE;QAAA;QAAA,kFACI;QAAA;QAAA,2EAAU;QAAA,sEAAW;QAAA,4DAAW;QAAC,+FACrC;QAAA,4DAAkB;QACnB;QAAA,4DAA6B;QAE7B;QAAA,2EACC;QAAA;QAAA,0EACI;QAAA;QAAA,0EACE;QAAA;QAAA,iEACE;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,qEAAS;QAAA,2EAA0B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QAElE;QAAA,4EAGA;QAHuE,wSAAS,UAAW,IAAC,0JACpB,eAAW,IADS,wGAEjD,uBAAuB,IAF0B;QAA5F,4DAGA;QAAA;QAAA,oKAEI;QAEJ;QAAA,uFAAsE;QACtE;QAAA,sFAAuC;QACvC;QAAA,6IAAiE;QAErE;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,iEACE;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,mEAAO;QAAA,2EAA0B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QAChE;QAAA,6EAGA;QAHqE,wSAAS,UAAS,IAAC,wJAClB,eAAW,IADO,wGAErC,uBAAuB,IAFc;QAAxF,4DAGA;QAAA;QAAA,oKAEI;QAEJ;QAAA,uFAAoE;QACpE;QAAA,uFAAqC;QACrC;QAAA,6IAA+D;QACnE;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QAEV;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,8EACI;QADqC,2JAAS,iBAAa,IAAC;QAC5D,mFAAK;QAAA,4DAAS;QAClB;QAAA,8EACI;QAD+D,2JAAS,2BAAuB,IAAC;QAChG,mFAAK;QAAA,4DAAS;QACtB;QAAA,4DAAM;QACV;QAAA,4DAAO;QACP;QAAA,4DAAsB;QACxB;QAAA,4DAAgB;QAEhB;QAAA,4EACE;QAAA;QAAA,oFACI;QAAA;QAAA,0EACE;QAAA;QAAA,2EACE;QAAA;QAAA,gFAA0C;QAAA,kEAAM;QAAA,4DAAW;QAAA,qEAAI;QAAA,gFAAmB;QAAA,4DAAI;QACvF;QAAA,wEAAM;QAAA,wDAAuB;QAAA,4DAAO;QACtC;QAAA,4DAAM;QACN;QAAA,2EACC;QAAA;QAAA,qEAAI;QAAA,gFAAmB;QAAA,4DAAI;QAC5B;QAAA,yEAAM;QAAA,yDAAoB;QAAA,4DAAO;QACnC;QAAA,4DAAM;QACN;QAAA,4EACC;QAAA;QAAA,sEAAI;QAAA,uEAAS;QAAA,4DAAI;QAClB;QAAA,yEAAM;QAAA,yDAAiB;QAAA,4DAAO;QAChC;QAAA,4DAAM;QACA;QAAA,4EACG;QAAA;QAAA,6EACG;QAAA;QAAA,+HAEG;QAEN;QAAA,4DAAO;QACV;QAAA,4DAAM;QACT;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,4EACI;QAAA;QAAA,4EACI;QAAA;QAAA,kFAEE;QAAA;QAAA,8EACE;QAAA;QAAA,iIAAkF;QAClF;QAAA,iIAAkE;QACpE;QAAA,qEAAe;QAEjB;QAAA,8EACI;QAAA;QAAA,iIAAmF;QACnF;QAAA,iIAAkE;QACpE;QAAA,qEAAe;QACb;QAAA,8EACE;QAAA;QAAA,iIAAmF;QACnF;QAAA,iIAAmE;QACrE;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,iIAAmF;QACnF;QAAA,iIAAkE;QACpE;QAAA,qEAAe;QACf;QAAA,8EACI;QAAA;QAAA,iIAAqF;QACrF;QAAA,iIAAoE;QAExE;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,iIAAmF;QACnF;QAAA,iIAAoE;QAExE;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,iIAAmF;QACnF;QAAA,iIAAoE;QAExE;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,iIAAmF;QACnF;QAAA,iIAAoE;QAExE;QAAA,qEAAe;QACT;QAAA,8EACE;QAAA;QAAA,iIAAkF;QAClF;QAAA,iIAAoE;QACxE;QAAA,qEAAe;QAEjB;QAAA,iIAAuD;QACnD;QAAA,iIAA6D;QAC7D;QAAA,iIACI;QAER;QAAA,4DAAQ;QACV;QAAA,4DAAM;QACR;QAAA,4EACI;QAAA;QAAA,iFAA4F;QAChG;QAAA,4DAAM;QACV;QAAA,4DAAM;QACV;QAAA,4DAAM;QACV;QAAA,4DAAmB;QACvB;QAAA,4DAAW;QAIX;QAAA,oFAEI;QAAA;QAAA,0EAAmB;QAAA,wEAAW;QAAA,4DAAI;QACtC;QAAA,4DAAc;QAEd;;;;QApJ4B,0DAAuB;QAAvB,oFAAuB;QAOtC,2DAAoB;QAApB,iFAAoB;QAID,0DAA8B;QAA9B,sGAA8B;QAG1B,0DAAe;QAAf,4EAAe;QAGE,0DAA6B;QAA7B,2FAA6B;QAI7B,0DAAY;QAAZ,oEAAY;QAElC,0DAAqD;QAArD,mHAAqD;QAMpD,0DAA8B;QAA9B,sGAA8B;QAE1B,0DAAe;QAAf,4EAAe;QAGE,0DAA2B;QAA3B,yFAA2B;QAI3B,0DAAU;QAAV,oEAAU;QAEhC,0DAAmD;QAAnD,iHAAmD;QAoBjE,2DAAuB;QAAvB,wFAAuB;QAIzB,0DAAoB;QAApB,qFAAoB;QAItB,0DAAiB;QAAjB,kFAAiB;QAIV,0DAA6B;QAA7B,6FAA6B;QAUY,2DAAiC;QAAjC,8FAAiC;QA4CvD,2DAAmC;QAAnC,iGAAmC;QACtC,0DAAgD;QAAhD,kGAAgD;QAOjD,0DAA4D;QAA5D,mJAA4D;QASrC,0DAAoB;QAApB,6EAAoB;;6FDrHjE,kCAAkC;cAL9C,uDAAS;eAAC;gBACT,QAAQ,EAAE,iCAAiC;gBAC3C,WAAW,EAAE,8CAA8C;gBAC3D,SAAS,EAAE,CAAC,8CAA8C,CAAC;aAC5D;o8BA6CoB,IAAI;kBAAtB,uDAAS;mBAAC,MAAM;YAC0B,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AExE3C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0D;AACG;AAEF;AACE;AACJ;AACyD;AAIzD;AAIR;;;;;;;;;;;;;;;;;;;ICN7B,iFACgC;IAAA,uDAChC;IAAA,4DAAa;;;IADT,wFAA2B;IAAC,0DAChC;IADgC,oHAChC;;;IAEJ,4EAAqD;IAAA,sGACzC;IAAA,4DAAY;;;;IAgBxB,yEACI;IAAA;IAAA,mFAGA;IAHc,+VAAoC,IAAI,IAAC;IAGvD;IAAA,4DAAe;IAAA,sFACnB;IAAA,4DAAK;;;IAHG,0DAAmD;IAAnD,0HAAmD;;;;IAI3D,yEACI;IAAA;IAAA,mFAEA;IAFc,4OAAS,wBAAwB,IAAC,6SAAoB,iCAAqB,GAAG,IAAI,IAAhD;IAEhD;IAAA,4DAAe;IACnB;IAAA,4DAAK;;;;IAFG,0DAAqC;IAArC,yGAAqC;;;IAM7C,yEAAuD;IAAA,iEAAK;IAAA,4DAAK;;;IACjE,yEAAwC;IAAA,uDAAoB;IAAA,4DAAK;;;IAAzB,0DAAoB;IAApB,+FAAoB;;;IAI5D,yEAAsD;IAAA,6EAAkB;IAAA,4DAAK;;;IAC7E,yEAAwC;IAAA,uDAA6B;IAAA,4DAAK;;;IAAlC,0DAA6B;IAA7B,wGAA6B;;;IAIzE,oEAA4D;;;;IAC5D,yEACA;IAD6D,0UAAS,iCAAqB,IAAC;IAC5F;IAAA,4DAAK;;;IACL,yEACI;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IACrD;IAFI,4DACI;;;ADlCT,MAAM,+BAA+B;IAY1C,YAAmB,MAAgB,EAAQ,QAAsC,EAAS,SAAuB,EAAS,OAA0B,EAAS,UAAuB;QAAjK,WAAM,GAAN,MAAM,CAAU;QAAQ,aAAQ,GAAR,QAAQ,CAA8B;QAAS,cAAS,GAAT,SAAS,CAAc;QAAS,YAAO,GAAP,OAAO,CAAmB;QAAS,eAAU,GAAV,UAAU,CAAa;QAXpL,qBAAgB,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QACpD,qBAAgB,GAAa,CAAC,QAAQ,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAC;QACvE,eAAU,GAAG,IAAI,0EAAkB,EAAmB,CAAC;QAGvD,cAAS,GAAG,IAAI,uEAAc,CAAkB,IAAI,EAAE,EAAE,CAAC,CAAC;QAC1D,kCAA6B,GAAuB,EAAE,CAAC;QACvD,8BAAyB,GAAwB,EAAE,CAAC;QAEpD,iBAAY,GAAG,IAAI,0DAAW,CAAC,EAAE,EAAC,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE+H,CAAC;IAEzL,QAAQ;QACN,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACjC,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE;YAC5D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC;IACJ,CAAC;IACD,eAAe;QACb,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACnC,CAAC;IACD,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,WAAW,EAAE;gBACf,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;aAC3D;iBACI;gBACH,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;gBAC7E,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;aAClC;SACF;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YAC7E,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SAClC;IACH,CAAC;IAGD,yBAAyB;QACvB,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,CAAC,GAAyB,EAAC,EAAE;YACpE,IAAI,CAAC,yBAAyB,GAAG,GAAG,CAAC;YACrC,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC,UAAU,EAAC,EAAE,CACnF,UAAU,CAAC,WAAW,CAAC,WAAW,EAAE,IAAE,CAAC,uBAAuB,CAAC,CAAC,WAAW,EAAE,IAAI,UAAU,CAAC,WAAW,CAAC,WAAW,EAAE,IAAE,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;QACvJ,CAAC,EAAC,CAAC,KAAK,EAAC,EAAE;YACT,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,6BAA6B,EAC7B,GAAG,EACH;gBACE,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,CAAC,aAAa,CAAC;gBAC3B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CACF,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;IAED,kBAAkB,CAAC,KAAK;QACtB,IAAI,CAAC,SAAS,GAAG,IAAI,uEAAc,CAAkB,IAAI,EAAE,EAAE,CAAC,CAAC;QAC/D,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,KAAK,CAAC;QACtC,IAAI,CAAC,sCAAsC,EAAE,CAAC;IAChD,CAAC;IAED,sCAAsC;QACpC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,CAAC,GAAqB,EAAC,EAAE;YAC3F,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,6BAA6B,GAAG,GAAG,CAAC;YACzC,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YAC7E,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACjC,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7C,CAAC,EAAC,CAAC,KAAK,EAAC,EAAE;YACT,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,4BAA4B,EAC5B,GAAG,EACH;gBACE,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,CAAC,aAAa,CAAC;gBAC3B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CACF,CAAC;YACF,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,EAAE,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACjC,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7C,CAAC,CAAC;IACJ,CAAC;IAED,aAAa;QACX,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;QACnD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;QAC5C,OAAO,WAAW,KAAK,OAAO,CAAC;IACjC,CAAC;IAGD,YAAY;QACV,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;YAClB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;YACxB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,QAAQ;QACN,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6HAA8B,EAAE;YAC/D,YAAY,EAAE,IAAI;YAClB,MAAM,EAAC,OAAO;YACd,KAAK,EAAC,OAAO;YACb,IAAI,EAAC,IAAI,CAAC,SAAS,CAAC,QAAQ;SAC7B,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,CAAC,sCAAsC,EAAE,CAAC;YAC/C,IAAI,CAAC,SAAS,GAAG,IAAI,uEAAc,CAAkB,IAAI,EAAE,EAAE,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;IACL,CAAC;;8GArHU,+BAA+B;+GAA/B,+BAA+B;kEAI/B,8DAAO;wEACP,wEAAY;;;;;;QC5BzB,2EACI;QAAA;QAAA,yEACI;QAAA;QAAA,yEACI;QAAA;QAAA,oFACI;QAAA;QAAA,4EAAW;QAAA,2FACP;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QACtC;QAAA,4DAAY;QACZ;QAAA,iFACI;QADQ,sLAAmB,8BAA0B,IAAC;QACtD;QAAA,2IACgC;QAEpC;QAAA,4DAAa;QACb;QAAA,yIAAqD;QAEzD;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QAEN;QAAA,0EACI;QAAA;QAAA,6EACgD;QADS,wJAAS,cAAU,IAAC;QAC7B,qEAAS;QAAA,4DAAS;QACtE;QAAA,4DAAM;QACV;QAAA,4DAAM;QACV;QAAA,4DAAW;QAEX;QAAA,+EACI;QAAA;QAAA,uEACI;QAAA;QAAA,6EACI;QAAA;QACA;QAAA,6EACI;QAAA;QAAA,4HACI;QAKJ;QAAA,4HACI;QAIR;QAAA,qEAAe;QAEf;QAAA,6EACI;QAAA;QAAA,4HAAuD;QACvD;QAAA,4HAAwC;QAC5C;QAAA,qEAAe;QAEf;QAAA,6EACI;QAAA;QAAA,4HAAsD;QACtD;QAAA,4HAAwC;QAC5C;QAAA,qEAAe;QAGf;QAAA,4HAAuD;QACvD;QAAA,4HACA;QACA;QAAA,4HACI;QACR,4DAAQ;QACR;QAAA,2EACI;QAAA;QAAA,gFAAoF;QACxF;QAAA,4DAAM;QACV;QAAA,4DAAM;QACV;QAAA,4DAAW;QAEX;QAAA,mFAEI;QAAA;QAAA,yEAAmB;QAAA,uEAAW;QAAA,4DAAI;QACtC;QAAA,4DAAc;;QAjEc,0DAA+B;QAA/B,uGAA+B;QAIgB,0DAA4B;QAA5B,yFAA4B;QACvE,0DAA8C;QAA9C,kGAA8C;QAInD,0DAAyC;QAAzC,uGAAyC;QAOpD,0DAA2C;QAA3C,wGAA2C;QAOlC,2DAAyB;QAAzB,sFAAyB;QA2BnB,2DAAmC;QAAnC,iGAAmC;QAC1C,0DAAgD;QAAhD,kGAAgD;QAM7C,0DAA+B;QAA/B,mJAA+B;QAKA,0DAAoB;QAApB,6EAAoB;;6FD1CjE,+BAA+B;cAL3C,uDAAS;eAAC;gBACT,QAAQ,EAAE,gCAAgC;gBAC1C,WAAW,EAAE,6CAA6C;gBAC1D,SAAS,EAAE,CAAC,6CAA6C,CAAC;aAC3D;gfAKqB,IAAI;kBAAvB,uDAAS;mBAAC,8DAAO;YACwB,SAAS;kBAAlD,uDAAS;mBAAC,wEAAY,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AE5B1C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA+E;AAC/E,wCAAwC;AACP;AAOT;AAWsC;AAWqD;AAC1D;;;;;;;;;;;;;;;;;;;;;ICtBrC,4EAAiF;IAAA,iFAAsB;IAAA,4DAAY;;;IAehH,4EAAgF;IAAA,gFAAqB;IAAA,4DAAY;;;IASjH,4EAA4F;IAAA,6FAAkC;IAAA,4DAAY;;;IAC1I,4EAA2F;IAAA,oFAAyB;IAAA,4DAAY;;;IAYhI,4EAAgF;IAAA,oFAAyB;IAAA,4DAAY;;;IACrH,4EAA+E;IAAA,oFAAyB;IAAA,4DAAY;;;IAWpH,iFACA;IAAA,uDACA;IAAA,4DAAa;;;IAF4C,2EAAc;IACvE,0DACA;IADA,yIACA;;;IAGA,4EAAmF;IAAA,kFAAuB;IAAA,4DAAY;;;IAiBnH,iFACA;IAAA,uDACA;IAAA,4DAAa;;;IAF0B,gFAAmB;IAC1D,0DACA;IADA,+IACA;;;IAEH,4EAAsF;IAAA,sFAA2B;IAAA,4DAAY;;;;IAW1H,iFACA;IADY,+XAA8B;IAC1C,uDACA;IAAA,4DAAa;;;IAFiG,qFAAwB;IACtI,0DACA;IADA,mJACA;;;IAEH,4EAAkF;IAAA,iFAAsB;IAAA,4DAAY;;;IASjH,iFACA;IAAA,uDACA;IAAA,4DAAa;;;IAF8B,uFAA0B;IACrE,0DACA;IADA,+JACA;;;IAEH,4EAAoF;IAAA,iFAAsB;IAAA,4DAAY;;;IAV5H,yEACG;IAAA;IAAA,oFACG;IAAA;IAAA,4EAAW;IAAA,iGACR;IAAA,0EAA2B;IAAA,6DAAC;IAAA,4DAAO;IACtC;IAAA,4DAAY;IACZ;IAAA,kFACG;IAAA;IAAA,sJACA;IAEH;IAAA,4DAAa;IACb;IAAA,mJAAoF;IACvF;IAAA,4DAAiB;IACpB;IAAA,4DAAM;;;IAXa,0DAA+B;IAA/B,2GAA+B;IAK7B,2DAA8B;IAA9B,yFAA8B;IAIlC,0DAAwE;IAAxE,qIAAwE;;;IAShF,iFACA;IAAA,uDACA;IAAA,4DAAa;;;IAFoC,+EAAkB;IACnE,0DACA;IADA,gJACA;;;IAEH,4EAAiF;IAAA,8EAAmB;IAAA,4DAAY;;;IAS7G,iFACA;IAAA,uDACA;IAAA,4DAAa;;;IAF8B,+EAAkB;IAC7D,0DACA;IADA,8IACA;;;IAEH,4EAAqF;IAAA,iFAAsB;IAAA,4DAAY;;;IAkBvH,4EAAgF;IAAA,uHAChF;IAAA,4DAAY;;ADrH5B,MAAM,iCAAiC;IAyB5C,YACU,OAAe,EACf,iBAAoC,EACrC,MAAiB,EAChB,eAAgC,EAChC,4BAAyD,EACzD,QAAwB,EACxB,SAAsB,EACtB,YAAyB,EACzB,OAA0B;QAR1B,YAAO,GAAP,OAAO,CAAQ;QACf,sBAAiB,GAAjB,iBAAiB,CAAmB;QACrC,WAAM,GAAN,MAAM,CAAW;QAChB,oBAAe,GAAf,eAAe,CAAiB;QAChC,iCAA4B,GAA5B,4BAA4B,CAA6B;QACzD,aAAQ,GAAR,QAAQ,CAAgB;QACxB,cAAS,GAAT,SAAS,CAAa;QACtB,iBAAY,GAAZ,YAAY,CAAa;QACzB,YAAO,GAAP,OAAO,CAAmB;QA/BpC,2BAAsB,GAAkB,EAAE,CAAC;QAI3C,aAAQ,GAAU,EAAE,CAAC;QACrB,iBAAY,GAAU,EAAE,CAAC;QACzB,gBAAW,GAAU,EAAE,CAAC;QACxB,eAAU,GAAU,EAAE,CAAC;QACvB,sBAAiB,GAAU,EAAE,CAAC;QAC9B,oBAAe,GAAG,EAAE,CAAC;QAErB,eAAU,GAAY,KAAK,CAAC;QAC5B,cAAS,GAAY,KAAK,CAAC;QAE3B,kBAAa,GAAY,IAAI,CAAC;QAC9B,YAAO,GAAY,KAAK,CAAC;QACzB,WAAM,GAAY,KAAK,CAAC;QACxB,qBAAgB,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QAEpD,gBAAW,GAAY,KAAK,CAAC;QAc3B,uCAAuC;IACzC,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;YAC9C,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACtC,UAAU,EAAE,CAAC,EAAE,CAAC;YAChB,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACrC,oBAAoB,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,KAAK,EAAE,EAAE,yDAAU,CAAC,OAAO,CAAC,yJAAyJ,CAAC,CAAC,CAAC;YACpP,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC1C,QAAQ,EAAE;gBACR,EAAE;gBACF,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;aAChE;YACD,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACtC,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACxC,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC3C,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACzC,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACvC,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACtC,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC1C,WAAW,EAAE,CAAC,EAAE,CAAC;YACjB,OAAO,EAAE,CAAC,KAAK,CAAC;YAChB,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;SAC3C,CAEA,CAAC;QAEF,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACtC,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QAEnD,IAAI,CAAC,eAAe;aACjB,IAAI,CAAC,uDAAe,CAAC,YAAY,CAAC,IAAI,CAAC;aACvC,SAAS,CAAC,CAAC,GAAU,EAAE,EAAE;YACxB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;QACtB,CAAC,CAAC,CAAC;QACL,IAAI,CAAC,eAAe;aACjB,OAAO,CAAC,uDAAe,CAAC,UAAU,CAAC,UAAU,CAAC;aAC9C,SAAS,CAAC,CAAC,GAAU,EAAE,EAAE;YACxB,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QAC1B,CAAC,CAAC,CAAC;QACL,IAAI,CAAC,eAAe;aACjB,OAAO,CAAC,uDAAe,CAAC,UAAU,CAAC,IAAI,CAAC;aACxC,SAAS,CAAC,CAAC,GAAU,EAAE,EAAE;YACxB,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QACzB,CAAC,CAAC,CAAC;QACL,IAAI,CAAC,eAAe;aACjB,OAAO,CAAC,uDAAe,CAAC,SAAS,CAAC,IAAI,CAAC;aACvC,SAAS,CAAC,CAAC,GAAU,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,iBAAiB;aACnB,6BAA6B,EAAE;aAC/B,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,4BAA4B,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CACnE,CAAC,IAAe,EAAE,EAAE;YAClB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,IAAI,IAAI,IAAI,EAAE;gBAChB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACvC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACtE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC;oBACrD,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,WAAW;oBACnC,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,aAAa;iBACpC,CAAC,CAAC;gBAEH,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACtE,IACE,IAAI,CAAC,YAAY,CAAC,YAAY,IAAI,IAAI;oBACtC,IAAI,CAAC,YAAY,CAAC,YAAY,IAAI,EAAE,EACpC;oBACA,IAAI,CAAC,YAAY,CAAC,YAAY,GAAG,EAAE,CAAC;iBACrC;gBAED,IAAI,IAAI,CAAC,YAAY,CAAC,YAAY,IAAI,CAAC;oBAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBAChE,IACE,IAAI,CAAC,YAAY,CAAC,OAAO,IAAI,IAAI;oBACjC,IAAI,CAAC,YAAY,CAAC,OAAO,IAAI,EAAE,EAC/B;oBACA,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,EAAE,CAAC;iBAChC;gBACD,IACE,IAAI,CAAC,YAAY,CAAC,aAAa,IAAI,IAAI;oBACvC,IAAI,CAAC,YAAY,CAAC,aAAa,IAAI,CAAC,EACpC;oBACA,IAAI,CAAC,YAAY,CAAC,aAAa,GAAG,CAAC,CAAC;iBACrC;gBACD,IACE,IAAI,CAAC,YAAY,CAAC,cAAc,IAAI,IAAI;oBACxC,IAAI,CAAC,YAAY,CAAC,cAAc,IAAI,EAAE,EACtC;oBACA,IAAI,CAAC,YAAY,CAAC,cAAc,GAAG,EAAE,CAAC;iBACvC;gBACD,IACE,IAAI,CAAC,YAAY,CAAC,SAAS,IAAI,IAAI;oBACnC,IAAI,CAAC,YAAY,CAAC,SAAS,IAAI,EAAE;oBACjC,IAAI,CAAC,YAAY,CAAC,SAAS,IAAI,CAAC,EAChC;oBACA,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,EAAE,CAAC;iBAClC;gBACD,IACE,IAAI,CAAC,YAAY,CAAC,aAAa,IAAI,IAAI;oBACvC,IAAI,CAAC,YAAY,CAAC,aAAa,IAAI,EAAE,EACrC;oBACA,IAAI,CAAC,YAAY,CAAC,aAAa,GAAG,EAAE,CAAC;iBACtC;gBACD,IACE,IAAI,CAAC,YAAY,CAAC,YAAY,IAAI,IAAI;oBACtC,IAAI,CAAC,YAAY,CAAC,YAAY,IAAI,EAAE,EACpC;oBACA,IAAI,CAAC,YAAY,CAAC,YAAY,GAAG,EAAE,CAAC;iBACrC;gBACD,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;aACtF;iBAAM;gBACL,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,kDAAkD,EAClD,GAAG,EACH;oBACE,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAC,CAAC,aAAa,CAAC;oBAC1B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CACF,CAAC;aACH;YACD,uEAAuE;QACzE,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;YACb,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,KAAK,CAAC,KAAK,IAAI,SAAS,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE;gBAC/C,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,kDAAkD,EAClD,GAAG,EACH;oBACE,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAC,CAAC,aAAa,CAAC;oBAC1B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CACF,CAAC;YAEJ,qIAAqI;QACvI,CAAC,CACF,CAAC;IACJ,CAAC;IAED,iBAAiB;QACf,OAAO,CAAC,UAAqB,EAAE,EAAE;YAC/B,OAAO,UAAU,CAAC,KAAK,CAAC,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC,aAAa;gBAC/D,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACpB,CAAC,CAAC,IAAI,CAAC;QACX,CAAC,CAAC;IACJ,CAAC;IAED,eAAe;QACb,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,CAAC,SAAS,CAAC,CAAC,IAAW,EAAE,EAAE;YACpE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;QACN,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,EACnB,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,EACtB,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACtC,wCAAwC;IAC1C,CAAC;IAED,sBAAsB,CAAC,OAAY,EAAE,OAAY;QAC/C,OAAO,OAAO,IAAI,OAAO,IAAI,OAAO,CAAC,EAAE,IAAI,OAAO,CAAC,EAAE,CAAC;IACxD,CAAC;IAED,oBAAoB,CAAC,KAAK;QACxB,IAAI,KAAK,EAAE;YACT,IAAI,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YACxD,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC;YACjC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBAC/B,IACE,IAAI,CAAC,sBAAsB,CAAC,SAAS,CACnC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,eAAe,CACjC,KAAK,CAAC,CAAC;oBACR,CAAC,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAC9D;oBACA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC;wBAC/B,EAAE,EAAE,CAAC,CAAC,aAAa;wBACnB,IAAI,EAAE,CAAC,CAAC,eAAe;qBACxB,CAAC,CAAC;iBACJ;YACH,CAAC,CAAC,CAAC;SACJ;aAAM;YACL,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC;YACjC,IAAI,CAAC,0BAA0B,EAAE,CAAC;SACnC;IACH,CAAC;IAED,0BAA0B;QACxB,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC;QACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpD,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC;gBAC/B,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,aAAa;gBACzC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe;aAC9C,CAAC,CAAC;SACJ;IACH,CAAC;IAED,SAAS,CAAC,WAAgB;QACxB,OAAO,WAAW,IAAI,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5D,CAAC;IAED,UAAU;QACR,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wHAAsB,EAAE;YACzD,YAAY,EAAE,IAAI;YAClB,WAAW,EAAE,IAAI;YACjB,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,EAAE,KAAK,EAAE,kCAAkC,EAAE;SACpD,CAAC,CAAC;IACL,CAAC;IAED,iBAAiB,CAAC,KAAU;QAC1B,IAAI,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;QACzB,IAAI,MAAM,IAAI,CAAC;YAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;aACnC;YACH,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,YAAY,CAAC,YAAY,GAAG,EAAE,CAAC;SACrC;IACH,CAAC;IAED,QAAQ,CAAC,KAAU;QACjB,IAAI,CAAM,CAAC;QACX,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,iDAAiD;QACrE,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACxE,CAAC;IAED,cAAc,CAAC,KAAU;QACvB,IAAI,IAAI,GAAG;YACT,MAAM,EAAE,EAAE;YACV,SAAS,EAAE,CAAC;YACZ,GAAG,EAAE,CAAC;YACN,KAAK,EAAE,EAAE;YACT,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,EAAE;SACR,CAAC;QACF,KAAK,IAAI,KAAK,IAAI,IAAI,EAAE;YACtB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;gBAAE,SAAS;YAC1C,IAAI,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE;gBACjE,OAAO,CAAC,eAAe;aACxB;SACF;QACD,KAAK,CAAC,cAAc,EAAE,CAAC;IACzB,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,IAAI,IAAI,EAAE;YACtD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;YAChF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;aACI;YACH,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC3D,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,eAAe,EAAE,CAAC;YAC7D,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;QACD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,sBAAsB,EAAE,CAAC;QACnE,IAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,KAAK,IAAE,CAAC,EAClD;YACA,IAAI,UAAU,GAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAC1D,UAAU,CAAC,KAAK,EAAE,CAAC;YACnB,UAAU,CAAC,eAAe,EAAE,CAAC;YAC7B,UAAU,CAAC,sBAAsB,EAAE,CAAC;SACnC;QACH,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE;YAC/B,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE;gBACtD,IAAI,CAAC,YAAY,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;aAClE;iBAAM;gBACL,IAAI,CAAC,YAAY,CAAC,aAAa,GAAG,CAAC,CAAC;gBACpC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,EAAE,CAAC;aAC/B;YACD,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,sBAAsB;YAC9F,IAAI,CAAC,YAAY,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,aAAa,CAAC;YAC5E,IAAI,CAAC,YAAY,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,UAAU,CAAC;YACxE,IAAI,CAAC,YAAY,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;YAC7E,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC;YAC7E,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC;YAChE,IAAI,CAAC,YAAY,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,aAAa,CAAC;YAC5E,IAAI,CAAC,YAAY,CAAC,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,cAAc,CAAC;YAC9E,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,SAAS,CAAC;YACpE,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,UAAU,CAAC;YACtE,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC;YAClE,IAAI,CAAC,YAAY,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,aAAa,CAAC;YAC5E,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,SAAS,CAAC;YACpE,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC;YAClE,IAAI,CAAC,YAAY,CAAC,oBAAoB,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,oBAAoB,CAAC;YAC1F,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,WAAW,CAAC;YACxE,IAAI,CAAC,YAAY,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,YAAY,CAAC;YAC1E,IAAI,CAAC,YAAY,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,aAAa,CAAC;YAE/E,IAAI,CAAC,YAAY,CAAC,OAAO;gBACvB,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,SAAS;oBACnC,GAAG;oBACH,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,UAAU;oBACtC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,UAAU,GAAG,GAAG;oBAC9C,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC;YAC5C,IAAI,CAAC,YAAY,CAAC,aAAa,GAAG,mCAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACzG,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;YAC7D,IAAI,CAAC,YAAY,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;YACtE,IAAI,CAAC,4BAA4B;iBAC9B,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC;iBAClC,SAAS,CACR,CAAC,IAAa,EAAE,EAAE;gBAChB,IAAI,IAAI,IAAI,IAAI,EAAE;oBAChB,IAAI,OAAO,GAAG,qDAAqD,CAAC;oBACpE,IAAI,IAAI,CAAC,SAAS;wBAChB,OAAO,GAAG,+DAA+D,CAAC;oBAE5E,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,OAAO,EAAE,GAAG,EACZ;wBACE,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CACF,CAAC;oBAEF,UAAU,CAAC,GAAG,EAAE;wBACd,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC;oBAC9D,CAAC,EAAE,IAAI,CAAC,CAAC;iBACV;qBAAM;oBACL,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE;wBAC5C,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;YAEH,CAAC,EACD,KAAK,CAAC,EAAE;gBACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;oBAC1C,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAC,CAAC,aAAa,CAAC;oBAC1B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,6FAA6F;YAC/F,CAAC,CACF,CAAC;YAEJ,OAAO,IAAI,CAAC;SACb;IACH,CAAC;IAED,qBAAqB,CAAC,WAAW;QAC/B,IAAI,WAAW,IAAI,WAAW,CAAC,EAAE,EAAE;YACjC,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,SAAS,CACpE,CAAC,aAAoB,EAAE,EAAE;gBACvB,IAAI,aAAa,EAAE;oBACjB,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC;oBACtD,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC;oBAClD,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAC/C,aAAa,CAAC,SAAS,CACxB,CAAC;iBACH;YACH,CAAC,EACD,CAAC,KAAU,EAAE,EAAE,GAAG,CAAC,CACpB,CAAC;SACH;aAAM;YACL,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,EAAE,CAAC;SAClC;IACH,CAAC;IAED,QAAQ,CAAC,KAAU;QACjB,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,KAAK,EAAE,CAAC;QACnD,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC3D,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,eAAe,EAAE,CAAC;YAC7D,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,sBAAsB,EAAE,CAAC;SACrE;IACH,CAAC;IACD,iBAAiB,CAAC,CAAC;QACjB,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,CAAC,CAAC,WAAW,CAAC;IAC/C,CAAC;;kHA5aU,iCAAiC;iHAAjC,iCAAiC;kEAuBjC,iEAAkB;;;;;QChE/B,2EACQ;QAAA;QAAA,mFACG;QAAA;QAAA,0EACG;QAAA;QAAA,yEACG;QAAA;QAAA,yEACG;QAAA;QAAA,qFACG;QAAA;QAAA,6EAAW;QAAA,kGACR;QAAA,2EAA2B;QAAA,8DAAC;QAAA,4DAAO;QACtC;QAAA,4DAAY;QACZ;QAAA,4EACH;QAD0E,qKAAY,oBAAgB,IAAC;QAApG,4DACH;QAAA;QAAA,2IAAiF;QACjF;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACN;QAAA,0EACG;QAAA;QAAA,qFACG;QAAA;QAAA,6EAAW;QAAA,uEAAW;QAAA,4DAAY;QAClC;QAAA,4EACH;QAD2E,qKAAY,oBAAgB,IAAC;QAArG,4DACH;QAAA;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACN;QAAA,0EACG;QAAA;QAAA,qFACG;QAAA;QAAA,6EAAW;QAAA,iGACR;QAAA,2EAA2B;QAAA,8DAAC;QAAA,4DAAO;QACtC;QAAA,4DAAY;QACZ;QAAA,4EACA;QADsE,qKAAY,oBAAgB,IAAC;QAAnG,4DACA;QAAA;QAAA,2IAAgF;QACnF;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACN;QAAA,0EACG;QAAA;QAAA,qFACG;QAAA;QAAA,6EAAW;QAAA,yGACR;QAAA,2EAA2B;QAAA,8DAAC;QAAA,4DAAO;QACtC;QAAA,4DAAY;QACZ;QAAA,uEACA;QAAA;QAAA,2IAA4F;QAC5F;QAAA,2IAA2F;QAC9F;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACT;QAAA,4DAAM;QACN;QAAA,0EACG;QAAA;QAAA,0EACG;QAAA;QAAA,qFACG;QAAA;QAAA,6EAAW;QAAA,qGACR;QAAA,2EAA2B;QAAA,8DAAC;QAAA,4DAAO;QACtC;QAAA,4DAAY;QACZ;QAAA,6EAEA;QADe,+JAAS,uBAAuB,IAAC,6GAAa,0BAAsB,IAAnC;QADhD,4DAEA;QAAA;QAAA,2IAAgF;QAChF;QAAA,2IAA+E;QAClF;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACN;QAAA,0EACG;QAAA;QAAA,qFACG;QAAA;QAAA,6EAAW;QAAA,mGACR;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QACrC;QAAA,4DAAY;QACZ;QAAA,8EAEA;QAFO,0JAAS,gCAA4B,IAAC,wGAAsB,gCAA4B,IAAlD;QAA7C,4DAEA;QAAA;QAAA,6FACA;QADoE,6LAAkB,8CAA0C,IAAC;QACjI;QAAA,gJACA;QAEA;QAAA,4DAAmB;QAEnB;QAAA,6IAAmF;QACtF;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACN;QAAA,2EACG;QAAA;QAAA,sFACG;QAAA;QAAA,8EAAW;QAAA,8FACR;QAAA,4EAA2B;QAAA,+DAAC;QAAA,4DAAO;QACtC;QAAA,4DAAY;QACZ;QAAA,8EACH;QAD2D,gKAAS,uBAAuB,IAAC;QAAzF,4DACH;QAAA;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACN;QAAA,2EACG;QAAA;QAAA,sFACG;QAAA;QAAA,8EAAW;QAAA,wGACR;QAAA,4EAA2B;QAAA,+DAAC;QAAA,4DAAO;QACtC;QAAA,4DAAY;QACZ;QAAA,mFACG;QAAA;QAAA,gJACA;QAEH;QAAA,4DAAa;QACb;QAAA,6IAAsF;QACzF;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACT;QAAA,4DAAM;QACN;QAAA,4EACG;QAAA;QAAA,2EACG;QAAA;QAAA,sFACG;QAAA;QAAA,8EAAW;QAAA,mGACR;QAAA,4EAA2B;QAAA,+DAAC;QAAA,4DAAO;QACtC;QAAA,4DAAY;QACZ;QAAA,mFACG;QADsC,yLAAmB,6BAAyB,IAAC;QACnF;QAAA,gJACA;QAEH;QAAA,4DAAa;QACb;QAAA,6IAAkF;QACrF;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACN;QAAA,mIACG;QAYH;QAAA,2EACG;QAAA;QAAA,sFACG;QAAA;QAAA,8EAAW;QAAA,gGACR;QAAA,4EAA2B;QAAA,+DAAC;QAAA,4DAAO;QACtC;QAAA,4DAAY;QACZ;QAAA,mFACG;QAAA;QAAA,gJACA;QAEH;QAAA,4DAAa;QACb;QAAA,6IAAiF;QACpF;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACN;QAAA,2EACG;QAAA;QAAA,sFACG;QAAA;QAAA,8EAAW;QAAA,mGACR;QAAA,4EAA2B;QAAA,+DAAC;QAAA,4DAAO;QACtC;QAAA,4DAAY;QACZ;QAAA,mFACG;QAAA;QAAA,gJACA;QAEH;QAAA,4DAAa;QACb;QAAA,6IAAqF;QACxF;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACT;QAAA,4DAAM;QACN;QAAA,4EACG;QAAA;QAAA,2EACG;QAAA;QAAA,sFACG;QAAA;QAAA,8EAAW;QAAA,yEAAY;QAAA,4DAAY;QACnC;QAAA,8EACH;QAD6D,sKAAY,oBAAgB,IAAC;QAAvF,4DACH;QAAA;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACN;QAAA,2EACG;QAAA;QAAA,qFAAmE;QAA3B,uKAAS,oBAAgB,IAAC;QAAC,uEAAU;QAAA,4DAAe;QAC/F;QAAA,4DAAM;QACN;QAAA,4EACG;QAAA;QAAA,sFACG;QAAA;QAAA,8EAAW;QAAA,gFAAmB;QAAA,4EAA0B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QAC5E;QAAA,4EAA8E;QAC9E;QAAA,6IAAgF;QAEnF;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACT;QAAA,4DAAM;QACN;QAAA,2EACG;QAAA;QAAA,4EACG;QAAA;QAAA,+EACA;QADuE,2JAAS,cAAU,IAAC;QAC3F,yFAAM;QAAA,4DAAS;QACf;QAAA,+EAAiF;QAAvB,2JAAS,gBAAY,IAAC;QAAC,mEAAM;QAAA,4DAAS;QACnG;QAAA,4DAAM;QACT;QAAA,4DAAM;QACT;QAAA,4DAAO;QACV;QAAA,4DAAmB;QACtB;QAAA,4DAAW;QACX;QAAA,oFAEA;QAAA;QAAA,0EAAmB;QAAA,wEAAW;QAAA,4DAAI;QACpC;QAAA,4DAAc;;;QA7KwB,0DAA8B;QAA9B,2FAA8B;QAGnC,0DAA+B;QAA/B,uGAA+B;QAKpC,2DAAqE;QAArE,8HAAqE;QAIhE,0DAA+B;QAA/B,uGAA+B;QAM/B,2DAA+B;QAA/B,uGAA+B;QAKjC,2DAAoE;QAApE,6HAAoE;QAIlE,0DAA+B;QAA/B,uGAA+B;QAKjC,2DAAgF;QAAhF,yIAAgF;QAChF,0DAA+E;QAA/E,wIAA+E;QAM7E,0DAA+B;QAA/B,uGAA+B;QAMjC,2DAAoE;QAApE,6HAAoE;QACpE,0DAAmE;QAAnE,4HAAmE;QAIjE,0DAA+B;QAA/B,uGAA+B;QAKoB,0DAAwB;QAAxB,gFAAwB;QAC9C,0DAAyB;QAAzB,sFAAyB;QACvD,0DAA4C;QAA5C,+FAA4C;QAK7C,0DAAuE;QAAvE,gIAAuE;QAIrE,0DAA+B;QAA/B,uGAA+B;QAQ/B,2DAA+B;QAA/B,uGAA+B;QAK7B,2DAA0B;QAA1B,iFAA0B;QAI9B,0DAA0E;QAA1E,mIAA0E;QAMxE,0DAA+B;QAA/B,uGAA+B;QAKuC,2DAA6B;QAA7B,oFAA6B;QAIrG,0DAAsE;QAAtE,+HAAsE;QAG5C,0DAAkB;QAAlB,gFAAkB;QAc1C,0DAA+B;QAA/B,uGAA+B;QAK7B,2DAAoC;QAApC,0FAAoC;QAIxC,0DAAqE;QAArE,8HAAqE;QAInE,0DAA+B;QAA/B,uGAA+B;QAK7B,2DAA8B;QAA9B,mFAA8B;QAIlC,0DAAyE;QAAzE,kIAAyE;QAMvE,0DAA+B;QAA/B,uGAA+B;QAQP,2DAAqD;QAArD,gHAAqD;QAC7E,0DAA+B;QAA/B,uGAA+B;QAGjC,0DAAoE;QAApE,kIAAoE;QAevC,2DAAoB;QAApB,6EAAoB;;6FDnItE,iCAAiC;cAL7C,uDAAS;eAAC;gBACT,QAAQ,EAAE,gCAAgC;gBAC1C,WAAW,EAAE,6CAA6C;gBAC1D,SAAS,EAAE,CAAC,6CAA6C,CAAC;aAC3D;wxBAwBgC,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;;;;;;;;;;;;;;AEhE/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2H;AAE1F;AACyB;AACU;AAElB;AACK;AACE;AAGA;AACuD;AAK7D;AAMsD;AAEsB;;;;;;;;;;;;;;;;;;;;;;ICd/E,yEAAgE;IAAA,mIACxD;IAAA,2EAA0B;IAAA,4DAAC;IAAA,4DAAO;IAC1C;IAAA,4DAAK;;;IAKmB,iFACQ;IAAA,uDACR;IAAA,4DAAa;;;IAFmC,gFAAmB;IAC3D,0DACR;IADQ,qPACR;;;IAER,4EAA8F;IAAA,oFAAyB;IAAA,4DAAY;;;;IARnJ,yEACQ;IAAA;IAAA,qFACQ;IAAA;IAAA,iFAEQ;IAF+C,mdAA6E,0BAA0B,qBAAiB;IAEvK;IAAA,mJACQ;IAEhB;IAAA,4DAAa;IACb;IAAA,iJAA8F;IACtG;IAAA,4DAAiB;IACzB;IAAA,4DAAK;;;;IAVkD,gFAAmB;IAClD,0DAA8B;IAA9B,yGAA8B;IAGlB,0DAAmC;IAAnC,6FAAmC;IAI5C,0DAAkF;IAAlF,uJAAkF;;;IAM7G,yEAAgE;IAAA,kIACxD;IAAA,2EAA2B;IAAA,6DAAC;IAAA,4DAAO;IAC3C;IAAA,4DAAK;;;IAImB,iFACQ;IAAA,uDACR;IAAA,4DAAa;;;IAFkC,mFAAsB;IAC7D,0DACR;IADQ,sPACR;;;IAER,4EAAmF;IAAA,mFAAwB;IAAA,4DAAY;;;;IAPvI,yEACQ;IAAA;IAAA,qFACQ;IAAA;IAAA,iFACQ;IADoC,wcAAkE,eAAe,qBAAiB;IACtI;IAAA,mJACQ;IAEhB;IAAA,4DAAa;IACb;IAAA,iJAAmF;IAC3F;IAAA,4DAAiB;IACzB;IAAA,4DAAK;;;;IATkD,gFAAmB;IAClD,0DAA8B;IAA9B,yGAA8B;IAElB,0DAAkC;IAAlC,uFAAkC;IAI3C,0DAAuE;IAAvE,4IAAuE;;;IAQ1F,2EAA2C;IAAA,6DAAC;IAAA,4DAAO;;;IAD3D,yEAAgE;IAAA,oIACxD;IAAA,uIAA2C;IACnD;IAAA,4DAAK;;;IADS,0DAAe;IAAf,gFAAe;;;IAOb,4EAAsI;IAAA,qFAA0B;IAAA,4DAAY;;;IAC5K,4EAAqF;IAAA,6FAAkC;IAAA,4DAAY;;;IACnI,4EAA+L;IAAA,qFAA0B;IAAA,4DAAY;;;;IAPrP,yEACQ;IAAA;IAAA,qFACQ;IAAA;IAAA,4EAGA;IAHoD,6VAAgC,gLAAU,uBAAuB,IAAjC,0XACyB,gBAAgB,4BADzC;IAApF,4DAGA;IAAA;IAAA,iJAAsI;IACtI;IAAA,iJAAqF;IACrF;IAAA,mJAA+L;IAEvM;IAAA,4DAAiB;IACzB;IAAA,4DAAK;;;;;IAVkD,gFAAmB;IAClD,0DAA8B;IAA9B,yGAA8B;IAE9B,0DAAgC;IAAhC,6FAAgC;IAE7B,0DAA0H;IAA1H,+LAA0H;IAC1H,0DAAyE;IAAzE,8IAAyE;IACzE,0DAAmL;IAAnL,mQAAmL;;;IAS9M,yEAAgE;IAAA,oIACxD;IAAA,2EAA2B;IAAA,6DAAC;IAAA,4DAAO;IAC3C;IAAA,4DAAK;;;;IAOW,4FAEQ;IADA,+cAA4B,uBAAuB,YAAK;IACxD;IAAA,+EAAkC;IAAA,gEAAK;IAAA,4DAAW;IAC1D;IAAA,4DAAwB;;;IAGxB,4EAA2F;IAAA,qFAA0B;IAAA,4DAAY;;;;IAZjJ,yEACQ;IAAA;IAAA,qFACQ;IAAA;IAAA,4EAAW;IAAA,wEAAa;IAAA,4DAAY;IACpC;IAAA,gFAGA;IAH4E,wOAAS,uBAAuB,IAAC,ugBAEvB,WAA4B,IAFL;IAA7G,4DAGA;IAAA;IAAA,2KAEQ;IAER;IAAA,wFAAuF;IACvF;IAAA,uFAAwD;IACxD;IAAA,mJAA2F;IACnG;IAAA,4DAAiB;IACzB;IAAA,4DAAK;;;;;;IAdkD,gFAAmB;IAClD,0DAA8B;IAA9B,yGAA8B;IAEiF,0DAAuC;IAAvC,+EAAuC;IAG7H,0DAAyD;IAAzD,8HAAyD;IAIzD,0DAA6B;IAA7B,qEAA6B;IAEnD,0DAA+E;IAA/E,oJAA+E;;;IAQ1G,yEAAgE;IAAA,0IACxD;IAAA,2EAA2B;IAAA,6DAAC;IAAA,4DAAO;IAC3C;IAAA,4DAAK;;;IAKW,4EAAiF;IAAA,2FAAgC;IAAA,4DAAY;;;IAC7H,4EAAkF;IAAA,6FAAkC;IAAA,4DAAY;;;IAChI,4EAAkJ;IAAA,qFAA0B;IAAA,4DAAY;;;;IANxM,yEACQ;IAAA;IAAA,qFACQ;IAAA;IAAA,4EAEA;IAF0D,6VAAgC,gLAAU,uBAAuB,IAAjC,uXACO,aAAa,4BADpB;IAA1F,4DAEA;IAAA;IAAA,iJAAiF;IACjF;IAAA,iJAAkF;IAClF;IAAA,mJAAkJ;IAC1J;IAAA,4DAAiB;IACzB;IAAA,4DAAK;;;;;IARkD,gFAAmB;IAClD,0DAA8B;IAA9B,0GAA8B;IAE9B,0DAAgC;IAAhC,6FAAgC;IAC7B,0DAAqE;IAArE,2IAAqE;IACrE,0DAAsE;IAAtE,4IAAsE;IACtE,0DAAsI;IAAtI,wNAAsI;;;IAQjK,yEAAgE;IAAA,2HACxD;IAAA,2EAA2B;IAAA,6DAAC;IAAA,4DAAO;IAC3C;IAAA,4DAAK;;;IAImB,iFAA4D;IAAA,uDAC5D;IAAA,4DAAa;;;IAD2B,2FAAmB;IAAC,0DAC5D;IAD4D,mKAC5D;;;IAER,4EAA2E;IAAA,4EAAiB;IAAA,4DAAY;;;;IANxH,yEACQ;IAAA;IAAA,qFACQ;IAAA;IAAA,iFACQ;IAD6F,gcAAwD,OAAO,qBAAiB;IAC7K;IAAA,mJAA4D;IAEpE;IAAA,4DAAa;IACb;IAAA,iJAA2E;IACnF;IAAA,4DAAiB;IACzB;IAAA,4DAAK;;;;;IARkD,gFAAmB;IAClD,0DAA8B;IAA9B,0GAA8B;IACF,0DAA0B;IAA1B,uFAA0B;IAC1C,0DAA2B;IAA3B,sFAA2B;IAGpC,0DAA+D;IAA/D,qIAA+D;;;IAQ1F,yEAAgE;IAAA,sIACxD;IAAA,2EAA2B;IAAA,6DAAC;IAAA,4DAAO;IAC3C;IAAA,4DAAK;;;IAKW,4EAA2E;IAAA,uFAA4B;IAAA,4DAAY;;;IACnH,4EAA4E;IAAA,2FAAgC;IAAA,4DAAY;;;IACxH,4EAAsI;IAAA,mFAAwB;IAAA,4DAAY;;;;IAN1L,yEACQ;IAAA;IAAA,qFACQ;IAAA;IAAA,4EAEA;IAF2C,wOAAS,uBAAuB,IAAC,spBACiC,OAAO,4BADxC;IAA5E,4DAEA;IAAA;IAAA,iJAA2E;IAC3E;IAAA,iJAA4E;IAC5E;IAAA,mJAAsI;IAC9I;IAAA,4DAAiB;IACzB;IAAA,4DAAK;;;;;IARkD,gFAAmB;IAClD,0DAA8B;IAA9B,0GAA8B;IAEjB,0DAAuB;IAAvB,oFAAuB;IACjC,0DAA+D;IAA/D,qIAA+D;IAC/D,0DAAgE;IAAhE,sIAAgE;IAChE,0DAA0H;IAA1H,4MAA0H;;;IAQrI,yEAAgE;IAAA,mEAAO;IAAA,4DAAK;;;;IAC5E,yEACQ;IAAA;IAAA,6EACQ;IADgG,mVAA8B;IAC9H;IAAA,2EAAU;IAAA,8DAAG;IAAA,4DAAW;IAChC;IAAA,4DAAS;IACjB;IAAA,4DAAK;;;;IAHY,0DAA+D;IAA/D,gIAA+D;;;IAShF,oEAA2C;;;;IAC3C,yEACQ;IAAA;IAAA,6EAEQ;IADA,uWAAqB;IACrB;IAAA,2EAAU;IAAA,iEAAM;IAAA,4DAAW;IAC3B;IAAA,4DAAS;IACzB;IAAA,4DAAK;;;;IAHiC,0DAAmB;IAAnB,sFAAmB;;;IAOjF,oEAA4D;;;IAC5D,oEAAkE;;;;IAQlF,6EACQ;IAD6F,qWAAkC;IAC/H,2HACR;IAAA,4DAAS;;;;IACT,6EACQ;IAD6F,wWAAkC;IAC/H,6HACR;IAAA,4DAAS;;;IAxKjC,0EACQ;IAAA;IAAA,yEACQ;IAAA;IAAA,yEACQ;IAAA;IAAA,yEACQ;IAAA;IAAA,2EACQ;IAAA;IAAA,6EACQ;IAAA;IAAA,+HAAgE;IAGhE;IAAA,gIACQ;IAUhB;IAAA,qEAAe;IAEf;IAAA,6EACQ;IAAA;IAAA,+HAAgE;IAGhE;IAAA,gIACQ;IAShB;IAAA,qEAAe;IAGf;IAAA,6EACQ;IAAA;IAAA,+HAAgE;IAGhE;IAAA,gIACQ;IAUR;IAAA,iEAAS;IACjB;IAAA,qEAAe;IAGf;IAAA,6EACQ;IAAA;IAAA,+HAAgE;IAGhE;IAAA,gIACQ;IAcR;IAAA,iEAAS;IACjB;IAAA,qEAAe;IAGf;IAAA,6EACQ;IAAA;IAAA,+HAAgE;IAGhE;IAAA,gIACQ;IAQR;IAAA,iEAAS;IACjB;IAAA,qEAAe;IAGf;IAAA,6EACQ;IAAA;IAAA,+HAAgE;IAGhE;IAAA,gIACQ;IAQR;IAAA,iEAAS;IACjB;IAAA,qEAAe;IAGf;IAAA,6EACQ;IAAA;IAAA,+HAAgE;IAGhE;IAAA,gIACQ;IAQhB;IAAA,qEAAe;IAEf;IAAA,0EACQ;IAAA;IAAA,2EACQ;IAAA;IAAA,6EACQ;IAAA;IAAA,+HAAgE;IAChE;IAAA,+HACQ;IAKhB;IAAA,qEAAe;IACvB;IAAA,4DAAM;IACN;IAAA,2EACQ;IAAA;IAAA,6EACQ;IAAA;IAAA,+HAAsC;IACtC;IAAA,+HACQ;IAKhB;IAAA,qEAAe;IACvB;IAAA,4DAAM;IACd;IAAA,4DAAM;IACN;IAAA,+HAAuD;IACvD;IAAA,+HAA6D;IACrE;IAAA,4DAAQ;IAChB;IAAA,4DAAM;IACd;IAAA,4DAAM;IACd;IAAA,4DAAM;IACN;IAAA,0EACQ;IAAA;IAAA,gFACQ;IAAA;IAAA,kEACA;IAAA;IAAA,yIACQ;IAER;IAAA,yIACQ;IAEhB;IAAA,4DAAU;IAClB;IAAA,4DAAM;IAEd;IAAA,4DAAO;;;IA5K0B,gGAAgC;IAIhB,0DAA6B;IAA7B,6FAA6B;IAsJnB,2DAAmC;IAAnC,oGAAmC;IAC1C,0DAAgD;IAAhD,qGAAgD;IAQG,2DAAqB;IAArB,sFAAqB;IAGrB,0DAAqB;IAArB,sFAAqB;;ADzIrH,MAAM,2BAA2B;IAqCpC,yCAAyC;IACzC,2CAA2C;IAC3C,YAAmB,MAAiB,EAAS,EAAe,EAAU,QAAqB,EAA8B,KAAiB,EAAU,YAAsB,oEAAW,EAAE;IACnL,yCAAyC;IACzC,2CAA2C;IACT,QAA0B,EAAU,cAA6B,EAC3E,OAAe,EAAU,QAAwB,EAAU,kBAAqC,EAAS,OAA0B;QAJ5I,WAAM,GAAN,MAAM,CAAW;QAAS,OAAE,GAAF,EAAE,CAAa;QAAU,aAAQ,GAAR,QAAQ,CAAa;QAA8B,UAAK,GAAL,KAAK,CAAY;QAAU,cAAS,GAAT,SAAS,CAA0B;QAGjJ,aAAQ,GAAR,QAAQ,CAAkB;QAAU,mBAAc,GAAd,cAAc,CAAe;QAC3E,YAAO,GAAP,OAAO,CAAQ;QAAU,aAAQ,GAAR,QAAQ,CAAgB;QAAU,uBAAkB,GAAlB,kBAAkB,CAAmB;QAAS,YAAO,GAAP,OAAO,CAAmB;QA1C/J,UAAK,GAAG,KAAK,CAAC;QAKd,6BAAwB,GAAG,OAAO,CAAC;QACnC,oBAAe,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QACnD,eAAU,GAAG,IAAI,iEAAS,EAAE,CAAC;QAK7B,uBAAkB,GAAkC,OAAO,CAAC;QAC5D,qBAAgB,GAAgC,KAAK,CAAC;QAStD,aAAQ,GAAW,eAAe,CAAC;QACnC,cAAS,GAAW,WAAW,CAAC;QAChC,gBAAW,GAAG,IAAI,KAAK,EAAgB,CAAC;QAGxC,WAAM,GAAY,KAAK,CAAC;QAExB,QAAG,GAAG,EAAE,CAAC;QAIT,2CAA2C;QAC3C,qBAAgB,GAAa,CAAC,0BAA0B,EAAE,eAAe,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC3K,uBAAkB,GAAY,KAAK,CAAC;QAkGpC,sBAAiB,GAAG,UAAU,KAAa;YACvC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;gBAC1D,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;gBACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACjC,GAAG,CAAC,CAAC,CAAC,CAAC,qBAAqB,GAAG,mCAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;iBAC5F;gBAED,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;gBAC1B,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;oBAClC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;iBACtB;qBAAM;oBACH,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;iBACrB;gBAED,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;oBAClC,2CAA2C;oBAC3C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,qBAAqB,EAAE,IAAI,EAAE,wBAAwB,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;iBAC7K;gBACD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjB,IAAI,CAAC,eAAe,EAAE,CAAC;YAE3B,CAAC,EAAC,CAAC,KAAK,EAAC,EAAE;gBACP,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YACvB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;QAuHF,gDAAgD;QAChD,gBAAW,GAAG,UAAU,QAAa,EAAE,MAAW;YAC9C,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;gBAC5C,OAAO,IAAI,CAAC;aACf;YACD,OAAO,KAAK,CAAC;QACjB,CAAC;QA/OG,IAAI,CAAC,cAAc,GAAG,IAAI,KAAK,EAAiB,CAAC;IAErD,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;QACnB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,iBAAiB;QACjB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC1C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IAGrE,CAAC;IACD,SAAS;QACL,IAAI,CAAC,kBAAkB,GAAG,IAAI,wDAAS,CAAC;YACpC,cAAc,EAAE,IAAI,wDAAS,CAAC,EAAE,CAAC;SACpC,CAAC,CAAC;IACP,CAAC;IACD,eAAe;QACX,IAAI,CAAC,cAAc,GAAG,IAAI,wDAAS,CAAC,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YAClC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,gBAAgB,CAAc,CAAC;YACjF,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IACP,CAAC;IACD,SAAS,CAAC,OAAO;QACb,IAAI,OAAO,CAAC,wBAAwB,IAAI,MAAM,EAAE;YAC5C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,OAAO,IAAI,wDAAS,CAAC;gBACjB,wBAAwB,EAAE,IAAI,0DAAW,CAAC,OAAO,CAAC,wBAAwB,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;gBAClG,aAAa,EAAE,IAAI,0DAAW,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;gBAC5E,cAAc,EAAE,IAAI,0DAAW,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,yDAAU,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,yDAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;gBACxH,qBAAqB,EAAE,IAAI,0DAAW,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;gBAC5F,WAAW,EAAE,IAAI,0DAAW,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,yDAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvI,KAAK,EAAE,IAAI,0DAAW,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;gBAC5D,KAAK,EAAE,IAAI,0DAAW,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;aAChG,CAAC,CAAC;SACN;aACI;YACD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,OAAO,IAAI,wDAAS,CAAC;gBACjB,wBAAwB,EAAE,IAAI,0DAAW,CAAC,OAAO,CAAC,wBAAwB,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;gBAClG,aAAa,EAAE,IAAI,0DAAW,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;gBAC5E,cAAc,EAAE,IAAI,0DAAW,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,yDAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC7I,qBAAqB,EAAE,IAAI,0DAAW,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;gBAC5F,WAAW,EAAE,IAAI,0DAAW,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,yDAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvI,KAAK,EAAE,IAAI,0DAAW,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;gBAC5D,KAAK,EAAE,IAAI,0DAAW,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;aAChG,CAAC,CAAC;SACN;IACL,CAAC;IACD,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,gBAAgB,CAAc,CAAC;IACtE,CAAC;IACD,WAAW,CAAC,KAAU;QAClB,IAAI,CAAM,CAAC;QACX,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QACvB,OAAO,CAAC,CAAC;IACb,CAAC;IAGD,qBAAqB,CAAC,CAAM;QACxB,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC;IAExH,CAAC;IACD,sBAAsB,CAAC,CAAM;QACzB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;IAC5B,CAAC;IACD,mBAAmB,CAAC,CAAM;QACtB,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IAClG,CAAC;IACD,qBAAqB,CAAC,CAAM;QACxB,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC;IAClH,CAAC;IACD,iBAAiB,CAAC,CAAM;QACpB,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAC9F,CAAC;IACD,aAAa,CAAC,CAAM;QAChB,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAClF,CAAC;IACD,aAAa,CAAC,CAAM;QAChB,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAClF,CAAC;IACD,YAAY,CAAC,KAAU;IACvB,CAAC;IA0BD,iBAAiB,CAAC,QAAgB;QAE9B,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE,GAAG,IAAI,CAAC,iBAAiB,GAAG,GAAG,EAAC,CAAC,CAAC,CAAC;IAC9G,CAAC;IAED,SAAS,CAAC,SAAiB;QAEvB,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YACpE,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;QACzB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,kBAAkB;QACd,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,EAAE;YACvD,2CAA2C;YAC3C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,qBAAqB,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAClL,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,gBAAgB,CAAc,CAAC;YACjF,2CAA2C;YAC3C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,qBAAqB,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACvN,IAAI,CAAC,2BAA2B,CAAC,uBAAuB,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAC9E,IAAI,CAAC,2BAA2B,CAAC,0BAA0B,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACjF,IAAI,CAAC,2BAA2B,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAC9D,IAAI,CAAC,2BAA2B,CAAC,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACtE,IAAI,CAAC,2BAA2B,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACpE,IAAI,CAAC,2BAA2B,CAAC,gBAAgB,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACvE,IAAI,CAAC,2BAA2B,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAC9D,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;SAChB;aACI;YACD,OAAO,KAAK,CAAC;SAChB;IAEL,CAAC;IAED,2BAA2B,CAAC,UAAkB,EAAE,kBAA6B;QACzE,kBAAkB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACxD,kBAAkB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,eAAe,EAAE,CAAC;QAC1D,kBAAkB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,sBAAsB,EAAE,CAAC;IACrE,CAAC;IAED,sBAAsB;QAElB,IAAI,CAAC,MAAM,EAAE,CAAC;IAClB,CAAC;IAED,kBAAkB,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,KAAK,KAAK,MAAM;YAChB,IAAI,CAAC,2BAA2B,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;;YAE5C,IAAI,CAAC,2BAA2B,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACnD,CAAC;IACD,2BAA2B,CAAC,IAAS,EAAE,CAAS;QAC5C,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,2CAA2C;QAC3C,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QAC/H,IAAI,IAAI,KAAK,MAAM,EAAE;YACjB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;SAC7G;QACD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,sBAAsB,EAAE,CAAC;IACnF,CAAC;IACD,QAAQ,CAAC,KAAa;QAClB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,yBAAyB,EAAE,KAAK,CAAC,CAAC;QAClE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,UAAU,CAAC,GAAQ,EAAE,SAAS,EAAE,CAAC;QAC7B,IAAI,SAAS,IAAI,uBAAuB,EAAE;YACtC,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,KAAK,EAAE,CAAC;SACnE;IACL,CAAC;IAED,MAAM;QACF,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC1C,0CAA0C;QAC1C,yCAAyC;QACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACjD,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;gBAClC,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,wBAAwB,KAAK,MAAM,EAAE;oBAC5D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;iBACtB;aACJ;SACJ;QACD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;IAC5B,CAAC;IAED,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK;QAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+GAAqB,EAAE;YACtD,YAAY,EAAE,IAAI;YAClB,WAAW,EAAE,IAAI;YACjB,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE;SAC/C,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACvC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;YAC7B,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE;gBAC7B,IAAI,CAAC,MAAM,EAAE,CAAC;gBACd,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6IAAsB,EAAE;oBACxD,YAAY,EAAE,IAAI;oBAClB,WAAW,EAAE,IAAI;oBACjB,KAAK,EAAE,OAAO;oBACd,IAAI,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,wCAAwC,EAAE;iBACvF,CAAC;aACL;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAGD,QAAQ;QACJ,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IAC/C,CAAC;IASD,QAAQ,CAAC,aAA8B;QACnC,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;YACrB,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;SAC5B;aACI;YACD,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;SAC9B;QACD,IAAI,IAAI,CAAC,UAAU,KAAK,MAAM,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE;YAC5D,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SACnD;IAEL,CAAC;IACD,QAAQ;QACJ,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;IAC/B,CAAC;IAED,MAAM;QACF,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;IAC7B,CAAC;IACD,qBAAqB;QACjB,IAAI,CAAC,UAAU,GAAG,kBAAkB,CAAC;IACzC,CAAC;IAED,+BAA+B,CAAC,cAAsB,EAAE,aAAwB;QAC5E,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;QAC3E,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,sBAAsB,EAAE,CAAC;QAChE,IAAI,cAAc,KAAK,OAAO;YAC1B,IAAI,CAAC,kBAAkB,GAAG,KAAK;aAC9B,IAAI,cAAc,KAAK,aAAa,EAAE;YACvC,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,yDAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1I,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,sBAAsB,EAAE,CAAC;SACnE;aACI,IAAI,cAAc,KAAK,OAAO,EAAE;YACjC,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;YAC5G,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,sBAAsB,EAAE,CAAC;SACnE;aACI,IAAI,cAAc,IAAI,EAAE,EAAC;YAC1B,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,yDAAU,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC1I,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,sBAAsB,EAAE,CAAC;SACnE;IACL,CAAC;IAED,cAAc,CAAC,IAA0B;QACrC,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;YACrB,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;SAC5B;aACI;YACD,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;SAC9B;QACD,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE;YAClC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,+BAA+B,CAAC,uBAAuB,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAClF,IAAI,CAAC,+BAA+B,CAAC,0BAA0B,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACrF,IAAI,CAAC,+BAA+B,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAClE,IAAI,CAAC,+BAA+B,CAAC,gBAAgB,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAC3E,IAAI,CAAC,+BAA+B,CAAC,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAC1E,IAAI,CAAC,+BAA+B,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACxE,IAAI,CAAC,+BAA+B,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;SACrE;QACD,IAAI,KAAK,GAAQ,IAAI,IAAI,EAAE,CAAC;QAC5B,yCAAyC;QACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAElC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,wBAAwB,KAAK,MAAM,EAAE;gBAC7C,2CAA2C;gBAC3C,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,qBAAqB,EAAE;oBACpL,OAAO,IAAI,CAAC;iBACf;aAEJ;YAED,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,wBAAwB,KAAK,MAAM,EAAE;gBAC7C,2CAA2C;gBAC3C,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,qBAAqB,EAAE;oBAC9J,sHAAsH;oBACtH,OAAO,IAAI,CAAC;iBACf;aACJ;YAED,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,YAAY,EAAE;gBAChC,8HAA8H;gBAC9H,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,EAAE;oBACrB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,2CAA2C,EAAE,GAAG,EAAE;wBACjE,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;wBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;qBAC1C,CAAC,CAAC;oBACH,OAAO,IAAI,CAAC;iBACf;qBACI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE;oBACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;wBACrD,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;wBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;qBAC1C,CAAC,CAAC;oBACH,OAAO,IAAI,CAAC;iBACf;aACJ;YACD,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,EAAE;gBACpD,2HAA2H;gBAC3H,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,EAAE;oBACpB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;wBAC7D,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;wBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;qBAC1C,CAAC,CAAC;oBACH,OAAO,IAAI,CAAC;iBACf;qBACI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE;oBACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,4BAA4B,EAAE,GAAG,EAAE;wBAClD,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;wBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;qBAC1C,CAAC,CAAC;oBACH,OAAO,IAAI,CAAC;iBACf;aACJ;YAED,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,EAAE;gBACxD,2CAA2C;gBAC3C,sJAAsJ;gBACtJ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,mEAAmE,EAAE,GAAG,EAAE;oBACzF,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;oBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;iBAC1C,CAAC,CAAC;gBACH,OAAO,IAAI,CAAC;aACf;YAED,IAAI,CAAC,CAAC,CAAC,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC;SACjE;QAED,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,yCAAyC;QACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAClC,IAAI,CAAC,SAAS,EAAE;gBACZ,WAAW,GAAG,CAAC,CAAC;gBAChB,yCAAyC;gBACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAClC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,wBAAwB,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,wBAAwB,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,wBAAwB,IAAI,iBAAiB,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,wBAAwB,IAAI,YAAY,EAAE;wBACpL,WAAW,EAAE,CAAC;wBACd,IAAI,WAAW,GAAG,CAAC,EAAE;4BACjB,SAAS,GAAG,IAAI,CAAC;4BACjB,MAAM;yBACT;qBACJ;iBACJ;aACJ;SACJ;QACD,IAAI,WAAW,GAAG,CAAC,EAAE;YACjB,kIAAkI;YAClI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,+CAA+C,EAAE,GAAG,EAAE;gBACrE,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;gBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;aAC1C,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;SACf;aACI;YACD,IAAI,CAAC,UAAU,CAAC,cAAc,GAAG,EAAE,CAAC;YACpC,yCAAyC;YACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAClC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;aAChD;YACD,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;YAC1C,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;gBACnE,yHAAyH;gBACzH,IAAI,IAAI,CAAC,UAAU,IAAI,MAAM,EAAE;oBAC3B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE;wBACzD,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;wBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;qBAC1C,CAAC,CAAC;iBACN;qBACI;oBACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,qCAAqC,EAAE,GAAG,EAAE;wBAC3D,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;wBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;qBAC1C,CAAC,CAAC;iBACN;gBACD,+BAA+B;gBAC/B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC9C,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;gBACT,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,KAAK,EAAE,EAAE;oBACjD,uFAAuF;iBAC1F;qBACI;oBACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;wBACrD,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAC,CAAC,aAAa,CAAC;wBAC1B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;wBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;qBAC1C,CAAC,CAAC;oBACH,oHAAoH;iBACvH;YACL,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,OAAO,KAAK,CAAC;SAChB;IACL,CAAC;IAED,WAAW,CAAC,KAAU;QAClB,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IACD,WAAW,CAAC,SAAkB;QAC1B,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,IAAI,SAAS,KAAK,EAAE,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,WAAW,IAAI,SAAS,IAAI,IAAI,EAAE;YAC7E,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SAC1C;QACD,OAAO,YAAY,CAAC;IACxB,CAAC;;sGAhfQ,2BAA2B,gdAuCiE,+DAAU,4LAGnG,4EAAgB,kNAChB,sDAAM;2GA3CT,2BAA2B;;kEAYzB,gEAAQ;;;;;;;;QC9CvB,yEACQ;QAAA;QAAA,yEACQ;QAAA;QAAA,wEAA2B;QAAA,4EAAiB;QAAA,4DAAK;QACzD;QAAA,4DAAM;QACd;QAAA,4DAAM;QACN;QAAA,2HACQ;QA4KR;QAAA,kFAEA;QAAA;QAAA,wEAAmB;QAAA,uEAAW;QAAA,4DAAI;QAClC;QAAA,4DAAc;;QAhLR,0DAA0B;QAA1B,wFAA0B;QA6K0B,0DAAmB;QAAnB,4EAAmB;;6FDhJhE,2BAA2B;cALvC,uDAAS;eAAC;gBACP,QAAQ,EAAE,yBAAyB;gBACnC,WAAW,EAAE,sCAAsC;gBACnD,SAAS,EAAE,CAAC,sCAAsC,CAAC;aACtD;;sBAwCiG,oDAAM;uBAAC,+DAAU;;sBAG1G,oDAAM;uBAAC,4EAAgB;;sBACvB,oDAAM;uBAAC,sDAAM;uPAhCY,eAAe;kBAA5C,uDAAS;mBAAC,iBAAiB;YACP,KAAK;kBAAzB,uDAAS;mBAAC,gEAAQ;YAqBc,kBAAkB;kBAAlD,uDAAS;mBAAC,oBAAoB;;;;;;;;;;;;;;AEnEnC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AAEgB;AAEE;AAC9C;AAEwB;AACuD;AAEnD;AACF;AACV;AAEQ;AACN;AAEsD;;;;;;;;;;;;;;;;;;;;;ICRjF,oEAA4D;;;IAC5D,oEAAkE;;;IAClE,yEACI;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IACjD;IAAA,4DAAK;;;IAED,yEAA+D;IAAA,gEAAK;IAAA,4DAAK;;;IACzE,yEACI;IAAA,uDACJ;IAAA,4DAAK;;;IADD,0DACJ;IADI,mJACJ;;;IAGA,yEAAgE;IAAA,0GAC5D;IAAA,2EAA0B;IAAA,4DAAC;IAAA,4DAAO;IACtC;IAAA,4DAAK;;;IAKO,iFACI;IAAA,uDACJ;IAAA,4DAAa;;;IAF8B,iFAAoB;IAC3D,0DACJ;IADI,iLACJ;;;;IANZ,yEACI;IAAA;IAAA,qFACI;IAAA;IACA;IAAA,iFACI;IADQ,0YAA8C;IACtD;IAAA,yIACI;IAER;IAAA,4DAAa;IACb;IACJ;IAAA,4DAAiB;IACrB;IAAA,4DAAK;;;;IAVkD,gFAAmB;IACzC,0DAA8B;IAA9B,yGAA8B;IAGvC,0DAA8B;IAA9B,wFAA8B;;;IAStD,yEAAgE;IAAA,kGAC5D;IAAA,2EAA0B;IAAA,4DAAC;IAAA,4DAAO;IACtC;IAAA,4DAAK;;;;IACL,yEACI;IAAA;IAAA,qFACI;IAAA;IACA;IAAA,4EACA;IADmD,6SAA6C;IAAhG,4DACA;IAAA;IACJ;IAAA,4DAAiB;IACrB;IAAA,4DAAK;;;;IANmD,gFAAmB;IACvD,0DAA8B;IAA9B,yGAA8B;;;IAQlD,yEAA+D;IAAA,wGAC3D;IAAA,2EAA0B;IAAA,4DAAC;IAAA,4DAAO;IACtC;IAAA,4DAAK;;;;IAKG,4FAEQ;IADA,mcAA4B,aAAa,YAAK;IAC9C;IAAA,+EAAkC;IAAA,gEAAK;IAAA,4DAAW;IAC1D;IAAA,4DAAwB;;;;IAPhC,yEACI;IAAA;IAAA,qFACI;IAAA;IAAA,4EACA;IADsH,oSAAS,WAAkB,IAAC;IAAlJ,4DACA;IAAA;IACA;IAAA,+JAEQ;IAER;IAAA,uFAA6E;IAC7E;IAAA,qFAA+E;IAC/E;IACJ;IAAA,4DAAiB;IACrB;IAAA,4DAAK;;;;;IAZmD,gFAAmB;IAC1C,0DAA8B;IAA9B,0GAA8B;IACtC,0DAAe;IAAf,gFAAe;IAEC,0DAA4F;IAA5F,kKAA4F;IAI5F,0DAAmB;IAAnB,qEAAmB;;;IAO5D,yEAA+D;IAAA,uGAC3D;IAAA,2EAA0B;IAAA,4DAAC;IAAA,4DAAO;IACtC;IAAA,4DAAK;;;;IACL,yEACI;IAAA;IAAA,qFACI;IAAA;IAAA,4EACA;IAD0D,mTAAmD;IAA7G,4DACA;IAAA;IACJ;IAAA,4DAAiB;IACrB;IAAA,4DAAK;;;;IALmD,gFAAmB;IACvD,0DAA8B;IAA9B,0GAA8B;;;IAOlD,yEAAgE;IAAA,mEAAO;IAAA,4DAAK;;;;IAC5E,yEACI;IAAA;IAAA,6EACI;IAD+F,iWAA0B;IACzH;IAAA,2EAAU;IAAA,8DAAG;IAAA,4DAAW;IAC5B;IAAA,4DAAS;IACT;IAAA,6EACI;IADmC,4VAAqB;IACxD;IAAA,4EAAU;IAAA,kEAAM;IAAA,4DAAW;IAC/B;IAAA,4DAAS;IACb;IAAA,4DAAK;;;;;;IAPkF,gFAAmB;IAC9F,0DAA4D;IAA5D,6HAA4D;IAGP,0DAAmB;IAAnB,sFAAmB;;;IAIpF,yEACA;IAAA;IAAA,4DAAK;;;IADiF,gFAAmB;;;IAuBzG,4EAAqG;IAAA,8EAAmB;IAAA,4DAAY;;;IAShI,iFAAgE;IAAA,uDAChE;IAAA,4DAAa;;;IAD8B,4FAAoB;IAAC,0DAChE;IADgE,2HAChE;;;IAEJ,4EAAqG;IAAA,4EAAiB;IAAA,4DAAY;;;IASlI,4EAAsG;IAAA,kFAAuB;IAAA,4DAAY;;;IAezI,4EAA8F;IAAA,wEAAa;IAAA,4DAAY;;;IAUvH,4EAA+F;IAAA,yEAAc;IAAA,4DAAY;;;IAUrH,iFAAiE;IAAA,uDACjE;IAAA,4DAAa;;;IAD8B,6FAAqB;IAAC,0DACjE;IADiE,2HACjE;;;IAEJ,4EAAiG;IAAA,2EAAgB;IAAA,4DAAY;;;IAW7H,4EAAoG;IAAA,+EAAoB;IAAA,4DAAY;;;IASpI,4EAAqG;IAAA,oFAAyB;IAAA,4DAAY;;;IAU1I,4EAAkG;IAAA,yFAA8B;IAAA,4DAAY;;;IAS5I,4EAAsG;IAAA,sFAA2B;IAAA,4DAAY;;;IAmBjI,4EAAqG;IAAA,8EAAmB;IAAA,4DAAY;;;IAShI,iFAAgE;IAAA,uDAChE;IAAA,4DAAa;;;IAD8B,4FAAoB;IAAC,0DAChE;IADgE,uIAChE;;;IAEJ,4EAAqG;IAAA,4EAAiB;IAAA,4DAAY;;;IASlI,4EAAsG;IAAA,kFAAuB;IAAA,4DAAY;;;IAezI,4EAA8F;IAAA,wEAAa;IAAA,4DAAY;;;IAUvH,4EAA+F;IAAA,yEAAc;IAAA,4DAAY;;;IAUrH,iFAAiE;IAAA,uDACjE;IAAA,4DAAa;;;IAD8B,6FAAqB;IAAC,0DACjE;IADiE,uIACjE;;;IAEJ,4EAAiG;IAAA,2EAAgB;IAAA,4DAAY;;;IAUzH,4EAAoG;IAAA,+EAAoB;IAAA,4DAAY;;;IASxI,4EAAqG;IAAA,oFAAyB;IAAA,4DAAY;;;IAU1I,4EAAkG;IAAA,yFAA8B;IAAA,4DAAY;;;IAS5I,4EAAsG;IAAA,sFAA2B;IAAA,4DAAY;;;;IAQrK,6EAAqE;IAApB,kUAAmB;IAAC,iEAAM;IAAA,4DAAS;;;;IACpF,6EACI;IAD0D,yUAA0B;IACpF,uGACJ;IAAA,4DAAS;;;;IACT,6EACI;IAD0D,yUAA0B;IACpF,yGACJ;IAAA,4DAAS;;ADtTlB,MAAM,wBAAwB;IA+CnC,YAAmB,MAAiB,EAAS,WAAwB,EAAU,SAAsB,EAAU,cAA6B,EAAU,QAAuB,EAAU,MAAc,EAAU,QAAwB,EAAU,QAAkB,EAAU,OAA0B;QAApR,WAAM,GAAN,MAAM,CAAW;QAAS,gBAAW,GAAX,WAAW,CAAa;QAAU,cAAS,GAAT,SAAS,CAAa;QAAU,mBAAc,GAAd,cAAc,CAAe;QAAU,aAAQ,GAAR,QAAQ,CAAe;QAAU,WAAM,GAAN,MAAM,CAAQ;QAAU,aAAQ,GAAR,QAAQ,CAAgB;QAAU,aAAQ,GAAR,QAAQ,CAAU;QAAU,YAAO,GAAP,OAAO,CAAmB;QAvCvS,kCAAkC;QAClC,UAAK,GAAG,KAAK,CAAC;QAId,eAAU,GAAG,IAAI,iEAAS,EAAE,CAAC;QAM7B,oBAAe,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QAEnD,SAAI,GAAW,KAAK,CAAC;QACrB,aAAQ,GAAW,UAAU,CAAC;QAC9B,cAAS,GAAW,SAAS,CAAC;QAI9B,oBAAe,GAAQ,KAAK,CAAC;QAE7B,kBAAa,GAAY,KAAK,CAAC;QAK/B,mBAAc,GAAS,KAAK,CAAC;QAQ7B,kBAAa,GAAY,KAAK,CAAC;QAC/B,sCAAsC;QACtC,eAAU,GAAG,IAAI,0EAAkB,EAAE,CAAC;QACtC,4CAA4C;QAC5C,qBAAgB,GAAa,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;QAoHrG,qBAAgB,GAAG;YACjB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAE3B,IAAI,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,SAAS,IAAI,IAAI,EAAE;gBACvD,2HAA2H;gBAC3H,2HAA2H;gBAC3H,2HAA2H;gBAC3H,2GAA2G;gBAC3G,6GAA6G;gBAC7G,uHAAuH;gBACvH,iHAAiH;gBACjH,iHAAiH;gBAEjH,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,0BAA0B,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,kBAAkB,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,sBAAsB,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,cAAc;oBAC9M,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,eAAe,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,iBAAiB,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,aAAa,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,sBAAsB;oBAC/L,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;qBACxB;oBACH,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;iBAC3B;aAEF;iBACI,IAAI,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,SAAS,IAAI,IAAI,EAAE;gBAE5D,2HAA2H;gBAC3H,kIAAkI;gBAClI,mHAAmH;gBACnH,4GAA4G;gBAC5G,kHAAkH;gBAClH,yHAAyH;gBACzH,mHAAmH;gBACnH,+GAA+G;gBAC/G,sDAAsD;gBACtD,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,0BAA0B,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,kBAAkB,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,sBAAsB,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,cAAc;oBAC9M,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,eAAe,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,iBAAiB,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,aAAa,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,sBAAsB;oBAE/L,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;qBACxB;oBACH,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;iBAC3B;aACF;YACD,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,yBAAyB,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,yBAAyB,CAAC,MAAO,IAAI,EAAE;gBAC9H,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;iBACxB;gBACH,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;aAC3B;YACD,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,sBAAsB,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,sBAAsB,CAAC,MAAM,IAAI,EAAE;gBACvH,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;iBACxB;gBACH,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;aAC3B;YACD,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,yBAAyB,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,yBAAyB,CAAC,MAAM,IAAI,EAAE;gBAC7H,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;iBACxB;gBACH,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;aAC3B;YACD,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,sBAAsB,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,sBAAsB,CAAC,MAAM,IAAI,EAAE;gBACvH,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;iBACxB;gBACH,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;aAC3B;YACD,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,aAAa,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,IAAI,IAAI,CAAC,qBAAqB;gBAC7H,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;iBACxB;gBACH,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;aAC3B;YACD,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,aAAa,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,IAAI,IAAI,CAAC,qBAAqB;gBAC7H,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;iBACxB;gBACH,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;aAC3B;QAEH,CAAC;QACD,0DAA0D;QAE1D,qBAAgB,GAAG,UAAU,KAAa;YACxC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;gBAC9D,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;gBAClB,IAAI,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,iBAAiB,IAAI,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE;oBAClG,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;oBACnB,mBAAmB;iBACpB;gBACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAEtD,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;oBAC3G,IAAG,CAAC,IAAI,CAAC,aAAa,EAAC;wBACvB,IAAI,CAAC,IAAI,CAAC,EAAE;4BACV,IAAI,CAAC,sBAAsB,EAAE,CAAC;yBAC/B;qBACF;oBAEC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBAC3H,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oBACxH,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;oBACzI,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBAC/H,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;oBAC3I,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;oBACzJ,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;iBAC5I;gBACD,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC;gBAGvD,IAAI,GAAG,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,iBAAiB,IAAI,SAAS,EAAE;oBACjF,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC;oBAC/D,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;oBACrH,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oBAC1G,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;oBACvI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;oBACzI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;oBACzI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;oBACzH,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;oBACvI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;oBAC/H,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;oBACzI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;oBACnI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;oBACjI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;oBACrI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;oBACzI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;oBAC3H,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;oBAEvI,IAAI,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,OAAO,IAAI,OAAO;wBACtD,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC;;wBAC5B,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC;iBACrC;gBACD,IAAI,GAAG,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,iBAAiB,IAAI,SAAS,EAAE;oBACjF,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC;oBAC/D,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;oBACrH,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oBAC1G,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;oBACvI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;oBACzI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;oBACzI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;oBACzH,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;oBACvI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;oBAC/H,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;oBACzI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;oBACnI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;oBACjI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;oBACrI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;oBACzI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;oBAC3H,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;oBAEvI,IAAI,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,OAAO,IAAI,OAAO;wBACtD,IAAI,CAAC,sBAAsB,GAAG,CAAC,CAAC;;wBAC7B,IAAI,CAAC,sBAAsB,GAAG,CAAC,CAAC;oBAGrC,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,CAAC,UAAU,CAAC,CAAC;oBACtF,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;iBAE7B;gBACD,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC;oBAC3C,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC;wBACjC,SAAS,EAAE,IAAI;wBACf,IAAI,EAAE,EAAE;wBACR,UAAU,EAAE,EAAE;wBACd,YAAY,EAAE,EAAE;qBACjB,CAAC,CAAC;gBACL,IAAI,IAAI,CAAC,UAAU,CAAC,iBAAiB,IAAI,IAAI;oBAC3C,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,IAAI,2EAAsB,EAAE,CAAC;gBACnE,IAAI,IAAI,CAAC,UAAU,CAAC,iBAAiB,IAAI,IAAI;oBAC3C,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,IAAI,2EAAsB,EAAE,CAAC;YACrE,CAAC,EAAC,CAAC,KAAK,EAAC,EAAE;gBACT,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YACrB,CAAC,CAAC,CAAC;QAGL,CAAC;QAxRC,IAAI,CAAC,sBAAsB,GAAG,IAAI,KAAK,EAAY,CAAC;QAGpD,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC7C,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,WAAW,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;IAC5B,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;QACnB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAGxC,IAAI,CAAC,gBAAgB,GAAG,IAAI,wDAAS,CAAC;YACpC,iBAAiB,EAAE,IAAI,CAAC,kBAAkB,EAAE;YAC5C,iBAAiB,EAAE,IAAI,CAAC,kBAAkB,EAAE;YAC5C,aAAa,EAAE,IAAI,wDAAS,CAAC,CAAC,IAAI,CAAC,yBAAyB,EAAE,CAAC,CAAC;YAChE,UAAU,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;SACzD,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAClC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACzC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEhB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QAEvB,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,IAAI,2EAAsB,EAAE,CAAC;QACjE,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,IAAI,2EAAsB,EAAE,CAAC;QACjE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACzE,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,CAAC,UAAU,CAAC,CAAC;IACxF,CAAC;IAED,yBAAyB;QACvB,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YAC5B,EAAE,EAAE,IAAI,0DAAW,CAAC,CAAC,CAAC;YACtB,SAAS,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAChC,IAAI,EAAE,IAAI,0DAAW,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAChD,UAAU,EAAE,IAAI,0DAAW,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACtD,YAAY,EAAE,IAAI,0DAAW,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACxD,WAAW,EAAE,IAAI,0DAAW,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACvD,UAAU,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;SACtE,CAAC,CAAC;IACL,CAAC;IAED,sBAAsB;QACnB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,eAAe,CAAe,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE,CAAC,CAAC;IACxG,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,wDAAS,CAAC;YACnB,EAAE,EAAE,IAAI,0DAAW,CAAC,CAAC,CAAC;YACtB,SAAS,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAChC,UAAU,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACrE,WAAW,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAClC,WAAW,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACzD,YAAY,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC1D,YAAY,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YACrF,YAAY,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YAChE,IAAI,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAClD,KAAK,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACnD,OAAO,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACrD,UAAU,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,EAAC,yDAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;YACvF,WAAW,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,OAAO,CAAC,4EAA4E,CAAC,EAAE,yDAAU,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,yDAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1L,QAAQ,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,yDAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1G,YAAY,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;SAChE,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,IAAI,CAAC,cAAc,GAAC,IAAI,CAAC;QACzB,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC9B,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,aAAa,GAAC,KAAK,CAAC;IAC3B,CAAC;IACD,YAAY,CAAC,QAAgB;QAC3B,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YACrE,IAAI,CAAC,YAAY,GAAG,GAAG;QACzB,CAAC,CAAC,CAAC;IACL,CAAC;IACD,sBAAsB,CAAC,OAAY,EAAE,OAAY;QAC/C,OAAO,OAAO,IAAI,OAAO,IAAI,OAAO,CAAC,EAAE,IAAI,OAAO,CAAC,EAAE,CAAC;IACxD,CAAC;IACD,YAAY,CAAC,SAAiB;QAC5B,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YACtE,IAAI,CAAC,YAAY,GAAG,GAAG;QACzB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY,CAAC,YAAkB;QAC7B,IAAI,KAAK,GAAQ,IAAI,IAAI,EAAE,CAAC;QAC5B,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QAC5B,YAAY,GAAG,mCAAM,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE,CAAC;QAC7C,IAAI,OAAO,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;QACzC,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC;QACjD,IAAI,IAAI,IAAI,GAAG,EAAE;YAEf,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,4BAA4B,EAAE,GAAG,EAAE;gBACrD,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YAEH,OAAO;SACR;IACH,CAAC;IACD,QAAQ;QACN,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,EACnB,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,EACtB,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,EACnB,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACzC,CAAC;IA2KD,eAAe,CAAC,aAAqB;QAC/B,IAAI,aAAa,IAAI,mBAAmB,EAAE;YAC5C,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC7F,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SAC7F;aACI,IAAI,aAAa,IAAI,mBAAmB,EAAE;YAC7C,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC5F,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SAC9F;IACH,CAAC;IAAA,CAAC;IAGF,UAAU,CAAC,GAAQ,EAAE,SAAS,EAAE,CAAC;QAC/B,IAAG,SAAS,IAAE,aAAa,EAAC;YAC1B,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,CAAC;SAC3F;IACH,CAAC;IAED,aAAa,CAAC,KAAK;QAEjB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAC;YACpD,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,eAAe,CAAc,CAAC;YACpE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE,CAAC,CAAC;YAC3C,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;SACd;aACG;YACF,OAAO,KAAK,CAAC;SACd;IAEH,CAAC;IAID,QAAQ,CAAC,CAAC;QACR,IAAI,CAAC,UAAU,CAAC,cAAc,EAAC,yBAAyB,EAAC,CAAC,CAAC,CAAC;IAC/D,CAAC;IAGA,gBAAgB,CAAC,KAAU,EAAE,KAAa;QACxC,IAAI,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC;QAC/B,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,IAAE,IAAI,EAClH;YAAE,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACxG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SAC5H;QAEF,IAAI,YAAY,EAAE;YAEhB,IAAI,CAAC,EAAE,CAAS,CAAC;YACjB,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YACb,OAAO;YACP,wEAAwE;YACxE,wGAAwG;YACxG,oFAAoF;YACpF,iBAAiB;YACjB,2DAA2D;YAC3D,2DAA2D;YAC3D,+EAA+E;YAC/E,mCAAmC;YACnC,qIAAqI;YACrI,kBAAkB;YAClB,UAAU;YACV,aAAa;YACb,QAAQ;YACR,MAAM;YACN,cAAc;YACd,mDAAmD;YACnD,IAAI,YAAY,IAAI,QAAQ,IAAI,YAAY,IAAI,QAAQ,IAAI,YAAY,IAAI,QAAQ;gBAClF,YAAY,IAAI,eAAe,IAAI,YAAY,IAAI,eAAe,EAAE;gBACpE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACvD,IAAI,CAAC,IAAI,KAAK,EAAE;wBACd,IAAI,gBAAgB,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;wBACnE,IAAI,YAAY,IAAI,gBAAgB,EAAE;4BACpC,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;4BACxB,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,YAAY,GAAG,EAAE,CAAC;4BACrD,6HAA6H;4BAC7H,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;gCAClE,QAAQ,EAAE,IAAI;gCACd,kBAAkB,EAAE,OAAO;gCAC3B,gBAAgB,EAAE,KAAK;6BACxB,CAAC,CAAC;4BACH,OAAO;yBACR;qBACF;iBACF;aACF;SACF;IACH,CAAC;IAED,cAAc;QACZ,IAAG,IAAI,CAAC,cAAc,EAAC;YACrB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACzE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAClF,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC1G,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAClF,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SAC3G;QAED,IAAI,CAAC,aAAa,GAAC,IAAI,CAAC;QACxB,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;QACxD,IAAI,CAAC,IAAI,CAAC;QACR,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;YACtE,+IAA+I;YAC/I,IAAI,IAAI,GAAC,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,WAAW;YAC/D,IAAI,GAAG,GAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAC,YAAY,CAAC;YAClD,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,WAAW,GAAC,GAAG,CAAC;YAC3D,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,GAAC,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,WAAW;SAC5G;QACH,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC;QAC3E,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC;QAC3E,IAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,EAAC;YAClL,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE;gBAC5D,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;SACd;QAED,IAAI,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE;YACnL,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;YAC7C,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;SAC7C;QACD,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE;YACnL,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;YAC7C,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC;SAC5C;QACD,2BAA2B;QAC3B,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE;YAC/B,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC5E,IAAG,IAAI,CAAC,IAAI,IAAI,KAAK,EAAC;oBACpB,IAAI,CAAC,QAAQ,GAAE,mCAAmC;iBACrD;qBACG;oBACF,IAAI,CAAC,QAAQ,GAAE,qCAAqC;iBACrD;gBACC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,IAAI,CAAC,cAAc,GAAC,KAAK,CAAC;gBAC1B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE;oBACtC,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBAEL,mBAAmB;gBACjB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC3C,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;gBACX,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;oBACpC,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAC,CAAC,aAAa,CAAC;oBAC1B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;SACJ;aACI;YACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,qDAAqD,EACvE,GAAG,EAAE;gBACH,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;SACN;IACH,CAAC;IACD,sBAAsB,CAAC,QAAgB;QACrC,qCAAqC;QACrC,wCAAwC;QACxC,oBAAoB;QACpB,qBAAqB;QACrB,OAAO;QACP,oBAAoB;QAEpB,MAAM;QACN,MAAM;IACR,CAAC;IAID,QAAQ;QACN,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IAC1C,CAAC;IAED,WAAW,CAAC,KAAU;QACpB,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,QAAQ,CAAC,KAAU;QACjB,IAAI,CAAM,CAAC;QACX,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC;QACnB,wCAAwC;QACxC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1E,CAAC;IACD,UAAU,CAAC,KAAU;QACnB,IAAI,CAAM,CAAC;QACX,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC;QACnB,wCAAwC;QACxC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACxH,CAAC;IAED,cAAc,CAAC,KAAU;QACvB,IAAI,IAAI,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;QAC7J,KAAK,IAAI,KAAK,IAAI,IAAI,EAAE;YACtB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;gBAC7B,SAAS;YACX,IAAI,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE;gBACjE,OAAO,CAAC,eAAe;aACxB;SACF;QACD,KAAK,CAAC,cAAc,EAAE,CAAC;IACzB,CAAC;IAAA,CAAC;IAEF,YAAY,CAAC,KAAU;QACrB,IAAI,IAAI,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;QACtK,KAAK,IAAI,KAAK,IAAI,IAAI,EAAE;YACtB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;gBAC7B,SAAS;YACX,IAAI,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE;gBACjE,OAAO,CAAC,eAAe;aACxB;SACF;QACD,KAAK,CAAC,cAAc,EAAE,CAAC;IACzB,CAAC;IAAA,CAAC;IAEF,wBAAwB,CAAC,KAAU;QACjC,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,mBAAmB,CAAc,CAAC;QAC/E,IAAI,KAAK,CAAC,KAAK,IAAI,OAAO,EAAE;YAC1B,IAAI,CAAC,qBAAqB,GAAG,CAAC;YAC9B,UAAU,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,QAAQ,EAAC,yDAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,yDAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAC,yDAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC1J,UAAU,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,sBAAsB,EAAE,CAAC;SAC/D;aACI;YACH,IAAI,CAAC,qBAAqB,GAAC,CAAC;YAC5B,UAAU,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,QAAQ,EAAC,yDAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,yDAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAC,yDAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC1J,UAAU,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,sBAAsB,EAAE,CAAC;SAC/D;IACH,CAAC;IAED,yBAAyB,CAAC,KAAU;QAClC,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,mBAAmB,CAAc,CAAC;QAC/E,IAAI,KAAK,CAAC,KAAK,IAAI,OAAO,EAAE;YAC1B,IAAI,CAAC,sBAAsB,GAAG,CAAC;YAC/B,UAAU,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,QAAQ,EAAC,yDAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,yDAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAC,yDAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC1J,UAAU,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,sBAAsB,EAAE,CAAC;SAC/D;aACI;YACH,IAAI,CAAC,sBAAsB,GAAC,CAAC;YAC7B,UAAU,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,QAAQ,EAAC,yDAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,yDAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAC,yDAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC1J,UAAU,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,sBAAsB,EAAE,CAAC;SAC/D;IACH,CAAC;IAID,UAAU,CAAC,OAAO,EAAC,OAAO,EAAC,KAAK;QAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+GAAqB,EAAE;YACxD,YAAY,EAAE,IAAI;YAClB,WAAW,EAAE,IAAI;YACjB,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,EAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAC;SAC3C,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACxC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;YAC7B,IAAG,IAAI,CAAC,cAAc,IAAE,IAAI,EAAC;gBAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,eAAe,CAAc,CAAC;gBACvE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;gBACnB,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;aACzB;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,kBAAkB,CAAC,QAAQ;QACzB,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAc,CAAC;QACpE,UAAU,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAClF,UAAU,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,CAAC,sBAAsB,EAAE,CAAC;QAChE,UAAU,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACjD,UAAU,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,sBAAsB,EAAE,CAAC;QACxD,UAAU,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACxD,UAAU,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC,CAAC,sBAAsB,EAAE,CAAC;QAC/D,UAAU,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACpD,UAAU,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,sBAAsB,EAAE,CAAC;QAC3D,UAAU,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACvD,UAAU,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,sBAAsB,EAAE,CAAC;QAC9D,UAAU,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACvD,UAAU,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,sBAAsB,EAAE,CAAC;QAC9D,UAAU,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,yDAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACvG,UAAU,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,CAAC,sBAAsB,EAAE,CAAC;QAC5D,UAAU,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACrF,UAAU,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,sBAAsB,EAAE,CAAC;QAC9D,UAAU,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACzD,UAAU,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,CAAC,sBAAsB,EAAE,CAAC;QAChE,UAAU,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAClD,UAAU,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,sBAAsB,EAAE,CAAC;IAC3D,CAAC;IACD,iBAAiB,CAAC,QAAQ;QACxB,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAc,CAAC;QACvE,aAAa,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,QAAQ,EAAC,yDAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACzG,aAAa,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,CAAC,sBAAsB,EAAE,CAAC;QACnE,aAAa,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;QACvE,aAAa,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,sBAAsB,EAAE,CAAC;QAC3D,aAAa,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC9E,aAAa,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC,CAAC,sBAAsB,EAAE,CAAC;QAClE,aAAa,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC1E,aAAa,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,sBAAsB,EAAE,CAAC;QAC9D,aAAa,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACpE,aAAa,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC7E,aAAa,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,sBAAsB,EAAE,CAAC;QACjE,aAAa,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,QAAQ,EAAC,yDAAU,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,yDAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9H,aAAa,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,CAAC,sBAAsB,EAAE,CAAC;QAC/D,aAAa,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,QAAQ,EAAC,yDAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC5G,aAAa,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,sBAAsB,EAAE,CAAC;QACjE,aAAa,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC/E,aAAa,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,CAAC,sBAAsB,EAAE,CAAC;QACnE,aAAa,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;QACxE,aAAa,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,sBAAsB,EAAE,CAAC;IAC9D,CAAC;;gGA5oBU,wBAAwB;wGAAxB,wBAAwB;;kEAsCxB,iEAAkB;wEAClB,wEAAY;wEACZ,8DAAO;kEACP,gEAAQ;;;;;;;;qFA3CR,CAAC,oFAAa,CAAC;QC1B5B,yEACI;QAAA;QAAA,yEACI;QAAA;QAAA,yEACI;QAAA;QAAA,wEAA2B;QAAA,yEAAc;QAAA,4DAAK;QAClD;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,0EACI;QAAA;QAAA,0EACI;QAAA;QAAA,4EACI;QAAA;QAAA,oHAAuD;QACvD;QAAA,oHAA6D;QAC7D;QAAA,oHACI;QAEJ;QAAA,6EACI;QAAA;QAAA,qHAA+D;QAC/D;QAAA,qHACI;QAER;QAAA,qEAAe;QACf;QAAA,6EACI;QAAA;QAAA,qHAAgE;QAGhE;QAAA,sHACI;QAUR;QAAA,qEAAe;QACf;QAAA,6EACI;QAAA;QAAA,qHAAgE;QAGhE;QAAA,qHACI;QAMR;QAAA,qEAAe;QACf;QAAA,6EACI;QAAA;QAAA,qHAA+D;QAG/D;QAAA,sHACI;QAYR;QAAA,qEAAe;QACf;QAAA,6EACI;QAAA;QAAA,qHAA+D;QAG/D;QAAA,qHACI;QAKR;QAAA,qEAAe;QACf;QAAA,6EACI;QAAA;QAAA,qHAAgE;QAChE;QAAA,sHACI;QAOJ;QAAA,qHACA;QACJ;QAAA,qEAAe;QACd;QAAA,4DAAQ;QACjB;QAAA,4DAAM;QACV;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,yEAA2B;QAAA,qFAAyB;QAAA,4DAAK;QAC7D;QAAA,4DAAM;QAEN;QAAA,2EAEI;QAAA;QAAA,2EACI;QAAA;QAAA,oFAA2G;QAAhD,yJAAU,oBAAgB,mBAAmB,CAAC,IAAC;QAAC,8EAAkB;QAAA,4DAAe;QAChJ;QAAA,4DAAM;QAEN;QAAA,0EACI;QAAA;QAAA,2EACI;QAAA;QAAA,sFACI;QAAA;QAAA,6EAAW;QAAA,gHACP;QAAA,4EAA2B;QAAA,8DAAC;QAAA,4DAAO;QACvC;QAAA,4DAAY;QACZ;QAAA,6EACA;QADgB,4JAAY,oBAAgB,IAAC;QAA7C,4DACA;QAAA;QAAA,mIAAqG;QACzG;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,4EACI;QAAA;QAAA,uFACI;QAAA;QAAA,8EAAW;QAAA,uGACP;QAAA,6EAA2B;QAAA,+DAAC;QAAA,4DAAO;QACvC;QAAA,4DAAY;QACZ;QAAA,mFACI;QAAA;QAAA,uIAAgE;QAEpE;QAAA,4DAAa;QACb;QAAA,qIAAqG;QACzG;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,4EACI;QAAA;QAAA,uFACI;QAAA;QAAA,8EAAW;QAAA,4GACP;QAAA,6EAA2B;QAAA,+DAAC;QAAA,4DAAO;QACvC;QAAA,4DAAY;QACZ;QAAA,8EACA;QADgB,6JAAY,sBAAkB,IAAC;QAA/C,4DACA;QAAA;QAAA,qIAAsG;QAC1G;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,4EACI;QAAA;QAAA,uFACI;QAAA;QAAA,8EAAW;QAAA,0EAAa;QAAA,4DAAY;QACpC;QAAA,8EACJ;QADoB,6JAAY,sBAAkB,IAAC;QAA/C,4DACJ;QAAA;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,4EACI;QAAA;QAAA,uFACI;QAAA;QAAA,8EAAW;QAAA,mGACP;QAAA,6EAA2B;QAAA,+DAAC;QAAA,4DAAO;QACvC;QAAA,4DAAY;QACZ;QAAA,8EACA;QADgB,6JAAY,oBAAgB,IAAC;QAA7C,4DACA;QAAA;QAAA,qIAA8F;QAClG;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,4EACI;QAAA;QAAA,uFACI;QAAA;QAAA,8EACI;QAAA,sIACA;QAAA,6EAA2B;QAAA,+DAAC;QAAA,4DAAO;QACvC;QAAA,4DAAY;QACZ;QAAA,8EACA;QADgB,6JAAY,oBAAgB,IAAC;QAA7C,4DACA;QAAA;QAAA,qIAA+F;QACnG;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,4EACI;QAAA;QAAA,uFACI;QAAA;QAAA,8EACI;QAAA,wIACA;QAAA,6EAA2B;QAAA,+DAAC;QAAA,4DAAO;QACvC;QAAA,4DAAY;QACZ;QAAA,mFACI;QADQ,gLAAmB,oCAAgC,IAAC;QAC5D;QAAA,uIAAiE;QAErE;QAAA,4DAAa;QACb;QAAA,qIAAiG;QACrG;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,4EACI;QAAA;QAAA,uFACI;QAAA;QAAA,8EACI;QAAA,oIACA;QAAA,6EAA2B;QAAA,+DAAC;QAAA,4DAAO;QACvC;QAAA,4DAAY;QACZ;QAAA,8EAEA;QAFgB,6JAAY,0BAAsB,IAAC,+FAAU,uBAAuB,IAAjC;QAAnD,4DAEA;QAAA;QAAA,qIAAoG;QACxG;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,4EACI;QAAA;QAAA,uFACI;QAAA;QAAA,8EACI;QAAA,6IACJ;QAAA,4DAAY;QACZ;QAAA,8EACA;QADgB,6JAAY,wBAAoB,IAAC,+FAAU,uBAAuB,IAAjC;QAAjD,4DACA;QAAA;QAAA,qIAAqG;QACzG;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,4EACI;QAAA;QAAA,uFACI;QAAA;QAAA,8EACI;QAAA,8IACA;QAAA,6EAA2B;QAAA,+DAAC;QAAA,4DAAO;QACvC;QAAA,4DAAY;QACZ;QAAA,8EACA;QADgB,6JAAY,0BAAsB,IAAC,+FAAU,uBAAuB,IAAjC;QAAnD,4DACA;QAAA;QAAA,qIAAkG;QACtG;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,4EACI;QAAA;QAAA,uFACI;QAAA;QAAA,8EACI;QAAA,qIACJ;QAAA,4DAAY;QACZ;QAAA,yEACA;QAAA;QAAA,qIAAsG;QAC1G;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACV;QAAA,4DAAM;QAEV;QAAA,4DAAM;QAEN;QAAA,4EACQ;QAAA;QAAA,4EACQ;QAAA;QAAA,qFAA2G;QAAhD,0JAAU,oBAAgB,mBAAmB,CAAC,IAAC;QAAC,+EAAkB;QAAA,4DAAe;QAChJ;QAAA,4DAAM;QAEN;QAAA,2EACQ;QAAA;QAAA,4EACI;QAAA;QAAA,uFACI;QAAA;QAAA,8EAAW;QAAA,6HACP;QAAA,6EAA2B;QAAA,+DAAC;QAAA,4DAAO;QACvC;QAAA,4DAAY;QACZ;QAAA,8EACA;QADgB,6JAAY,oBAAgB,IAAC;QAA7C,4DACA;QAAA;QAAA,qIAAqG;QACzG;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,4EACI;QAAA;QAAA,uFACI;QAAA;QAAA,8EAAW;QAAA,mHACP;QAAA,6EAA2B;QAAA,+DAAC;QAAA,4DAAO;QACvC;QAAA,4DAAY;QACZ;QAAA,mFACI;QAAA;QAAA,uIAAgE;QAEpE;QAAA,4DAAa;QACb;QAAA,qIAAqG;QACzG;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,4EACI;QAAA;QAAA,uFACI;QAAA;QAAA,8EAAW;QAAA,wHACP;QAAA,6EAA2B;QAAA,+DAAC;QAAA,4DAAO;QACvC;QAAA,4DAAY;QACZ;QAAA,8EACA;QADgB,6JAAY,sBAAkB,IAAC;QAA/C,4DACA;QAAA;QAAA,qIAAsG;QAC1G;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,4EACI;QAAA;QAAA,uFACI;QAAA;QAAA,8EAAW;QAAA,0EAAa;QAAA,4DAAY;QACpC;QAAA,8EACJ;QADoB,6JAAY,sBAAkB,IAAC;QAA/C,4DACJ;QAAA;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,4EACI;QAAA;QAAA,uFACI;QAAA;QAAA,8EAAW;QAAA,+GACP;QAAA,6EAA2B;QAAA,+DAAC;QAAA,4DAAO;QACvC;QAAA,4DAAY;QACZ;QAAA,8EACA;QADgB,6JAAY,oBAAgB,IAAC;QAA7C,4DACA;QAAA;QAAA,qIAA8F;QAClG;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,4EACI;QAAA;QAAA,uFACI;QAAA;QAAA,8EACI;QAAA,8JACA;QAAA,6EAA2B;QAAA,+DAAC;QAAA,4DAAO;QACvC;QAAA,4DAAY;QACZ;QAAA,8EACA;QADgB,6JAAY,oBAAgB,IAAC;QAA7C,4DACA;QAAA;QAAA,qIAA+F;QACnG;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,4EACI;QAAA;QAAA,uFACI;QAAA;QAAA,8EACI;QAAA,gKACA;QAAA,6EAA2B;QAAA,+DAAC;QAAA,4DAAO;QACvC;QAAA,4DAAY;QACZ;QAAA,mFACI;QADQ,gLAAmB,qCAAiC,IAAC;QAC7D;QAAA,uIAAiE;QAErE;QAAA,4DAAa;QACb;QAAA,qIAAiG;QACrG;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,4EACI;QAAA;QAAA,uFACI;QAAA;QAAA,8EACI;QAAA,4JACA;QAAA,6EAA2B;QAAA,+DAAC;QAAA,4DAAO;QACvC;QAAA,4DAAY;QACZ;QAAA,8EACI;QADY,6JAAY,0BAAsB,IAAC,+FAAU,uBAAuB,IAAjC;QAAnD,4DACI;QAAA;QAAA,qIAAoG;QAC5G;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,4EACI;QAAA;QAAA,uFACI;QAAA;QAAA,8EACI;QAAA,qKACJ;QAAA,4DAAY;QACZ;QAAA,8EACA;QADgB,6JAAY,wBAAoB,IAAC,+FAAU,uBAAuB,IAAjC;QAAjD,4DACA;QAAA;QAAA,qIAAqG;QACzG;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,4EACI;QAAA;QAAA,uFACI;QAAA;QAAA,8EACI;QAAA,sKACA;QAAA,6EAA2B;QAAA,+DAAC;QAAA,4DAAO;QACvC;QAAA,4DAAY;QACZ;QAAA,8EACA;QADgB,6JAAY,0BAAsB,IAAC,+FAAU,uBAAuB,IAAjC;QAAnD,4DACA;QAAA;QAAA,qIAAkG;QACtG;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,4EACI;QAAA;QAAA,uFACI;QAAA;QAAA,8EACI;QAAA,6JACJ;QAAA,4DAAY;QACZ;QAAA,yEACA;QAAA;QAAA,qIAAsG;QAC1G;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACV;QAAA,4DAAM;QAClB;QAAA,4DAAM;QAGV;QAAA,4EACI;QAAA;QAAA,+HAAqE;QACrE;QAAA,+HACI;QAEJ;QAAA,+HACI;QAER;QAAA,4DAAM;QAEV;QAAA,4DAAO;QACX;QAAA,4DAAM;QACV;QAAA,4DAAM;QACN;QAAA,oFAEA;QAAA;QAAA,0EAAmB;QAAA,wEAAW;QAAA,4DAAI;QAClC;QAAA,4DAAc;;QAtVA,2DAA8B;QAA9B,2FAA8B;QAGP,0DAAyB;QAAzB,sFAAyB;QACnB,0DAAmC;QAAnC,iGAAmC;QAC1C,0DAAgD;QAAhD,kGAAgD;QA+F5C,2DAA8B;QAA9B,sGAA8B;QAK/B,2DAAyF;QAAzF,uJAAyF;QASpF,2DAA8B;QAA9B,qFAA8B;QAGnC,0DAAyF;QAAzF,uJAAyF;QAIxF,0DAA8B;QAA9B,sGAA8B;QAK/B,2DAA0F;QAA1F,wJAA0F;QAIzF,0DAA8B;QAA9B,sGAA8B;QAM9B,2DAA8B;QAA9B,sGAA8B;QAK/B,2DAAkF;QAAlF,gJAAkF;QAIjF,0DAA8B;QAA9B,sGAA8B;QAM/B,2DAAmF;QAAnF,iJAAmF;QAU9E,2DAA8B;QAA9B,qFAA8B;QAGnC,0DAAqF;QAArF,mJAAqF;QAIpF,0DAA8B;QAA9B,sGAA8B;QAKyE,0DAAmC;QAAnC,gGAAmC;QAE3I,0DAAwF;QAAxF,sJAAwF;QAIvF,0DAA8B;QAA9B,sGAA8B;QAK/B,0DAAyF;QAAzF,uJAAyF;QAIxF,0DAA8B;QAA9B,sGAA8B;QAM/B,2DAAsF;QAAtF,oJAAsF;QAIrF,0DAA8B;QAA9B,sGAA8B;QAK/B,0DAA0F;QAA1F,wJAA0F;QAc7E,2DAA8B;QAA9B,sGAA8B;QAK/B,2DAAyF;QAAzF,uJAAyF;QASpF,2DAA8B;QAA9B,qFAA8B;QAGnC,0DAAyF;QAAzF,uJAAyF;QAIxF,0DAA8B;QAA9B,sGAA8B;QAK/B,2DAA0F;QAA1F,wJAA0F;QAIzF,0DAA8B;QAA9B,sGAA8B;QAM9B,2DAA8B;QAA9B,sGAA8B;QAK/B,2DAAkF;QAAlF,gJAAkF;QAIjF,0DAA8B;QAA9B,sGAA8B;QAM/B,2DAAmF;QAAnF,iJAAmF;QAU9E,2DAA8B;QAA9B,qFAA8B;QAGnC,0DAAqF;QAArF,mJAAqF;QAIpF,0DAA8B;QAA9B,sGAA8B;QAK0E,0DAAoC;QAApC,iGAAoC;QACzI,0DAAwF;QAAxF,sJAAwF;QAI3F,0DAA8B;QAA9B,sGAA8B;QAK/B,0DAAyF;QAAzF,uJAAyF;QAIxF,0DAA8B;QAA9B,sGAA8B;QAM/B,2DAAsF;QAAtF,oJAAsF;QAIrF,0DAA8B;QAA9B,sGAA8B;QAK/B,0DAA0F;QAA1F,wJAA0F;QAQlG,0DAAqB;QAArB,mFAAqB;QACR,0DAAqB;QAArB,mFAAqB;QAGrB,0DAAqB;QAArB,mFAAqB;QAQnB,0DAAmB;QAAnB,4EAAmB;;6FD5ThE,wBAAwB;cANpC,uDAAS;eAAC;gBACT,QAAQ,EAAE,sBAAsB;gBAChC,WAAW,EAAE,mCAAmC;gBAChD,SAAS,EAAE,CAAC,mCAAmC,CAAC;gBAChD,SAAS,EAAE,CAAC,oFAAa,CAAC;aAC3B;6tBAsC4B,YAAY;kBAAtC,uDAAS;mBAAC,cAAc;YACM,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;YACc,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACH,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACf,KAAK;kBAAzB,uDAAS;mBAAC,gEAAQ;;;;;;;;;;;;;;AErErB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAyE;AAQN;AACnE,0GAA0G;AAClB;AAC/B;AAMK;AAEH;AACV;AAQY;AAM5B;AAMe;AAKW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IC3BvC,4FAEI;IADA,4XAA4B,UAAU,KAAE;IACxC;IAAA,+EAAkC;IAAA,gEAAK;IAAA,4DAAW;IACtD;IAAA,4DAAwB;;;IAGxB,4EAAiE;IAAA,sGACjE;IAAA,4DAAY;;;;IAUZ,4FAEI;IADA,4XAA4B,QAAQ,KAAE;IACtC;IAAA,+EAAkC;IAAA,gEAAK;IAAA,4DAAW;IACtD;IAAA,4DAAwB;;;IAGxB,4EAA+D;IAAA,8EAAmB;IAAA,4DAAY;;;;IAShG,6EAEA;IAF+D,wVAAoB,WAAW,KAAE;IAEhG;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC1B;IAAA,4DAAS;;;;IAET,iFACI;IADQ,uYAA2B,WAAW,eAAO,2VAAmC,WAAW,eAA9C;IACrD,uDACJ;IAAA,4DAAa;;;IAFgJ,iFAAoB;IAC7K,0DACJ;IADI,oIACJ;;;IAbN,yEACE;IAAA;IAAA,gEACA;IAAA;IAAA,oFACI;IAAA;IAAA,4EAAW;IAAA,kEAAO;IAAA,4DAAY;IAC9B;IAAA,uEAEA;IAAA;IAAA,qJAEA;IAEA;IAAA,8FACA;IAAA;IAAA,6JACI;;IAER;IAAA,4DAAmB;IACnB;IAAA,4DAAiB;IACrB;IAAA,4DAAM;;;;IAdc,0DAAkC;IAAlC,yGAAkC;IAGD,0DAAwB;IAAxB,iFAAwB;IACtC,0DAA8B;IAA9B,+FAA8B;IAKkD,0DAA6C;IAA7C,6JAA6C;;;;IAalK,6EAEI;IADA,gVAAoB,cAAc,KAAE;IACpC;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC9B;IAAA,4DAAS;;;;IAEL,iFAGI;IAHQ,+XAA2B,cAAc,eAAO,mVACvB,cAAc,eADS;IAGxD,uDACJ;IAAA,4DAAa;;;IAFwC,iFAAoB;IACrE,0DACJ;IADI,gIACJ;;;;IAMN,mFAAsH;IAAxG,sXAAoC;IAAoE,iGACtH;IAAA,4DAAe;;;;IA2BJ,wEAEG;IADA,8UAAwB;IACxB;IAAA,qEAAiC;IACrC;IAAA,4DAAI;;;IAUA,yEAAwF;IAAA,6DAAE;IAAA,4DAAK;;;IAC/F,yEAAwD;IAAA,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,oGAAyB;;;IAIjF,yEAAwF;IAAA,+DAAI;IAAA,4DAAK;;;IACjG,yEAAwD;IAAA,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,oGAAyB;;;IAGjF,yEAAyF;IAAA,qEAAU;IAAA,4DAAK;;;IACxG,yEAAwD;IAAA,uDAA2B;IAAA,4DAAK;;;IAAhC,0DAA2B;IAA3B,sGAA2B;;;IAGjF,yEAAyF;IAAA,kEAAO;IAAA,4DAAK;;;IACrG,yEAAwD;IAAA,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,mGAAwB;;;IAGhF,yEAAwF;IAAA,4EAAiB;IAAA,4DAAK;;;IAC9G,yEAAwD;IAAA,uDAAiC;IAAA,4DAAK;;;IAAtC,0DAAiC;IAAjC,4GAAiC;;;IAGvF,yEAAwF;IAAA,4EAAiB;IAAA,4DAAK;;;IAC9G,yEAA0D;IAAA,uDAA4B;IAAA,4DAAK;;;IAAjC,0DAA4B;IAA5B,uGAA4B;;;IAGxF,yEAAyE;IAAA,gFAAqB;IAAA,+EAA6G;IAAA,+DAAI;IAAA,4DAAW;IAAA,4DAAK;;;IAC/N,yEAA0D;IAAA,uDAC1D;IAAA,4DAAK;;;IADqD,0DAC1D;IAD0D,+HAC1D;;;IAGF,yEAAyE;IAAA,gFAAqB;IAAA,+EAA2G;IAAA,+DAAI;IAAA,4DAAW;IAAA,4DAAK;;;IAC7N,yEAA0D;IAAA,uDAC1D;IAAA,4DAAK;;;IADqD,0DAC1D;IAD0D,6HAC1D;;;IAGF,yEAAmF;IAAA,8EAAmB;IAAA,+EAAiF;IAAA,+DAAI;IAAA,4DAAW;IAAA,4DAAK;;;IAC3M,yEAAoE;IAAA,uDACpE;IAAA,4DAAK;;;IAD+D,0DACpE;IADoE,0HACpE;;;IAGI,yEAAuE;IAAA,sEAAW;IAAA,4DAAK;;;;IACvF,yEAA0D;IAAA;IAAA,+EAA4I;IAAlF,6YAAwC;IAA0C,sEAAU;IAAA,4DAAW;IAAC;IAAA,4DAAK;;;IAApE,0DAAuC;IAAvC,oGAAuC;;;IAGtM,oEAA4D;;;IAC5D,oEAAmI;;;IAAtE,6HAAgE;;;IAC7H,yEACI;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IACjD;IAAA,4DAAK;;;ADtHtB,MAAM,yCAAyC;IAkDpD,YAAoB,gCAAkE,EAC5E,mBAAwC,EACzC,UAAsB,EACrB,OAA0B,EAC1B,SAAsB,EACtB,EAAe,EAChB,MAAiB,EAChB,iBAAoC,EACpC,MAAe,EACf,QAAwB;QATd,qCAAgC,GAAhC,gCAAgC,CAAkC;QAC5E,wBAAmB,GAAnB,mBAAmB,CAAqB;QACzC,eAAU,GAAV,UAAU,CAAY;QACrB,YAAO,GAAP,OAAO,CAAmB;QAC1B,cAAS,GAAT,SAAS,CAAa;QACtB,OAAE,GAAF,EAAE,CAAa;QAChB,WAAM,GAAN,MAAM,CAAW;QAChB,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,WAAM,GAAN,MAAM,CAAS;QACf,aAAQ,GAAR,QAAQ,CAAgB;QAzDlC,oBAAe,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QAInD,iBAAY,GAAuB,EAAE,CAAC;QACtC,kBAAa,GAA6B,EAAE,CAAC;QAI7C,wBAAmB,GAAY,KAAK,CAAC;QAGrC,iBAAY,GAAW,EAAE,CAAC;QAC1B,SAAI,GAAC,CAAC,CAAC;QAEA,iBAAY,GAAY,KAAK,CAAC;QACrC,cAAS,GAAY,KAAK,CAAC;QAI3B,iBAAY,GAAa,EAAE,CAAC;QAGpB,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QACtD,qBAAgB,GAAa,CAAC,cAAc,EAAC,cAAc,EAAC,aAAa,EAAC,sBAAsB,EAAC,iBAAiB,EAAC,cAAc,EAAC,cAAc,EAAC,kBAAkB,EAAC,MAAM,CAAC,CAAC;QAC5K,iBAAY,GAAU,EAAE,CAAC;QAIzB,mBAAc,GAAiB,EAAE,CAAC;QAGlC,uBAAkB,GAAkC,OAAO,CAAC;QAC5D,qBAAgB,GAAgC,KAAK,CAAC;QAMtD,iBAAY,GAAG,KAAK,CAAC;QACrB,cAAS,GAAG,CAAC,CAAC;QACd,yBAAoB,GAAG,IAAI,CAAC;QAkB9B,IAAI,CAAC,UAAU,GAAG,IAAI,wGAAsB,EAAE,CAAC;QAC/C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;QAChD,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE;YAC9D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QACA,IAAI,CAAC,4BAA4B,GAAC,yEAAW,CAAC,4BAA4B,CAAC;QAC1E,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,4BAA4B,CAAC;QACjD,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;QAE1B,IAAI,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,IAAI,IAAI,EAAE;YACrE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CACxB,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAC1D,CAAC,QAAQ,CAAC;YAEX,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CACrB,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAC1D,CAAC,UAAU,CAAC;SAClB;QAEG,IAAI,CAAC,gCAAgC,CAAC,gCAAgC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAC1F,CAAC,QAAiB,EAAE,EAAE;YACpB,IAAI,CAAC,oBAAoB,GAAG,QAAQ,CAAC;YACrC,IAAG,IAAI,CAAC,QAAQ,KAAK,KAAK,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK;gBACrD,IAAI,CAAC,gBAAgB,GAAG,CAAC,cAAc,EAAC,cAAc,EAAC,gBAAgB,EAAC,sBAAsB,EAAC,iBAAiB,EAAC,cAAc,EAAC,cAAc,EAAC,kBAAkB,EAAC,MAAM,CAAC,CAAC;iBACvK,IAAG,IAAI,CAAC,oBAAoB,KAAK,IAAI;gBAChD,IAAI,CAAC,gBAAgB,GAAG,CAAC,cAAc,EAAC,cAAc,EAAC,aAAa,EAAC,sBAAsB,EAAC,iBAAiB,EAAC,cAAc,EAAC,cAAc,EAAC,kBAAkB,EAAC,MAAM,CAAC,CAAC;;gBAEvK,IAAI,CAAC,gBAAgB,GAAG,CAAC,cAAc,EAAC,cAAc,EAAC,sBAAsB,EAAC,iBAAiB,EAAC,cAAc,EAAC,cAAc,EAAC,kBAAkB,EAAC,MAAM,CAAC,CAAC;YACzJ,IAAI,CAAC,kBAAkB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC5D,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC;YAC7B,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACnD,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;QAC1C,CAAC,EACD,CAAC,KAAU,EAAE,EAAE,GAAI,CAAC,CACrB,CAAC;IACF,CAAC;IAEH,QAAQ;QACN,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAI,CAAC,MAAM,GAAC,MAAM,CAAC,MAAM,EAAC,CAAC,CAAC,CAAC;QAE7G,IAAI,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,IAAI,IAAI,EAAE;YACrE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CACxB,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAC1D,CAAC,QAAQ,CAAC;YAEX,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CACrB,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAC1D,CAAC,UAAU,CAAC;SAClB;QACD,IAAI,CAAC,gCAAgC,CAAC,gCAAgC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAC1F,CAAC,QAAiB,EAAE,EAAE;YACpB,IAAI,CAAC,oBAAoB,GAAG,QAAQ,CAAC;YACrC,IAAG,IAAI,CAAC,QAAQ,KAAK,KAAK,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK;gBACrD,IAAI,CAAC,gBAAgB,GAAG,CAAC,cAAc,EAAC,cAAc,EAAC,gBAAgB,EAAC,sBAAsB,EAAC,iBAAiB,EAAC,cAAc,EAAC,cAAc,EAAC,kBAAkB,EAAC,MAAM,CAAC,CAAC;iBACvK,IAAG,IAAI,CAAC,oBAAoB,KAAK,IAAI;gBAC5C,IAAI,CAAC,gBAAgB,GAAG,CAAC,cAAc,EAAC,cAAc,EAAC,aAAa,EAAC,sBAAsB,EAAC,iBAAiB,EAAC,cAAc,EAAC,cAAc,EAAC,kBAAkB,EAAC,MAAM,CAAC,CAAC;;gBAEvK,IAAI,CAAC,gBAAgB,GAAG,CAAC,cAAc,EAAC,cAAc,EAAC,sBAAsB,EAAC,iBAAiB,EAAC,cAAc,EAAC,cAAc,EAAC,kBAAkB,EAAC,MAAM,CAAC,CAAC;YACzJ,IAAI,CAAC,kBAAkB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACpE,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC;YAC7B,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACnD,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;QACtC,CAAC,EACD,CAAC,KAAU,EAAE,EAAE,GAAI,CAAC,CACrB,CAAC;QAKE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACjF,IAAI,QAAQ,GAAC,IAAI,IAAI,EAAE,CAAC;QACxB,IAAI,MAAM,GAAC,IAAI,IAAI,EAAE,CAAC;QACtB,IAAG,IAAI,CAAC,QAAQ,IAAE,IAAI,IAAG,IAAI,CAAC,MAAM,IAAE,IAAI,EAC1C;YACE,QAAQ,GAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACjC,MAAM,GAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC9B;aAED;YACE,2CAA2C;YAC3C,IAAI,IAAI,GAAC,IAAI,IAAI,EAAE,CAAC;YACpB,QAAQ,GAAC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAC,IAAI,CAAC,QAAQ,EAAE,EAAC,CAAC,CAAC,CAAC;YACxD,IAAG,QAAQ,GAAC,IAAI,CAAC,4BAA4B,EAC7C;gBACE,QAAQ,GAAC,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;aAC9C;SACF;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YAC1B,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC3C,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACvC,SAAS,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;YACrB,YAAY,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;YACxB,UAAU,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC;SAC1B,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAED,qBAAqB;QACnB,IAAI,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,IAAI,IAAI,EAAE;YACrE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CACxB,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAC1D,CAAC,QAAQ,CAAC;YAEX,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAC7B,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAC1D,CAAC,QAAQ,CAAC;SACZ;QAED,IAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAC;YACnB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;SACf;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,KAAK,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,KAAK,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,EAAE;YACxL,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,OAAO;SACR;QACD,IAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,SAAS,EAC/E;YACE,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,GAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;SAC1D;QACD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;QACnB,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,IAAI,EAAE;YACtE,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE;gBACxD,IAAI,CAAC,YAAY,GAAG,qCAAqC,CAAC;gBAC1D,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;gBACnB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,qCAAqC,EAAE,GAAG,EAAE;oBAC9D,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBAEH,OAAO,KAAK,CAAC;aACd;YACD,IAAI,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE;gBACtD,IAAI,CAAC,YAAY,GAAG,mCAAmC,CAAC;gBACxD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;gBACnB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE;oBAC5D,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,OAAO,KAAK,CAAC;aACd;YACD,IAAI,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;gBACpE,IAAI,CAAC,YAAY,GAAG,uCAAuC,CAAC;gBAC5D,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;gBACnB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;oBAChE,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,OAAO,KAAK,CAAC;aACd;YAED,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACjF,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAC7E,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC;YACjD,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;YACzC,qDAAqD;YACnD,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACzC,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YACjD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC5C;IACH,CAAC;IAED,oBAAoB,CAAC,MAA8B;QACjD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAEpB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,gCAAgC,CAAC,mCAAmC,CAAC,MAAM,CAAC,CAAC,SAAS,CACzF,CAAC,QAA4B,EAAE,EAAE;YAC/B,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;YAC7B,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACvB,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC,gBAAgB,CAAC;gBAC7C,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,CAAC;YACzC,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,kBAAkB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACpE,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC;YAC7B,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACnD,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;QAC1C,CAAC,EACD,CAAC,KAAU,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CACzC,CAAC;IACJ,CAAC;IAED,mBAAmB,CAAC,MAA8B;QAChD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,gCAAgC,CAAC,kCAAkC,CAAC,MAAM,CAAC,CAAC,SAAS,CACxF,CAAC,QAAkC,EAAE,EAAE;YACrC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;QAChC,CAAC,EACD,CAAC,KAAU,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CACzC,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,WAAW,EAAE;gBACf,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;aACnE;iBAAM;gBACL,IAAI,CAAC,kBAAkB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACpE,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC;gBAC7B,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBACnD,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;aAC1C;SACF;aAAM;YACL,IAAI,CAAC,kBAAkB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACpE,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC;YAC7B,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACnD,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SAC1C;IACH,CAAC;IAED,UAAU,CAAC,GAAQ,EAAE,SAAS;QAC5B,IAAG,SAAS,IAAE,QAAQ,EAAC;YACrB,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;YAClC,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB;QACD,IAAG,SAAS,IAAE,UAAU,EAAC;YACvB,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC;YACpC,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB;IACH,CAAC;IAED,WAAW;QACT,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;QAC7B,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,IAAI,wGAAsB,EAAE,CAAC;QAC/C,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,kBAAkB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACpE,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACzC,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACnD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;QAClD,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACjF,CAAC;IAED,SAAS;QACP,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,kBAAkB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACpE,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACzC,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACnD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;QAClD,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;IACvB,CAAC;IAEL,YAAY;QACV,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAEpB,IAAG,IAAI,CAAC,QAAQ,KAAK,KAAK,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EACrD;YACC,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC7D,IAAI,EAAE,CAAC,CAAC,YAAY;gBACpB,MAAM,EAAE,CAAC,CAAC,YAAY;gBACtB,YAAY,EAAE,CAAC,CAAC,cAAc;gBAC9B,mBAAmB,EAAE,CAAC,CAAC,oBAAoB;gBAC3C,YAAY,EAAE,CAAC,CAAC,eAAe;gBAC/B,gBAAgB,EAAG,CAAC,CAAC,YAAY;gBAClC,gBAAgB,EAAG,CAAC,CAAC,YAAY;gBACjC,cAAc,EAAG,CAAC,CAAC,WAAW;aAC9B,CAAC,CAAC,CAAC;YACJ,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,eAAe,EAAE,6BAA6B,CAAC,CAAC;SACvF;aACI,IAAG,IAAI,CAAC,oBAAoB,KAAK,IAAI,EAC1C;YACA,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC7D,IAAI,EAAE,CAAC,CAAC,YAAY;gBACpB,MAAM,EAAE,CAAC,CAAC,YAAY;gBACtB,SAAS,EAAE,CAAC,CAAC,WAAW;gBACxB,mBAAmB,EAAE,CAAC,CAAC,oBAAoB;gBAC3C,YAAY,EAAE,CAAC,CAAC,eAAe;gBAC/B,gBAAgB,EAAG,CAAC,CAAC,YAAY;gBACjC,gBAAgB,EAAG,CAAC,CAAC,YAAY;gBACjC,cAAc,EAAG,CAAC,CAAC,WAAW;aAC/B,CAAC,CAAC,CAAC;YACJ,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,eAAe,EAAE,6BAA6B,CAAC,CAAC;SACvF;aAED;YACE,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC7D,IAAI,EAAE,CAAC,CAAC,YAAY;gBACpB,MAAM,EAAE,CAAC,CAAC,YAAY;gBACtB,mBAAmB,EAAE,CAAC,CAAC,oBAAoB;gBAC3C,YAAY,EAAE,CAAC,CAAC,eAAe;gBAC/B,gBAAgB,EAAG,CAAC,CAAC,YAAY;gBAClC,gBAAgB,EAAG,CAAC,CAAC,YAAY;aACjC,CAAC,CAAC,CAAC;YACJ,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,eAAe,EAAE,6BAA6B,CAAC,CAAC;SACxF;QACA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,qBAAqB,CAAC,QAA0B;QAE/C,IAAI,CAAC,YAAY,GAAG,IAAI,wGAAsB,EAAE,CAAC;QACjD,IAAI,CAAC,YAAY,CAAC,YAAY,GAAE,QAAQ,CAAC,YAAY,CAAC;QACtD,IAAI,CAAC,YAAY,CAAC,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;QACvD,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QACtD,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAClD,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,CAAC,CAAC;QAEhC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QAExB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EACrB;YACE,mBAAmB,EAAE,OAAO;YAC5B,UAAU,EAAE,IAAI;SAChB,CAAC,CAAC,IAAI,CACN,GAAG,EAAE;YACH,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,2BAA2B,CAAC,EAAE,EAAE,WAAW,EAAE,EAAC,cAAc,EAAC,QAAQ,CAAC,YAAY,EAAC,EAAE,CAAC,CAAC;QAC/G,CAAC,CACD,CAAC;QACL,IAAI,CAAC,gCAAgC,CAAC,kCAAkC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,SAAS,CACnG,CAAC,QAAkC,EAAE,EAAE;YACrC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;YAC9B,IAAI,CAAC,UAAU,GAAG,IAAI,4GAA0B,EAAE,CAAC;YACnD,IAAI,CAAC,UAAU,CAAC,SAAS,GAAI,IAAI,CAAC,aAAa,CAAC;YAChD,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;YACrD,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,QAAQ,CAAC,eAAe,CAAC;YACtD,IAAI,CAAC,gCAAgC,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;YAC1E,2EAA2E;YAC3E,qBAAqB;YACrB,qBAAqB;YACrB,wBAAwB;YACxB,0BAA0B;YAC1B,eAAe;QACjB,CAAC,EACD,CAAC,KAAU,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CACzC,CAAC;IAEH,CAAC;IAED,WAAW,CAAC,UAAiB,EAAE,QAAe;QAC7C,IAAI,CAAC,gCAAgC,CAAC,iCAAiC,CAAC,UAAU,EAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,GAAkB,EAAE,EAAE;YAC5H,IAAI,QAAQ,GAAU,EAAE,CAAC;YACzB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACxB,6CAA6C;YAC5C,GAAG,CAAC,OAAO,CAAC,CAAC,OAAoB,EAAE,EAAE;gBACnC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5D,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,MAAM,CACjC,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC;YAElF,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAClD,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CACzC,CAAC;QACR,CAAC,EACC,CAAC,KAAU,EAAE,EAAE;YACb,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,6BAA6B,EAAE,GAAG,EAAE;gBACtD,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;gBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;aACxC,CAAC,CAAC;QACL,CAAC,CACF,CAAC;IACJ,CAAC;IAEO,cAAc,CAAC,KAAK;QAC1B,IAAI,WAAW,CAAC;QAChB,IAAI,KAAK,IAAI,KAAK,CAAC,SAAS,EAAE;YAC5B,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CACzC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CACjD,CAAC;SACH;aAAM;YACL,OAAO,IAAI,CAAC,YAAY,CAAC;SAC1B;IACH,CAAC;IAED,UAAU,CAAC,SAAS;QAElB,IAAI,SAAS,IAAI,cAAc,EAAE;YAC/B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACjD,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC;YACpC,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,CAAC,CAAC;YAC/B,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB;QAED,IAAI,SAAS,IAAI,WAAW,EAAE;YAC5B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC9C,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC;YACjC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;YACnB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YACjF,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB;IACH,CAAC;IAED,mBAAmB;QAEf,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,SAAS,EAAE,CAAC;IACrB,CAAC;IAED,iBAAiB,CAAC,QAAQ,EAAE,IAAI;QAC9B,IAAI,QAAQ,IAAI,cAAc,EAAE;YAC9B,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC;YACvC,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC;YACzD,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;YACxC,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB;aAEI,IAAI,QAAQ,IAAI,WAAW,EAAE;YAChC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC;YACpC,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC;YACnD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC;YACxC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YACjF,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB;IACD,CAAC;IAEK,gBAAgB,CAAC,KAAK;QAC5B,IAAI,WAAW,CAAC;QAChB,IAAI,KAAK,IAAI,KAAK,CAAC,YAAY,EAAE;YAC/B,WAAW,GAAG,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;YAC/C,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAC3C,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CACjD,CAAC;SACH;aAAM;YACL,OAAO,IAAI,CAAC,cAAc,CAAC;SAC5B;IACH,CAAC;IAED,aAAa,CAAC,UAAiB,EAAE,QAAe,EAAE,SAAgB,EAAE,YAAoB;QACtF,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,gCAAgC,CAAC,mCAAmC,CAAC,UAAU,EAAC,QAAQ,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC,iBAAgC,EAAE,EAAE;YACrK,iBAAiB,CAAC,OAAO,CAAC,CAAC,iBAA8B,EAAE,EAAE;gBACzD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,iBAAiB,CAAC,EAAE,EAAE,CAAC,CAAC;YAC7F,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CACrD,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAC7C,CAAC;QACJ,CAAC,CAAC;YACA,CAAC,KAAU,EAAE,EAAE;gBACb,IAAI,KAAK,CAAC,KAAK,IAAI,SAAS,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE;oBAC/C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;wBACpC,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,8BAA8B,CAAC,EAAE,kBAAkB,EAAE,OAAO;wBACzF,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;YACP,CAAC,CAAC;IAEN,CAAC;IAED,iBAAiB,CAAC,KAAK;QACrB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC;QAClC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QAChC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACjF,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;IACnD,CAAC;;kIApiBU,yCAAyC;yHAAzC,yCAAyC;wEA+CzC,wEAAY;wEACZ,8DAAO;;;;;;;QCtGpB,gFACI;QAAA;QAAA,yFACE;QAD8C,2LAAe,CAAC,IAAC,mIAAgB,CAAC,IAAjB;QAC/D;QAAA,6FACE;QAAA;QAAA,kFACI;QAAA;QAAA,2EAAU;QAAA,sEAAW;QAAA,4DAAW;QAAC,+FACrC;QAAA,4DAAkB;QACnB;QAAA,4DAA6B;QAE7B;QAAA,2EACC;QAAA;QAAA,0EACI;QAAA;QAAA,0EACE;QAAA;QAAA,iEACE;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,qEAAS;QAAA,2EAA0B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QAElE;QAAA,4EAGA;QAHwE,+SAAS,UAAW,IAAC,iKACtB,eAAW,IADW,+GAElD,uBAAuB,IAF2B;QAA7F,4DAGA;QAAA;QAAA,2KAEI;QAEJ;QAAA,uFAAsE;QACtE;QAAA,sFAAuC;QACvC;QAAA,oJAAiE;QAErE;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,iEACE;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,mEAAO;QAAA,2EAA0B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QAChE;QAAA,6EAGA;QAHsE,+SAAS,UAAS,IAAC,+JACpB,eAAW,IADS,+GAEtC,uBAAuB,IAFe;QAAzF,4DAGA;QAAA;QAAA,2KAEI;QAEJ;QAAA,uFAAoE;QACpE;QAAA,uFAAqC;QACrC;QAAA,oJAA+D;QACnE;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,yIACE;QAgBJ;QAAA,0EACE;QAAA;QAAA,iEAEF;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAY;QAAA,sEAAS;QAAA,4DAAY;QACjC;QAAA,wEAEA;QAAA;QAAA,8IAEI;QAEJ;QAAA,8FACI;QAAA;QAAA,sJAGI;;QAER;QAAA,4DAAmB;QACvB;QAAA,4DAAiB;QACf;QAAA,4DAAM;QACR;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,0JAAsH;QAEpH;QAAA,8EACI;QADqC,kKAAS,iBAAa,IAAC;QAC5D,mFAAK;QAAA,4DAAS;QAClB;QAAA,8EACI;QAD+D,kKAAS,2BAAuB,IAAC;QAChG,mFAAK;QAAA,4DAAS;QACtB;QAAA,4DAAM;QACV;QAAA,4DAAO;QACP;QAAA,4DAAsB;QACxB;QAAA,4DAAgB;QAEhB;QAAA,6EACE;QAAA;QAAA,qFACI;QAAA;QAAA,2EACI;QAAA;QAAA,4EACI;QAAA;QAAA,iFAA0C;QAAA,mEAAM;QAAA,4DAAW;QAAA,sEAAI;QAAA,iFAAmB;QAAA,4DAAI;QACvF;QAAA,yEAAM;QAAA,yDAAuB;QAAA,4DAAO;QACtC;QAAA,4DAAM;QACN;QAAA,4EACC;QAAA;QAAA,sEAAI;QAAA,iFAAmB;QAAA,4DAAI;QAC5B;QAAA,yEAAM;QAAA,yDAAoB;QAAA,4DAAO;QACnC;QAAA,4DAAM;QACN;QAAA,4EACC;QAAA;QAAA,sEAAI;QAAA,uEAAS;QAAA,4DAAI;QAClB;QAAA,yEAAM;QAAA,yDAAiB;QAAA,4DAAO;QAChC;QAAA,4DAAM;QACA;QAAA,4EACG;QAAA;QAAA,6EACG;QAAA;QAAA,sIAEG;QAEN;QAAA,4DAAO;QACV;QAAA,4DAAM;QACb;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,4EACI;QAAA;QAAA,4EACI;QAAA;QAAA,kFAEE;QAAA;QAAA,8EACE;QAAA;QAAA,wIAAwF;QACxF;QAAA,wIAAwD;QAC1D;QAAA,qEAAe;QAEjB;QAAA,8EACI;QAAA;QAAA,wIAAwF;QACxF;QAAA,wIAAwD;QAC1D;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,wIAAyF;QACzF;QAAA,wIAAwD;QAC1D;QAAA,qEAAe;QACb;QAAA,8EACE;QAAA;QAAA,wIAAyF;QACzF;QAAA,wIAAwD;QAC1D;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,wIAAwF;QACxF;QAAA,wIAAwD;QAC1D;QAAA,qEAAe;QACf;QAAA,8EACI;QAAA;QAAA,wIAAwF;QACxF;QAAA,wIAA0D;QAC9D;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,wIAAyE;QACzE;QAAA,wIAA0D;QAE9D;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,wIAAyE;QACzE;QAAA,wIAA0D;QAE9D;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,wIAAmF;QACnF;QAAA,wIAAoE;QAExE;QAAA,qEAAe;QACT;QAAA,8EACE;QAAA;QAAA,wIAAuE;QACvE;QAAA,wIAA0D;QAC9D;QAAA,qEAAe;QAEb;QAAA,wIAAuD;QACvD;QAAA,wIAA8H;QAC9H;QAAA,wIACI;QAER;QAAA,4DAAQ;QACV;QAAA,4DAAM;QACR;QAAA,4EACI;QAAA;QAAA,iFAA4F;QAChG;QAAA,4DAAM;QACV;QAAA,4DAAM;QACV;QAAA,4DAAM;QACV;QAAA,4DAAmB;QACvB;QAAA,4DAAW;QAIX;QAAA,oFAEI;QAAA;QAAA,0EAAmB;QAAA,wEAAW;QAAA,4DAAI;QACtC;QAAA,4DAAc;QAGd;;;;;QA9L4B,0DAAuB;QAAvB,oFAAuB;QAOtC,2DAAoB;QAApB,iFAAoB;QAID,0DAA8B;QAA9B,sGAA8B;QAG1B,0DAAsB;QAAtB,8EAAsB;QAGL,0DAA6B;QAA7B,2FAA6B;QAI7B,0DAAY;QAAZ,oEAAY;QAElC,0DAAqD;QAArD,mHAAqD;QAMpD,0DAA8B;QAA9B,sGAA8B;QAE1B,0DAAoB;QAApB,8EAAoB;QAGH,0DAA2B;QAA3B,yFAA2B;QAI3B,0DAAU;QAAV,oEAAU;QAEhC,0DAAmD;QAAnD,iHAAmD;QAGjE,0DAA+D;QAA/D,iIAA+D;QAoBtD,0DAA8B;QAA9B,sGAA8B;QAGpB,0DAAyB;QAAzB,gFAAyB;QAClB,0DAAiC;QAAjC,+FAAiC;QAOxD,0DAAgD;QAAhD,8JAAgD;QAQuB,0DAAoC;QAApC,oGAAoC;QAgB1G,2DAAuB;QAAvB,wFAAuB;QAIzB,0DAAoB;QAApB,qFAAoB;QAItB,0DAAiB;QAAjB,kFAAiB;QAIV,0DAA6B;QAA7B,6FAA6B;QAUQ,2DAAiC;QAAjC,8FAAiC;QA+CnD,2DAAmC;QAAnC,iGAAmC;QAC1C,0DAAgD;QAAhD,kGAAgD;QAOjD,0DAA4D;QAA5D,mJAA4D;QASrC,0DAAoB;QAApB,6EAAoB;;6FDnIjE,yCAAyC;cALrD,uDAAS;eAAC;gBACT,QAAQ,EAAE,yCAAyC;gBACnD,WAAW,EAAE,sDAAsD;gBACnE,SAAS,EAAE,CAAC,sDAAsD,CAAC;aACpE;w5BAgD4C,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACH,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AEtGtC;AAAA;AAAA;AAAA;AAAkD;;;AAO3C,MAAM,mBAAmB;IAE9B,gBAAgB,CAAC;IAEjB,QAAQ;IACR,CAAC;;sFALU,mBAAmB;mGAAnB,mBAAmB;QCNhC;QAAA,yEACI;QAAA;QAAA,2EAA+B;QACnC;QAAA,4DAAM;QACN;;6FDGa,mBAAmB;cAL/B,uDAAS;eAAC;gBACT,QAAQ,EAAE,gBAAgB;gBAC1B,WAAW,EAAE,6BAA6B;gBAC1C,SAAS,EAAE,CAAC,6BAA6B,CAAC;aAC3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AECsB;AASC;AACS;AAEe;AAGuB;AACd;AACgB;AAEQ;;;;;;;;;;;;;;;;;;;;;;;;;IChB7D,4EAA6E;IAAA,uGAC7E;IAAA,4DAAY;;;IAeZ,4EAA4E;IAAA,sGAC5E;IAAA,4DAAY;;;IAST,iFAAkE;IAAA,uDAClE;IAAA,4DAAa;;;IAD8B,mFAAsB;IAAC,0DAClE;IADkE,qHAClE;;;IAEH,4EAA0E;IAAA,mGAC1E;IAAA,4DAAY;;;;IASZ,4FAEI;IADA,2WAA4B,WAAW,KAAE;IACzC;IAAA,+EAAkC;IAAA,gEAAK;IAAA,4DAAW;IACtD;IAAA,4DAAwB;;;IAGxB,4EAA6E;IAAA,uGAC7E;IAAA,4DAAY;;;IAQT,iFAAyE;IAAA,uDACzE;IAAA,4DAAa;;;IADqC,mFAAsB;IAAC,0DACzE;IADyE,qHACzE;;;IAUA,iFAAoE;IAAA,uDACpE;IAAA,4DAAa;;;IADgC,mFAAsB;IAAC,0DACpE;IADoE,qHACpE;;;IAEH,4EAA8E;IAAA,4GAC1E;IAAA,4DAAY;;;IAOhB,4EAAmE;IAAA,+EAAoB;IAAA,4DAAY;;;IAOnG,4EAAmE;IAAA,oFAAyB;IAAA,4DAAY;;;IASxG,4EAA4E;IAAA,0GAC5E;IAAA,4DAAY;;;IACd,4EAA2E;IAAA,uGAC3E;IAAA,4DAAY;;;IASV,4EAA4E;IAAA,mHAC5E;IAAA,4DAAY;;;IAOZ,4EAAiF;IAAA,sFAA2B;IAAA,4DAAY;;;IASxH,4EAAiE;IAAA,yHAA8D;IAAA,4DAAY;;;IAO3I,4EAAsE;IAAA,iHAAsD;IAAA,4DAAY;;;IAOxI,4EAA6E;IAAA,0FAA+B;IAAA,4DAAY;;;;IAOxH,4FAEI;IADA,4WAA4B,uBAAuB,KAAE;IACrD;IAAA,+EAAkC;IAAA,gEAAK;IAAA,4DAAW;IACtD;IAAA,4DAAwB;;;IASxB,4EAA8E;IAAA,yFAA8B;IAAA,4DAAY;;;IAOxH,4EAA6E;IAAA,sFAA2B;IAAA,4DAAY;;;;IAUpH,4FAEI;IADA,4WAA4B,uBAAuB,KAAE;IACrD;IAAA,+EAAkC;IAAA,gEAAK;IAAA,4DAAW;IACtD;IAAA,4DAAwB;;;IAGxB,4EAAyF;IAAA,kHACzF;IAAA,4DAAY;;;IAOZ,4EAAmE;IAAA,gFAAqB;IAAA,4DAAY;;;IAShG,4EAAkN;IAAA,+EAAoB;IAAA,4DAAY;;;IAClP,4EAAmN;IAAA,wHAA6D;IAAA,4DAAY;;;;IAShS,4FAEI;IADA,4WAA4B,eAAe,KAAE;IAC7C;IAAA,+EAAkC;IAAA,gEAAK;IAAA,4DAAW;IACtD;IAAA,4DAAwB;;;IAGxB,4EAAiF;IAAA,yGACjF;IAAA,4DAAY;;;IAST,iFAAmE;IAAA,uDACnE;IAAA,4DAAa;;;IADkC,gFAAmB;IAAC,0DACnE;IADmE,gHACnE;;;IACA,4EAA6E;IAAA,0GAC7E;IAAA,4DAAY;;;;IAWf,6EAEA;IADA,uUAAqB,aAAa,aAAU;IAC5C;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC1B;IAAA,4DAAS;;;;IAEN,iFAEA;IAFY,gYAAqC;IAEjD,uDACA;IAAA,4DAAa;;;IAFb,2FAA8B;IAC9B,0DACA;IADA,oJACA;;;IAEH,4EACG;IAAA,iIACH;IAAA,4DAAY;;;;IAST,iFAAwJ;IAA3I,4XAAiC;IAA0G,uDACxJ;IAAA,4DAAa;;;IADkH,qFAAwB;IAAC,0DACxJ;IADwJ,qHACxJ;;;IACA,4EAA6E;IAAA,qGAC7E;IAAA,4DAAY;;;;IAUd,6EAEA;IADA,uUAAqB,YAAY,aAAU;IAC3C;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC1B;IAAA,4DAAS;;;IAEN,iFAEA;IAAA,uDACA;IAAA,4DAAa;;;IAFb,2EAAc;IACd,0DACA;IADA,4IACA;;;;IAUD,iFAAwK;IAA5J,qYAA0C;IAAkH,uDACxK;IAAA,4DAAa;;;IAD6H,0FAA6B;IAAC,0DACxK;IADwK,mHACxK;;;IACA,4EAAkF;IAAA,iHAClF;IAAA,4DAAY;;;;IAUZ,iFAAgH;IAArC,8XAAmC;IAAE,uDAChH;IAAA,4DAAa;;;IADyC,iFAAoB;IAAsC,0DAChH;IADgH,iHAChH;;;IACA,4EAAgF;IAAA,0GAChF;IAAA,4DAAY;;;IAUZ,iFAA+D;IAAA,uDAC/D;IAAA,4DAAa;;;IAD6B,iFAAoB;IAAC,0DAC/D;IAD+D,mHAC/D;;;IAEH,4EAAoF;IAAA,kHAChF;IAAA,4DAAY;;;IAOb,iFAAmE;IAAA,uDACnE;IAAA,4DAAa;;;IADgC,kFAAqB;IAAC,0DACnE;IADmE,oHACnE;;;;IAQH,4FAEI;IADA,4WAA4B,cAAc,KAAE;IAC5C;IAAA,+EAAkC;IAAA,gEAAK;IAAA,4DAAW;IACtD;IAAA,4DAAwB;;;IAGxB,4EAAgF;IAAA,2GAChF;IAAA,4DAAY;;;;IAOZ,4FAEI;IADA,4WAA4B,mBAAmB,KAAE;IACjD;IAAA,+EAAkC;IAAA,gEAAK;IAAA,4DAAW;IACtD;IAAA,4DAAwB;;;IAGxB,4EAAqF;IAAA,+GACrF;IAAA,4DAAY;;;IAST,iFAA+E;IAAA,uDAC/E;IAAA,4DAAa;;;IADoC,0FAA6B;IAAC,0DAC/E;IAD+E,mIAC/E;;;IAEH,4EAAgF;IAAA,uGAChF;IAAA,4DAAY;;;IAVlB,yEACG;IAAA;IAAA,oFACG;IAAA;IAAA,4EAAW;IAAA,8FACR;IAAA,0EAA0B;IAAA,4DAAC;IAAA,4DAAO;IACrC;IAAA,4DAAY;IACZ;IAAA,kFACG;IAAA;IAAA,6IAA+E;IAElF;IAAA,4DAAa;IACb;IAAA,0IAAgF;IAEnF;IAAA,4DAAiB;IACpB;IAAA,4DAAM;;;IAXa,0DAA+B;IAA/B,2GAA+B;IAID,0DAAiC;IAAjC,kGAAiC;IAC7D,0DAAoC;IAApC,4FAAoC;IAGxC,0DAAoE;IAApE,sIAAoE;;;;IAqGrF,6EAA6G;IAAlC,mVAAiC;IAAC,+DAAI;IAAA,4DAAS;;;;IAC1H,6EAA+G;IAApC,qVAAmC;IAAC,iEAAM;IAAA,4DAAS;;ADpbrI,MAAM,wBAAwB;IAiEnC,YACU,EAAe,EACf,QAAyB,EACzB,cAA6B,EAC7B,QAAwB,EACxB,SAAsB,EACtB,iBAAoC,EACpC,MAAc,EACd,eAA4B,EAC5B,OAA0B;QAR1B,OAAE,GAAF,EAAE,CAAa;QACf,aAAQ,GAAR,QAAQ,CAAiB;QACzB,mBAAc,GAAd,cAAc,CAAe;QAC7B,aAAQ,GAAR,QAAQ,CAAgB;QACxB,cAAS,GAAT,SAAS,CAAa;QACtB,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,WAAM,GAAN,MAAM,CAAQ;QACd,oBAAe,GAAf,eAAe,CAAa;QAC5B,YAAO,GAAP,OAAO,CAAmB;QAvEpC,qBAAgB,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QAGpD,sBAAiB,GAAU,EAAE,CAAC;QAI9B,iCAA4B,GAAY,KAAK,CAAC;QAC9C,gCAA2B,GAAY,KAAK,CAAC;QAC7C,+BAA0B,GAAY,KAAK,CAAC;QAGnC,SAAI,GAAW,KAAK,CAAC;QAY9B,yBAAoB,GAAU,EAAE,CAAC;QAKjC,aAAQ,GAAW,SAAS,CAAC;QAC7B,cAAS,GAAW,YAAY,CAAC;QACjC,cAAS,GAAW,WAAW,CAAC;QAChC,cAAS,GAAW,QAAQ,CAAC;QAC7B,cAAS,GAAW,eAAe,CAAC;QACpC,eAAU,GAAY,KAAK,CAAC;QAC5B,eAAU,GAAY,KAAK,CAAC;QAC5B,iBAAY,GAAY,KAAK,CAAC;QACvB,gBAAW,GAAU,EAAE,CAAC;QAI/B,wBAAmB,GAAU,EAAE,CAAC;QAKhC,cAAS,GAAU,EAAE,CAAC;QAItB,UAAK,GAAG,IAAI,IAAI,EAAE,CAAC;QAGT,oBAAe,GAAG,IAAI,0DAAY,EAAE,CAAC;QAO/C,aAAQ,GAAU,KAAK,CAAC;QAi1CxB,gBAAW,GAAG,UAAU,QAAa,EAAE,MAAW;YAChD,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC5D,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QAv0CA,IAAI,CAAC,UAAU,GAAG,IAAI,iEAAS,EAAE,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,wBAAwB,CAAC;QAGxC,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC7C,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,WAAW,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,WAAW,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAGlD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAG3C,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;QACnB,IAAI,CAAC,IAAI,IAAI,MAAM;YACjB,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YAC5B,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,CAAC;QAChC,IAAI,CAAC,yBAAyB,EAAE,CAAC;QAEjC,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YACzD,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC;YACpC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;QAC7C,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;YACxC,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;YACxC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,sEAAc,EAAE,CAAC;QACtC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACnC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAClC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QACtB,IAAI,CAAC,cAAc,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;QACvE,IAAI,CAAC,cAAc,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,QAAQ,EAAE,CAAC;QAGhB,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAE9B,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,IAAI,CACtE,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CACpC,CAAC;IACJ,CAAC;IAED,yBAAyB;QACvB,IAAI,CAAC,mBAAmB,GAAG,IAAI,wDAAS,CAAC;YACvC,EAAE,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACzB,EAAE,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACzB,KAAK,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAC5B,OAAO,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAC9B,cAAc,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACrC,WAAW,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACzD,YAAY,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACnC,SAAS,EAAE,IAAI,0DAAW,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE;gBACvE,yDAAU,CAAC,QAAQ;aACpB,CAAC;YACF,SAAS,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAChC,QAAQ,EAAE,IAAI,CAAC,kBAAkB,EAAE;YACnC,cAAc,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;gBAC5B,IAAI,CAAC,oBAAoB,EAAE;gBAC3B,IAAI,CAAC,kBAAkB,EAAE;aAC1B,CAAC;YACF,aAAa,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACpC,iBAAiB,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACxC,iBAAiB,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACxC,UAAU,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACjC,YAAY,EAAE,IAAI,0DAAW,CAC3B,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,EAC5C,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,yDAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,yDAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAC3G;YACD,SAAS,EAAE,IAAI,0DAAW,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE;gBACvE,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,OAAO,CAAC,aAAa,CAAC;aACvD,CAAC;YACF,UAAU,EAAE,IAAI,0DAAW,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC,yDAAU,CAAC,OAAO,CAAC,aAAa,CAAC;aAC3G,CAAC;YACF,8EAA8E;YAC9E,QAAQ,EAAE,IAAI,0DAAW,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE;gBACtE,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,OAAO,CAAC,aAAa,CAAC;aACvD,CAAC;YACF,UAAU,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACjC,YAAY,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACnC,MAAM,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACpD,OAAO,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAC9B,aAAa,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACpC,aAAa,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACpC,aAAa,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACpC,WAAW,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,OAAO,CAAC,4EAA4E,CAAC,EAAE,yDAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;YAChK,QAAQ,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC;YAC9F,gBAAgB,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACvC,oBAAoB,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,KAAK,EAAE,yDAAU,CAAC,OAAO,CAAC,yJAAyJ,CAAC,CAAC,CAAC;YACnQ,WAAW,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAClC,QAAQ,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAC/B,gBAAgB,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACvC,aAAa,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACpC,UAAU,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACxD,WAAW,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;YACxE,SAAS,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,EAAC,yDAAU,CAAC,OAAO,CAAC,4BAA4B,CAAC,EAAE,yDAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;YAClI,cAAc,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,yDAAU,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC,CAAC;YACjI,qBAAqB,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;YAClF,qBAAqB,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAC5C,gBAAgB,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC9D,cAAc,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACrC,YAAY,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC1D,mBAAmB,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAC1C,aAAa,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACpC,iBAAiB,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACxC,QAAQ,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAC/B,gBAAgB,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACvC,iBAAiB,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACxC,iBAAiB,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACxC,WAAW,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAClC,UAAU,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACjC,eAAe,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACtC,aAAa,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACpC,cAAc,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC5D,MAAM,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAC7B,eAAe,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACtC,SAAS,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAChC,SAAS,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAChC,IAAI,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAC3B,SAAS,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACvD,SAAS,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5D,YAAY,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/D,QAAQ,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;YAC3D,OAAO,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAC9B,mBAAmB,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAC1C,WAAW,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,yDAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7F,eAAe,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACtC,8BAA8B,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACrD,WAAW,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAClC,WAAW,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAClC,YAAY,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACnC,UAAU,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACjC,QAAQ,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAC/B,SAAS,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAChC,UAAU,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACjC,SAAS,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACvD,aAAa,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC3D,YAAY,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACnC,qBAAqB,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACnE,UAAU,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;SAClC,CAAC,CAAC;IACL,CAAC;IAED,UAAU,CAAC,GAAQ,EAAE,SAAS;QAC5B,IAAI,SAAS,IAAI,mBAAmB,EAAE;YACpC,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,CAAC;SAC3D;QACD,IAAI,SAAS,IAAI,cAAc,EAAE;YAC/B,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,KAAK,EAAE,CAAC;SACtD;QACD,IAAI,SAAS,IAAI,eAAe,EAAE;YAChC,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,KAAK,EAAE,CAAC;SACvD;QACD,IAAI,SAAS,IAAI,uBAAuB,EAAE;YACxC,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,KAAK,EAAE,CAAC;SAC/D;QACD,IAAI,SAAS,IAAI,uBAAuB,EAAE;YACxC,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,KAAK,EAAE,CAAC;SAC/D;QACD,IAAI,SAAS,IAAI,WAAW,EAAE;YAC5B,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,CAAC;SACnD;IACH,CAAC;IACD,oBAAoB;QAClB,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACnB,EAAE,EAAE,EAAE;YACN,WAAW,EAAE,CAAC,gBAAgB,CAAC;YAC/B,cAAc,EAAE,EAAE;YAClB,iBAAiB,EAAE,EAAE;YACrB,eAAe,EAAE,EAAE;YACnB,aAAa,EAAE,EAAE;YACjB,eAAe,EAAE,EAAE;YACnB,eAAe,EAAE,EAAE;YACnB,gBAAgB,EAAE,EAAE;YACpB,mBAAmB,EAAE,EAAE;YACvB,iBAAiB,EAAE,EAAE;YACrB,eAAe,EAAE,EAAE;YACnB,iBAAiB,EAAE,EAAE;YACrB,iBAAiB,EAAE,EAAE;SACtB,CAAC,CAAC;IACL,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACnB,cAAc,EAAE,EAAE;YAClB,iBAAiB,EAAE,EAAE;YACrB,eAAe,EAAE,EAAE;YACnB,aAAa,EAAE,EAAE;YACjB,eAAe,EAAE,EAAE;YACnB,eAAe,EAAE,EAAE;YACnB,gBAAgB,EAAE,EAAE;YACpB,mBAAmB,EAAE,EAAE;YACvB,iBAAiB,EAAE,EAAE;YACrB,eAAe,EAAE,EAAE;YACnB,iBAAiB,EAAE,EAAE;YACrB,iBAAiB,EAAE,EAAE;YACrB,OAAO,EAAE,IAAI,CAAC,oBAAoB;SACnC,CAAC,CAAC;IACL,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACnB,EAAE,EAAE,EAAE;YACN,WAAW,EAAE,CAAC,kBAAkB,CAAC;YACjC,cAAc,EAAE,EAAE;YAClB,iBAAiB,EAAE,EAAE;YACrB,eAAe,EAAE,EAAE;YACnB,aAAa,EAAE,EAAE;YACjB,eAAe,EAAE,EAAE;YACnB,eAAe,EAAE,EAAE;YACnB,gBAAgB,EAAE,EAAE;YACpB,mBAAmB,EAAE,EAAE;YACvB,iBAAiB,EAAE,EAAE;YACrB,eAAe,EAAE,EAAE;YACnB,iBAAiB,EAAE,EAAE;YACrB,iBAAiB,EAAE,EAAE;SACtB,CAAC,CAAC;IACL,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,eAAe;aACjB,iBAAiB,EAAE;aACnB,SAAS,CAAC,CAAC,GAAwB,EAAE,EAAE;YACtC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;gBAC7B,KAAK,EAAE,mBAAmB;gBAC1B,KAAK,EAAE,CAAC,CAAC;aACV,CAAC,CAAC;YACH,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBACtB,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;oBAC7B,KAAK,EAAE,OAAO,CAAC,WAAW;oBAC1B,KAAK,EAAE,OAAO,CAAC,YAAY;iBAC5B,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,WAAW;QACjB,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC,SAAS,CAC5C,CAAC,GAAkB,EAAE,EAAE;YACrB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC;YACjC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACjE,GAAG,CAAC,OAAO,CAAC,CAAC,OAAoB,EAAE,EAAE;gBACnC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;oBACpB,KAAK,EAAE,OAAO,CAAC,WAAW;oBAC1B,KAAK,EAAE,OAAO,CAAC,SAAS;iBACzB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;YACb,6DAA6D;YAC7D,oBAAoB;YACpB,iCAAiC;YACjC,6BAA6B;YAC7B,MAAM;QACR,CAAC,CACF,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,KAAU;QACpB,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,aAAa,CAAC,SAAiB;QAC7B,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YACtE,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY,CAAC,SAAiB;QAC5B,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YACtE,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QAC1B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,SAAS,CAAC,SAAiB;QACzB,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YACtE,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,gBAAgB,CAAC,SAAiB;QAChC,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YACtE,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,qBAAqB,CAAC,WAAW;QAC/B,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QACpF,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACrD,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;QACnC,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE;YACtD,IAAI,CAAC,iBAAiB;iBACnB,qBAAqB,CAAC,WAAW,CAAC,aAAa,CAAC;iBAChD,SAAS,CACR,CAAC,aAAoB,EAAE,EAAE;gBACvB,uDAAuD;gBACvD,mDAAmD;gBACnD,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAChD,aAAa,CAAC,OAAO,CACtB,CAAC;gBACF,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;gBAC9E,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAClD,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;gBACb,IAAI,KAAK,CAAC,KAAK,IAAI,SAAS,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE;oBAC/C,IAAI,CAAC,cAAc;yBAChB,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC;yBACzC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;YACrC,CAAC,CACF,CAAC;SACL;aAAM;YACL,kCAAkC;YAClC,kCAAkC;YAClC,8DAA8D;SAC/D;IACH,CAAC;IAED,0BAA0B;QAExB,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YACvE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YACnB,IAAI,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,WAAW,KAAK,IAAI;gBAC7C,GAAG,CAAC,WAAW,GAAG,mCAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACjE,IAAI,GAAG,CAAC,QAAQ;gBACd,GAAG,CAAC,QAAQ,GAAG,mCAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAC3D,IAAI,GAAG,CAAC,gBAAgB;gBACtB,GAAG,CAAC,gBAAgB,GAAG,mCAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,MAAM,CACxD,YAAY,CACb,CAAC;YACJ,IAAI,GAAG,CAAC,iBAAiB;gBACvB,GAAG,CAAC,iBAAiB,GAAG,mCAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAC1D,YAAY,CACb,CAAC;YACJ,IAAI,GAAG,CAAC,mBAAmB;gBACzB,GAAG,CAAC,mBAAmB,GAAG,mCAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAC9D,YAAY,CACb,CAAC;YAEJ,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;YAEtB,IAAI,CAAC,UAAU,CAAC,UAAU,GAAC;gBACzB,KAAK,EAAC,GAAG,CAAC,UAAU;gBACpB,KAAK,EAAC,GAAG,CAAC,YAAY;aAEvB;YACD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YACtD,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAEtD,gDAAgD;YAChD,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE;gBAChE,IAAI,CAAC,WAAW,GAAG,IAAI,mFAAW,EAAE,CAAC;gBACrC,IAAI,CAAC,WAAW,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;gBAC/D,IAAI,CAAC,WAAW,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;gBAE/D,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aAC9C;YAED,cAAc;YACd,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,GAAG,CAAC,WAAW,CAAC;YAE5C,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,GAAG,CAAC,QAAQ,CAAC;YAC7C,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,GAAG,CAAC,gBAAgB,CAAC;YACpD,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,GAAG,CAAC,iBAAiB,CAAC;YAC1D,IAAI,CAAC,UAAU,CAAC,qBAAqB,GAAG,GAAG,CAAC,mBAAmB,CAAC;YAChE,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;YAE9C,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YAChD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YAE3C,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,IAAI,CAAC;gBAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAE9D,IACE,IAAI,CAAC,UAAU,CAAC,YAAY,IAAI,IAAI;gBACpC,IAAI,CAAC,UAAU,CAAC,YAAY,IAAI,EAAE,EAClC;gBACA,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,EAAE,CAAC;aACnC;YAED,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CACrD,IAAI,CAAC,UAAU,CAAC,YAAY,CAC7B,CAAC;YAEF,IACE,IAAI,CAAC,UAAU,CAAC,cAAc,IAAI,IAAI;gBACtC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,IAAI,CAAC,EAC1C;gBACA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;gBACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC9D,IACE,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,gBAAgB,EACjE;wBACA,IAAI,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAC5D,CAAC,CACF,CAAC,cAAc,CAAC;wBACjB,IAAI,CAAC,SAAS,CAAC,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAC/D,CAAC,CACF,CAAC,iBAAiB,CAAC;wBACpB,IAAI,CAAC,SAAS,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAC7D,CAAC,CACF,CAAC,eAAe,CAAC;wBAClB,IAAI,CAAC,SAAS,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAC7D,CAAC,CACF,CAAC,eAAe,CAAC;wBAClB,IAAI,CAAC,SAAS,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAC7D,CAAC,CACF,CAAC,eAAe,CAAC;wBAClB,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAC3D,CAAC,CACF,CAAC,aAAa,CAAC;qBACjB;oBACD,IACE,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,kBAAkB,EACnE;wBACA,IAAI,CAAC,SAAS,CAAC,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAC9D,CAAC,CACF,CAAC,gBAAgB,CAAC;wBACnB,IAAI,CAAC,SAAS,CAAC,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CACjE,CAAC,CACF,CAAC,mBAAmB,CAAC;wBACtB,IAAI,CAAC,SAAS,CAAC,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAC/D,CAAC,CACF,CAAC,iBAAiB,CAAC;wBACpB,IAAI,CAAC,SAAS,CAAC,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAC/D,CAAC,CACF,CAAC,iBAAiB,CAAC;wBACpB,IAAI,CAAC,SAAS,CAAC,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAC/D,CAAC,CACF,CAAC,iBAAiB,CAAC;wBACpB,IAAI,CAAC,SAAS,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAC7D,CAAC,CACF,CAAC,eAAe,CAAC;qBACnB;iBACF;gBACD,IACE,IAAI,CAAC,SAAS,CAAC,cAAc,IAAI,IAAI;oBACrC,IAAI,CAAC,SAAS,CAAC,iBAAiB,IAAI,IAAI;oBACxC,IAAI,CAAC,SAAS,CAAC,eAAe,IAAI,IAAI;oBACtC,IAAI,CAAC,SAAS,CAAC,eAAe,IAAI,IAAI;oBACtC,IAAI,CAAC,SAAS,CAAC,eAAe,IAAI,IAAI;oBACtC,IAAI,CAAC,SAAS,CAAC,aAAa,IAAI,IAAI,EACpC;oBACA,IACE,IAAI,CAAC,SAAS,CAAC,cAAc,IAAI,IAAI,CAAC,SAAS,CAAC,gBAAgB;wBAChE,IAAI,CAAC,SAAS,CAAC,iBAAiB;4BAChC,IAAI,CAAC,SAAS,CAAC,mBAAmB;wBAClC,IAAI,CAAC,SAAS,CAAC,eAAe;4BAC9B,IAAI,CAAC,SAAS,CAAC,iBAAiB;wBAChC,IAAI,CAAC,SAAS,CAAC,eAAe;4BAC9B,IAAI,CAAC,SAAS,CAAC,iBAAiB;wBAChC,IAAI,CAAC,SAAS,CAAC,eAAe;4BAC9B,IAAI,CAAC,SAAS,CAAC,iBAAiB;wBAChC,IAAI,CAAC,SAAS,CAAC,aAAa,IAAI,IAAI,CAAC,SAAS,CAAC,eAAe,EAC9D;wBACA,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;qBAC/B;iBACF;aACF;YACD,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC/B,CAAC,EAAC,CAAC,KAAK,EAAC,EAAE;YACT,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,kBAAkB;QAChB,IAAI,aAAmB,CAAC;QACxB,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;YAC1D,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YACnB,IAAI,GAAG,CAAC,aAAa,EAAE;gBACrB,GAAG,CAAC,aAAa,GAAG,mCAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;aACpE;YACD,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;YACtB,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,CAAC;YAClD,IAAI,CAAC,UAAU,CAAC,gBAAgB,GAAG,GAAG,CAAC,gBAAgB,CAAC;YACxD,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;YAC1C,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC;YAChD,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,GAAG,CAAC,aAAa,CAAC;YAE9C,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE;gBAChE,IAAI,CAAC,WAAW,GAAG,IAAI,mFAAW,EAAE,CAAC;gBACrC,IAAI,CAAC,WAAW,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;gBAC/D,IAAI,CAAC,WAAW,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;aAChE;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,IAAI,CAAC;gBAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAE9D,IACE,IAAI,CAAC,UAAU,CAAC,YAAY,IAAI,IAAI;gBACpC,IAAI,CAAC,UAAU,CAAC,YAAY,IAAI,EAAE,EAClC;gBACA,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,EAAE,CAAC;aACnC;YACD,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBACnC,IAAI,OAAO,CAAC,OAAO,IAAI,GAAG,CAAC,cAAc;oBACvC,IAAI,CAAC,UAAU,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;YAC5D,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC/B,CAAC,EAAC,CAAC,KAAK,EAAC,EAAE;YACT,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;IACD,mBAAmB;QACjB,IAAI,CAAC,iBAAiB;aACnB,6BAA6B,EAAE;aAC/B,SAAS,CAAC,CAAC,GAAkB,EAAE,EAAE;YAChC,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;YACpB,IAAI,GAAG,EAAE;gBACP,IAAI,IAAI,CAAC,IAAI,IAAI,KAAK,EAAE;oBACtB,IAAI,CAAC,kBAAkB,EAAE,CAAC;iBAC3B;qBAAM;oBACL,IAAI,CAAC,0BAA0B,EAAE,CAAC;iBACnC;aACF;QACH,CAAC,CAAC,CAAC;IACP,CAAC;IAED,aAAa;QACX,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YACnD,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,WAAW;QACT,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YACjD,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,eAAe;QACb,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YACrD,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY,CAAC,QAAgB;QAC3B,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YACrE,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QAC1B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iBAAiB;QACf,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE;YACtD,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;SAChE;aAAM;YACL,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,CAAC,CAAC;YAClC,8BAA8B;SAC/B;IACH,CAAC;IAED,iBAAiB;QACf,IAAI,KAAK,GAAQ,IAAI,IAAI,EAAE,CAAC;QAC5B,IAAI,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAC9B,IAAI,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;QACzB,IAAI,EAAE,GAAG,EAAE,EAAE;YACX,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC;SACf;QAED,IAAI,EAAE,GAAG,EAAE,EAAE;YACX,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC;SACf;QACD,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC;QAElD,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,SAAS,EAAE;YAC7C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,4BAA4B,EAAE,EAAE,EAAE;gBACpD,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;SACd;QAED,IACE,mCAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,IAAI,IAAI,EAAE,CAAC,EAC1E;YACA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,yCAAyC,EAAE,EAAE,EAAE;gBACjE,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;SACd;QAED,IAAI,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,YAAY,EAAE;YAC/C,IAAI,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;gBACxE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kCAAkC,EAAE,EAAE,EAAE;oBAC1D,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,OAAO,KAAK,CAAC;aACd;SACF;QAED,IACE,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,aAAa,IAAI,EAAE;YAClD,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,aAAa,IAAI,SAAS,EACzD;YACA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,2BAA2B,EAAE,EAAE,EAAE;gBACnD,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;SACd;QACD,IACE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,SAAS,CAAC;YACpD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,aAAa,CAAC,EACxD;YACA,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,4DAA4D,EAC5D,EAAE,EACF;gBACE,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CACF,CAAC;YACF,OAAO,KAAK,CAAC;SACd;QAED,IACE,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,qBAAqB,IAAI,EAAE;YAC1D,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,qBAAqB,IAAI,SAAS,EACjE;YACA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oCAAoC,EAAE,EAAE,EAAE;gBAC5D,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;SACd;QAED,IAAI,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,mBAAmB,GAAG,KAAK,CAAC,QAAQ,EAAE,EAAE;YACzE,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,8DAA8D,EAC9D,EAAE,EACF;gBACE,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CACF,CAAC;YACF,OAAO,KAAK,CAAC;SACd;QAED,IACE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,qBAAqB,CAAC;YAChE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,SAAS,CAAC,EACpD;YACA,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,0DAA0D,EAC1D,EAAE,EACF;gBACE,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CACF,CAAC;YACF,OAAO,KAAK,CAAC;SACd;QACD,IACE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,qBAAqB,CAAC;YAChE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,aAAa,CAAC,EACxD;YACA,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,gEAAgE,EAChE,EAAE,EACF;gBACE,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CACF,CAAC;YACF,OAAO,KAAK,CAAC;SACd;QAED,IAAI,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,qBAAqB,EAAE;YACxD,IACE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,WAAW,CAAC;gBACtD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,qBAAqB,CAAC,EAChE;gBACA,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,mEAAmE,EACnE,EAAE,EACF;oBACE,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CACF,CAAC;gBACF,OAAO,KAAK,CAAC;aACd;SACF;QAED,IAAI,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,QAAQ,EAAE;YAC3C,IAAI,CAAC,GAAG,CAAC,EACP,CAAC,GAAG,CAAC,CAAC;YACR,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACnE,IAAI,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;oBAC5D,CAAC,EAAE,CAAC;iBACL;aACF;YACD,IAAI,CAAC,IAAI,CAAC,EAAE;gBACV,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,8BAA8B,EAAE,EAAE,EAAE;oBACtD,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,OAAO,KAAK,CAAC;aACd;SACF;QACD,IAAI,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,YAAY,EAAE;YAC/C,IACE,CAAC,IAAI,CAAC,WAAW,CACf,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,aAAa,EAC5C,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,YAAY,CAC5C,EACD;gBACA,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,oDAAoD,EACpD,EAAE,EACF;oBACE,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CACF,CAAC;gBACF,OAAO,KAAK,CAAC;aACd;YAED,SAAS;YACT,gEAAgE;YAChE,mEAAmE;YACnE,MAAM;YACN,KAAK;YACL,yBAAyB;YACzB,4DAA4D;YAC5D,UAAU;YACV,QAAQ;YACR,wBAAwB;YACxB,qCAAqC;YACrC,iCAAiC;YACjC,QAAQ;YACR,OAAO;YACP,kBAAkB;YAClB,IAAI;SACL;QAED,IACE,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,SAAS,IAAI,UAAU;YACtD,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,SAAS,IAAI,SAAS,EACrD;YACA,IACE,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,YAAY,IAAI,EAAE;gBACjD,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,YAAY,IAAI,SAAS;gBACxD,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,iBAAiB,IAAI,EAAE;gBACtD,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,iBAAiB,IAAI,SAAS,EAC7D;gBACA,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,oDAAoD,EACpD,EAAE,EACF;oBACE,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CACF,CAAC;gBACF,OAAO,KAAK,CAAC;aACd;SAEF;QAED,IACE,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,YAAY;YAC3C,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,iBAAiB,EAChD;YACA,IACE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,YAAY,EAC3D,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,iBAAiB,CAEjD,EACD;gBACA,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,0DAA0D,EAC1D,EAAE,EACF;oBACE,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CACF,CAAC;gBACF,OAAO,KAAK,CAAC;aACd;YACD,IACE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,YAAY,CAAC;gBACvD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAC5D;gBACA,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,0DAA0D,EAC1D,EAAE,EACF;oBACE,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CACF,CAAC;gBACF,OAAO,KAAK,CAAC;aACd;SACF;QAED,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,WAAW,EAAE;YAC/C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,2BAA2B,EAAE,EAAE,EAAE;gBACnD,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;SACd;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,qBAAqB;QAEnB,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;QAC5D,IAAG,IAAI,CAAC,qBAAqB,CAAC,UAAU,IAAE,IAAI,EAC9C;YACA,IAAI,CAAC,qBAAqB,CAAC,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,KAAK;SAClF;aACG;YACF,IAAI,CAAC,qBAAqB,CAAC,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC,UAAU;SAC9E;QACD,IAAI,CAAC,qBAAqB,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACnD,IAAI,CAAC,qBAAqB,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACnD,IAAI,CAAC,qBAAqB,CAAC,UAAU,GAAG,CAAC,CAAC;QAC1C,IAAI,CAAC,qBAAqB,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;QACrD,IAAI,CAAC,qBAAqB,CAAC,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC;QAC9E,IAAI,CAAC,qBAAqB,CAAC,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC;QAE5E,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,GAAG,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,CAAC;QAC5F,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,GAAG,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC;QAGtF,IAAI,CAAC,qBAAqB,CAAC,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC;QAE7E,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACpD,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACpD,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;QACjH,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,iBAAiB,GAAG,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC;QACvH,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,eAAe,GAAG,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;QACnH,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,eAAe,GAAG,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;QACnH,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,eAAe,GAAG,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;QACnH,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;QAC/G,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,gBAAgB,GAAG,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC;QACrH,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,mBAAmB,GAAG,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC;QAC3H,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,iBAAiB,GAAG,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC;QACvH,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,iBAAiB,GAAG,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC;QACvH,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,iBAAiB,GAAG,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC;QACvH,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,eAAe,GAAG,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;QACnH,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC;QAExE,IAAI,CAAC,qBAAqB,CAAC,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC;QACtH,IAAI,CAAC,qBAAqB,CAAC,qBAAqB,GAAG,IAAI,CAAC;QACxD,IAAI,CAAC,qBAAqB,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC3C,IAAI,CAAC,qBAAqB,CAAC,SAAS,GAAG,IAAI,CAAC;QAC5C,IAAI,CAAC,qBAAqB,CAAC,GAAG,GAAG,IAAI,CAAC;QACtC,IAAI,CAAC,qBAAqB,CAAC,UAAU,GAAG,IAAI,CAAC;QAC7C,IAAI,CAAC,qBAAqB,CAAC,SAAS,GAAG,CAAC,CAAC;QACzC,IAAI,CAAC,qBAAqB,CAAC,eAAe,GAAG,IAAI,CAAC;QAClD,IAAI,CAAC,qBAAqB,CAAC,WAAW,GAAG,IAAI,CAAC;QAC9C,IAAI,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,qBAAqB,CAAC,SAAS,GAAG,IAAI,CAAC;QAC5C,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,GAAG,IAAI,CAAC;QACnD,IAAI,CAAC,qBAAqB,CAAC,eAAe,GAAG,IAAI,CAAC;QAClD,IAAI,CAAC,qBAAqB,CAAC,WAAW,GAAG,IAAI,CAAC;QAC9C,IAAI,CAAC,qBAAqB,CAAC,aAAa,GAAG,IAAI,CAAC;QAChD,IAAI,CAAC,qBAAqB,CAAC,YAAY,GAAG,CAAC,CAAC;QAC5C,IAAI,CAAC,qBAAqB,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC3C,IAAI,CAAC,qBAAqB,CAAC,YAAY,GAAG,IAAI,CAAC;QAC/C,IAAI,CAAC,qBAAqB,CAAC,IAAI,GAAG,IAAI,CAAC;QACvC,IAAI,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,qBAAqB,CAAC,eAAe,GAAG,IAAI,CAAC;QAClD,IAAI,CAAC,qBAAqB,CAAC,aAAa,GAAG,IAAI,CAAC;QAChD,OAAO,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC;QAErC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,IAAI,EAAE;YAClC,IAAI,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAC7D,IAAI,OAAO,IAAI,KAAK,EAAE;gBACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,sCAAsC,EAAE,EAAE,EAAE;oBAC9D,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,OAAO,KAAK,CAAC;aACd;SACF;QACD,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;QAC1C,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QACnE,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QACpE,IAAI,CAAC,UAAU,CAAC,gBAAgB,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAC1E,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,IAAI,IAAI,CAC1C,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAClC,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,mBAAmB,GAAG,IAAI,IAAI,CAC5C,IAAI,CAAC,UAAU,CAAC,qBAAqB,CACtC,CAAC;QACF,IAAI,CAAC,qBAAqB,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;QACvE,IAAI,CAAC,qBAAqB,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAC/D,IAAI,CAAC,qBAAqB,CAAC,qBAAqB,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC;QACzF,IAAI,CAAC,qBAAqB,CAAC,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC;QACvF,IAAI,SAAS,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,IAAI,KAAK;YAClE,OAAO;QACT,IAAI,IAAI,CAAC,iBAAiB,EAAE,IAAI,KAAK,EAAE;YACrC,IAAI,CAAC,mBAAmB,CAAC,KAAK,IAAI,KAAK,CAAC;YACxC,OAAO;SAER;QAED,IAAI,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE;YAClC,IAAI,CAAC,QAAQ;iBACV,mBAAmB,CAAC,IAAI,CAAC,qBAAqB,CAAC;iBAC/C,SAAS,CACR,CAAC,IAAS,EAAE,EAAE;gBACZ,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE;oBACvB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;oBACnB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACrC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC;oBACpC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,qCAAqC,EAAE,EAAE,EAAE;wBAC7D,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACH,UAAU,CAAC,GAAG,EAAE;wBACd,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;4BACnB,0CAA0C;gCAC1C,IAAI,CAAC,UAAU;gCACf,GAAG;gCACH,SAAS;yBACV,CAAC,CAAC;oBACL,CAAC,EAAE,IAAI,CAAC,CAAC;iBACV;qBAAM,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC1B,IAAI,YAAY,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;oBACtD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,GAAG,iBAAiB,EAAE,EAAE,EAAE;wBACxD,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAC,CAAC,aAAa,CAAC;wBAC1B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;YACH,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;gBACR,IAAI,KAAK,CAAC,KAAK,IAAI,SAAS,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE;oBACjD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE;wBACnC,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAC,CAAC,aAAa,CAAC;wBAC1B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;qBAAM;oBACL,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iCAAiC,EAAE,EAAE,EAAE;wBACzD,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAC,CAAC,aAAa,CAAC;wBAC1B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;YACH,CAAC,CACF,CAAC;SACL;aAAM;YACL,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,qDAAqD,EACrD,GAAG,EACH;gBACE,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CACF,CAAC;SACH;IACH,CAAC;IAED,uBAAuB;QACrB,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAEzE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,yCAAyC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,yCAAyC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,yCAAyC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YAC9Y,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,CAAC;YACpE,IAAG,IAAI,CAAC,qBAAqB,CAAC,UAAU,IAAE,IAAI,EAChD;gBACA,IAAI,CAAC,qBAAqB,CAAC,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,KAAK;aAClF;iBACG;gBACF,IAAI,CAAC,qBAAqB,CAAC,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC,UAAU;aAC9E;YACC,IAAI,CAAC,qBAAqB,CAAC,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC;YAC5E,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,GAAG,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,CAAC;YAC5F,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,GAAG,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC;YACtF,IAAI,CAAC,qBAAqB,CAAC,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC;YAC9E,IAAI,CAAC,qBAAqB,CAAC,mBAAmB,GAAG,IAAI,CAAC,qBAAqB,CAAC,qBAAqB,CAAC;YAClG,IAAI,CAAC,qBAAqB,CAAC,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC;YAC/E,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,eAAe,GAAG,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;YACnH,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,eAAe,GAAG,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;YACnH,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;YACjH,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,eAAe,GAAG,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;YACnH,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,iBAAiB,GAAG,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC;YACvH,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;YAC/G,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,iBAAiB,GAAG,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC;YACvH,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,iBAAiB,GAAG,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC;YACvH,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,gBAAgB,GAAG,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC;YACrH,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,iBAAiB,GAAG,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC;YACvH,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,mBAAmB,GAAG,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC;YAC3H,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,eAAe,GAAG,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;YACnH,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,eAAe,GAAG,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;YACnH,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC;YACxE,OAAO,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;YACxC,OAAO,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;YAC3C,OAAO,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;YAC7C,IAAI,CAAC,qBAAqB,CAAC,cAAc,GAAG,IAAI,CAAC;SAClD;aAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,yCAAyC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YAClJ,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,CAAC;YAEpE,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;gBAClC,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvF,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;aACxF;iBACI;gBACH,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;gBACpD,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;aACrD;YAGD,OAAO,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;YACxC,OAAO,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;YAC3C,OAAO,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;SAC9C;QACD,IAAI,SAAS,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzC,IAAI,IAAI,CAAC,iBAAiB,EAAE,IAAI,KAAK,EAAE;YACrC,IAAI,CAAC,mBAAmB,CAAC,KAAK,IAAI,KAAK,CAAC;YACxC,OAAO;SAER;QACD,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,IAAI,KAAK;YAAE,OAAO;QAE7E,IAAI,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE;YAClC,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,SAAS,CACvE,CAAC,IAAS,EAAE,EAAE;gBACZ,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE;oBAC7B,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;oBACnB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uCAAuC,EAAE,EAAE,EAAE;wBAC/D,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;qBAAM,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC1B,IAAI,YAAY,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;oBACtD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,GAAG,iBAAiB,EAAE,EAAE,EAAE;wBACxD,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAC,CAAC,aAAa,CAAC;wBAC1B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;YACH,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;gBACR,IAAI,KAAK,IAAI,SAAS,IAAI,KAAK,IAAI,EAAE,EAAE;oBACrC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE;wBACnC,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAC,CAAC,aAAa,CAAC;wBAC1B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;qBAAM;oBACL,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mCAAmC,EAAE,EAAE,EAAE;wBAC3D,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAC,CAAC,aAAa,CAAC;wBAC1B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;YACH,CAAC,CACF,CAAC;SACH;aAAM;YACL,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,qDAAqD,EACrD,GAAG,EACH;gBACE,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CACF,CAAC;SACH;IACH,CAAC;IAEO,uBAAuB,CAAC,UAAe;QAC7C,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YACzB,IAAI,YAAY,GAAW,EAAE,CAAC;YAC9B,UAAU,CAAC,OAAO,CAAC,CAAC,GAAQ,EAAE,EAAE;gBAC9B,IAAI,GAAG,CAAC,EAAE,IAAI,4EAAe,CAAC,oBAAoB;oBAChD,YAAY,IAAI,EAAE;wBAChB,CAAC,CAAC,CAAC,YAAY,IAAI,mBAAmB,CAAC;wBACvC,CAAC,CAAC,CAAC,YAAY,GAAG,mBAAmB,CAAC,CAAC;gBAC3C,IAAI,GAAG,CAAC,EAAE,IAAI,4EAAe,CAAC,QAAQ;oBACpC,YAAY,IAAI,EAAE;wBAChB,CAAC,CAAC,CAAC,YAAY,IAAI,iBAAiB,CAAC;wBACrC,CAAC,CAAC,CAAC,YAAY,GAAG,eAAe,CAAC,CAAC;gBACvC,IAAI,GAAG,CAAC,EAAE,IAAI,4EAAe,CAAC,YAAY;oBACxC,YAAY,IAAI,EAAE;wBAChB,CAAC,CAAC,CAAC,YAAY,IAAI,iBAAiB,CAAC;wBACrC,CAAC,CAAC,CAAC,YAAY,GAAG,eAAe,CAAC,CAAC;gBACvC,IAAI,GAAG,CAAC,EAAE,IAAI,4EAAe,CAAC,SAAS;oBACrC,YAAY,IAAI,EAAE;wBAChB,CAAC,CAAC,CAAC,YAAY,IAAI,cAAc,CAAC;wBAClC,CAAC,CAAC,CAAC,YAAY,GAAG,YAAY,CAAC,CAAC;gBACpC,IAAI,GAAG,CAAC,EAAE,IAAI,4EAAe,CAAC,SAAS;oBACrC,YAAY,IAAI,EAAE;wBAChB,CAAC,CAAC,CAAC,YAAY,IAAI,cAAc,CAAC;wBAClC,CAAC,CAAC,CAAC,YAAY,GAAG,YAAY,CAAC,CAAC;gBACpC,IAAI,GAAG,CAAC,EAAE,IAAI,4EAAe,CAAC,QAAQ;oBACpC,YAAY,IAAI,EAAE;wBAChB,CAAC,CAAC,CAAC,YAAY,IAAI,aAAa,CAAC;wBACjC,CAAC,CAAC,CAAC,YAAY,GAAG,WAAW,CAAC,CAAC;gBACnC,IAAI,GAAG,CAAC,EAAE,IAAI,4EAAe,CAAC,cAAc;oBAC1C,YAAY,IAAI,EAAE;wBAChB,CAAC,CAAC,CAAC,YAAY,IAAI,mBAAmB,CAAC;wBACvC,CAAC,CAAC,CAAC,YAAY,GAAG,iBAAiB,CAAC,CAAC;YAC3C,CAAC,CAAC,CAAC;YACH,OAAO,YAAY,CAAC;SACrB;IACH,CAAC;IAEO,iBAAiB,CAAC,SAAkB;QAC1C,IAAI,SAAS,EAAE;YACb,IACE,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,IAAI,IAAI;gBACpC,IAAI,CAAC,SAAS,CAAC,cAAc,IAAI,EAAE;gBACnC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;gBAClD,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,IAAI,IAAI;oBACvC,IAAI,CAAC,SAAS,CAAC,iBAAiB,IAAI,EAAE,CAAC;gBACzC,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,IAAI,IAAI;oBACrC,IAAI,CAAC,SAAS,CAAC,eAAe,IAAI,EAAE;oBACpC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;gBACnD,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,IAAI,IAAI;oBACrC,IAAI,CAAC,SAAS,CAAC,eAAe,IAAI,EAAE;oBACpC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;gBACnD,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,IAAI,IAAI;oBACrC,IAAI,CAAC,SAAS,CAAC,eAAe,IAAI,EAAE;oBACpC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;gBACnD,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,IAAI,IAAI;oBACnC,IAAI,CAAC,SAAS,CAAC,aAAa,IAAI,EAAE,CAAC,EACrC;gBAEA,IAAI,CAAC,mBAAmB;qBACrB,GAAG,CAAC,gBAAgB,CAAC,CACvB,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,CACjD,IAAI,CAAC,SAAS,CAAC,eAAe,CAC/B,CAAC;gBACF,IAAI,CAAC,mBAAmB;qBACrB,GAAG,CAAC,gBAAgB,CAAC,CACvB,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,CACjD,IAAI,CAAC,SAAS,CAAC,eAAe,CAC/B,CAAC;gBACF,IAAI,CAAC,mBAAmB;qBACrB,GAAG,CAAC,gBAAgB,CAAC,CACvB,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAChD,IAAI,CAAC,SAAS,CAAC,cAAc,CAC9B,CAAC;gBACF,IAAI,CAAC,mBAAmB;qBACrB,GAAG,CAAC,gBAAgB,CAAC,CACvB,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,CACjD,IAAI,CAAC,SAAS,CAAC,eAAe,CAC/B,CAAC;gBACF,IAAI,CAAC,mBAAmB;qBACrB,GAAG,CAAC,gBAAgB,CAAC,CACvB,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,CACnD,IAAI,CAAC,SAAS,CAAC,iBAAiB,CACjC,CAAC;gBACF,IAAI,CAAC,mBAAmB;qBACrB,GAAG,CAAC,gBAAgB,CAAC,CACvB,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAC/C,IAAI,CAAC,SAAS,CAAC,aAAa,CAC7B,CAAC;gBACF,OAAO,IAAI,CAAC;aACb;iBAAM;gBACL,IAAI,CAAC,SAAS,CAAC,gBAAgB,GAAG,EAAE,CAAC;gBACrC,IAAI,CAAC,SAAS,CAAC,mBAAmB,GAAG,EAAE,CAAC;gBACxC,IAAI,CAAC,SAAS,CAAC,iBAAiB,GAAG,EAAE,CAAC;gBACtC,IAAI,CAAC,SAAS,CAAC,iBAAiB,GAAG,EAAE,CAAC;gBACtC,IAAI,CAAC,SAAS,CAAC,iBAAiB,GAAG,EAAE,CAAC;gBACtC,IAAI,CAAC,SAAS,CAAC,eAAe,GAAG,EAAE,CAAC;gBACpC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,sCAAsC,EAAE,EAAE,EAAE;oBAC9D,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,OAAO,KAAK,CAAC;aACd;SACF;IACH,CAAC;IAED,YAAY,CAAC,KAAU;QACrB,IAAI,IAAI,GAAG;YACT,MAAM,EAAE,EAAE;YACV,SAAS,EAAE,CAAC;YACZ,GAAG,EAAE,CAAC;YACN,KAAK,EAAE,EAAE;YACT,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,EAAE;SACR,CAAC;QACF,KAAK,IAAI,KAAK,IAAI,IAAI,EAAE;YACtB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;gBAAE,SAAS;YAC1C,IAAI,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE;gBACjE,OAAO,CAAC,eAAe;aACxB;SACF;QACD,KAAK,CAAC,cAAc,EAAE,CAAC;IACzB,CAAC;IAED,iBAAiB,CAAC,KAAU;QAC1B,IAAI,CAAM,CAAC;QACX,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,iDAAiD;QACrE,OAAO,CACL,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;YAClB,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC;YACnB,CAAC,IAAI,CAAC;YACN,CAAC,IAAI,EAAE;YACP,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CACrB,CAAC;IACJ,CAAC;IAED,QAAQ,CAAC,KAAU;QACjB,IAAI,CAAM,CAAC;QACX,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,iDAAiD;QACrE,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACxE,CAAC;IAED,UAAU,CAAC,KAAU;QACnB,IAAI,CAAM,CAAC;QACX,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,iDAAiD;QACrE,OAAO,CACL,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;YAClB,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC;YACnB,CAAC,IAAI,CAAC;YACN,CAAC,IAAI,EAAE;YACP,CAAC,IAAI,EAAE;YACP,CAAC,IAAI,EAAE;YACP,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CACrB,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,KAAU;QACpB,IAAI,CAAM,CAAC;QACX,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,iDAAiD;QACrE,OAAO,CACL,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;YAClB,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC;YACnB,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;YAClB,CAAC,IAAI,CAAC;YACN,CAAC,IAAI,EAAE,CACR,CAAC;IACJ,CAAC;IAED,iBAAiB,CAAC,KAAU;QAC1B,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QAChC,IAAI,MAAM,IAAI,CAAC,EAAE;YACf,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;SACxB;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,EAAE,CAAC;SACnC;IACH,CAAC;IAED,YAAY,CAAC,YAAY;QACvB,IAAI,KAAK,GAAQ,IAAI,IAAI,EAAE,CAAC;QAC5B,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QAC5B,YAAY,GAAG,mCAAM,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE,CAAC;QAC7C,IAAI,OAAO,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;QACzC,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC;QACjD,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,EAAE;YAC5B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kCAAkC,EAAE,EAAE,EAAE;gBAC1D,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;SACd;IACH,CAAC;IACD,eAAe,CAAC,KAAU;QACxB,IAAI,KAAK,EAAE;YACT,IAAI,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;YAClD,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,SAAS,CAAC;YACtC,IAAI,SAAS,IAAI,aAAa,EAAE;gBAC9B,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;gBACjE,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,iBAAiB,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;gBACtE,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAC5D,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBACjE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;aACxB;iBAAM;gBACL,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;gBACxB,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACpF,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;aAC1F;SACF;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;SACzB;IACH,CAAC;IAED,UAAU,CAAC,KAAU;QACnB,IAAI,KAAK,IAAI,UAAU;YAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;;YAC7C,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IACjC,CAAC;IAOD,QAAQ;QACN,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,EACnB,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,EACtB,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,EACnB,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACzC,CAAC;IACD,SAAS;QACP,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAC1F,IAAI,CAAC,UAAU,CAAC,cAAc,GAAG,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAC/F,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;IACrF,CAAC;IAED,eAAe,CAAC,KAAU;QACxB,uCAAuC;QACvC,IAAI,KAAK,CAAC,KAAK,IAAI,OAAO,EAAE;YAC1B,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;SACvB;aACI;YAAE,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;SAAE;IACjC,CAAC;IACD,eAAe,CAAC,KAAU;QACxB,uCAAuC;QACvC,IAAI,KAAK,CAAC,KAAK,IAAI,OAAO,EAAE;YAC1B,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;SAEvB;aACI;YACH,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;SACvB;IACH,CAAC;IACD,WAAW,CAAC,CAAC;QACX,IAAI,CAAC,CAAC,OAAO,IAAI,IAAI,EAAE;YACrB,IAAI,CAAC,mBAAmB;iBACrB,GAAG,CAAC,gBAAgB,CAAC,CACvB,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,CACjD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ;iBACnE,eAAe,CAAC,KAAK,CACzB,CAAC;YACF,IAAI,CAAC,mBAAmB;iBACrB,GAAG,CAAC,gBAAgB,CAAC,CACvB,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,CACjD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ;iBACnE,eAAe,CAAC,KAAK,CACzB,CAAC;YACF,IAAI,CAAC,mBAAmB;iBACrB,GAAG,CAAC,gBAAgB,CAAC,CACvB,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAChD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ;iBACnE,cAAc,CAAC,KAAK,CACxB,CAAC;YACF,IAAI,CAAC,mBAAmB;iBACrB,GAAG,CAAC,gBAAgB,CAAC,CACvB,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,CACjD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ;iBACnE,eAAe,CAAC,KAAK,CACzB,CAAC;YACF,IAAI,CAAC,mBAAmB;iBACrB,GAAG,CAAC,gBAAgB,CAAC,CACvB,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,CACnD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ;iBACnE,iBAAiB,CAAC,KAAK,CAC3B,CAAC;YACF,IAAI,CAAC,mBAAmB;iBACrB,GAAG,CAAC,gBAAgB,CAAC,CACvB,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAC/C,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ;iBACnE,aAAa,CAAC,KAAK,CACvB,CAAC;YACF,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;SAClC;aAAM;YACL,IAAI,CAAC,mBAAmB;iBACrB,GAAG,CAAC,gBAAgB,CAAC,CACvB,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACxD,IAAI,CAAC,mBAAmB;iBACrB,GAAG,CAAC,gBAAgB,CAAC,CACvB,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACxD,IAAI,CAAC,mBAAmB;iBACrB,GAAG,CAAC,gBAAgB,CAAC,CACvB,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACvD,IAAI,CAAC,mBAAmB;iBACrB,GAAG,CAAC,gBAAgB,CAAC,CACvB,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACxD,IAAI,CAAC,mBAAmB;iBACrB,GAAG,CAAC,gBAAgB,CAAC,CACvB,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC1D,IAAI,CAAC,mBAAmB;iBACrB,GAAG,CAAC,gBAAgB,CAAC,CACvB,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACtD,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;SACnC;IACH,CAAC;IAED,cAAc,CAAC,KAAU;QACvB,IAAI,IAAI,GAAG;YACT,MAAM,EAAE,EAAE;YACV,SAAS,EAAE,CAAC;YACZ,GAAG,EAAE,CAAC;YACN,KAAK,EAAE,EAAE;YACT,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,EAAE;SACR,CAAC;QACF,KAAK,IAAI,KAAK,IAAI,IAAI,EAAE;YACtB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;gBAAE,SAAS;YAC1C,IAAI,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE;gBACjE,OAAO,CAAC,eAAe;aACxB;SACF;QACD,KAAK,CAAC,cAAc,EAAE,CAAC;IACzB,CAAC;IAED,qBAAqB;QACnB,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAClD,IAAI,CAAC,UAAU,CAAC,SAAS,CAC1B,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CACnD,IAAI,CAAC,UAAU,CAAC,UAAU,CAC3B,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CACjD,IAAI,CAAC,UAAU,CAAC,QAAQ,CACzB,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC1E,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAClD,IAAI,CAAC,UAAU,CAAC,SAAS,CAC1B,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CACpD,IAAI,CAAC,UAAU,CAAC,WAAW,CAC5B,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CACtD,IAAI,CAAC,UAAU,CAAC,aAAa,CAC9B,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CACnD,IAAI,CAAC,UAAU,CAAC,UAAU,CAC3B,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CACpD,IAAI,CAAC,UAAU,CAAC,WAAW,CAC5B,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CACpD,IAAI,CAAC,UAAU,CAAC,WAAW,CAC5B,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CACjD,IAAI,CAAC,UAAU,CAAC,QAAQ,CACzB,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,oBAAoB,CAAC,QAAQ,CAC7D,IAAI,CAAC,UAAU,CAAC,oBAAoB,CACrC,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CACrD,IAAI,CAAC,UAAU,CAAC,YAAY,CAC7B,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAClD,IAAI,CAAC,UAAU,CAAC,SAAS,CAC1B,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CACvD,IAAI,CAAC,UAAU,CAAC,cAAc,CAC/B,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,qBAAqB,CAAC,QAAQ,CAC9D,IAAI,CAAC,UAAU,CAAC,qBAAqB,CACtC,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,qBAAqB,CAAC,QAAQ,CAC9D,IAAI,CAAC,UAAU,CAAC,qBAAqB,CACtC,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAClD,IAAI,CAAC,UAAU,CAAC,SAAS,CAC1B,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CACjD,IAAI,CAAC,UAAU,CAAC,QAAQ,CACzB,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,qBAAqB,CAAC,QAAQ,CAC9D,IAAI,CAAC,UAAU,CAAC,qBAAqB,CACtC,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,CAC5D,IAAI,CAAC,UAAU,CAAC,qBAAqB,CACtC,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CACrD,IAAI,CAAC,UAAU,CAAC,YAAY,CAC7B,CAAC;QAEF,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CACpD,IAAI,CAAC,UAAU,CAAC,WAAW,CAC5B,CAAC;QAEF,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CACtD,IAAI,CAAC,UAAU,CAAC,aAAa,CAC9B,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CACjD,IAAI,CAAC,UAAU,CAAC,aAAa,CAC9B,CAAC;QAEF,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAClD,IAAI,CAAC,UAAU,CAAC,SAAS,CAC1B,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CACpD,IAAI,CAAC,UAAU,CAAC,WAAW,CAC5B,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAClD,IAAI,CAAC,UAAU,CAAC,SAAS,CAC1B,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC5E,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,IAAI,IAAI,EAAC;YACrC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CACnD,IAAI,CAAC,UAAU,CAAC,UAAU,CAC3B,CAAC;SACH;QACD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAClD,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC1E,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CACvD,IAAI,CAAC,UAAU,CAAC,cAAc,CAC/B,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CACvD,IAAI,CAAC,UAAU,CAAC,cAAc,CAC/B,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CACrD,IAAI,CAAC,UAAU,CAAC,YAAY,CAC7B,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CACrD,IAAI,CAAC,UAAU,CAAC,YAAY,CAC7B;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,gBAAgB,IAAI,IAAI,EAAE;YAC5C,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CACzD,IAAI,CAAC,UAAU,CAAC,SAAS,CAC1B,CAAC;YACF,IAAI,CAAC,UAAU,CAAC,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;SAC9D;aACI;YACH,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CACzD,IAAI,CAAC,UAAU,CAAC,gBAAgB,CACjC,CAAC;SACH;QAED,IAAI,aAAa,CAAC;QAClB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC;YAC5C,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE;gBAC7C,OAAO,EAAE,CAAC,KAAK,IAAI,IAAI,CAAC;YAC1B,CAAC,CAAC,CAAC;SACJ;QACD,IAAI,aAAa,EAAE;YACjB,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CACzD,IAAI,CAAC,UAAU,CAAC,gBAAgB,CACjC,CAAC;SACH;aACI;YACH,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SACnE;QACD,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAClD,IAAI,CAAC,UAAU,CAAC,SAAS,CAC1B,CAAC;QAEF,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CACrD,IAAI,CAAC,UAAU,CAAC,YAAY,CAC7B,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,CAC1D,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAClC,CAAC;QAEF,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CACtD,IAAI,CAAC,UAAU,CAAC,aAAa,CAC9B,CAAC;QACF,IAAI,CAAC,mBAAmB;aACrB,GAAG,CAAC,UAAU,CAAC,CACjB,UAAU,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QACtE,IAAI,CAAC,mBAAmB;aACrB,GAAG,CAAC,UAAU,CAAC,CACjB,UAAU,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QACtE,IAAI,CAAC,mBAAmB;aACrB,GAAG,CAAC,UAAU,CAAC,CACjB,UAAU,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QACpE,IAAI,CAAC,mBAAmB;aACrB,GAAG,CAAC,UAAU,CAAC,CACjB,UAAU,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QACtE,IAAI,CAAC,mBAAmB;aACrB,GAAG,CAAC,UAAU,CAAC,CACjB,UAAU,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QAC1E,IAAI,CAAC,mBAAmB;aACrB,GAAG,CAAC,UAAU,CAAC,CACjB,UAAU,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QAClE,IAAI,CAAC,mBAAmB;aACrB,GAAG,CAAC,UAAU,CAAC,CACjB,UAAU,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QAC1E,IAAI,CAAC,mBAAmB;aACrB,GAAG,CAAC,UAAU,CAAC,CACjB,UAAU,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QAC1E,IAAI,CAAC,mBAAmB;aACrB,GAAG,CAAC,UAAU,CAAC,CACjB,UAAU,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QACxE,IAAI,CAAC,mBAAmB;aACrB,GAAG,CAAC,UAAU,CAAC,CACjB,UAAU,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QAC1E,IAAI,CAAC,mBAAmB;aACrB,GAAG,CAAC,UAAU,CAAC,CACjB,UAAU,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CACvC,IAAI,CAAC,SAAS,CAAC,mBAAmB,CACnC,CAAC;QACF,IAAI,CAAC,mBAAmB;aACrB,GAAG,CAAC,UAAU,CAAC,CACjB,UAAU,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAEtE,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;YAClC,IAAI,CAAC,mBAAmB;iBACrB,GAAG,CAAC,gBAAgB,CAAC,CACvB,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAClC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CACrC,CAAC;YACF,IAAI,CAAC,mBAAmB;iBACrB,GAAG,CAAC,gBAAgB,CAAC,CACvB,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAC/C,IAAI,CAAC,SAAS,CAAC,eAAe,CAC/B,CAAC;YACF,IAAI,CAAC,mBAAmB;iBACrB,GAAG,CAAC,gBAAgB,CAAC,CACvB,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAC/C,IAAI,CAAC,SAAS,CAAC,eAAe,CAC/B,CAAC;YACF,IAAI,CAAC,mBAAmB;iBACrB,GAAG,CAAC,gBAAgB,CAAC,CACvB,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAC9C,IAAI,CAAC,SAAS,CAAC,cAAc,CAC9B,CAAC;YACF,IAAI,CAAC,mBAAmB;iBACrB,GAAG,CAAC,gBAAgB,CAAC,CACvB,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAC/C,IAAI,CAAC,SAAS,CAAC,eAAe,CAC/B,CAAC;YACF,IAAI,CAAC,mBAAmB;iBACrB,GAAG,CAAC,gBAAgB,CAAC,CACvB,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,CACjD,IAAI,CAAC,SAAS,CAAC,iBAAiB,CACjC,CAAC;YACF,IAAI,CAAC,mBAAmB;iBACrB,GAAG,CAAC,gBAAgB,CAAC,CACvB,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAC7C,IAAI,CAAC,SAAS,CAAC,aAAa,CAC7B,CAAC;YACF,IAAI,CAAC,mBAAmB;iBACrB,GAAG,CAAC,gBAAgB,CAAC,CACvB,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAClC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CACrC,CAAC;YACF,IAAI,CAAC,mBAAmB;iBACrB,GAAG,CAAC,gBAAgB,CAAC,CACvB,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,CACjD,IAAI,CAAC,SAAS,CAAC,iBAAiB,CACjC,CAAC;YACF,IAAI,CAAC,mBAAmB;iBACrB,GAAG,CAAC,gBAAgB,CAAC,CACvB,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,CACjD,IAAI,CAAC,SAAS,CAAC,iBAAiB,CACjC,CAAC;YACF,IAAI,CAAC,mBAAmB;iBACrB,GAAG,CAAC,gBAAgB,CAAC,CACvB,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAChD,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAChC,CAAC;YACF,IAAI,CAAC,mBAAmB;iBACrB,GAAG,CAAC,gBAAgB,CAAC,CACvB,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,CACjD,IAAI,CAAC,SAAS,CAAC,iBAAiB,CACjC,CAAC;YACF,IAAI,CAAC,mBAAmB;iBACrB,GAAG,CAAC,gBAAgB,CAAC,CACvB,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,CACnD,IAAI,CAAC,SAAS,CAAC,mBAAmB,CACnC,CAAC;YACF,IAAI,CAAC,mBAAmB;iBACrB,GAAG,CAAC,gBAAgB,CAAC,CACvB,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAC/C,IAAI,CAAC,SAAS,CAAC,eAAe,CAC/B,CAAC;SACH;QAED,IACE,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ;aACnE,eAAe,CAAC,KAAK,EACxB;YACA,IACE,IAAI,CAAC,IAAI,IAAI,MAAM;gBACnB,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ;qBACnE,eAAe,CAAC,KAAK;oBACxB,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ;yBACnE,iBAAiB,CAAC,KAAK,EAC1B;gBACA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;aAClC;iBAAM;gBACL,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;aACnC;SACF;QAED,IAAI,CAAC,mBAAmB,CAAC,sBAAsB,EAAE,CAAC;IACpD,CAAC;IAEO,OAAO,CAAC,KAAK;QACnB,IAAI,WAAW,CAAC;QAChB,IAAI,KAAK,IAAI,KAAK,CAAC,WAAW,EAAE;YAC9B,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;YAC9C,OAAO,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAChD,MAAM,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAC3D,CAAC;SACH;aAAM;YACL,OAAO,IAAI,CAAC,mBAAmB,CAAC;SACjC;IACH,CAAC;IAED,sBAAsB;QACpB,IAAI,CAAC,QAAQ,CAAC,sBAAsB,EAAE,CAAC,SAAS,CAAC,CAAC,IAAmB,EAAE,EAAE;YACvE,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;YAC9B,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAClC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,WAAW,CAAC,CAAC,EAAE,KAAU;QACvB,IAAI,CAAC,IAAI,aAAa,EAAE;YACtB,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;YACtD,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;YAC/B,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;SACtD;QACD,IAAI,CAAC,IAAI,YAAY,EAAE;YACrB,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;SACtD;QACD,IAAI,CAAC,0BAA0B,EAAE,CAAC;IAEpC,CAAC;IAED,0BAA0B;QACxB,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,IAAI,CACtE,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CACpC,CAAC;IACJ,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC,CAAC,IAAmB,EAAE,EAAE;YACjE,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;YACzB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;IACD,SAAS,CAAC,IAAS;QACjB,OAAO,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9C,CAAC;IAED,mBAAmB,CAAC,KAAK;QACvB,OAAO;QACP,6IAA6I;QAC7I;;;;;;;;;;;;;cAaM;IACR,CAAC;IAED,iBAAiB,CAAC,CAAC;QACjB,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC9D,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC;IACrC,CAAC;IAED,0BAA0B,CAAC,CAAC;QAC1B,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CACvD,CAAC,CAAC,gBAAgB,CACnB,CAAC;IACJ,CAAC;IAED,mBAAmB,CAAC,CAAC;QACnB,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,EAAE;YACjB,IAAI,CAAC,UAAU,GAAG,IAAI;YACtB,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;SACrF;aACI;YACH,IAAI,CAAC,UAAU,GAAG,KAAK;YACvB,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YACjE,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAC3D,CAAC;SACH;QACD,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,KAAK,EAAE,CAAC;QAC9D,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAGhF,CAAC;IACI,kBAAkB,CAAC,YAAmB;;YAC1C,MAAM,IAAI,CAAC,iBAAiB;iBACxB,6BAA6B,CAAC,YAAY,CAAC;iBAC3C,SAAS,CAAC,CAAC,GAAkB,EAAE,EAAE;gBAChC,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;gBACnB,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;YAEjG,CAAC,CAAC,CAAC;QACL,CAAC;KAAA;IAED,qBAAqB,CAAC,KAAK;QACxB,IAAI,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QACzE,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC/D,CAAC;;gGAl5DQ,wBAAwB;wGAAxB,wBAAwB;;;;;;;;;;;QCzCrC,yEACQ;QAAA;QAAA,0EACG;QAAA;QAAA,yEACG;QAAA;QAAA,yEACG;QAAA;QAAA,wEAA2B;QAAA,2EAAgB;QAAA,4DAAK;QACnD;QAAA,4DAAM;QACN;QAAA,0EACG;QAAA;QAAA,qFACG;QAAA;QAAA,6EAAW;QAAA,sEAAU;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QAAA,4DAAY;QACnE;QAAA,uEACA;QAAA;QAAA,kIAA6E;QAEhF;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACN;QAAA,0EACG;QAAA;QAAA,qFACG;QAAA;QAAA,6EAAW;QAAA,uEAAW;QAAA,4DAAY;QAClC;QAAA,wEACH;QAAA;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACN;QAAA,0EACG;QAAA;QAAA,qFACG;QAAA;QAAA,6EAAW;QAAA,8FACR;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QACrC;QAAA,4DAAY;QACZ;QAAA,wEACA;QAAA;QAAA,kIAA4E;QAE/E;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACN;QAAA,0EACG;QAAA;QAAA,qFACG;QAAA;QAAA,6EAAW;QAAA,2FACR;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QACrC;QAAA,4DAAY;QACZ;QAAA,kFACG;QAAA;QAAA,qIAAkE;QAErE;QAAA,4DAAa;QACb;QAAA,kIAA0E;QAE7E;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACN;QAAA,0EACG;QAAA;QAAA,qFACG;QAAA;QAAA,6EAAW;QAAA,+FACR;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QACrC;QAAA,4DAAY;QACZ;QAAA,6EACA;QADqJ,+RAAS,UAAgB,IAAC;QAA/K,4DACA;QAAA;QAAA,2JAEI;QAEJ;QAAA,wFAA2E;QAC3E;QAAA,qFAA6D;QAC7D;QAAA,kIAA6E;QAEhF;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QAEN;QAAA,0EACG;QAAA;QAAA,qFACG;QAAA;QAAA,8EAAW;QAAA,2EAAc;QAAA,4DAAY;QACrC;QAAA,mFACG;QAAA;QAAA,uIAAyE;QAE5E;QAAA,4DAAa;QAChB;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACN;QAAA,2EACG;QAAA;QAAA,sFACG;QAAA;QAAA,8EAAW;QAAA,iGACR;QAAA,4EAA0B;QAAA,8DAAC;QAAA,4DAAO;QACrC;QAAA,4DAAY;QACZ;QAAA,mFACG;QAAA;QAAA,uIAAoE;QAEvE;QAAA,4DAAa;QACb;QAAA,oIAA8E;QAEjF;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACN;QAAA,2EACG;QAAA;QAAA,sFACG;QAAA;QAAA,8EAAW;QAAA,wEAAW;QAAA,4DAAY;QAClC;QAAA,yEACA;QAAA;QAAA,oIAAmE;QACtE;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACN;QAAA,2EACG;QAAA;QAAA,sFACG;QAAA;QAAA,8EAAW;QAAA,6EAAgB;QAAA,4DAAY;QACvC;QAAA,yEACA;QAAA;QAAA,oIAAmE;QACtE;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACN;QAAA,2EACG;QAAA;QAAA,sFACG;QAAA;QAAA,8EAAW;QAAA,mGACR;QAAA,4EAA0B;QAAA,8DAAC;QAAA,4DAAO;QACrC;QAAA,4DAAY;QACZ;QAAA,8EACA;QAD+E,6JAAY,0BAAsB,IAAC,+FAAU,uBAAuB,IAAjC;QAAlH,4DACA;QAAA;QAAA,oIAA4E;QAE9E;QAAA,oIAA2E;QAE5E;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACN;QAAA,2EACG;QAAA;QAAA,sFACG;QAAA;QAAA,8EAAW;QAAA,uGACR;QAAA,4EAA0B;QAAA,8DAAC;QAAA,4DAAO;QACrC;QAAA,4DAAY;QACZ;QAAA,yEACA;QAAA;QAAA,oIAA4E;QAE/E;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACN;QAAA,2EACG;QAAA;QAAA,sFACG;QAAA;QAAA,8EAAW;QAAA,0EAAa;QAAA,4DAAY;QACpC;QAAA,yEACA;QAAA;QAAA,oIAAiF;QACpF;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACN;QAAA,2EACG;QAAA;QAAA,sFACG;QAAA;QAAA,8EAAW;QAAA,8FACV;QAAA,4EAA0B;QAAA,8DAAC;QAAA,4DAAO;QACnC;QAAA,4DAAY;QACZ;QAAA,8EACA;QADmF,iJAAS,0BAAsB,WAAW,CAAC,IAAC;QAA/H,4DACA;QAAA;QAAA,oIAAiE;QACpE;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACN;QAAA,2EACG;QAAA;QAAA,sFACG;QAAA;QAAA,8EAAW;QAAA,4EAAe;QAAA,4DAAY;QACtC;QAAA,yEACA;QAAA;QAAA,oIAAsE;QACzE;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACN;QAAA,2EACG;QAAA;QAAA,sFACG;QAAA;QAAA,8EAAW;QAAA,oFAAuB;QAAA,4DAAY;QAC9C;QAAA,8EACA;QAD4F,6JAAY,oBAAgB,IAAC;QAAzH,4DACA;QAAA;QAAA,oIAA6E;QAChF;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACN;QAAA,2EACG;QAAA;QAAA,sFACG;QAAA;QAAA,8EAAW;QAAA,gFAAmB;QAAA,4DAAY;QAC1C;QAAA,8EACA;QAD6I,kSAAS,WAA4B,IAAC;QAAnL,4DACA;QAAA;QAAA,6JAEI;QAEJ;QAAA,yFAAuF;QACvF;QAAA,wFAAwD;QAC3D;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACN;QAAA,2EACG;QAAA;QAAA,sFACG;QAAA;QAAA,8EAAW;QAAA,uEAAU;QAAA,4DAAY;QACjC;QAAA,yEACA;QAAA;QAAA,oIAA8E;QACjF;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACN;QAAA,2EACG;QAAA;QAAA,sFACG;QAAA;QAAA,8EAAW;QAAA,sEAAS;QAAA,4DAAY;QAChC;QAAA,8EACA;QADwC,6JAAY,uBAAmB,IAAC;QAAxE,4DACA;QAAA;QAAA,oIAA6E;QAChF;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACN;QAAA,2EACG;QAAA;QAAA,sFACG;QAAA;QAAA,8EAAW;QAAA,2GACR;QAAA,4EAA0B;QAAA,8DAAC;QAAA,4DAAO;QACrC;QAAA,4DAAY;QACZ;QAAA,8EAEA;QADA,wNAAmE,0OAAmB,WAA4B,IAA/C;QADnE,4DAEA;QAAA;QAAA,6JAEI;QAEJ;QAAA,yFAAuF;QACvF;QAAA,wFAAwD;QACxD;QAAA,oIAAyF;QAE5F;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACN;QAAA,2EACG;QAAA;QAAA,sFACG;QAAA;QAAA,8EAAW;QAAA,yFAA4B;QAAA,4DAAY;QACnD;QAAA,yEACA;QAAA;QAAA,oIAAmE;QACtE;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACN;QAAA,2EACG;QAAA;QAAA,sFACG;QAAA;QAAA,8EAAW;QAAA,mGACR;QAAA,4EAA0B;QAAA,8DAAC;QAAA,4DAAO;QACrC;QAAA,4DAAY;QACZ;QAAA,yEACI;QAAA;QAAA,oIAAkN;QAClN;QAAA,oIAAmN;QAC1N;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACN;QAAA,2EACG;QAAA;QAAA,sFACG;QAAA;QAAA,8EAAW;QAAA,kGACR;QAAA,4EAA0B;QAAA,8DAAC;QAAA,4DAAO;QACrC;QAAA,4DAAY;QACZ;QAAA,8EACA;QAD6H,kSAAS,WAAoB,IAAC;QAA3J,4DACA;QAAA;QAAA,6JAEI;QAEJ;QAAA,yFAA+E;QAC/E;QAAA,wFAAgD;QAChD;QAAA,oIAAiF;QAEpF;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACN;QAAA,2EACG;QAAA;QAAA,sFACG;QAAA;QAAA,8EAAW;QAAA,gGACR;QAAA,4EAA0B;QAAA,8DAAC;QAAA,4DAAO;QACrC;QAAA,4DAAY;QACZ;QAAA,mFACG;QAAA;QAAA,uIAAmE;QAEnE;QAAA,oIAA6E;QAEhF;QAAA,4DAAa;QAChB;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACN;QAAA,2EACG;QAAA;QAAA,uFACG;QAAA;QAAA,8EAAW;QAAA,iGACR;QAAA,4EAA0B;QAAA,8DAAC;QAAA,4DAAO;QACrC;QAAA,4DAAY;QACZ;QAAA,8EAEA;QAF+B,iJAAS,gCAA4B,IAAC,+FAAa,gCAA4B,IAAzC;QAArE,4DAEA;QAAA;QAAA,+HAEA;QAEA;QAAA,+FACG;QAAA;QAAA,uIAEA;;QAEH;QAAA,4DAAmB;QACnB;QAAA,oIACG;QAEN;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACN;QAAA,2EACG;QAAA;QAAA,sFACG;QAAA;QAAA,8EAAW;QAAA,2FACR;QAAA,4EAA0B;QAAA,8DAAC;QAAA,4DAAO;QACrC;QAAA,4DAAY;QACZ;QAAA,mFACG;QAAA;QAAA,uIAAwJ;QAExJ;QAAA,oIAA6E;QAEhF;QAAA,4DAAa;QAChB;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QAEN;QAAA,2EACI;QAAA;QAAA,uFACG;QAAA;QAAA,8EAAW;QAAA,qEAAQ;QAAA,4DAAY;QAC/B;QAAA,yEAEA;QAAA;QAAA,+HAEA;QAEA;QAAA,6FACG;QAAA;QAAA,uIAEA;QAEH;QAAA,4DAAmB;QACtB;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACP;QAAA,2EACG;QAAA;QAAA,sFACG;QAAA;QAAA,8EAAW;QAAA,qGACR;QAAA,4EAA0B;QAAA,8DAAC;QAAA,4DAAO;QACrC;QAAA,4DAAY;QACZ;QAAA,mFACG;QAAA;QAAA,uIAAwK;QAExK;QAAA,oIAAkF;QAErF;QAAA,4DAAa;QAChB;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACN;QAAA,2EACG;QAAA;QAAA,sFACG;QAAA;QAAA,8EAAW;QAAA,gGACR;QAAA,4EAA0B;QAAA,8DAAC;QAAA,4DAAO;QACrC;QAAA,4DAAY;QACZ;QAAA,mFACG;QAAA;QAAA,uIAAgH;QAEhH;QAAA,oIAAgF;QAEnF;QAAA,4DAAa;QAChB;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACN;QAAA,2EACG;QAAA;QAAA,sFACG;QAAA;QAAA,8EAAW;QAAA,uGACR;QAAA,4EAA0B;QAAA,8DAAC;QAAA,4DAAO;QACrC;QAAA,4DAAY;QACZ;QAAA,mFACG;QAAA;QAAA,uIAA+D;QAElE;QAAA,4DAAa;QACb;QAAA,oIAAoF;QAEvF;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACN;QAAA,2EACG;QAAA;QAAA,sFACG;QAAA;QAAA,8EAAW;QAAA,uEAAU;QAAA,4DAAY;QACjC;QAAA,mFACG;QADS,gLAAmB,2BAAuB,IAAC;QACpD;QAAA,uIAAmE;QAEtE;QAAA,4DAAa;QAChB;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACN;QAAA,2EACG;QAAA;QAAA,sFACG;QAAA;QAAA,8EAAW;QAAA,2EAAc;QAAA,4DAAY;QACrC;QAAA,8EACA;QADkK,kSAAS,WAAmB,IAAC;QAA/L,4DACA;QAAA;QAAA,6JAEI;QAEJ;QAAA,yFAA8E;QAC9E;QAAA,wFAA+C;QAC/C;QAAA,oIAAgF;QAEnF;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACN;QAAA,2EACG;QAAA;QAAA,sFACG;QAAA;QAAA,8EAAW;QAAA,+EAAkB;QAAA,4DAAY;QACzC;QAAA,8EACA;QAD8K,kSAAS,WAAwB,IAAC;QAAhN,4DACA;QAAA;QAAA,6JAEI;QAEJ;QAAA,yFAAmF;QACnF;QAAA,wFAAoD;QACpD;QAAA,oIAAqF;QAExF;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACN;QAAA,0HACG;QAYN;QAAA,4DAAM;QACN;QAAA,4EACG;QAAA;QAAA,2EACG;QAAA;QAAA,0EAA2B;QAAA,4EAAe;QAAA,4DAAK;QAClD;QAAA,4DAAM;QACN;QAAA,2EACG;QAAA;QAAA,4EACG;QAAA;QAAA,2EACG;QAAA;QAAA,sFACG;QAAA;QAAA,8EAAW;QAAA,0EAAa;QAAA,4DAAY;QACpC;QAAA,yEACH;QAAA;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACN;QAAA,2EACG;QAAA;QAAA,sFACG;QAAA;QAAA,8EAAW;QAAA,0EAAa;QAAA,4DAAY;QACpC;QAAA,yEACH;QAAA;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACN;QAAA,2EACG;QAAA;QAAA,sFACG;QAAA;QAAA,8EAAW;QAAA,iEAAI;QAAA,4DAAY;QAC3B;QAAA,yEACH;QAAA;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACN;QAAA,2EACG;QAAA;QAAA,sFACG;QAAA;QAAA,8EAAW;QAAA,kEAAK;QAAA,4DAAY;QAC5B;QAAA,yEACH;QAAA;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACN;QAAA,2EACG;QAAA;QAAA,sFACG;QAAA;QAAA,8EAAW;QAAA,oEAAO;QAAA,4DAAY;QAC9B;QAAA,mFACM;QADM,gLAAmB,2BAAuB,IAAC;QACjD;QAAA,mFAA0B;QAAA,kEAAK;QAAA,4DAAa;QAC5C;QAAA,mFAAwB;QAAA,gEAAG;QAAA,4DAAa;QAC1C;QAAA,4DAAa;QACpB;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACN;QAAA,2EACG;QAAA;QAAA,sFACG;QAAA;QAAA,8EAAW;QAAA,gEAAG;QAAA,4DAAY;QAC1B;QAAA,8EACA;QAD+B,6JAAY,0BAAsB,IAAC,+FAAU,uBAAuB,IAAjC;QAAlE,4DACA;QAAA;QAAA,8EAAW;QAAA,4EAAe;QAAA,4DAAY;QACxC;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACT;QAAA,4DAAM;QACN;QAAA,4EACG;QAAA;QAAA,2EACG;QAAA;QAAA,0EAA2B;QAAA,8EAAiB;QAAA,4DAAK;QACjD;QAAA,qFAA8F;QAA/B,gKAAU,uBAAmB,IAAC;QAAC,oFAAuB;QAAA,4DAAe;QACvI;QAAA,4DAAM;QACN;QAAA,2EACG;QAAA;QAAA,sFACG;QAAA;QAAA,8EAAW;QAAA,0EAAa;QAAA,4DAAY;QACpC;QAAA,yEACH;QAAA;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACN;QAAA,2EACG;QAAA;QAAA,sFACG;QAAA;QAAA,8EAAW;QAAA,0EAAa;QAAA,4DAAY;QACpC;QAAA,yEACH;QAAA;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACN;QAAA,2EACG;QAAA;QAAA,sFACG;QAAA;QAAA,8EAAW;QAAA,iEAAI;QAAA,4DAAY;QAC3B;QAAA,yEACH;QAAA;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACN;QAAA,2EACG;QAAA;QAAA,sFACG;QAAA;QAAA,8EAAW;QAAA,kEAAK;QAAA,4DAAY;QAC5B;QAAA,yEACH;QAAA;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACN;QAAA,2EACG;QAAA;QAAA,sFACG;QAAA;QAAA,8EAAW;QAAA,oEAAO;QAAA,4DAAY;QAC9B;QAAA,mFACM;QADM,gLAAmB,2BAAuB,IAAC;QACjD;QAAA,mFAA0B;QAAA,kEAAK;QAAA,4DAAa;QAC5C;QAAA,mFAAwB;QAAA,gEAAG;QAAA,4DAAa;QAC1C;QAAA,4DAAa;QACpB;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACN;QAAA,2EACG;QAAA;QAAA,sFACG;QAAA;QAAA,8EAAW;QAAA,gEAAG;QAAA,4DAAY;QAC1B;QAAA,8EACA;QAD+B,6JAAY,0BAAsB,IAAC,+FAAU,uBAAuB,IAAjC;QAAlE,4DACA;QAAA;QAAA,8EAAW;QAAA,4EAAe;QAAA,4DAAY;QACxC;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACT;QAAA,4DAAM;QACT;QAAA,4DAAM;QACT;QAAA,4DAAM;QACN;QAAA,4EACG;QAAA;QAAA,+HAA6G;QAC7G;QAAA,+HAA+G;QAClH;QAAA,4DAAM;QACT;QAAA,4DAAO;QACV;QAAA,4DAAM;QACN;QAAA,oFAEA;QAAA;QAAA,0EAAmB;QAAA,wEAAW;QAAA,4DAAI;QACpC;QAAA,4DAAc;QACjB;;;;;;;;;;QApec,0DAAiC;QAAjC,8FAAiC;QAMd,2DAA+B;QAA/B,uGAA+B;QAGjC,0DAAiE;QAAjE,+HAAiE;QAK/D,0DAA+B;QAA/B,uGAA+B;QAM/B,2DAA+B;QAA/B,uGAA+B;QAKjC,2DAAgE;QAAhE,8HAAgE;QAK9D,0DAA+B;QAA/B,uGAA+B;QAK7B,2DAA8B;QAA9B,kFAA8B;QAGlC,0DAA8D;QAA9D,4HAA8D;QAK5D,0DAA+B;QAA/B,uGAA+B;QAIrC,0DAAe;QAAf,4EAAe;QACW,0DAA2C;QAA3C,yGAA2C;QAI3C,0DAAiB;QAAjB,oEAAiB;QAEvC,0DAAiE;QAAjE,+HAAiE;QAM/D,0DAA+B;QAA/B,uGAA+B;QAG7B,0DAAqC;QAArC,yFAAqC;QAMvC,0DAA+B;QAA/B,uGAA+B;QAK7B,2DAAgC;QAAhC,oFAAgC;QAGpC,0DAAkE;QAAlE,gIAAkE;QAKhE,0DAA+B;QAA/B,uGAA+B;QAGjC,0DAAuD;QAAvD,qHAAuD;QAIrD,0DAA+B;QAA/B,uGAA+B;QAGjC,0DAAuD;QAAvD,qHAAuD;QAIrD,0DAA+B;QAA/B,uGAA+B;QAKjC,2DAAgE;QAAhE,8HAAgE;QAElE,0DAA+D;QAA/D,6HAA+D;QAK3D,0DAA+B;QAA/B,uGAA+B;QAKjC,2DAAgE;QAAhE,8HAAgE;QAK9D,0DAA+B;QAA/B,uGAA+B;QAGjC,0DAAqE;QAArE,mIAAqE;QAInE,0DAA+B;QAA/B,uGAA+B;QAKjC,2DAAqD;QAArD,mHAAqD;QAInD,0DAA+B;QAA/B,uGAA+B;QAGjC,0DAA0D;QAA1D,wHAA0D;QAIxD,0DAA+B;QAA/B,uGAA+B;QAGjC,0DAAiE;QAAjE,+HAAiE;QAI/D,0DAA+B;QAA/B,uGAA+B;QAEgD,0DAAuC;QAAvC,+EAAuC;QAClG,0DAAuD;QAAvD,qHAAuD;QAIvD,0DAA6B;QAA7B,qEAA6B;QAKjD,0DAA+B;QAA/B,uGAA+B;QAGjC,0DAAkE;QAAlE,gIAAkE;QAIhE,0DAA+B;QAA/B,uGAA+B;QAGjC,0DAAiE;QAAjE,+HAAiE;QAI/D,0DAA+B;QAA/B,uGAA+B;QAIrC,0DAAa;QAAb,0EAAa;QAEa,0DAAuD;QAAvD,qHAAuD;QAIvD,0DAA6B;QAA7B,qEAA6B;QAEnD,0DAA6E;QAA7E,2IAA6E;QAK3E,0DAA+B;QAA/B,uGAA+B;QAGjC,0DAAuD;QAAvD,qHAAuD;QAIrD,0DAA+B;QAA/B,uGAA+B;QAK7B,2DAAsM;QAAtM,4QAAsM;QACtM,0DAAuM;QAAvM,6QAAuM;QAIzM,0DAA+B;QAA/B,uGAA+B;QAIwC,0DAA+B;QAA/B,+EAA+B;QAClF,0DAA+C;QAA/C,6GAA+C;QAI/C,0DAAqB;QAArB,qEAAqB;QAE3C,0DAAqE;QAArE,mIAAqE;QAKnE,0DAA+B;QAA/B,uGAA+B;QAK7B,2DAAkC;QAAlC,sFAAkC;QAEnC,0DAAiE;QAAjE,+HAAiE;QAMlE,0DAA+B;QAA/B,uGAA+B;QAKd,0DAAwB;QAAxB,iFAAwB;QACvB,0DAA6C;QAA7C,2GAA6C;QAKqB,0DAAoD;QAApD,oKAAoD;QAK1I,0DAAmE;QAAnE,iIAAmE;QAMjE,0DAA+B;QAA/B,uGAA+B;QAKkD,2DAAmC;QAAnC,uFAAmC;QAEnH,0DAAiE;QAAjE,+HAAiE;QAOjE,0DAA+B;QAA/B,uGAA+B;QAGf,0DAAyB;QAAzB,iFAAyB;QACvB,0DAA4C;QAA5C,0GAA4C;QAIhC,0DAAyB;QAAzB,sFAAyB;QACrD,0DAA0C;QAA1C,6FAA0C;QAQ7C,0DAA+B;QAA/B,uGAA+B;QAKgE,2DAAgC;QAAhC,oFAAgC;QAE9H,0DAAsE;QAAtE,oIAAsE;QAMvE,0DAA+B;QAA/B,uGAA+B;QAK7B,2DAAyC;QAAzC,6FAAyC;QAE1C,0DAAoE;QAApE,kIAAoE;QAMrE,0DAA+B;QAA/B,uGAA+B;QAK7B,2DAA6B;QAA7B,iFAA6B;QAGjC,0DAAwE;QAAxE,sIAAwE;QAKtE,0DAA+B;QAA/B,uGAA+B;QAG7B,0DAAgC;QAAhC,qFAAgC;QAMlC,0DAA+B;QAA/B,uGAA+B;QAErC,0DAAa;QAAb,0EAAa;QACa,0DAA8C;QAA9C,4GAA8C;QAI9C,0DAAoB;QAApB,qEAAoB;QAE1C,0DAAoE;QAApE,kIAAoE;QAKlE,0DAA+B;QAA/B,uGAA+B;QAEnC,0DAAa;QAAb,0EAAa;QACW,0DAAmD;QAAnD,iHAAmD;QAInD,0DAAyB;QAAzB,qEAAyB;QAE/C,0DAAyE;QAAzE,uIAAyE;QAIrF,0DAAkB;QAAlB,gFAAkB;QAmBH,2DAAmB;QAAnB,4EAAmB;QAEd,0DAA+B;QAA/B,uGAA+B;QAM/B,2DAA+B;QAA/B,uGAA+B;QAM/B,2DAA+B;QAA/B,uGAA+B;QAM/B,2DAA+B;QAA/B,uGAA+B;QAM/B,2DAA+B;QAA/B,uGAA+B;QAS/B,2DAA+B;QAA/B,uGAA+B;QAEyD,0DAA0B;QAA1B,uFAA0B;QAKvH,0DAAmB;QAAnB,4EAAmB;QAGA,0DAAgC;QAAhC,6FAAgC;QAG9C,0DAA+B;QAA/B,uGAA+B;QAM/B,2DAA+B;QAA/B,uGAA+B;QAM/B,2DAA+B;QAA/B,uGAA+B;QAM/B,2DAA+B;QAA/B,uGAA+B;QAM/B,2DAA+B;QAA/B,uGAA+B;QAS/B,2DAA+B;QAA/B,uGAA+B;QAEyD,0DAA0B;QAA1B,uFAA0B;QAQtF,2DAAqB;QAArB,mFAAqB;QACrB,0DAAqB;QAArB,mFAAqB;QAIzB,0DAAmB;QAAnB,4EAAmB;;6FDxbrE,wBAAwB;cALpC,uDAAS;eAAC;gBACT,QAAQ,EAAE,sBAAsB;gBAChC,WAAW,EAAE,mCAAmC;gBAChD,SAAS,EAAE,CAAC,mCAAmC,CAAC;aACjD;0wBAgBU,IAAI;kBAAZ,mDAAK;YAyCI,eAAe;kBAAxB,oDAAM;YACsB,sBAAsB;kBAAlD,uDAAS;mBAAC,gBAAgB;YACO,sBAAsB;kBAAvD,uDAAS;mBAAC,qBAAqB;YACJ,gBAAgB;kBAA3C,uDAAS;mBAAC,eAAe;;;;;;;;;;;;;;AEpG5B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA+E;AAGtB;AAEzD,wCAAwC;AACiB;AACyB;AAGT;AACQ;AAExB;AAC0C;AAChD;AAEsD;AAEsB;;;;;;;;;;;;;;;;;;;;ICPvG,yEAAuC;IAAA;IAAA,2EAAmB;IAAA,+DAAI;IAAA,4DAAO;IAAC;IAAA,4DAAK;;;IAC3E,yEAAqF;IAAA,uDAAQ;IAAA,4DAAK;;;IAAb,0DAAQ;IAAR,qFAAQ;;;IAIhG,yEAAuC;IAAA,wEAAY;IAAA,2EAA0B;IAAA,4DAAC;IAAA,4DAAO;IAAA,4DAAK;;;IAMnF,iFAAyD;IAAA,uDAAW;IAAA,4DAAa;;;IAAxC,8EAAe;IAAC,0DAAW;IAAX,4EAAW;;;IAExE,4EAA8E;IAAA,kFAAuB;IAAA,4DAAY;;;;IAPpH,yEACG;IAAA;IAAA,qFACE;IAAA;IAAA,iFAEE;IAFkE,sWAAsC,mYACnD,UAAU,qBADyC;IAExG;IAAA,4EAAwC;IACxC;IAAA,iJAAyD;IAC7D;IAAA,4DAAa;IACb;IAAA,iJAA8E;IAClF;IAAA,4DAAiB;IACjB;IAAA,4DAAK;;;;;IATgF,gFAAmB;IACpF,0DAA+B;IAA/B,0GAA+B;IACJ,0DAA0B;IAA1B,uFAA0B;IAGrD,0DAA4B;IAA5B,sFAA4B;IAEjC,0DAAkE;IAAlE,uIAAkE;;;IAM7E,yEAAuC;IAAA,+EAAmB;IAAA,2EAA0B;IAAA,4DAAC;IAAA,4DAAO;IAAA,4DAAK;;;IAM7F,4EAAsF;IAAA,wFAA6B;IAAA,4DAAY;;;;IALnI,yEACA;IAAA;IAAA,qFACK;IAAA;IAAA,4EAGD;IAFmC,sOAAS,uBAAuB,IAAC,6pBACd,kBAAkB,4BADJ;IADnE,4DAGD;IAAA;IAAA,+IAAsF;IACxF;IAAA,4DAAiB;IACnB;IAAA,4DAAK;;;;;IAP+E,gFAAmB;IACvF,0DAA+B;IAA/B,0GAA+B;IAE3C,0DAAkC;IAAlC,+FAAkC;IAEvB,0DAA0E;IAA1E,+IAA0E;;;IAM5F,yEAAuC;IAAA,0EAAc;IAAA,2EAA0B;IAAA,4DAAC;IAAA,4DAAO;IAAA,4DAAK;;;IAMjF,4EAAiF;IAAA,mFAAwB;IAAA,4DAAY;;;IACrH,4EAAkF;IAAA,wFAA6B;IAAA,4DAAY;;;IAC3H,4EAAgF;IAAA,mFAAwB;IAAA,4DAAY;;;;IAPhI,yEACQ;IAAA;IAAA,qFACI;IAAA;IAAA,4EAGA;IAFA,uaAAiD,aAAa,4BAAwB,8KAC7E,uBAAuB,IADsD;IADtF,4DAGA;IAAA;IAAA,+IAAiF;IACjF;IAAA,+IAAkF;IAClF;IAAA,iJAAgF;IAEpF;IAAA,4DAAiB;IACxB;IAAA,4DAAK;;;;;IAV+E,gFAAmB;IAChF,0DAA+B;IAA/B,0GAA+B;IACe,0DAA6B;IAA7B,0FAA6B;IAG5E,0DAAqE;IAArE,0IAAqE;IACrE,0DAAsE;IAAtE,2IAAsE;IACtE,0DAAoE;IAApE,yIAAoE;;;IAO1F,yEAAuC;IAAA,8EAAkB;IAAA,2EAA0B;IAAA,4DAAC;IAAA,4DAAO;IAAA,4DAAK;;;IAMrF,4EAA8E;IAAA,+EAAoB;IAAA,4DAAY;;;IAC9G,4EAA6E;IAAA,4GAAiD;IAAA,4DAAY;;;;IANrJ,yEACO;IAAA;IAAA,qFACI;IAAA;IAAA,4EAGA;IAFA,sOAAS,uBAAuB,IAAC,4WAA+C,UAAU,4BAAzD;IADjC,4DAGA;IAAA;IAAA,+IAA8E;IAC9E;IAAA,+IAA6E;IAEjF;IAAA,4DAAiB;IACxB;IAAA,4DAAK;;;;;IAT+E,gFAAmB;IAChF,0DAA+B;IAA/B,2GAA+B;IACa,0DAA0B;IAA1B,uFAA0B;IAGvE,0DAAkE;IAAlE,wIAAkE;IAClE,0DAAiE;IAAjE,uIAAiE;;;IAOpF,yEAAuC;IAAA,8EAAkB;IAAA,2EAA0B;IAAA,4DAAC;IAAA,4DAAO;IAAA,4DAAK;;;IAMxF,4EAAoF;IAAA,uFAA4B;IAAA,4DAAY;;;IAC5H,4EAAmF;IAAA,uFAA4B;IAAA,4DAAY;;;;IANnI,yEACC;IAAA;IAAA,qFACO;IAAA;IAAA,+EAE0G;IAD1G,yOAAS,uBAAuB,IAAC,sXACoB,iBAAiB,4BADrC;IAC8D,4DAAW;IAC1G;IAAA,+IAAoF;IACpF;IAAA,+IAAmF;IAE1F;IAAA,4DAAiB;IAClB;IAAA,4DAAK;;;;;IAT+E,gFAAmB;IACtF,0DAA+B;IAA/B,2GAA+B;IACwB,0DAAiC;IAAjC,8FAAiC;IAGtF,0DAAwE;IAAxE,8IAAwE;IACxE,0DAAuE;IAAvE,6IAAuE;;;IAOtF,yEAAuC;IAAA,oEAAQ;IAAA,4DAAK;;;;IACpD,yEACI;IAAA;IAAA,6EACA;IADsC,2UAAwB;IAC9D;IAAA,2EAAW;IAAA,8DAAG;IAAA,4DAAW;IAAA,4DAAS;IAAC;IAAA,4DAAK;;;IADuB,0DAAe;IAAf,4EAAe;;;IAIlF,yEAAuC;IAAA;IAAA,4DAAK;;;;IAC5C,yEACI;IAAA;IAAA,6EACA;IADsC,mWAAmB;IACzD;IAAA,2EAAU;IAAA,iEAAM;IAAA,4DAAW;IAAA,4DAAS;IAAC;IAAA,4DAAK;;;;IADe,0DAAmB;IAAnB,sFAAmB;;;IAOzF,oEAA4D;;;IAC5D,oEAAkE;;;;IAQrD,6EACI;IAD4E,2VAA4B;IACxG,uIACJ;IAAA,4DAAS;;;;IACX,6EACK;IAD2E,2VAA4B;IACvG,uIACJ;IAAA,4DAAS;;;IA7GnC,0EACE;IAAA;IAAA,yEACK;IAAA;IAAA,yEACE;IAAA;IAAA,yEACF;IAAA;IAAA,2EACQ;IAAA;IAAA,6EACI;IAAA;IAAA,6HAAuC;IACvC;IAAA,6HAAqF;IAC1F;IAAA,qEAAe;IAEf;IAAA,6EACE;IAAA;IAAA,6HAAuC;IACvC;IAAA,8HACG;IASL;IAAA,qEAAe;IAEf;IAAA,6EACK;IAAA;IAAA,6HAAuC;IACvC;IAAA,6HACA;IAOL;IAAA,qEAAe;IAEf;IAAA,6EACE;IAAA;IAAA,6HAAuC;IACxC;IAAA,8HACQ;IAUT;IAAA,qEAAe;IAEf;IAAA,6EACE;IAAA;IAAA,6HAAuC;IACvC;IAAA,8HACO;IAST;IAAA,qEAAe;IAEf;IAAA,6EACK;IAAA;IAAA,6HAAuC;IACvC;IAAA,8HACC;IASL;IAAA,qEAAe;IAEf;IAAA,6EACQ;IAAA;IAAA,6HAAuC;IACvC;IAAA,6HACI;IAEX;IAAA,qEAAe;IACf;IAAA,6EACO;IAAA;IAAA,6HAAuC;IACvC;IAAA,6HACI;IAEX;IAAA,qEAAe;IAKjB;IAAA,6HAAuD;IACvD;IAAA,6HAA6D;IAE/D;IAAA,4DAAQ;IACb;IAAA,4DAAM;IACD;IAAA,0EACO;IAAA;IAAA,2EACK;IAAA;IAAA,iEAAI;IAAA,iEACL;IAAA;IAAA,+EACI;IAAA;IAAA,qIACI;IAEN;IAAA,qIACK;IAEN;IAAA,4DAAU;IACf;IAAA,4DAAM;IACd;IAAA,4DAAM;IACN;IAAA,4DAAM;IACR;IAAA,4DAAM;IACf;IAAA,4DAAO;;;IAnHmB,wFAAwB;IAI1B,0DAAuB;IAAvB,uFAAuB;IA2Fd,2DAAmC;IAAnC,oGAAmC;IAC1C,0DAAgD;IAAhD,qGAAgD;IAQU,2DAAqB;IAArB,sFAAqB;IAGxB,0DAAqB;IAArB,sFAAqB;;AD7EpG,MAAM,yBAAyB;IA+BpC,YAAmB,MAAiB;IAClC,qCAAqC;IACrC,+CAA+C;IACN,QAAiC,EAClE,cAA6B,EAC7B,SAAsB,EAEtB,iBAAoC,EACpB,OAAe,EAC/B,QAAwB,EACxB,OAA0B;QAVjB,WAAM,GAAN,MAAM,CAAW;QAGO,aAAQ,GAAR,QAAQ,CAAyB;QAClE,mBAAc,GAAd,cAAc,CAAe;QAC7B,cAAS,GAAT,SAAS,CAAa;QAEtB,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpB,YAAO,GAAP,OAAO,CAAQ;QAC/B,aAAQ,GAAR,QAAQ,CAAgB;QACxB,YAAO,GAAP,OAAO,CAAmB;QArCpC,eAAU,GAAG,IAAI,iEAAS,EAAE,CAAC;QAM7B,UAAK,GAAU,EAAE,CAAC;QAClB,cAAS,GAAG,KAAK,CAAC;QAClB,SAAI,GAAW,KAAK,CAAC;QAGrB,eAAU,GAAiB,EAAE,CAAC;QAC9B,qBAAgB,GAAY,KAAK,CAAC;QAClC,qBAAgB,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QAKpD,qBAAgB,GAAa,CAAC,IAAI,EAAE,UAAU,EAAE,kBAAkB,EAAE,aAAa,EAAE,UAAU,EAAE,iBAAiB,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QAIvI,SAAI,GAAG,CAAC,CAAC;QAkBP,IAAI,CAAC,QAAQ,GAAG,IAAI,KAAK,EAAY,CAAC;QAEtC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC;IAElC,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;QACnB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACtC,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC;QACH,iBAAiB;QACjB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,CAAC,SAAS,CAAC,CAAC,GAAU,EAAE,EAAE;YAC3D,GAAG,CAAC,OAAO,CAAC,CAAC,OAAY,EAAE,EAAE;gBAC3B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;oBACnB,KAAK,EAAE,OAAO,CAAC,UAAU;oBACzB,KAAK,EAAE,OAAO,CAAC,QAAQ;iBACxB,CAAC,CAAC;YACL,CAAC,CAEA,CAAC;YACF,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;gBACjE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;gBACnB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;gBACpB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC9B,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;iBACpB;gBACD,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC9B,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;iBACnB;gBACD,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE;oBAC7B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;wBACjB,EAAE,EAAE,CAAC;wBACL,QAAQ,EAAE,IAAI;wBACd,YAAY,EAAE,EAAE;wBAChB,gBAAgB,EAAE,EAAE;wBACpB,WAAW,EAAE,EAAE;wBACf,QAAQ,EAAE,EAAE;wBACZ,eAAe,EAAE,EAAE;wBACnB,QAAQ,EAAE,IAAI;qBACf,CAAC,CAAC;iBACJ;gBACD,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC;YAClC,CAAC,EAAC,CAAC,KAAK,EAAC,EAAE;gBACT,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YACrB,CAAC,CAAC,CAAC;QACL,CAAC,EAAC,CAAC,KAAK,EAAC,EAAE;YACT,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;QACrB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAE3B,CAAC;IACD,iBAAiB;QACf,IAAI,CAAC,UAAU,GAAG,IAAI,wDAAS,CAAC;YAC9B,YAAY,EAAE,IAAI,wDAAS,CAAC,EAAE,CAAC;SAChC,CAAC,CAAC;IACL,CAAC;IAED,eAAe;QACb,IAAI,CAAC,YAAY,GAAG,IAAI,wDAAS,CAAC,EAAE,CAAC,CAAC;QACtC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YAC9B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAc,CAAC;YACrE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,SAAS,CAAC,OAAO;QACf,2CAA2C;QAC3C,OAAO,GAAG,OAAO,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC3J,OAAO,IAAI,wDAAS,CAAC;YACnB,QAAQ,EAAE,IAAI,0DAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAClE,gBAAgB,EAAE,IAAI,0DAAW,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YAC7G,WAAW,EAAE,IAAI,0DAAW,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,yDAAU,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;YACvI,QAAQ,EAAE,IAAI,0DAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,yDAAU,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;YAChI,cAAc,EAAE,IAAI,0DAAW,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;SAElH,CAAC,CAAC;IACL,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAc,CAAC;IAC1D,CAAC;IAED,gBAAgB,CAAC,CAAM;QACrB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAExE,CAAC;IACD,wBAAwB,CAAC,CAAM;QAC7B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IACxF,CAAC;IACD,mBAAmB,CAAC,CAAM;QACxB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAC9E,CAAC;IACD,gBAAgB,CAAC,CAAM;QACrB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACxE,CAAC;IACD,sBAAsB,CAAC,CAAM;QAC3B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;IACrF,CAAC;IAGD,aAAa;QAEX,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,CAAC,SAAS,CAAC,CAAC,GAAU,EAAE,EAAE;YAC3D,GAAG,CAAC,OAAO,CAAC,CAAC,OAAY,EAAE,EAAE;gBAC3B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;oBACnB,KAAK,EAAE,OAAO,CAAC,UAAU;oBACzB,KAAK,EAAE,OAAO,CAAC,QAAQ;iBACxB,CAAC,CAAC;YACL,CAAC,CAEA,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9B,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;SACpB;aAAM;YACL,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;SACnB;IACH,CAAC;IAED,uBAAuB,CAAC,OAAiB;QACvC,IACE,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;YACxB,OAAO;YACP,OAAO,CAAC,QAAQ,IAAI,IAAI;YACxB,OAAO,CAAC,gBAAgB,KAAK,EAAE;YAC/B,OAAO,CAAC,WAAW,KAAK,EAAE,EAC1B;YACA,OAAO,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;YAC3D,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YACjD,IAAI,WAAW,GAAe,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,aAAuB,EAAE,EAAE;gBAC7E,OAAO,CACL,aAAa,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ;oBAC1C,aAAa,CAAC,gBAAgB,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,gBAAgB,CAAC,WAAW,EAAE;oBACvF,aAAa,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,CAC9E,CAAC;YACJ,CAAC,CAAC;YACF,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC1B,OAAO,IAAI,CAAC;aACb;iBACI;gBACH,OAAO,KAAK,CAAC;aACd;SACF;IACH,CAAC;IAED,QAAQ,CAAC,OAAmB;QAC1B,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACtB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,uBAAuB,CAClD,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAC5B,CAAC;SACH;QACD,6BAA6B;QAC7B,qBAAqB;QACrB,IAAI;QACJ,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;YACvB,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;SAC1B;aACI;YACH,IAAI,CAAC,IAAI,GAAG,MAAM;YAClB,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;SAC5B;QAED,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI,EAAE;YAClC,KAAK,CAAC,gCAAgC,CAAC,CAAC;YACxC,iIAAiI;YACjI,gDAAgD;YAChD,OAAO,KAAK,CAAC;SACd;QAED,IAAI,IAAI,CAAC,UAAU,KAAK,MAAM,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE;YAC9D,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACnC,OAAO,IAAI,CAAC;SACb;IAEH,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;IAC3B,CAAC;IAED,uBAAuB;QACrB,IAAI,CAAC,UAAU,GAAG,eAAe,CAAC;IACpC,CAAC;IAED,YAAY;QACV,IAAI,IAAI,CAAC,cAAc,IAAI,SAAS,EAAE;YACpC,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE,CAAC;YACvC,IAAI,CAAC,6BAA6B,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YACpE,IAAI,CAAC,6BAA6B,CAAC,kBAAkB,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YAC5E,IAAI,CAAC,6BAA6B,CAAC,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YACvE,IAAI,CAAC,6BAA6B,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YACpE,IAAI,CAAC,6BAA6B,CAAC,gBAAgB,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;SAC3E;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE;YAC/C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACjB,EAAE,EAAE,CAAC;gBACL,QAAQ,EAAE,IAAI;gBACd,YAAY,EAAE,EAAE;gBAChB,gBAAgB,EAAE,EAAE;gBACpB,WAAW,EAAE,EAAE;gBACf,QAAQ,EAAE,EAAE;gBACZ,eAAe,EAAE,EAAE;gBACnB,QAAQ,EAAE,IAAI;aACf,CAAC,CAAC;YACH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAc,CAAC;YACrE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC1D,EAAE,EAAE,CAAC;gBACL,QAAQ,EAAE,IAAI;gBACd,YAAY,EAAE,EAAE;gBAChB,gBAAgB,EAAE,EAAE;gBACpB,WAAW,EAAE,EAAE;gBACf,QAAQ,EAAE,EAAE;gBACZ,eAAe,EAAE,EAAE;gBACnB,QAAQ,EAAE,IAAI;aACf,CAAC,CAAC,CAAC;YACJ,IAAI,CAAC,yBAAyB,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YAChE,IAAI,CAAC,yBAAyB,CAAC,kBAAkB,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YACxE,IAAI,CAAC,yBAAyB,CAAC,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YACnE,IAAI,CAAC,yBAAyB,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YAChE,IAAI,CAAC,yBAAyB,CAAC,gBAAgB,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YACtE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC;YAChC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;SACd;aACI;YACH,OAAO,KAAK,CAAC;SACd;IACH,CAAC;IAED,yBAAyB,CAAC,WAAmB,EAAE,mBAA8B;QAC3E,mBAAmB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC1D,mBAAmB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,eAAe,EAAE,CAAC;QAC5D,mBAAmB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,sBAAsB,EAAE,CAAC;IACrE,CAAC;IAED,6BAA6B,CAAC,eAAuB,EAAE,cAAyB;QAC9E,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;QAC7E,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,sBAAsB,EAAE,CAAC;QAClE,IAAI,eAAe,KAAK,UAAU,EAAE;YAClC,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC7E,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,sBAAsB,EAAE,CAAC;SACnE;aACI,IAAI,eAAe,KAAK,kBAAkB,EAAE;YAC/C,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YACxG,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,sBAAsB,EAAE,CAAC;SACnE;aACI,IAAI,eAAe,KAAK,aAAa,EAAE;YAC1C,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,yDAAU,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;YAC5I,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,sBAAsB,EAAE,CAAC;SACnE;aACI,IAAI,eAAe,KAAK,UAAU,EAAE;YACvC,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,yDAAU,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;YAC3I,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,sBAAsB,EAAE,CAAC;SACnE;aACI,IAAI,eAAe,KAAK,gBAAgB,EAAE;YAC7C,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;YAC/G,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,sBAAsB,EAAE,CAAC;SACnE;IACH,CAAC;IAED,cAAc,CAAC,IAAqB;QAClC,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;YACvB,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;SAC1B;aACI;YACH,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;SAC5B;QACD,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,EAAE;YACrC,IAAI,CAAC,6BAA6B,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YACpE,IAAI,CAAC,6BAA6B,CAAC,kBAAkB,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YAC5E,IAAI,CAAC,6BAA6B,CAAC,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YACvE,IAAI,CAAC,6BAA6B,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YACpE,IAAI,CAAC,6BAA6B,CAAC,gBAAgB,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;SAC3E;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpC,IACE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW;gBACpB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,gBAAgB;gBACzB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ;gBACjB,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC;gBACrB,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG;gBAC5C,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC;gBACtE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EACjB;gBACA,wHAAwH;gBACxH,wDAAwD;gBACxD,OAAO,KAAK,CAAC;aACd;SACF;QACD,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI,EAAE;YAClC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;gBAClE,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACH,iIAAiI;YACjI,gDAAgD;YAChD,OAAO,KAAK,CAAC;SACd;QACD,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;QAC1C,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,EAAE,CAAC;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;SACxC;QAED,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CACzD,IAAI,CAAC,EAAE;YACL,IAAI,IAAI,CAAC,IAAI,IAAI,KAAK;gBACpB,IAAI,CAAC,QAAQ,GAAG,qCAAqC;;gBAErD,IAAI,CAAC,QAAQ,GAAG,uCAAuC;YAEzD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE;gBACtC,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACH,IAAI,CAAC,aAAa,EAAE,CAAC;QAEvB,CAAC,EACD,KAAK,CAAC,EAAE;YACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iCAAiC,EAAE,GAAG,EAAE;gBAC1D,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QAEL,CAAC,CACF,CAAC;QAEF,gBAAgB;IAClB,CAAC;IAED,MAAM,CAAC,KAAa;QAClB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,yBAAyB,EAAE,KAAK,CAAC,CAAC;IACpE,CAAC;IAGD,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK;QAChC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8GAAqB,EAAE;YACxD,YAAY,EAAE,IAAI;YAClB,WAAW,EAAE,IAAI;YACjB,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE;SAC7C,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;YAC7B,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE;gBAC/B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBACpC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAChC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACvC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;gBACxB,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6IAAsB,EAAE;oBAC1D,YAAY,EAAE,IAAI;oBAClB,WAAW,EAAE,IAAI;oBACjB,KAAK,EAAE,OAAO;oBACd,IAAI,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,sCAAsC,EAAE;iBACnF,CAAC;aACH;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,WAAW,CAAC,KAAU;QACpB,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,WAAW,CAAC,KAAU,EAAE,eAAoB;QAC1C,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QAChC,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC/D,IAAI,KAAK,IAAI,CAAC,EAAE;YACd,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oCAAoC,EAAE,GAAG,EAAE;gBAC7D,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACH,0HAA0H;YAC1H,4DAA4D;SAC7D;IACH,CAAC;IACD,eAAe,CAAC,KAAU,EAAE,eAAoB;QAC9C,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CACvB,eAAe,CAAC,WAAW,EAC3B,eAAe,CAAC,MAAM,CACvB,CAAC;QACF,IAAI,KAAK,IAAI,CAAC,EAAE;YACd,eAAe,CAAC,WAAW,GAAG,EAAE,CAAC;YACjC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oCAAoC,EAAE,GAAG,EAAE;gBAC7D,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACH,0HAA0H;YAC1H,4DAA4D;SAC7D;IACH,CAAC;IACD,QAAQ,CAAC,WAAgB,EAAE,MAAW;QACpC,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAM,EAAE,EAAE;YAC/B,IACE,CAAC,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC,WAAW,EAAE;gBACzD,CAAC,CAAC,MAAM,KAAK,MAAM,EACnB;gBACA,KAAK,EAAE,CAAC;aACT;QACH,CAAC,CAAC,CAAC;QACH,OAAO,KAAK,CAAC;IACf,CAAC;IAED,iBAAiB,CAAC,KAAU;QAC1B,IAAI,CAAM,CAAC;QACX,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,iDAAiD;QACrE,OAAO,CACL,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;YAClB,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC;YACnB,CAAC,KAAK,CAAC;YACP,CAAC,KAAK,EAAE;YACR,CAAC,KAAK,EAAE;YACR,CAAC,KAAK,EAAE;YACR,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CACrB,CAAC;IACJ,CAAC;;kGA7dU,yBAAyB,wMAkC1B,0FAAuB,kfAKvB,sDAAM;yGAvCL,yBAAyB;kEAyBzB,iEAAkB;;kEAIlB,gEAAQ;;;;;;qFA/BR,CAAC,0FAAuB,EAAE,2EAAa,EAAE,mFAAiB,CAAC;QClCxE,yEACQ;QAAA;QAAA,yEACQ;QAAA;QAAA,wEAA2B;QAAA,mEAAQ;QAAA,4DAAK;QAChD;QAAA,4DAAM;QACV;QAAA,4DAAM;QAEL;QAAA,wHACE;QAmHH;QAAA,kFAEE;QAAA;QAAA,wEAAmB;QAAA,uEAAW;QAAA,4DAAI;QACpC;QAAA,4DAAc;QAEhB;;QAzHU,0DAAkB;QAAlB,gFAAkB;QAoHgC,0DAAmB;QAAnB,4EAAmB;;6FDtFpE,yBAAyB;cANrC,uDAAS;eAAC;gBACT,QAAQ,EAAE,sBAAsB;gBAChC,WAAW,EAAE,mCAAmC;gBAChD,SAAS,EAAE,CAAC,mCAAmC,CAAC;gBAChD,SAAS,EAAE,CAAC,0FAAuB,EAAE,2EAAa,EAAE,mFAAiB,CAAC;aACvE;;sBAmCI,oDAAM;uBAAC,0FAAuB;;sBAK9B,oDAAM;uBAAC,sDAAM;4KAde,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;YAEF,YAAY;kBAAtC,uDAAS;mBAAC,cAAc;YAEJ,KAAK;kBAAzB,uDAAS;mBAAC,gEAAQ;;;;;;;;;;;;;;AEjErB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AAKA;AACF;AACV;AAEG;AAEnB;;;;;;;;;;;;;ICAjB,yEAAgF;IAAA,iEAAK;IAAA,4DAAK;;;IAC1F,yEAAyC;IAAA,uDAAqB;IAAA,4DAAK;;;IAA1B,0DAAqB;IAArB,gGAAqB;;;IAI9D,yEAAgF;IAAA,wEAAY;IAAA,4DAAK;;;IACjG,yEAAyC;IAAA,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,oGAAyB;;;IAIlE,yEAAgF;IAAA,uEAAW;IAAA,4DAAK;;;IAChG,yEAAyC;IAAA,uDAA4B;IAAA,4DAAK;;;IAAjC,0DAA4B;IAA5B,uGAA4B;;;IAIrE,yEAA+E;IAAA,wEAAa;IAAA,4DAAK;;;IACjG,yEAAyC;IAAA,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,oGAAyB;;;IAIlE,yEAA+E;IAAA,mEAAQ;IAAA,4DAAK;;;IAC5F,yEAAyC;IAAA,uDAA2B;IAAA,4DAAK;;;IAAhC,0DAA2B;IAA3B,sGAA2B;;;IAIpE,yEAAuC;IAAA,iEAAK;IAAA,4DAAK;;;;IACjD,yEACE;IAAA;IAAA,+EAA6D;IAA3B,mXAA0B;IAAC,+DAAI;IAAA,4DAAW;IAC9E;IAAA,4DAAK;;;IAIL,yEAAuC;IAAA,oEAAQ;IAAA,4DAAK;;;;IACpD,yEACE;IAAA;IAAA,4EAAoF;IAA9B,oXAA6B;IAAC,kEAAO;IAAA,4DAAS;IACtG;IAAA,4DAAK;;;IAEP,oEAA4D;;;IAC1D,oEAAkE;;;IAClE,yEACA;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAC7C;IAAA,4DAAK;;;ADhCd,MAAM,6BAA6B;IAkBxC,YAAoB,4BAAyD,EAAS,UAAsB,EAAU,OAAe,EAAU,OAA0B;QAArJ,iCAA4B,GAA5B,4BAA4B,CAA6B;QAAS,eAAU,GAAV,UAAU,CAAY;QAAU,YAAO,GAAP,OAAO,CAAQ;QAAU,YAAO,GAAP,OAAO,CAAmB;QAfzK,qBAAgB,GAAa;YAC3B,SAAS;YACT,aAAa;YACb,YAAY;YACZ,aAAa;YACb,eAAe;YACf,MAAM;YACN,SAAS;SACV,CAAC;QAQA,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAChC,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,EAAE;YAC9D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,wBAAwB,EAAE,CAAC;IAClC,CAAC;IACD,wBAAwB;QACtB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,4BAA4B,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YAC9D,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC;YAC9B,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAM,EAAE,EAAE;gBACzC,CAAC,CAAC,WAAW,GAAG,mCAAM,CAAC,CAAC,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAC3E,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAClE,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACjC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,sFAAsF;YACtF,IAAI,CAAC,UAAU,CAAC,mBAAmB,GAAG,CAAC,IAAS,EAAE,YAAoB,EAAU,EAAE;gBAChF,IAAI,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,QAAQ,EAAE;oBAC1C,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,iBAAiB,EAAE,CAAC;iBAC/C;gBAED,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC;YAC5B,CAAC,CAAC;QAEJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,YAAiB;QACtB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,uCAAuC,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;IACrF,CAAC;IAED,KAAK;QACH,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC;IACjE,CAAC;IACD,SAAS,CAAC,gBAA2B;QACnC,IAAI,OAAO,GAAG,SAAS,CAAC;QACxB,gBAAgB,CAAC,aAAa,GAAG,gBAAgB,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QAC9E,gBAAgB,CAAC,EAAE,GAAG,gBAAgB,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC;QACjG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,qCAAqC,GAAG,gBAAgB,CAAC,aAAa,GAAG,GAAG,GAAG,gBAAgB,CAAC,EAAE,GAAG,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC;IAC9I,CAAC;IAED,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,WAAW,EAAE;gBACf,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;aAC3D;iBACI;gBACH,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBAClE,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBACjC,sFAAsF;gBACtF,IAAI,CAAC,UAAU,CAAC,mBAAmB,GAAG,CAAC,IAAS,EAAE,YAAoB,EAAU,EAAE;oBAChF,IAAI,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,QAAQ,EAAE;wBAC1C,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,iBAAiB,EAAE,CAAC;qBAC/C;oBAED,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC;gBAC5B,CAAC,CAAC;aACH;SACF;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAClE,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACjC,sFAAsF;YACtF,IAAI,CAAC,UAAU,CAAC,mBAAmB,GAAG,CAAC,IAAS,EAAE,YAAoB,EAAU,EAAE;gBAChF,IAAI,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,QAAQ,EAAE;oBAC1C,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,iBAAiB,EAAE,CAAC;iBAC/C;gBAED,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC;YAC5B,CAAC,CAAC;SACH;IACH,CAAC;;0GAlGU,6BAA6B;6GAA7B,6BAA6B;kEAc7B,iEAAkB;wEAClB,wEAAY;wEACZ,8DAAO;;;;;;;QClCpB;QAAA,2EACI;QAAA;QAAA,mFACE;QAAA;QAAA,yEACE;QAAA;QAAA,4EAAwE;QAAlB,qJAAS,WAAO,IAAC;QAAC,8DAAG;QAAA,4DAAS;QACtF;QAAA,4DAAM;QAEN;QAAA,0EACE;QAAA;QAAA,4EACI;QAAA;QAAA,4EACI;QAAA;QAAA,yHAAgF;QAChF;QAAA,yHAAyC;QAC3C;QAAA,qEAAe;QAEf;QAAA,4EACE;QAAA;QAAA,yHAAgF;QAChF;QAAA,yHAAyC;QAC3C;QAAA,qEAAe;QAEf;QAAA,4EACE;QAAA;QAAA,yHAAgF;QAChF;QAAA,yHAAyC;QAC3C;QAAA,qEAAe;QAEf;QAAA,4EACE;QAAA;QAAA,yHAA+E;QAC/E;QAAA,yHAAyC;QAC3C;QAAA,qEAAe;QAEf;QAAA,6EACE;QAAA;QAAA,yHAA+E;QAC/E;QAAA,yHAAyC;QAC3C;QAAA,qEAAe;QAEf;QAAA,6EACE;QAAA;QAAA,0HAAuC;QACvC;QAAA,yHACE;QAEJ;QAAA,qEAAe;QAEf;QAAA,6EACE;QAAA;QAAA,0HAAuC;QACvC;QAAA,yHACE;QAEJ;QAAA,qEAAe;QACf;QAAA,0HAAuD;QACrD;QAAA,0HAA6D;QAC7D;QAAA,0HACA;QAIR;QAAA,4DAAQ;QACV;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,gFAAgE;QAClE;QAAA,4DAAM;QACR;QAAA,4DAAmB;QACvB;QAAA,4DAAW;QACX;QAAA,mFAEE;QAAA;QAAA,yEAAmB;QAAA,uEAAW;QAAA,4DAAI;QACpC;QAAA,4DAAc;;QAxDW,2DAAyB;QAAzB,sFAAyB;QAuCjB,2DAAmC;QAAnC,iGAAmC;QACxC,0DAAgD;QAAhD,kGAAgD;QASrD,0DAAgC;QAAhC,kJAAgC;QAIG,0DAAoB;QAApB,6EAAoB;;6FD1CjE,6BAA6B;cALzC,uDAAS;eAAC;gBACT,QAAQ,EAAE,2BAA2B;gBACrC,WAAW,EAAE,wCAAwC;gBACrD,SAAS,EAAE,CAAC,wCAAwC,CAAC;aACtD;wXAegC,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;YACc,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACH,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AEpCtC;AAAA;AAAA;AAAA;AAAA;AAAiG;;;;;;;ICkBjE,mEAAQ;;;IAMR,iEAAM;;;IAChC,wEACE;IAAA;IAAA,4FAAoD;IACtD;IAAA,qEAAe;;;IAGW,oEAAS;;;IACnC,wEACE;IAAA;IAAA,+FAA0D;IAC5D;IAAA,qEAAe;;;IAGW,qEAAU;;;IACpC,wEACE;IAAA;IAAA,gGAA4D;IAC9D;IAAA,qEAAe;;;IAGW,uEAAY;;;IACtC,wEACE;IAAA;IAAA,kGAAgE;IAClE;IAAA,qEAAe;;;IAGW,mEAAQ;;;IAClC,wEACE;IAAA;IAAA,4FAAoD;IACtD;IAAA,qEAAe;;;IAGW,iEAAM;;;IAChC,wEACE;IAAA;IAAA,kFAAgC;IAClC;IAAA,qEAAe;;;IAGW,2EAAgB;;;IAC1C,wEACE;IAAA;IAAA,2FAAkD;IACpD;IAAA,qEAAe;;ADnDd,MAAM,+BAA+B;IAY1C,YAAoB,YAAyB,EAAS,OAAe,EAAU,QAAwB,EAAU,GAAsB;QAAnH,iBAAY,GAAZ,YAAY,CAAa;QAAS,YAAO,GAAP,OAAO,CAAQ;QAAU,aAAQ,GAAR,QAAQ,CAAgB;QAAU,QAAG,GAAH,GAAG,CAAmB;QARvI,gBAAW,GAAW,CAAC,CAAC;QAKxB,aAAQ,GAAG,KAAK,CAAC;IAGyH,CAAC;IAE3I,QAAQ;QAEN,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChF,IAAG,IAAI,CAAC,IAAI,KAAK,KAAK,EACtB;YACE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;SACtB;aACG;YACF,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;SACvB;IAEH,CAAC;IACD,kBAAkB;QAChB,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;IACA,WAAW,CAAC,KAAK;QACf,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAC;YACzB,KAAK,CAAC,sBAAsB,CAAC,UAAU,GAAG,KAAK,CAAC;YAChD,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,aAAa,CAAC;SAEtC;QACD,IAAG,KAAK,CAAC,aAAa,KAAK,CAAC,EAAC;YAC3B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;SAC1B;IACH,CAAC;IACD,QAAQ,CAAC,KAAK;QACZ,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;YACrB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;YACrB,KAAK,CAAC,YAAY,CAAC,SAAS,GAAG,OAAO,CAAC;YACvC,OAAO;SACV;QACD,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,aAAa,CAAC;IAC3C,CAAC;IAGD,eAAe,CAAC,IAAS;QACrB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC1B,CAAC;IACD,MAAM;QACF,IAAI,IAAI,CAAC,OAAO,IAAI,SAAS;YAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC;aACtF,IAAI,IAAI,CAAC,OAAO,IAAI,eAAe;YAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC;aAC7F,IAAI,IAAI,CAAC,OAAO,IAAI,MAAM;YAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC;aACxF,IAAI,IAAI,CAAC,OAAO,IAAI,KAAK;YAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;;YACxE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,uCAAuC,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,CAAC,OAAmB;QACxB,OAAO,CAAC,QAAQ,EAAE,CAAC;IACrB,CAAC;IAED,SAAS,CAAC,OAAmB;QAC3B,OAAO,CAAC,IAAI,EAAE,CAAC;IACjB,CAAC;;8GApEY,+BAA+B;+GAA/B,+BAA+B;;;;;;;;;QCZ5C,8EACE;QAAA;QAAA,yEACE;QAAA;QAAA,4EACE;QADyB,uJAAS,YAAQ,IAAC;QAC3C;QAAA,2EAAU;QAAA,qEAAU;QAAA,4DAAW;QAC/B;QAAA,0EAAiC;QAAA,gEAAI;QAAA,4DAAO;QAC9C;QAAA,4DAAS;QAET;QAAA,6EACE;QADyC,sSAAS,eAAe,IAAC;QAClE;QAAA,4EAAU;QAAA,2EAAe;QAAA,4DAAW;QAAC;QAAA,2EAAiC;QAAA,oEAAQ;QAAA,4DAAO;QACvF;QAAA,4DAAS;QAET;QAAA,6EACE;QADyC,sSAAS,kBAAkB,IAAC;QACrE;QAAA,2EAAiC;QAAA,gEAAI;QAAA,4DAAO;QAC5C;QAAA,4EAAU;QAAA,yEAAa;QAAA,4DAAW;QACpC;QAAA,4DAAS;QACX;QAAA,4DAAM;QACN;QAAA,8FACE;QADiD,gMAAmB,uBAAmB,IAAC;QACxF;QAAA,+EACE;QAAA;QAAA,6IAA0B;QAC1B;QAAA,yEACE;QAAA;QAAA,+FAA8G;QAAxF,gMAAmB,2BAAuB,IAAC;QAAsB,4DAAuB;QAChH;QAAA,qEAAe;QACjB;QAAA,4DAAW;QACX;QAAA,4EACE;QAAA;QAAA,6IAA0B;QAC1B;QAAA,gJACE;QAEJ;QAAA,4DAAW;QACX;QAAA,4EACE;QAAA;QAAA,6IAA0B;QAC1B;QAAA,gJACE;QAEJ;QAAA,4DAAW;QACX;QAAA,4EACE;QAAA;QAAA,6IAA0B;QAC1B;QAAA,gJACE;QAEJ;QAAA,4DAAW;QACX;QAAA,4EACE;QAAA;QAAA,6IAA0B;QAC1B;QAAA,gJACE;QAEJ;QAAA,4DAAW;QACX;QAAA,4EACE;QAAA;QAAA,6IAA0B;QAC1B;QAAA,gJACE;QAEJ;QAAA,4DAAW;QACX;QAAA,4EACE;QAAA;QAAA,6IAA0B;QAC1B;QAAA,gJACE;QAEJ;QAAA,4DAAW;QACX;QAAA,4EACE;QAAA;QAAA,6IAA0B;QAC1B;QAAA,gJACE;QAEJ;QAAA,4DAAW;QACb;QAAA,4DAAuB;QACzB;QAAA,4DAAW;;;QAlDsB,2DAAmB;QAAnB,gFAAmB;QACtC,0DAAyC;QAAzC,gGAAyC;QAGmB,0DAAa;QAAb,0EAAa;QAKnE,0DAA8B;QAA9B,sFAA8B;QAM9B,0DAA8B;QAA9B,sFAA8B;QAM9B,0DAA8B;QAA9B,sFAA8B;QAM9B,0DAA8B;QAA9B,sFAA8B;QAM9B,0DAA8B;QAA9B,sFAA8B;QAM9B,0DAA8B;QAA9B,sFAA8B;QAM9B,0DAA8B;QAA9B,sFAA8B;;6FDjDrC,+BAA+B;cAL3C,uDAAS;eAAC;gBACT,QAAQ,EAAE,8BAA8B;gBACxC,WAAW,EAAE,2CAA2C;gBACxD,SAAS,EAAE,CAAC,2CAA2C,CAAC;aACzD;iUAQqB,KAAK;kBAAxB,uDAAS;mBAAC,OAAO;YACE,KAAK;kBAAxB,uDAAS;mBAAC,OAAO;;;;;;;;;;;;;;AEpBpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAkD;AAC0C;AAG7D;AACY;AAEG;AAC+C;;;;;;;;;;;;;;;;;;ICR7F,sEAEI;IAAA;IAAA,yEACA;IAAA;IAAA,oEAAsD;IAAA,oEAAG;IAAA,yEAAQ;IAAA,wFAA6B;IAAA,4DAAS;IAAA,4DAAI;IAC/G;IAAA,4DAAM;IACN;IAAA,4DAAM;;;IA+D8B,iFAA0D;IAAA,uDAC1D;IAAA,4DAAa;;;IAD8B,0EAAc;IAAC,0DAC1D;IAD0D,uHAC1D;;;;IAxBpB,0EAEI;IAAA;IAAA,0EAEI;IAAA;IACA;IAAA,0EACI;IAAA;IAAA,qFACI;IAAA;IAAA,4EAAW;IAAA,sGACP;IAAA,4EAA0B;IAAA,6DAAC;IAAA,4DAAO;IACtC;IAAA,4DAAY;IACZ;IAAA,6EAGA;IADI,ySAAS,UAAiB,IAAC;IAF/B,4DAGA;IAAA;IAAA,wFAA4E;IAC5E;IAAA,uFAA6C;IACjD;IAAA,4DAAiB;IACrB;IAAA,4DAAM;IACN;IAAA,2EACI;IAAA;IAAA,sFACI;IAAA;IAAA,6EAAW;IAAA,0GACP;IAAA,4EAA0B;IAAA,6DAAC;IAAA,4DAAO;IACtC;IAAA,4DAAY;IACZ;IAAA,kFACI;IAAA;IAAA,gJAA0D;IAE9D;IAAA,4DAAa;IACjB;IAAA,4DAAiB;IACrB;IAAA,4DAAM;IACN;IAAA,2EAEG;IAAA;IAAA,sFAAiD;IAAA;IAAA,wEAChD;IAAA;IAAA,iGAAqG;IACrG;IAAA,gGAAqE;IACtE;IAAA,4DAAiB;IACpB;IAAA,4DAAM;IACN;IAAA,2EACI;IAAA;IAGI;IAAA,sFAAiD;IAAA;IAAA,wEAC7C;IAAA;IAAA,iGAAsG;IACtG;IAAA,gGAAsE;IACvE;IAAA,4DAAiB;IAE5B;IAAA,4DAAM;IACN;IAAA,2EACI;IAAA;IAAA,sFACI;IAAA;IAAA,6EAAW;IAAA,mEAAO;IAAA,4DAAY;IAC9B;IAAA,wEACJ;IAAA;IAAA,4DAAiB;IACrB;IAAA,4DAAM;IACN;IAAA,2EACI;IAAA;IAAA,8EACI;IAD6D,iWAAqB;IAClF;IAAA,4EAAW;IAAA,kEAAM;IAAA,4DAAW;IAChC;IAAA,4DAAS;IACb;IAAA,4DAAM;IAEV;IAAA,4DAAM;IACV;IAAA,4DAAM;;;;;;;IAxDG,0DAAmB;IAAnB,+EAAmB;IAIA,0DAA+B;IAA/B,0GAA+B;IAKhB,0DAA4B;IAA5B,8EAA4B;IAEtB,0DAAkB;IAAlB,oEAAkB;IAKvC,0DAA+B;IAA/B,0GAA+B;IAK3B,2DAA8B;IAA9B,qFAA8B;IAOnC,0DAA+B;IAA/B,0GAA+B;IAAkB,0DAAkC;IAAlC,8EAAkC;IACvD,0DAAwB;IAAxB,oEAAwB;IAQ/C,2DAA+B;IAA/B,0GAA+B;IAAkB,0DAAmC;IAAnC,8EAAmC;IACrD,0DAAyB;IAAzB,oEAAyB;IAM5D,0DAA+B;IAA/B,0GAA+B;;;;IArF3E,sEACA;IAAA;IA+BA;IAAA,8EACI;IAAA;IAAA,mFACI;IAAA;IAAA,yEACI;IAAA;IAAA,8EAAgD;IAAnB,4TAAkB;IAAC,sEAAU;IAAA,4DAAW;IAAA,qEAAG;IAAA,wDAAkD;IAAA,4DAAI;IAClI;IAAA,4DAAM;IACN;IAAA,2EACI;IAAA;IAAA,uEACI;IAAA;IAAA,4HAEI;IAyDR;IAAA,4DAAM;IACN;IAAA,0EACA;IAAA;IAAA,6EAEQ;IADA,wUAA+B;IAC/B,0GACJ;IAAA,4DAAS;IACb;IAAA,4DAAM;IACN;IACJ;IAAA,4DAAO;IACX;IAAA,4DAAmB;IACvB;IAAA,4DAAW;IACX;IAAA,4DAAM;;;IA1E8E,2DAAkD;IAAlD,+HAAkD;IAExH,0DAAgC;IAAhC,gGAAgC;IAG1B,0DAAgG;IAAhG,wIAAgG;;AD9B7G,MAAM,sBAAsB;IAgBjC,YAAoB,WAAyB,EACnC,OAA+B,EAC/B,SAAuB,EACvB,yBAA4D,EAC5D,MAAe;QAJL,gBAAW,GAAX,WAAW,CAAc;QACnC,YAAO,GAAP,OAAO,CAAwB;QAC/B,cAAS,GAAT,SAAS,CAAc;QACvB,8BAAyB,GAAzB,yBAAyB,CAAmC;QAC5D,WAAM,GAAN,MAAM,CAAS;QAnBzB,cAAS,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAG/B,wBAAmB,GAAG,EAAE,CAAC;QACzB,qBAAgB,GAAG,2DAAW,CAAC,oBAAoB,CAAC;QACpD,mBAAc,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QACnE,iBAAY,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QAClE,sBAAiB,GAAG,CAAC,EAAC,KAAK,EAAG,EAAE,EAAE,KAAK,EAAG,IAAI,EAAC,CAAC;QAChD,qBAAgB,GAAqB,IAAI,2EAAc,EAAE,CAAC;QAC1D,wBAAmB,GAA8B,IAAI,qFAAwB,EAAE,CAAC;QAIxE,iBAAY,GAAiB,IAAI,4CAAO,EAAO,CAAC;IAM3B,CAAC;IAE9B,QAAQ;QACN,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAC5B,cAAc,CAAC,+BAA+B,CAC/C,CAAC,YAAY,CAAC;QACf,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,wBAAwB;QACxB,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,aAAa;QACX,IAAI,CAAC,yBAAyB,CAAC,wBAAwB,CAAC,IAAI,CAAC,gEAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAO,EAAC,EAAE;YAC9G,IAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,EAAC;gBAC7B,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;gBACrC,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;gBACjC,IAAI,CAAC,aAAa,EAAE,CAAC;aACtB;QACH,CAAC,CAAC;IACJ,CAAC;IAED,UAAU;QACR,IAAI,CAAC,kBAAkB,GAAI,IAAI,wDAAS,CAAC;YACvC,gBAAgB,EAAG,IAAI,0DAAW,CAAC,CAAC,EAAC,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC3D,yBAAyB,EAAG,IAAI,0DAAW,EAAE;YAC7C,sBAAsB,EAAG,IAAI,wDAAS,CAAC,EAAE,CAAC;SAC3C,CAAC;IAEJ,CAAC;IAGD,2BAA2B;QACvB,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YAC7B,QAAQ,EAAE,IAAI,0DAAW,CAAC,EAAC,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAC,IAAI,EAAC,EAAC,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACzF,IAAI,EAAG,IAAI,0DAAW,EAAE;YACxB,QAAQ,EAAC,IAAI,0DAAW,CAAC,OAAO,EAAC,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACvD,MAAM,EAAG,IAAI,0DAAW,CAAC,OAAO,EAAC,yDAAU,CAAC,QAAQ,CAAC;YACrD,OAAO,EAAG,IAAI,0DAAW,EAAE;SAC3B,CAAC,CAAC;IACP,CAAC;IAED,QAAQ,CAAC,KAAY;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,wBAAwB,CAAc,CAAC;QAC9E,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAC,KAAK,EAAC,MAAM,CAAC,MAAM,CAAC;QACxD,IAAG,KAAK,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAC;YAClC,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;SAC/B;IAEP,CAAC;IAED,aAAa;QACX,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,gBAAgB,GAAK,IAAI,2EAAc,EAAE,CAAC;QAC/C,IAAI,CAAC,gBAAgB,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;QACtD,8DAA8D;QAC9D,6DAA6D;QAC7D,IAAI,CAAC,gBAAgB,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;QAChD,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5C,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,GAAO,EAAC,EAAE;YACxE,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,KAAK,GAAE,GAAG,CAAC,gBAAgB,CAAC;YACtD,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,kBAAkB;YACzD,IAAI,CAAC,mBAAmB,GAAK,GAAG,CAAC,6BAA6B,CAAC;YAChE,IAAI,CAAC,SAAS,EAAE,CAAC;QAClB,CAAC,CAAC;QACF,eAAe;QACf,gCAAgC;QAChC,8CAA8C;QAC9C,sCAAsC;QACtC,UAAU;QACV,sBAAsB;QACtB,qBAAqB;QACrB,oBAAoB;QACpB,sBAAsB;QACtB,oBAAoB;QACpB,qBAAqB;QACrB,sBAAsB;QACtB,uBAAuB;QACvB,sBAAsB;QACtB,qBAAqB;QACrB,oBAAoB;QACpB,MAAM;QACN,KAAK;QACL,mEAAmE;QACnE,qBAAqB;IAEvB,CAAC;IAED,SAAS;QACP,IAAI,CAAC,kBAAkB,GAAI,IAAI,wDAAS,CAAC;YACvC,gBAAgB,EAAG,IAAI,0DAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAC,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACzF,yBAAyB,EAAG,IAAI,0DAAW,EAAE;YAC7C,sBAAsB,EAAG,IAAI,wDAAS,CAAC,EAAE,CAAC;SAC3C,CAAC;QAEF,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC;YAEhD,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,wBAAwB,CAAc,CAAC;YACjG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,2BAA2B,EAAE,CAAC,CAAC;YAErE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5H,4FAA4F;SAC7F;IACH,CAAC;IAED,mBAAmB;QAEjB,IAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAC;YACjC,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,kDAAkD,EAClD,GAAG,EACH;gBACE,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAG,CAAC,aAAa,CAAC;gBAC5B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CACF,CAAC;YACF,OAAO;SACR;QACD,IAAI,4BAA4B,GAAG,EAAE,CAAC;QAEtC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,sBAAsB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YACrE,IAAI,MAAM,GAAG,IAAI,qFAAwB,EAAE,CAAC;YAC5C,MAAM,CAAC,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;YAChD,IAAI,QAAQ,GAAC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;YAChF,IAAG,QAAQ,IAAI,gBAAgB,EAAC;gBAC9B,MAAM,CAAC,QAAQ,GAAG,KAAK;aACxB;YACD,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;YACjC,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;YAChC,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;YACjC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,yBAAyB,CAAC;YAC7E,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,gBAAgB,CAAC;YACpE,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY;YACtC,4BAA4B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,mCAAmC,CAAC,4BAA4B,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,EAAC,EAAE;YAC9F,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,oCAAoC,EACpC,GAAG,EACH;gBACE,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAG,CAAC,eAAe,CAAC;gBAC9B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CACF,CAAC;QACJ,CAAC,EACD,CAAC,KAAK,EAAC,EAAE;YACP,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,gCAAgC,EAChC,GAAG,EACH;gBACE,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAG,CAAC,aAAa,CAAC;gBAC5B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CACF,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,4BAA4B,CAAC,CAAC;IACrD,CAAC;;4FA3LS,sBAAsB;sGAAtB,sBAAsB;QChBnC,mHAEI;QAIJ;QAAA,mHACA;;QAPK,qGAAuC;QAMvC,0DAAsC;QAAtC,oGAAsC;;6FDU9B,sBAAsB;cALlC,uDAAS;eAAC;gBACT,QAAQ,EAAE,mBAAmB;gBAC7B,WAAW,EAAE,gCAAgC;gBAC7C,SAAS,EAAE,CAAC,gCAAgC,CAAC;aAC9C;;;;;;;;;;;;;;AEfD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6G;AACpD;AACgB;AAG3B;AACc;;;;;;;;;;;;;;;;IC0E/C,qEAGA;;;IAAA,qEAAmE;;;IAA5C,8IAAiB;;;;IAqC2I,+EAA6E;IAAlC,oVAAiC;IAAC,+DAAI;IAAA,4DAAW;;;;IAE9Q,qFAEE;IAAA;IAAA,4EACH;IADkC,0VAAqC;IAApE,4DACH;IAAA;IAAA,4DAAiB;;;IAH+B,0GAA+B;IAEc,0DAAkC;IAAlC,gGAAkC;;;IAG7H,2EAA8D;IAAA,uDAAwB;IAAA,4DAAO;;;IAA/B,0DAAwB;IAAxB,4FAAwB;;;IAkH5F,qEACE;IAAA;IAAA,yEACA;IAAA;IAAA,0EACE;IAAA;IAAA,wEAA+E;IAAA,2EAA6G;IAAA,yEAAQ;IAAA,uDACpM;IAAA,4DAAS;IAAA,4DAAO;IAAA,4DAAI;IACpB;IAAA,yEAA2D;IAAA,4EAA4G;IAAA,wDACvK;IAAA,4DAAO;IAAA,4DAAI;IACb;IAAA,4DAAM;IACN;IAAA,4DAAK;IACP;IAAA,4DAAK;;;IANmM,0DACpM;IADoM,sHACpM;IACuK,0DACvK;IADuK,mHACvK;;;;IAyBK,qFACG;IAAA;IAAA,+EAAsH;IAA3G,2VAAmC;IAA6D,4DAAW;IACxH;IAAA,4DAAiB;;;IAFoB,0GAA+B;IACnB,0DAAwB;IAAxB,sFAAwB;;;IAEzE,2EAAqD;IAAA,uDAAc;IAAA,4DAAO;;;IAArB,0DAAc;IAAd,kFAAc;;ADtQ/E,MAAM,kBAAkB;IAuC7B,YACU,EAAe,EAChB,SAA2C,EAC1C,2BAAuD,EACvD,SAAsB,EACE,IAAS;QAJjC,OAAE,GAAF,EAAE,CAAa;QAChB,cAAS,GAAT,SAAS,CAAkC;QAC1C,gCAA2B,GAA3B,2BAA2B,CAA4B;QACvD,cAAS,GAAT,SAAS,CAAa;QACE,SAAI,GAAJ,IAAI,CAAK;QAtC3C,kBAAa,GAAW,KAAK,CAAC;QAC9B,kBAAa,GAAW,KAAK,CAAC;QAC9B,sBAAiB,GAAW,KAAK,CAAC;QAClC,4BAAuB,GAAS,KAAK,CAAC;QACtC,sBAAiB,GAAS,KAAK,CAAC;QAChC,qBAAgB,GAAS,KAAK,CAAC;QAC/B,6BAAwB,GAAS,KAAK,CAAC;QACvC,oBAAe,GAAS,KAAK,CAAC;QAC9B,qBAAgB,GAAS,KAAK,CAAC;QAC/B,yBAAoB,GAAS,KAAK,CAAC;QAGnC,sBAAiB,GAAS,KAAK,CAAC;QAKhC,eAAU,GAAU,EAAE,CAAC;QACvB,sBAAiB,GAAC,EAAE,CAAC;QAGrB,eAAU,GAAQ,GAAG,CAAC;QACtB,2BAAsB,GAAW,KAAK,CAAC;QAMvC,mBAAc,GAAQ,0BAA0B,CAAC;QACjD,qBAAgB,GAAG,2DAAW,CAAC,oBAAoB,CAAC;QAWlD,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;YACjC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,KAAG,MAAM,EAAC,KAAI,EAAC,MAAK,CAAC;YACzD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,KAAG,MAAM,EAAC,MAAK,EAAC,MAAK,CAAC;YAC1D,MAAM,SAAS,GAAQ,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC7D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAC,SAAS,CAAC,CAAC;YAC5D,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,GAAC,CAAC,EAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACvF,MAAM,gBAAgB,GAAK,EAAC,mBAAmB,EAAC,EAAE,EAAC,gBAAgB,EAAC,EAAE,EAAC,CAAC;YACxE,gBAAgB,CAAC,iBAAiB,GAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC;YACrE,gBAAgB,CAAC,cAAc,GAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;YACzD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC9C,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,EAAC,EAAE;gBACpC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;YACzC,CAAC,CAAC;YAEF,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAC,EAAE;gBAC5C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACvC,CAAC,CAAC;YACF,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;YAClB,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC;gBAC9C,MAAM,EAAE,GAAC,sBAAsB;oBAC/B,8aAA8a;oBAC9a,UAAU,GAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,iBAAiB,GAAC,sBAAsB;oBAC7E,mKAAmK,GAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,cAAc,GAAC,6BAA6B,CAAC;gBAC3O,IAAI,CAAC,OAAO,GAAC,IAAI,CAAC,OAAO,GAAC,EAAE,CAAC;aAC9B;YAED,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,KAAG,MAAM,EAAC,MAAK,EAAC,MAAK,CAAC;YACpE,qDAAqD;YACrD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACxD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,GAAC,GAAG,GAAC,WAAW,CAAC,CAAC,CAAC,GAAC,GAAG,GAAC,WAAW,CAAC,CAAC,CAAC,CAAC;SAEzE;IACH,CAAC;IAGD,QAAQ;QACN,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YAC9B,MAAM,EAAE,CAAC,EAAE,EAAC,yDAAU,CAAC,QAAQ,CAAC;SACjC,CAAC;IACJ,CAAC;IAED,YAAY,CAAC,KAAK;QAEhB,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAEjC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAClC,IAAG,IAAI,CAAC,KAAK,CAAC,IAAI,KAAG,WAAW,IAAE,IAAI,CAAC,KAAK,CAAC,IAAI,KAAG,WAAW;mBAC7D,IAAI,CAAC,KAAK,CAAC,IAAI,KAAG,YAAY,EAAC;gBAChC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACnD,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;oBAC/C,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;oBAE9B,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,wBAAwB;oBAErE,MAAM,CAAC,MAAM,GAAG,CAAC,KAAK,EAAE,EAAE;wBACxB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;oBACvC,CAAC;iBACF;aACD;iBAAI;gBACJ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,+CAA+C,CAAC,EAAE,GAAG,EAAE;oBACzE,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB;aACD;SAGH;QACH,4CAA4C;QAC5C,sBAAsB;QACtB,kCAAkC;QAClC,mCAAmC;QACnC,+BAA+B;QAC/B,MAAM;QACN,MAAM;IAEN,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IACD,cAAc,CAAC,CAAC;QACd,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,YAAY,CAAC,KAAK;QAChB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAS,KAAK,EAAC,KAAK;YACxC,OAAO,CAAC,GAAG,CAAC,KAAK,GAAE,GAAG,GAAC,KAAK,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;YAC/C,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAE9B,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,wBAAwB;YAErE,MAAM,CAAC,MAAM,GAAG,CAAC,KAAK,EAAE,EAAE;gBACxB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;YACvC,CAAC;SACF;IACH,CAAC;IAED,eAAe,CAAC,CAAC;QACjB,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;IACnC,CAAC;IAED,oBAAoB,CAAC,CAAC;QACpB,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;IACtC,CAAC;IAED,mBAAmB,CAAC,CAAC;QACnB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,aAAa,GAAC,CAAC,CAAC,MAAM,CAAC,KAAK,KAAG,UAAU,EAAC,KAAI,EAAC,MAAK,CAAC;QAC1D,IAAI,CAAC,iBAAiB,GAAC,CAAC,CAAC,MAAM,CAAC,KAAK,KAAG,aAAa,EAAC,KAAI,EAAC,MAAK,CAAC;QACjE,IAAI,CAAC,uBAAuB,GAAC,CAAC,CAAC,MAAM,CAAC,KAAK,KAAG,sBAAsB,EAAC,KAAI,EAAC,MAAK,CAAC;QAChF,IAAI,CAAC,iBAAiB,GAAC,CAAC,CAAC,MAAM,CAAC,KAAK,KAAG,aAAa,EAAC,KAAI,EAAC,MAAK,CAAC;QACjE,IAAI,CAAC,gBAAgB,GAAC,CAAC,CAAC,MAAM,CAAC,KAAK,KAAG,YAAY,EAAC,KAAI,EAAC,MAAK,CAAC;QAC/D,IAAI,CAAC,wBAAwB,GAAC,CAAC,CAAC,MAAM,CAAC,KAAK,KAAG,2BAA2B,EAAC,KAAI,EAAC,MAAK,CAAC;QACtF,IAAI,CAAC,eAAe,GAAC,CAAC,CAAC,MAAM,CAAC,KAAK,KAAG,WAAW,EAAC,KAAI,EAAC,MAAK,CAAC;QAC7D,IAAI,CAAC,gBAAgB,GAAC,CAAC,CAAC,MAAM,CAAC,KAAK,KAAG,YAAY,EAAC,KAAI,EAAC,MAAK,CAAC;QAC/D,IAAI,CAAC,oBAAoB,GAAC,CAAC,CAAC,MAAM,CAAC,KAAK,KAAG,qBAAqB,EAAC,KAAI,EAAC,MAAK,CAAC;QAC5E,IAAI,CAAC,iBAAiB,GAAC,CAAC,CAAC,MAAM,CAAC,KAAK,KAAG,aAAa,EAAC,KAAI,EAAC,MAAK,CAAC;IACnE,CAAC;IACD,kBAAkB,CAAC,CAAC;QAClB,MAAM,WAAW,GAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QACrC,MAAM,UAAU,GAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,OAAO,GAAC,UAAU,KAAG,UAAU,EAAC,YAAW,EAAC,KAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QAC9E,IAAI,CAAC,OAAO,CAAC,WAAW,GAAC,UAAU,KAAG,aAAa,EAAC,YAAW,EAAC,KAAI,CAAC,OAAO,CAAC,WAAW,CAAC;QACzF,IAAI,CAAC,OAAO,CAAC,oBAAoB,GAAC,UAAU,KAAG,sBAAsB,EAAC,YAAW,EAAC,KAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC;QACpH,IAAI,CAAC,OAAO,CAAC,WAAW,GAAC,UAAU,KAAG,aAAa,EAAC,YAAW,EAAC,KAAI,CAAC,OAAO,CAAC,WAAW,CAAC;QACzF,IAAI,CAAC,OAAO,CAAC,UAAU,GAAC,UAAU,KAAG,YAAY,EAAC,YAAW,EAAC,KAAI,CAAC,OAAO,CAAC,UAAU,CAAC;QACtF,IAAI,CAAC,OAAO,CAAC,yBAAyB,GAAC,UAAU,KAAG,2BAA2B,EAAC,YAAW,EAAC,KAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC;QACnI,IAAI,CAAC,OAAO,CAAC,SAAS,GAAC,UAAU,KAAG,WAAW,EAAC,YAAW,EAAC,KAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACnF,IAAI,CAAC,OAAO,CAAC,UAAU,GAAC,UAAU,KAAG,YAAY,EAAC,YAAW,EAAC,KAAI,CAAC,OAAO,CAAC,UAAU,CAAC;QACtF,IAAI,CAAC,OAAO,CAAC,mBAAmB,GAAC,UAAU,KAAG,qBAAqB,EAAC,YAAW,EAAC,KAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC;QACjH,IAAI,CAAC,OAAO,CAAC,WAAW,GAAC,UAAU,KAAG,aAAa,EAAC,YAAW,EAAC,KAAI,CAAC,OAAO,CAAC,WAAW,CAAC;QACzF,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAG,UAAU,KAAG,aAAa,EAAC;YAC5B,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC3C,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,GAAC,GAAG,GAAC,WAAW,CAAC,CAAC,CAAC,GAAC,GAAG,GAAC,WAAW,CAAC,CAAC,CAAC,CAAC;SACzE;IACH,CAAC;IACC,IAAI;QACJ,2CAA2C;QAC3C,sEAAsE;QACtE,sBAAsB;QACtB,kCAAkC;QAClC,mCAAmC;QACnC,+BAA+B;QAC/B,MAAM;QACN,MAAM;QACL,QAAQ;QACP,MAAM,GAAG,GAAkB,IAAI,oEAAa,EAAE,CAAC;QAC/C,iBAAiB;QACjB,YAAY;QACZ,kCAAkC;QAClC,kEAAkE;QAClE,4NAA4N;QAC5N,0LAA0L;QAC1L,sFAAsF;QACtF,yGAAyG;QACzG,iDAAiD;QACjD,oKAAoK;QACpK,cAAc;QACd,IAAI,CAAC,QAAQ,GAAC,QAAQ;YACtB,8lCAA8lC,GAAC,IAAI,CAAC,SAAS,GAAC,GAAG,GAAC,IAAI,CAAC,YAAY,GAAC,qHAAqH,GAAC,GAAG,GAAC,IAAI,CAAC,WAAW,GAAC,upBAAupB,GAAC,IAAI,CAAC,OAAO,CAAC,WAAW,GAAC,spBAAspB,GAAC,IAAI,CAAC,oBAAoB,GAAC,yzBAAyzB,GAAC,IAAI,CAAC,UAAU,GAAC,i7BAAi7B,GAAE,IAAI,CAAC,OAAO,GAAE,qjCAAqjC,GAAC,IAAI,CAAC,UAAU,GAAC,w6BAAw6B,GAAC,IAAI,CAAC,UAAU,GAAC,0DAA0D,GAAC,IAAI,CAAC,UAAU,GAAC,KAAK,GAAC,IAAI,CAAC,mBAAmB,GAAC,qDAAqD,GAAC,IAAI,CAAC,UAAU,GAAC,8BAA8B,GAAC,IAAI,CAAC,UAAU,GAAC,qCAAqC,GAAC,IAAI,CAAC,UAAU,GAAC,qEAAqE;YACrtN,SAAS;QAET,GAAG,CAAC,eAAe,GAAI,IAAI,CAAC,QAAQ,CAAC;QACrC,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QACvC,GAAG,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAClE,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACxC,IAAI,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC;QAClE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3B,IAAI,CAAC,2BAA2B,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YACtF,IAAI,GAAG,EAAE;gBACP,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,EAAE;oBAClD,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,eAAe,CAAC;oBAC7B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;aACxB;QACH,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;YACX,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;gBACpC,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,CAAC,aAAa,CAAC;gBAC3B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACzB,CAAC,CAAC;IACJ,CAAC;;oFAtPU,kBAAkB,snBA4CnB,wEAAe;kGA5Cd,kBAAkB;;;;;;;;;;;;;QCZ9B;QAOD;QAAA,4EACE;QAAA;QAAA,oEAAG;QAAA,uDAA4D;QAAA,4DAAI;QACrE;QAAA,4DAAM;QACN;QAIA;QAgBA;QAaA;QAqBC;QAAA,4EACC;QAAA;QAAA,yEACE;QAAA;QAAA,sEACC;QAAA;QAAA,yEACE;QAAA;QAAA,qEACA;QAAA;QAAA,4DAAK;QACR;QAAA,4DAAK;QACP;QAAA,4DAAQ;QACT;QAAA,4DAAQ;QAEN;QAAA,4EACE;QAAA;QAAA,yEACE;QAAA;QAAA,sEACE;QAAA;QAAA,yEACE;QAAA;QAAA,0EACE;QAAA;QAAA,gHAGA;QAAA;QAAA,gHAAmE;QAAA;QAAA,iEACnE;QAAA;QAAA,uEACA;QAAA;QAAA,8EACI;QADsB,yRAAS,WAAY,IAAC;QAC5C;QAAA,wEAAO;QAAA,qFAAwB;QAAA,4DAAO;QACtC;QAAA,8DACE;QADF,2EACE;QAAA;QAAA,uEACA;QAAA;QAAA,uEACF;QAAA;QAAA,4DAAM;QACN;QAAA,+DACF;QADE,iFACF;QAD2C,kJAAU,wBAAoB,IAAC;QAAxE,4DACF;QAAA;QAAA,4DAAS;QACX;QAAA,4DAAM;QACV;QAAA,4DAAM;QACN;QAAA,4DAAK;QACL;QAAA,sEACE;QAAA;QAAA,2EACE;QAAA;QAAA,4EACA;QAAA;QAAA,yEACA;QAAA;QAAA,sEACA;QAAA;QAAA,0EACA;QAAA;QAAA,2EACA;QAAA;QAAA,yEAA+E;QAAA,4EAA6G;QAAA,wDAAwC;QAAA,4DAAO;QAC3O;QAAA,4EACA;QAAA;QAAA,qEAAG;QAAA,wDAAoB;QAAA,4DAAI;QAAA,4DAAO;QAAA,4DAAI;QACtC;QAAA,4DAAM;QACN;QAAA,4DAAK;QACL;QAAA,4DAAK;QACL;QAAA,sEACA;QAAA;QAAA,0EACA;QAAA;QAAA,2EACA;QAAA;QAAA,yEAA2D;QAAA,4EAA4G;QAAA,qEAAS;QAAA,4DAAO;QAAA,4DAAI;QAC3L;QAAA,0EAA+E;QAAA,6EAA6G;QAAA,yDAA4B;QAAA,4DAAO;QAAA,4DAAI;QACnO;QAAA,4DAAM;QACN;QAAA,4DAAK;QACL;QAAA,4DAAK;QACL;QAAA,uEACA;QAAA;QAAA,2EACA;QAAA;QAAA,4EACA;QAAA;QAAA,0EAA2D;QAAA,6EAA4G;QAAA,yEAAY;QAAA,6HAA6E;QAAe,4DAAO;QAAA,4DAAI;QAC1R;QAAA,0EAA+E;QAAA,6EAC9E;QAAA;QAAA,yIAEE;QAED;QAAA,4DAAO;QAAA,4DAAI;QACX;QAAA,qHAA8D;QAChE;QAAA,4DAAM;QACN;QAAA,4DAAK;QACL;QAAA,4DAAK;QACL;QAAA,4DAAQ;QACR;QAAA,4DAAQ;QACR;QAAA,4DAAM;QACV;QAAA,4DAAK;QACP;QAAA,4DAAK;QACP;QAAA,4DAAQ;QACV;QAAA,4DAAQ;QACV;QA2BA;QA0CA;QAAA,8EACE;QAAA;QAAA,0EACA;QAAA;QAAA,uEACA;QAAA;QAAA,2EACA;QAAA;QAAA,4EACA;QAAA;QAAA,0EAA+E;QAAA,6EAA6G;QAAA,sEAAG;QAAA,uEAAU;QAAA,4DAAI;QAAA,4DAAO;QAAA,4DAAI;QACxN;QAAA,0EAA+E;QAAA,6EAA6G;QAAA,yDAC5L;QAAA,4DAAO;QAAA,4DAAI;QACX;QAAA,4DAAM;QACN;QAAA,4DAAK;QACL;QAAA,4DAAK;QACL;QAAA,4DAAQ;QACR;QAAA,4DAAQ;QAER;QAAA,6EACE;QAAA;QAAA,0EACA;QAAA;QAAA,uEACA;QAAA;QAAA,2EACA;QAAA;QAAA,0EACA;QAAA;QAAA,4DAAI;QACJ;QAAA,4DAAK;QACL;QAAA,4DAAK;QACL;QAAA,4DAAQ;QACR;QAAA,4DAAQ;QACR;QAAA,8EACE;QAAA;QAAA,0EACE;QAAA;QAAA,uEACE;QAAA;QAAA,2EACA;QAAA;QAAA,4EACA;QAAA;QAAA,0EAA+E;QAAA,6EAA6G;QAAA,sEAAG;QAAA,sEAAS;QAAA,4DAAI;QAAA,4DAAO;QAAA,4DAAI;QACvN;QAAA,4DAAM;QACN;QAAA,4DAAK;QACL;QAAA,4DAAK;QAEP;QAAA,kHACE;QASJ;QAAA,4DAAQ;QACR;QAAA,4DAAQ;QAEN;QAAA,6EACE;QAAA;QAAA,0EACA;QAAA;QAAA,uEACA;QAAA;QAAA,2EACA;QAAA;QAAA,0EACA;QAAA;QAAA,4DAAI;QACJ;QAAA,4DAAK;QACL;QAAA,4DAAK;QACL;QAAA,4DAAQ;QACR;QAAA,4DAAQ;QAER;QAAA,6EACE;QAAA;QAAA,0EACA;QAAA;QAAA,uEACA;QAAA;QAAA,2EACE;QAAA;QAAA,4EACE;QAAA;QAAA,0EAAyE;QAAA,6EAA4G;QAAA,sEAAG;QAAA,gEAAG;QAAA,4DAAI;QAAA,4DAAO;QAAA,iFAAiD;QAAtC,oJAAS,+BAA2B,IAAC;QAAC,iEAAI;QAAA,4DAAW;QAAA,4DAAI;QAC1Q;QAAA,0EAA+E;QAAA,6EAC9E;QAAA;QAAA,yIACG;QAEF;QAAA,qHAAqD;QACvD;QAAA,4DAAO;QAAA,4DAAI;QACX;QAAA,4DAAM;QACV;QAAA,4DAAK;QACL;QAAA,4DAAK;QACL;QAAA,4DAAQ;QACR;QAAA,4DAAQ;QAER;QAAA,6EACE;QAAA;QAAA,0EACA;QAAA;QAAA,uEACA;QAAA;QAAA,2EACA;QAAA;QAAA,0EACA;QAAA;QAAA,4DAAI;QACJ;QAAA,4DAAK;QACL;QAAA,4DAAK;QACL;QAAA,4DAAQ;QACR;QAAA,4DAAQ;QAEV;QAAA,8EACE;QAAA;QAAA,0EACA;QAAA;QAAA,uEACA;QAAA;QAAA,2EACA;QAAA;QAAA,4EACA;QAAA;QAAA,0EACA;QAAA;QAAA,6EAA6G;QAAA,gHAC7G;QAAA,sEAAG;QAAA,6EAA6B;QAAA,6EAAe;QAAA,4DAAO;QAAA,4DAAI;QAAC,yGAC3D;QAAA,sEAAG;QAAA,6EAA6B;QAAA,gFAAkB;QAAA,4DAAO;QAAA,4DAAI;QAAC,mEAAK;QAAA,sEAAI;QAAA;QAAA,6EACtE;QAAA,2FAAY;QAAA,4DAAO;QAAA,4DAAI;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAI;QACpC;QAAA,4DAAM;QACN;QAAA,4DAAK;QACL;QAAA,4DAAK;QACL;QAAA,4DAAQ;QACR;QAAA,4DAAQ;QAGtB;QAAA,gFAAoC;QAAA,yDAcpC;QAAA,4DAAM;QAGP;QAAA,4EACG;QAAA;QAAA,+EAAuE;QAAjB,4IAAS,UAAM,IAAC;QAAC,2EACvE;QAAA,4DAAS;QACT;QAAA,+EAAyE;QAAnB,4IAAS,YAAQ,IAAC;QAAC,wEACzE;QAAA,4DAAS;QACZ;QAAA,4DAAM;QACN;;QAtUK,0DAAe;QAAf,wEAAe;QACf,0DAA4D;QAA5D,4IAA4D;QAuE/C,2DAAkB;QAAlB,gFAAkB;QAGlB,0DAAiB;QAAjB,+EAAiB;QAoBsK,2DAAwC;QAAxC,8GAAwC;QAEjO,0DAAoB;QAApB,gFAAoB;QAQqK,2DAA4B;QAA5B,wFAA4B;QAO3B,2DAA+B;QAA/B,6FAA+B;QAE3M,0DAA8B;QAA9B,4FAA8B;QAKf,0DAA+B;QAA/B,6FAA+B;QAsFmH,2DAC5L;QAD4L,6FAC5L;QA2BU,2DAAyC;QAAzC,0FAAyC;QA+BpB,2DAAqB;QAArB,mFAAqB;QAGN,0DAAsB;QAAtB,oFAAsB;QAoCjE,2DAAe;QAAf,wEAAe;QAAgB,0DAcpC;QAdoC,ijCAcpC;;6FDxTY,kBAAkB;cAL9B,uDAAS;eAAC;gBACT,QAAQ,EAAE,gBAAgB;gBAC1B,WAAW,EAAE,6BAA6B;gBAC1C,SAAS,EAAE,CAAC,6BAA6B,CAAC;aAC3C;;sBA6CI,oDAAM;uBAAC,wEAAe;wBAdE,OAAO;kBAAjC,uDAAS;mBAAC,cAAc;YACE,OAAO;kBAAjC,uDAAS;mBAAC,cAAc;YACK,eAAe;kBAA5C,uDAAS;mBAAC,iBAAiB;YACL,QAAQ;kBAA9B,uDAAS;mBAAC,UAAU;;;;;;;;;;;;;;AE9CvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AACwC;AAGtB;AAIjB;AAEd;AAEsB;AACb;AACI;AACF;AACV;;;;;;;;;;;;;;;;;;;;;;;;;ICgBT,6EAEQ;IADA,oUAA4B,SAAS,KAAE;IACvC;IAAA,+EAAiC;IAAA,gEAAK;IAAA,4DAAW;IACzD;IAAA,4DAAS;;;IAEH,iFACa;IAAA,uDACb;IAAA,4DAAa;;;IAFoD,6EAAgB;IACpE,0DACb;IADa,sMACb;;;IAEH,4EAAmF;IAAA,0EAAe;IAAA,4DAAY;;;IAKjI,0EACQ;IAAA;IAAA,qFACQ;IAAA;IAAA,4EAAW;IAAA,kEAAO;IAAA,4DAAY;IAC9B;IAAA,uEAER;IAAA;IAAA,4DAAiB;IACjB;IAAA,yEAA0C;IAAA,iHAAqD;IAAA,4DAAI;IAE3G;IAAA,4DAAM;;;IAPkB,0DAA+B;IAA/B,0GAA+B;;;IAY3C,iFACE;IAAA,uDAAY;IAAA,4DAAa;;;IADqB,8EAAiB;IAC/D,0DAAY;IAAZ,8HAAY;;;IAEhB,4EAA4F;IAAA,wFAA6B;IAAA,4DAAY;;;IAQnI,4EAAkF;IAAA,gFAAqB;IAAA,4DAAY;;;IAEnH,4EAAiF;IAAA,+EAAoB;IAAA,4DAAY;;;IAQjH,4EAAmF;IAAA,sKAC1B;IAAA,4DAAY;;;IACrE,4EAAoF;IAAA,iFAAsB;IAAA,4DAAY;;;IACtH,4EACI;IAAA,2KACJ;IAAA,4DAAY;;;IACZ,4EACI;IAAA,oKACJ;IAAA,4DAAY;;;IA+BA,yEAAgF;IAAA,kEAAM;IAAA,4DAAK;;;IAC3F,yEAAwC;IAAA,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,iGAAsB;;;IAG9D,yEAAgF;IAAA,uEAAW;IAAA,4DAAK;;;IAChG,yEAAwC;IAAA,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,kGAAuB;;;IAG/D,yEAAgF;IAAA,sEAAU;IAAA,4DAAK;;;IAC/F,yEAAwC;IAAA,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,iGAAsB;;;IAG9D,yEAAgF;IAAA,sEAAU;IAAA,4DAAK;;;IAC/F,yEAAwC;IAAA,uDAAqB;IAAA,4DAAK;;;IAA1B,0DAAqB;IAArB,gGAAqB;;;IAQrE,oEAA4D;;;IAC5D,oEAAkE;;;IAClE,yEACA;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IACrE;IAAA,4DAAK;;;ADjHd,MAAM,eAAe;IAwC1B,YACU,QAAwB,EACxB,SAA8B,EAC9B,aAA4B,EAC5B,aAAgC,EAChC,YAA2B,EAC3B,SAAsB,EACtB,OAA0B;QAN1B,aAAQ,GAAR,QAAQ,CAAgB;QACxB,cAAS,GAAT,SAAS,CAAqB;QAC9B,kBAAa,GAAb,aAAa,CAAe;QAC5B,kBAAa,GAAb,aAAa,CAAmB;QAChC,iBAAY,GAAZ,YAAY,CAAe;QAC3B,cAAS,GAAT,SAAS,CAAa;QACtB,YAAO,GAAP,OAAO,CAAmB;QA9CpC,iBAAY,GAAG,IAAI;QAGnB,aAAQ,GAAG,EAAE,CAAC;QACd,aAAQ,GAAG,KAAK,CAAC;QACjB,cAAS,GAAG,KAAK,CAAC;QAClB,qBAAgB,GAAY,KAAK,CAAC;QAMlC,iBAAY,GAAG,CAAC,CAAC;QACjB,oBAAe,GAAG,CAAC,CAAC;QAIpB,sBAAiB,GAAiB,EAAE,CAAC;QACrC,kBAAa,GAAG,KAAK,CAAC;QAGtB,iBAAY,GAAa,EAAE,CAAC;QACpB,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QACtD,mBAAc,GAAU,EAAE,CAAC;QAC3B,qBAAgB,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QAEpD,uBAAkB,GAAa,KAAK;QAEpC,qBAAgB,GAAa;YAC3B,WAAW;YACX,YAAY;YACZ,WAAW;YACX,UAAU;SAEX,CAAC;QAsBF,aAAQ,GAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAmChF,SAAI,GAAG;YACL,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE;YACvC,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,wBAAwB,EAAE;YACzD,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE;YAClE,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE;SAE3C;QAjDC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;QAChD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAED,QAAQ;QACN,yEAAyE;QACzE,mBAAmB;QACnB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;QACnB,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,iBAAiB,EAAE;IAE1B,CAAC;IAEO,YAAY,CAAC,KAAK;QAExB,IAAI,WAAW,CAAC;QAChB,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE;YACrC,OAAO,IAAI,CAAC,UAAU,CAAC;SACxB;QACD,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,EAAE;YAC1B,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE;gBACrC,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;aAC3C;iBACI;gBACH,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,EAAE;oBAC1B,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;iBAChD;aACF;YACD,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CACvC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAChD,CAAC;SACH;aAAM;YACL,OAAO,IAAI,CAAC,UAAU,CAAC;SACxB;IACH,CAAC;IAQD,SAAS,CAAC,IAAS;QACjB,OAAO,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IACvC,CAAC;IACD,MAAM;QACJ,IAAI,IAAI,CAAC,QAAQ,IAAI,MAAM;YACzB,OAAO,KAAK,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IACD,UAAU;QACR,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,0BAA0B;QAC1B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,IAAI,wDAAS,CAAC;YAC5B,OAAO,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACrD,kBAAkB,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,yDAAU,CAAC,QAAQ,CAAC;YAC9D,+JAA+J;YAC/J,UAAU,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ;gBACpD,yDAAU,CAAC,OAAO,CAAC,2DAA2D,CAAC;gBAC/E,IAAI,CAAC,gBAAgB,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC1C,QAAQ,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,yDAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,yDAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YAChJ,SAAS,EAAE,IAAI,0DAAW,CAAC,KAAK,CAAC;YACjC,gBAAgB,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACvC,YAAY,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACnC,MAAM,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAC7B,UAAU,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACjC,EAAE,EAAE,IAAI,0DAAW,CAAC,CAAC,CAAC;YACtB,QAAQ,EAAC,IAAI,0DAAW,CAAC,IAAI,CAAC;YAC9B,OAAO,EAAI,IAAI,0DAAW,CAAC,IAAI,CAAC;SACjC,CAAC,CAAC;IACL,CAAC;IACD,cAAc,CAAC,KAAU;QACvB,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,YAAY,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YACrF,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YACnB,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;YAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC9D,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACnC,CAAC,EAAC,CAAC,KAAK,EAAC,EAAE;YACT,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC;IACD,SAAS;QACP,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC,MAAa,EAAE,EAAE;YACxD,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;YACzB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACtC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,oFAAW,EAAE,CAAC;gBACvC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC9C,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;aAC3C;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAC1D,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CACzC,CAAC;IAEJ,CAAC;IACD,iBAAiB;QACf,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAC1D,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CACzC,CAAC;IACJ,CAAC;IACD,kBAAkB;QAEhB,IAAI,CAAC,aAAa,CAAC,oBAAoB,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YACxD,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;YAC5B,IAAI,CAAC,0BAA0B,GAAG,EAAE,CAAC;YACrC,IAAI,CAAC,0BAA0B,GAAG,GAAG,CAAC;YACtC,IAAI,CAAC,0BAA0B,GAAG,GAAG,CAAC;YACtC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,oBAAoB,KAAK,OAAO,CAAC,CAAC;YAC9G,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACnC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;oBAC1B,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC;oBACrC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC;iBACpC,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,SAAS,CAAC,QAAQ;QAChB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,iBAAiB,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,SAAS,EAAE,EAAE,EAAE,QAAQ,CAAC,OAAO,EAAE;QAC1E,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;YACvB,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,OAAO,EAAE,iBAAiB;YAC1B,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB;YAC/C,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC;YACvC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;YAC3C,YAAY,EAAE,QAAQ,CAAC,YAAY;YACnC,QAAQ,EAAC,IAAI,CAAC,QAAQ;YACtB,OAAO,EAAG,QAAQ,CAAC,OAAO;SAC3B,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC1C,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IACD,sBAAsB,CAAC,KAAU;QAC/B,IAAI,gBAAgB,GAAG,KAAK,CAAC,KAAK,CAAC;QACnC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,cAAc,CAC3C,gBAAgB,EAChB,IAAI,CAAC,UAAU,CAAC,CAAC;IAErB,CAAC;IAED,cAAc,CAAC,gBAAwB,EAAE,UAAyB;QAChE,IAAI,QAAQ,GAAkB,EAAE,CAAC;QACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1C,IAAI,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,IAAI,IAAI,EAAE;gBACjF,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aAC1B;SACF;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,oCAAoC;QAElC,IAAI,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QACpC,IAAI,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC;QAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;YAC/B,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,eAAe,EAAE;gBACjD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,gBAAgB,CAAC;gBAC1F,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC;gBAC9E,MAAM;aACP;SACF;IACH,CAAC;IACD,MAAM;QACJ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,QAAQ,GAAG,IAAI,oFAAW,EAAE,CAAC;QAEjC,IAAG,CAAC,IAAI,CAAC,cAAc,EAAE,EAAC;YACxB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uBAAuB,EAAE,GAAG,EAAE;gBAChD,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACH,OAAO;SACR;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,EAAE;YAC/B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC;YACvC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC;YAC5H,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI;gBACvC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;YACxC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC;YACzC,IAAI,IAAI,CAAC,QAAQ,IAAI,WAAW;gBAC9B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;;gBAE/B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YACjC,IAAI,IAAI,CAAC,QAAQ,IAAI,MAAM;gBACzB,IAAI,CAAC,oCAAoC,EAAE,CAAC;YAC9C,IAAI,OAAO,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE;YACxC,IAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,EAAC;gBACxC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,wDAAwD,EAAE,GAAG,EAAE;oBACjF,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,OAAO,KAAK,CAAC;aACd;YAED,IAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,EAAC;gBACrC,IAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAE,CAAC,CAAC,IAAI,GAAG,EAAC;oBACpH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,6CAA6C,EAAC,GAAG,EAAE;wBACrE,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACH,OAAO;iBACR;gBAED,IAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAE,CAAC,CAAC,IAAI,GAAG,EAAC;oBACpH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,0CAA0C,EAAC,GAAG,EAAE;wBAClE,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACH,OAAO;iBACR;aAEF;YAED,IAAI,IAAI,CAAC,QAAQ,IAAI,MAAM,EAAE;gBAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACrC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;oBACvB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO;oBAC/B,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,kBAAkB;oBACrD,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU;oBACrC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ;oBACjC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS;oBACnC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,gBAAgB;oBACjD,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY;oBACzC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM;oBAC7B,QAAQ,EAAC,IAAI,CAAC,QAAQ;oBACtB,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU;oBACrC,EAAE,EAAE,CAAC;oBACL,OAAO,EAAG,IAAI,CAAC,SAAS,CAAC,OAAO;iBACjC,CAAC,CAAC;gBACH,IAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,IAAE,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,IAAG,EAAE,EAAC;oBACvE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE;wBAC5D,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACH,OAAO,KAAK,CAAC;iBACd;gBACD,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;oBACzE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,2BAA2B,EAAE,GAAG,EAAE;wBACpD,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBAEH,IAAI,CAAC,MAAM,EAAE,CAAC;oBACd,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC3B,CAAC,EACC,CAAC,KAAK,EAAE,EAAE;oBACR,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,QAAQ,CAAC;oBACvC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;wBACpC,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBACL,IAAI,CAAC,YAAY,GAAG,IAAI;aACzB;iBAAM;gBACL,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,kBAAkB,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,kBAAkB;oBAChJ,IAAI,CAAC,cAAc,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAC;oBAC/L,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,sBAAsB,EAAE,GAAG,EAAE;wBAC/C,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,aAAa,CAAC;wBAC3B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;qBACG;oBACF,IAAI,CAAC,YAAY,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;wBAC3E,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,6BAA6B,EAAE,GAAG,EAAE;4BACtD,QAAQ,EAAE,IAAI;4BACd,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;wBACH,IAAI,CAAC,iBAAiB,EAAE,CAAC;wBACzB,IAAI,CAAC,MAAM,EAAE,CAAC;oBAChB,CAAC,EACC,CAAC,KAAK,EAAE,EAAE;wBACR,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,QAAQ,CAAC;wBACvC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;4BACpC,QAAQ,EAAE,IAAI;4BACd,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;iBACN;gBACD,IAAI,CAAC,YAAY,GAAG,IAAI;aACzB;SAEF;IAEH,CAAC;IACD,MAAM;QACJ,IAAI,CAAC,kBAAkB,GAAG,KAAK;QAC/B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;YACvB,kBAAkB,EAAE,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,kBAAkB;SAC7F,CAAC;QACF,IAAI,CAAC,YAAY,GAAG,IAAI;QACxB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;QACvB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;IAC3D,CAAC;IACD,gBAAgB,CAAC,IAAa;QAC5B,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,KAAK,IAAI,EAAE;YACnD,IAAI,IAAI,EAAE;gBACR,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC;aAC1D;iBACI;gBACH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC;aACzD;SACF;aACI;YACH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;QACD,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE;YAC3B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,EAAE;gBAC5B,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;oBACvB,kBAAkB,EAAE,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,kBAAkB;iBAC1F,CAAC,CAAC;gBACH,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;aAC3B;SACF;aACI;YACH,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,EAAE;gBAC5B,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;oBACvB,kBAAkB,EAAE,IAAI;iBACzB,CAAC,CAAC;aACJ;SACF;IACH,CAAC;IAED,WAAW,CAAC,KAAY;QACtB,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;QAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC5D,CAAC;IAED,UAAU,CAAC,KAAW,EAAE,SAAiB;QACzC,IAAI,SAAS,IAAI,SAAS,EAAC;YACzB,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;YAChC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC;YACrC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC;YACrC,KAAK,CAAC,eAAe,EAAE,CAAC;SACzB;IACH,CAAC;IAED,cAAc,CAAC,KAAK;QAClB,IAAG,KAAK,EAAC;YACR,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;SAC/B;IACF,CAAC;IAEF,cAAc;QACZ,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC;QACjD,IAAI,MAAM,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QACjC,IAAG,MAAM,EAAC;YACR,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC;gBAChC,IAAG,MAAM,CAAC,CAAC,CAAC,IAAE,GAAG;oBACjB,MAAM,CAAC,CAAC,CAAC,IAAE,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,IAAG,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,IAAE,MAAM;oBAC3D,MAAM,CAAC,CAAC,CAAC,IAAE,OAAO,EAAC;oBACjB,OAAO,KAAK,CAAC;iBACd;aACF;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gCAAgC;IAChC,sDAAsD;IACtD,yDAAyD;IACzD,2DAA2D;IAC3D,8BAA8B;IAC9B,+EAA+E;IAC/E,wBAAwB;IACxB,qCAAqC;IACrC,iCAAiC;IACjC,WAAW;IACX,aAAa;IACb,OAAO;IACP,IAAI;IAEJ,gBAAgB,CAAC,OAAO;QACtB,qCAAqC;QACrC,MAAM,UAAU,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,MAAM,GAAG,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QAEpC,IAAG,MAAM,IAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAC,EAAE,EAAC;YAEjC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;SAElC;QAED,OAAO,IAAI,CAAC,CAAC,WAAW;IAC1B,CAAC;IAED,WAAW,CAAC,OAAO;QACjB,MAAM,UAAU,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAE7C,IAAG,UAAU,IAAI,GAAG,IAAI,UAAU,IAAI,MAAM,EAAC;YAE3C,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;SAEnC;QAED,OAAO,IAAI,CAAC,CAAC,WAAW;IAC1B,CAAC;;8EAteY,eAAe;+FAAf,eAAe;kEA4Bf,iEAAkB;wEASlB,wEAAY;wEACZ,8DAAO;;;;;;qFAxCP,CAAC,8EAAmB,CAAC;QC7BlC,yEACgB;QAAA;QAAA,yEACQ;QAAA;QAAA,wEAA2B;QAAA,iEAAM;QAAA,4DAAK;QAC9C;QAAA,4DAAM;QACV;QAAA,4DAAM;QAEF;QAAA,0EACI;QAAA;QAAA,0EACI;QAAA;QAAA,0EACQ;QAAA;QAAA,2EACQ;QAAA;QAAA,iEACA;QAAA;QAAA,mFAE+D;QAD/D,8IAAS,qBAAiB,IAAI,CAAC,IAAC;QAC+B,wEAAW;QAAA,4DAAe;QACzF;QAAA,iEACA;QAAA;QAAA,iEACR;QAAA;QAAA,4DAAU;QAClB;QAAA,4DAAM;QACN;QAAA,0EACQ;QAAA;QAAA,iEACA;QAAA;QAAA,2EACQ;QAAA;QAAA,+EAAuB;QAAA,mEAAO;QAAA,4DAAW;QACzC;QAAA,wEACQ;QAAA,0LAChB;QAFQ,4DACQ;QAChB,4DAAO;QACf;QAAA,4DAAM;QACV;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,2EACQ;QAAA;QAAA,sFACQ;QAAA;QAAA,6EAAW;QAAA,iEAAK;QAAA,4EAA0B;QAAA,6DAAC;QAAA,4DAAO;QAAA,4DAAY;QAC9D;QAAA,6EACA;QADgC,uIAAS,uBAAmB,IAAC,qFAAa,uBAAmB,IAAhC;QAA7D,4DACA;QAAA;QAAA,oHAEQ;QAEL;QAAA,4FACG;QADiE,0KAAkB,uCAAmC,IAAC;QACvH;QAAA,4HACa;;QAEhB;QAAA,4DAAmB;QACnB;QAAA,0HAAmF;QAC9F;QAAA,4DAAiB;QAEzB;QAAA,4DAAM;QAEN;QAAA,+GACQ;QAQR;QAAA,2EACQ;QAAA;QAAA,sFACE;QAAA;QAAA,6EAAW;QAAA,6EAAiB;QAAA,4EAA0B;QAAA,6DAAC;QAAA,4DAAO;QAAA,4DAAY;QAC1E;QAAA,kFACE;QAAA;QAAA,4HACE;QACJ;QAAA,4DAAa;QACb;QAAA,0HAA4F;QAC9F;QAAA,4DAAiB;QACzB;QAAA,4DAAM;QACN;QAAA,2EACQ;QAAA;QAAA,sFACI;QAAA;QAAA,6EAAW;QAAA,2EAAe;QAAA,4EAA0B;QAAA,6DAAC;QAAA,4DAAO;QAAA,4DAAY;QACxE;QAAA,6EAEA;QAF4B,mJAAY,0BAAsB,IAAC;QAA/D,4DAEA;QAAA;QAAA,0HAAkF;QAClF;QACA;QAAA,4HAAiF;QACrF;QAAA,4DAAiB;QACzB;QAAA,4DAAM;QACN;QAAA,4EACQ;QAAA;QAAA,uFACI;QAAA;QAAA,8EAAW;QAAA,iFAAoB;QAAA,6EAA2B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QAC9E;QAAA,yEAEA;QAAA;QAAA,4HAAmF;QAEnF;QAAA,4HAAoF;QACpF;QAAA,4HACI;QAEJ;QAAA,4HACI;QAER;QAAA,4DAAiB;QACzB;QAAA,4DAAM;QAEV;QAAA,4DAAM;QACN;QAAA,2EACQ;QAAA;QAAA,4EACQ;QAAA;QAAA,+EACE;QADyB,yIAAS,YAAQ,IAAC;QAC3C;QAAA,6EAAU;QAAA,kEAAK;QAAA,4DAAW;QAAA,wGAC5B;QAAA,4DAAS;QACT;QAAA,+EAA2D;QAAnB,yIAAS,YAAQ,IAAC;QAAC,yDAAY;QAAA,4DAAS;QACxF;QAAA,4DAAM;QACd;QAAA,4DAAM;QACV;QAAA,4DAAO;QAGP;QAAA,iFACQ;QAAA;QAAA,qFACA;QAAA;QAAA,2EACQ;QAAA;QAAA,4EACQ;QAAA;QAAA,gFACV;QAAA;QAAA,uFACG;QAAA;QAAA,8EAAW;QAAA,mEAAM;QAAA,4DAAY;QAC3B;QAAA,kFACJ;QADoB,8IAAS,uBAAmB,IAAC;QAA7C,4DACJ;QAAA;QAAA,4DAAiB;QACpB;QAAA,4DAAU;QACZ;QAAA,4DAAM;QACR;QAAA,4DAAM;QACN;QAAA,4EACQ;QAAA;QAAA,8EACQ;QAAA;QAAA,8EACQ;QAAA;QAAA,8GAAgF;QAChF;QAAA,8GAAwC;QAChD;QAAA,qEAAe;QACf;QAAA,8EACQ;QAAA;QAAA,8GAAgF;QAChF;QAAA,8GAAwC;QAChD;QAAA,qEAAe;QACf;QAAA,8EACQ;QAAA;QAAA,8GAAgF;QAChF;QAAA,8GAAwC;QAChD;QAAA,qEAAe;QACf;QAAA,8EACQ;QAAA;QAAA,8GAAgF;QAChF;QAAA,8GAAwC;QAChD;QAAA,qEAAe;QACf;QAMA;QAAA,8GAAuD;QACvD;QAAA,8GAA6D;QAC7D;QAAA,8GACA;QAER;QAAA,4DAAQ;QAChB;QAAA,4DAAM;QACN;QAAA,4EACQ;QAAA;QAAA,iFAAgE;QACvE;QAAA,4DAAM;QACP;QAAA,4DAAmB;QAC3B;QAAA,4DAAW;QACX;QAAA,oFAEQ;QAAA;QAAA,0EAAmB;QAAA,wEAAW;QAAA,4DAAI;QAC1C;QAAA,4DAAc;;;QArJR,0DAAsB;QAAtB,mFAAsB;QAOW,2DAA8C;QAA9C,2GAA8C;QAgBrD,2DAA+B;QAA/B,uGAA+B;QAE6E,0DAAwB;QAAxB,gFAAwB;QACnI,0DAA8B;QAA9B,4FAA8B;QAIM,0DAAyB;QAAzB,sFAAyB;QACpD,0DAAoD;QAApD,iKAAoD;QAIxD,0DAAsE;QAAtE,uIAAsE;QAK9E,0DAA0B;QAA1B,wFAA0B;QAUxB,0DAA+B;QAA/B,uGAA+B;QAG/B,0DAAmC;QAAnC,0FAAmC;QAGtC,0DAAgF;QAAhF,kJAAgF;QAI7E,0DAA+B;QAA/B,uGAA+B;QAIhC,0DAAsE;QAAtE,wIAAsE;QAEtE,0DAAqE;QAArE,uIAAqE;QAIpE,0DAA+B;QAA/B,uGAA+B;QAIhC,0DAAuE;QAAvE,yIAAuE;QAEvE,0DAAwE;QAAxE,0IAAwE;QACxE,0DAA+E;QAA/E,iJAA+E;QAG/E,0DAAgF;QAAhF,kJAAgF;QAYhC,2DAAY;QAAZ,6EAAY;QAW7D,2DAA+B;QAA/B,uGAA+B;QAQ5B,2DAAyB;QAAzB,sFAAyB;QAuBf,2DAAmC;QAAnC,iGAAmC;QAC1C,0DAAgD;QAAhD,kGAAgD;QAOrD,0DAAgC;QAAhC,mJAAgC;QAIL,0DAAmB;QAAnB,4EAAmB;;6FDzHhF,eAAe;cAN3B,uDAAS;eAAC;gBACT,QAAQ,EAAE,YAAY;gBACtB,WAAW,EAAE,yBAAyB;gBACtC,SAAS,EAAE,CAAC,yBAAyB,CAAC;gBACtC,SAAS,EAAE,CAAC,8EAAmB,CAAC;aACjC;knBA6BgC,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;YASc,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACH,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AEpEtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AAGnB;AAE4B;AACR;;;;;;;;;;;;;;IC0CtD,uFACA;IAAA;IAAA,4DAAmB;;;;IArBvB,yEACI;IAAA;IACA;IACA;IAAA,2EACI;IAAA;IAAA,yEACI;IAAA;IAAA,yEACI;IAAA,uDACJ;IAAA,4DAAM;IACN;IAAA,2EACI;IAAA;IAAA,8EAC6B;IADL,+TAAsB;IACjB,gFAAmC;IAAA,kEAAM;IAAA,4DAAW;IAAA,4DAAS;IAC1F;IAAA,8EACI;IAAA;IAAA,gFAA4D;IAAlD,mUAAwB;IAA0B,iEAAK;IAAA,4DAAW;IAChF;IAAA,4DAAS;IACb;IAAA,4DAAM;IACV;IAAA,4DAAM;IACV;IAAA,4DAAW;IAEX;IACA;IACA;IAAA,wJACA;IACJ;IAAA,4DAAM;;;IAhBU,0DACJ;IADI,iIACJ;IAa+B,2DAAoB;IAApB,qFAAoB;;AD/B5D,MAAM,wBAAwB;IAanC,YAAoB,IAAiB,EAC3B,SAAuB,EACvB,OAA+B,EAC/B,mBAA0C;QAHhC,SAAI,GAAJ,IAAI,CAAa;QAC3B,cAAS,GAAT,SAAS,CAAc;QACvB,YAAO,GAAP,OAAO,CAAwB;QAC/B,wBAAmB,GAAnB,mBAAmB,CAAuB;QAdpD,aAAQ,GAAC,EAAE,CAAC;QAEb,aAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC1B,iBAAY,GAAY,KAAK,CAAC;QAE9B,cAAS,GAAE,qEAAW,CAAC,oBAAoB,CAAC;QAC5C,gBAAW,GAAG,uDAAe,CAAC,eAAe;IAQY,CAAC;IAEzD,QAAQ;IACR,CAAC;IAED,cAAc,CAAC,KAAK;QAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAQ,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAExC,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;YAC1B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAC,IAAI,CAAC,CAAC;SACrC;IACL,CAAC;IAED,UAAU;QACR,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,IAAI,CAAC,QAAQ,CAChG;aACA,IAAI,CACD,+DAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAC/B,CAAC;QAEF,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YACzC,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,4BAA4B,EAC5B,GAAG,EACH;gBACE,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAG,CAAC,eAAe,CAAC;gBAC9B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CACF,CAAC;QACJ,CAAC,EAAC,CAAC,KAAK,EAAC,EAAE;YACT,IAAI,CAAC,SAAS,CAAC,IAAI,CAClB,KAAK,CAAC,KAAK,EACV,GAAG,EACH;gBACE,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAG,CAAC,aAAa,CAAC;gBAC5B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CACF,CAAC;QACJ,CAAC,CAAC;IACF,CAAC;IAED,YAAY;QACV,IAAG,IAAI,CAAC,SAAS,EAAC;YAChB,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;SAC9B;QACD,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAED,KAAK;QACH,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,CAAC,GAAO,EAAC,EAAE;YAElD,MAAM,MAAM,GAAG,gFAAgF,GAAG,GAAG,CAAC,OAAO,CAAC;YAE9G,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YAEzC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;YAEnB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;YAE7B,IAAI,CAAC,KAAK,EAAE,CAAC;QAEf,CAAC,CAAC;IACJ,CAAC;;gGA3FY,wBAAwB;wGAAxB,wBAAwB;;;;;;;QCDrC;QAAA,yEACQ;QAAA;QAAA,4EAAqE;QAA7B,gJAAS,sBAAkB,IAAC;QAAC,kFAAuB;QAAA,2EAAU;QAAA,mEAAQ;QAAA,4DAAW;QAAA,4DAAS;QAC1I;QAAA,4DAAM;QAEN;QAAA,yEACI;QAAA;QAAA,qEAAG;QAAA,qGAAyC;QAAA,4DAAI;QAEhD;QAAA,+EAIA;QAFI,wJAAU,0BAAsB,IAAC,oHAA0C,IAAI,IAA9C;QAFrC,4DAIA;QAAA;QAAA,6EAAqF;QAA7B,8RAAS,WAAkB,IAAC;QAAC,uEAAW;QAAA,4DAAS;QACzG;QAAA,uHACI;QAuBR;QAAA,4DAAM;;QAxBG,2DAAgB;QAAhB,8EAAgB;;6FDXZ,wBAAwB;cAPpC,uDAAS;eAAC;gBACT,QAAQ,EAAE,uBAAuB;gBACjC,WAAW,EAAE,oCAAoC;gBACjD,SAAS,EAAE,CAAC,oCAAoC,CAAC;aAClD;+YAc0B,UAAU;kBAAlC,uDAAS;mBAAC,YAAY;;;;;;;;;;;;;;AE7BzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AAIG;AACF;AACd;;;;;;;;;;;ICAxC,4EAAyC;IAAA,2EAAgB;IAAA,2EAAmC;IAAA,uDAAgB;IAAA,4DAAO;IAAA,4DAAY;;;IAAnC,0DAAgB;IAAhB,8FAAgB;;ADS7G,MAAM,gCAAgC;IAiB3C,YAAoB,yBAA4D,EAAS,MAAe,EAAS,QAAwB;QAArH,8BAAyB,GAAzB,yBAAyB,CAAmC;QAAS,WAAM,GAAN,MAAM,CAAS;QAAS,aAAQ,GAAR,QAAQ,CAAgB;QAhBzI,oBAAe,GAAoB;YACjC,WAAW,EAAE,cAAc;YAC3B,MAAM,EAAE,EACH;SACN,CAAC;QAKF,eAAU,GAAQ,CAAC,CAAC;QAEb,cAAS,GAAG,IAAI,6EAAe,CAAC,EAAE,CAAC,CAAC;QAEnC,iBAAY,GAAiB,IAAI,6DAAO,EAAO,CAAC;IAGqF,CAAC;IAE9I,QAAQ;QACN,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,EAAC,CAAC,CAAC,CAAC;QAC3F,IAAI,CAAC,QAAQ,GAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,+BAA+B,CAAC,CAAC,QAAQ,CAAC;QACnF,IAAI,CAAC,yBAAyB,CAAC,wBAAwB,CAAC,IAAI,CAAC,mFAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAO,EAAC,EAAE;YAC9G,IAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,EAAC;gBAC7B,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC/C,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC3C,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,SAAS,CAAC;gBAChC,IAAI,CAAC,YAAY,GAAI,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC;gBAC7C,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC;gBACjC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;gBAClC,iCAAiC;gBACjC,IAAI,CAAC,cAAc,EAAE,CAAC;aACvB;QACH,CAAC,CAAC;IACJ,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,mFAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YAAI,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC9F,IAAG,KAAK,CAAC,KAAK,KAAK,SAAS,EAAC;oBAC3B,KAAK,CAAC,iBAAiB,CAAC,GAAG,QAAQ;iBACpC;qBACI,IAAG,KAAK,CAAC,KAAK,KAAK,SAAS,EAAC;oBAChC,KAAK,CAAC,iBAAiB,CAAC,GAAG,MAAM;iBAClC;qBACI,IAAG,KAAK,CAAC,KAAK,IAAE,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,EAAC;oBACrF,KAAK,CAAC,iBAAiB,CAAC,GAAG,MAAM;oBACjC,KAAK,CAAC,WAAW,CAAC,GAAG,OAAO;iBAC7B;qBACI,IAAG,KAAK,CAAC,KAAK,KAAI,SAAS,EAAC;oBAC/B,KAAK,CAAC,iBAAiB,CAAC,GAAG,OAAO;iBACnC;qBACI,IAAG,KAAK,CAAC,KAAK,IAAI,KAAK,EAAC;oBACzB,KAAK,CAAC,SAAS,CAAC,GAAG,MAAM;iBAC5B;qBAEI,IAAG,KAAK,CAAC,KAAK,IAAI,KAAK,EAAC;oBAC3B,KAAK,CAAC,iBAAiB,CAAC,GAAG,SAAS;oBACpC,KAAK,CAAC,WAAW,CAAC,GAAG,OAAO;iBAE7B;qBACI,IAAG,KAAK,CAAC,KAAK,IAAI,IAAI,EAAC;oBAC1B,KAAK,CAAC,SAAS,CAAC,GAAG,MAAM;iBAC1B;qBACI,IAAG,KAAK,CAAC,KAAK,IAAI,aAAa,EAAC;oBACnC,KAAK,CAAC,iBAAiB,CAAC,GAAG,SAAS;oBACpC,KAAK,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC;iBAC3B;qBACI,IAAG,KAAK,CAAC,KAAK,IAAE,QAAQ,EAC7B;oBACE,KAAK,CAAC,iBAAiB,CAAC,GAAC,SAAS;oBAClC,KAAK,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;iBAC5B;qBAGI;oBACH,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;oBACnC,iKAAiK;oBACjK,0CAA0C;oBAC1C,kCAAkC;oBAClC,uDAAuD;oBACvD,IAAI;oBACJ,IAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC,CAAC,EAAC;wBACpG,oCAAoC;wBACpC,IAAG,KAAK,CAAC,CAAC,CAAC,KAAI,qBAAqB,EAAC;4BACnC,KAAK,CAAC,iBAAiB,CAAC,GAAG,KAAK,CAAC;yBAClC;6BACG;4BACH,KAAK,CAAC,SAAS,CAAC,GAAE,MAAM;yBACxB;qBACF;iBACF;gBACD,OAAO,KAAK,CAAC;YACf,CAAC,CAAC;QAAA,CAAC,CAAC,CAAC;QAEL,IAAI,CAAC,eAAe,GAAG;YACrB,WAAW,EAAE,cAAc;YAC3B,WAAW,EAAE,IAAI,CAAC,SAAS;YAC3B,MAAM,EAAG,IAAI,CAAC,UAAU;YACxB,UAAU,EAAE,OAAO;YACnB,gBAAgB,EAAE,OAAO;YACzB,UAAU,EAAE;gBACV,KAAK,EAAE,IAAI,CAAC,SAAS;gBACrB,GAAG,EAAE,IAAI,CAAC,OAAO;aAClB;SACD,CAAC;IACL,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;IACtC,CAAC;IAED,mBAAmB;QAClB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,4BAA4B,CAAC,CAAC;IACrD,CAAC;IAED,MAAM;QAEL,IAAG,IAAI,CAAC,QAAQ,IAAE,WAAW,EAC7B;YACE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EACrB;gBACE,mBAAmB,EAAE,OAAO;gBAC5B,UAAU,EAAE,IAAI;aAChB,CAAC,CAAC,IAAI,CACN,GAAG,EAAE;gBACH,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,iCAAiC,CAAC,EAAE,EAAE,WAAW,EAAE,EAAC,UAAU,EAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAClI,CAAC,CACD,CAAC;SAEN;aACG;YACF,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EACrB;gBACE,mBAAmB,EAAE,OAAO;gBAC5B,UAAU,EAAE,IAAI;aAChB,CAAC,CAAC,IAAI,CACN,GAAG,EAAE;gBACH,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,uCAAuC,CAAC,EAAE,EAAE,WAAW,EAAE,EAAC,UAAU,EAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACxI,CAAC,CACD,CAAC;YACN,kEAAkE;SAClE;IACF,CAAC;;gHA9IS,gCAAgC;gHAAhC,gCAAgC;;;;;;QCf7C,yEACI;QAAA;QAAA,yEACA;QAAA;QAAA,yEACI;QAAA;QAAA,8EAAgD;QAAnB,0JAAS,YAAQ,IAAC;QAAC,qEAAU;QAAA,4DAAW;QAAA,oEAAG;QAAA,uDAAiC;QAAA,4DAAI;QACjH;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,0IAAyC;QAC7C;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,6EAAwF;QAAhD,yJAAS,yBAAqB,IAAC;QAAiB,gFAAoB;QAAA,4DAAS;QACzH;QAAA,4DAAM;QACV;QAAA,4DAAM;QAGN;QAAA,0EACI;QAAA;QAAA,mFACiB;QACrB;QAAA,4DAAM;QACN;QAAA,4DAAM;QACN;;QAhBgF,0DAAiC;QAAjC,2GAAiC;QAG9F,0DAA6B;QAA7B,6FAA6B;QASW,2DAA2B;QAA3B,wFAA2B;;6FDAzE,gCAAgC;cAL5C,uDAAS;eAAC;gBACT,QAAQ,EAAE,+BAA+B;gBACzC,WAAW,EAAE,4CAA4C;gBACzD,SAAS,EAAE,CAAC,4CAA4C,CAAC;aAC1D;iUAcwB,iBAAiB;kBAAvC,uDAAS;mBAAC,UAAU;;;;;;;;;;;;;;AE5BvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AAEZ;AACY;;;;;;;;;;;;ICK/C,yEACE;IAAA,0GACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,mIACF;;;IAGA,yEAAsD;IAAA,wFACtD;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,qIACF;;;IAIA,yEAAsD;IAAA,kFACtD;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,mIACF;;;IAGA,yEAAsD;IAAA,+EACtD;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,2IACF;;;IAGA,yEACE;IAAA,iGACF;IAAA,4DAAK;;;;IACL,yEACE;IAAA;IAAA,+EAAmF;IAAjD,uZAAgD;IAAC,qEAAU;IAAA,4DAAW;IAC1G;IAAA,4DAAK;;;IAGT,oEAA4D;;;IAC5D,oEAAkE;;;IAClE,yEACE;IAAA;IAAA,yEAAiC;IAAA,iFAAsB;IAAA,4DAAK;IAC9D;IAAA,4DAAK;;;ADnCR,MAAM,4CAA4C;IAUvD,YAAoB,MAAe,EAAS,OAA+B,EAAQ,UAAsB;QAArF,WAAM,GAAN,MAAM,CAAS;QAAS,YAAO,GAAP,OAAO,CAAwB;QAAQ,eAAU,GAAV,UAAU,CAAY;QARzG,gBAAW,GAAG,IAAI,0EAAkB,EAA4B,CAAC;QACjE,kBAAa,GAAgC,EAAE,CAAC;QAChD,qBAAgB,GAAa,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAMiC,CAAC;IAE9G,QAAQ;QACN,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE;YAC5D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CACrB,cAAc,CAAC,iCAAiC,CAAC,CAClD,CAAC,UAAU,CAAC;QACb,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CACxB,cAAc,CAAC,iCAAiC,CAAC,CAClD,CAAC,QAAQ,CAAC;QACX,IAAI,CAAC,kCAAkC,EAAE,CAAC;IAG5C,CAAC;IAED,6BAA6B,CAAC,OAAO;QACnC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,uBAAuB,GAAC,OAAO,CAAC,WAAW,EAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;IAC5F,CAAC;IAED,kCAAkC;QAChC,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,WAAW,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC9D,IAAI,CAAC,OAAO,CAAC,gDAAgD,CAAC,IAAI,CAAC,KAAK,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,GAAgC,EAAC,EAAE;YACtI,IAAI,CAAC,aAAa,GAAG,GAAG;YACxB,IAAI,CAAC,WAAW,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC9D,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,wBAAwB,CAAC;YAC3D,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAClC,CAAC,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,WAAW,EAAE;gBACf,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;aAC5D;iBACI;gBACH,IAAI,CAAC,WAAW,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBAC9D,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,wBAAwB,CAAC;gBAC3D,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;aACnC;SACF;aAAM;YACL,IAAI,CAAC,WAAW,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC9D,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,wBAAwB,CAAC;YAC3D,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SACnC;IACH,CAAC;;wIA1DU,4CAA4C;4HAA5C,4CAA4C;;wEAM5C,8DAAO;;;;;;QCrBpB,8EACI;QAAA;QAAA,kFACI;QAAA;QAAA,iFAAgB;QAAA,4EAAiB;QAAA,4DAAiB;QACtD;QAAA,4DAAkB;QAClB;QAAA,mFACI;QAAA;QAAA,4EAEI;QAAA;QAAA,4EACE;QAAA;QAAA,wIACE;QAEF;QAAA,wIACE;QAEJ;QAAA,qEAAe;QACf;QAAA,4EACE;QAAA;QAAA,wIAAsD;QAEtD;QAAA,wIACE;QAEJ;QAAA,qEAAe;QAEf;QAAA,4EACE;QAAA;QAAA,wIAAsD;QAEtD;QAAA,wIACE;QAEJ;QAAA,qEAAe;QACf;QAAA,4EACE;QAAA;QAAA,wIAAsD;QAEtD;QAAA,wIACE;QAEJ;QAAA,qEAAe;QACf;QAAA,4EACE;QAAA;QAAA,wIACE;QAEF;QAAA,wIACE;QAEJ;QAAA,qEAAe;QAEjB;QAAA,yIAAuD;QACvD;QAAA,yIAA6D;QAC7D;QAAA,yIACE;QAEJ;QAAA,4DAAQ;QACR;QAAA,2EACE;QAAA;QAAA,yFAEA;QAAA;QAAA,4DAAgB;QAClB;QAAA,4DAAM;QACV;QAAA,4DAAmB;QACvB;QAAA,4DAAW;;QArDc,2DAA0B;QAA1B,uFAA0B;QAyCtB,2DAAmC;QAAnC,iGAAmC;QAC1C,0DAAgD;QAAhD,kGAAgD;QAMnB,0DAAgC;QAAhC,kJAAgC;;6FDtCtE,4CAA4C;cALxD,uDAAS;eAAC;gBACT,QAAQ,EAAE,4CAA4C;gBACtD,WAAW,EAAE,yDAAyD;gBACtE,SAAS,EAAE,CAAC,yDAAyD,CAAC;aACvE;iTAM2D,wBAAwB;kBAAjF,uDAAS;mBAAC,0BAA0B,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;YAClB,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AErBtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0D;AACG;AAEF;AAEV;AACY;AAGmD;AACnC;;;;;;;;;;;;;;;;;;ICUnE,yEACE;IAAA;IAAA,mFAGA;IAHc,sWAAoC,IAAI,IAAC;IAGvD;IAAA,4DAAe;IACjB;IAAA,4DAAK;;;IAHW,0DAAmD;IAAnD,0HAAmD;;;;IAInE,yEACE;IAAA;IAAA,mFAGA;IAHc,mPAAS,wBAAwB,IAAC,oTACf,iCAAqB,GAAG,IAAI,IADb;IAGhD;IAAA,4DAAe;IACjB;IAAA,4DAAK;;;;IAFW,0DAAqC;IAArC,yGAAqC;;;IAMnD,yEACA;IAAA,2FACA;IAAA,4DAAK;;;IACL,yEACA;IAAA,uDACA;;IAAA,4DAAK;;;IADL,0DACA;IADA,0NACA;;;IAGA,yEAAsD;IAAA,gFACtD;IAAA,4DAAK;;;IACL,yEACA;IAAA,uDACA;IAAA,4DAAK;;;IADL,0DACA;IADA,wHACA;;;IAIF,yEAAsD;IAAA,+EACtD;IAAA,4DAAK;;;IACL,yEACA;IAAA,uDACA;IAAA,4DAAK;;;IADL,0DACA;IADA,qHACA;;;IAIE,yEAAsD;IAAA,iFACtD;IAAA,4DAAK;;;IACL,yEACA;IAAA,uDACA;IAAA,4DAAK;;;IADL,0DACA;IADA,0HACA;;;IAGF,yEAAuC;IAAA,oEAAQ;IAAA,4DAAK;;;IACpD,yEAAuC;IAAA,uDACvC;IAAA,4DAAK;;;IADkC,0DACvC;IADuC,yGACvC;;;IAGJ,oEAA4D;;;IAC5D,oEAAkE;;;IAC9D,yEACE;IAAA;IAAA,yEAAiC;IAAA,iFAAsB;IAAA,4DAAK;IAC9D;IAAA,4DAAK;;;ADzDR,MAAM,sCAAsC;IAwBjD,YAAqB,QAAwB,EACnC,OAA+B,EAC/B,SAAuB,EACvB,MAAe,EACf,MAAkB,EAAQ,UAAsB;QAJrC,aAAQ,GAAR,QAAQ,CAAgB;QACnC,YAAO,GAAP,OAAO,CAAwB;QAC/B,cAAS,GAAT,SAAS,CAAc;QACvB,WAAM,GAAN,MAAM,CAAS;QACf,WAAM,GAAN,MAAM,CAAY;QAAQ,eAAU,GAAV,UAAU,CAAY;QA1B1D,eAAU,GAAG,IAAI,0EAAkB,EAA4B,CAAC;QAChE,qBAAgB,GAAa;YAC3B,QAAQ;YACR,2BAA2B;YAC3B,QAAQ;YACR,SAAS;YACT,UAAU;YACV,SAAS;SACV,CAAC;QAGF,oBAAe,GAA8B,EAAE,CAAC;QAMhD,cAAS,GAAG,IAAI,uEAAc,CAA2B,IAAI,EAAE,EAAE,CAAC,CAAC;QACnE,8BAAyB,GAA8B,IAAI,qFAAwB,EAAE;IAQvB,CAAC;IAE/D,QAAQ;QACN,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE;YAC5D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CACrB,cAAc,CAAC,iCAAiC,CAAC,CAClD,CAAC,UAAU,CAAC;QACb,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CACxB,cAAc,CAAC,iCAAiC,CAAC,CAClD,CAAC,QAAQ,CAAC;QACX,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,KAAI,CAAC,aAAa,GAAC,MAAM,CAAC,aAAa,EAAC,CAAC,CAAC,CAAC;QAC1G,IAAI,CAAC,iDAAiD,EAAE,CAAC;IAC3D,CAAC;IAED,eAAe,CAAC,UAAmB;QACjC,IAAI,CAAC,yBAAyB,GAAG,IAAI,qFAAwB,EAAE;QAC/D,IAAI,CAAC,yBAAyB,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC;QACrD,IAAI,CAAC,yBAAyB,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;QACvD,IAAI,CAAC,yBAAyB,CAAC,mBAAmB,GAAC,EAAE,CAAC;QACtD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;gBAClD,IAAI,CAAC,yBAAyB,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,yBAAyB,CAAC;QACtF,CAAC,CAAC,CAAC;QAEH,IAAG,IAAI,CAAC,yBAAyB,CAAC,mBAAmB,CAAC,MAAM,KAAI,CAAC,EAAC;YAChE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,2BAA2B,EAAE,GAAG,EAAE;gBACpD,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACH,OAAO;SACR;QAED,IAAG,UAAU,KAAK,SAAS,EAAC;YAC1B,IAAI,CAAC,yBAAyB,CAAC,UAAU,GAAG,IAAI,CAAC;YACjD,IAAI,CAAC,8BAA8B,CAAC,UAAU,CAAC,CAAC;SACjD;aACI,IAAG,UAAU,KAAK,QAAQ,EAAC;YAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6HAAqB,EAAC;gBACvD,KAAK,EAAC,OAAO;gBACb,YAAY,EAAE,IAAI;aAEnB,CAAC,CAAC;YACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;gBACzC,uBAAuB;gBACvB,IAAG,MAAM,EAAC;oBACV,IAAI,CAAC,yBAAyB,CAAC,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC;oBACjE,IAAI,CAAC,yBAAyB,CAAC,UAAU,GAAG,KAAK,CAAC;oBAClD,IAAI,CAAC,yBAAyB,CAAC,UAAU,GAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,UAAU,CAAC;oBACnH,IAAI,CAAC,yBAAyB,CAAC,YAAY,GAAC,IAAI,IAAI,EAAE,CAAC;oBACvD,IAAI,CAAC,8BAA8B,CAAC,UAAU,CAAC,CAAC;iBAC/C;YACH,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,iDAAiD;QAC/C,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,OAAO,CAAC,iDAAiD,CAAC,IAAI,CAAC,EAAE,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,GAAgC,EAAC,EAAE;YAClI,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;YAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC/D,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACjC,IAAG,IAAI,CAAC,eAAe,CAAC,MAAM,IAAG,CAAC,EAAC;gBACjC,IAAI,CAAC,WAAW,EAAE,CAAC;aACpB;QACH,CAAC,EACD,CAAC,KAAK,EAAC,EAAE;YACP,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;YAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC/D,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACjC,IAAG,IAAI,CAAC,eAAe,CAAC,MAAM,IAAG,CAAC,EAAC;gBACjC,IAAI,CAAC,WAAW,EAAE,CAAC;aACpB;QACH,CAAC,CAAC;IAEJ,CAAC;IAED,WAAW;QACT,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAC7C,CAAC;IAED,aAAa;QACX,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;QACnD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC;QACpD,OAAO,WAAW,KAAK,OAAO,CAAC;IACjC,CAAC;IAED,gFAAgF;IAChF,YAAY;QACV,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;YAClB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;YACxB,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED,8BAA8B,CAAC,UAAiB;QAC9C,IAAI,CAAC,OAAO,CAAC,8CAA8C,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,SAAS,CAAC,CAAC,GAAO,EAAC,EAAE;YAC/G,IAAG,GAAG,CAAC,YAAY,EAAC;gBAClB,IAAG,UAAU,KAAK,SAAS,EAAC;oBAC1B,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,yBAAyB,EACzB,GAAG,EACH;wBACE,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAG,CAAC,eAAe,CAAC;wBAC9B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CACF,CAAC;iBACH;qBACI,IAAG,UAAU,KAAK,QAAQ,EAAC;oBAC9B,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,yBAAyB,EACzB,GAAG,EACH;wBACE,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAG,CAAC,eAAe,CAAC;wBAC9B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CACF,CAAC;iBACH;gBACD,sBAAsB;gBACtB,IAAI,CAAC,iDAAiD,EAAE,CAAC;gBACzD,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;gBACxC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;aACxB;iBACG;gBACF,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,yBAAyB,EACzB,GAAG,EACH;oBACE,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAG,CAAC,aAAa,CAAC;oBAC5B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CACF,CAAC;gBACF,IAAI,CAAC,iDAAiD,EAAE,CAAC;gBACzD,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;gBACxC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;aACxB;QACH,CAAC,EACD,CAAC,KAAK,EAAC,EAAE;YACP,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,yBAAyB,EACzB,GAAG,EACH;gBACE,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAG,CAAC,aAAa,CAAC;gBAC5B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CACF,CAAC;YACF,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;YACxC,IAAI,CAAC,iDAAiD,EAAE,CAAC;YACzD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACzB,CAAC,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,WAAW,EAAE;gBACf,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;aAC3D;iBACI;gBACH,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBAC/D,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;aAClC;SACF;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC/D,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SAClC;IACH,CAAC;;4HA9MU,sCAAsC;sHAAtC,sCAAsC;kEAgBtC,wEAAY;wEACZ,8DAAO;;;;;;QCnCpB,2EACI;QAAA;QAAA,mFACE;QAAA;QAAA,yEACE;QAAA;QAAA,yEACA;QAAA;QACE;QAAA,8EAAoD;QAA1C,gKAAS,iBAAa,IAAC;QAAmB,sEAAU;QAAA,4DAAW;QACzE;QACF;QACF;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,6EAAW;QAAA,4EAAgB;QAAA,2EAAiC;QAAA,wDAAiB;QAAA,4DAAO;QAAA,4DAAY;QAClG;QAAA,4DAAM;QACF;QAAA,0EACI;QAAA;QAAA,6EAA6E;QAArC,+JAAS,oBAAgB,SAAS,CAAC,IAAC;QAAC,mEAAO;QAAA,4DAAS;QAC7F;QAAA,6EAAgE;QAApC,+JAAS,oBAAgB,QAAQ,CAAC,IAAC;QAAC,kEAAM;QAAA,4DAAS;QACnF;QAAA,4DAAM;QACV;QAAA,4DAAM;QAEN;QAAA,4EACE;QAAA;QAAA,4EACE;QAAA;QAAA,mIACE;QAKF;QAAA,mIACE;QAKJ;QAAA,qEAAe;QAEf;QAAA,6EACI;QAAA;QAAA,mIACA;QAEA;QAAA,mIACA;QAEJ;QAAA,qEAAe;QACf;QAAA,6EACI;QAAA;QAAA,mIAAsD;QAEtD;QAAA,mIACA;QAEJ;QAAA,qEAAe;QAEf;QAAA,6EACE;QAAA;QAAA,mIAAsD;QAEtD;QAAA,mIACA;QAEJ;QAAA,qEAAe;QAEb;QAAA,6EACI;QAAA;QAAA,mIAAsD;QAEtD;QAAA,mIACA;QAEJ;QAAA,qEAAe;QACf;QAAA,6EACE;QAAA;QAAA,mIAAuC;QACvC;QAAA,mIAAuC;QAEzC;QAAA,qEAAe;QAEjB;QAAA,mIAAuD;QACvD;QAAA,mIAA6D;QACzD;QAAA,mIACE;QAER;QAAA,4DAAQ;QACR;QAAA,2EACE;QAAA;QAAA,qFAEA;QAAA;QAAA,4DAAgB;QAClB;QAAA,4DAAM;QACN;QAAA,4DAAmB;QACrB;QAAA,4DAAW;QAGb;;QA5EoE,2DAAiB;QAAjB,kFAAiB;QAQ9D,2DAAyB;QAAzB,sFAAyB;QAqDvB,2DAAmC;QAAnC,iGAAmC;QAC1C,0DAAgD;QAAhD,kGAAgD;QAM7C,0DAAkC;QAAlC,kJAAkC;;6FD5D1C,sCAAsC;cALlD,uDAAS;eAAC;gBACT,QAAQ,EAAE,sCAAsC;gBAChD,WAAW,EAAE,mDAAmD;gBAChE,SAAS,EAAE,CAAC,mDAAmD,CAAC;aACjE;8hBAiB6C,SAAS;kBAApD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;YACJ,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AEnCtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AAEA;AACZ;AAGa;AAE7B;AAC0B;AAIa;;;;;;;;;;;;;;ICRpD,yEACI;IAAA,mHACJ;IAAA,4DAAK;;;IACL,yEACI;IAAA,uDACJ;IAAA,4DAAK;;;IADD,0DACJ;IADI,6IACJ;;;IAGA,yEACI;IAAA,mHACJ;IAAA,4DAAK;;;IACL,yEACI;IAAA,uDACJ;IAAA,4DAAK;;;IADD,0DACJ;IADI,6IACJ;;;IAIA,yEAAgF;IAAA,yEAAa;IAAA,4DAAK;;;IAClG,yEAAyC;IAAA,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,oGAAyB;;;IAIlE,yEACI;IAAA,0HACJ;IAAA,4DAAK;;;;IACL,yEACI;IAAA;IAAA,+EAA8D;IAA5B,oXAA2B;IAAC,+DAAI;IAAA,4DAAW;IACjF;IAAA,4DAAK;;;IAET,oEAA4D;;;IAC5D,oEAAiE;;;IACjE,yEACI;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IACjD;IAAA,4DAAK;;;ADlBd,MAAM,8BAA8B;IAoBzC,YAAoB,qBAAmD,EAAS,OAAe,EAAS,SAAsB,EAAS,UAAsB,EAAY,OAA0B,EAC1L,MAAiB;QADN,0BAAqB,GAArB,qBAAqB,CAA8B;QAAS,YAAO,GAAP,OAAO,CAAQ;QAAS,cAAS,GAAT,SAAS,CAAa;QAAS,eAAU,GAAV,UAAU,CAAY;QAAY,YAAO,GAAP,OAAO,CAAmB;QAC1L,WAAM,GAAN,MAAM,CAAW;QAlBlB,YAAO,GAAW,MAAM,CAAC;QAGzB,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QACtD,qBAAgB,GAAa;YAC3B,SAAS;YACT,SAAS;YACT,aAAa;YACb,UAAU;SACX,CAAC;QAUA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,qBAAqB,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YAC3D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAI,CAAC,2BAA2B,EAAE,CAAC;QAErC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,EAAE;YAC9D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,QAAQ;QACN,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACvF,IAAI,CAAC,2BAA2B,EAAE,CAAC;IACrC,CAAC;IACD,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,WAAW,EAAC;gBACd,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;aACzD;iBACG;gBACJ,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBACjE,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBACjC,IAAI,CAAC,UAAU,CAAC,mBAAmB,GAAG,CAAC,IAAS,EAAE,YAAoB,EAAU,EAAE;oBAChF,IAAI,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,QAAQ,EAAE;wBAC1C,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,iBAAiB,EAAE,CAAC;qBAC/C;oBAED,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC;gBAC5B,CAAC,CAAC;aACD;SACJ;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACjE,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACjC,IAAI,CAAC,UAAU,CAAC,mBAAmB,GAAG,CAAC,IAAS,EAAE,YAAoB,EAAU,EAAE;gBAChF,IAAI,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,QAAQ,EAAE;oBAC1C,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,iBAAiB,EAAE,CAAC;iBAC/C;gBAED,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC;YAC5B,CAAC,CAAC;SACD;IACL,CAAC;IACC,2BAA2B;QACzB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,qBAAqB,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YACjE,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;YAC7B,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAM,EAAE,EAAE;gBACtC,IAAI,CAAC,CAAC,WAAW,IAAI,IAAI,EAAC;oBACxB,CAAC,CAAC,WAAW,GAAG,mCAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;oBAC3D,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC;iBAC3B;;oBACI,CAAC,CAAC,WAAW,GAAG,EAAE,CAAC;YAC1B,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,GAAG,CAAC,CAAC;YAC9C,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACjC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,UAAU,CAAC,mBAAmB,GAAG,CAAC,IAAS,EAAE,YAAoB,EAAU,EAAE;gBAChF,IAAI,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,QAAQ,EAAE;oBAC1C,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,iBAAiB,EAAE,CAAC;iBAC/C;gBAED,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC;YAC5B,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC;IAEF,oBAAoB,CAAC,YAAiB;QACpC,IAAI,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;QACnC,YAAY,CAAC,aAAa,GAAG,YAAY,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QACtE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,qCAAqC,GAAG,YAAY,CAAC,aAAa,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACrI,CAAC;IAED,QAAQ,CAAC,gBAA0B;QACjC,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mFAAkB,EAAE;YACnD,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;YAC7B,YAAY,EAAE,IAAI;YAClB,IAAI,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE;SACpC,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC;;4GA7GQ,8BAA8B;8GAA9B,8BAA8B;wEAgB9B,wEAAY;wEACZ,8DAAO;;;;;;QCrCpB,2EACI;QAAA;QAAA,mFACI;QAAA;QAAA,yEACI;QAAA;QAAA,2EACI;QAAA;QAAA,2EACI;QAAA;QAAA,0HACI;QAEJ;QAAA,0HACI;QAER;QAAA,qEAAe;QACf;QAAA,4EACI;QAAA;QAAA,0HACI;QAEJ;QAAA,0HACI;QAER;QAAA,qEAAe;QAEf;QAAA,4EACI;QAAA;QAAA,0HAAgF;QAChF;QAAA,0HAAyC;QAC3C;QAAA,qEAAe;QAEjB;QAAA,4EACI;QAAA;QAAA,0HACI;QAEJ;QAAA,0HACI;QAER;QAAA,qEAAe;QACf;QAAA,0HAAuD;QACvD;QAAA,0HAA4D;QAC5D;QAAA,2HACI;QAER;QAAA,4DAAQ;QACZ;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,gFAAgE;QACpE;QAAA,4DAAM;QACV;QAAA,4DAAmB;QACvB;QAAA,4DAAW;QACX;QAAA,mFAMI;QAAA;QAAA,yEAAmB;QAAA,uEAAW;QAAA,4DAAI;QACtC;QAAA,4DAAc;QACd;;QAnD6B,0DAAyB;QAAzB,sFAAyB;QA+BnB,2DAAmC;QAAnC,iGAAmC;QAC1C,0DAA+C;QAA/C,kGAA+C;QAOhD,0DAAgC;QAAhC,kJAAgC;QAO1D,0DAAoB;QAApB,6EAAoB;;6FD7BR,8BAA8B;cAL1C,uDAAS;eAAC;gBACT,QAAQ,EAAE,6BAA6B;gBACvC,WAAW,EAAE,0CAA0C;gBACvD,SAAS,EAAE,CAAC,0CAA0C,CAAC;aACxD;2hBAiB4C,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACH,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AErCtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AACJ;AACX;AACsC;AAEvB;AACZ;AACU;AAIgF;;;;;;;;;;;;;;;;;;;;ICK/G,iFAA2D;IAAA,uDAC3D;IAAA,4DAAa;;;IAD8B,2EAAc;IAAE,0DAC3D;IAD2D,gHAC3D;;;IAEJ,4EAAiD;IAAA,yGACjD;IAAA,4DAAY;;;IA2BR,qEACI;IAAA;IAAA,yEAAgB;IAAA,4EAAiB;IAAA,4DAAK;IAC1C;IAAA,4DAAK;;;IAET,qEACI;IAAA;IAAA,qEAAI;IAAA,uDAAgB;IAAA,4DAAK;IACzB;IACJ;IAAA,4DAAK;;;IAFG,0DAAgB;IAAhB,iFAAgB;;;IAcpC,yEAAuE;IAAA,0EAAc;IAAA,4DAAK;;;IAC1F,yEAAwC;IAAA,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,oGAAyB;;;IASjE,yEAEI;IAAA,mHAAmB;IAAA,+EAA8H;IAAA,+DAAI;IAAA,4DAAW;IAAA,4DAAK;;;IACzK,yEAAwC;IAAA,uDAAmB;IAAA,4DAAK;;;IAAxB,0DAAmB;IAAnB,8FAAmB;;;IAI3D,yEAAwE;IAAA,kGAC9D;IAAA,+EAA4K;IAAA,+DAAI;IAAA,4DAAW;IACrM;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDAAoB;IAAA,4DAAK;;;IAAzB,0DAAoB;IAApB,+FAAoB;;;IAItB,yEAA8D;IAAA,iEAAK;IAAA,4DAAK;;;IACxE,yEAAwC;IAAA,uDAA6C;;IAAA,4DAAK;;;IAAlD,0DAA6C;IAA7C,kLAA6C;;;IAIrF,yEAAiE;IAAA,oEAAQ;IAAA,4DAAK;;;IACpC,sEAAqD;IAAA,uDAAmB;IAAA,4DAAM;;;IAAzB,0DAAmB;IAAnB,8FAAmB;;;IAAlH,yEAA0C;IAAA,yHAAqD;IAA0B;IAAA,4DAAK;;;IAA/E,0DAA8C;IAA9C,8GAA8C;;;IAIjG,oEAA2D;;;IAC3D,oEAAiE;;;IAGjE,yEACI;IAAA;IAAA,yEAAiC;IAAA,4EAAiB;IAAA,4DAAK;IAG/D;IAJI,4DACI;;AD1FZ,IAAK,qBAMJ;AAND,WAAK,qBAAqB;IAClB,uEAAW;IACX,yEAAY;IACZ,2EAAa;IACb,2CAAkB;IAClB,6CAAoB;AAC5B,CAAC,EANI,qBAAqB,KAArB,qBAAqB,QAMzB;AAUM,MAAM,sBAAsB;IAsBjC,YAAoB,QAA+B,EAAS,SAAsB,EAAQ,MAAiB,EAAS,MAAe,EAAS,OAAsC;QAA9J,aAAQ,GAAR,QAAQ,CAAuB;QAAS,cAAS,GAAT,SAAS,CAAa;QAAQ,WAAM,GAAN,MAAM,CAAW;QAAS,WAAM,GAAN,MAAM,CAAS;QAAS,YAAO,GAAP,OAAO,CAA+B;QArBlL,qBAAgB,GAAG,2DAAW,CAAC,oBAAoB,CAAC;QACpD,cAAS,GAAG,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;QACnD,aAAQ,GAAG,IAAI,0DAAW,CAAC,EAAC,KAAK,EAAC,gBAAgB,EAAC,QAAQ,EAAC,IAAI,EAAC,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC1F,YAAO,GAAG,IAAI,0DAAW,CAAC,IAAI,CAAC,CAAC;QAChC,eAAU,GAAmB,IAAI,mGAAa,EAAE,CAAC;QACjD,eAAU,GAAsC,IAAI,0EAAkB,EAAE,CAAC;QAEzE,mBAAc,GAAW,KAAK,CAAC;QAKhC,eAAU,GAAC,IAAI,CAAC;QAIf,oBAAe,GAAG,CAAC,eAAe,EAAC,eAAe,EAAC,gBAAgB,EAAC,MAAM,EAAC,SAAS,CAAC,CAAC;QACtF,gBAAW,GAAC,EAAE,CAAC;QACf,gBAAW,GAAG,EAAE;IAGsK,CAAC;IAEvL,QAAQ;QAEN,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,YAAY,CAAC;QAC1F,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACtF,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,UAAU,CAAC;QACtF,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IACD,mBAAmB;QAEjB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YAC1D,IAAI,CAAC,cAAc,GAAC,GAAG,CAAC;YACxB,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,GAAE,EAAC,CAAC,WAAW,CAAC,WAAW,EAAE,IAAE,iBAAiB,CAAC,WAAW,EAAE,CAAC,CAAC;YAC1G,IAAG,OAAO,CAAC,MAAM,IAAE,CAAC,EACpB;gBACE,IAAG,CAAC,IAAI,CAAC,UAAU,EACnB;oBACG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;iBACzB;qBACG;oBACC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;iBAC5B;gBACD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;aAC5C;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,GAAO,EAAC,EAAE;YAC9D,IAAI,CAAC,cAAc,GAAE,KAAK;YAC1B,IAAG,CAAC,GAAG,CAAC,IAAI,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAC;gBAC7C,IAAI,CAAC,QAAQ,GAAG,qBAAqB,CAAC,MAAM,CAAC;gBAC7C,IAAI,CAAC,UAAU,GAAC,KAAK,CAAC;aACvB;iBACI,IAAG,GAAG,CAAC,IAAI,IAAI,qBAAqB,CAAC,QAAQ,EAAC;gBACjD,IAAI,CAAC,UAAU,GAAC,IAAI,CAAC;gBACrB,IAAI,CAAC,QAAQ,GAAG,qBAAqB,CAAC,OAAO,CAAC;gBAC9C,IAAI,CAAC,oBAAoB,EAAE,CAAC;aAC7B;iBAEI,IAAG,GAAG,CAAC,IAAI,IAAI,qBAAqB,CAAC,SAAS,EAAC;gBAClD,IAAI,CAAC,QAAQ,GAAG,qBAAqB,CAAC,MAAM,CAAC;gBAE7C,IAAI,CAAC,oBAAoB,EAAE,CAAC;aAC7B;iBACG;gBACF,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sJAAuC,EAAE;gBACxE,mBAAmB;gBACnB,kBAAkB;iBACnB,CAAC,CAAC;gBACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE;oBACrC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,iCAAiC,CAAC,CAAC;gBAE3D,CAAC,CAAC,CAAC;aACJ;QAEH,CAAC,EAAC,CAAC,KAAK,EAAC,EAAE;YACT,IAAI,CAAC,QAAQ,GAAG,qBAAqB,CAAC,MAAM;YAC5C,IAAI,CAAC,cAAc,GAAG,IAAI;YAC1B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kCAAkC,EAAE,GAAG,EAAE;gBAC3D,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,CAAC,aAAa,CAAC;gBAC3B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CAAC;IACJ,CAAC;IACD,aAAa,CAAC,KAAK;QACjB,IAAI,CAAC,UAAU,GAAG,IAAI,mGAAa,EAAE;QACrC,IAAG,KAAK,CAAC,MAAM,CAAC,SAAS,IAAI,qBAAqB,CAAC,MAAM,EAAC;YACxD,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,qBAAqB,CAAC,QAAQ,CAAC;SAC/D;aACI,IAAG,KAAK,CAAC,MAAM,CAAC,SAAS,IAAI,qBAAqB,CAAC,OAAO,EAAC;YAC9D,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,qBAAqB,CAAC,SAAS,CAAC;SAChE;QAED,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,GAAO,EAAC,EAAE;YACpE,IAAI,cAAc,GAAE,EAAE,CAAC;YACvB,IAAI,CAAC,WAAW,GAAE,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;YACvC,IAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,qBAAqB,CAAC,EAAC;gBAC9C,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,KAAK;aACzB;YACD,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC9B,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACpD,8FAA8F;YAC9F,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,OAAO,EAAC,EAAE;gBAClC,IAAI,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC7B,IAAI,YAAY,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC1B,IAAI,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACjC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,YAAY,EAAC,KAAK,EAAC,QAAQ,CAAC,CAAC,CAAC,EAAC,CAAC;YAChE,CAAC,CAAC;YACF,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,cAAc,CAAC;QAExC,CAAC,EAAC,CAAC,KAAK,EAAC,EAAE;QAEX,CAAC,CAAC;IACJ,CAAC;IAED,qBAAqB;QACnB,wCAAwC;QACxC,mCAAmC;QACnC,0DAA0D;QAC1D,sBAAsB;QACtB,mCAAmC;QACnC,8BAA8B;QAC9B,QAAQ;QACR,WAAW;QACX,IAAI;QACJ,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5C,IAAI,CAAC,UAAU,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC;QAC9C,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QAC7C,IAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,gBAAgB,EAAC;YACzC,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,KAAK,CAAC;SAClC;aACI,IAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,iBAAiB,EAAC;YAC/C,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC;SACjC;aACI,IAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAE,kBAAkB,EAC/C;YACE,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,KAAK,CAAC;SAClC;aACG;YACF,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK;SAC/C;QAED,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,GAAO,EAAC,EAAE;YACvE,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAG,CAAC,GAAG,CAAC,YAAY,EAAC;gBACnB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,GAAG,EAAE,GAAG,EAAE;oBACvD,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;iBACG;gBACF,IAAG,IAAI,CAAC,QAAQ,IAAI,qBAAqB,CAAC,MAAM,EAAC;oBAC/C,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;oBACxB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,yBAAyB,EAAE,GAAG,EAAE;wBAClD,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,eAAe,CAAC;wBAC7B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;qBACI,IAAG,IAAI,CAAC,QAAQ,IAAI,qBAAqB,CAAC,OAAO,IAAI,GAAG,CAAC,YAAY,EAAC;oBACzE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,0BAA0B,EAAE,GAAG,EAAE;wBACnD,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,eAAe,CAAC;wBAC7B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;aACF;QACH,CAAC,EAAC,CAAC,KAAK,EAAC,EAAE;YACT,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,GAAG,qBAAqB,CAAC,OAAO,GAAE,GAAG,EAAE,GAAG,EAAE;gBACtE,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,CAAC,aAAa,CAAC;gBAC3B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QAEL,CAAC,CAAC;IACJ,CAAC;IACD,aAAa;QACX,yBAAyB;QACzB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;;4FAvMU,sBAAsB;sGAAtB,sBAAsB;kEAetB,wEAAY;kEACZ,8DAAO;;;;;;QChDpB,2EACI;QAAA;QACA;QAAA,yEAEQ;QAAA;QAAA,yEACI;QAAA;QAAA,qEAAI;QAAA,yEAAQ;QAAA,0FAA+B;QAAA,4DAAS;QAAC;QAAA,4DAAK;QAC1D;QAAA,wEAEA;QAAA;QAAA,uEAEI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,kGACP;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QACtC;QAAA,4DAAY;QACZ;QAAA,iFAEI;QAAA;QAAA,kIAA2D;QAE/D;QAAA,4DAAa;QACb;QAAA,gIAAiD;QAErD;QAAA,4DAAiB;QAErB;QAAA,4DAAM;QACN;QAAA,uEACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,mEAAO;QAAA,4DAAY;QAC9B;QAAA,0EAAkE;QACtE;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,6EACgC;QADwB,qJAAS,yBAAqB,IAAC;QACvD,wDAAY;QAAA,4DAAS;QACzD;QAAA,4DAAM;QACN;QAAA,4DAAO;QACX;QAAA,4DAAM;QAEN;QAAA,2EACI;QAAA;QAAA,sEAAI;QAAA,0EAAS;QAAA,uFAA0B;QAAA,4DAAS;QAAC;QAAA,4DAAK;QACtD;QAAA,2EACI;QAAA;QAGA;QAAA,6EACI;QAAA;QAAA,sEAAI;QAAA,0EAAc;QAAA,4DAAK;QACvB;QAEI;QAAA,kHACI;QAGR;QAAA,mHACI;QAGR;QAAA,4DAAQ;QACZ;QAAA,4DAAM;QACV;QAAA,4DAAM;QAEd;QAAA,4DAAM;QAEV;QAAA,4DAAW;QAEX;QAAA,2EACI;QAAA;QAAA,6EACI;QAAA;QAAA,6EACI;QAAA;QAAA,mHAAuE;QACvE;QAAA,mHAAwC;QAC5C;QAAA,qEAAe;QAEf;QAKA;QAAA,6EACI;QAAA;QAAA,mHAEI;QACJ;QAAA,mHAAwC;QAC5C;QAAA,qEAAe;QAEf;QAAA,6EACI;QAAA;QAAA,mHAAwE;QAGxE;QAAA,qHACE;QACN;QAAA,qEAAe;QAEf;QAAA,8EACI;QAAA;QAAA,qHAA8D;QAC9D;QAAA,qHAAwC;QAC5C;QAAA,qEAAe;QAEf;QAAA,8EACI;QAAA;QAAA,qHAAiE;QACjE;QAAA,qHAA0C;QAC9C;QAAA,qEAAe;QAGf;QAAA,qHAAsD;QACtD;QAAA,qHAA4D;QAC5D;QAEA;QAAA,qHACI;QAGR,4DAAQ;QAKZ;QAAA,4DAAM;;QAxG8B,2DAA+B;QAA/B,uGAA+B;QAI/B,0DAAwB;QAAxB,qFAAwB;QAEpB,0DAA8B;QAA9B,kFAA8B;QAGnC,0DAAqC;QAArC,mGAAqC;QAMpC,0DAA+B;QAA/B,uGAA+B;QAExB,0DAAuB;QAAvB,oFAAuB;QAK1C,0DAA2B;QAA3B,wFAA2B;QAAC,0DAAY;QAAZ,6EAAY;QAehC,2DAA6B;QAA7B,6FAA6B;QAIjC,0DAAkC;QAAlC,oFAAkC;QAazC,0DAAyB;QAAzB,sFAAyB;QAqCnB,2DAAkC;QAAlC,gGAAkC;QACzC,0DAA+C;QAA/C,iGAA+C;;6FDtEtD,sBAAsB;cAPlC,uDAAS;eAAC;gBACT,QAAQ,EAAE,oBAAoB;gBAC9B,WAAW,EAAE,iCAAiC;gBAC9C,SAAS,EAAE,CAAC,iCAAiC,CAAC;aAC/C;2hBAkB0B,SAAS;kBAAjC,uDAAS;mBAAC,wEAAY;YACH,IAAI;kBAAvB,uDAAS;mBAAC,8DAAO;;;;;;;;;;;;;;AE9CpB;AAAA;AAAA;AAAA,oDAAoD;AACpD,4DAA4D;AAErD,MAAM,SAAS;IAQpB,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC;IACtE,CAAC;CAmEF;AAGM,MAAM,cAAc;CAgB1B;;;;;;;;;;;;;ACrGD;AAAA;AAAA;AAAA;AAAA;AAAO,MAAM,eAAe;CAI3B;AAEM,MAAM,iBAAiB;CAM7B;AAEM,MAAM,gBAAgB;CAI5B;AAEM,MAAM,qBAAqB;CAEjC;;;;;;;;;;;;;ACrBD;AAAA;AAAA;AAAA;AAAO,MAAM,eAAe;CAKzB;AAEI,MAAM,qBAAqB;CAIjC;AAEM,MAAM,uBAAwB,SAAQ,eAAe;CAG3D;;;;;;;;;;;;;ACTD;AAAA;AAAO,MAAM,sBAAsB;CAiClC;;;;;;;;;;;;;ACzCD;AAAA;AAAA;AAAA;AAAA,MAAM,kBAAkB;CAQvB;AACD,MAAM,aAAc,SAAQ,kBAAkB;CAK7C;AACD,MAAM,UAAW,SAAQ,kBAAkB;CAE1C;AACD,MAAM,YAAa,SAAQ,kBAAkB;CAI5C;AAEiD;;;;;;;;;;;;;ACxBlD;AAAA;AAAA;AAAO,MAAM,cAAc;CAI1B;AAEM,MAAM,wBAAwB;CAoBpC;;;;;;;;;;;;;AC1BD;AAAA;AAAO,MAAM,aAAa;CAKzB;;;;;;;;;;;;;ACLD;AAAA;AAAO,MAAM,aAAa;CAiBzB;;;;;;;;;;;;;ACjBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAyC;AACc;AAC4D;AACU;AACV;AACoB;AACtB;AACH;AAC4B;AAC1B;AACA;AAChH,2CAA2C;AACkG;AAC1D;AACY;AACK;AACoB;AACO;AACxB;AAC6B;AAEuB;AAC1D;AACH;AACF;AACsD;AACpB;AACxB;AACqB;;;AAE3H,MAAM,MAAM,GAAW;IACrB;QACI,IAAI,EAAE,EAAE;QACR,SAAS,EAAE,2GAAmB;QAC9B,QAAQ,EAAE;YACR,EAAC,IAAI,EAAE,2CAA2C,EAAE,SAAS,EAAE,kJAA+B,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAC;YAClI,EAAC,IAAI,EAAE,sBAAsB,EAAE,SAAS,EAAE,+HAA6B,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAC;YACnH,EAAC,IAAI,EAAE,yBAAyB,EAAE,SAAS,EAAE,qJAAgC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,uBAAuB,EAAE,EAAC;YACxH,EAAC,IAAI,EAAE,sBAAsB,EAAE,SAAS,EAAE,wIAA6B,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,uBAAuB,EAAE,EAAC;YAClH,EAAC,IAAI,EAAE,kBAAkB,EAAE,SAAS,EAAE,8HAAyB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAC;YACtG,EAAC,IAAI,EAAE,kBAAkB,EAAE,SAAS,EAAE,4HAAyB,EAAC;YAChE,EAAC,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,yHAAwB,EAAC;YAC9D,EAAE,IAAI,EAAG,2BAA2B,EAAE,SAAS,EAAG,2HAAwB,EAAC;YAC3E,EAAC,IAAI,EAAE,kBAAkB,EAAE,SAAS,EAAE,8HAAyB,EAAC;YAChE,EAAC,IAAI,EAAE,sBAAsB,EAAE,SAAS,EAAE,4HAAwB,EAAC;YAClE,EAAC,IAAI,EAAE,0BAA0B,EAAE,SAAS,EAAE,yJAAiC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,4BAA4B,EAAE,EAAC;YAChI,EAAC,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,+FAAe,EAAC;YAChD,EAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,iHAAwB,EAAE,IAAI,EAAC,EAAC,KAAK,EAAE,QAAQ,EAAC,EAAC;YAC5E,kFAAkF;YACjF,EAAC,IAAI,EAAE,8BAA8B,EAAE,SAAS,EAAE,yJAAiC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,4BAA4B,EAAE,EAAC;YACnI,EAAC,IAAI,EAAE,kBAAkB,EAAE,SAAS,EAAE,qIAA8B,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,EAAC;YACpG,EAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,4IAA+B,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,kCAAkC,EAAE,EAAC;YACnH,EAAC,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,oHAAyB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,eAAe,EAAC,EAAC;YAChG,EAAC,IAAI,EAAE,qBAAqB,EAAE,SAAS,EAAE,iJAAkC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAC,EAAC;YACjH,EAAC,IAAI,EAAE,2BAA2B,EAAC,SAAS,EAAC,wKAAyC,EAAC,IAAI,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAC,EAAC;YAC3H,EAAC,IAAI,EAAE,mBAAmB,EAAE,SAAS,EAAE,8GAA0B,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAC,EAAC;YAC1G,EAAC,IAAI,EAAE,oBAAoB,EAAE,SAAS,EAAE,2GAAsB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAC,EAAC;YACjG,EAAC,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,yGAAsB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAC,EAAC;YACnG,EAAC,IAAI,EAAE,6BAA6B,EAAE,SAAS,EAAE,+JAAsC,EAAE,IAAI,EAAG,EAAC,KAAK,EAAG,sBAAsB,EAAC,EAAC;YACjI,EAAC,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,2IAAgC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,YAAY,EAAC,EAAC;YACnG,EAAC,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAG,mHAAwB,EAAE,IAAI,EAAG,EAAC,KAAK,EAAC,oBAAoB,EAAC,EAAC;YACnG,EAAC,IAAI,EAAE,wBAAwB,EAAE,SAAS,EAAG,wIAA+B,EAAE,IAAI,EAAG,EAAC,KAAK,EAAC,mBAAmB,EAAC,EAAC;SAEnH;KAAC;CAEP,CAAC;AAOK,MAAM,uBAAuB;;sGAAvB,uBAAuB;wKAAvB,uBAAuB,kBAHjC,CAAC,4DAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EACrB,4DAAY;mIAEZ,uBAAuB,uFAFvB,4DAAY;6FAEZ,uBAAuB;cALnC,sDAAQ;eAAC;gBACR,OAAO,EACN,CAAC,4DAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAC/B,OAAO,EAAE,CAAC,4DAAY,CAAC;aACzB;;;;;;;;;;;;;;ACvED;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAyC;AACgB;AACU;AACG;AACiC;AACuB;AACd;AACT;AACe;AACL;AACf;AAC+B;AACpB;AACT;AACA;AACC;AACc;AACQ;AACpD;AACU;AACT;AACG;AACyB;AACT;AACd;AAC9B;AACmC;AACsC;AACH;AACU;AACH;AACvE;AACY;AACsC;AAC6B;AACzE;AACT;AACU;AACwE;AACuB;AAC1D;AACH;AACtC;AAC6F;AACzD;AAEwE;AAClB;AACpB;AAC1D;AACkC;AAClC;AACsD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE1H,yEAAkB,CAAC,eAAe,CAAC;IACjC,8DAAa;CACd,CAAC,CAAC;AA2CI,MAAM,gBAAgB;;+FAAhB,gBAAgB;0JAAhB,gBAAgB,mBAHjB,CAAC,wDAAQ,CAAC,YAvBX;YACP,4DAAY;YACZ,kFAAuB;YACvB,0DAAW;YACX,kEAAmB;YACnB,kHAAwB;YACxB,uFAAkB;YAClB,yFAA0B;YAC1B,yGAAiC;YACjC,2FAA2B;YAC3B,6DAAgB;YAChB,qEAAa;YACb,+EAAwB;YACxB,yEAAkB;YAClB,0EAAsB;YACtB,sEAAgB;YAChB,oFAA2B;YAC3B,oFAAoB;SAIrB;mIAKU,gBAAgB,mBAxCZ,gGAAmB,EAAE,0IAAgC,EAAE,4HAA4B,EAAE,mHAAyB,EAAE,kIAA8B;QAC3J,6HAA6B,EAAE,+GAAwB;QACvD,8IAAiC,EAAE,0HAA2B;QAC9D,iHAAwB,EAAE,iHAAwB,EAAE,kHAAyB;QAC7E,gIAA6B,EAAE,wIAA+B;QAC9D,oFAAe,EAAE,iHAAwB,EAAC,+FAAkB;QAC5D,qIAA8B,EAAE,kIAA6B;QAC7D,4IAA+B,EAAE,yIAA8B;QAC/D,oHAAyB,EAAE,iJAAkC;QAC7D,iJAAkC,EAAE,wKAAyC;QAC7E,8GAA0B,EAAE,2GAAsB,EAAE,kKAAuC;QAC3F,yGAAsB,EAAE,iLAA4C;QACpE,+JAAsC,EAAC,2IAAgC,EAAE,mHAAwB,EAAE,wIAA+B,aAGlI,4DAAY;QACZ,kFAAuB;QACvB,0DAAW;QACX,kEAAmB;QACnB,kHAAwB;QACxB,uFAAkB;QAClB,yFAA0B;QAC1B,yGAAiC;QACjC,2FAA2B;QAC3B,6DAAgB;QAChB,qEAAa;QACb,+EAAwB;QACxB,yEAAkB;QAClB,0EAAsB;QACtB,sEAAgB;QAChB,oFAA2B;QAC3B,oFAAoB,aAKX,iLAA4C;6FAI5C,gBAAgB;cA1C5B,sDAAQ;eAAC;gBACR,2CAA2C;gBAC3C,YAAY,EAAE,CAAC,gGAAmB,EAAE,0IAAgC,EAAE,4HAA4B,EAAE,mHAAyB,EAAE,kIAA8B;oBAC3J,6HAA6B,EAAE,+GAAwB;oBACvD,8IAAiC,EAAE,0HAA2B;oBAC9D,iHAAwB,EAAE,iHAAwB,EAAE,kHAAyB;oBAC7E,gIAA6B,EAAE,wIAA+B;oBAC9D,oFAAe,EAAE,iHAAwB,EAAC,+FAAkB;oBAC5D,qIAA8B,EAAE,kIAA6B;oBAC7D,4IAA+B,EAAE,yIAA8B;oBAC/D,oHAAyB,EAAE,iJAAkC;oBAC7D,iJAAkC,EAAE,wKAAyC;oBAC7E,8GAA0B,EAAE,2GAAsB,EAAE,kKAAuC;oBAC3F,yGAAsB,EAAE,iLAA4C;oBACpE,+JAAsC,EAAC,2IAAgC,EAAE,mHAAwB,EAAE,wIAA+B,CAAC;gBAErI,OAAO,EAAE;oBACP,4DAAY;oBACZ,kFAAuB;oBACvB,0DAAW;oBACX,kEAAmB;oBACnB,kHAAwB;oBACxB,uFAAkB;oBAClB,yFAA0B;oBAC1B,yGAAiC;oBACjC,2FAA2B;oBAC3B,6DAAgB;oBAChB,qEAAa;oBACb,+EAAwB;oBACxB,yEAAkB;oBAClB,0EAAsB;oBACtB,sEAAgB;oBAChB,oFAA2B;oBAC3B,oFAAoB;iBAIrB;gBACD,OAAO,EAAG,CAAC,iLAA4C,CAAC;gBACxD,SAAS,EAAC,CAAC,wDAAQ,CAAC;gBACpB,eAAe,EAAC,CAAC,kIAA6B,CAAC;aAChD;;kEAnCkC,wIAA+B,4DAAE,m7iBAJnD,gGAAmB,EAAE,0IAAgC,EAAE,4HAA4B,EAAE,mHAAyB,EAAE,kIAA8B;IAC3J,6HAA6B,EAAE,+GAAwB;IACvD,8IAAiC,EAAE,0HAA2B;IAC9D,iHAAwB,EAAE,iHAAwB,EAAE,kHAAyB;IAC7E,gIAA6B,EAAE,wIAA+B;IAC9D,oFAAe,EAAE,iHAAwB,EAAC,+FAAkB;IAC5D,qIAA8B,EAAE,kIAA6B;IAC7D,4IAA+B,EAAE,yIAA8B;IAC/D,oHAAyB,EAAE,iJAAkC;IAC7D,iJAAkC,EAAE,wKAAyC;IAC7E,8GAA0B,EAAE,2GAAsB,EAAE,kKAAuC;IAC3F,yGAAsB,EAAE,iLAA4C;IACpE,+JAAsC,EAAC,2IAAgC,EAAE,mHAAwB,EAAE,wIAA+B;;;;;;;;;;;;;ACvEtI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AACL;AACG;AAEV;AACY;AAGf;AAC2D;;;;;;;;;;;;;;;;;;;IC2BjF,iFAAyE;IAAA,uDAC1D;;IAAA,4DAAa;;;IAD0B,+EAAkB;IAAC,0DAC1D;IAD0D,8IAC1D;;;IAmB3B,yEAA+D;IAAA,kEAAM;IAAA,4DAAK;;;IAC1E,yEAAwC;IAAA,uDAAkB;IAAA,4DAAK;;;IAAvB,0DAAkB;IAAlB,6FAAkB;;;IAI1D,yEAAuE;IAAA,2EAAe;IAAA,4DAAK;;;IAC3F,yEAAwC;IAAA,uDAA0B;IAAA,4DAAK;;;IAA/B,0DAA0B;IAA1B,qGAA0B;;;IAIlE,yEAAoE;IAAA,wEAAY;IAAA,4DAAK;;;IACrF,yEAAwC;IAAA,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,kGAAuB;;;IAI/D,yEAAoE;IAAA,wEAAY;IAAA,4DAAK;;;IACrF,yEAAwC;IAAA,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,kGAAuB;;;IAI/D,yEAAkE;IAAA,qEAAS;IAAA,4DAAK;;;IAChF,yEAAwC;IAAA,uDAAiC;;IAAA,4DAAK;;;IAAtC,0DAAiC;IAAjC,iKAAiC;;;IAI7E,oEAA0D;;;IAC1D,oEAAgE;;;IAG5D,yEACI;IAAA;IAAA,yEAAiC;IAAA,2EAAgB;IAAA,4DAAK;IAGlE;IAJQ,4DACI;;;ADrET,MAAM,0BAA0B;IAarC,YAAoB,mBAAuC,EAAS,OAA6B,EAAU,SAAuB,EAAS,OAA0B;QAAjJ,wBAAmB,GAAnB,mBAAmB,CAAoB;QAAS,YAAO,GAAP,OAAO,CAAsB;QAAU,cAAS,GAAT,SAAS,CAAc;QAAS,YAAO,GAAP,OAAO,CAAmB;QAXrK,qBAAgB,GAAG,2DAAW,CAAC,oBAAoB,CAAC;QACpD,UAAK,GAAG,IAAI,IAAI,EAAE,CAAC;QACnB,sBAAiB,GAAyB,EAAE,CAAC;QAC7C,mBAAc,GAAG,CAAC,OAAO,EAAC,eAAe,EAAC,YAAY,EAAE,YAAY,EAAC,UAAU,CAAC,CAAC;QACjF,eAAU,GAA2C,IAAI,0EAAkB,CAAC,EAAE,CAAC,CAAC;QAEhF,qBAAgB,GAAG,CAAC,QAAQ,CAAC,CAAC;IAK6I,CAAC;IAE5K,QAAQ;QACN,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IACD,mBAAmB;QACjB,IAAI,CAAC,iBAAiB,GAAG,IAAI,wDAAS,CAAC;YACrC,SAAS,EAAG,IAAI,0DAAW,CAAC,IAAI,CAAC;YACjC,OAAO,EAAG,IAAI,0DAAW,CAAC,IAAI,CAAC;YAC/B,QAAQ,EAAG,IAAI,0DAAW,CAAC,IAAI,CAAC;SACjC,CAAC;IACJ,CAAC;IAED,WAAW;QACT,IAAI,CAAC,gBAAgB,GAAI,IAAI,0EAAgB,EAAE,CAAC;QAChD,IAAI,CAAC,gBAAgB,CAAC,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,SAAS,CAAC;QACzE,IAAI,CAAC,gBAAgB,CAAC,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC;QACrE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC;QACvE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,GAAyB,EAAC,EAAE;YAC/F,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC,KAAK,CAAC;YACnC,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACjE,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAI,IAAI,CAAC,OAAO,CAAC;YACrC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC,EAAC,CAAC,KAAK,EAAC,EAAE;YACT,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,EAAC;gBAC/B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE;oBAC3C,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;iBACG;gBACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,0BAA0B,EAAE,GAAG,EAAE;oBACnD,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;YACD,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;YAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,CAAC;YAC/C,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAI,IAAI,CAAC,OAAO,CAAC;QACvC,CAAC,CAAC;IACJ,CAAC;IAED,UAAU;QACR,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAI,IAAI,CAAC,OAAO,CAAC;IACvC,CAAC;IAED,aAAa;QACX,MAAM,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACvD,OAAO,EAAE,CAAC,CAAC,KAAK;YAChB,gBAAgB,EAAE,CAAC,CAAC,aAAa;YACjC,aAAa,EAAE,CAAC,CAAC,UAAU;YAC3B,aAAa,EAAE,CAAC,CAAC,UAAU;YAC3B,UAAU,EAAE,CAAC,CAAC,QAAQ;SACvB,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,eAAe,EAAE,sBAAsB,CAAC,CAAC;IAClF,CAAC;;oGAhFU,0BAA0B;0GAA1B,0BAA0B;kEAU1B,wEAAY;kEACZ,8DAAO;;;;;;;QC5BpB,8EACI;QAAA;QAAA,iFACI;QAAA,oGACJ;QAAA,4DAAiB;QACjB;QAAA,mFACI;QAAA;QAAA,uEACI;QAAA;QAAA,uEACI;QADD,6IAAS,mBAAe,IAAC;QACxB;QAAA,qEAAiC;QACrC;QAAA,4DAAI;QACR;QAAA,4DAAO;QAEP;QAAA,0EACI;QAAA;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,sEAAU;QAAA,4DAAY;QACjC;QAAA,4EAEA;QADsC,gSAAS,UAAa,IAAC;QAD7D,4DAEA;QAAA;QAAA,uFAAwE;QACxE;QAAA,sFAAyC;QAC7C;QAAA,4DAAiB;QAErB;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,oEAAQ;QAAA,4DAAY;QAC/B;QAAA,4EAGA;QAFsC,gSAAS,UAAc,IAAC;QAD9D,4DAGA;QAAA;QAAA,uFAAyE;QACzE;QAAA,uFAA0C;QAC9C;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,2EAAe;QAAA,4DAAY;QACtC;QAAA,kFACI;QAAA;QAAA,uIAAyE;QAE7E;QAAA,4DAAa;QACjB;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACV;QAAA,4DAAM;QACN;QAAA,2EACA;QAAA;QAAA,8EACM;QADuB,mJAAS,gBAAY,IAAC;QAC7C,4EACN;QAAA,4DAAS;QACT;QAAA,8EAC+D;QADvB,mJAAS,iBAAa,IAAC;QACA,2EAC/D;QAAA,4DAAS;QACb;QAAA,4DAAM;QACN;QAAA,4DAAmB;QACvB;QAAA,4DAAW;QAEX;QAAA,0EACI;QAAA;QAAA,6EACI;QAAA;QAAA,6EACI;QAAA;QAAA,uHAA+D;QAC/D;QAAA,uHAAwC;QAC5C;QAAA,qEAAe;QAEf;QAAA,6EACI;QAAA;QAAA,uHAAuE;QACvE;QAAA,uHAAwC;QAC5C;QAAA,qEAAe;QAEf;QAAA,6EACI;QAAA;QAAA,uHAAoE;QACpE;QAAA,uHAAwC;QAC5C;QAAA,qEAAe;QAEf;QAAA,8EACI;QAAA;QAAA,yHAAoE;QACpE;QAAA,yHAAwC;QAC5C;QAAA,qEAAe;QAEf;QAAA,8EACI;QAAA;QAAA,yHAAkE;QAClE;QAAA,yHAAwC;QAC5C;QAAA,qEAAe;QAGf;QAAA,yHAAqD;QACrD;QAAA,yHAA2D;QAC3D;QAEI;QAAA,yHACI;QAGZ,4DAAQ;QAKZ;QAAA,4DAAM;QAEF;QAAA,iFAA+D;QAGnE;QAAA,oFAEI;QAAA;QAAA,0EAAmB;QAAA,wEAAW;QAAA,4DAAI;QACtC;QAAA,4DAAc;;;;QA3FwC,2DAA+B;QAA/B,4FAA+B;QAErD,0DAAiC;QAAjC,uGAAiC;QAEW,0DAAa;QAAb,0EAAa;QAEpC,0DAAc;QAAd,oEAAc;QAMnC,0DAAiC;QAAjC,uGAAiC;QAES,0DAAgD;QAAhD,6GAAgD;QAGrE,0DAAe;QAAf,oEAAe;QAKpC,0DAAiC;QAAjC,uGAAiC;QAEN,0DAA2D;QAA3D,wHAA2D;QAClF,0DAAyC;QAAzC,yFAAyC;QAWlE,2DAA2D;QAA3D,wHAA2D;QAOjD,0DAAyB;QAAzB,sFAAyB;QA2BnB,2DAAiC;QAAjC,+FAAiC;QACxC,0DAA8C;QAA9C,gGAA8C;QAc/C,0DAA+B;QAA/B,mJAA+B;QAGQ,0DAAoB;QAApB,6EAAoB;;6FDlFjE,0BAA0B;cALtC,uDAAS;eAAC;gBACT,QAAQ,EAAE,yBAAyB;gBACnC,WAAW,EAAE,sCAAsC;gBACnD,SAAS,EAAE,CAAC,sCAAsC,CAAC;aACpD;+YAW0B,SAAS;kBAAjC,uDAAS;mBAAC,wEAAY;YACH,OAAO;kBAA1B,uDAAS;mBAAC,8DAAO;;;;;;;;;;;;;;AE5BpB;AAAA;AAAA;AAAoD;;AAG7C,MAAM,mBAAmB;IAC5B,SAAS,CAAC,KAAc;QACpB,IAAG,KAAK,IAAI,IAAI,EAChB;YACI,OAAO,IAAI,CAAC;SACf;QACD,OAAO,CAAE,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,IAAI,MAAM,CAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;IACvF,CAAC;IAAA,CAAC;;sFAPO,mBAAmB;wHAAnB,mBAAmB;6FAAnB,mBAAmB;cAD/B,kDAAI;eAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE;;;;;;;;;;;;;;ACDjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AACgB;AACA;;;AAQpD,MAAM,6BAA6B;IAMxC,YAAoB,UAAuB;QAAvB,eAAU,GAAV,UAAU,CAAa;QAJnC,uBAAkB,GAAG,wEAAW,CAAC,oBAAoB,CAAC;QACtD,oBAAe,GAAG,wEAAW,CAAC,iBAAiB,CAAC;QAChD,cAAS,GAAG,uDAAe,CAAC,sBAAsB,CAAC;IAEZ,CAAC;IAEzC,cAAc;QACnB,IAAI,GAAG,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC;QACjE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAsB,GAAG,CAAC;IAEtD,CAAC;IAEM,kBAAkB,CAAC,YAAmB;QAC3C,IAAI,GAAG,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,mCAAmC,GAAG,YAAY,CAAC;QACtG,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAoB,GAAG,CAAC;IAEpD,CAAC;IAEM,wBAAwB;QAC7B,IAAI,GAAG,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC;QAC5E,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAA0B,GAAG,CAAC;IAC1D,CAAC;IAEM,2BAA2B,CAAC,WAAW;QAC5C,IAAI,GAAG,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC;QAC5E,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAA0B,GAAG,EAAC,WAAW,CAAC;IACvE,CAAC;;0GA5BU,6BAA6B;gHAA7B,6BAA6B,WAA7B,6BAA6B,mBAF5B,MAAM;6FAEP,6BAA6B;cAHzC,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACVD;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AACoB;AACI;AACR;;;AAMpD,MAAM,2BAA2B;IActC,YAAoB,UAAuB;QAAvB,eAAU,GAAV,UAAU,CAAa;QAbnC,gBAAW,GAAG,qEAAW,CAAC,SAAS,CAAC;QACpC,yBAAoB,GAAG,qEAAW,CAAC,oBAAoB,CAAC;QACxD,cAAS,GAAG,uDAAe,CAAC,oBAAoB,CAAC;QACjD,gBAAW,GAAG,uDAAe,CAAC,YAAY,CAAC;QACpD,mCAA8B,GAAG;YAC9B,OAAO,EAAE,IAAI,gEAAW,CACtB;gBACE,QAAQ,EAAE,qBAAqB;aAChC,CAAC;YACJ,YAAY,EAAG,MAAgB;SAEhC,CAAC;IAE8C,CAAC;IAE1C,aAAa,CAAC,YAAoB,EAAE,SAAiB,EAAE,QAAgB;QAC7E,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,GAAC,gBAAgB,GAAC,YAAY,GAAC,aAAa,GAAC,SAAS,GAAC,YAAY,GAAC,QAAQ,CAAC;IACrK,CAAC;IAEM,YAAY;QACjB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IACvF,CAAC;IAEM,gBAAgB,CAAC,MAAM;QAC7B,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAC,MAAM,EAAC,IAAI,CAAC,8BAA8B,CAAC;IACtI,CAAC;IAEM,kCAAkC;QACxC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC;IAC1F,CAAC;IAEM,gBAAgB,CAAC,YAAY,GAAG,EAAE;QACvC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,GAAC,YAAY,CAAC;IACrG,CAAC;;sGAlCS,2BAA2B;8GAA3B,2BAA2B,WAA3B,2BAA2B,mBAH1B,MAAM;6FAGP,2BAA2B;cAJvC,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACPD;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AAEwB;AACR;;;AAKpD,MAAM,uBAAuB;IAGlC,YAAoB,UAAuB;QAAvB,eAAU,GAAV,UAAU,CAAa;QAFnC,yBAAoB,GAAG,qEAAW,CAAC,oBAAoB,CAAC;QACxD,cAAS,GAAG,uDAAe,CAAC,gBAAgB,CAAC;IACL,CAAC;IAE1C,aAAa;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC;IAC5F,CAAC;;8FAPU,uBAAuB;0GAAvB,uBAAuB,WAAvB,uBAAuB,mBAFtB,MAAM;6FAEP,uBAAuB;cAHnC,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACPD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAkD;AACA;AACiB;AACR;;;AAMpD,MAAM,gBAAgB;IAI3B,YAAyC,WAAuB;QAAvB,gBAAW,GAAX,WAAW,CAAY;QAFxD,eAAU,GAAG,qEAAW,CAAC,SAAS,CAAC;QACnC,yBAAoB,GAAG,qEAAW,CAAC,oBAAoB,CAAC;QAE9D,IAAI,CAAC,UAAU,GAAG,uDAAe,CAAC,SAAS,CAAC;IAChD,CAAC;IAGD,oBAAoB,CAAC,OAAkB;QAEnC,IAAI,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAC1D,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAC,OAAO,CAAC;IAC5C,CAAC;IAGM,iBAAiB,CAAC,KAAc;QACrC,IAAI,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,KAAK,CAAC;QACnE,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC;IACpC,CAAC;;gFAnBY,gBAAgB,yDAIN,+DAAU;mGAJpB,gBAAgB,WAAhB,gBAAgB,mBAFf,MAAM;6FAEP,gBAAgB;cAH5B,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;sBAKe,oDAAM;uBAAC,+DAAU;;;;;;;;;;;;;;ACbjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AAEgB;AACQ;;;AAM5D,MAAM,iBAAiB;IAI5B,YAAoB,WAAuB;QAAvB,gBAAW,GAAX,WAAW,CAAY;QADnC,yBAAoB,GAAG,qEAAW,CAAC,oBAAoB,CAAC;QAE5D,IAAI,CAAC,UAAU,GAAG,qEAAW,CAAC,SAAS,CAAC;QACxC,IAAI,CAAC,UAAU,GAAG,uDAAe,CAAC,UAAU,CAAC;IACjD,CAAC;IAEM,oBAAoB,CAAC,EAAU;QACpC,IAAI,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,oBAAoB,GAAG,EAAE,CAAC;QAChF,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAErC,CAAC;IAGM,uBAAuB,CAAC,EAAU;QACvC,IAAI,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,uBAAuB,GAAG,EAAE,CAAC;QACnF,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAEnC,CAAC;IAED,qBAAqB,CAAC,OAAkB;QACtC,IAAI,IAAI,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC;QAC9E,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;;kFAzBY,iBAAiB;oGAAjB,iBAAiB,WAAjB,iBAAiB,mBAFhB,MAAM;6FAEP,iBAAiB;cAH7B,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACRD;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AAGwB;AACR;;;AAMpD,MAAM,aAAa;IAMxB,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAJlC,eAAU,GAAG,uDAAe,CAAC,MAAM,CAAC;QAEpC,yBAAoB,GAAG,qEAAW,CAAC,oBAAoB,CAAC;IAEnB,CAAC;IAEvC,gBAAgB,CAAC,EAAU;QAEjC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAY,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;IAC9F,CAAC;IAEM,iBAAiB,CAAC,OAAkB;QAE1C,IAAI,IAAI,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QACzD,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAE/C,CAAC;IACM,mBAAmB,CAAC,eAAuB;QAEjD,qFAAqF;QACrF,kDAAkD;IACnD,CAAC;;0EAvBU,aAAa;gGAAb,aAAa,WAAb,aAAa,mBAHV,MAAM;6FAGT,aAAa;cAJvB,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACPH;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AACwB;AACR;;;AAMpD,MAAM,qBAAqB;IAIhC,YAAoB,IAAiB;QAAjB,SAAI,GAAJ,IAAI,CAAa;QAH9B,yBAAoB,GAAG,qEAAW,CAAC,oBAAoB,CAAC;QACxD,cAAS,GAAG,uDAAe,CAAC,kBAAkB,CAAC;IAEb,CAAC;IAEnC,QAAQ,CAAC,OAAO;QACrB,IAAI,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC;QACrE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAEM,QAAQ,CAAC,aAAoB;QAClC,IAAI,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,GAAG,aAAa,CAAC;QACpF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAEM,gCAAgC,CAAC,KAAc;QACpD,IAAI,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,uBAAuB,GAAG,KAAK,CAAC;QACrF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAEM,kBAAkB,CAAC,KAAc;QACtC,IAAI,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAChF,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAEM,qBAAqB,CAAC,gBAAgB;QAC3C,IAAI,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC;QAC1E,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAC,gBAAgB,CAAC,CAAC;IAC9C,CAAC;;0FA7BU,qBAAqB;wGAArB,qBAAqB,WAArB,qBAAqB,mBAFpB,MAAM;6FAEP,qBAAqB;cAHjC,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACRD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AAIgB;AACQ;AAClD;;;AAMV,MAAM,eAAe;IAS1B,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAPlC,gBAAW,GAAG,qEAAW,CAAC,SAAS,CAAC;QACpC,yBAAoB,GAAG,qEAAW,CAAC,oBAAoB,CAAC;QACxD,uBAAkB,GAAG,qEAAW,CAAC,iBAAiB,CAAC;QACnD,cAAS,GAAG,uDAAe,CAAC,QAAQ,CAAC;QAErC,gBAAW,GAAG,uDAAe,CAAC,WAAW,CAAC;QAC1C,WAAM,GAAG,uDAAe,CAAC,MAAM,CAAC;IACO,CAAC;IAEzC,iBAAiB,CAAC,QAAgB;QACrC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,GAAG,QAAQ,CAAC,CAAC;IAC1G,CAAC;IAEQ,aAAa;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IACrF,CAAC;IAEM,WAAW;QACd,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACvF,CAAC;IAEM,eAAe;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IACzF,CAAC;IAEM,kBAAkB,CAAC,EAAU;QAChC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAY,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC;IACrG,CAAC;IAIM,0BAA0B,CAAC,EAAU;QACxC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAY,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC;IACtG,CAAC;IAEH,mCAAmC;IACnC,0EAA0E;IAC1E,yCAAyC;IACzC,mDAAmD;IACnD,MAAM;IAGN,8CAA8C;IAC9C,gFAAgF;IAChF,yCAAyC;IACzC,mDAAmD;IACnD,MAAM;IAEN,gCAAgC;IAChC,uEAAuE;IACvE,yCAAyC;IACzC,mDAAmD;IACnD,MAAM;IAEJ,mBAAmB,CAAC,OAAkB;QAClC,IAAI,IAAI,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;QAC3D,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAE,CAAC;IAEhD,CAAC;IAED,qBAAqB,CAAC,OAAkB;QACpC,IAAI,IAAI,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;QAC7D,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAE/C,CAAC;IAEM,sBAAsB;QAC3B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAChF,CAAC;IAEM,gBAAgB;QACnB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3E,CAAC;;8EA1EY,eAAe;kGAAf,eAAe,WAAf,eAAe,mBAFd,MAAM;6FAEP,eAAe;cAH3B,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACXD;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AAEgB;AACQ;;;AAM5D,MAAM,mBAAmB;IAI5B,YAAoB,WAAuB;QAAvB,gBAAW,GAAX,WAAW,CAAY;QACvC,2CAA2C;QAC3C,IAAI,CAAC,UAAU,GAAG,qEAAW,CAAC,oBAAoB,CAAC;QACnD,IAAI,CAAC,UAAU,GAAG,uDAAe,CAAC,YAAY,CAAC;IACnD,CAAC;IACD,wBAAwB;QACpB,IAAI,GAAG,GAAG,qEAAW,CAAC,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC;QACnF,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IAGD,sBAAsB,CAAC,UAAkB;QACrC,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,sBAAsB,GAAG,UAAU,CAAC;QAChF,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IAGD,uBAAuB,CAAC,oBAAmC;QACvD,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC;QACrE,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;IAC7D,CAAC;IAED,oBAAoB,CAAC,iBAA6B;QAC9C,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC;QAClE,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;IAC1D,CAAC;IACD,0BAA0B,CAAC,oBAAmC;QAC1D,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,0BAA0B,CAAC;QACxE,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;IAC7D,CAAC;IAED,uBAAuB,CAAC,iBAA6B;QACjD,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC;QACrE,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;IAC1D,CAAC;IACD,yBAAyB,CAAC,EAAU,EAAE,WAAmB;QACrD,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,uBAAuB,GAAG,EAAE,GAAG,GAAG,GAAG,WAAW,CAAC;QAC9F,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;;sFA1CQ,mBAAmB;sGAAnB,mBAAmB,WAAnB,mBAAmB,mBAFlB,MAAM;6FAEP,mBAAmB;cAH/B,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACPD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAiD;AAGC;AACS;AAEQ;;;AAK5D,MAAM,uBAAuB;IAOlC,YAAwC,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAL9D,+CAA+C;QACvC,gBAAW,GAAG,qEAAW,CAAC,oBAAoB,CAAC;QAEvD,UAAK,GAAO,EAAE,CAAC;QAIR,IAAI,CAAC,UAAU,GAAG,uDAAe,CAAC,iBAAiB,CAAC;IAExD,CAAC;IAEM,oBAAoB,CAAC,EAAU;QAClC,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,GAAE,EAAE,CAAC;QACrD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAW,GAAG,CAAC,CAAC;QAC3C,6BAA6B;IAChC,CAAC;IAED,kBAAkB,CAAC,OAAkB;QACjC,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QACrD,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAE,CAAC;IAEhD,CAAC;;8FAvBO,uBAAuB,yDAOd,+DAAU;0GAPnB,uBAAuB,WAAvB,uBAAuB,mBAFtB,MAAM;6FAEP,uBAAuB;cAHnC,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;sBAQc,oDAAM;uBAAC,+DAAU;;;;;;;;;;;;;;ACnBhC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AAET;AAEyB;AACQ;AAClD;;;AAOV,MAAM,eAAe;IAW1B,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QANlC,gBAAW,GAAG,qEAAW,CAAC,SAAS,CAAC;QACpC,qBAAgB,GAAG,qEAAW,CAAC,oBAAoB,CAAC;QACpD,uBAAkB,GAAG,qEAAW,CAAC,iBAAiB,CAAC;QACnD,yBAAoB,GAAG,qEAAW,CAAC,gBAAgB,CAAC;QAI1D,IAAI,CAAC,UAAU,GAAG,uDAAe,CAAC,QAAQ,CAAC;QAC3C,IAAI,CAAC,QAAQ,GAAG,uDAAe,CAAC,UAAU,CAAC;IAE7C,CAAC;IAEM,eAAe;QACpB,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;QAC7D,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAElC,CAAC;IAED,qEAAqE;IACrE,mGAAmG;IACnG,gCAAgC;IAChC,IAAI;IACG,gBAAgB;QACrB,IAAI,GAAG,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QAChE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IACM,kBAAkB;QACvB,IAAI,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC;QACxE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAEM,oBAAoB;QACzB,IAAI,GAAG,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAC7D,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAEM,YAAY;QACjB,IAAI,GAAG,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAC/D,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IACM,SAAS;QACd,IAAI,GAAG,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC;QACrE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IACD,iBAAiB,CAAC,OAAqB;QACrC,IAAI,IAAI,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAClE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,oBAAoB,CAAC,OAAqB;QACxC,IAAI,IAAI,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QACrE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAE7C,CAAC;IACM,qBAAqB,CAAC,SAAiB;QAC5C,IAAI,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,GAAG,SAAS,CAAC;QACjF,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChC,0CAA0C;IAC5C,CAAC;IACD,OAAO,CAAC,EAAU;QAChB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;YAC5B,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;SACnD;QACD,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QACrD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAElC,CAAC;IAED,SAAS,CAAC,IAAY;QACpB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;YAC9B,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;SACnD;QACD,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QACvD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAElC,CAAC;IAED,MAAM,CAAC,GAAQ;QACb,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YAC3B,sDAAsD;YACtD,OAAO,+CAAU,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;SAC1D;QACD,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QACpD,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAExC,CAAC;IAGD,MAAM,CAAC,EAAU;QACf,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YAC3B,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;SAClD;QAED,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QACpD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAElC,CAAC;IACD,MAAM,CAAC,GAAQ;QAEb,IAAI,GAAG,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QACvD,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACxC,CAAC;IACD,IAAI,CAAC,QAAQ;QACX,IAAI,GAAG,GAAG,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC;QAE3C,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAElC,CAAC;IACD,OAAO,CAAC,QAAQ;QACd,IAAI,GAAG,GAAG,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC;QAC7C,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;;8EApHU,eAAe;kGAAf,eAAe,WAAf,eAAe,mBAJd,MAAM;6FAIP,eAAe;cAL3B,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aAEnB;;;;;;;;;;;;;;ACXD;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AAGgB;AAEQ;;;AAK5D,MAAM,2BAA2B;IAMtC,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QADlC,gBAAW,GAAG,qEAAW,CAAC,SAAS,CAAC;QAE1C,IAAI,CAAC,UAAU,GAAG,uDAAe,CAAC,UAAU,CAAC;QAC7C,IAAI,CAAC,mBAAmB,GAAG,uDAAe,CAAC,UAAU,CAAC;QACtD,IAAI,CAAC,oBAAoB,GAAG,qEAAW,CAAC,oBAAoB,CAAC;IAC/D,CAAC;IAEM,IAAI;QACP,IAAI,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAE3D,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAY,GAAG,CAAC,CAAC;IAC/C,CAAC;IAES,uBAAuB;QAC7B,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC;QAEjE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAY,GAAG,CAAC,CAAC;IAC/C,CAAC;IAES,0BAA0B,CAAC,KAAa,EAAE,QAAgB;QAC7D,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,0BAA0B,GAAG,KAAK,GAAG,YAAY,GAAG,QAAQ,CAAC;QAC1G,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAY,GAAG,CAAC,CAAC;IAC/C,CAAC;IAGG,QAAQ,CAAC,KAAY,EAAC,MAAa;QACtC,IAAI,GAAG,GAAC,IAAI,CAAC,WAAW,GAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAC,KAAK,GAAC,UAAU,GAAC,MAAM;QACzE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,gBAAgB,CAAC,EAAS;QACxB,IAAI,IAAI,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,GAAC,EAAE,CAAC;QAC9D,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAEQ,mBAAmB;QACtB,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC;QAEjE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,eAAe,CAAC,YAAsB;QACpC,IAAI,IAAI,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAC5D,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAEtD,CAAC;;sGAlDY,2BAA2B;8GAA3B,2BAA2B,WAA3B,2BAA2B,mBAF1B,MAAM;6FAEP,2BAA2B;cAHvC,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACRD;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AACgB;AACA;;;AAOpD,MAAM,qBAAqB;IAIhC,YAAoB,KAAiB;QAAjB,UAAK,GAAL,KAAK,CAAY;QACnC,IAAI,CAAC,UAAU,GAAG,uDAAe,CAAC,wBAAwB,CAAC;QAC3D,IAAI,CAAC,aAAa,GAAG,uDAAe,CAAC,eAAe;IACtD,CAAC;IAEM,iBAAiB,CAAC,MAAqB;QAC5C,IAAI,GAAG,GAAG,wEAAW,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC;QAC/E,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAEM,mCAAmC,CAAC,MAAM;QAC/C,IAAI,GAAG,GAAG,wEAAW,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,mCAAmC,CAAC;QACjG,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAEM,gDAAgD,CAAC,EAAS,EAAC,QAAe;QAC/E,IAAI,GAAG,GAAG,wEAAW,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,gDAAgD,GAAG,EAAE,GAAE,GAAG,GAAE,QAAQ,CAAC;QAClI,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAEM,iDAAiD,CAAC,WAAoB,EAAE,QAAe;QAC5F,IAAI,GAAG,GAAG,wEAAW,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,6CAA6C,GAAG,WAAW,GAAE,GAAG,GAAC,QAAQ,CAAC;QACvI,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAEM,8CAA8C,CAAC,MAAiC;QACrF,IAAI,GAAG,GAAG,wEAAW,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,8CAA8C,CAAC;QAC5G,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAEM,eAAe,CAAC,IAAa;QAClC,IAAI,GAAG,GAAG,wEAAW,CAAC,oBAAoB,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC;QAEhF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAEM,eAAe;QAEpB,IAAI,GAAG,GAAG,wEAAW,CAAC,oBAAoB,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC;QAEhF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAC,EAAE,OAAO,EAAE;gBAEnC,cAAc,EAAE,mEAAmE;aAErF,EAAE,CAAC,CAAC;IAEN,CAAC;;0FAlDU,qBAAqB;wGAArB,qBAAqB,WAArB,qBAAqB,mBAFpB,MAAM;6FAEP,qBAAqB;cAHjC,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACTD;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AAEgB;AACQ;;;AAM5D,MAAM,aAAa;IAKxB,YAAoB,KAAiB;QAAjB,UAAK,GAAL,KAAK,CAAY;QAEnC,IAAI,CAAC,UAAU,GAAG,qEAAW,CAAC,SAAS,CAAC;QACxC,IAAI,CAAC,UAAU,GAAG,uDAAe,CAAC,eAAe,CAAC;QAClD,IAAI,CAAC,SAAS,GAAG,uDAAe,CAAC,WAAW,CAAC;QAC7C,IAAI,CAAC,uBAAuB,GAAG,uDAAe,CAAC,qBAAqB,CAAC;IAEvE,CAAC;IACM,iBAAiB;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,qEAAW,CAAC,iBAAiB,GAAG,uDAAe,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC7F,CAAC;IAEM,6BAA6B,CAAC,gBAAwB;QAC3D,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,qEAAW,CAAC,iBAAiB,GAAG,uDAAe,CAAC,UAAU,CAAC,8BAA8B,GAAG,gBAAgB,CAAC,CAAC;IACtI,CAAC;IAEM,qBAAqB,CAAC,OAAe;QAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,qEAAW,CAAC,iBAAiB,GAAG,uDAAe,CAAC,MAAM,CAAC,qBAAqB,GAAG,OAAO,CAAC,CAAC;IAChH,CAAC;IAEM,uBAAuB,CAAC,iBAAyB;QACtD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,qEAAW,CAAC,iBAAiB,GAAG,uDAAe,CAAC,MAAM,CAAC,uBAAuB,GAAG,iBAAiB,CAAC,CAAC;IAC5H,CAAC;IAEM,sBAAsB,CAAC,EAAU,EAAE,QAAe;QACvD,IAAI,GAAG,GAAG,qEAAW,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,EAAE,GAAE,GAAG,GAAC,QAAQ,CAAC;QAC9F,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IACM,kBAAkB,CAAC,EAAU;QAClC,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,kBAAkB,GAAG,EAAE,CAAC;QACnE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IACM,eAAe;QACpB,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC;QAC7D,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IACM,mBAAmB;QACxB,IAAI,GAAG,GAAG,qEAAW,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC;QAClF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IACM,qCAAqC,CAAC,UAAkB,EAAE,cAAsB;QACrF,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,sCAAsC,GAAG,UAAU,GAAG,oBAAoB,GAAG,cAAc,CAAC;QACxI,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;IAE5B,CAAC;IAEM,yBAAyB,CAAC,cAAsB;QACrD,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,yBAAyB,GAAG,cAAc,CAAC;QACvF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IACM,qBAAqB,CAAC,EAAU;QACrC,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,GAAG,EAAE,CAAC;QACxE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;IAClC,CAAC;IAED,mBAAmB,CAAC,OAAc;QAChC,IAAI,IAAI,GAAG,qEAAW,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC;QAClF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC;IACvC,CAAC;IACD,qBAAqB,CAAC,OAAc;QAClC,IAAI,IAAI,GAAG,qEAAW,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC;QACpF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC;IACvC,CAAC;IAEM,SAAS;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,qEAAW,CAAC,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;IACtF,CAAC;IAEM,qBAAqB,CAAC,WAAW;QACtC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC;QACrE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC;IAE3C,CAAC;IAEM,iBAAiB,CAAC,EAAE;QACzB,IAAI,GAAG,GAAG,qEAAW,CAAC,oBAAoB,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,GAAG,EAAE,CAAC;QACtF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,EAAC,YAAY,EAAE,MAAM,EAAC,CAAC,CAAC;IAC1D,CAAC;IAEM,0BAA0B,CAAC,EAAE;QAClC,IAAI,GAAG,GAAG,qEAAW,CAAC,oBAAoB,GAAG,IAAI,CAAC,uBAAuB,CAAC,qBAAqB,GAAG,EAAE,CAAC;QACrG,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAEM,sBAAsB,CAAC,EAAE;QAC9B,IAAI,GAAG,GAAG,qEAAW,CAAC,oBAAoB,GAAG,IAAI,CAAC,uBAAuB,CAAC,4BAA4B,GAAG,EAAE,CAAC;QAC5G,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAEM,4BAA4B,CAAC,QAAQ;QAC1C,IAAI,GAAG,GAAG,qEAAW,CAAC,oBAAoB,GAAG,IAAI,CAAC,uBAAuB,CAAC,4BAA4B,CAAC;QACvG,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAC,YAAY,EAAE,MAAM,EAAC,CAAC,CAAC;IAChE,CAAC;IAGM,yBAAyB,CAAC,EAAE;QACjC,IAAI,GAAG,GAAG,qEAAW,CAAC,oBAAoB,GAAG,IAAI,CAAC,uBAAuB,CAAC,yBAAyB,GAAG,EAAE,CAAC;QACzG,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,EAAC,YAAY,EAAE,MAAM,EAAC,CAAC,CAAC;IAC1D,CAAC;IAEM,cAAc,CAAC,EAAE;QACtB,IAAI,GAAG,GAAG,qEAAW,CAAC,oBAAoB,GAAG,IAAI,CAAC,uBAAuB,CAAC,uBAAuB,GAAG,EAAE,CAAC;QACvG,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,EAAC,YAAY,EAAE,MAAM,EAAC,CAAC,CAAC;IAC1D,CAAC;IAEM,uBAAuB,CAAC,KAAK,EAAE,OAAO;QAC3C,IAAI,GAAG,GAAG,qEAAW,CAAC,oBAAoB,GAAG,IAAI,CAAC,uBAAuB,CAAC,uBAAuB,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC;QAC7H,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAEM,WAAW,CAAC,EAAW;QAC5B,IAAI,GAAG,GAAG,qEAAW,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,EAAE,CAAC;QAC9E,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;;0EAtHU,aAAa;gGAAb,aAAa,WAAb,aAAa,mBAFZ,MAAM;6FAEP,aAAa;cAHzB,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACRD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmD;AAED;AACS;AAEQ;;;AAK5D,MAAM,aAAa;IAGxB,YAAwC,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QADtD,gBAAW,GAAG,qEAAW,CAAC,oBAAoB,CAAC;QAErD,IAAI,CAAC,UAAU,GAAG,uDAAe,CAAC,MAAM,CAAC;IAC3C,CAAC;IACM,aAAa,CAAC,EAAU;QAC7B,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,EAAE,CAAC;QACvD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAgB,GAAG,CAAC,CAAC;IACjD,CAAC;IAEM,WAAW,CAAC,EAAU;QAC3B,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,EAAE,CAAC;QAC9D,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IACM,IAAI,CAAC,IAAI;QACd,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAClD,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IACM,iBAAiB,CAAC,EAAU;QACjC,IAAI,GAAG,GAAG,EAAC,OAAO,EAAC,EAAE,EAAC;QACtB,IAAI,UAAU,GAAG;YACf,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,UAAU;SACjB,CAAC;QACF,IAAI,QAAQ,GAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACpF,IAAI,GAAO,CAAC;QACZ,IAAG,QAAQ,IAAE,KAAK,EAClB;YACE,GAAG,GAAC,IAAI,CAAC,WAAW,GAAG,uDAAe,CAAC,UAAU,CAAC,eAAe,CAAC;YAClE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;SAC9C;aACG;YACJ,GAAG,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC;YAC3D,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;SACrC;IAEL,CAAC;IACM,MAAM,CAAC,UAAkB,EAAE,EAAU;QAC1C,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,EAAE,GAAG,GAAG,GAAG,UAAU,CAAC;QAC5E,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;;0EAzCU,aAAa,yDAGJ,+DAAU;gGAHnB,aAAa,WAAb,aAAa,mBAFZ,MAAM;6FAEP,aAAa;cAHzB,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;sBAIc,oDAAM;uBAAC,+DAAU;;;;;;;;;;;;;;ACZhC;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AACgB;AACA;;;AAKpD,MAAM,oBAAoB;IAI/B,YAAoB,KAAiB;QAAjB,UAAK,GAAL,KAAK,CAAY;QACnC,IAAI,CAAC,UAAU,GAAG,uDAAe,CAAC,aAAa,CAAC;IACjD,CAAC;IACK,cAAc,CAAC,KAAY;QAChC,IAAI,GAAG,GAAG,wEAAW,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,GAAG,KAAK,CAAC;QACpF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAEM,oBAAoB,CAAC,UAAU;QACpC,IAAI,GAAG,GAAG,wEAAW,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC;QACnF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAC,UAAU,CAAC,CAAC;IACzC,CAAC;IAEM,oBAAoB,CAAC,KAAY;QACtC,IAAI,GAAG,GAAG,wEAAW,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,oBAAoB,GAAG,KAAK,CAAC;QAC1F,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;;wFApBU,oBAAoB;uGAApB,oBAAoB,WAApB,oBAAoB,mBAFnB,MAAM;6FAEP,oBAAoB;cAHhC,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACPD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAyC;AAEzC,6BAA6B;AAC4B;AACc;AACJ;AACD;AACT;AACE;AACA;AACW;AACf;AACM;AACA;AACN;AACS;AACT;AACM;AACN;AACU;AACO;AACf;AACF;AACuB;AACR;AACX;AACE;AACG;AACP;AACF;AACU;AACN;AACI;AACF;;AAGtD,MAAM,eAAe,GAAG,CAAE,6EAAiB,EAAE,yEAAe,EAAE,sEAAc,EAAE,oFAAqB,EAAE,gFAAmB,EAAE,+EAAkB,EAAE,sEAAc,EAAE,wEAAe,EAAE,wEAAe,EAAE,mFAAoB,EAAE,oEAAa,EAAE,2EAAgB,EAAE,2EAAgB,EAAE,qEAAa,EAAE,8EAAiB,EAAE,qEAAa,EAAE,2EAAgB,EAAE,qEAAa,EAAE,+EAAkB,EAAE,sFAAqB,EAAE,uEAAc,EAAE,qEAAa,EAAE,4FAAwB,EAAE,oFAAoB,EAAE,yEAAe,EAAE,2EAAgB,EAAE,8EAAiB,EAAE,uEAAc,EAAE,qEAAa,EAAE,+EAAkB,EAAE,2EAAmB,CAAC,CAAC;AAQnlB,MAAM,wBAAwB;;uGAAxB,wBAAwB;0KAAxB,wBAAwB,kBAH1B,eAAe,EALO,6EAAiB,EAAE,yEAAe,EAAE,sEAAc,EAAE,oFAAqB,EAAE,gFAAmB,EAAE,+EAAkB,EAAE,sEAAc,EAAE,wEAAe,EAAE,wEAAe,EAAE,mFAAoB,EAAE,oEAAa,EAAE,2EAAgB,EAAE,2EAAgB,EAAE,qEAAa,EAAE,8EAAiB,EAAE,qEAAa,EAAE,2EAAgB,EAAE,qEAAa,EAAE,+EAAkB,EAAE,sFAAqB,EAAE,uEAAc,EAAE,qEAAa,EAAE,4FAAwB,EAAE,oFAAoB,EAAE,yEAAe,EAAE,2EAAgB,EAAE,8EAAiB,EAAE,uEAAc,EAAE,qEAAa,EAAE,+EAAkB,EAAE,2EAAmB;mIAQ3kB,wBAAwB,cARJ,6EAAiB,EAAE,yEAAe,EAAE,sEAAc,EAAE,oFAAqB,EAAE,gFAAmB,EAAE,+EAAkB,EAAE,sEAAc,EAAE,wEAAe,EAAE,wEAAe,EAAE,mFAAoB,EAAE,oEAAa,EAAE,2EAAgB,EAAE,2EAAgB,EAAE,qEAAa,EAAE,8EAAiB,EAAE,qEAAa,EAAE,2EAAgB,EAAE,qEAAa,EAAE,+EAAkB,EAAE,sFAAqB,EAAE,uEAAc,EAAE,qEAAa,EAAE,4FAAwB,EAAE,oFAAoB,EAAE,yEAAe,EAAE,2EAAgB,EAAE,8EAAiB,EAAE,uEAAc,EAAE,qEAAa,EAAE,+EAAkB,EAAE,2EAAmB,aAAvjB,6EAAiB,EAAE,yEAAe,EAAE,sEAAc,EAAE,oFAAqB,EAAE,gFAAmB,EAAE,+EAAkB,EAAE,sEAAc,EAAE,wEAAe,EAAE,wEAAe,EAAE,mFAAoB,EAAE,oEAAa,EAAE,2EAAgB,EAAE,2EAAgB,EAAE,qEAAa,EAAE,8EAAiB,EAAE,qEAAa,EAAE,2EAAgB,EAAE,qEAAa,EAAE,+EAAkB,EAAE,sFAAqB,EAAE,uEAAc,EAAE,qEAAa,EAAE,4FAAwB,EAAE,oFAAoB,EAAE,yEAAe,EAAE,2EAAgB,EAAE,8EAAiB,EAAE,uEAAc,EAAE,qEAAa,EAAE,+EAAkB,EAAE,2EAAmB;6FAQ3kB,wBAAwB;cALpC,sDAAQ;eAAC;gBACR,YAAY,EAAE,EAAE;gBAChB,OAAO,EAAE,eAAe;gBACxB,OAAO,EAAE,eAAe;aACzB;;;;;;;;;;;;;;AC3CD;AAAA;AAAA;AAAA;AAAA;AAA2C;;;;AAOpC,MAAM,eAAe;IAC1B,YAAoB,KAAa,EAAW,QAAkB;QAA1C,UAAK,GAAL,KAAK,CAAQ;QAAW,aAAQ,GAAR,QAAQ,CAAU;IAAE,CAAC;IACjE,WAAW,CACT,IAA4B,EAC5B,KAA0B;QAC1B,0FAA0F;QAC1F,mGAAmG;QACnG,qBAAqB;QACrB,4BAA4B;QAC5B,SAAS;QACT,+BAA+B;QAC/B,kBAAkB;QAClB,KAAK;QACH,OAAO,IAAI,CAAC;IAChB,CAAC;;8EAdU,eAAe;kGAAf,eAAe,WAAf,eAAe,mBAFd,MAAM;6FAEP,eAAe;cAH3B,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACND;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAqE;AACI;AACzE,6DAA6D;AACZ;;;;;;;ICS7B,yEAA+E;IAAA,yEAAc;IAAA,4DAAK;;;IAClG,yEAAkD;IAAA,uDAAoC;IAAA,4DAAK;;;IAAzC,0DAAoC;IAApC,qGAAoC;;;IAItF,yEAA+E;IAAA,yEAAc;IAAA,4DAAK;;;IAClG,yEAAkD;IAAA,uDAAoC;IAAA,4DAAK;;;IAAzC,0DAAoC;IAApC,qGAAoC;;;IAItF,yEAA+E;IAAA,8EAAmB;IAAA,4DAAK;;;IACvG,yEAAkD;IAAA,uDAA4C;IAAA,4DAAK;;;IAAjD,0DAA4C;IAA5C,6GAA4C;;;IAI9F,yEAA+E;IAAA,uEAAY;IAAA,4DAAK;;;IAChG,yEAAkD;IAAA,uDAA2C;IAAA,4DAAK;;;IAAhD,0DAA2C;IAA3C,4GAA2C;;;IAI7F,yEAA+E;IAAA,kEAAO;IAAA,4DAAK;;;IAC3F,yEAAkD;IAAA,uDAAuC;IAAA,4DAAK;;;IAA5C,0DAAuC;IAAvC,wGAAuC;;;IAIzF,yEAA+E;IAAA,mEAAQ;IAAA,4DAAK;;;IAC5F,yEAAkD;IAAA,uDAAyC;IAAA,4DAAK;;;IAA9C,0DAAyC;IAAzC,0GAAyC;;;IAG/F,oEAA4D;;;IAC1D,oEAAkE;;;IAClE,yEACE;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAC/C;IAAA,4DAAK;;ADjChB,MAAM,iCAAiC;IAQ5C,YAAoB,SAA0D,EAC5C,IAAS;QADvB,cAAS,GAAT,SAAS,CAAiD;QAC5C,SAAI,GAAJ,IAAI,CAAK;QAH3C,qBAAgB,GAAa,CAAC,eAAe,EAAC,eAAe,EAAC,uBAAuB,EAAC,sBAAsB,EAAC,kBAAkB,EAAC,oBAAoB,CAAC,CAAC;IAGrG,CAAC;IAElD,QAAQ;QACN,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;QAC1D,gEAAgE;QAC/D,IAAI,CAAC,4BAA4B,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACrD,CAAC;IAED,SAAS;QACP,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;;kHAnBU,iCAAiC,0MASlC,wEAAe;iHATd,iCAAiC;wEAIjC,8DAAO;;;;;QChBpB,yEACI;QAAA;QAAA,yEACI;QAAA;QAAA,wEAAqB;QAAA,8EAAmB;QAAA,4DAAK;QAC/C;QAAA,4DAAM;QACN;QAAA,yEACM;QAAA;QAAA,+EAAwD;QAAtB,4JAAS,eAAW,IAAC;QAAC,iEAAK;QAAA,4DAAW;QAChF;QAAA,4DAAM;QACV;QAAA,4DAAM;QACF;QAAA,sFACI;QAAA;QAAA,0EACI;QAAA;QAAA,4EACI;QAAA;QAAA,4EACI;QAAA;QAAA,6HAA+E;QAC/E;QAAA,6HAAkD;QACtD;QAAA,qEAAe;QAEf;QAAA,6EACI;QAAA;QAAA,6HAA+E;QAC/E;QAAA,6HAAkD;QACtD;QAAA,qEAAe;QAEf;QAAA,6EACI;QAAA;QAAA,6HAA+E;QAC/E;QAAA,6HAAkD;QACtD;QAAA,qEAAe;QAEf;QAAA,6EACI;QAAA;QAAA,6HAA+E;QAC/E;QAAA,6HAAkD;QACtD;QAAA,qEAAe;QAEf;QAAA,6EACI;QAAA;QAAA,6HAA+E;QAC/E;QAAA,6HAAkD;QACtD;QAAA,qEAAe;QAEf;QAAA,6EACI;QAAA;QAAA,6HAA+E;QAC/E;QAAA,6HAAkD;QACtD;QAAA,qEAAe;QAEf;QAAA,8HAAuD;QACrD;QAAA,8HAA6D;QAC7D;QAAA,8HACE;QAGR;QAAA,4DAAQ;QACZ;QAAA,4DAAM;QAEN;QAIJ;QAAA,4DAAqB;QACzB;;QA7C6B,2DAA2C;QAA3C,wGAA2C;QA+BrC,2DAAmC;QAAnC,iGAAmC;QACxC,0DAAgD;QAAhD,kGAAgD;;6FD9BjE,iCAAiC;cAL7C,uDAAS;eAAC;gBACT,QAAQ,EAAE,gCAAgC;gBAC1C,WAAW,EAAE,6CAA6C;gBAC1D,SAAS,EAAE,CAAC,6CAA6C,CAAC;aAC3D;;sBAUI,oDAAM;uBAAC,wEAAe;wBALa,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AEhBtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AAC2B;AAGhB;AAEe;AAEzC;AAEC;AACd;;;;;;;;;;;;;;;;;;;;ICFb,6EAEI;IADmC,qVAA4B,YAAY,KAAE;IAC7E;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC9B;IAAA,4DAAS;;;IAEL,iFAA+F;IAAA,kFAAuB;IAAA,4DAAa;;;;IACnI,iFACI;IADS,qYAAoC;IAC7C,uDACJ;IAAA,4DAAa;;;IAF8H,iFAAoB;IAC3J,0DACJ;IADI,gJACJ;;;IAEJ,4EACI;IAAA,gIACJ;IAAA,4DAAY;;;IACZ,4EACI;IAAA,4IACJ;IAAA,4DAAY;;;IAKhB,uEAA0C;IAAA,uDAA+B;IAAA,4DAAO;;;IAAtC,0DAA+B;IAA/B,mGAA+B;;;IAErE,4EAA+C;IAAA,kFAAuB;IAAA,0EAA0B;IAAA,4DAAC;IAAA,4DAAO;IAAA,4DAAY;;;IACpH,4EAAgD;IAAA,kFAAuB;IAAA,0EAA0B;IAAA,4DAAC;IAAA,4DAAO;IAAA,4DAAY;;;;IAKrH,6EAEI;IAD6C,qVAA4B,mBAAmB,KAAE;IAC9F;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC9B;IAAA,4DAAS;;;IAEL,iFAAsG;IAAA,kFAAuB;IAAA,4DAAa;;;;IAC1I,iFACI;IADQ,qXAA2B,mBAAmB,eAAO,yUAAmC,mBAAmB,eAAtD;IAC7D,uDACJ;IAAA,4DAAa;;;IAF8J,gFAAmB;IAC1L,0DACJ;IADI,+IACJ;;;IAEJ,4EACI;IAAA,wIACJ;IAAA,4DAAY;;;IACZ,4EACI;IAAA,oJACJ;IAAA,4DAAY;;;IAKhB,uEAA4C;IAAA,uDAAiC;IAAA,4DAAO;;;IAAxC,0DAAiC;IAAjC,sGAAiC;;;IAEzE,4EAAiD;IAAA,mFAAwB;IAAA,4DAAY;;;IACrF,4EAAkD;IAAA,mFAAwB;IAAA,4DAAY;;;;IAKtF,6EAEI;IAD6C,qVAA6B,qBAAqB,KAAE;IACjG;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC9B;IAAA,4DAAS;;;IAEL,iFAAwG;IAAA,kFAAuB;IAAA,4DAAa;;;;IAC5I,iFACI;IADQ,qXAA2B,qBAAqB,eAAO,yUAAmC,qBAAqB,eAAxD;IAC/D,uDACJ;IAAA,4DAAa;;;IAFiK,gFAAmB;IAC7L,0DACJ;IADI,+IACJ;;;IAEJ,4EACI;IAAA,sJACJ;IAAA,4DAAY;;;IAKhB,uEAAgC;IAAA,uDAAqB;IAAA,4DAAO;;;IAA5B,0DAAqB;IAArB,0FAAqB;;;IAEjD,4EAAqC;IAAA,sEAAW;IAAA,4DAAY;;;IAC5D,4EAAsC;IAAA,sEAAW;IAAA,4DAAY;;;;IAK7D,6EAEI;IADmC,sVAA6B,SAAS,KAAE;IAC3E;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC9B;IAAA,4DAAS;;;IAEL,iFAA4F;IAAA,kFAAuB;IAAA,4DAAa;;;;IAChI,iFACI;IADQ,sXAA2B,SAAS,eAAO,0UAAmC,SAAS,eAA5C;IACnD,uDACJ;IAAA,4DAAa;;;IAF0I,gFAAmB;IACtK,0DACJ;IADI,+IACJ;;;IAEJ,4EACI;IAAA,yIACJ;IAAA,4DAAY;;;;IAOZ,4FAEI;IADA,mXAA4B,eAAe,KAAE;IAC7C;IAAA,+EAAkC;IAAA,gEAAK;IAAA,4DAAW;IACtD;IAAA,4DAAwB;;;IAGxB,4EACI;IAAA;IAAA,mEAA2D;IAC3D;IAAA,2EAAyB;IAAA,mFAAwB;IAAA,4DAAO;IAC5D;IAAA,4DAAY;;;IACZ,4EAEI;IAAA;IAAA,mEAA2D;IAC3D;IAAA,2EAAyB;IAAA,kFAAuB;IAAA,4DAAO;IAC3D;IAAA,4DAAY;;;IAEhB,sEACI;IAAA;IAAA,mEAA2D;IAC3D;IAAA,2EAAyB;IAAA,uDAAoB;IAAA,4DAAO;IACxD;IAAA,4DAAM;;;IADuB,0DAAoB;IAApB,yFAAoB;;AD3G1D,MAAM,+BAA+B;IAgC1C,YAAoB,EAAe,EACzB,iBAAoC,EACpC,OAAsC,EACtC,WAAkC,EAAS,SAAsB;QAHvD,OAAE,GAAF,EAAE,CAAa;QACzB,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,YAAO,GAAP,OAAO,CAA+B;QACtC,gBAAW,GAAX,WAAW,CAAuB;QAAS,cAAS,GAAT,SAAS,CAAa;QAlC3E,qBAAgB,GAAG,2DAAW,CAAC,oBAAoB,CAAC;QAIpD,kBAAa,GAAY,KAAK,CAAC;QAS/B,wBAAmB,GAAkB,EAAE,CAAC;QAExC,iBAAY,GAAU,EAAE,CAAC;QACzB,kBAAa,GAAU,EAAE,CAAC;QAC1B,iBAAY,GAAU,EAAE,CAAC;QAGzB,UAAK,GAAG,IAAI,IAAI,EAAE,CAAC;QAEnB,gBAAW,GAAW,KAAK;IAYoD,CAAC;IAEhF,QAAQ;QACN,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACvF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACzC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,UAAU,CAAC;QAC3F,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED,QAAQ;QACN,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE;QAClE,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACnC,IAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,KAAG,CAAC,EAAC;YAC7B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;SACtD;aACI,IAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,KAAG,CAAC,EAAC;YAChC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;SACtD;IAEL,CAAC;IAED,YAAY;QACV,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC,SAAS,CAAC,CAAC,IAAW,EAAE,EAAE;YAC7D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBACnC,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBACpE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;YAC7E,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,gBAAgB,CAAC,KAAU;QACzB,IAAG,KAAK,EAAC;YACT,IAAI,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YACxD,mHAAmH;YACjH,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;YAC9B,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC/B,IAAI,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE;oBACjI,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;iBACjE;YACH,CAAC,CAAC,CAAC;SACN;aACI;YACH,IAAI,CAAC,mBAAmB,GAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,uBAAuB,EAAE,CAAC;SACjC;IACD,CAAC;IAED,UAAU;QACR,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YAC1C,iBAAiB,EAAE,CAAC,EAAE,CAAC;YACvB,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACvC,mBAAmB,EAAE,CAAC,EAAE,CAAC;YACzB,OAAO,EAAE,CAAC,EAAE,CAAC;YACb,aAAa,EAAC,CAAC,EAAE,EAAE,yDAAU,CAAC,QAAQ,CAAC;SACxC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,GAAG,IAAI,gFAAQ,EAAE,CAAC;IACjC,CAAC;IAED,oBAAoB,CAAC,KAAK;QAExB,IAAI,aAAa,GAAC,KAAK,CAAC,KAAK,CAAC;QAE9B,IAAI,aAAa,EAAE;YACjB,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,aAAa,CAAC;YACxC,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,QAAa,EAAE,EAAE;gBAC7E,IAAG,QAAQ,EAAC;oBACV,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;oBACjD,IAAI,QAAQ,CAAC,kBAAkB,EAAE;wBAC/B,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,QAAQ,CAAC,gBAAgB,CAAC;wBACpD,IAAI,CAAC,QAAQ,CAAC,kBAAkB,GAAG,QAAQ,CAAC,kBAAkB,CAAC;qBAChE;yBACG;wBACF,IAAI,CAAC,QAAQ,CAAC,kBAAkB,GAAG,EAAE,CAAC;qBACvC;oBACD,IAAI,QAAQ,CAAC,oBAAoB,EAAE;wBACjC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,GAAG,QAAQ,CAAC,kBAAkB,CAAC;wBAC/D,IAAI,CAAC,QAAQ,CAAC,oBAAoB,GAAG,QAAQ,CAAC,oBAAoB,CAAC;qBACpE;yBACG;wBACF,IAAI,CAAC,QAAQ,CAAC,oBAAoB,GAAG,EAAE,CAAC;qBACzC;oBACD,IAAI,QAAQ,CAAC,QAAQ,EAAE;wBACrB,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;wBACvC,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;qBAC5C;yBACG;wBACF,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,EAAE,CAAC;qBAC7B;iBACF;YACH,CAAC,EACD,CAAC,KAAK,EAAC,EAAE;gBACP,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;SAC3B;aACI;YACH,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;SAC3B;IACH,CAAC;IAED,aAAa,CAAC,KAAU;QACtB,IAAG,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,EAAC;YAC1B,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;IACH,CAAC;IAED,WAAW;QACT,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,CAAC;QACpC,IAAI,CAAC,WAAW,GAAC,KAAK;QACtB,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,cAAc;QACZ,IAAI,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,aAAa,EAAC;YAClD,IAAI,CAAC,QAAQ,CAAC,aAAa,GAAG,mCAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;SAC3G;QACD,IAAG,IAAI,CAAC,4BAA4B,IAAE,IAAI;YACxC,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,4BAA4B,CAAC,EAAE,CAAC;;YAE/D,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC1B,IAAG,IAAI,CAAC,8BAA8B,IAAE,IAAI;YACxC,IAAG,IAAI,CAAC,8BAA8B,IAAE,IAAI;gBAChD,IAAG,IAAI,CAAC,8BAA8B,IAAE,IAAI;oBAC1C,IAAI,CAAC,QAAQ,CAAC,kBAAkB,GAAI,IAAI,CAAC,8BAA8B,CAAC,EAAE,CAAC;;oBAE3E,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QACnC,IAAG,IAAI,CAAC,yBAAyB;YAC7B,IAAG,IAAI,CAAC,yBAAyB;gBACrC,IAAG,IAAI,CAAC,yBAAyB;oBAC/B,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAI,IAAI,CAAC,yBAAyB,CAAC,EAAE,CAAC;;oBAE1D,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QACd,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QACvB,IAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,IAAI,IAAI,EAAC;YACjC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACzF,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,sBAAsB,EAAE,CAAC;SAC/E;aACG;YACF,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC;YACpE,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,eAAe,EAAE,CAAC;YACvE,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,sBAAsB,EAAE,CAAC;SAC/E;QACD,IAAI,IAAI,CAAC,sBAAsB,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;YAChE,IAAI,CAAC,OAAO,CAAC,+BAA+B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,QAAa,EAAE,EAAE;gBACtF,IAAI,OAAO,GAAG,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,QAAQ,CAAC;gBAC7E,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE;oBAC/B,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;gBACX,IAAI,OAAO,CAAC;gBACZ,IAAI,KAAK,CAAC,KAAK,IAAI,SAAS,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE,EACjD;oBACE,OAAO,GAAG,eAAe;oBACzB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE;wBAC/B,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;qBAED;oBACE,IAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,kEAAkE,CAAC,EAAC;wBAC/F,IAAI,CAAC,WAAW,GAAG,IAAI;wBACvB,IAAI,CAAC,gBAAgB,GAAC,KAAK,CAAC,KAAK,CAAC,IAAI;qBACvC;yBACI,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,wBAAwB,EAAC;wBACpD,OAAO,GAAG,uBAAuB;wBACjC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE;4BAC/B,QAAQ,EAAE,IAAI;4BACd,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;qBACJ;yBACG;wBACF,OAAO,GAAG,0BAA0B;wBACpC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE;4BAC/B,QAAQ,EAAE,IAAI;4BACd,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;qBACJ;iBACF;YACH,CAAC,CAAC,CAAC;SACJ;QAEJ;;;;;;;;SAQC;IACA,CAAC;IAED,WAAW;QACT,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,CAAC,WAAgB,EAAE,EAAE;YACtE,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,UAAU,GAAU,WAAW;YACnC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAClD,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBAC3B,IAAG,OAAO,CAAC,gBAAgB,KAAK,IAAI,CAAC,UAAU,EAAC;oBAChD,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,EACvE;wBAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;qBAClF;iBACF;gBACD,IAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,KAAK,EAAC;oBACvC,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,EACvE;wBAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;qBAClF;iBACF;YACD,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,IAAI,CAClE,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CACpC,CAAC;QAEJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,OAAO,CAAC,KAAK;QACnB,IAAI,WAAW,CAAC;QAChB,IAAI,KAAK,IAAI,KAAK,CAAC,UAAU,EAAE;YAC7B,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;YAC7C,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CACxC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CACjD,CAAC;SACH;aAAM;YACL,OAAO,IAAI,CAAC,WAAW,CAAC;SACzB;IACH,CAAC;IACD,aAAa;QACX,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAC,IAAI;QAC5B,IAAI,CAAC,QAAQ,CAAC,kBAAkB,GAAC,IAAI;QACrC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAC,IAAI;QACzB,IAAI,CAAC,QAAQ,CAAC,oBAAoB,GAAG,EAAE,CAAC;QACxC,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,QAAQ,CAAC,kBAAkB,GAAG,EAAE,CAAC;IACxC,CAAC;IACD,WAAW,CAAC,KAAW,EAAE,SAAS;QAChC,IAAG,SAAS,IAAE,YAAY,EAAC;YACzB,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACxD,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;aACI,IAAG,SAAS,IAAE,mBAAmB,EAAC;YACrC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;YAC/D,KAAK,CAAC,eAAe,EAAE,CAAC;SACzB;aACI,IAAG,SAAS,IAAE,qBAAqB,EAAC;YACvC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;YACjE,KAAK,CAAC,eAAe,EAAE,CAAC;SACzB;aACI,IAAG,SAAS,IAAE,SAAS,EAAC;YAC3B,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACrD,KAAK,CAAC,eAAe,EAAE,CAAC;SACzB;IACH,CAAC;IAED,kBAAkB,CAAC,WAAW;QAC5B,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,WAAW,CAAC,CAAC;SAC7D;IACH,CAAC;IACD,cAAc,CAAC,OAAO;QACpB,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC;YAChE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAChB;IACH,CAAC;IACD,uBAAuB;QACrB,IAAI,CAAC,mBAAmB,GAAC,EAAE,CAAC;QAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAClD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;SACzG;IACH,CAAC;IAED,iBAAiB,CAAC,QAAQ,EAAE,IAAI;QAC9B,IAAI,QAAQ,IAAG,mBAAmB,EAAE;YAClC,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC;SAC1C;aACI,IAAI,QAAQ,IAAI,qBAAqB,EAAE;YAC1C,IAAI,CAAC,8BAA8B,GAAG,IAAI,CAAC;SAC5C;aACI,IAAI,QAAQ,IAAI,SAAS,EAAE;YAC9B,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;SACvC;IACH,CAAC;IAED,UAAU,CAAC,GAAQ,EAAE,SAAS;QAC5B,IAAI,SAAS,IAAI,eAAe,EAAE;YAChC,IAAI,CAAC,WAAW,GAAC,KAAK;YACtB,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,KAAK,EAAE,CAAC;SAC1D;IACH,CAAC;IAED,sBAAsB;QACpB,IAAI,CAAC,WAAW,GAAC,KAAK;IACxB,CAAC;;8GA5VU,+BAA+B;+GAA/B,+BAA+B;kEA8B/B,iEAAkB;;;;qFAhClB,CAAC,4FAAqB,CAAC;;QClBpC,2EACI;QAAA;QAAA,0EACI;QAAA;QAAA,yEACI;QAAA;QAAA,yEACI;QAAA;QAAA,oFACI;QAAA;QAAA,6EAAW;QAAA,yEAAa;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QAAA,4DAAY;QACtE;QAAA,4EAGA;QAHwD,6JAAS,yBAAqB,IAAC;QAAvF,4DAGA;QAAA;QAAA,mIAEI;QAEJ;QAAA,6FACI;QAAA;QAAA,2IAA+F;QAC/F;QAAA,2IACI;;QAER;QAAA,4DAAmB;QACnB;QAAA,0IACI;QAEJ;QAAA,0IACI;QAER;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,yEAAO;QAAA,oFAAwB;QAAA,4DAAQ;QACvC;QAAA,gIAA0C;QAC1C;QAAA,sFACI;QAAA;QAAA,0IAA+C;QAC/C;QAAA,0IAAgD;QAChD;QAAA,6EAIA;QAH6B,uJAAS,6BAAyB,IAAC,qGAAU,4BAAwB,IAAlC;QADhE,4DAIA;QAAA;QAAA,mIAEI;QAEJ;QAAA,8FACI;QAAA;QAAA,2IAAsG;QACtG;QAAA,2IACI;QAER;QAAA,4DAAmB;QACnB;QAAA,0IACI;QAEJ;QAAA,0IACI;QAER;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,yEAAO;QAAA,sFAA0B;QAAA,4DAAQ;QACzC;QAAA,gIAA4C;QAC5C;QAAA,sFACI;QAAA;QAAA,0IAAiD;QACjD;QAAA,0IAAkD;QAClD;QAAA,6EAIA;QAH6B,uJAAS,6BAAyB,IAAC,qGAAU,4BAAwB,IAAlC;QADhE,4DAIA;QAAA;QAAA,mIAEI;QAEJ;QAAA,8FACI;QAAA;QAAA,2IAAwG;QACxG;QAAA,2IACI;QAER;QAAA,4DAAmB;QACnB;QAAA,0IACI;QAER;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,yEAAO;QAAA,yEAAa;QAAA,4DAAQ;QAC5B;QAAA,gIAAgC;QAChC;QAAA,uFACI;QAAA;QAAA,4IAAqC;QACrC;QAAA,4IAAsC;QACtC;QAAA,8EAIA;QAHgB,wJAAS,6BAAyB,IAAC,sGAAsB,4BAAwB,IAA9C;QADnD,4DAIA;QAAA;QAAA,qIAEI;QAEJ;QAAA,+FACI;QAAA;QAAA,6IAA4F;QAC5F;QAAA,6IACI;QAER;QAAA,4DAAmB;QACnB;QAAA,4IACI;QAER;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,uFACI;QAAA;QAAA,8EAAW;QAAA,2EAAc;QAAA,4EAA0B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QACvE;QAAA,8EACA;QADuJ,kKAAc,4BAAwB,IAAC,gPAAU,WAAa,IAAvB;QAA9L,4DACA;QAAA;QAAA,oKAEI;QAEJ;QAAA,yFAAwE;QACxE;QAAA,wFAAyC;QACzC;QAAA,4IACI;QAGJ;QAAA,4IAEI;QAGR;QAAA,4DAAiB;QACjB;QAAA,gIACI;QAGR;QAAA,4DAAM;QACN;QAAA,4EACI;QAAA;QAAA,4EACI;QAAA;QAAA,+EACI;QADuB,yJAAS,iBAAa,IAAC;QAC9C;QAAA,6EAAU;QAAA,kEAAK;QAAA,4DAAW;QAAC,yFAC/B;QAAA,4DAAS;QACT;QAAA,+EACI;QADoC,yJAAS,oBAAgB,IAAC;QAC9D,iHACJ;QAAA,4DAAS;QACb;QAAA,4DAAM;QACV;QAAA,4DAAM;QACV;QAAA,4DAAM;QACV;QAAA,4DAAO;QACX;QAAA,4DAAW;QAAC;;;;;;;QA7IF,0DAAoC;QAApC,iGAAoC;QAGd,0DAA+B;QAA/B,uGAA+B;QAEd,0DAA0B;QAA1B,uFAA0B;QAGxB,0DAA+C;QAA/C,6GAA+C;QAK9D,0DAAyE;QAAzE,uIAAyE;QACQ,0DAA6C;QAA7C,2JAA6C;QAInI,0DAAqE;QAArE,mIAAqE;QAGrE,0DAAyE;QAAzE,uIAAyE;QAOlF,0DAAmC;QAAnC,iGAAmC;QACzB,0DAA+B;QAA/B,uGAA+B;QAChC,0DAAmC;QAAnC,iGAAmC;QACnC,0DAAoC;QAApC,kGAAoC;QAClB,0DAA2B;QAA3B,wFAA2B;QAIzB,0DAAsD;QAAtD,oHAAsD;QAKrE,0DAAgF;QAAhF,8IAAgF;QACqC,0DAAyC;QAAzC,4FAAyC;QAInK,0DAA4E;QAA5E,0IAA4E;QAG5E,0DAAgF;QAAhF,8IAAgF;QAOzF,0DAAqC;QAArC,mGAAqC;QAC3B,0DAA+B;QAA/B,uGAA+B;QAChC,0DAAqC;QAArC,mGAAqC;QACrC,0DAAsC;QAAtC,oGAAsC;QACpB,0DAA2B;QAA3B,wFAA2B;QAIzB,0DAAwD;QAAxD,sHAAwD;QAKvE,0DAAkF;QAAlF,gJAAkF;QACsC,0DAAyC;QAAzC,4FAAyC;QAItK,0DAAkF;QAAlF,gJAAkF;QAO3F,0DAAyB;QAAzB,uFAAyB;QACf,0DAA+B;QAA/B,uGAA+B;QAChC,0DAAyB;QAAzB,uFAAyB;QACzB,0DAA0B;QAA1B,wFAA0B;QACR,0DAA2B;QAA3B,wFAA2B;QAIzB,0DAA4C;QAA5C,0GAA4C;QAK3D,0DAAsE;QAAtE,oIAAsE;QAC2B,0DAAyC;QAAzC,4FAAyC;QAI/I,0DAAsE;QAAtE,oIAAsE;QAMrE,0DAAiC;QAAjC,uGAAiC;QAEe,0DAAiB;QAAjB,8EAAiB;QAC5C,0DAAkD;QAAlD,gHAAkD;QAIlD,0DAAc;QAAd,qEAAc;QAEpC,0DAAwE;QAAxE,sIAAwE;QAK/E,0DAA+I;QAA/I,iNAA+I;QAKlJ,0DAAmB;QAAnB,iFAAmB;;6FDzG3B,+BAA+B;cAN3C,uDAAS;eAAC;gBACT,QAAQ,EAAE,+BAA+B;gBACzC,WAAW,EAAE,4CAA4C;gBACzD,SAAS,EAAE,CAAC,4CAA4C,CAAC;gBACzD,SAAS,EAAE,CAAC,4FAAqB,CAAC;aACnC;kgBA+BgC,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;;;;;;;;;;;;;;AElD/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AAC2B;AAGM;AAMrC;AAET;AACuC;AACtD;;;;;;;;;;;;;;;;;;;;;;;;ICFb,6EAEI;IADmC,qVAA6B,aAAa,KAAE;IAC/E;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC9B;IAAA,4DAAS;;;IAEL,iFACI;IAAA,0IACJ;IAAA,4DAAa;;;;IACb,iFACI;IADQ,4XAA2B;IACnC,uDACJ;IAAA,4DAAa;;;IAF4G,iFAAoB;IACzI,0DACJ;IADI,gJACJ;;;IAEJ,4EACI;IAAA,iIACJ;IAAA,4DAAY;;;IACZ,4EACI;IAAA,kIACJ;IAAA,4DAAY;;;IACZ,4EACI;IAAA,8HACJ;IAAA,4DAAY;;;IACZ,4EACI;IAAA,6IACJ;IAAA,4DAAY;;;IAIZ,4EAAiD;IAAA,oFAAyB;IAAA,4DAAY;;;IACtF,4EAAkD;IAAA,oFAAyB;IAAA,4DAAY;;;;IAKvF,6EAEI;IAD6C,qVAA6B,qBAAqB,KAAE;IACjG;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC9B;IAAA,4DAAS;;;IAEL,iFACI;IAAA,0IACJ;IAAA,4DAAa;;;;IACb,iFACI;IADS,qXAA2B,qBAAqB,eAAO,yUAAmC,qBAAqB,eAAxD;IAChE,uDACJ;IAAA,4DAAa;;;IAFmK,gFAAmB;IAC/L,0DACJ;IADI,+IACJ;;;IAGJ,4EACI;IAAA,qIACJ;IAAA,4DAAY;;;IAIZ,4EACI;IAAA,sJACJ;IAAA,4DAAY;;;IAKZ,4EAAqC;IAAA,uEAAY;IAAA,4DAAY;;;IAC7D,4EAAsC;IAAA,uEAAY;IAAA,4DAAY;;;;IAK9D,6EAEI;IADmC,qVAA6B,SAAS,KAAE;IAC3E;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC9B;IAAA,4DAAS;;;IAEL,iFACI;IAAA,0IACJ;IAAA,4DAAa;;;;IACb,iFACI;IADS,qXAA2B,SAAS,eAAO,yUAAoC,SAAS,eAA7C;IACpD,uDACJ;IAAA,4DAAa;;;IAF4I,gFAAmB;IACxK,0DACJ;IADI,+IACJ;;;IAEJ,4EACI;IAAA,yIACJ;IAAA,4DAAY;;;;IASd,iFAAgH;IAAjE,oZAA0C;IAAuB,uDAAc;IAAA,4DAAa;;;IAAjD,iFAAoB;IAAE,0DAAc;IAAd,+EAAc;;;IAEhI,4EACI;IAAA,mHACJ;IAAA,4DAAY;;;IAMZ,4EAA+C;IAAA,kFAAuB;IAAA,4DAAY;;;IAClF,4EAAgD;IAAA,kFAAuB;IAAA,0EAA0B;IAAA,4DAAC;IAAA,4DAAO;IAAA,4DAAY;;;;IAIrH,6EAEI;IADmC,8VAA6B,mBAAmB,KAAE;IACrF;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC9B;IAAA,4DAAS;;;IAEL,iFACI;IAAA,kIACJ;IAAA,4DAAa;;;;IACb,iFACI;IADS,8XAA2B,mBAAmB,eAAO;IAC9D,uDACJ;IAAA,4DAAa;;;IAFkG,gFAAmB;IAC9H,0DACJ;IADI,uIACJ;;;IAEH,4EACG;IAAA,4IACJ;IAAA,4DAAY;;;IACZ,4EACI;IAAA,2HACJ;IAAA,4DAAY;;;;IAQR,4FAEI;IADA,2XAA4B,eAAe,KAAE;IAC7C;IAAA,+EAAkC;IAAA,gEAAK;IAAA,4DAAW;IACtD;IAAA,4DAAwB;;;IAGxB,4EACI;IAAA;IAAA,mEAA2D;IAC3D;IAAA,2EAAyB;IAAA,mFAAwB;IAAA,4DAAO;IAC5D;IAAA,4DAAY;;;IACZ,4EAEI;IAAA;IAAA,mEAA2D;IAC3D;IAAA,2EAAyB;IAAA,kFAAuB;IAAA,4DAAO;IAC3D;IAAA,4DAAY;;;IAEhB,sEACI;IAAA;IAAA,mEAA2D;IAC3D;IAAA,2EAAyB;IAAA,uDAAoB;IAAA,4DAAO;IACxD;IAAA,4DAAM;;;IADuB,0DAAoB;IAApB,yFAAoB;;;;IAhExD,yEAEG;IAAA;IAAA,qFACI;IAAA;IAAA,4EAAW;IAAA,kFAAuB;IAAA,0EAA0B;IAAA,4DAAC;IAAA,4DAAO;IAAA,4DAAY;IAEhF;IAAA,iFACE;IAAA;IAAA,oJAAgH;IAClH;IAAA,4DAAa;IACb;IAAA,kJACI;IAEN;IAAA,4DAAiB;IAGjB;IAAA,yEAAO;IAAA,oFAAwB;IAAA,4DAAQ;IAAA,wEAAM;IAAA,wDAA+B;IAAA,4DAAO;IACnF;IAAA,qFACE;IAAA;IAAA,kJAA+C;IAC/C;IAAA,kJAAgD;IAChD;IAAA,6EAGA;IAF4B,sVAAmC;IAD/D,4DAGA;IAAA;IAAA,2IAEI;IAEJ;IAAA,8FACI;IAAA;IAAA,oJACI;IAEJ;IAAA,oJACI;IAEP;IAAA,4DAAmB;IACnB;IAAA,kJACG;IAEJ;IAAA,kJACI;IAER;IAAA,4DAAiB;IAEjB;IAEI;IAAA,sFACI;IAAA;IAAA,6EAAW;IAAA,0EAAc;IAAA,2EAA0B;IAAA,6DAAC;IAAA,4DAAO;IAAA,4DAAY;IACvE;IAAA,6EACA;IADuJ,+VAAuC,sPAAU,WAAa,IAAvB;IAA9L,4DACA;IAAA;IAAA,0KAEI;IAEJ;IAAA,wFAAwE;IACxE;IAAA,uFAAyC;IACzC;IAAA,kJACI;IAGJ;IAAA,kJAEI;IAGR;IAAA,4DAAiB;IACjB;IAAA,sIACI;IAGR;IAAA,4DAAM;;;;;IAhEW,0DAA+B;IAA/B,2GAA+B;IAG/B,0DAA2B;IAA3B,4FAA2B;IAC1B,0DAAkC;IAAlC,yFAAkC;IAErC,0DAAyE;IAAzE,2IAAyE;IAMzC,0DAA+B;IAA/B,oGAA+B;IAC5D,0DAA+B;IAA/B,2GAA+B;IAClC,0DAAmC;IAAnC,qGAAmC;IACnC,0DAAoC;IAApC,sGAAoC;IAClB,0DAA2B;IAA3B,4FAA2B;IAGzB,0DAA0D;IAA1D,4HAA0D;IAKhE,0DAAoF;IAApF,sJAAoF;IAGnC,0DAAwC;IAAxC,gGAAwC;IAItG,0DAAoF;IAApF,sJAAoF;IAGrF,0DAAgF;IAAhF,kJAAgF;IAO3E,0DAAiC;IAAjC,2GAAiC;IAEe,0DAAiB;IAAjB,kFAAiB;IAC5C,0DAAsD;IAAtD,wHAAsD;IAItD,0DAAc;IAAd,qEAAc;IAEpC,0DAA4E;IAA5E,8IAA4E;IAKnF,0DAAuJ;IAAvJ,iOAAuJ;IAK1J,0DAAmB;IAAnB,qFAAmB;;AD7IxC,qBAAqB;AASd,MAAM,+BAA+B;IAoC1C,oCAAoC;IAEpC,YAAoB,KAAiB,EAAU,EAAe,EAAU,QAA+B,EAAU,OAAsC,EAAU,iBAAoC,EAAU,WAAkC,EAAU,SAAsB;QAA7P,UAAK,GAAL,KAAK,CAAY;QAAU,OAAE,GAAF,EAAE,CAAa;QAAU,aAAQ,GAAR,QAAQ,CAAuB;QAAU,YAAO,GAAP,OAAO,CAA+B;QAAU,sBAAiB,GAAjB,iBAAiB,CAAmB;QAAU,gBAAW,GAAX,WAAW,CAAuB;QAAU,cAAS,GAAT,SAAS,CAAa;QApCjR,mBAAc,GAAY,KAAK,CAAC;QAChC,qBAAgB,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QAGpD,yBAAoB,GAAU,EAAE,CAAC;QAGjC,iBAAY,GAAU,EAAE,CAAC;QACzB,4BAAuB,GAAU,EAAE,CAAC;QAKpC,kBAAa,GAAY,KAAK,CAAC;QAI/B,kBAAa,GAAU,EAAE,CAAC;QAC1B,wBAAmB,GAAkB,EAAE,CAAC;QACxC,0BAAqB,GAAkB,EAAE,CAAC;QAE1C,eAAU,GAAY,IAAI,CAAC;QAC3B,cAAS,GAAG,IAAI,CAAC;QACjB,wBAAmB,GAA2B,EAAE,CAAC;QACjD,eAAU,GAAU,EAAE,CAAC;QAMvB,UAAK,GAAG,IAAI,IAAI,EAAE,CAAC;QAEnB,gBAAW,GAAS,KAAK;IAI4P,CAAC;IAEtR,QAAQ;QACN,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACzC,IAAI,CAAC,QAAQ,EAAE;QACf,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAE9B,CAAC;IAED,QAAQ;QACN,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE;QAClE,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACnC,IAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,KAAG,CAAC,EAAC;YAC7B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;SACtD;aACI,IAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,KAAG,CAAC,EAAC;YAChC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;SACtD;IACL,CAAC;IAED,UAAU;QACR,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YAC9C,WAAW,EAAE,CAAC,IAAI,CAAC;YACnB,WAAW,EAAE,CAAC,IAAI,EAAE,yDAAU,CAAC,QAAQ,CAAC;YACxC,UAAU,EAAE,CAAC,IAAI,EAAE,yDAAU,CAAC,QAAQ,CAAC;YACvC,mBAAmB,EAAE,CAAC,EAAE,CAAC;YACzB,iBAAiB,EAAE,CAAC,EAAE,CAAC;YACvB,OAAO,EAAE,CAAC,EAAE,CAAC;YACb,aAAa,EAAC,CAAC,EAAE,EAAC,yDAAU,CAAC,QAAQ,CAAC;SACvC,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,GAAG,IAAI,gFAAQ,EAAE,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACzB,CAAC;IACD,aAAa;QACX,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE,CAAC,SAAS,CAC7C,CAAC,GAAO,EAAE,EAAE;YACV,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;YACzB,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;YAC9B,IAAG,IAAI,CAAC,UAAU,IAAE,IAAI,EAAC;gBACvB,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC;gBACvE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;oBAChD,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,YAAY,EAAE,KAAK,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;gBACpE,CAAC,CAAC,CAAC;aACN;iBACG;gBACF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC;gBAChG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;oBAChD,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;gBAC1D,CAAC,CAAC,CAAC;aACN;YACD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC;YACzC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE;gBAC7B,KAAK,EAAE,EAAE;gBACT,KAAK,EAAE,IAAI;aACZ,CAAC,CAAC;YACH,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,0BAA0B,CAAC,YAAY,CAAC,IAAI,CACtE,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CACpC,CAAC;QACJ,CAAC,EACD,KAAK,CAAC,EAAE;YACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE;gBACnC,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CACF,CAAC;IACJ,CAAC;IACD,YAAY;QACV,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC,SAAS,CAAC,CAAC,IAAW,EAAE,EAAE;YAC7D,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;YACpC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBACvC,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBACpE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;YAC7E,CAAC,CAAC,CAAC;YAEH,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBAC1B,IAAI,CAAC,uBAAuB,EAAE,CAAC;aAChC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,gBAAgB,CAAC,KAAU;QACzB,IAAI,KAAK,EAAE;YACT,IAAI,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YACxD,mHAAmH;YACnH,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;YAC9B,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBACnC,IAAI,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE;oBACjI,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;iBACjE;YACH,CAAC,CAAC,CAAC;SACJ;aACI;YACH,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;YAC9B,IAAI,CAAC,uBAAuB,EAAE,CAAC;SAChC;IACH,CAAC;IAED,mBAAmB,CAAC,KAAU;QAC5B,IAAI,gBAAgB,GAAG,KAAK,CAAC,KAAK,CAAC;QACnC,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,gBAA+B,EAAE,EAAE;YAC/F,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;YAChC,IAAI,CAAC,qBAAqB,GAAG,gBAAgB,CAAC;QAChD,CAAC,EACC,CAAC,KAAU,EAAE,EAAE;YACb,qDAAqD;YACrD,sBAAsB;YACtB,+CAA+C;YAC/C,+BAA+B;YAC/B,4BAA4B;YAC5B,2BAA2B;YAC3B,uBAAuB;YACvB,oDAAoD;YACpD,MAAM;QACR,CAAC,CACF,CAAC;IACJ,CAAC;IACD,sBAAsB;QACpB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,aAAa,EAAC;YACtD,IAAI,CAAC,QAAQ,CAAC,aAAa,GAAG,mCAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;SAC/G;QACD,IAAG,IAAI,CAAC,UAAU,IAAI,IAAI,EAAC;YACzB,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC7F,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,sBAAsB,EAAE,CAAC;YAClF,IAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,IAAI,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,iBAAiB,EAAC;gBACpF,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC;gBACxE,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,eAAe,EAAE,CAAC;gBAC3E,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,sBAAsB,EAAE,CAAC;aACnF;SACF;QACD,IAAG,CAAC,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,mBAAmB,IAAI,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAE,IAAG,IAAI,CAAC,UAAU,IAAI,KAAK,EAAC;YAC7H,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC;YAC1E,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,eAAe,EAAE,CAAC;YAC7E,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,sBAAsB,EAAE,CAAC;SACrF;QACD,IAAG,IAAI,CAAC,UAAU,IAAI,KAAK,EAAC;YAC1B,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC;YACjE,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,eAAe,EAAE,CAAC;YACpE,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,sBAAsB,EAAE,CAAC;SAC5E;QACD,IAAI,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAG;YAC1C,IAAI,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,iBAAiB,IAAI,IAAI,CAAC,4BAA4B,EAAE;gBAChG,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,4BAA4B,CAAC,EAAE,CAAC;gBAC/D,IAAI,CAAC,QAAQ,CAAC,kBAAkB,GAAG,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC;aAC3E;iBACI;gBAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;aAAE;YACjC,IAAI,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,mBAAmB,IAAI,IAAI,CAAC,8BAA8B,EAAE;gBACpG,IAAI,CAAC,QAAQ,CAAC,kBAAkB,GAAG,IAAI,CAAC,8BAA8B,CAAC,EAAE,CAAC;gBAC1E,IAAI,EAAC,IAAI,CAAC,QAAQ,CAAC,oBAAoB,GAAG,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC;aACpF;iBACI;gBAAE,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC;aAAE;YAC1C,IAAI,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,yBAAyB,EAAE;gBACnF,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,yBAAyB,CAAC,EAAE,CAAC;gBACzD,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC;aAC9D;iBACI;gBAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;aAAE;YAC9B,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAC3E,IAAI,CAAC,EAAE;gBACL,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iDAAiD,EAAE,GAAG,EAAE;oBAC1E,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,CAAC,EACD,KAAK,CAAC,EAAE;gBACN,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,kEAAkE,CAAC,EAAE;oBAC5F,IAAI,CAAC,WAAW,GAAG,IAAI;oBACvB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,KAAK;iBACpC;qBACI;oBACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;wBACxD,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;YACH,CAAC,CACF,CAAC;SACH;QACD,SAAS;QACT,+DAA+D;QAC/D,sBAAsB;QACtB,mCAAmC;QACnC,+BAA+B;QAC/B,QAAQ;QACR,IAAI;IACN,CAAC;IACD,cAAc,CAAC,KAAK;QAClB,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC;IACD,kBAAkB,CAAC,SAAiB,EAAE,UAAkB;QACtD,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YACxE,IAAI,CAAC,QAAQ,CAAC,kBAAkB,GAAG,EAAE,CAAC;YACtC,IAAI,CAAC,QAAQ,CAAC,oBAAoB,GAAG,EAAE,CAAC;YACxC,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,EAAE,CAAC;YAC5B,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;YACpC,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,UAAU,CAAC;YACtC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,EAAE;gBACvC,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC;gBAClD,IAAI,CAAC,QAAQ,CAAC,kBAAkB,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC;aAC9D;iBACG;gBACF,IAAI,CAAC,QAAQ,CAAC,kBAAkB,GAAG,EAAE,CAAC;aACvC;YACD,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,oBAAoB,EAAE;gBACzC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC;gBAC7D,IAAI,CAAC,QAAQ,CAAC,oBAAoB,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC;aAClE;iBACG;gBACF,IAAI,CAAC,QAAQ,CAAC,oBAAoB,GAAG,EAAE,CAAC;aACzC;YACD,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;gBAC7B,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBACrC,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;aAC1C;iBACG;gBACF,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,EAAE,CAAC;aAC7B;QACH,CAAC,EAAE,KAAK,CAAC,EAAE;YACT,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;YACpC,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,UAAU,CAAC;YACtC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC,CACA,CAAC;IACJ,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,QAAQ,CAAC,oBAAoB,GAAG,EAAE,CAAC;QACxC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,GAAG,EAAE,CAAC;IACxC,CAAC;IAED,aAAa,CAAC,KAAU;QACtB,IAAG,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,EAAC;YAC1B,IAAI,CAAC,eAAe,EAAE,CAAC;SACxB;IACH,CAAC;IAED,WAAW,CAAC,IAAS;QACnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,IAAI,IAAI,IAAI,EAAE;YAChB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;gBAC1D,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;gBACvB,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;gBACxB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;gBAEvB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;oBAClD,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;gBAClE,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE;oBAC7B,KAAK,EAAE,EAAE;oBACT,KAAK,EAAE,IAAI;iBACZ,CAAC,CAAC;gBACH,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,EAAE;oBACjC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;oBAC3B,4DAA4D;oBAC5D,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;oBACpE,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;oBACzG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;iBAC9F;qBAAM;oBACL,IAAI,CAAC,QAAQ,CAAC,kBAAkB,GAAG,EAAE,CAAC;oBACtC,IAAI,CAAC,QAAQ,CAAC,oBAAoB,GAAG,EAAE,CAAC;oBACxC,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,EAAE,CAAC;oBAC5B,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE;oBAC3D,IAAI,CAAC,QAAQ,GAAG,IAAI,gFAAQ,EAAE,CAAC;oBAC/B,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;oBACtC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;iBAC7B;YACH,CAAC,CAAC,CAAC;SACJ;aAAM;YACL,IAAI,CAAC,QAAQ,CAAC,kBAAkB,GAAG,EAAE,CAAC;YACtC,IAAI,CAAC,QAAQ,CAAC,oBAAoB,GAAG,EAAE,CAAC;YACxC,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,EAAE,CAAC;YAC5B,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;YACtC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;SAC5B;IACH,CAAC;IAED,0BAA0B,CAAC,IAAS;QAClC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,8BAA8B;QAC9B,IAAI,IAAI,IAAI,IAAI,EAAE;YAChB,8DAA8D;YAC9D,4BAA4B;YAC5B,6BAA6B;YAC7B,4BAA4B;YAE5B,2DAA2D;YAC3D,uEAAuE;YACvE,QAAQ;YACR,qCAAqC;YACrC,iBAAiB;YACjB,kBAAkB;YAClB,QAAQ;YACR,uCAAuC;YACvC,8BAA8B;YAC9B,4DAA4D;YAC5D,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACjD,8GAA8G;YAC9G,kGAAkG;YAClG,WAAW;YACX,sCAAsC;YACtC,6CAA6C;YAC7C,+CAA+C;YAC/C,mCAAmC;YACnC,mCAAmC;YACnC,QAAQ;YACR,MAAM;YACN,WAAW;YACX,2CAA2C;YAC3C,6CAA6C;YAC7C,iCAAiC;YACjC,4BAA4B;YAC5B,gCAAgC;SACjC;IACH,CAAC;IACD,gBAAgB,CAAC,KAAU;QACzB,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;QACtB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO;QAC9B,IAAG,IAAI,CAAC,SAAS,KAAK,IAAI,EAAC;YACzB,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SACrE;aACG;YACF,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACrE,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC/F,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,sBAAsB,EAAE,CAAC;SACrF;QACD,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IACD,QAAQ,CAAC,UAAmB;QAC1B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,CAAC;QAChE,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,CAAC;QAC/D,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,KAAK,EAAE,CAAC;QACxE,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,CAAC;QACtE,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC;QAC5D,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,QAAQ,CAAC,kBAAkB,GAAG,EAAE,CAAC;QACtC,IAAI,CAAC,QAAQ,CAAC,oBAAoB,GAAG,EAAE,CAAC;QACxC,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,EAAE,CAAC;IAC9B,CAAC;IAED,YAAY;QACV,IAAI,CAAC,QAAQ,GAAG,IAAI,gFAAQ,EAAE,CAAC;QAC/B,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE,CAAC;QACxC,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,CAAC;YACpC,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACpE,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,WAAW,CAAC,sBAAsB,EAAE,CAAC;YAC9E,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC,EAAE,CAAC,CAAC,CAAC;IACR,CAAC;IACD,eAAe;QACb,IAAI,CAAC,WAAW,GAAC,KAAK;QACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,gFAAQ,EAAE,CAAC;QAC/B,IAAG,CAAC,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,WAAW,EAAC;YACpD,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE,CAAC;YAC1C,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,CAAC;YACtC,CAAC,EAAE,CAAC,CAAC,CAAC;YACN,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;SACvB;;YAEA,IAAI,CAAC,YAAY,EAAE,CAAC;IACvB,CAAC;IAEO,OAAO,CAAC,KAAK;QACnB,IAAI,WAAW,CAAC;QAChB,IAAI,KAAK,IAAI,KAAK,CAAC,WAAW,EAAE;YAC9B,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;YAC9C,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAC3C,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CACjD,CAAC;SACH;aAAM;YACL,OAAO,IAAI,CAAC,cAAc,CAAC;SAC5B;IACH,CAAC;IAED,WAAW,CAAC,KAAW,EAAE,SAAS;QAChC,IAAI,SAAS,IAAI,aAAa,EAAE;YAC9B,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,KAAK,CAAC,eAAe,EAAE,CAAC;SACzB;aACI,IAAI,SAAS,IAAI,mBAAmB,EAAE;YACzC,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;YACnE,KAAK,CAAC,eAAe,EAAE,CAAC;SACzB;aACI,IAAI,SAAS,IAAI,qBAAqB,EAAE;YAC3C,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;YACrE,KAAK,CAAC,eAAe,EAAE,CAAC;SACzB;aACI,IAAI,SAAS,IAAI,SAAS,EAAE;YAC/B,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACzD,KAAK,CAAC,eAAe,EAAE,CAAC;SACzB;IACH,CAAC;IAED,uBAAuB;QACrB,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACtD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;SACjH;IACH,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC,SAAS,CAAC,CAAC,IAAmB,EAAE,EAAE;YACpE,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;YAC5B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,iBAAiB,CAAC,QAAQ,EAAE,IAAI;QAC9B,IAAI,QAAQ,IAAI,mBAAmB,EAAE;YACnC,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC;SAC1C;aACI,IAAI,QAAQ,IAAI,qBAAqB,EAAE;YAC1C,IAAI,CAAC,8BAA8B,GAAG,IAAI,CAAC;SAC5C;aACI,IAAI,QAAQ,IAAI,SAAS,EAAE;YAC9B,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;SACvC;IACH,CAAC;IAED,UAAU,CAAC,GAAQ,EAAE,SAAS;QAC5B,IAAI,SAAS,IAAI,eAAe,EAAE;YAChC,IAAI,CAAC,WAAW,GAAC,KAAK;YACtB,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,KAAK,EAAE,CAAC;SAC9D;IACH,CAAC;IACD,sBAAsB;QACpB,IAAI,CAAC,WAAW,GAAC,KAAK;IACxB,CAAC;;8GAxeU,+BAA+B;+GAA/B,+BAA+B;kEA2B/B,iEAAkB;;;;qFA9BlB,CAAC,4FAAqB,CAAC;QCrBpC,2EACI;QAAA;QAAA,0EACI;QAAA;QAAA,yEACI;QAAA;QAAA,yEACI;QAAA;QAAA,sFAAgK;QAApC,yKAAU,4BAAwB,IAAC;QAAC,mEAAQ;QAAA,4DAAmB;QAC/L;QAAA,4DAAM;QACJ;QAAA,0EACE;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,qEAAS;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QAAA,4DAAY;QAClE;QAAA,4EAGA;QAH0D,6JAAS,yBAAqB,IAAC;QAAzF,4DAGA;QAAA;QAAA,mIAEI;QAEJ;QAAA,6FACI;QAAA;QAAA,4IACI;QAEJ;QAAA,4IACI;;QAER;QAAA,4DAAmB;QACnB;QAAA,0IACI;QAEJ;QAAA,0IACI;QAEJ;QAAA,0IACI;QAEJ;QAAA,0IACI;QAER;QAAA,4DAAiB;QACjB;QAAA,6EAA2B;QAAA,sFAA0B;QAAA,4DAAQ;QAAA,wEAAM;QAAA,wDAAiC;QAAA,4DAAO;QAC3G;QAAA,qFACI;QAAA;QAAA,0IAAiD;QACjD;QAAA,0IAAkD;QAClD;QAAA,6EAIA;QAH4B,uJAAS,6BAAyB,IAAC,qGAAW,4BAAwB,IAAnC;QAD/D,4DAIA;QAAA;QAAA,mIAEI;QAEJ;QAAA,8FACI;QAAA;QAAA,4IACI;QAEJ;QAAA,4IACI;QAER;QAAA,4DAAmB;QAEnB;QAAA,0IACI;QAEJ;QAGA;QAAA,0IACI;QAER;QAAA,4DAAiB;QACjB;QAAA,yEAAO;QAAA,yEAAa;QAAA,4DAAQ;QAC5B;QAAA,wEAAM;QAAA,wDAAqB;QAAA,4DAAO;QAClC;QAAA,qFACI;QAAA;QAAA,0IAAqC;QACrC;QAAA,0IAAsC;QACtC;QAAA,6EAIA;QAHgB,uJAAS,6BAAyB,IAAC,qGAAuB,4BAAwB,IAA/C;QADnD,4DAIA;QAAA;QAAA,mIAEI;QAEJ;QAAA,8FACI;QAAA;QAAA,4IACI;QAEJ;QAAA,4IACI;QAER;QAAA,4DAAmB;QACnB;QAAA,0IACI;QAER;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACT;QAAA,kIAEG;QAkEA;QAAA,4EACI;QAAA;QAAA,4EACI;QAAA;QACA;QAAA,+EACI;QADuB,yJAAS,qBAAiB,IAAC;QAClD;QAAA,6EAAU;QAAA,kEAAK;QAAA,4DAAW;QAAC,yFAC/B;QAAA,4DAAS;QACT;QACA;QAAA,+EACI;QADoC,yJAAS,4BAAwB,IAAC;QACtE,iHACJ;QAAA,4DAAS;QACb;QAAA,4DAAM;QACV;QAAA,4DAAM;QACV;QAAA,4DAAM;QACV;QAAA,4DAAO;QACX;QAAA,4DAAW;;;;;QA/KD,0DAAwC;QAAxC,qGAAwC;QAGA,0DAAiB;QAAjB,0EAAiB;QAGnC,0DAA+B;QAA/B,uGAA+B;QAEd,0DAA4B;QAA5B,yFAA4B;QAG1B,0DAAoD;QAApD,kHAAoD;QAK1D,0DAA8E;QAA9E,4IAA8E;QAGxB,0DAA6C;QAA7C,2JAA6C;QAIjH,0DAA0E;QAA1E,wIAA0E;QAG1E,0DAAyE;QAAzE,uIAAyE;QAGzE,0DAA2E;QAA3E,yIAA2E;QAG3E,0DAA8E;QAA9E,4IAA8E;QAI1B,0DAAiC;QAAjC,kGAAiC;QACpF,0DAA+B;QAA/B,uGAA+B;QAChC,0DAAqC;QAArC,mGAAqC;QACrC,0DAAsC;QAAtC,oGAAsC;QACpB,0DAA2B;QAA3B,wFAA2B;QAIzB,0DAA4D;QAA5D,0HAA4D;QAKlE,0DAAsF;QAAtF,oJAAsF;QAG2B,0DAAyC;QAAzC,4FAAyC;QAKxK,0DAAkF;QAAlF,gJAAkF;QAMlF,0DAAsF;QAAtF,oJAAsF;QAK/F,0DAAqB;QAArB,sFAAqB;QACX,0DAA+B;QAA/B,uGAA+B;QAChC,0DAAyB;QAAzB,uFAAyB;QACzB,0DAA0B;QAA1B,wFAA0B;QACR,0DAA2B;QAA3B,wFAA2B;QAIzB,0DAAgD;QAAhD,8GAAgD;QAKtD,0DAA0E;QAA1E,wIAA0E;QAGgB,0DAAyC;QAAzC,4FAAyC;QAIjJ,0DAA0E;QAA1E,wIAA0E;QAKzE,0DAAkB;QAAlB,gFAAkB;;6FDtErC,+BAA+B;cAP3C,uDAAS;eAAC;gBACT,QAAQ,EAAE,8BAA8B;gBACxC,WAAW,EAAE,2CAA2C;gBACxD,SAAS,EAAE,CAAC,2CAA2C,CAAC;gBACxD,SAAS,EAAE,CAAC,4FAAqB,CAAC;aACnC;irBA6BgC,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;;;;;;;;;;;;;;AEnD/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AAOf;AACa;AACV;AAEmB;;;;;;;;;;;;;;;;;ICFxD,0EACI;IAAA;IAAA,0EACI;IAAA;IAAA,0EACI;IAAA;IAAA,mFACI;IAAA;IAAA,2EACI;IAAA,uDACJ;IAAA,4DAAO;IACX;IAAA,4DAAe;IACnB;IAAA,4DAAM;IACN;IAAA,2EACI;IAAA;IAAA,qFACI;IAAA;IAAA,6EAAW;IAAA,oEAAQ;IAAA,4DAAY;IAC/B;IAAA,2EAAkG;IACtG;IAAA,4DAAiB;IACrB;IAAA,4DAAM;IACV;IAAA,4DAAM;IACV;IAAA,4DAAM;;;;;IAboB,0DAAiC;IAAjC,+FAAiC;IAEvC,0DACJ;IADI,qLACJ;IAIY,0DAA+B;IAA/B,0GAA+B;IAER,0DAA+B;IAA/B,6FAA+B;;;;IAjB9F,2EACA;IAAA;IAAA,0EACI;IAAA;IAAA,mFACI;IAAA;IAAA,yEACI;IAAA;IAAA,qEAAK;IAAA,qEAAU;IAAA,4DAAK;IACpB;IAAA,+HACI;IAiBJ;IAAA,0EACI;IAAA;IAAA,yEAAO;IAAA,mEAAO;IAAA,4DAAQ;IACtB;IAAA,qFACI;IAAA;IAAA,6EAAW;IAAA,mEAAO;IAAA,4DAAY;IAC9B;IAAA,0EAAwF;IAC5F;IAAA,4DAAiB;IACrB;IAAA,4DAAM;IACV;IAAA,4DAAM;IACV;IAAA,4DAAmB;IAEnB;IAAA,0EACI;IAAA;IAAA,6EACI;IADoC,0TAAgB;IACpD,wFACJ;IAAA,4DAAS;IACT;IAAA,6EACI;IADoC,4TAAkB;IACtD,0FACJ;IAAA,4DAAS;IACb;IAAA,4DAAM;IACV;IAAA,4DAAO;IACP;IAAA,4DAAW;;;IAzCL,0DAA2B;IAA3B,2FAA2B;IAIC,0DAAiE;IAAjE,wGAAiE;IAoBnE,0DAA+B;IAA/B,0GAA+B;;ADTxD,MAAM,qBAAqB;IAUhC,YAAoB,sBAA8C,EACxD,MAAc,EACf,MAAiB,EAChB,QAAwB,EACxB,SAAsB,EACtB,qBAA4C,EAC5C,OAA0B;QANhB,2BAAsB,GAAtB,sBAAsB,CAAwB;QACxD,WAAM,GAAN,MAAM,CAAQ;QACf,WAAM,GAAN,MAAM,CAAW;QAChB,aAAQ,GAAR,QAAQ,CAAgB;QACxB,cAAS,GAAT,SAAS,CAAa;QACtB,0BAAqB,GAArB,qBAAqB,CAAuB;QAC5C,YAAO,GAAP,OAAO,CAAmB;QAVpC,aAAQ,GAAY,KAAK,CAAC;QAC1B,aAAQ,GAAY,IAAI,CAAC;QACzB,aAAQ,GAAY,KAAK,CAAC;QAWxB,qBAAgB,GAAG,2DAAW,CAAC,oBAAoB,CAAC;QAGpD,cAAS,GAAuB,IAAI,GAAG,EAAE,CAAC;IAL1C,CAAC;IAiBH,QAAQ;QACN,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,UAAU,CAAC;QACtF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACvF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAEvF,QAAO,IAAI,CAAC,QAAQ,EAAC;YACnB,KAAI,CAAC,eAAe,CAAC,CAAC;gBACpB,IAAI,CAAC,aAAa,GAAC,CAAC,CAAC;gBACrB,MAAM;aACP;YACD,KAAI,CAAC,YAAY,CAAC,CAAC;gBACjB,IAAI,CAAC,aAAa,GAAC,CAAC,CAAC;gBACrB,MAAM;aACP;YACD,KAAI,CAAC,iBAAiB,CAAC,CAAC;gBACtB,IAAI,CAAC,aAAa,GAAC,CAAC,CAAC;gBACrB,MAAM;aACP;YACD,KAAI,CAAC,0CAA0C,CAAC,CAAC;gBAC/C,IAAI,CAAC,aAAa,GAAC,CAAC,CAAC;gBACrB,MAAM;aACP;SACF;QACD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,sBAAsB,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAC7F,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC3B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,sBAAsB,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACvF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,GAAG,IAAI,wDAAS,CAAC,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,mCAAmC;IAE9F,CAAC;IAED,8BAA8B,CAAC,YAAoB;QACjD,IAAI,CAAC,qBAAqB,CAAC,gCAAgC,CAAC,YAAY,CAAC;aACtE,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,YAA4B,EAAC,EAAE;YAChD,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,YAAY,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC;gBACpC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,UAAU,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;aAC5E;YACD,IAAI,CAAC,uBAAuB,EAAE,CAAC,IAAI,CAAC,GAAE,EAAE;gBACtC,IAAI,CAAC,uCAAuC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC/D,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC,KAAK,CACR,KAAK,GAAE;YACL,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,0DAA0D,EAAE,GAAG,EAAE;gBACnF,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC;QACJ,CAAC,CAAC,CAAC;IACP,CAAC;IAED,uCAAuC,CAAC,SAAiB;QACvD,IAAI,CAAC,qBAAqB,CAAC,uCAAuC,CAAC,IAAI,CAAC,SAAS,EAAC,IAAI,CAAC,aAAa,CAAC,CAAC,SAAS,EAAE;aAC/G,IAAI,CAAC,CAAC,YAA0B,EAAC,EAAE;YAClC,mCAAmC;YACnC,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;YACjD,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC;gBACzD,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,YAAY,CAAC,eAAe,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC;oBACpD,IAAG,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,UAAU,KAAG,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,UAAU,EAAC;wBAC9F,SAAS;qBACV;oBACD,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,GAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;oBACrE,MAAM;iBACP;gBACD,IAAG,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,KAAG,IAAI,EAAC;oBACpD,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,UAAU,GAAC,IAAI,CAAC;iBACrD;qBAAM;oBACN,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC;iBACxD;aACF;YAEF,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE5B,CAAC,CAAC,CAAC,KAAK,CACR,KAAK,GAAE;YACL,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,wCAAwC,EAAE,GAAG,EAAE;gBAClE,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACN,CAAC;IAED,uBAAuB;QACrB,IAAI,UAAU,GAAsB,EAAE,CAAC;QACvC,KAAI,IAAI,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAC;YAClC,UAAU,CAAC,IAAI,CAAC;gBACd,UAAU,EAAE,EAAE;gBACd,KAAK,EAAE,IAAI;gBACX,OAAO,EAAE,EAAE;gBACX,UAAU,EAAE,KAAK;gBACjB,SAAS,EAAE,IAAI,CAAC,QAAQ;gBACxB,UAAU,EAAE,EAAE;aACf,CAAC,CAAC;SACJ;QACD,IAAI,CAAC,YAAY,GAAG;YAClB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,YAAY,EAAE,IAAI,CAAC,aAAa;YAChC,OAAO,EAAE,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,eAAe,EAAE,UAAU;SAC5B;QACD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,mBAAmB;QACjB,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAC,CAAC,EAAE,EAAC;YACpC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,EAAC,IAAI,0DAAW,CAAC,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;YAChH,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,EAAC,IAAI,0DAAW,CAAC,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;SAC5G;QACD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,SAAS,EAAC,IAAI,0DAAW,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;QACpF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,YAAY,CAAC,IAAI,GAAC,MAAM,CAAC;QAC9B,IAAI,CAAC,uBAAuB,EAAE,CAAC,IAAI,CAAC,QAAQ,GAAE;YAC5C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE;gBAC7C,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAE;YACd,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,qBAAqB,EAAE,GAAG,EAAE;gBAC9C,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,eAAe;QACb,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACrD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,eAAe,EAAE,CAAC;YAC9C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,sBAAsB,EAAE,CAAC;QACvD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,uBAAuB;QACrB,IAAI,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC;QACrD,IAAG,MAAM,KAAG,EAAE,EAAC;YACb,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;SAClC;aAAK;YACJ,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,MAAM,CAAC;SACpC;QACF,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC;YACzD,IAAI,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;YAE1D,IAAG,OAAO,KAAG,EAAE,EAAC;gBACf,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;aACpD;iBAAK;gBACL,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC;aACvD;YACD,IAAI,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;YAC1D,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC;YACxD,IAAG,KAAK,EAAC;gBACP,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,GAAC,KAAK,CAAC;aAClD;iBAAK;gBACJ,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,GAAC,IAAI,CAAC;aACjD;SAEF;QACA,OAAO,IAAI,CAAC,qBAAqB,CAAC,uBAAuB,CAAC,IAAI,CAAC,YAAY,CAAC;aACzE,SAAS,EAAE,CAAC;IACjB,CAAC;IAED,MAAM;QACJ,YAAY;QACZ,IAAI,KAAK,GAAC,IAAI;QACf,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC;YACzD,IAAG,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,KAAK,EAAC;gBACjG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;gBAChF,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;gBAC9E,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,sBAAsB,EAAE,CAAC;gBACpE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oCAAoC,EAAE,GAAG,EAAE;oBAC7D,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,KAAK,GAAC,KAAK;aACX;SACF;QACD,IAAG,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,KAAK,EAAC;YACnC,IAAI,CAAC,uBAAuB,EAAE;SAC/B;IACF,CAAC;IAED,uBAAuB;QACrB,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,QAAQ,CAAC;QAClC,IAAI,CAAC,uBAAuB,EAAE,CAAC,IAAI,CAAC,QAAQ,GAAE;YAC5C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE;gBAC5D,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,GAAG,GAAE;gBACjC,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAE;YACd,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,yBAAyB,EAAE,GAAG,EAAE;gBAClD,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC;;0FA7PU,qBAAqB;qGAArB,qBAAqB;kEA+BrB,wEAAY;kEACZ,8DAAO;;;;;;QCpDpB,yEAEA;QAAA;QAAA,iFAA2C;QAE3C;QAAA,4HACA;QA4CA;QAAA,4DAAM;;QA7CI,0DAAgB;QAAhB,8EAAgB;;6FDgBb,qBAAqB;cALjC,uDAAS;eAAC;gBACT,QAAQ,EAAE,mBAAmB;gBAC7B,WAAW,EAAE,gCAAgC;gBAC7C,SAAS,EAAE,CAAC,gCAAgC,CAAC;aAC9C;uqBAgC0B,SAAS;kBAAjC,uDAAS;mBAAC,wEAAY;YACH,IAAI;kBAAvB,uDAAS;mBAAC,8DAAO;;;;;;;;;;;;;;AEpDpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AACwC;AAC1C;AAEV;AACY;AAC5B;AAMa;AACoC;AAMO;AACL;AACmC;AAEtC;AACG;;;;;;;;;;;;;;;;;;;;;;;;;;IChBxD,iFAAyE;IAAA,uDAAiB;IAAA,4DAAa;;;IAAtD,oFAAuB;IAAC,0DAAiB;IAAjB,kFAAiB;;;IAE9F,4EACI;IAAA,uIACJ;IAAA,4DAAY;;;IAShB,4EACI;IAAA,wIACJ;IAAA,4DAAY;;;IACZ,4EACI;IAAA,mIACJ;IAAA,4DAAY;;;IAOZ,4EACI;IAAA,qIACJ;IAAA,4DAAY;;;IACZ,4EACI;IAAA,6HACJ;IAAA,4DAAY;;;IAOJ,iFAAmG;IAAA,uDAAwB;IAAA,4DAAa;;;IAApE,2FAA8B;IAAC,0DAAwB;IAAxB,yFAAwB;;;IAE/H,4EACI;IAAA,6IACJ;IAAA,4DAAY;;;;IASZ,4FAEQ;IADA,6WAA4B,WAAW,KAAE;IACzC;IAAA,+EAAkC;IAAA,gEAAK;IAAA,4DAAW;IAC1D;IAAA,4DAAwB;;;IAGxB,4EACI;IAAA,8IACJ;IAAA,4DAAY;;;;IASZ,4FAEQ;IADA,8WAA4B,SAAS,KAAE;IACvC;IAAA,+EAAkC;IAAA,gEAAK;IAAA,4DAAW;IAC1D;IAAA,4DAAwB;;;;IAUhC,6EAA2G;IAAjC,iVAAgC;IAAC,8DAAG;IAAA,4DAAS;;;;IACvH,6EAA+G;IAApC,oVAAmC;IAAC,iEAAM;IAAA,4DAAS;;;IAW1H,yEAAwF;IAAA,+EAAmB;IAAA,4DAAK;;;IAChH,yEAAqE;IAAA,uDAA2C;IAAA,4DAAK;;;IAAhD,0DAA2C;IAA3C,4GAA2C;;;IAIhH,yEAAwF;IAAA,6EAAiB;IAAA,4DAAK;;;IAC9G,yEAAqE;IAAA,uDAAmC;IAAA,4DAAK;;;IAAxC,0DAAmC;IAAnC,oGAAmC;;;IAIxG,yEAAuF;IAAA,gFAAqB;IAAA,4DAAK;;;;IAE7G,wEAAgN;IAA3G,qgBAA0G;IAAC,uDAAqC;IAAA,4DAAI;;;IAAzC,0DAAqC;IAArC,sGAAqC;;;IACzP,uEAAmD;IAAA,uDAAqC;IAAA,4DAAO;;;IAA5C,0DAAqC;IAArC,sGAAqC;;;IAFxF,yEACI;IAAA;IAAA,0HAAgN;IACpN;IAAA,+HAAmD;IAA4C,4DAAK;;;IAD7F,0DAA2C;IAA3C,2GAA2C;IAC5C,0DAA4C;IAA5C,4GAA4C;;;IAIlD,yEAAuF;IAAA,2EAAgB;IAAA,4DAAK;;;IAC5G,yEAAqE;IAAA,uDAAwC;IAAA,4DAAK;;;IAA7C,0DAAwC;IAAxC,yGAAwC;;;IAI7G,yEAAuF;IAAA,qEAAU;IAAA,4DAAK;;;IACtG,yEAAiD;IAAA,uDAA+B;IAAA,4DAAK;;;IAApC,0DAA+B;IAA/B,gGAA+B;;;IAIhF,yEAAuF;IAAA,mEAAQ;IAAA,4DAAK;;;IACpG,yEAAqE;IAAA,uDAA6B;IAAA,4DAAK;;;IAAlC,0DAA6B;IAA7B,8FAA6B;;;IAIlG,yEAAuF;IAAA,2EAAgB;IAAA,4DAAK;;;IAC5G,yEAAqE;IAAA,uDAA6C;IAAA,4DAAK;;;IAAlD,0DAA6C;IAA7C,8GAA6C;;;IAIlH,yEAAwE;IAAA,iEAAK;IAAA,4DAAK;;;;IAClF,yEACE;IAAA;IAAA,+EAAwH;IAA7C,4ZAA4C;IAAC,+DAAI;IAAA,4DAAW;IACzI;IAAA,4DAAK;;;;IADoB,0DAAmD;IAAnD,wHAAmD;;;IAH9E,4EACE;IAAA;IAAA,sIAAwE;IACxE;IAAA,sIACE;IAEJ;IAAA,qEAAe;;;IAGb,yEAAwE;IAAA,mEAAO;IAAA,4DAAK;;;;IACpF,yEACE;IAAA;IAAA,+EAAqH;IAA1C,yZAAyC;IAAC,iEAAM;IAAA,4DAAW;IACxI;IAAA,4DAAK;;;;IADoB,0DAAmD;IAAnD,wHAAmD;;;IAH9E,4EACE;IAAA;IAAA,sIAAwE;IACxE;IAAA,sIACE;IAEJ;IAAA,qEAAe;;;IAGb,yEAAuE;IAAA,qEAAU;IAAA,4DAAK;;;;IACpC,+EAAoI;IAA1C,8cAAyC;IAAC,gEAAK;IAAA,4DAAW;;;IAAtM,yEAAkD;IAAA,wIAAoI;IAAgB,4DAAK;;;;IAAzG,0DAAyC;IAAzC,+GAAyC;;;IAI3I,yEAAuE;IAAA,gEAAK;IAAA,4DAAK;;;;IACjF,yEAAiD;IAAA,+EAAuF;IAAvC,sYAAsC;IAAC,uEAAY;IAAA,4DAAW;IAAA,4DAAK;;;IAGtK,oEAAiE;;;IACjE,oEAAuE;;;IACvE,yEACE;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAC/C;IAAA,4DAAK;;;ADhIhB,MAAM,0BAA0B;IA0DrC,YAAoB,EAAe,EACzB,cAA6B,EAC7B,SAAsB,EACtB,yBAAmD,EACnD,uBAA+C,EAC/C,kBAAqC,EACrC,uBAA8C,EAC/C,MAAiB,EACjB,UAAsB;QARX,OAAE,GAAF,EAAE,CAAa;QACzB,mBAAc,GAAd,cAAc,CAAe;QAC7B,cAAS,GAAT,SAAS,CAAa;QACtB,8BAAyB,GAAzB,yBAAyB,CAA0B;QACnD,4BAAuB,GAAvB,uBAAuB,CAAwB;QAC/C,uBAAkB,GAAlB,kBAAkB,CAAmB;QACrC,4BAAuB,GAAvB,uBAAuB,CAAuB;QAC/C,WAAM,GAAN,MAAM,CAAW;QACjB,eAAU,GAAV,UAAU,CAAY;QAhE/B,qBAAgB,GAAG,2DAAW,CAAC,oBAAoB,CAAC;QAGpD,6BAAwB,GAAiB,EAAE,CAAC;QAE5C,kBAAa,GAAY,KAAK,CAAC;QAC/B,iBAAY,GAAY,IAAI,CAAC;QAC7B,kBAAa,GAAY,KAAK,CAAC;QAE/B,cAAS,GAAY,KAAK,CAAC;QAC3B,mBAAc,GAAY,KAAK,CAAC;QAChC,cAAS,GAAG,KAAK,CAAC;QAOlB,gBAAW,GAAG,EAAE,CAAC;QAGjB,mBAAc,GAAG,OAAO,CAAC;QAEzB,gCAA2B,GAAG,KAAK,CAAC;QACpC,0BAAqB,GAAY,KAAK,CAAC;QACvC,+BAA0B,GAAY,KAAK,CAAC;QAE5C,iBAAY,GAAG,IAAI,0FAAwB,EAAE,CAAC;QAG9C,mCAA8B,GAAgC,EAAE,CAAC;QAKjE,YAAO,GAAG,IAAI,IAAI,EAAE,CAAC;QACrB,8BAAyB,GAAG,IAAI,IAAI,EAAE,CAAC;QACvC,8BAAyB,GAAG,IAAI,IAAI,EAAE,CAAC;QAEvC,mBAAc,GAAG,mBAAmB,CAAC;QAMrC,kBAAa,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE;QAqB5D,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;QAExC,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE;YAC5D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACtF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC;aAC7E,QAAQ,CAAC;QACV,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,uBAAuB,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAC9F,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAG,IAAI,CAAC,WAAW,IAAI,iBAAiB,EAAC;gBACvC,IAAI,CAAC,SAAS,GAAG,kBAAkB,CAAC;gBACpC,IAAG,IAAI,CAAC,YAAY,IAAI,sBAAsB,EAAC;oBAC7C,IAAI,CAAC,SAAS,GAAG,aAAa;iBAC/B;aACF;iBACG;gBACF,IAAI,CAAC,SAAS,GAAG,kBAAkB,CAAC;aACrC;QAEH,CAAC,CAAC,CAAC;QACL,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,uBAAuB,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE;YAE/F,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;gBACtB,IAAI,CAAC,gCAAgC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACtD,IAAI,CAAC,eAAe,EAAE,CAAC;aACxB;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,WAAW,KAAK,iBAAiB;YACxC,IAAI,CAAC,cAAc,GAAG,mBAAmB,CAAC;aACvC;YACH,IAAI,IAAI,CAAC,YAAY,IAAI,sBAAsB;gBAC7C,IAAI,CAAC,cAAc,GAAG,oBAAoB,CAAC;;gBAE3C,IAAI,CAAC,cAAc,GAAG,iBAAiB,CAAC;SAC3C;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,+BAA+B,EAAE,CAAC;IACzC,CAAC;IAED,mBAAmB;QACjB,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE;YAC1B,IAAI,CAAC,gBAAgB,GAAG,CAAC,uBAAuB,EAAE,eAAe,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,WAAW,EAAE,SAAS,EAAE,yBAAyB,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;YACvM,OAAO,IAAI,CAAC,gBAAgB,CAAC;SAC9B;aACI;YACH,IAAI,CAAC,gBAAgB,GAAG,CAAC,uBAAuB,EAAE,eAAe,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,WAAW,EAAE,SAAS,EAAE,yBAAyB,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;YACrL,OAAO,IAAI,CAAC,gBAAgB,CAAC;SAC9B;IACH,CAAC;IAED,mBAAmB;QACjB,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnE,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,wCAAwC;QAC9E,IAAI,CAAC,yBAAyB,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACvD,IAAI,CAAC,yBAAyB,GAAG,IAAI,IAAI,EAAE,CAAC;QAC5C,IAAI,CAAC,aAAa,GAAG,IAAI,wDAAS,CAAC;YACjC,cAAc,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC3D,MAAM,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,yDAAU,CAAC,QAAQ,CAAC;SACpD,CAAC,CAAC;IACL,CAAC;IAED,SAAS,CAAC,OAAiC;QAEzC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED,YAAY;QACV,sBAAsB;QACtB,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YAC1C,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACxC,qBAAqB,EAAE,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ;oBAClD,yDAAU,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC,CAAC;YACjE,aAAa,EAAE,CAAC,EAAE,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;YAC5E,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACxC,OAAO,EAAE,CAAC,IAAI,CAAC;YACf,uBAAuB,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;SACrD,CAAC;IACJ,CAAC;IAED,eAAe;QACb,6BAA6B;QAC7B,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC;aACzE,QAAQ,CAAC;QACZ,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,CACzB,cAAc,CAAC,iCAAiC,CAAC,CAClD,CAAC,UAAU,CAAC;QACb,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QAEvB,wCAAwC;QACxC,oEAAoE;QACpE,IAAI,QAAQ,IAAI,EAAE,IAAI,UAAU,GAAG,CAAC,EAAE;YACpC,IAAI,CAAC,uBAAuB;iBACzB,eAAe,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC;iBACrD,SAAS,CAAC,CAAC,GAAmB,EAAE,EAAE;gBACjC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;oBAClB,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBACd,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;4BACrB,KAAK,EAAE,CAAC,CAAC,WAAW;4BACpB,KAAK,EAAE,CAAC,CAAC,SAAS;yBACnB,CAAC,CAAC;wBAEH,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS;4BACrD,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,eAAe,IAAI,IAAI,CAAC,CAAC,CAAC,mCAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;wBAC5G,IACE,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS;4BAC7B,CAAC,CAAC,YAAY,IAAI,SAAS,EAC3B;4BACA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;yBACvB;oBACH,CAAC,CAAC,CAAC;oBACH,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;wBACtB,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC;4BACrC,SAAS,EAAE,IAAI,CAAC,SAAS;yBAC1B,CAAC,CAAC;wBACH,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;qBAC5B;iBACF;YACH,CAAC,CAAC;gBACF,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;SAChB;IACH,CAAC;IAGD,gCAAgC,CAAC,SAAiB;QAEhD,8CAA8C;QAC9C,IAAI,SAAS,GAAG,CAAC,EAAE;YAEjB,IAAI,CAAC,qBAAqB,GAAG,IAAI,KAAK,EAA4B,CAAC;YACnE,IAAI,CAAC,yBAAyB;iBAC3B,gCAAgC,CAAC,SAAS,CAAC;iBAC3C,SAAS,CAAC,CAAC,GAA+B,EAAE,EAAE;gBAE7C,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;oBAClB,IAAI,CAAC,qBAAqB,GAAG,GAAG,CAAC;oBACjC,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAChC,CAAC,CAA2B,EAAE,EAAE;wBAC9B,IAAI,CAAC,CAAC,QAAQ,IAAI,IAAI;4BACpB,CAAC,CAAC,kBAAkB,GAAG,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,eAAe,CAAC;;4BAE3D,CAAC,CAAC,kBAAkB,GAAG,CAAC,CAAC;wBAC3B,CAAC,CAAC,SAAS;4BACT,CAAC,CAAC,SAAS,IAAI,IAAI;gCACjB,CAAC,CAAC,mCAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;gCAC1C,CAAC,CAAC,IAAI,CAAC;wBACX,CAAC,CAAC,OAAO;4BACP,CAAC,CAAC,OAAO,IAAI,IAAI;gCACf,CAAC,CAAC,mCAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;gCACxC,CAAC,CAAC,IAAI,CAAC;oBACb,CAAC,CACF,CAAC;iBACH;gBACD,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;gBACrE,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBACjC,IAAI,CAAC,UAAU,CAAC,mBAAmB,GAAG,CAAC,IAAS,EAAE,YAAoB,EAAU,EAAE;oBAChF,IAAI,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,QAAQ,EAAE;wBAC1C,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,iBAAiB,EAAE,CAAC;qBAC/C;oBAED,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC;gBAC5B,CAAC,CAAC;YACJ,CAAC,CAAC;gBACF,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;SAChB;IACH,CAAC;IAEO,+BAA+B;QACrC,sDAAsD;QACtD,IAAI,CAAC,kBAAkB,CAAC,wBAAwB,EAAE,CAAC,SAAS,CAC1D,CAAC,GAAyB,EAAE,EAAE;YAC5B,IAAI,CAAC,wBAAwB,GAAG,EAAE,CAAC;YACnC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC;gBACjC,KAAK,EAAE,yBAAyB;gBAChC,KAAK,EAAE,IAAI;aACZ,CAAC,CAAC;YACH,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBACtB,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC;oBACjC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC;oBACzC,KAAK,EAAE,OAAO,CAAC,sBAAsB;iBACtC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,EACD,KAAK,CAAC,EAAE;YACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,+CAA+C,EAAE,GAAG,EAAE;gBACxE,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAC,CAAC,aAAa,CAAC;gBAC1B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CACF,CAAC;IACJ,CAAC;IAGD,UAAU,CAAC,GAAQ,EAAE,SAAS;QAC5B,IAAG,SAAS,IAAE,WAAW,EAAC;YACxB,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,CAAC;SACtD;QACD,IAAG,SAAS,IAAE,SAAS,EAAC;YACtB,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC;SACpD;IACH,CAAC;IAED,OAAO,CAAC,KAAW;QACjB,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YACjC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,qBAAqB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAChF,CAAC;IAED,oBAAoB;QAClB,6BAA6B;QAC7B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE;YACrC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,SAAS;gBACzC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI;oBACjD,CAAC,CAAC,mCAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,CAC1D,YAAY,CACb;oBACD,CAAC,CAAC,IAAI,CAAC;YACX,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,OAAO;gBACvC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI;oBAC/C,CAAC,CAAC,mCAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CACxD,YAAY,CACb;oBACD,CAAC,CAAC,IAAI,CAAC;YACX,IACE,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAC9B,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,SAAS,CAC5C,EACD;gBAEA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iFAAiF,EAAE,GAAG,EAAE;oBAC1G,QAAQ,EAAE,IAAI;oBACd,8BAA8B;oBAC9B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,OAAO;aACR;YACD,IACE,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI;gBACnD,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,EACjD;gBAEA,IACE,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAC9B,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,SAAS,EAC3C,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAC1C,EACD;oBAEA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mFAAmF,EAAE,GAAG,EAAE;wBAC5G,QAAQ,EAAE,IAAI;wBACd,+BAA+B;wBAC/B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACH,OAAO;iBACR;aACF;YACD,IAAI,CAAC,yBAAyB;iBAC3B,qBAAqB,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC;iBACxD,SAAS,CAAC,GAAG,CAAC,EAAE;gBACf,IAAI,GAAG,IAAI,CAAC,EAAE;oBACZ,IAAI,CAAC,gCAAgC,CACnC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,SAAS,CAC5C,CAAC;oBACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;wBAClE,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACH,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;oBAC9C,IAAI,CAAC,KAAK,EAAE,CAAC;iBACd;qBACI,IAAI,GAAG,IAAI,CAAC,CAAC,EAAE;oBAClB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oCAAoC,EAAE,GAAG,EAAE;wBAC7D,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAC,CAAC,aAAa,CAAC;wBAC1B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACH,OAAO;iBACR;gBACD,gBAAgB;YAClB,CAAC,CAAC;gBACF,KAAK,CAAC,EAAE;oBACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE;wBAC5D,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,aAAa,CAAC;wBAC3B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;gBACL,CAAC,CAAC;YACJ,gBAAgB;SACjB;;YAAM,OAAO;IAChB,CAAC;IAGD,uBAAuB;QACrB,gCAAgC;QAChC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE;YACrC,IAAI,CAAC,iBAAiB,GAAG,IAAI,0FAAwB,EAAE,CAAC;YACxD,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,CAAC;YAC1F,IAAI,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC;YACtE,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,qBAAqB,CAAC;YACvG,IAAI,CAAC,iBAAiB,CAAC,aAAa,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,aAAa,CAAC;YACvF,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,uBAAuB,CAAC;YAC3G,IAAI,CAAC,iBAAiB,CAAC,SAAS;gBAC9B,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI;oBACjD,CAAC,CAAC,mCAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,CAC1D,YAAY,CACb;oBACD,CAAC,CAAC,IAAI,CAAC;YACX,IAAI,CAAC,iBAAiB,CAAC,OAAO;gBAC5B,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI;oBAC/C,CAAC,CAAC,mCAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CACxD,YAAY,CACb;oBACD,CAAC,CAAC,IAAI,CAAC;YAEX,IACE,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAC9B,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,iBAAiB,CAAC,SAAS,CACjC,EACD;gBACA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iFAAiF,EAAE,GAAG,EAAE;oBAC1G,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,OAAO;aACR;YACD,IACE,IAAI,CAAC,iBAAiB,CAAC,SAAS,IAAI,IAAI;gBACxC,IAAI,CAAC,iBAAiB,CAAC,OAAO,IAAI,IAAI,EACtC;gBACA,IACE,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAC9B,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAChC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAC/B,EACD;oBACA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,qDAAqD,EAAE,GAAG,EAAE;wBAC9E,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACH,OAAO;iBACR;aACF;YACD,IAAI,IAAI,CAAC,YAAY,IAAI,SAAS,EAAE;gBAClC,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;aACzD;iBACI;gBACH,IAAI,IAAI,CAAC,sBAAsB,CAAC,KAAK,IAAI,IAAI,EAAE;oBAC7C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;oBAE1B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+FAAsB,EAAE;wBACzD,YAAY,EAAE,IAAI;wBAClB,WAAW,EAAE,IAAI;wBACjB,IAAI,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,mCAAmC,EAAE;qBAChF,CAAC,CAAC;oBAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;wBACzC,IAAI,CAAC,YAAY,EAAE,CAAC;oBACtB,CAAC,CAAC,CAAC;iBAEJ;qBACI;oBACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,EAAE,GAAG,EAAE;wBAC1C,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;aACF;YAAA,CAAC;YACF,IAAI,CAAC,KAAK,EAAE,CAAC;SACd;IACH,CAAC;IAED,YAAY;QACV,+BAA+B;QAC/B,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACxD,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0BAA0B,CAAC,iBAAiB;QAE1C,4CAA4C;QAC5C,IAAI,CAAC,yBAAyB;aAC3B,uBAAuB,CAAC,iBAAiB,CAAC;aAC1C,SAAS,CAAC,GAAG,CAAC,EAAE;YACf,IAAI,GAAG,IAAI,CAAC,EAAE;gBACZ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,2CAA2C,EAAE,GAAG,EAAE;oBACpE,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,IAAI,CAAC,gCAAgC,CACnC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,SAAS,CAC5C,CAAC;gBAEF,IAAI,CAAC,KAAK,EAAE,CAAC;aACd;iBAAM,IAAI,GAAG,IAAI,CAAC,EAAE;gBACnB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,sCAAsC,EAAE,GAAG,EAAE;oBAC/D,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;iBACI,IAAI,GAAG,IAAI,CAAC,CAAC,EAAE;gBAClB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oCAAoC,EAAE,GAAG,EAAE;oBAC7D,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAC,CAAC,aAAa,CAAC;oBAC1B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;iBACI,IAAI,GAAG,IAAI,CAAC,CAAC,EAAE;gBAClB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,2BAA2B,EAAE,GAAG,EAAE;oBACpD,QAAQ,EAAE,IAAI;oBACd,8BAA8B;oBAC9B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;QACH,CAAC,CAAC;YACF,KAAK,CAAC,EAAE;gBACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,sCAAsC,EAAE,GAAG,EAAE;oBAC/D,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAC,CAAC,aAAa,CAAC;oBAC1B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACL,CAAC,CAAC;IACN,CAAC;IAED,4BAA4B,CAAC,SAAiB,EAAE,MAAc;QAC5D,IAAI,CAAC,8BAA8B,GAAG,EAAE,CAAC;QACzC,IAAI,CAAC,0BAA0B,GAAG,KAAK,CAAC;QACxC,IAAI,CAAC,uBAAuB,CAAC,4BAA4B,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,sBAAyC,EAAE,EAAE;YAC3H,IAAI,CAAC,8BAA8B,GAAG,sBAAsB,CAAC,oBAAoB,CAAC;YAClF,IAAI,sBAAsB,EAAE;gBAC1B,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC;gBACvC,IAAI,sBAAsB,CAAC,oBAAoB,IAAI,sBAAsB,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE;oBACzG,IAAI,CAAC,8BAA8B,GAAG,sBAAsB,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,KAAK,MAAM,CAAC;iBAChI;aACF;iBACI;gBACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE;oBAC5C,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAC,CAAC,aAAa,CAAC;oBAC1B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;YACD,IAAI,CAAC,4BAA4B,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;YAChG,IAAI,CAAC,4BAA4B,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC7D,IAAI,CAAC,4BAA4B,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACnD,IAAI,CAAC,4BAA4B,CAAC,mBAAmB,GAAG,CAAC,IAAS,EAAE,YAAoB,EAAU,EAAE;gBAClG,IAAI,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,QAAQ,EAAE;oBAC1C,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,iBAAiB,EAAE,CAAC;iBAC/C;gBAED,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC;YAC5B,CAAC,CAAC;YACF,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mIAAiC,EAAE;gBACpE,YAAY,EAAE,IAAI;gBAClB,WAAW,EAAE,IAAI;gBACjB,MAAM,EAAE,OAAO;gBACf,KAAK,EAAE,OAAO;gBACd,IAAI,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,4BAA4B,EAAE,SAAS,EAAE,IAAI,CAAC,4BAA4B,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,4BAA4B,CAAC,IAAI,EAAE;aAC9J,CAAC,CAAC;YACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YAC3C,CAAC,CAAC,CAAC;QAEL,CAAC,CAAC;YACA,CAAC,KAAU,EAAE,EAAE;gBACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;oBACxD,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAC,CAAC,aAAa,CAAC;oBAC1B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACL,CAAC,CAAC;IACN,CAAC;IAGD,eAAe;QACb,IAAI,IAAI,CAAC,YAAY,IAAI,SAAS,IAAI,IAAI,CAAC,YAAY,IAAI,SAAS;YAClE,OAAO,IAAI,CAAC;QACd,IAAI,IAAI,CAAC,YAAY,IAAI,sBAAsB,IAAI,IAAI,CAAC,WAAW,IAAI,iBAAiB;YACtF,OAAO,IAAI,CAAC;QAEd,OAAO,KAAK,CAAC;IACf,CAAC;IAED,oBAAoB,CAAC,OAAiC;QACpD,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,SAAS,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,OAAO,CAAC,QAAQ,IAAI,KAAK;YAC1F,OAAO,IAAI,CAAC,aAAa,CAAC;QAC5B,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IAEjC,CAAC;IAED,eAAe,CAAC,eAAyC;QAEvD,sCAAsC;QACtC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;QAC/B,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;IAExC,CAAC;IAED,eAAe,CAAC,eAAyC;QAEvD,wCAAwC;QACxC,8GAA8G;QAC9G,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC;YACrC,qBAAqB,EAAE,eAAe,CAAC,qBAAqB;YAC5D,aAAa,EAAE,eAAe,CAAC,aAAa;YAE5C,uBAAuB,EAAE,CAAC,eAAe,CAAC,uBAAuB,CAAC,GAAG,EAAE;YACvE,SAAS,EACP,eAAe,CAAC,SAAS,IAAI,IAAI;gBAC/B,CAAC,CAAC,IAAI,IAAI,CAAC,mCAAM,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBAClE,CAAC,CAAC,IAAI;YACV,OAAO,EACL,eAAe,CAAC,OAAO,IAAI,IAAI;gBAC7B,CAAC,CAAC,IAAI,IAAI,CAAC,mCAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBAChE,CAAC,CAAC,IAAI;SACX,CAAC,CAAC;QACH,IAAI,eAAe,CAAC,uBAAuB,IAAI,CAAC,EAAE;YAChD,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC;gBACrC,uBAAuB,EAAE,CAAC;aAC3B,CAAC;SACH;QACD,IAAI,CAAC,mBAAmB,GAAG,eAAe,CAAC;QAC3C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,aAAa,CAAC;IACnE,CAAC;IAED,YAAY;QACV,IAAI,IAAI,CAAC,YAAY,IAAI,SAAS,IAAI,IAAI,CAAC,YAAY,IAAI,sBAAsB;YAC/E,OAAO,KAAK,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAED,cAAc,CAAC,OAAiC;QAC9C,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,SAAS,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,OAAO,CAAC,QAAQ,IAAI,KAAK,EAAE;YAC5F,OAAO,KAAK,CAAC;SACd;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,YAAY,CAAC,OAAiC;QAC5C,IAAI,OAAO,CAAC,eAAe,GAAG,CAAC,EAAE;YAC/B,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC;YACxC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+FAAsB,EAAE;gBACzD,YAAY,EAAE,IAAI;gBAClB,WAAW,EAAE,IAAI;gBACjB,IAAI,EAAE,EAAE,OAAO,EAAE,6BAA6B,EAAE,OAAO,EAAE,gEAAgE,EAAE;aAC5H,CAAC,CAAC;YACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YAC3C,CAAC,CAAC,CAAC;YACH,OAAO;SACR;QACD,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;QAE5B,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,IAAI,IAAI,EAAE;YACrC,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,mCAAM,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;YAC5E,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;gBAC5B,cAAc,EAAE,IAAI;aACrB,CAAC;SACH;QACD,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;QAGlC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oGAAuB,EAAE;YAC1D,YAAY,EAAE,IAAI;YAClB,WAAW,EAAE,IAAI;YACjB,IAAI,EAAE,EAAE,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE;SACnG,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;YAChE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,GAAC,MAAM,CAAC,MAAM,CAAC;YAC9C,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAClC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,wBAAwB;QAEtB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,IAAI,IAAI,EAAE;YAEnD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,GAAG,mCAAM,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAC/G,IAAI,CAAC,yBAAyB,CAAC,wBAAwB,CAAC,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;gBACvL,IAAI,GAAG,GAAG,CAAC,EAAE;oBACX,IAAI,CAAC,KAAK,EAAE,CAAC;oBACb,IAAI,CAAC,gCAAgC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBACtD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,0CAA0C,EAAE,GAAG,EAAE;wBACnE,QAAQ,EAAE,IAAI;wBACd,iCAAiC;wBACjC,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBAEJ;gBACD,IAAI,GAAG,IAAI,CAAC,CAAC,EAAE;oBACb,IAAI,CAAC,KAAK,EAAE,CAAC;oBACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gDAAgD,EAAE,GAAG,EAAE;wBACzE,QAAQ,EAAE,IAAI;wBACd,+BAA+B;wBAC/B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;YACH,CAAC,EACC,CAAC,KAAK,EAAE,EAAE;gBACR,IAAI,CAAC,KAAK,EAAE,CAAC;gBACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,EAAE,GAAG,EAAE;oBAC1C,QAAQ,EAAE,IAAI;oBACb,UAAU,EAAC,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;SAEN;IACH,CAAC;IAED,WAAW;QACT,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,CAAC;QACzC,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC;QACxC,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE,CAAC;IAC9C,CAAC;IAED,YAAY,CAAC,OAAO;QAClB,+BAA+B;QAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6FAAqB,EAAE;YACxD,YAAY,EAAE,IAAI;YAClB,WAAW,EAAE,IAAI;YACjB,IAAI,EAAE,EAAC,OAAO,EAAE,4CAA4C,EAAE;SAC/D,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,MAAM;gBACR,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IAEL,CAAC;IAGD,iBAAiB,CAAC,OAAO;QACvB,kCAAkC;QAClC,IAAI,CAAC,yBAAyB;aAC3B,uBAAuB,CAAC,OAAO,CAAC,mBAAmB,CAAC;aACpD,SAAS,CAAC,CAAC,GAAY,EAAE,EAAE;YAC1B,IAAI,GAAG,IAAI,IAAI,EAAE;gBACf,IAAI,CAAC,gCAAgC,CACnC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,SAAS,CAC5C,CAAC;gBACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,8BAA8B,EAAE,GAAG,EAAE;oBACvD,QAAQ,EAAE,IAAI;oBACd,iCAAiC;oBACjC,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;;gBACC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE;oBAC3C,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAC,CAAC,aAAa,CAAC;oBAC1B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACL,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC,CAAC,CAAC;IACP,CAAC;IAED,iBAAiB;QACf,IAAI,YAAY,GAAW,uBAAuB,CAAC;QACnD,IAAI,IAAI,CAAC,cAAc,IAAI,QAAQ,EAAC;YAClC,YAAY,GAAG,wBAAwB;SACxC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gGAAsB,EAAC;YACxD,YAAY,EAAE,IAAI;YAClB,WAAW,EAAE,IAAI;YACjB,IAAI,EAAC;gBACH,OAAO,EAAE,YAAY;aACtB;SACF,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAG,MAAM,EAAC;gBACR,IAAI,CAAC,KAAK,EAAE,CAAC;aACd;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,KAAK;QACH,sBAAsB;QACtB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;QAC9B,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC;YAChC,6FAA6F;YAC7F,SAAS,EAAE,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,KAAK;SAC9D,CAAC,CAAC;QACH,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC;YAChC,6FAA6F;YAC7F,SAAS,EAAE,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,KAAK;SAC9D,CAAC,CAAC;IACL,CAAC;IAED,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAC3D;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YACrE,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SAElC;IACH,CAAC;;oGA5yBU,0BAA0B;0GAA1B,0BAA0B;wEAqD1B,wEAAY;wEACZ,8DAAO;kEAEP,iEAAkB;;;;;;;;QC5F/B,2EACI;QAAA;QAAA,mFACI;QAAA;QAAA,0EACI;QAAA;QAAA,yEACI;QAAA;QAAA,yEACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,oEAAQ;QAAA,4DAAY;QAC/B;QAAA,iFACI;QADiF,6JAAY,gFAAwE,IAAC;QACtK;QAAA,sIAAyE;QAC7E;QAAA,4DAAa;QACb;QAAA,oIACI;QAER;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACV;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,qFAAyB;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QAAA,4DAAY;QAClF;QAAA,4EACJ;QAD0I,wJAAS,mBAAe,IAAC;QAA/J,4DACJ;QAAA;QAAA,oIACI;QAEJ;QAAA,oIACI;QAEJ;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,4EAAgB;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QAAA,4DAAY;QACzE;QAAA,wEACJ;QAAA;QAAA,oIACI;QAEJ;QAAA,oIACI;QAEJ;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,4EAAgB;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QAAA,4DAAY;QACzE;QAAA,kFACI;QAAA;QAAA,sIAAmG;QACvG;QAAA,4DAAa;QACb;QAAA,oIACI;QAER;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACV;QAEI;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,8EAAkB;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QAAA,4DAAY;QAC3E;QAAA,6EACA;QADsK,gSAAS,UAAgB,IAAC;QAAhM,4DACA;QAAA;QAAA,6JAEQ;QAER;QAAA,wFAA2E;QAC3E;QAAA,uFAA4C;QAC5C;QAAA,oIACI;QAER;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACV;QAAA,4DAAM;QACF;QAAA,2EACA;QAAA;QAAA,2EACI;QAAA;QAAA,sFACI;QAAA;QAAA,8EAAW;QAAA,6EAAgB;QAAA,4DAAY;QACvC;QAAA,8EACA;QAD6F,mSAAS,WAAc,IAAC;QAArH,4DACA;QAAA;QAAA,+JAEQ;QAER;QAAA,yFAAyE;QACzE;QAAA,wFAA0C;QAC9C;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACV;QAAA,4DAAM;QACN;QAAA,4EACI;QAAA;QAAA,+EACE;QADyB,oJAAS,uBAAmB,IAAC;QACtD;QAAA,6EAAU;QAAA,kEAAK;QAAA,4DAAW;QAAA,yDAC5B;QAAA,4DAAS;QACT;QAAA,iIAA2G;QAC3G;QAAA,iIAA+G;QACnH;QAAA,4DAAM;QACV;QAAA,4DAAO;QACX;QAAA,4DAAmB;QACvB;QAAA,4DAAW;QAEX;QAAA,iFACI;QAAA;QAAA,qFACI;QAAA;QAAA,4EACI;QAAA;QAAA,8EACI;QAAA;QAAA,8EACI;QAAA;QAAA,yHAAwF;QACxF;QAAA,yHAAqE;QACvE;QAAA,qEAAe;QAEf;QAAA,8EACE;QAAA;QAAA,yHAAwF;QACxF;QAAA,yHAAqE;QACvE;QAAA,qEAAe;QAEf;QAAA,8EACE;QAAA;QAAA,yHAAuF;QACvF;QAAA,yHACI;QAEN;QAAA,qEAAe;QAEf;QAAA,8EACE;QAAA;QAAA,yHAAuF;QACvF;QAAA,yHAAqE;QACvE;QAAA,qEAAe;QAEf;QAAA,8EACE;QAAA;QAAA,yHAAuF;QACvF;QAAA,yHAAiD;QACnD;QAAA,qEAAe;QAEf;QAAA,8EACE;QAAA;QAAA,yHAAuF;QACvF;QAAA,yHAAqE;QACvE;QAAA,qEAAe;QAEf;QAAA,8EACE;QAAA;QAAA,yHAAuF;QACvF;QAAA,yHAAqE;QACvE;QAAA,qEAAe;QAEf;QAAA,6IACE;QAMF;QAAA,6IACE;QAMF;QAAA,8EACE;QAAA;QAAA,yHAAuE;QACvE;QAAA,yHAAkD;QACpD;QAAA,qEAAe;QAEf;QAAA,8EACE;QAAA;QAAA,yHAAuE;QACvE;QAAA,yHAAiD;QACnD;QAAA,qEAAe;QAEf;QAAA,yHAA4D;QAC5D;QAAA,yHAAkE;QAClE;QAAA,yHACE;QAGR;QAAA,4DAAQ;QACZ;QAAA,4DAAM;QACN;QAAA,4EACI;QAAA;QAAA,iFAAqE;QACvE;QAAA,4DAAM;QACZ;QAAA,4DAAmB;QACvB;QAAA,4DAAW;QACX;;;;QA3Kc,0DAAoC;QAApC,iGAAoC;QAGd,0DAA+B;QAA/B,uGAA+B;QAEc,0DAA2B;QAA3B,wFAA2B;QACpE,0DAAoC;QAApC,qFAAoC;QAEzC,0DAAqE;QAArE,kIAAqE;QAQpE,0DAA+B;QAA/B,uGAA+B;QAGpC,0DAAgF;QAAhF,8IAAgF;QAGhF,0DAA+E;QAA/E,6IAA+E;QAM1E,0DAA+B;QAA/B,uGAA+B;QAEuE,0DAAS;QAAT,kEAAS;QACpH,0DAAwE;QAAxE,sIAAwE;QAGxE,0DAAuE;QAAvE,qIAAuE;QAMlE,0DAA+B;QAA/B,uGAA+B;QAG3B,0DAAuD;QAAvD,iGAAuD;QAE5D,0DAAkF;QAAlF,gJAAkF;QAQjF,0DAA+B;QAA/B,uGAA+B;QAE3B,0DAAiC;QAAjC,8FAAiC;QAChB,0DAA8C;QAA9C,4GAA8C;QAI9C,0DAAiB;QAAjB,oEAAiB;QAEvC,0DAAqE;QAArE,kIAAqE;QAQpE,0DAA+B;QAA/B,uGAA+B;QAE3B,0DAAyB;QAAzB,+EAAyB;QACR,0DAA4C;QAA5C,0GAA4C;QAI5C,0DAAe;QAAf,qEAAe;QAO5B,2DAC5B;QAD4B,8GAC5B;QACqD,0DAAoB;QAApB,kFAAoB;QACpB,0DAAqB;QAArB,mFAAqB;QAS7B,2DAAyB;QAAzB,sFAAyB;QAsCtD,2DAAyB;QAAzB,uFAAyB;QAOzB,0DAAyB;QAAzB,uFAAyB;QAiBpB,2DAAwC;QAAxC,sGAAwC;QAC/C,0DAAqD;QAArD,uGAAqD;QAQxD,0DAAqC;QAArC,mJAAqC;;6FDrInD,0BAA0B;cALtC,uDAAS;eAAC;gBACT,QAAQ,EAAE,yBAAyB;gBACnC,WAAW,EAAE,sCAAsC;gBACnD,SAAS,EAAE,CAAC,sCAAsC,CAAC;aACpD;44BAsD4C,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACH,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YAEL,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;;;;;;;;;;;;;;AE5F/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0D;AACU;AACK;AAExC;AACwB;;;;;;;;;;;;;;ICGrC,4FAEQ;IADA,uWAA4B,gBAAgB,KAAE;IAC9C;IAAA,+EAAkC;IAAA,gEAAK;IAAA,4DAAW;IAC1D;IAAA,4DAAwB;;;IAGxB,4EACI;IAAA,oIACJ;IAAA,4DAAY;;;IASZ,4EAAiF;IAAA,0EAAe;IAAA,4DAAY;;ADZzH,MAAM,uBAAuB;IASlC,YAAoB,SAAgD,EAC1D,cAA6B,EAC7B,SAAsB,EACE,IAAS;QAHvB,cAAS,GAAT,SAAS,CAAuC;QAC1D,mBAAc,GAAd,cAAc,CAAe;QAC7B,cAAS,GAAT,SAAS,CAAa;QACE,SAAI,GAAJ,IAAI,CAAK;QAT3C,qBAAgB,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QACpD,cAAS,GAAG,KAAK,CAAC;QAElB,oBAAe,GAAG,IAAI,IAAI,EAAE,CAAC;QAC7B,oBAAe,GAAG,IAAI,IAAI,EAAE,CAAC;IAKoB,CAAC;IAElD,QAAQ;QACN,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAED,UAAU,CAAC,GAAQ,EAAE,SAAS;QAC5B,IAAG,SAAS,IAAE,gBAAgB,EAAC;YAC7B,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,KAAK,EAAE,CAAC;SAClD;IACH,CAAC;IACD,mBAAmB;QACjB,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnE,IAAI,CAAC,eAAe,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,wCAAwC;QAClF,IAAI,CAAC,aAAa,GAAG,IAAI,wDAAS,CAAC;YACjC,cAAc,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC5D,MAAM,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;SACrD,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE;YACpC,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,mCAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;YAC3E,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;gBAC5B,cAAc,EAAE,IAAI;aACrB,CAAC;SACH;IACH,CAAC;IAED,SAAS;QACP,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,IAAE,IAAI,EAC9C;YACE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,GAAG,IAAI,IAAI,CAAC,mCAAM,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;YACvH,IACE,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAC9B,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAC1B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,CACxC,EACD;gBACA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mFAAmF,EAAE,GAAG,EAAE;oBAC5G,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,OAAO;aACV;YAEH,IAAG,IAAI,CAAC,aAAa,CAAC,KAAK;gBAC1B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SAC/C;IACP,CAAC;;8FAlEY,uBAAuB,keAYxB,wEAAe;uGAZd,uBAAuB;;QCbpC,wEAAqB;QAAA,sFAA2B;QAAA,4DAAK;QACjD;QAAA,qFACA;QAAA;QAAA,0EACI;QAAA;QAAA,yEACI;QAAA;QAAA,yEACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,4EAAgB;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QAAA,4DAAY;QACzE;QAAA,4EACA;QADiK,4RAAS,UAAqB,IAAC;QAAhM,4DACA;QAAA;QAAA,yJAEQ;QAER;QAAA,uFAAgF;QAChF;QAAA,sFAAiD;QACjD;QAAA,kIACI;QAER;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,4DAAM;QACN;QAAA,0EACA;QAAA;QAAA,0EACI;QAAA;QAAA,qFACA;QAAA;QAAA,6EAAW;QAAA,kEAAM;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QAAA,4DAAY;QAC3D;QAAA,2EAAuD;QACvD;QAAA,kIAAiF;QACrF;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACV;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,0EACA;QAAA;QAAA,wEAAO;QAAA,uGAA0C;QAAA,4DAAO;QAC5D;QAAA,4DAAM;QACN;QAAA,4DAAM;QAEN;QAAA,0EACI;QAAA;QAAA,2EACE;QAAA;QAAA,8EACE;QADuC,gJAAS,eAAW,IAAC;QAC5D;QAAA,4EAAU;QAAA,iEAAK;QAAA,4DAAW;QAAA,kFAC5B;QAAA,4DAAS;QACT;QAAA,8EAAuE;QAAjB,gJAAS,UAAM,IAAC;QAAC,gEAAI;QAAA,4DAAS;QAEtF;QAAA,4DAAM;QACR;QAAA,4DAAM;QACZ;QAAA,4DAAO;QACP;QAAA,4DAAqB;QACzB;;;QA5CU,0DAA2B;QAA3B,wFAA2B;QAGL,0DAA+B;QAA/B,uGAA+B;QAE3B,0DAAgC;QAAhC,8EAAgC;QACf,0DAA0C;QAA1C,wGAA0C;QAI1C,0DAAsB;QAAtB,oEAAsB;QAE5C,0DAA0F;QAA1F,gKAA0F;QAQzF,0DAA+B;QAA/B,uGAA+B;QAGhC,0DAAqE;QAArE,uIAAqE;;6FDZvF,uBAAuB;cALnC,uDAAS;eAAC;gBACT,QAAQ,EAAE,sBAAsB;gBAChC,WAAW,EAAE,mCAAmC;gBAChD,SAAS,EAAE,CAAC,mCAAmC,CAAC;aACjD;;sBAaI,oDAAM;uBAAC,wEAAe;;;;;;;;;;;;;;AEzB3B;AAAA;AAAA;AAAA;AAAA;AAAkD;AACkC;;;;AAS7E,MAAM,sBAAsB;IAEjC,YACmC,IAAS,EAClC,SAA+C;QADtB,SAAI,GAAJ,IAAI,CAAK;QAClC,cAAS,GAAT,SAAS,CAAsC;QAHzD,YAAO,GAAW,yBAAyB;QAIvC,IAAG,IAAI,EAAC;YACV,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC;SACzC;IACL,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,aAAa;QACX,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;;4FAhBU,sBAAsB,kEAGvB,wEAAe;sGAHd,sBAAsB;QCVnC,qFACC;QAAA;QAAA,oEACC;QAAA,uDACD;QAAA,4DAAI;QACL;QAAA,4DAAqB;QACrB;QAAA,wFACC;QAAA;QAAA,4EAAgF;QAAxC,8IAAS,oBAAgB,IAAC;QAAc,8DAAG;QAAA,4DAAS;QAC5F;QAAA,6EAAuD;QAAA,kEAAM;QAAA,4DAAS;QACvE;QAAA,4DAAqB;;QANnB,0DACD;QADC,+FACD;;6FDOY,sBAAsB;cALlC,uDAAS;eAAC;gBACT,QAAQ,EAAE,gBAAgB;gBAC1B,WAAW,EAAE,iCAAiC;gBAC5C,SAAS,EAAE,CAAC,gCAAgC,CAAC;aAChD;;sBAII,oDAAM;uBAAC,wEAAe;;;;;;;;;;;;;;AEb3B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwF;AACf;AACxC;AACmC;AACX;;;;;;;;;;;;;;;ICWjD,4FAEE;IADA,mWAA4B,eAAe,KAAE;IAC7C;IAAA,+EAAkC;IAAA,gEAAK;IAAA,4DAAW;IACpD;IAAA,4DAAwB;;;IAGxB,4EACE;IAAA,kGACF;IAAA,4DAAY;;;IACZ,4EACE;IAAA,uDACF;IAAA,4DAAY;;;IADV,0DACF;IADE,4HACF;;;IAWA,4EACE;IAAA,oGACF;IAAA,4DAAY;;AD3Bb,MAAM,mBAAmB;IAS9B,YACU,SAA4C,EACpB,IAAS,EACjC,SAAsB;QAFtB,cAAS,GAAT,SAAS,CAAmC;QACpB,SAAI,GAAJ,IAAI,CAAK;QACjC,cAAS,GAAT,SAAS,CAAa;QAPzB,cAAS,GAAG,KAAK,CAAC;QACzB,qBAAgB,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QACpD,wBAAmB,GAAG,IAAI,IAAI,EAAE,CAAC;QACjC,sBAAiB,GAAG,IAAI,IAAI,EAAE,CAAC;QAM7B,IAAI,CAAC,gBAAgB,GAAG,IAAI,wDAAS,CAAC;YACpC,aAAa,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,yDAAU,CAAC,QAAQ,CAAC;YACzD,OAAO,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,yDAAU,CAAC,QAAQ,CAAC;SACpD,CAAC,CAAC;IACL,CAAC;IAID,QAAQ;QACN,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACxC,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE;YACpC,IAAI,IAAI,GAAG,IAAI,IAAI,CACjB,mCAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CACtD,CAAC;YACF,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC;gBAC/B,aAAa,EAAE,IAAI;aACpB,CAAC,CAAC;SACJ;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;QACzC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;QACrC,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,EAAE,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,EAAE,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC1E,IAAI,CAAC,mBAAmB,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,iBAAiB,GAAG,IAAI,IAAI,EAAE,CAAC;IACtC,CAAC;IAED,UAAU,CAAC,GAAQ,EAAE,SAAS;QAC5B,IAAG,SAAS,IAAE,eAAe,EAAC;YAC5B,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,KAAK,EAAE,CAAC;SACpD;IACH,CAAC;IAED,aAAa,CAAC,SAAc;QAC1B,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;QAEhC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YACtD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,4CAA4C,EAAE,GAAG,EAAE;gBACrE,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACH,IAAI,CAAC,qBAAqB,GAAG,4CAA4C,CAAC;YAC1E,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,OAAO,KAAK,CAAC;SACd;QACD,IACE,IAAI,CAAC,qBAAqB,IAAI,EAAE;YAChC,IAAI,CAAC,qBAAqB,IAAI,IAAI,EAClC;YACA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;IACH,CAAC;IACD,SAAS;QACP,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,OAAO;SACR;QACD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACpD,CAAC;IAED,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;;sFA/EU,mBAAmB,0MAWpB,wEAAe;mGAXd,mBAAmB;;;;;;;QCZhC,yEACE;QAAA;QAAA,wEAAqB;QAAA,0EAAe;QAAA,4DAAK;QACzC;QAAA,wEAAqB;QAAA,uDAA8B;QAAA,4DAAK;QAC1D;QAAA,4DAAM;QACN;QAAA,qFAEE;QAAA;QAAA,2EAEE;QAAA;QAAA,0EACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,gFACT;QAAA,2EAA2B;QAAA,8DAAC;QAAA,4DAAO;QACrC;QAAA,4DAAY;QACZ;QAAA,4EAEA;QADE,2JAAc,+BAA2B,IAAC,gOAAU,UAAoB,IAA9B;QAD5C,4DAEA;QAAA;QAAA,qJAEE;QAEF;QAAA,uFAA+E;QAC/E;QAAA,oFAAgE;QAChE;QAAA,8HACE;QAEF;QAAA,8HACE;QAGJ;QAAA,4DAAiB;QAEnB;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,+EACT;QAAA,2EAA2B;QAAA,8DAAC;QAAA,4DAAO;QACrC;QAAA,4DAAY;QACZ;QAAA,+EAAqJ;QACrJ;QAAA,8HACE;QAEJ;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QAEN;QAAA,2EACE;QAAA;QAAA,8EACE;QADyB,4IAAS,eAAW,IAAC;QAC9C;QAAA,4EAAU;QAAA,iEAAK;QAAA,4DAAW;QAAA,0EAC5B;QAAA,4DAAS;QACT;QAAA,8EACuC;QADe,4IAAS,UAAM,IAAC;QAC/B,oEAAQ;QAAA,4DAAS;QAE1D;QAAA,4DAAM;QACR;QAAA,4DAAO;QAET;QAAA,4DAAqB;;;QAnDE,0DAA8B;QAA9B,wGAA8B;QAI7C,0DAA8B;QAA9B,2FAA8B;QAGhB,0DAA+B;QAA/B,uGAA+B;QAI7B,0DAA2B;QAA3B,wFAA2B;QAEV,0DAA4C;QAA5C,0GAA4C;QAI5C,0DAAqB;QAArB,oEAAqB;QAE3C,0DAAkE;QAAlE,gIAAkE;QAGlE,0DAA6B;QAA7B,2FAA6B;QAQ1B,0DAA+B;QAA/B,uGAA+B;QAKlC,2DAA4D;QAA5D,0HAA4D;QAWvE,2DAAoC;QAApC,iGAAoC;;6FDpC/B,mBAAmB;cAL/B,uDAAS;eAAC;gBACT,QAAQ,EAAE,aAAa;gBACvB,WAAW,EAAE,8BAA8B;gBAC3C,SAAS,EAAE,CAAC,6BAA6B,CAAC;aAC3C;;sBAYI,oDAAM;uBAAC,wEAAe;2GASe,QAAQ;kBAA/C,uDAAS;mBAAC,UAAU,EAAE,EAAC,MAAM,EAAE,KAAK,EAAC;;;;;;;;;;;;;;AEhCxC;AAAA;AAAA;AAAA;AAAA;AAA0D;AACe;;;;AAQlE,MAAM,qBAAqB;IAEhC,YAAoB,SAA8C,EAChC,IAAS;QADvB,cAAS,GAAT,SAAS,CAAqC;QAChC,SAAI,GAAJ,IAAI,CAAK;IAC/B,CAAC;IAEb,QAAQ;IACR,CAAC;IAGD,SAAS;QACP,gCAAgC;QAChC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,SAAS;QACL,iCAAiC;QACjC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;;0FAlBY,qBAAqB,0MAGtB,wEAAe;qGAHd,qBAAqB;QCTlC,yEACE;QAAA;QAAA,wEACE;QAAA,uDACF;QAAA,4DAAK;QACP;QAAA,4DAAM;QAEN;QAAA,wFACI;QAAA;QAAA,yEACE;QAAA;QAAA,qEAAG;QAAA,wDAAgB;QAAA,4DAAI;QACvB;QAAA,4DAAM;QACJ;QAAA,0EACI;QAAA;QAAA,0EACE;QAAA;QAAA,6EACE;QADyB,8IAAS,eAAW,IAAC;QAC9C,gGACF;QAAA,4DAAS;QACT;QAAA,6EAA4E;QAAtB,8IAAS,eAAW,IAAC;QAAC,+DAAG;QAAA,4DAAS;QAE1F;QAAA,4DAAM;QACR;QAAA,4DAAM;QAChB;QAAA,4DAAqB;;QAjBjB,0DACF;QADE,oGACF;QAKO,0DAAgB;QAAhB,iFAAgB;;6FDCZ,qBAAqB;cALjC,uDAAS;eAAC;gBACT,QAAQ,EAAE,mBAAmB;gBAC7B,WAAW,EAAE,gCAAgC;gBAC7C,SAAS,EAAE,CAAC,gCAAgC,CAAC;aAC9C;;sBAII,oDAAM;uBAAC,wEAAe;;;;;;;;;;;;;;AEZ3B;AAAA;AAAA;AAAA;AAAA;AAA0D;AACe;;;;AAOlE,MAAM,sBAAsB;IAEjC,YAAoB,SAA+C,EACjC,IAAS;QADvB,cAAS,GAAT,SAAS,CAAsC;QACjC,SAAI,GAAJ,IAAI,CAAK;IAAM,CAAC;IAElD,QAAQ;IACR,CAAC;IAED,SAAS;QACP,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;;4FAVU,sBAAsB,0MAGvB,wEAAe;sGAHd,sBAAsB;QCRnC,wEAAyC;QAAA,uDAAgB;QAAA,4DAAK;QAC9D;QAAA,qFACI;QAAA;QAAA,yEACI;QAAA,uDACA;QAAA,4DAAM;QAEN;QAAA,gEAEA;QAAA;QAAA,0EACI;QAAA;QAAA,0EACI;QAAA;QAAA,6EAA4E;QAAtB,+IAAS,eAAW,IAAC;QAAC,gFAC9E;QAAA,4DAAS;QACf;QAAA,4DAAM;QACN;QAAA,4DAAM;QACd;QAAA,4DAAqB;QACrB;;QAfyC,0DAAgB;QAAhB,iFAAgB;QAGjD,0DACA;QADA,8GACA;;6FDIK,sBAAsB;cALlC,uDAAS;eAAC;gBACT,QAAQ,EAAE,oBAAoB;gBAC9B,WAAW,EAAE,iCAAiC;gBAC9C,SAAS,EAAE,CAAC,iCAAiC,CAAC;aAC/C;;sBAII,oDAAM;uBAAC,wEAAe;;;;;;;;;;;;;;AEX3B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAkD;AAGY;AAII;AAG1B;AACtB;AAE4B;AAI2B;AACL;AACL;;;;;;;;;;;;;;;;;;;IClB7D,4EAA8I;IAArC,wVAAoC;IAAC,iEAAM;IAAA,4DAAS;;;IAA/E,0FAA0B;;;IAD1G,yEACE;IAAA;IAAA,mIAA8I;IAChJ;IAAA,4DAAM;;;IADI,0DAAoC;IAApC,uGAAoC;;;;IAE9C,yEACE;IAAA;IAAA,4EAAyE;IAAjC,0UAAgC;IAAC,kEAAO;IAAA,4DAAS;IAC3F;IAAA,4DAAM;;;IAIN,yEACA;IAAA;IAAA,mFACE;IAAA;IAAA,sFACI;IAAA;IAAA,6FACI;IAAA;IAAA,kFACE;IAAA,2GACF;IAAA,4DAAkB;IAClB;IAAA,yFACA;IAAA;IAAA,+EAAoB;IAAA,oEAA2D;IAAA,4DAAW;IAC5F;IAAA,4DAAwB;IACxB;IAAA,4DAA6B;IACrC,uEACA;IAAA,4DAAsB;IACtB;IAAA,4DAAgB;IAChB;IAAA,4DAAM;;;;IA0BU,4EAAqI;IAAnC,2UAAkB;IAAiB,iEAAM;IAAA,4DAAS;;;;IAvBpK,yEAEE;IAAA;IAAA,sFACI;IAAA;IAAA,6FACI;IAAA;IAAA,kFACE;IAAA,2GACF;IAAA,4DAAkB;IAClB;IAAA,wFACM;IAAA;IAAA,gFAA6C;IAAA,wEAAY;IAAA,4DAAW;IACtE;IAAA,4DAAwB;IACjC;IAAA,4DAA6B;IAClC;IAIM;IAAA,2EACI;IAAA;IAME;IAAA,2EACI;IAAA;IAAA,uIAAqI;IAEzI;IAAA,4DAAM;IACV;IAAA,2EAEE;IAAA;IAAA,2EACI;IAAA;IAAA,2EACI;IAAA;IAAA,0EAAyD;IAAA,4EAAgB;IAAA,4DAAK;IAElF;IAAA,4DAAM;IAGJ;IAAA,2EAEI;IAAA;IAAA,2EAA6B;IAAA,yEAAmE;IAAhE,oUAA0B;IAAsC,wDAA2C;IAAA,4DAAI;IAAA,4DAAM;IACvJ;IAAA,4DAAM;IACd;IAAA,4DAAM;IAEF;IAIF;IAAA,2EACI;IAAA;IAAA,2EACI;IAAA;IAAA,0EAAyD;IAAA,uGAA2C;IAAA,4DAAK;IAE7G;IAAA,4DAAM;IAEN;IAAA,2EACI;IAAA;IAAA,2EAA4B;IAAA,yEAAqE;IAAlE,sUAA4B;IAAsC,wDAAgD;IAAA,4DAAI;IAAA,4DAAM;IAE7J;IAAA,4DAAM;IACd;IAAA,4DAAM;IACN;IAAA,2EACI;IAAA;IAAA,2EACI;IAAA;IAAA,0EAA0D;IAAA,0FAA8B;IAAA,4DAAK;IAEjG;IAAA,4DAAM;IACN;IAAA,2EACI;IAAA;IAAA,sEAAoF;IACxF;IAAA,4DAAM;IAChB;IAAA,4DAAM;IACF;IAAA,4DAAM;IAEN;IAAA,2EACA;IAAA;IAAA,2EACI;IAAA;IAAA,0EAA8C;IAAA,yFAA6B;IAAA,4DAAK;IACnF;IAAA,4DAAM;IACP;IAAA,4DAAM;IAER;IAAA,2EACI;IAAA;IAAA,2EACI;IAAA;IAAA,2EACE;IAAA;IAAA,2EAA8C;IAAA,gIAAoE;IAAA,4DAAM;IAE1H;IAAA,4DAAM;IACN;IAAA,2EACI;IAAA;IAAA,sEAA2F;IAC/F;IAAA,4DAAM;IAEN;IAAA,4DAAM;IACN;IAAA,4EACI;IAAA;IAAA,4EACE;IAAA;IAAA,4EAA+C;IAAA,yHAA4D;IAAA,4DAAM;IAEnH;IAAA,4DAAM;IACN;IAAA,4EACI;IAAA;IAAA,uEAA2F;IAC/F;IAAA,4DAAM;IACN;IAAA,4DAAM;IACN;IAAA,4EACI;IAAA;IAAA,4EACG;IAAA;IAAA,4EAA+C;IAAA,mIAAsE;IAAA,4DAAM;IAEzH;IAAA,4DAAM;IACN;IAAA,4EACG;IAAA;IAAA,uEAA4F;IAC/F;IAAA,4DAAM;IACjB;IAAA,4DAAM;IAChB;IAAA,4DAAM;IAER;IAAA,4EACE;IAAA;IAAA,4EACI;IAAA;IAAA,2EAA8C;IAAA,0IAA6E;IAAA,4DAAK;IACnI;IAAA,4DAAM;IACP;IAAA,4DAAM;IACJ;IAAA,4EACG;IAAA;IAAA,4EACG;IAAA;IAAA,4EACA;IAAA;IAAA,4EAA+C;IAAA,wFAA2B;IAAA,4DAAM;IAE7E;IAAA,4DAAM;IACN;IAAA,4EACG;IAAA;IAAA,uEAAoF;IACvF;IAAA,4DAAM;IACT;IAAA,4DAAM;IACN;IAAA,4EACI;IAAA;IAAA,4EACG;IAAA;IAAA,4EAA8C;IAAA,4EAAe;IAAA,4DAAM;IAE9D;IAAA,4DAAM;IACb;IAAA,4EACG;IAAA;IAAA,uEAAoF;IACvF;IAAA,4DAAM;IACb;IAAA,4DAAM;IACN;IAAA,4EACI;IAAA;IAAA,4EACG;IAAA;IAAA,4EAA8C;IAAA,gFAAmB;IAAA,4DAAM;IAElE;IAAA,4DAAM;IACN;IAAA,4EACI;IAAA;IAAA,uEAAuF;IAC3F;IAAA,4DAAM;IACpB;IAAA,4DAAM;IACN;IAAA,4EACE;IAAA;IAAA,4EACG;IAAA;IAAA,4EAA8C;IAAA,kFAAqB;IAAA,4DAAM;IAE3E;IAAA,4DAAM;IACN;IAAA,4EACG;IAAA;IAAA,uEAAyF;IAC5F;IAAA,4DAAM;IACb;IAAA,4DAAM;IACF;IAAA,4DAAM;IACN;IAWF;IAEA;IAAA,4EACA;IAAA;IAAA,4EACI;IAAA;IAAA,2EAA8C;IAAA,uFAA0B;IAAA,4DAAK;IAChF;IAAA,4DAAM;IACP;IAAA,4DAAM;IACV;IAAA,4EACI;IAAA;IAAA,4EACI;IAAA;IAAA,4EACG;IAAA;IAAA,4EAA8C;IAAA,gFAAmB;IAAA,4DAAM;IAElE;IAAA,4DAAM;IACb;IAAA,4EACG;IAAA;IAAA,uEAA4E;IAC/E;IAAA,4DAAM;IACb;IAAA,4DAAM;IACN;IAAA,4EACI;IAAA;IAAA,4EACG;IAAA;IAAA,4EAA8C;IAAA,4FAA+B;IAAA,4DAAM;IAE7E;IAAA,4DAAM;IACN;IAAA,4EACG;IAAA;IAAA,uEAAwF;IAC3F;IAAA,4DAAM;IAErB;IAAA,4DAAM;IACN;IAAA,4EACI;IAAA;IAAA,4EACG;IAAA;IAAA,4EAA8C;IAAA,4EAAe;IAAA,4DAAM;IAE9D;IAAA,4DAAM;IACN;IAAA,4EACI;IAAA;IAAA,uEAA8E;IAClF;IAAA,4DAAM;IACpB;IAAA,4DAAM;IACJ;IAAA,4DAAM;IAEN;IAAA,4EACA;IAAA;IAAA,4EACI;IAAA;IAAA,2EAA8C;IAAA,oFAAuB;IAAA,4DAAK;IAC7E;IAAA,4DAAM;IACP;IAAA,4DAAM;IACN;IAAA,4EACI;IAAA;IAAA,4EACI;IAAA;IAAA,4EACG;IAAA;IAAA,4EAA8C;IAAA,oFAAuB;IAAA,4DAAM;IAEtE;IAAA,4DAAM;IAClB;IAAA,4EACI;IAAA;IAAA,uEAA6E;IACjF;IAAA,4DAAM;IAER;IAAA,4DAAM;IAER;IAAA,4DAAM;IACJ;IAAA,4DAAM;IAEV;IAIF;IAAA,4DAAsB;IACtB;IAAA,4DAAM;;;IAtMmB,2DAAwE;IAAxE,oJAAwE;IAcmB,2DAA2C;IAA3C,+GAA2C;IAe1C,2DAAgD;IAAhD,oHAAgD;IAUvH,2DAAiD;IAAjD,+KAAiD;IAkBhD,2DAAuD;IAAvD,qLAAuD;IAUnD,2DAAuD;IAAvD,qLAAuD;IAS/C,2DAAwD;IAAxD,sLAAwD;IAiBlE,2DAAgD;IAAhD,8KAAgD;IAS/C,2DAAiD;IAAjD,+KAAiD;IAS3C,2DAAoD;IAApD,kLAAoD;IAShE,2DAAsD;IAAtD,oLAAsD;IA6BtD,2DAAyC;IAAzC,uKAAyC;IASnC,2DAAqD;IAArD,mLAAqD;IAUvD,2DAA2C;IAA3C,yKAA2C;IAiBnD,2DAA0C;IAA1C,wKAA0C;;;IAsB1E,+EAAgG;IAAA,uEAAY;IAAA,4DAAW;;;IACvH,8EAAuE;IAAA,mEAA2D;IAAA,4DAAW;;;IAM7I,0EACI;IAAA;IAAA,0EACI;IAAA;IAAA,0EACI;IAAA;IAAA,mFACE;IAAA;IAAA,2EACE;IAAA,uDACF;IAAA,4DAAO;IACT;IAAA,4DAAe;IAEnB;IAAA,4DAAM;IACN;IAAA,2EACI;IAAA;IAAA,sFACI;IAAA;IAAA,6EAAW;IAAA,oEAAQ;IAAA,4DAAY;IAC/B;IAAA,2EAAiG;IACrG;IAAA,4DAAiB;IACrB;IAAA,4DAAM;IACV;IAAA,4DAAM;IACV;IAAA,4DAAM;;;;IAdoB,0DAAiB;IAAjB,0EAAiB;IAE3B,0DACF;IADE,yKACF;IAKc,0DAA+B;IAA/B,2GAA+B;IAEZ,0DAAyB;IAAzB,sFAAyB;;;IAhB5E,mFACE;IAAA;IAAA,0EACE;IAAA;IACA;IAAA,0KACI;IAkBJ;IAAA,0EACI;IAAA;IAAA,wEAAO;IAAA,mEAAO;IAAA,4DAAQ;IACtB;IAAA,sFACI;IAAA;IAAA,6EAAW;IAAA,mEAAO;IAAA,4DAAY;IAC9B;IAAA,2EAAoG;IACxG;IAAA,4DAAiB;IACrB;IAAA,4DAAM;IAER;IAAA,4DAAM;IACR;IAAA,4DAAmB;;;;IA5BO,0DAA+D;IAA/D,mGAA+D;IAqBjE,0DAA+B;IAA/B,2GAA+B;IAEZ,0DAA4B;IAA5B,yFAA4B;;;IAMvE,mFACE;IAAA;IAAA,2EAAiC;IAAA,kGAAuC;IAAA,4DAAO;IACjF;IAAA,4DAAmB;;;IA5CrB,sFACE;IAAA;IAAA,6FACE;IAAA;IAAA,kFACE;IAAA,uDACF;IAAA,4DAAkB;IAClB;IAAA,wFACE;IAAA;IAAA,+JAAgG;IAChG;IAAA,iKAAuE;IACzE;IAAA,4DAAwB;IAC1B;IAAA,4DAA6B;IAC7B;IAAA,kLACE;IA+BF;IAAA,iLACE;IAGJ;IAAA,4DAAsB;;;IA3ChB,0DACF;IADE,oIACF;IAEY,0DAAkD;IAAlD,kHAAkD;IAClD,0DAAkD;IAAlD,kHAAkD;IAG9C,0DAAkD;IAAlD,kHAAkD;IAgClD,0DAAkD;IAAlD,kHAAkD;;;IA3CxE,sEACE;IAAA;IAAA,gKACE;IA8CJ;IAAA,4DAAM;;;IA/CiB,0DAAyB;IAAzB,yFAAyB;;ADhOzC,MAAM,2BAA2B;IAgCtC,YAAoB,sBAA8C,EACxD,QAAwB,EAAU,MAAc,EAChD,SAAsB,EACtB,qBAA4C,EAC5C,OAA0B,EAAU,MAAkB;QAJ5C,2BAAsB,GAAtB,sBAAsB,CAAwB;QACxD,aAAQ,GAAR,QAAQ,CAAgB;QAAU,WAAM,GAAN,MAAM,CAAQ;QAChD,cAAS,GAAT,SAAS,CAAa;QACtB,0BAAqB,GAArB,qBAAqB,CAAuB;QAC5C,YAAO,GAAP,OAAO,CAAmB;QAAU,WAAM,GAAN,MAAM,CAAY;QAnChE,kBAAa,GAAS,KAAK,CAAC;QAC5B,aAAQ,GAAS,KAAK,CAAC;QACvB,gBAAW,GAAS,KAAK,CAAC;QAC1B,wBAAmB,GAAG,KAAK,CAAC;QAG5B,aAAQ,GAAW,CAAC,CAAC;QACrB,iBAAY,GAAa,EAAE,CAAC;QAC5B,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QAI9C,0BAAqB,GAAG,EAAE,CAAC;QAI3B,cAAS,GAAY,KAAK,CAAC;QAI3B,aAAQ,GAAY,KAAK,CAAC;QAC1B,aAAQ,GAAY,KAAK,CAAC;QAC1B,iBAAY,GAAG,EAAE,CAAC;QAClB,qBAAgB,GAAG,2DAAW,CAAC,oBAAoB,CAAC;QACpD,cAAS,GAAuB,IAAI,GAAG,EAAE,CAAC;QAC1C,aAAQ,GAAS,EAAE,CAAC;QACpB,aAAQ,GAAY,KAAK,CAAC;QAUxB,IAAI,CAAC,oBAAoB,GAAC,IAAI,2EAAoB,EAAE,CAAC;QACvD,IAAI,CAAC,oBAAoB,GAAC,IAAI,2EAAoB,EAAE,CAAC;IAAC,CAAC;IAEvD,QAAQ;QAEN,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAChG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACvF,IAAI,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7E,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,mOAAmO;QACnO,0BAA0B;QAC1B,IAAI;QAEJ,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,sBAAsB,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAC7F,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC3B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,sBAAsB,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACvF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,uDAAuD;QACjF,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,sBAAsB,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAC3F,IAAI,IAAI,IAAI,CAAC;gBACX,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,eAAe,EAAE,CAAC,CAAE,4CAA4C;QACvE,CAAC,CAAC,CAAC;QAEH,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,IAAE,CAAC,EAAC,CAAC,EAAE,EAAC;YACnB,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC;SACxC;QACD,IAAI,CAAC,6BAA6B,EAAE,CAAC;IACvC,CAAC;IACD,sBAAsB;QACpB,IAAI,CAAC,gBAAgB,GAAG,IAAI,wDAAS,CAAC;YAEpC,eAAe,EAAG,IAAI,0DAAW,CAAC,IAAI,EAAE,yDAAU,CAAC,QAAQ,CAAC;SAC7D,CAAC;IACJ,CAAC;IACD,8BAA8B,CAAC,YAAoB;QACjD,IAAI,CAAC,qBAAqB,CAAC,gCAAgC,CAAC,YAAY,CAAC;aACtE,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,YAA4B,EAAC,EAAE;YAChD,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,YAAY,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC;gBACpC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,UAAU,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;aAC5E;QACH,CAAC,CAAC,CAAC,KAAK,CACR,KAAK,GAAE;YACL,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,0DAA0D,EAAE,GAAG,EAAE;gBACnF,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC;QACJ,CAAC,CAAC,CAAC;IACP,CAAC;IAED,6BAA6B;QAC3B,IAAI,CAAC,qBAAqB,CAAC,6BAA6B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE;aAClF,IAAI,CAAC,CAAC,QAAwB,EAAC,EAAE;YACjC,IAAI,CAAC,YAAY,GAAE,QAAQ,CAAC;YAC5B,KAAI,IAAI,UAAU,IAAI,IAAI,CAAC,YAAY,EAAC;gBACtC,IAAG,UAAU,KAAG,EAAE,IAAE,UAAU,KAAG,IAAI,IAAI,UAAU,CAAC,iBAAiB,KAAG,WAAW,EAAC;oBAClF,IAAI,CAAC,aAAa,GAAC,IAAI,CAAC;oBACxB,MAAM;iBACP;aACD;YACF,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAE;YACf,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,sFAAsF;YACtF,oBAAoB;YACpB,iCAAiC;YACjC,6BAA6B;YAC7B,MAAM;QACT,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,eAAe;QACb,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;YACtB,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACjD;IACH,CAAC;IACD,0BAA0B,CAAC,YAAoB;QAC7C,IAAI,CAAC,qBAAqB,CAAC,2BAA2B,CAAC,YAAY,CAAC,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,GAAwB,EAAG,EAAE;YAClH,IAAI,CAAC,oBAAoB,GAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACjC,IAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,KAAG,EAAE,EAAC,yCAAyC;aACpF;gBACE,IAAI,CAAC,QAAQ,GAAC,KAAK,CAAC;gBACpB,IAAI,CAAC,WAAW,GAAC,IAAI,CAAC;gBACtB,IAAI,CAAC,aAAa,GAAC,IAAI,CAAC;aACzB;iBACG;gBACF,IAAI,CAAC,QAAQ,GAAC,IAAI,CAAC;gBACnB,IAAI,CAAC,WAAW,GAAC,KAAK,CAAC;aACxB;QACH,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAE;YACd,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,sFAAsF;YACtF,oBAAoB;YACpB,iCAAiC;YACjC,6BAA6B;YAC7B,MAAM;QACT,CAAC,CAAC,CAAC;QAAA,CAAC;IACL,CAAC;IAED,cAAc;QAEZ,IAAI,CAAC,QAAQ,GAAC,gBAAgB,CAAC;QAE9B,IAAI,CAAC,qBAAqB,CAAC,gCAAgC,CAAC,IAAI,CAAC,QAAQ,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;YAC7G,IAAI,IAAI,GAAO,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;YAEjE,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,gBAAgB,EAAE;gBACzD,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBACxC,OAAO;aACR;YACD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAE/C,iDAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,CAAC;QACrE,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC;YACzC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAClE,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,QAAQ,GAAC,qBAAqB,CAAC;QAEpC,IAAI,CAAC,qBAAqB,CAAC,gCAAgC,CAAC,IAAI,CAAC,QAAQ,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;YAC7G,IAAI,IAAI,GAAO,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;YAEjE,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,gBAAgB,EAAE;gBACzD,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBACxC,OAAO;aACR;YACD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAE/C,iDAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,oBAAoB,CAAC,uBAAuB,CAAC,CAAC;QAC1E,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC;YACzC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAElE,CAAC;IAED,MAAM;QAEL,kFAAkF;QAClF,kEAAkE;QAClE,sBAAsB;QACtB,mCAAmC;QACnC,+BAA+B;QAC/B,+CAA+C;QAC/C,8BAA8B;QAC9B,QAAQ;QACR,wBAAwB;QACxB,0DAA0D;QAC1D,wBAAwB;QACxB,qCAAqC;QACrC,iCAAiC;QACjC,UAAU;QACV,QAAQ;QAEA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oFAAwB,EAAE;YAC3D,YAAY,EAAE,IAAI;YAClB,WAAW,EAAE,IAAI;YACjB,IAAI,EAAE,EAAC,aAAa,EAAC,IAAI,CAAC,oBAAoB,CAAC,aAAa,EAAC;SAE9D,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YAGzC,IAAG,MAAM,CAAC,aAAa,EAAC;gBAEtB,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;gBAElE,uBAAuB;gBACvB,IAAI,SAAS,GAAG,IAAI,2EAAoB,EAAE,CAAC;gBAC3C,SAAS,CAAC,SAAS,GAAC,IAAI,CAAC,SAAS,CAAC;gBACnC,SAAS,CAAC,aAAa,GAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,aAAa,CAAE;gBACnE,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,CACrD,CAAC,GAAO,EAAE,EAAE;oBACV,IAAG,GAAG,GAAC,CAAC,EAAC;wBACP,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,0BAA0B,EAAE,GAAG,EAAE;4BAC/C,QAAQ,EAAE,IAAI;4BACd,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;wBACH,IAAI,CAAC,eAAe,EAAE,CAAC;qBAE5B;yBACG;wBACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;4BACxD,QAAQ,EAAE,IAAI;4BACd,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;qBACJ;gBACF,CAAC,CAAC,CAAC;aACL;QACH,CAAC,CAAC,CAAC;QACF,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,oBAAoB,CAAC;QAEnD,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC;YAE/B,eAAe,EAAG,IAAI,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC;SACtE,CAAC;IAGN,CAAC;IAER,oBAAoB;QAClB,YAAY;QACZ,IAAI,OAAO,GAAG,IAAI,CAAC;QAEnB,KAAI,IAAI,UAAU,IAAI,IAAI,CAAC,YAAY,EAAC;YACvC,IAAG,UAAU,KAAG,IAAI,IAAI,UAAU,CAAC,iBAAiB,KAAG,WAAW,EAAC;gBACjE,OAAO,GAAG,KAAK,CAAC;gBAChB,MAAM;aACP;SACD;QACD,IAAG,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAC;YAC3B,IAAI,iBAAiB,GAAG;gBACtB,WAAW,EAAE,IAAI,CAAC,SAAS;gBAC3B,QAAQ,EAAE,SAAS;gBACnB,YAAY,EAAE,IAAI,CAAC,KAAK;aACxB;YAEH,IAAI,CAAC,qBAAqB,CAAC,0BAA0B,CAAC,iBAAiB,CAAC,CAAC,SAAS,EAAE;iBAClF,IAAI,CAAC,GAAE,EAAE;gBACR,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uBAAuB,EAAE,GAAG,EAAE;oBAChD,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,GAAG,GAAE;oBACjC,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAE;gBACd,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,wBAAwB,EAAE,GAAG,EAAE;oBACjD,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;SACJ;aAAM;YACL,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,6DAA6D,EAAE,GAAG,EAAE;gBACtF,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;SACJ;IACF,CAAC;IAED,wBAAwB;QACtB,YAAY;QACZ,IAAI,OAAO,GAAG,IAAI,CAAC;QAEnB,KAAI,IAAI,UAAU,IAAI,IAAI,CAAC,YAAY,EAAC;YACvC,IAAG,UAAU,KAAG,IAAI,IAAI,UAAU,CAAC,iBAAiB,KAAG,WAAW,EAAC;gBACjE,OAAO,GAAG,KAAK,CAAC;gBAChB,MAAM;aACP;SACD;QACD,IAAG,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAC;YAC3B,IAAI,iBAAiB,GAAG;gBACtB,WAAW,EAAE,IAAI,CAAC,SAAS;gBAC3B,UAAU,EAAE,IAAI,CAAC,QAAQ;gBACzB,YAAY,EAAE,IAAI,CAAC,KAAK;aACxB;YAED,IAAI,CAAC,qBAAqB,CAAC,wBAAwB,CAAC,iBAAiB,CAAC,CAAC,SAAS,EAAE;iBAChF,IAAI,CAAC,GAAG,GAAE;gBACT,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,wBAAwB,EAAE,GAAG,EAAE;oBACjD,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,GAAG,GAAE;oBACjC,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,CAAC,CAAC,CAAC;gBAAA,CAAC;YACN,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAE;gBACd,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,yBAAyB,EAAE,GAAG,EAAE;oBAClD,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;SACL;aAAK;YACL,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,6DAA6D,EAAE,GAAG,EAAE;gBACtF,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;SACH;IAEH,CAAC;IAEF,MAAM;QACJ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,iBAAiB;QACf,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;YACtB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACrC;IACH,CAAC;IACO,cAAc,CAAC,gBAAwB;QAC7C,IAAI,CAAC,sBAAsB;aACxB,qBAAqB,CAAC,gBAAgB,CAAC;aACvC,SAAS,EAAE,CAAC,IAAI,CACf,CAAC,WAAyB,EAAE,EAAE;YAC5B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;YAC/B,IAAI,CAAC,YAAY,GAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;YAChD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,CAAC,CAAC,CAAC,KAAK,CACR,KAAK,CAAC,EAAE;YACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;gBAClE,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CACF,CAAC;IACN,CAAC;;sGAxWU,2BAA2B;2GAA3B,2BAA2B;QC1BxC,uHACE;QAEF;QAAA,uHACE;QAGF;QAAA,iFAA2C;QAE3C;QAAA,wHACA;QAeA;QAAA,gFACA;QAAA;QAAA,4HAEE;QA6NF;QAAA,yHACE;QAgDF;QAAA,4DAAgB;QAEhB;QACA;;QA7S+B,yGAAyC;QAGzC,0DAAoC;QAApC,oGAAoC;QAMjD,0DAAmB;QAAnB,iFAAmB;QAiBnB,0DAAgB;QAAhB,8EAAgB;QA+N7B,0DAAuC;QAAvC,qFAAuC;;6FD/N/B,2BAA2B;cALvC,uDAAS;eAAC;gBACT,QAAQ,EAAE,0BAA0B;gBACpC,WAAW,EAAE,uCAAuC;gBACpD,SAAS,EAAE,CAAC,uCAAuC,CAAC;aACrD;;;;;;;;;;;;;;AEzBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAgF;AACqB;AACzB;AAEf;AAGM;AAKrB;AAGwB;AACR;AACtB;AACvB;AAImE;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICN9C,0EAAe;;;IAgBvC,4EAAsG;IAAA,oGACtG;IAAA,4DAAY;;;IAQsB,yEAAgF;IAAA,iEAAK;IAAA,4DAAK;;;IAC1F,yEAAwD;IAAA,uDAAQ;IAAA,4DAAK;;;IAAb,0DAAQ;IAAR,qFAAQ;;;IAGhE,yEAAgF;IAAA,0EAAc;IAAA,4DAAK;;;IACnG,yEAAwC;IAAA,uDAAY;IAAA,4DAAK;;;IAAjB,0DAAY;IAAZ,uFAAY;;;IAG1D,yEAAgE;IAAA,qEAAS;IAAA,4DAAK;;;;IAC9E,yEACQ;IAAA;IAAA,+EAA8D;IAApD,2UAA0B;IAA0B,gFAAqB;IAAA,4DAAW;IACtG;IAAA,4DAAK;;;IAGC,yEAAgE;IAAA,mEAAO;IAAA,4DAAK;;;;IAC5E,yEACQ;IAAA;IAAA,+EAA8D;IAApD,2UAA0B;IAA0B,iEAAM;IAAA,4DAAW;IACvF;IAAA,4DAAK;;;IAEb,oEAA4D;;;IAC5D,oEAAkE;;;IAClE,yEACQ;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAC/C;IAAA,4DAAK;;;IAaX,qGAA0C;;;IAepE,4EACE;IAAA,iIAAoD;IAAA,4DAAY;;;IAQhC,yEAAgF;IAAA,iEAAK;IAAA,4DAAK;;;IAC1F,yEAAwD;IAAA,uDAAQ;IAAA,4DAAK;;;IAAb,0DAAQ;IAAR,qFAAQ;;;IAGhE,yEAAgF;IAAA,0EAAc;IAAA,4DAAK;;;IACnG,yEAAwC;IAAA,uDAAY;IAAA,4DAAK;;;IAAjB,0DAAY;IAAZ,uFAAY;;;IAG1D,yEAAgE;IAAA,qEAAS;IAAA,4DAAK;;;;IAC9E,yEACQ;IAAA;IAAA,+EAA+D;IAArD,8UAA4B;IAAyB,gFAAqB;IAAA,4DAAW;IACvG;IAAA,4DAAK;;;IAGC,yEAAgE;IAAA,mEAAO;IAAA,4DAAK;;;;IAC5E,yEACQ;IAAA;IAAA,+EAAgE;IAAtD,8UAA4B;IAA0B,iEAAM;IAAA,4DAAW;IACzF;IAAA,4DAAK;;;IAEb,oEAA4D;;;IAC5D,oEAAkE;;;IAClE,yEACQ;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAC7C;IAAA,4DAAK;;;IAcb,wFAA6B;;;IAOvD,uEACG;IAAA,iGAAsC;IAAA,4DAAO;;;IAU1B,uFAA4B;;;IAOtC,uEACG;IAAA,mIAAwE;IAAA,4DAAO;;;IAUlF,uEACG;IAAA,+HAAoE;IAAA,4DAAO;;;IAS9E,uEACG;IAAA,qIAA0E;IAAA,4DAAO;;;IAW5E,uIAA4E;;;IAOhF,uEACG;IAAA,8FAAmC;IAAA,4DAAO;;;IAS7C,uEACG;IAAA,yEAAc;IAAA,4DAAO;;;IASxB,uEACG;IAAA,uFAA4B;IAAA,4DAAO;;;IAStC,uEACG;IAAA,wFAA6B;IAAA,4DAAO;;;IAWvB,oFAAyB;;;IAO7B,uEACG;IAAA,sFAA2B;IAAA,4DAAO;;;IASrC,uEACG;IAAA,kGAAuC;IAAA,4DAAO;;;IASjD,uEACG;IAAA,kFAAuB;IAAA,4DAAO;;;IAazC,iFAAsB;;;IAMlC,uEACG;IAAA,0FAA+B;IAAA,4DAAO;;ADvQxD,MAAM,6BAA6B;IA6DxC,YAAoB,OAAe,EAAU,GAAsB,EACzD,UAAkC,EAClC,SAAsB,EACvB,UAAsB,EACrB,qBAA4C,EAC5C,UAAsB,EAAU,OAA0B,EAC1D,MAAkB;QANR,YAAO,GAAP,OAAO,CAAQ;QAAU,QAAG,GAAH,GAAG,CAAmB;QACzD,eAAU,GAAV,UAAU,CAAwB;QAClC,cAAS,GAAT,SAAS,CAAa;QACvB,eAAU,GAAV,UAAU,CAAY;QACrB,0BAAqB,GAArB,qBAAqB,CAAuB;QAC5C,eAAU,GAAV,UAAU,CAAY;QAAU,YAAO,GAAP,OAAO,CAAmB;QAC1D,WAAM,GAAN,MAAM,CAAY;QA3D5B,iBAAY,GAAG,8EAAY,CAAC;QAC5B,uBAAkB,GAAW,EAAE,CAAC;QAChC,uBAAkB,GAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QACvC,yBAAoB,GAAW,EAAE,CAAC;QAClC,yBAAoB,GAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QAQzC,+BAA+B;QAC/B,+BAA+B;QAC/B,aAAQ,GAAG,KAAK,CAAC;QACjB,gBAAW,GAAW,CAAC,CAAC;QACxB,uBAAkB,GAAU,EAAE,CAAC;QAC/B,yBAAoB,GAAU,EAAE,CAAC;QAEjC,eAAU,GAAU,EAAE,CAAC;QACvB,iBAAY,GAAU,EAAE,CAAC;QAGzB,qBAAgB,GAAG,IAAI,0EAAkB,EAAwB,CAAC;QAClE,uBAAkB,GAAG,IAAI,0EAAkB,EAAwB,CAAC;QACpE,wBAAmB,GAAY,KAAK,CAAC;QACrC,yBAAoB,GAAY,KAAK,CAAC;QACtC,gBAAW,GAAY,KAAK,CAAC;QAC7B,gBAAW,GAAY,KAAK,CAAC;QAE7B,aAAQ,GAAY,KAAK,CAAC;QAC1B,cAAS,GAAY,KAAK,CAAC;QAU3B,qBAAgB,GAAa;YAC3B,KAAK;YACL,cAAc;YACd,UAAU;YACV,QAAQ;SACT,CAAC;QAMF,aAAQ,GAAY,IAAI,CAAC;QAYzB,qBAAgB,GAAG,2DAAW,CAAC,oBAAoB,CAAC;IADpD,CAAC;IAID,0BAA0B,CAAC,OAAe;QACxC,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/D,CAAC;IACD,4BAA4B,CAAC,OAAe;QAC1C,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACjE,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACxD,QAAQ,EAAE,IAAI;YACd,kBAAkB,EAAE,OAAO;YAC3B,gBAAgB,EAAE,KAAK;SACxB,CAAC,CAAC;IACL,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,4BAA4B,EAAE,GAAG,EAAE;YACrD,QAAQ,EAAE,IAAI;YACd,kBAAkB,EAAE,OAAO;YAC3B,gBAAgB,EAAE,KAAK;SACxB,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,WAAmB,EAAE,EAAE;YAC7D,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAC3E,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE7C,IAAI,CAAC,cAAc,GAAG,IAAI,wDAAS,CAAC;YAElC,sBAAsB,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAC7C,kBAAkB,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;SAGjE,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,GAAG,IAAI,wDAAS,CAAC;YAEnC,wBAAwB,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAC/C,oBAAoB,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;SACnE,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,GAAG,IAAI,wDAAS,CAAC;YAClC,cAAc,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;SAC7D,CAAC,CAAC;QAEH,IAAI,CAAC,eAAe,GAAG,IAAI,wDAAS,CAAC;YACnC,oBAAoB,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAClE,oBAAoB,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAClE,qBAAqB,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;SAGpE,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,GAAG,IAAI,wDAAS,CAAC;YAClC,aAAa,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC3D,cAAc,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC5D,iBAAiB,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC/D,mBAAmB,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;SAElE,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,GAAG,IAAI,wDAAS,CAAC;YAClC,MAAM,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACpD,kBAAkB,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAChE,QAAQ,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;SAEvD,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,GAAG,IAAI,wDAAS,CAAC;YACpC,OAAO,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;SACtD,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,GAAG,IAAI,wDAAS,CAAC;YAC7B,aAAa,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;SACrC,CAAC,CAAC;QAEH,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAE3B,CAAC;IACD,kBAAkB;QAChB,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;IAC3B,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC;QAC1D,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,IAAI,UAAU,GAAG,uDAAe,CAAC,QAAQ,CAAC;QAC1C,IAAI,UAAU,GAAG,qEAAW,CAAC,gBAAgB,CAAC;QAC9C,IAAI,QAAQ,GAAa,IAAI,QAAQ,EAAE,EAErC,GAAG,GAAmB,IAAI,cAAc,EAAE,CAAC;QAC7C,QAAQ,CAAC,MAAM,CAAC,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,QAAQ,CAAC,MAAM,CAAC,oBAAoB,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAEzE,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YAC3D,IAAI,GAAG,GAAW,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;YACxD,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;YACrD,sCAAsC;YACtC,IAAI,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5C,IAAI,CAAC,CAAC,SAAS,IAAI,KAAK,IAAI,SAAS,IAAI,KAAK,IAAI,SAAS,IAAI,KAAK,IAAI,SAAS,IAAI,MAAM,IAAI,SAAS,IAAI,KAAK,CAAC,EAAE;gBAClH,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC1B,OAAO;aACR;YAED,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;gBAC/D,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,mBAAmB,EAAE,GAAG,EAAE;oBACrE,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,OAAO,KAAK,CAAC;aACd;SACF;QAED,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;QACxD,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;QAC9C,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC3D,IAAI,cAAc,CAAC,OAAO,CAAC,EAAE;YAC3B,GAAG,CAAC,gBAAgB,CAAC,eAAe,EAAE,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;SAC5E;QACD,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEnB,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE,CAAC;IAEnD,CAAC;IACD,uBAAuB;QACrB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC;QAC9D,IAAI,UAAU,GAAG,uDAAe,CAAC,QAAQ,CAAC;QAC1C,IAAI,UAAU,GAAG,qEAAW,CAAC,gBAAgB,CAAC;QAC9C,IAAI,QAAQ,GAAa,IAAI,QAAQ,EAAE,EACrC,GAAG,GAAmB,IAAI,cAAc,EAAE,CAAC;QAC7C,QAAQ,CAAC,MAAM,CAAC,eAAe,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACjE,QAAQ,CAAC,MAAM,CAAC,yBAAyB,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAChF,IAAI,GAAG,GAAW,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACtD,IAAI,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;QACnD,sCAAsC;QACtC,IAAI,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,CAAC,SAAS,IAAI,MAAM,IAAI,SAAS,IAAI,KAAK,CAAC,EAAE;YAChD,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,OAAO;SACR;QACD,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;QACxD,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC;QACnD,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC3D,IAAI,cAAc,CAAC,OAAO,CAAC,EAAE;YAC3B,GAAG,CAAC,gBAAgB,CAAC,eAAe,EAAE,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;SAC5E;QACD,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEnB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE,CAAC;IAErD,CAAC;IACD,uBAAuB;QACrB,IAAI,CAAC,qBAAqB,CAAC,2BAA2B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,GAAyB,EAAE,EAAE;YAC7G,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC;YAC/C,IAAI,CAAC,wBAAwB,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YACvC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,IAAI,EAAE,EAAE;gBACnC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;aACtB;YACD,IAAI,CAAC,gBAAgB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAChE,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;gBAC1C,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;gBAChC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;aAC1B;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;IAC3B,CAAC;IACD,iBAAiB;QACf,IAAI,CAAC,qBAAqB,CAAC,2BAA2B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,GAAyB,EAAE,EAAE;YAC7G,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC;YACtD,IAAI,CAAC,0BAA0B,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YACzC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,uBAAuB,IAAI,EAAE,EAAE;gBACxC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;aACxB;YAED,IAAI,CAAC,kBAAkB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACpE,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;gBAC5C,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;gBACjC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;aAC1B;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;IAC3B,CAAC;IACD,cAAc;QAEZ,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC;QAEjC,IAAI,CAAC,qBAAqB,CAAC,gCAAgC,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;YAC9G,IAAI,IAAI,GAAQ,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;YAElE,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,gBAAgB,EAAE;gBACzD,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBACxC,OAAO;aACR;YACD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAC7C,iDAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,wBAAwB,CAAC,kBAAkB,CAAC,CAAC;QAC3E,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC;YACpD,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IACvD,CAAC;IACD,gBAAgB;QACd,IAAI,CAAC,QAAQ,GAAG,qBAAqB,CAAC;QAEtC,IAAI,CAAC,qBAAqB,CAAC,gCAAgC,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;YAC9G,IAAI,IAAI,GAAQ,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC,CAAC;YAC3E,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,gBAAgB,EAAE;gBACzD,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBACxC,OAAO;aACR;YACD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAC7C,iDAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,0BAA0B,CAAC,uBAAuB,CAAC,CAAC;QAClF,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC;YACpD,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IACvD,CAAC;IACD,YAAY,CAAC,EAAU,EAAE,IAAY;QAEnC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gGAAsB,EAAE;YACzD,YAAY,EAAE,IAAI;YAClB,WAAW,EAAE,IAAI;YACjB,IAAI,EAAE,EAAE,OAAO,EAAE,kCAAkC,EAAE;SAEtD,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YAEzC,IAAI,MAAM,IAAI,IAAI,EAAE;gBAClB,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,KAAU,EAAE,EAAE;oBAE1E,IAAI,CAAC,uBAAuB,EAAE,CAAC;oBAC/B,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;oBACzB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,EAAE;wBACvC,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACH,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;gBACnC,CAAC,CACA,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;oBAChB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,+CAA+C,EAAE,GAAG,EAAE;wBACxE,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC;gBACJ,CAAC,CAAC,CAAC;aAEJ;QAEH,CAAC,CAAC,CAAC;IAEL,CAAC;IACD,cAAc;QAEZ,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC;QACjC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnD,CAAC;IAED,cAAc,CAAC,EAAU,EAAE,IAAY;QAErC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gGAAsB,EAAE;YACzD,YAAY,EAAE,IAAI;YAClB,WAAW,EAAE,IAAI;YACjB,IAAI,EAAE,EAAE,OAAO,EAAE,kCAAkC,EAAE;SAEtD,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,MAAM,IAAI,IAAI,EAAE;gBAClB,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,KAAU,EAAE,EAAE;oBAE1E,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBACzB,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;oBACxB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,EAAE;wBACvC,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACH,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;gBACpC,CAAC,CACA,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;oBAChB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,+CAA+C,EAAE,GAAG,EAAE;wBACxE,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC;gBACJ,CAAC,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,QAAQ,GAAG,qBAAqB,CAAC;QACtC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrD,CAAC;IAED,MAAM;QAEJ,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;QAErB,IAAI,SAAS,GAAG,IAAI,2EAAoB,EAAE,CAAC;QAC3C,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACrC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAC3B,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,cAAc,CAAC;QACpE,SAAS,CAAC,oBAAoB,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,oBAAoB,CAAC;QACjF,SAAS,CAAC,oBAAoB,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,oBAAoB,CAAC;QACjF,SAAS,CAAC,qBAAqB,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,qBAAqB,CAAC;QACnF,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,aAAa,CAAC;QAClE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,cAAc,CAAC;QACpE,SAAS,CAAC,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,iBAAiB,CAAC;QAC1E,SAAS,CAAC,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,mBAAmB,CAAC;QAC9E,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC;QACpD,SAAS,CAAC,kBAAkB,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,kBAAkB,CAAC;QAC5E,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC;QACxD,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC;QAExD,IAAI,CAAC,qBAAqB,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC,SAAS,CACxE,CAAC,GAAQ,EAAE,EAAE;YAEX,IAAI,GAAG,EAAE;gBAEP,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,yBAAyB,EAAE,GAAG,EAAE;oBAClD,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aAC9C;QACH,CAAC,EACD,KAAK,CAAC,EAAE;YACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,qBAAqB,EAAE,GAAG,EAAE;gBAC9C,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CACF,CAAC;IACJ,CAAC;IAED,uBAAuB,CAAC,SAAiB;QAEvC,IAAI,CAAC,qBAAqB,CAAC,2BAA2B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,GAAyB,EAAE,EAAE;YACpH,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,IAAI,SAAS,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,IAAI,IAAI,EAAE;gBACnG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;gBAC9E,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,oBAAoB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC;gBAC3F,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,oBAAoB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC;gBAC3F,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,qBAAqB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC;gBAC7F,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;gBAC5E,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;gBAE9E,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,iBAAiB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;gBAEpF,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,mBAAmB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;gBACxF,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBAC9D,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,kBAAkB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;gBACtF,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;gBAClE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBAClE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACrB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACpB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;aACxB;iBACI;gBACH,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;gBAC9E,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,oBAAoB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC;gBAC3F,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,oBAAoB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC;gBAC3F,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,qBAAqB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC;gBAC7F,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;gBAC5E,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;gBAE9E,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,iBAAiB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;gBAEpF,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,mBAAmB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;gBACxF,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBAC9D,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,kBAAkB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;gBACtF,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;gBAClE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBAClE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;gBACvE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACrB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACpB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;aAEvB;QACH,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YACf,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,sFAAsF;YACtF,oBAAoB;YACpB,iCAAiC;YACjC,6BAA6B;YAC7B,MAAM;QACR,CAAC,CAAC,CAAC;IAGL,CAAC;IAED,WAAW,CAAC,KAAK;QAEf,KAAK,CAAC,sBAAsB,CAAC,UAAU,GAAG,KAAK,CAAC;QAChD,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,aAAa,CAAC;QACvC,sBAAsB;QACtB,sCAAsC;IACxC,CAAC;IACD,QAAQ,CAAC,KAAK;QAEZ,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,aAAa,CAAC;QACvC,uBAAuB;IACzB,CAAC;IACD,QAAQ;QACN,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;QACrB,IAAI,IAAI,CAAC,mBAAmB,IAAI,KAAK,EAAE;YACrC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;SACzB;QACD,IAAI,IAAI,CAAC,oBAAoB,IAAI,KAAK,EAAE;YACtC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;SACzB;QAED,IAAI,SAAS,GAAG,IAAI,2EAAoB,EAAE,CAAC;QAC3C,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACrC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAC3B,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,cAAc,CAAC;QACpE,SAAS,CAAC,oBAAoB,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,oBAAoB,CAAC;QACjF,SAAS,CAAC,oBAAoB,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,oBAAoB,CAAC;QACjF,SAAS,CAAC,qBAAqB,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,qBAAqB,CAAC;QACnF,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,aAAa,CAAC;QAClE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,cAAc,CAAC;QACpE,SAAS,CAAC,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,iBAAiB,CAAC;QAC1E,SAAS,CAAC,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,mBAAmB,CAAC;QAC9E,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC;QACpD,SAAS,CAAC,kBAAkB,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,kBAAkB,CAAC;QAC5E,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC;QACxD,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC;QACxD,IAAI,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE;YAC7M,IAAI,CAAC,qBAAqB,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC,SAAS,CACxE,CAAC,GAAQ,EAAE,EAAE;gBAGX,IAAI,GAAG,EAAE;oBAEP,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,+CAA+C,EAAE,GAAG,EAAE;wBACxE,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC,cAAc,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;wBACxC,IAAI,CAAC,MAAM,EAAE,CAAC;oBAChB,CAAC,CAAC,CAAC;oBACH,IAAI,CAAC,KAAK,EAAE,CAAC;iBACd;qBACI;oBACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uBAAuB,EAAE,GAAG,EAAE;wBAChD,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBAEJ;YAEH,CAAC,EACD,KAAK,CAAC,EAAE;gBACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE;oBACtC,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACL,CAAC,CACF,CAAC;SACH;aACI;YACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kCAAkC,EAAE,GAAG,EAAE;gBAC3D,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;SAEJ;IACH,CAAC;IACD,MAAM;QACJ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC;IACD,kBAAkB;IAClB,8CAA8C;IAC9C,IAAI;IACJ,KAAK;QACH,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QAC5B,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QAC5B,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QAC5B,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QAC5B,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC9B,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;IAC3D,CAAC;;0GA7jBU,6BAA6B;6GAA7B,6BAA6B;kEA0C7B,iEAAkB;;;;;;;;;;;;;;;;;;QCvE/B;QAAA,8EACC;QAAA;QAAA,mFACC;QAAA;QAAA,yEACE;QAAA;QAAA,yEACI;QAAA;QAAA,0EACF;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,gFAAoB;QAAA,4DAAY;QAC3C;QAAA,0EAA2G;QAC/G;QAAA,4DAAiB;QACjB;QAAA,4DAAO;QACX;QAAA,4DAAM;QACN;QAAA,4DAAM;QACR;QAAA,8FAEQ;QAFuB,8LAAmB,uBAAmB,IAAC;QAE9D;QAAA,4EACI;QAAA;QAAA,2IAA0B;QAC1B;QAAA,2EAEF;QAAA;QAAA,0EACE;QAAA;QAAA,0EACF;QAAA;QAAA,iFAEA;QAFoC,qJAAS,wBAAoB,IAAC,6OACvD,yCAAkD,IADK;QAAlE,4DAEA;QAAA;QAAA,4DAAM;QACL;QAEC;QAAA,2EACC;QAAA;QAAA,8EACC;QADwB,sJAAS,wBAAoB,IAAC;QACtD;QAAA,4EAAU;QAAA,mEAAO;QAAA,4DAAW;QAAC,mFAC7B;QAAA,4DAAS;QACX;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,wIAAsG;QAExG;QAAA,4DAAM;QACN;QAAA,4DAAM;QACJ;QAAA,4EACE;QAAA;QAAA,oFACQ;QAAA;QAAA,2EACQ;QAAA;QAAA,iFACQ;QAAA;QAAA,6EACQ;QAAA;QAAA,0HAAgF;QAChF;QAAA,0HAAwD;QAChE;QAAA,qEAAe;QACf;QAAA,6EACQ;QAAA;QAAA,0HAAgF;QAChF;QAAA,0HAAwC;QAChD;QAAA,qEAAe;QACf;QAAA,6EACE;QAAA;QAAA,0HAAgE;QAChE;QAAA,0HACQ;QAEV;QAAA,qEAAe;QACf;QAAA,6EACQ;QAAA;QAAA,0HAAgE;QAChE;QAAA,0HACQ;QAEhB;QAAA,qEAAe;QACf;QAAA,0HAAuD;QACvD;QAAA,0HAA6D;QAC7D;QAAA,0HACQ;QAEhB;QAAA,4DAAQ;QAEhB;QAAA,4DAAM;QACd;QAAA,4DAAmB;QAE3B;QAAA,4DAAW;QACR;QAGD;QAAA,4DAAO;QACP;QAAA,4DAAW;QACX;QAAA,6EACI;QAAA;QAAA,6IAA0B;QAC1B;QAAA,4EACJ;QAAA;QAAA,2EACF;QAAA;QAAA,2EACE;QAAA;QAAA,kFAEF;QAFkE,sJAAS,0BAAsB,IAAC,gPACtF,4CAAsD,IADgC;QAAhG,4DAEF;QAAA;QAAA,4DAAM;QACD;QAEH;QAAA,4EACG;QAAA;QAAA,+EACI;QADoC,uJAAS,6BAAyB,IAAC;QACvE;QAAA,6EAAU;QAAA,oEAAO;QAAA,4DAAW;QAAC,oFAChC;QAAA,4DAAS;QACX;QAAA,4DAAM;QACN;QAAA,4EACE;QAAA;QAAA,0IACE;QACF;QAAA,4DAAM;QACR;QAAA,4DAAM;QACJ;QAAA,6EACE;QAAA;QAAA,qFACQ;QAAA;QAAA,4EACQ;QAAA;QAAA,kFACQ;QAAA;QAAA,8EACQ;QAAA;QAAA,4HAAgF;QAChF;QAAA,4HAAwD;QAChE;QAAA,qEAAe;QACf;QAAA,8EACQ;QAAA;QAAA,4HAAgF;QAChF;QAAA,4HAAwC;QAChD;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,4HAAgE;QAChE;QAAA,4HACQ;QAEV;QAAA,qEAAe;QACf;QAAA,8EACQ;QAAA;QAAA,4HAAgE;QAChE;QAAA,4HACQ;QAEhB;QAAA,qEAAe;QACf;QAAA,4HAAuD;QACvD;QAAA,4HAA6D;QAC7D;QAAA,4HACQ;QAEhB;QAAA,4DAAQ;QAEhB;QAAA,4DAAM;QACd;QAAA,4DAAmB;QAE3B;QAAA,4DAAW;QAET;QAGA;QAAA,4DAAO;QACP;QAAA,4DAAW;QACX;QAAA,6EACI;QAAA;QAAA,6IAA0B;QAC1B;QAAA,4EACJ;QAAA;QAAA,4EACE;QAAA;QAAA,uEAAI;QAAA,2FAA8B;QAAA,6EAA0B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAK;QACzE;QAAA,kFAC4E;QAC5E;QAAA,8EACE;QAAA;QAAA,gIACG;QAEL;QAAA,4DAAY;QACd;QAAA,4DAAM;QACN;QAGF;QAAA,4DAAO;QACT;QAAA,4DAAW;QACX;QAAA,6EACI;QAAA;QAAA,6IAA0B;QAC5B;QAAA,4EACQ;QAAA;QAAA,4EACE;QAAA;QAAA,uEAAI;QAAA,iIAAoE;QAAA,6EAA0B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAK;QACzG;QAAA,kFACkF;QAClF;QAAA,8EACE;QAAA;QAAA,gIACG;QAEL;QAAA,4DAAY;QACd;QAAA,4DAAM;QAEX;QAAA,4EACE;QAAA;QAAA,uEAAI;QAAA,yHAA4D;QAAA,6EAA0B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAK;QAClG;QAAA,kFACkF;QAClF;QAAA,8EACE;QAAA;QAAA,gIACG;QAEL;QAAA,4DAAY;QACd;QAAA,4DAAM;QACX;QAAA,4EACE;QAAA;QAAA,uEAAI;QAAA,mIAAsE;QAAA,6EAA0B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAK;QAC5G;QAAA,kFACmF;QACnF;QAAA,8EACE;QAAA;QAAA,gIACG;QAEL;QAAA,4DAAY;QACd;QAAA,4DAAM;QACX;QAGR;QAAA,4DAAO;QAEX;QAAA,4DAAW;QACX;QAAA,6EACG;QAAA;QAAA,6IAA0B;QACtB;QAAA,4EACQ;QAAA;QAAA,4EACE;QAAA;QAAA,uEAAI;QAAA,wFAA2B;QAAA,6EAA0B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAK;QAChE;QAAA,kFAC4E;QAC3E;QAAA,8EACC;QAAA;QAAA,gIACG;QAEL;QAAA,4DAAY;QACd;QAAA,4DAAM;QACX;QAAA,4EACE;QAAA;QAAA,uEAAI;QAAA,4EAAe;QAAA,6EAA0B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAK;QACrD;QAAA,kFAC4E;QAC5E;QAAA,8EACE;QAAA;QAAA,gIACG;QAEL;QAAA,4DAAY;QACd;QAAA,4DAAM;QACX;QAAA,4EACE;QAAA;QAAA,uEAAI;QAAA,gFAAmB;QAAA,6EAA0B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAK;QACzD;QAAA,kFAC+E;QAC/E;QAAA,8EACE;QAAA;QAAA,gIACG;QAEL;QAAA,4DAAY;QACd;QAAA,4DAAM;QACX;QAAA,4EACE;QAAA;QAAA,uEAAI;QAAA,kFAAqB;QAAA,6EAA0B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAK;QAC3D;QAAA,kFACiF;QACjF;QAAA,8EACE;QAAA;QAAA,gIACG;QAEL;QAAA,4DAAY;QACd;QAAA,4DAAM;QAEX;QAGL;QAAA,4DAAO;QACP;QAAA,4DAAW;QACX;QAAA,6EACI;QAAA;QAAA,6IAA0B;QACtB;QAAA,4EACQ;QAAA;QAAA,4EACE;QAAA;QAAA,uEAAI;QAAA,gFAAmB;QAAA,6EAA0B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAK;QACxD;QAAA,kFACoE;QACpE;QAAA,8EACE;QAAA;QAAA,gIACG;QAEL;QAAA,4DAAY;QACd;QAAA,4DAAM;QACX;QAAA,4EACE;QAAA;QAAA,uEAAI;QAAA,4FAA+B;QAAA,6EAA0B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAK;QACrE;QAAA,kFACiF;QAChF;QAAA,8EACC;QAAA;QAAA,gIACG;QAEL;QAAA,4DAAY;QACd;QAAA,4DAAM;QACX;QAAA,wEACE;QAAA;QAAA,uEAAI;QAAA,4EAAe;QAAA,6EAA0B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAK;QACrD;QAAA,kFACsE;QACtE;QAAA,8EACE;QAAA;QAAA,gIACG;QAEL;QAAA,4DAAY;QACd;QAAA,4DAAM;QAEZ;QAIJ;QAAA,4DAAO;QACP;QAAA,4DAAW;QACvC;QAAA,6EACK;QAAA;QAAA,4EACG;QAAA;QAAA,6IAA0B;QACtB;QAAA,4EACE;QAAA;QAAA,uEAAI;QAAA,oFAAuB;QAAA,6EAA0B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAK;QAC5D;QAAA,kFACqE;QACrE;QAAA,8EACE;QAAA;QAAA,gIACG;QAEL;QAAA,4DAAY;QACnB;QAAA,4DAAM;QAGV;QAAA,4DAAO;QACP;QAAA,4DAAW;QAEpB;QAAA,4DAAuB;QACvB;QAWA;QAAA,4EAEC;QAAA;QAAA,+EAAuF;QAAjE,uJAAS,YAAQ,IAAC;QAA+C,iEAAI;QAAA,4DAAS;QAErG;QAAA,+EAAsF;QAArB,uJAAS,cAAU,IAAC;QAAC,mEAAM;QAAA,4DAAS;QACrG;QAAA,4DAAM;QAEN;QAAA,4DAAmB;QACnB;QAAA,4DAAW;QAEX;;QAnUU,0DAAoB;QAApB,iFAAoB;QAEvB,0DAAqB;QAArB,kFAAqB;QAEd,0DAAuB;QAAvB,oFAAuB;QACf,0DAA+B;QAA/B,uGAA+B;QAWnC,2DAA4B;QAA5B,yFAA4B;QAIyH,0DAAiC;QAAjC,8FAAiC;QAW/K,2DAAwF;QAAxF,sJAAwF;QAOnD,2DAA+B;QAA/B,4FAA+B;QAqBlC,2DAAmC;QAAnC,iGAAmC;QAC1C,0DAAgD;QAAhD,kGAAgD;QAiBhF,2DAA6B;QAA7B,0FAA6B;QAGgI,0DAAmC;QAAnC,gGAAmC;QAW3L,2DAA6F;QAA7F,yJAA6F;QAOtD,2DAAiC;QAAjC,8FAAiC;QAqBtC,2DAAmC;QAAnC,iGAAmC;QAC1C,0DAAgD;QAAhD,kGAAgD;QAkBhF,2DAA4B;QAA5B,yFAA4B;QAGpB,0DAA+C;QAA/C,wGAA+C;QAGvD,0DAAiF;QAAjF,+IAAiF;QAYvF,2DAA6B;QAA7B,0FAA6B;QAGH,0DAAqF;QAArF,8IAAqF;QAG7F,0DAAsF;QAAtF,sJAAsF;QAQ9E,2DAA6E;QAA7E,sIAA6E;QAGrF,0DAAsF;QAAtF,sJAAsF;QAO9E,2DAAuF;QAAvF,gJAAuF;QAG/F,0DAAwF;QAAxF,uJAAwF;QAatG,2DAA4B;QAA5B,yFAA4B;QAGF,0DAA4C;QAA5C,qGAA4C;QAGpD,0DAAgF;QAAhF,8IAAgF;QAOxE,2DAAgC;QAAhC,yFAAgC;QAGxC,0DAA+E;QAA/E,+IAA+E;QAOvE,2DAAoC;QAApC,6FAAoC;QAG5C,0DAAmF;QAAnF,kJAAmF;QAO3E,2DAAsC;QAAtC,+FAAsC;QAG9C,0DAAqF;QAArF,oJAAqF;QAa3F,2DAA4B;QAA5B,yFAA4B;QAGF,0DAAoC;QAApC,6FAAoC;QAG5C,0DAAwE;QAAxE,uIAAwE;QAOhE,2DAAgD;QAAhD,yGAAgD;QAGxD,0DAAoF;QAApF,mJAAoF;QAO5E,2DAAgC;QAAhC,yFAAgC;QAGxC,0DAA0E;QAA1E,yIAA0E;QAa/G,0DAA8B;QAA9B,2FAA8B;QAIL,2DAAwC;QAAxC,iGAAwC;QAGhD,0DAA0E;QAA1E,0IAA0E;;6FDtQzF,6BAA6B;cALzC,uDAAS;eAAC;gBACT,QAAQ,EAAE,4BAA4B;gBACtC,WAAW,EAAE,yCAAyC;gBACtD,SAAS,EAAE,CAAC,yCAAyC,CAAC;aACvD;szBA2CgC,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;YACE,gBAAgB;kBAA9C,uDAAS;mBAAC,kBAAkB;YACI,kBAAkB;kBAAlD,uDAAS;mBAAC,oBAAoB;YACH,KAAK;kBAAhC,uDAAS;mBAAC,eAAe;YACA,MAAM;kBAA/B,uDAAS;mBAAC,aAAa;YACM,kBAAkB;kBAA/C,uDAAS;mBAAC,iBAAiB;YACI,oBAAoB;kBAAnD,uDAAS;mBAAC,mBAAmB;;;;;;;;;;;;;;AE9EhC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8F;AAC6B;AAK/C;AAC5E,qDAAqD;AACpB;AAQwB;AAO2B;AAEpC;;;;;;;;;;;;;;;;;;;;;;;ICnBtC,oFACE;IAAA;IAAA,4EAAW;IAAA,uEAAY;IAAA,0EAA2B;IAAA,6DAAC;IAAA,4DAAO;IAAA,4DAAY;IACtE;IAAA,uEAEF;IAAA;IAAA,4DAAiB;;;IAJsB,0GAA+B;;;IAQpE,4EACE;IAAA,8GACF;IAAA,4DAAY;;;IACZ,4EACE;IAAA,8GACF;IAAA,4DAAY;;;IACZ,4EACE;IAAA,4IACF;IAAA,4DAAY;;;;IAXd,oFACE;IAAA;IAAA,4EAAW;IAAA,uEAAY;IAAA,0EAA2B;IAAA,6DAAC;IAAA,4DAAO;IAAA,4DAAY;IACtE;IAAA,4EACA;IADsG,iVAAyB,aAAa,KAAE;IAA9I,4DACA;IAAA;IAAA,kJACE;IAEF;IAAA,oJACE;IAEF;IAAA,oJACE;IAEJ;IAAA,4DAAiB;;;IAZsB,0GAA+B;IAGzD,0DAA0D;IAA1D,2HAA0D;IAG1D,0DAA4D;IAA5D,4HAA4D;IAG5D,0DAAyD;IAAzD,0HAAyD;;;IAUpE,4EACE;IAAA,8GACF;IAAA,4DAAY;;;IACZ,4EACE;IAAA,4IACF;IAAA,4DAAY;;;;IAcZ,6EAEE;IADA,6UAA4B,eAAe,KAAE;IAC7C;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC5B;IAAA,4DAAS;;;IACT,+EAA4D;IAAA,8EAAmB;IAAA,4DAAW;;;IAExF,iFAEE;IAAA,oGAAuB;IAAA,4DAAa;;;;IACtC,iFAGE;IAHU,8WAA2B,eAAe,eAAO,kUAC1B,eAAe,eADW;IAG3D,uDACF;IAAA,4DAAa;;;IAFuC,iFAAoB;IACtE,0DACF;IADE,0HACF;;;IAEF,4EACE;IAAA,8GACF;IAAA,4DAAY;;;IACZ,4EACE;IAAA,+HACF;IAAA,4DAAY;;;;IAeZ,6EAEE;IADA,6UAA4B,gBAAgB,KAAE;IAC9C;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC5B;IAAA,4DAAS;;;IACT,+EAA6D;IAAA,8EAAmB;IAAA,4DAAW;;;IAEzF,iFAEE;IAAA,oGAAuB;IAAA,4DAAa;;;;IACtC,iFAGE;IAHU,8WAA2B,gBAAgB,eAAO,kUAC3B,gBAAgB,eADW;IAG5D,uDACF;IAAA,4DAAa;;;IAFwC,iFAAoB;IACvE,0DACF;IADE,0HACF;;;IAGF,4EACE;IAAA,iHACF;IAAA,4DAAY;;;IACZ,4EACE;IAAA,kIACF;IAAA,4DAAY;;;;IAcZ,6EAEE;IAF+D,8UAA4B,UAAU,KAAE;IAEvG;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC5B;IAAA,4DAAS;;;IACT,+EAAuD;IAAA,8EAAmB;IAAA,4DAAW;;;IAEnF,iFAEE;IAAA,oGAAuB;IAAA,4DAAa;;;;IACtC,iFAGE;IAHU,+WAA2B,UAAU,eAAO,mUACrB,UAAU,eADW;IAGtD,uDACF;IAAA,4DAAa;;;IAFX,iFAAoB;IACpB,0DACF;IADE,0HACF;;;IAEF,4EACE;IAAA,wGACF;IAAA,4DAAY;;;IACZ,4EACE;IAAA,yHACF;IAAA,4DAAY;;;;IAcZ,6EAEE;IAF+D,8UAA4B,UAAU,KAAE;IAEvG;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC5B;IAAA,4DAAS;;;IACT,+EAAuD;IAAA,8EAAmB;IAAA,4DAAW;;;IAEnF,iFAEE;IAAA,oGAAuB;IAAA,4DAAa;;;;IACtC,iFAGE;IAHU,+WAA2B,UAAU,eAAO,mUACrB,UAAU,eADW;IAGtD,uDACF;IAAA,4DAAa;;;IAFX,iFAAoB;IACpB,0DACF;IADE,0HACF;;;IAEF,4EACE;IAAA,yHACF;IAAA,4DAAY;;;IAOV,iFAAuE;IAAA,uDAAgB;IAAA,4DAAa;;;IAApD,mFAAsB;IAAC,0DAAgB;IAAhB,iFAAgB;;;IAEzF,4EACE;IAAA,iHACF;IAAA,4DAAY;;;IAOV,iFAA0E;IAAA,uDAAgB;IAAA,4DAAa;;;IAApD,mFAAsB;IAAC,0DAAgB;IAAhB,iFAAgB;;;IAE5F,4EACE;IAAA,+GACF;IAAA,4DAAY;;;;IAQZ,4FAEE;IADA,4WAA4B,iBAAiB,KAAE;IAC/C;IAAA,+EAAkC;IAAA,gEAAK;IAAA,4DAAW;IACpD;IAAA,4DAAwB;;;IAGxB,4EACE;IAAA,4GACF;IAAA,4DAAY;;;IAKO,0EAAqD;IAAA,6DAAC;IAAA,4DAAO;;;;IAKhF,4FAEE;IADA,4WAA4B,eAAe,KAAE;IAC7C;IAAA,+EAAkC;IAAA,gEAAK;IAAA,4DAAW;IACpD;IAAA,4DAAwB;;;IAKxB,4EACE;IAAA,0GACF;IAAA,4DAAY;;;;IAYd,6EACE;IADgE,2UAA4B;IAC5F;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAAA,4EAC5B;IAAA,4DAAS;;ADhMZ,MAAM,wBAAwB;IAiDnC,YACU,QAAwB,EACxB,sBAA8C,EAC9C,aAA4B,EAC5B,aAAgC,EACjC,MAAiB,EAChB,SAAsB;QALtB,aAAQ,GAAR,QAAQ,CAAgB;QACxB,2BAAsB,GAAtB,sBAAsB,CAAwB;QAC9C,kBAAa,GAAb,aAAa,CAAe;QAC5B,kBAAa,GAAb,aAAa,CAAmB;QACjC,WAAM,GAAN,MAAM,CAAW;QAChB,cAAS,GAAT,SAAS,CAAa;QArDhC,qBAAgB,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QACpD,cAAS,GAAG,EAAE,CAAC;QACf,sBAAiB,GAAG,KAAK,CAAC;QAC1B,iBAAY,GAAG,IAAI,CAAC;QACpB,eAAU,GAAG,KAAK,CAAC;QACnB,aAAQ,GAAG,EAAE,CAAC;QACd,kBAAa,GAAG,KAAK,CAAC;QACtB,iBAAY,GAAG,KAAK,CAAC;QAErB,iBAAY,GAAiB,EAAE,CAAC;QAChC,eAAU,GAAiB,EAAE,CAAC;QAC9B,gBAAW,GAAiB,EAAE,CAAC;QAC/B,iBAAY,GAAiB,EAAE,CAAC;QAChC,qBAAgB,GAAiB,EAAE,CAAC;QACpC,eAAU,GAAiB,EAAE,CAAC;QAC9B,cAAS,GAAW,CAAC,CAAC;QACtB,uBAAkB,GAAG,IAAI,iFAAY,EAAE,CAAC;QACxC,mBAAc,GAAG,IAAI,iFAAY,EAAE,CAAC;QAIpC,oBAAe,GAAiB,EAAE,CAAC;QAGnC,qBAAgB,GAAY,KAAK,CAAC;QAgBlC,WAAM,GAAY,KAAK,CAAC;QAExB,iBAAY,GAAG,IAAI,IAAI,EAAE,CAAC;QAC1B,iBAAY,GAAG,IAAI,IAAI,EAAE,CAAC;IAe1B,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,sBAAsB;aACrD,YAAY,EAAE;aACd,SAAS,CAAC,IAAI,CAAC,EAAE;YAChB,qFAAqF;YACrF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;gBACtB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;aAC1B;QAEH,CAAC,CAAC,CAAC;QAEL,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED,YAAY;QACV,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,EAAE,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,EAAE,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC1E,IAAI,CAAC,YAAY,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC;IACjC,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YACpE,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBACpB,IACE,OAAO,CAAC,UAAU,IAAI,QAAQ;oBAC9B,OAAO,CAAC,UAAU,IAAI,WAAW;oBACjC,OAAO,CAAC,UAAU,IAAI,QAAQ;oBAE9B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;wBACnB,KAAK,EAAE,OAAO,CAAC,UAAU;wBACzB,KAAK,EAAE,OAAO,CAAC,QAAQ;qBACxB,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,UAAU;QACR,qBAAqB;QACrB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC;YACpB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;;YAEzB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,IAAI,wDAAS,CAAC;YAC9B,WAAW,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE;gBACjC,yDAAU,CAAC,QAAQ;gBACnB,yDAAU,CAAC,OAAO,CAAC,2CAA2C,CAAC;aAChE,CAAC;YACF,aAAa,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACzF,WAAW,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE;gBACjC,yDAAU,CAAC,QAAQ;gBACnB,gEAAgE;gBAChE,yDAAU,CAAC,OAAO,CAAC,2CAA2C,CAAC;aAChE,CAAC;YACF,QAAQ,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAC/D,cAAc,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACrC,QAAQ,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACpF,SAAS,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAChC,cAAc,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAC1F,eAAe,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC7D,aAAa,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACpC,YAAY,EAAE,IAAI,0DAAW,CAAC,CAAC,CAAC,CAAC,UAAU;SAC5C,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,QAAQ,IAAI,iBAAiB;QACpC,8EAA8E;QAC/E;YAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,aAAa,CAClD,yDAAU,CAAC,QAAQ,CACpB,CAAC;SACH;aACK;YACF,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;gBACzB,YAAY,EAAE,CAAC;aAChB,CAAC,CAAC;YAEH,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAChC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;gBACzB,SAAS,EAAG,IAAI,CAAC,KAAK;aACvB,CAAC,CAAC;SACJ;IACL,CAAC;IAED,UAAU;QACR,IAAI,CAAC,sBAAsB;aACxB,UAAU,EAAE;aACZ,SAAS,CAAC,CAAC,GAAuB,EAAE,EAAE;YACrC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAyB,EAAE,EAAE;gBACxC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;oBACnB,KAAK,EAAE,OAAO,CAAC,UAAU;oBACzB,KAAK,EAAE,OAAO,CAAC,QAAQ;iBACxB,CAAC,CAAC;YAEL,CAAC,CAAC,CAAC;YACH,2BAA2B;YAC3B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CACrD,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CACxC,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC;IACD,sBAAsB;IACtB,2DAA2D;IAC3D,0DAA0D;IAC1D,YAAY;IACZ,mBAAmB;IAEX,aAAa,CAAC,KAAK;QAEzB,IAAI,WAAW,CAAC;QAChB,IAAI,KAAK,IAAI,KAAK,CAAC,QAAQ,EAAE;YAC3B,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;YAC3C,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CACvC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CACjD,CAAC;SACH;aAAM;YACL,OAAO,IAAI,CAAC,UAAU,CAAC;SACxB;IACH,CAAC;IACD,cAAc,CAAC,KAAS;QACtB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAEO,YAAY,CAAC,OAAoB;QACvC,MAAM,SAAS,GAAQ,OAAO,CAAC,KAAK,CAAC;QACrC,QAAQ,IAAI,CAAC,WAAW,EAAC;YACvB,KAAK,UAAU;gBAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;gBAClD,MAAM;YAEN,KAAK,UAAU;gBAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC;gBACnD,MAAM;YAEN,KAAK,gBAAgB;gBAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC;gBAC9D,MAAM;YAEN,KAAK,eAAe;gBAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC;gBACzD,MAAM;SAEP;QACD,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,KAAK,EAAE,IAAI,SAAS,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAC3I,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;SAC/B;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,CAAC,GAAiB,EAAE,EAAE;YAClE,GAAG,CAAC,OAAO,CAAC,CAAC,OAAmB,EAAE,EAAE;gBAClC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;oBACxB,KAAK,EAAE,OAAO,CAAC,cAAc;oBAC7B,KAAK,EAAE,OAAO,CAAC,YAAY;iBAC5B,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,IAAI,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC;YACxE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;gBACzB,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,KAAK;aAChD,CAAC,CAAC;YACH,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;gBACtB,4BAA4B;gBAC5B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,qDAAqD;aAC3F;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,qBAAqB;QACnB,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAChC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAC9D,CAAC;QACF,IAAI,OAAO,IAAI,SAAS;YAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;aAC9C,IACH,OAAO,CAAC,KAAK,IAAI,WAAW;YAC5B,OAAO,CAAC,KAAK,IAAI,QAAQ;YACzB,OAAO,CAAC,KAAK,IAAI,QAAQ;YAEzB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC9B,CAAC;IACD,iCAAiC;IACjC,mCAAmC;IACnC,oFAAoF;IACpF,wEAAwE;IACxE,IAAI;IACJ,eAAe;QACb,uCAAuC;QACvC,wEAAwE;QACxE,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,CAAC,GAAsB,EAAE,EAAE;YACxE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACd,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;oBACrB,KAAK,EAAE,CAAC,CAAC,eAAe;oBACxB,KAAK,EAAE,CAAC,CAAC,aAAa;iBACvB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAC1D,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAC/C,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,kBAAkB,CAAC,KAAK;QAE9B,IAAI,WAAW,CAAC;QAChB,IAAI,KAAK,IAAI,KAAK,CAAC,aAAa,EAAE;YAChC,WAAW,GAAG,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;YAChD,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CACzC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CACjD,CAAC;SACH;aAAM;YACL,OAAO,IAAI,CAAC,YAAY,CAAC;SAC1B;IACH,CAAC;IAED,UAAU;QACR,uCAAuC;QACvC,iEAAiE;QACjE,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,CAAC,GAAkB,EAAE,EAAE;YAClE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACd,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACxD,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CACrD,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CACxC,CAAC;QACN,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,aAAa,CAAC,KAAK;QAEzB,IAAI,WAAW,CAAC;QAChB,IAAI,KAAK,IAAI,KAAK,CAAC,QAAQ,EAAE;YAC3B,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;YAC3C,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CACxC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CACjD,CAAC;SACH;aAAM;YACL,OAAO,IAAI,CAAC,WAAW,CAAC;SACzB;IACH,CAAC;IAED,kBAAkB;QAChB,gDAAgD;QAChD,IAAI,IAAI,CAAC,QAAQ,KAAK,iBAAiB,EAAE;YACxC,4EAA4E;SAC5E;QACD,IAAI,CAAC,sBAAsB;aACxB,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC;aAC7C,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YACtB,IAAI,IAAI,CAAC,QAAQ,KAAK,iBAAiB,EAAE;gBACvC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACd,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;wBACrB,KAAK,EAAE,CAAC,CAAC,WAAW;wBACpB,KAAK,EAAE,CAAC,CAAC,UAAU;qBACpB,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;aACJ;iBAAM;gBACL,IAAI,CAAC,YAAY,GAAG;oBAClB,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE;iBACxD,CAAC;gBACF,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;oBACzB,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU;iBAC7B,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;IACP,CAAC;IAED,gBAAgB;QACd,8CAA8C;QAC9C,0EAA0E;QAC1E,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC,CAAC,GAAkB,EAAE,EAAE;YACrE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACd,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;oBACzB,KAAK,EAAE,CAAC,CAAC,IAAI;oBACb,KAAK,EAAE,CAAC,CAAC,EAAE;iBACZ,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAC3D,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAChD,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,mBAAmB,CAAC,KAAK;QAE/B,IAAI,WAAW,CAAC;QAChB,IAAI,KAAK,IAAI,KAAK,CAAC,cAAc,EAAE;YACjC,WAAW,GAAG,KAAK,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;YACjD,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAC7C,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CACjD,CAAC;SACH;aAAM;YACL,OAAO,IAAI,CAAC,gBAAgB,CAAC;SAC9B;IACH,CAAC;IAED,iBAAiB,CAAC,QAAQ,EAAE,IAAI;QAC9B,IAAI,QAAQ,IAAG,eAAe,EAAE;YAC9B,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,KAAK,CAAC;SACzC;aACI,IAAI,QAAQ,IAAI,gBAAgB,EAAE;YACpC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,KAAK,CAAC;SAC1C;aACE,IAAI,QAAQ,IAAI,UAAU,EAAE;YAC/B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC;SACpC;aACI,IAAI,QAAQ,IAAI,UAAU,EAAE;YAChC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC;SACpC;IACD,CAAC;IAED,gBAAgB,CAAC,GAAQ,EAAE,OAA+B;QACxD,GAAG,CAAC,eAAe,EAAE,CAAC;QACtB,IAAG,OAAO,CAAC,SAAS;YAClB,OAAO,CAAC,UAAU,EAAE,CAAC;;YAErB,OAAO,CAAC,SAAS,EAAE,CAAC;IACxB,CAAC;IAED,UAAU,CAAC,GAAQ,EAAE,SAAS;QAC5B,IAAG,SAAS,IAAE,eAAe,EAAC;YAC5B,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,KAAK,EAAE,CAAC;SAC9C;QACD,IAAG,SAAS,IAAE,gBAAgB,EAAC;YAC7B,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,KAAK,EAAE,CAAC;SAC/C;QACD,IAAG,SAAS,IAAE,UAAU,EAAC;YACvB,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC;SACzC;QACD,IAAG,SAAS,IAAE,UAAU,EAAC;YACvB,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC;YACxC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;SAC9B;QAED,IAAG,SAAS,IAAE,eAAe,EAAC;YAC5B,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,KAAK,EAAE,CAAC;SAC9C;QAED,IAAG,SAAS,IAAE,iBAAiB,EAAC;YAC9B,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,KAAK,EAAE,CAAC;SAChD;IACH,CAAC;IAED,eAAe;QACb,IAAI,CAAC,cAAc,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC;QACpE,IAAI,CAAC,cAAc,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC;QACpE,IAAI,CAAC,cAAc,CAAC,aAAa,GAAG,IAAI,CAAC,qBAAqB,CAAC;QAC/D,IAAI,CAAC,cAAc,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC;QAC1E,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC;QACrD,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC;QAChE,IAAI,CAAC,cAAc,CAAC,cAAc,GAAG,IAAI,CAAC,sBAAsB,CAAC;QACjE,IAAI,CAAC,cAAc,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,eAAe,CAAC;QAC5E,IAAI,CAAC,cAAc,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC;QACxE,IAAI,CAAC,cAAc,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC;QACtE,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC;QACrD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAEnB,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,SAAS,CACpE,CAAC,GAAW,EAAE,EAAE;YACd,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,IAAI,GAAG,GAAG,CAAC,EAAE;gBACX,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,sBAAsB,EAAE,GAAG,EAAE;oBACjD,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;gBACzB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;gBACrB,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;gBAC9C,oBAAoB;gBACpB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+FAAsB,EAAC;oBACxD,YAAY,EAAE,IAAI;oBAClB,WAAW,EAAE,IAAI;oBACjB,IAAI,EAAC;wBACH,OAAO,EAAE,yBAAyB;qBACnC;iBACF,CAAC,CAAC;gBACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;oBACzC,IAAG,MAAM,EAAC;wBACR,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;qBAC9C;yBAAI;wBACH,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+FAAsB,EAAC;4BACxD,YAAY,EAAE,IAAI;4BAClB,WAAW,EAAE,IAAI;4BACjB,IAAI,EAAC;gCACH,OAAO,EAAE,6CAA6C;6BACvD;yBACF,CAAC,CAAC;wBACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;4BAEzC,IAAG,MAAM,EAAC;gCACR,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;6BAC9C;;gCACD,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;wBAC/C,CAAC,CAAC,CAAC;qBAEJ;gBACH,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;aAC1B;iBACI;gBACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,wBAAwB,EAAE,GAAG,EAAE;oBACjD,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aAEJ;QACH,CAAC,EACD,KAAK,CAAC,EAAE;YACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,wBAAwB,EAAE,GAAG,EAAE;gBACjD,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,CAAC,aAAa,CAAC;gBAC3B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACH,CAAC,CACJ,CAAC;IACJ,CAAC;IAKD,WAAW;QACT,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,eAAe;YACnC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,eAAe,IAAI,IAAI;gBAC3C,CAAC,CAAC,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;gBACpE,CAAC,CAAC,IAAI,CAAC;QACX,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,aAAa;YACjC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,aAAa,IAAI,IAAI;gBACzC,CAAC,CAAC,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;gBAClE,CAAC,CAAC,IAAI,CAAC;QAEX,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,uFAAuF;QAC/H,IAAI,IAAI,CAAC,QAAQ,IAAI,iBAAiB;YACpC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,4CAA4C;QAC5F,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC,kCAAkC;QAC7D,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,KAAK,IAAI,EAAE;YAClC,oCAAoC;YAEpC,IACE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,eAAe;gBACrC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,aAAa,EACnC;gBACA,IAAI,CAAC,IAAI,CAAC,WAAW,CACnB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,eAAe,EACrC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,aAAa,CACpC,EACC;oBACA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;wBAClE,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACH,OAAO;iBACR;aACF;YACD,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,EAAE;gBACvB,0DAA0D;gBAC1D,IAAI,CAAC,eAAe,EAAE,CAAC;aACxB;iBAAM;gBACL,4EAA4E;gBAC1E,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAC7B,IAAI,CAAC,aAAa,EAAE,CAAC;aAExB;SACF;IACH,CAAC;IAED,aAAa;QACX,IAAI,CAAC,sBAAsB;aACxB,oBAAoB,CAAC,IAAI,CAAC,kBAAkB,CAAC;aAC7C,SAAS,CACR,GAAG,CAAC,EAAE;YACJ,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,IAAI,GAAG,IAAI,CAAC,EAAE;gBACZ,IAAI,CAAC,sBAAsB,CAAC,YAAY,CACtC,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAClC,CAAC,CAAC,oBAAoB;gBACvB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,sBAAsB,EAAE,GAAG,EAAE;oBAC/C,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;iBAAM,IAAI,GAAG,IAAI,IAAI,EAAE;gBACtB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,wBAAwB,EAAE,GAAG,EAAE;oBACjD,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;iBAAM,IAAI,GAAG,IAAI,CAAC,CAAC,EAAE;gBACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gGAAgG,EAAE,GAAG,EAAE;oBACzH,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;iBACI;gBACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,0BAA0B,EAAE,GAAG,EAAE;oBACnD,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;QACH,CAAC,EACD,KAAK,CAAC,EAAE;YACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;gBACpC,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,CAAC,aAAa,CAAC;gBAC3B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CACF,CAAC;IACN,CAAC;IAGD,qBAAqB;QACnB,qGAAqG;QACrG,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACnD,IAAI,CAAC,kBAAkB,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC;QACxE,IAAI,CAAC,kBAAkB,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC;QACxE,IAAG,IAAI,CAAC,qBAAqB;YAC3B,IAAI,CAAC,kBAAkB,CAAC,aAAa,GAAG,IAAI,CAAC,qBAAqB,CAAC;QACrE,IAAI,CAAC,kBAAkB,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC;QAC9E,IAAG,IAAI,CAAC,gBAAgB;YACtB,IAAI,CAAC,kBAAkB,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC3D,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC;QACpE,IAAG,IAAI,CAAC,sBAAsB;YAC5B,IAAI,CAAC,kBAAkB,CAAC,cAAc,GAAG,IAAI,CAAC,sBAAsB,CAAC;QACvE,IAAI,CAAC,kBAAkB,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,eAAe,CAAC;QAChF,IAAI,CAAC,kBAAkB,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC;QAC5E,IAAI,CAAC,kBAAkB,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC;QAC1E,IAAI,CAAC,kBAAkB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACjD,IAAG,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI;YACvD,IAAI,CAAC,kBAAkB,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC;IAE7D,CAAC;IAED,iCAAiC;IACjC,WAAW,CAAC,QAAa,EAAE,MAAW;QACpC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;YAC9C,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,+BAA+B;IAC/B,KAAK;QACH,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;QACvB,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;YACpB,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,KAAK;YACjD,YAAY,EAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,KAAK;SACvD,CAAC,CAAC;QACH,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,CAAC;QACpC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;IACjC,CAAC;IAED,OAAO,CAAC,KAAW,EAAE,WAAoB;QACvC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW,KAAK,aAAa;YAClE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;aAEnD,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW,KAAK,aAAa;YACvE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAE1D,CAAC;IAGD,SAAS;QACP,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW;QACzD,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAED,gBAAgB;QACd,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+FAAsB,EAAC;YACxD,YAAY,EAAE,IAAI;YAClB,WAAW,EAAE,IAAI;YACjB,IAAI,EAAC;gBACH,OAAO,EAAE,uBAAuB;aACjC;SACF,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAG,MAAM,EAAC;gBACR,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,IAAI,CAAC,SAAS,EAAE,CAAC;aAClB;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iDAAiD;IACjD,eAAe;QACb,IAAI,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,IAAI,IAAI,EAAE;YACrE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAC5B,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAC1D,CAAC,QAAQ,CAAC;YACX,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;YAC5B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CACrB,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAC1D,CAAC,UAAU,CAAC;YACb,IAAI,WAAW,IAAI,iBAAiB,EAAE;gBACpC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,uDAAuD;gBACvD,wBAAwB;gBACxB,KAAK;aACN;iBAAM;gBAEL,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;aAC3B;SACF;IACH,CAAC;IAED,2HAA2H;IAC3H,gBAAgB,CAAC,IAAY;QAC3B,IAAI,IAAI,IAAI,IAAI,EAAE;YAChB,OAAO,IAAI,IAAI,CAAC,mCAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;SACpD;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,wDAAwD;IACxD,YAAY;QACV,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,EAAE;YACnC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;gBACzB,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,WAAW;gBAChD,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,WAAW;gBAChD,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,UAAU;gBAC5C,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,SAAS;gBAC5C,aAAa,EAAE,IAAI,CAAC,kBAAkB,CAAC,eAAe;gBACtD,cAAc,EAAE,IAAI,CAAC,kBAAkB,CAAC,cAAc;gBACtD,cAAc,EAAE,IAAI,CAAC,kBAAkB,CAAC,gBAAgB;gBACxD,eAAe,EAAE,IAAI,CAAC,gBAAgB,CACpC,IAAI,CAAC,kBAAkB,CAAC,eAAe,CACxC;gBACD,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAClC,IAAI,CAAC,kBAAkB,CAAC,aAAa,CACtC;gBACD,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,UAAU;gBAC5C,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,CAAC,WAAW;aACxD,CAAC,CAAC;SACJ;IACH,CAAC;IAED,oGAAoG;IACpG,cAAc,CAAC,gBAAwB;QACrC,IAAI,CAAC,sBAAsB;aACxB,qBAAqB,CAAC,gBAAgB,CAAC;aACvC,SAAS,CACR,CAAC,WAAyB,EAAE,EAAE;YAC5B,IAAI,CAAC,kBAAkB,GAAG,WAAW,CAAC;YACtC,IAAI,CAAC,sBAAsB,CAAC,eAAe,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;YAClF,IAAI,IAAI,CAAC,kBAAkB,CAAC,YAAY,IAAI,sBAAsB,EAAE;gBAClE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;aAC9B;YACD,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC,EACD,KAAK,CAAC,EAAE;YACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kCAAkC,EAAE,GAAG,EAAE;gBAC3D,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,CAAC,aAAa,CAAC;gBAC3B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CACF,CAAC;IACN,CAAC;IACD,WAAW;QACT,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,CAAC;IAC3C,CAAC;;gGAvuBU,wBAAwB;wGAAxB,wBAAwB;;kEA8BxB,iEAAkB;;;;;qFAnClB,EAAE;;QC5Cf;QAAA,8EACE;QAAA;QAAA,sFACE;QAAA;QAAA,0EACE;QAAA;QAAA,yEACE;QAAA;QAAA,yEACE;QAAA;QAAA,4IACE;QAIF;QAAA,6IACE;QAYJ;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,wEAAY;QAAA,2EAA2B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QAEtE;QAAA,4EACA;QADsG,sJAAS,oBAAgB,aAAa,CAAC,IAAC;QAA9I,4DACA;QAAA;QAAA,kIACE;QAEF;QAAA,kIACE;QAEJ;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,sFAEE;QAF8C,yJAAS,mBAAe,eAAe,CAAC,IAAC,uGAC3E,mBAAe,eAAe,CAAC,IAD4C;QAEvF;QAAA,6EAAW;QAAA,wEAAY;QAAA,2EAA2B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QACtE;QAIA;QAAA,iFAGA;QAF2C,sJAAY,mBAAe,eAAe,CAAC,IAAC,wFAChB,mBAAe,eAAe,CAAC,IADf;QADvF,4DAGA;QAAA;QAAA,6HAEE;QAEF;QAAA,iIAA4D;QAC5D;QAAA,8FACE;QAAA;QAAA,qIAEE;QACF;QAAA,qIAGE;;QAEJ;QAAA,4DAAmB;QACnB;QAAA,kIACE;QAEF;QAAA,kIACE;QAEJ;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,sFAEE;QAF8C,yJAAS,mBAAe,gBAAgB,CAAC,IAAC,uGAC5E,mBAAe,gBAAgB,CAAC,IAD4C;QAExF;QAAA,6EAAW;QAAA,2EAAe;QAAA,2EAA2B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QACzE;QAIA;QAAA,iFAIA;QAFoC,gJAAS,mBAAe,gBAAgB,CAAC,IAAC,8FAChE,mBAAe,gBAAgB,CAAC,IADgC;QAF9E,4DAIA;QAAA;QAAA,6HAEE;QAEF;QAAA,iIAA6D;QAC7D;QAAA,8FACE;QAAA;QAAA,qIAEE;QACF;QAAA,qIAGE;;QAEJ;QAAA,4DAAmB;QAEnB;QAAA,kIACE;QAEF;QAAA,kIACE;QAEJ;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,sFAEE;QAF8C,yJAAS,mBAAe,UAAU,CAAC,IAAC,iGACzE,mBAAe,UAAU,CAAC,IAD+C;QAElF;QAAA,8EAAW;QAAA,mEAAM;QAAA,4EAA2B;QAAA,+DAAC;QAAA,4DAAO;QAAA,4DAAY;QAChE;QAIA;QAAA,kFAGA;QADE,iJAAS,mBAAe,UAAU,CAAC,IAAC,yFAAU,mBAAe,UAAU,CAAC,IAApC;QAFtC,4DAGA;QAAA;QAAA,+HAEE;QAEF;QAAA,mIAAuD;QACvD;QAAA,+FACE;QAAA;QAAA,uIAEE;QACF;QAAA,uIAGE;;QAEJ;QAAA,4DAAmB;QACnB;QAAA,oIACE;QAEF;QAAA,oIACE;QAEJ;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,uFAEE;QAF8C,0JAAS,mBAAe,UAAU,CAAC,IAAC,wGACtE,mBAAe,UAAU,CAAC,IAD4C;QAElF;QAAA,8EAAW;QAAA,mEAAM;QAAA,4DAAY;QAC7B;QAIA;QAAA,kFAGA;QADE,iJAAS,mBAAe,UAAU,CAAC,IAAC,+FAAa,mBAAe,UAAU,CAAC,IAAvC;QAFtC,4DAGA;QAAA;QAAA,+HAEE;QAEF;QAAA,mIAAuD;QACvD;QAAA,+FACE;QAAA;QAAA,uIAEE;QACF;QAAA,uIAGE;;QAEJ;QAAA,4DAAmB;QACnB;QAAA,oIACE;QAEJ;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,sFACE;QAAA;QAAA,8EAAW;QAAA,4EAAe;QAAA,4EAA2B;QAAA,+DAAC;QAAA,4DAAO;QAAA,4DAAY;QACzE;QAAA,mFACE;QAAA;QAAA,uIAAuE;QACzE;QAAA,4DAAa;QACb;QAAA,oIACE;QAEJ;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,sFACE;QAAA;QAAA,8EAAW;QAAA,wEAAW;QAAA,4DAAY;QAClC;QAAA,mFACE;QAAA;QAAA,uIAA0E;QAC5E;QAAA,4DAAa;QACb;QAAA,oIACE;QAEJ;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,sFACE;QAAA;QAAA,8EAAW;QAAA,uEAAU;QAAA,4EAA2B;QAAA,+DAAC;QAAA,4DAAO;QAAA,4DAAY;QACpE;QAAA,8EAEA;QADE,iSAAS,WAAsB,IAAC;QADlC,4DAEA;QAAA;QAAA,6JAEE;QAEF;QAAA,yFAAiF;QACjF;QAAA,sFAAkE;QAClE;QAAA,oIACE;QAEJ;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,sFACE;QAAA;QAAA,8EAAW;QAAA,qEAAQ;QAAA,2HAAqD;QAAQ,4DAAY;QAE5F;QAAA,8EAGA;QAFE,iSAAS,WAAoB,IAAC;QADhC,4DAGA;QAAA;QAAA,6JAEE;QAGF;QAAA,yFAA+E;QAC/E;QAAA,sFAAgE;QAEhE;QAAA,oIACE;QAEJ;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QACN;QAAA,sEAAiD;QACjD;QAAA,sEAAiD;QAKnD;QAAA,4DAAM;QACN;QAAA,4EACE;QAAA;QAAA,4EACE;QAAA;QAAA,+HACE;QAEF;QAAA,+EAAgE;QAAxB,kJAAS,iBAAa,IAAC;QAAC,yDAAY;QAAA,4DAAS;QAEvF;QAAA,4DAAM;QACR;QAAA,4DAAM;QACR;QAAA,4DAAO;QACT;QAAA,4DAAmB;QACrB;QAAA,4DAAW;QAEX;;;;;;;;QAxPkC,0DAAwB;QAAxB,qFAAwB;QAGhC,0DAAsB;QAAtB,oFAAsB;QAKtB,0DAAsB;QAAtB,oFAAsB;QAetB,0DAA+B;QAA/B,uGAA+B;QAIlC,0DAA0D;QAA1D,wHAA0D;QAG1D,0DAAyD;QAAzD,uHAAyD;QAMtD,0DAA+B;QAA/B,uGAA+B;QAOhB,0DAA2B;QAA3B,wFAA2B;QAGzB,0DAAsC;QAAtC,oGAAsC;QAIjD,0DAAuC;QAAvC,qGAAuC;QAGvD,0DAAkG;QAAlG,oKAAkG;QAIlG,0DAAiD;QAAjD,+JAAiD;QAI1C,0DAA4D;QAA5D,0HAA4D;QAG5D,0DAAgE;QAAhE,8HAAgE;QAM7D,0DAA+B;QAA/B,uGAA+B;QAOhB,0DAA+B;QAA/B,4FAA+B;QAI7B,0DAAuC;QAAvC,qGAAuC;QAIlD,0DAAwC;QAAxC,sGAAwC;QAGxD,0DAAoG;QAApG,sKAAoG;QAIpG,0DAAkD;QAAlD,gKAAkD;QAK3C,0DAA6D;QAA7D,2HAA6D;QAG7D,0DAAiE;QAAjE,+HAAiE;QAM9D,0DAA+B;QAA/B,uGAA+B;QAOhB,0DAA0B;QAA1B,uFAA0B;QAGxB,0DAAiC;QAAjC,+FAAiC;QAI5C,0DAAkC;QAAlC,gGAAkC;QAGlD,0DAAwF;QAAxF,0JAAwF;QAGrC,0DAA4C;QAA5C,2JAA4C;QAKxF,0DAAuD;QAAvD,qHAAuD;QAGvD,0DAA2D;QAA3D,yHAA2D;QAMxD,0DAA+B;QAA/B,uGAA+B;QAOhB,0DAAyB;QAAzB,sFAAyB;QAGvB,0DAAiC;QAAjC,+FAAiC;QAI5C,0DAAkC;QAAlC,gGAAkC;QAGlD,0DAAwF;QAAxF,0JAAwF;QAGrC,0DAA4C;QAA5C,2JAA4C;QAKxF,0DAA2D;QAA3D,yHAA2D;QAMxD,0DAA+B;QAA/B,uGAA+B;QAEL,0DAA0B;QAA1B,uFAA0B;QACpD,0DAAmC;QAAnC,qFAAmC;QAEtC,0DAAwD;QAAxD,sHAAwD;QAMrD,0DAA+B;QAA/B,uGAA+B;QAG/B,0DAAsC;QAAtC,wFAAsC;QAEzC,0DAA2D;QAA3D,yHAA2D;QAMxD,0DAA+B;QAA/B,uGAA+B;QAEc,0DAAiC;QAAjC,+EAAiC;QAE3D,0DAAwC;QAAxC,sGAAwC;QAIxC,0DAAuB;QAAvB,qEAAuB;QAE7C,0DAA8D;QAA9D,4HAA8D;QAM3D,0DAA+B;QAA/B,uGAA+B;QACA,0DAAyB;QAAzB,uFAAyB;QAEtD,0DAA+B;QAA/B,+EAA+B;QAGd,0DAAsC;QAAtC,oGAAsC;QAKtC,0DAAqB;QAArB,qEAAqB;QAG3C,0DAA4D;QAA5D,0HAA4D;QAc9B,2DAAsB;QAAtB,oFAAsB;QAGD,0DAAY;QAAZ,6EAAY;;6FDjMzE,wBAAwB;cATpC,uDAAS;eAAC;gBACT,QAAQ,EAAE,sBAAsB;gBAChC,WAAW,EAAE,mCAAmC;gBAChD,SAAS,EAAE,CAAC,mCAAmC,CAAC;gBAChD,SAAS,EAAE,EAAE;aACd;0jBAKiC,iBAAiB;kBAAhD,uDAAS;mBAAC,mBAAmB;YA6BC,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;;;;;;;;;;;;;;AEhF/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AAK5B;AAC6B;AAC9D,gDAAgD;AAChD,uFAAuF;AACnB;AAC9B;AACqB;AACE;AACZ;AAI0B;;;;;;;;;;;;;;;;;ICC3D,yEAOE;IAAA,6GACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,uIACF;;;IAIA,yEAOE;IAAA,gHACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,uIACF;;;IAZF,4EACE;IAAA;IAAA,mIAOE;IAEF;IAAA,mIACE;IAEJ;IAAA,qEAAe;;;IAGb,yEAOE;IAAA,2GACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,4IACF;;;IAIA,yEAOE;IAAA,4GACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,sIACF;;;IAGA,yEAOE;IAAA,2GACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,2IACF;;;IAGA,yEAOE;IAAA,yGACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,yIACF;;;IAGA,yEAOE;IAAA,uGACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,wIACF;;;IAIA,yEACE;IAAA,gHACF;IAAA,4DAAK;;;;IACL,yEACE;IAAA;IAAA,+EACG;IAD+B,kXAA8B;IAC7D,qEAAU;IAAA,4DACZ;IACH;IAAA,4DAAK;;;IAGL,yEACE;IAAA,mHACF;IAAA,4DAAK;;;;IACL,yEACE;IAAA;IAAA,+EACG;IADwE,4XAAwC;IAChH,qEAAU;IAAA,4DACZ;IACH;IAAA,4DAAK;;;;IAH+B,0DAAwC;IAAxC,2GAAwC;;;IAM5E,yEACE;IAAA,uGACF;IAAA,4DAAK;;;;IACL,yEACE;IAAA;IAAA,0EACA;IAAA;IAAA,0EACE;IAAA;IAAA,+EACC;IADgC,kXAA8B;IAC9D,+DAAI;IAAA,4DACN;IACH;IAAA,4DAAO;IACP;IAAA,2EACE;IAAA;IAAA,gFAAoG;IAAnC,uXAAkC;IAAC,iEAAK;IAAA,4DAAW;IACtH;IAAA,4DAAM;IACJ;IAGJ;IAAA,4DAAM;IACJ;IAAA,4DAAK;;;;IAX+D,0DAA4B;IAA5B,iGAA4B;IAKpF,0DAA6B;IAA7B,kGAA6B;;;IAS3C,oEAAgD;;;IAChD,oEAAqD;;;IACrD,yEACE;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAC/C;IAAA,4DAAK;;;ADxIZ,MAAM,yBAAyB;IAkDpC,YAAqB,KAAa,EACxB,sBAA8C,EAAU,SAAsB,EAC/E,UAAsB,EAAU,OAA0B,EAAU,MAAkB;QAF1E,UAAK,GAAL,KAAK,CAAQ;QACxB,2BAAsB,GAAtB,sBAAsB,CAAwB;QAAU,cAAS,GAAT,SAAS,CAAa;QAC/E,eAAU,GAAV,UAAU,CAAY;QAAU,YAAO,GAAP,OAAO,CAAmB;QAAU,WAAM,GAAN,MAAM,CAAY;QA9C/F,mBAAc,GAAG,KAAK,CAAC;QACvB,aAAQ,GAAY,KAAK,CAAC;QAE1B,iBAAY,GAAa,EAAE,CAAC;QAG5B,wBAAmB,GAAG,KAAK,CAAC;QAC5B,SAAI,GAAG,EAAE,CAAC;QACV,YAAO,GAAG,KAAK,CAAC;QAChB,aAAQ,GAAG,IAAI,IAAI,EAAE,CAAC;QACtB,cAAS,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,cAAS,GAAG,KAAK,CAAC;QAGlB,8DAA8D;QAC9D,kBAAa,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAC;QAC7D,eAAU,GAAG,IAAI,0EAAkB,EAAgB,CAAC;QAMpD,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QAgC9C,UAAK,GAAa;YAChB,aAAa;YACb,aAAa;YACb,kBAAkB;YAClB,YAAY;YACZ,iBAAiB;YACjB,eAAe;YACf,cAAc;YACd,gBAAgB;YAChB,mBAAmB;YACnB,QAAQ;SACT,CAAC;QACF,UAAK,GAAa;YAChB,aAAa;YACb,kBAAkB;YAClB,YAAY;YACZ,iBAAiB;YACjB,eAAe;YACf,cAAc;YACd,gBAAgB;YAChB,mBAAmB;YACnB,QAAQ;SACT,CAAC;QA7BA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;QAChD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QACnD,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,EAAE;YAC9D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IApDyB,CAAC;IAsB3B,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAC3D;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SAChE;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;YAC7B,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;SACvC;QACD,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACjC,IAAI,CAAC,UAAU,CAAC,mBAAmB,GAAG,CAAC,IAAS,EAAE,YAAoB,EAAU,EAAE;YAChF,IAAI,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,QAAQ,EAAE;gBAC1C,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,iBAAiB,EAAE,CAAC;aAC/C;YAED,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC;QAC5B,CAAC;IAEH,CAAC;IAkCD,YAAY;IACZ,8CAA8C;IAC9C,yDAAyD;IACzD,+CAA+C;IAC/C,wDAAwD;IACxD,oDAAoD;IACpD,gDAAgD;IAChD,KAAK;IAEL,YAAY;IACZ,8CAA8C;IAC9C,iDAAiD;IACjD,yDAAyD;IACzD,+CAA+C;IAC/C,wDAAwD;IACxD,oDAAoD;IACpD,gDAAgD;IAChD,KAAK;IAEL,QAAQ;QACN,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,UAAU,CAAC;QACtF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACvF,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,IAAI,GAAC,IAAI,CAAC,KAAK,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAG,IAAI,CAAC,QAAQ,IAAI,iBAAiB,EAAC;YACpC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;SACtB;aACI,IAAG,IAAI,CAAC,QAAQ,IAAI,iBAAiB,EAAC;YAEzC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SACrB;IAEH,CAAC;IAED,aAAa;QACX,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC;IAChE,CAAC;IACD,WAAW,CAAC,aAA2B;QACrC,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAClE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC;IAChE,CAAC;IACD,QAAQ,CAAC,WAA0B;QACjC,IAAG,WAAW,CAAC,YAAY,IAAI,kBAAkB,IAAG,WAAW,CAAC,YAAY,IAAI,6BAA6B,IAAI,WAAW,CAAC,YAAY,IAAI,QAAQ,IAAI,WAAW,CAAC,YAAY,KAAK,SAAS,IAAI,WAAW,CAAC,YAAY,KAAK,sBAAsB;YACpP,OAAO,IAAI,CAAC,aAAa,CAAC;QAE5B,OAAO,EAAE,QAAQ,EAAC,SAAS,EAAE,CAAC;IAChC,CAAC;IACD,iBAAiB,CAAC,WAA0B;QAC1C,IAAG,WAAW,CAAC,YAAY,IAAG,WAAW;YACvC,OAAO,EAAE,QAAQ,EAAC,SAAS,EAAE,CAAC;QAEhC,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IACD,OAAO,CAAC,WAA0B;QAChC,IAAG,WAAW,CAAC,YAAY,IAAI,kBAAkB,IAAG,WAAW,CAAC,YAAY,IAAI,6BAA6B,IAAI,WAAW,CAAC,YAAY,IAAI,QAAQ;YACnJ,OAAO,IAAI,CAAC,aAAa,CAAC;QAE5B,OAAO,EAAE,QAAQ,EAAC,SAAS,EAAE,CAAC;IAChC,CAAC;IAED,gEAAgE;IAChE,uCAAuC;IACvC,qDAAqD;IACrD,sBAAsB;IACtB,kGAAkG;IAClG,6BAA6B;IAC7B,oIAAoI;IACpI,oCAAoC;IACpC,YAAY;IACZ,eAAe;IACf,iIAAiI;IACjI,WAAW;IACX,4BAA4B;IAC5B,iIAAiI;IACjI,cAAc;IACd,SAAS;IACT,wBAAwB;IACxB,QAAQ;IAER,IAAI;IAEJ,iGAAiG;IACjG,gBAAgB,CAAC,IAAoB;QACnC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACf,IAAI,CAAC,CAAC,eAAe,IAAI,IAAI,EAAE;gBAC7B,CAAC,CAAC,eAAe,GAAG,mCAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;aACpE;YACD,IAAI,CAAC,CAAC,aAAa,IAAI,IAAI,EAAE;gBAC3B,CAAC,CAAC,aAAa,GAAG,mCAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;aAChE;QACH,CAAC,CAAC;QACF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAE3B,CAAC;IACD,cAAc,CAAC,WAA0B;QACvC,IAAI,OAAO,GAAG,WAAW,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACvG,IAAI,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACxC,IAAK,OAAO,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,EAAC;YAE7E,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,sBAAsB;QACpB,IAAI,CAAC,gBAAgB,GAAG,IAAI,wDAAS,CAAC;YACpC,eAAe,EAAG,IAAI,0DAAW,CAAC,IAAI,EAAC,yDAAU,CAAC,QAAQ,CAAC;YAC3D,SAAS,EAAG,IAAI,0DAAW,CAAC,IAAI,EAAE,yDAAU,CAAC,QAAQ,CAAC;SACvD,CAAC;IACJ,CAAC;IAED,eAAe,CAAC,WAA0B;QAExC,IAAI,CAAC,sBAAsB,CAAC,eAAe,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,CACrE,2DAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAE,GAAG,CAAC,EAAE;YAEzB,IAAG,GAAG,IAAI,CAAC,EACV;gBACE,+CAA+C;gBAC/C,iFAAiF;gBACjF,oCAAoC;gBACpC,2BAA2B;gBAC3B,OAAO;gBACP,IAAI;gBAEJ,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;gBAChC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sFAAmB,EAAE;oBACtD,IAAI,EAAE,EAAC,cAAc,EAAG,WAAW,CAAC,aAAa,EAAE,SAAS,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC,WAAW,EAAC;oBAC1I,YAAY,EAAE,IAAI;oBAClB,WAAW,EAAE,IAAI;iBAClB,CAAC,CAAC;gBAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;oBAEzC,iFAAiF;oBACjF,IAAG,MAAM,IAAI,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,OAAO,EAAC;wBAClD,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;wBACjE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;wBACrD,IAAI,CAAC,YAAY,EAAE,CAAC;wBACpB,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;wBACjE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;qBACtD;gBAGH,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,kBAAkB,GAAG,WAAW,CAAC;gBACtC,IAAG,WAAW,CAAC,aAAa,IAAI,IAAI;oBAClC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC;wBAC/B,eAAe,EAAG,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;wBACrD,SAAS,EAAG,IAAI,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC;qBAC5C,CAAC;gBACJ,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;aACxD;iBACI,IAAG,GAAG,IAAI,CAAC,CAAC,EAAC;gBAChB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oDAAoD,EAAE,GAAG,EAAE;oBAC7E,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;iBACC;gBACD,IAAI,CAAC,OAAO,GAAG,IAAI;gBACnB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kEAAkE,EAAE,GAAG,EAAE;oBAC5F,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACJ,6HAA6H;aAC7H;QAEH,CAAC,CAAC,CAAC;IAGL,CAAC;IAED,OAAO,CAAC,WAA0B;QAChC,IAAG,WAAW,CAAC,YAAY,IAAI,QAAQ,EAAC;YACtC,OAAO,KAAK,CAAC;SACd;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,iCAAiC;IACjC,eAAe;QACb,IAAI,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACzF,IAAI,WAAW,KAAK,iBAAiB,EAAE;YACrC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;SAC5B,CAAC,+CAA+C;QAEhD,IAAI,CAAC,SAAS,GAAG,kBAAkB,CAAC;QAErC,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;QAC5B,IAAI,CAAC,sBAAsB,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC;aACpF,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,GAAmB,EAAE,EAAE;YACzC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC;YACzB,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACjC,IAAI,CAAC,UAAU,CAAC,mBAAmB,GAAG,CAAC,IAAS,EAAE,YAAoB,EAAU,EAAE;gBAChF,IAAI,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,QAAQ,EAAE;oBAC1C,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,iBAAiB,EAAE,CAAC;iBAC/C;gBAED,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC;YAC5B,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAE;YACd,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,sFAAsF;YACtF,oBAAoB;YACpB,iCAAiC;YACjC,6BAA6B;YAC7B,MAAM;QACT,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,aAA2B;QACrC,IAAI,CAAC,YAAY,GAAE,aAAa,CAAC,YAAY,CAAC;QAC9C,IAAG,IAAI,CAAC,YAAY,KAAK,kBAAkB;YAC1C,IAAI,CAAC,YAAY,KAAK,QAAQ,IAAI,IAAI,CAAC,YAAY,KAAK,6BAA6B,EAAC;YACrF,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YAClE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,0BAA0B,GAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;SAEpE;aACG;YAEH,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YAClE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;SACzD;QACA,qEAAqE;QACrE,gEAAgE;IAElE,CAAC;IAED,qBAAqB,CAAC,cAA6B;QACjD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,oCAAoC,GAAE,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC;IACxF,CAAC;IAED,YAAY;QACV,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,aAAa,IAAI,IAAI,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,EAAC;YAC3F,IAAI,CAAC,kBAAkB,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,aAAa,CAAC;YAClF,IAAI,CAAC,kBAAkB,CAAC,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC;YACtE,IAAI,CAAC,sBAAsB,CAAC,wBAAwB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,CACjF,2DAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAE,GAAG,GAAE;gBACxB,IAAG,GAAG,IAAI,CAAC,EAAC;oBACX,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;oBACjC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,wCAAwC,EAAE,GAAG,EAAE;wBACjE,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACH,sHAAsH;oBACtH,IAAI,CAAC,eAAe,EAAE,CAAC;iBACvB;qBACG;oBACH,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;oBACjC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,2BAA2B,EAAE,GAAG,EAAE;wBACpD,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACH,0FAA0F;iBAC1F;YACH,CAAC,EACF,CAAC,KAAK,EAAC,EAAE;gBACP,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;gBACjC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;oBACpC,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,uEAAuE;YAEzE,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAEC,SAAS;QACP,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;IACnC,CAAC;;kGApXU,yBAAyB;yGAAzB,yBAAyB;wEAwBzB,wEAAY;wEACZ,8DAAO;;;;;qFA3BP,EAAE;QCzBX;QAAA,yEACE;QAAA;QAAA,qEAAI;QAAA,6FACI;QAAA,4EACE;QADqD,iJAAS,mBAAe,IAAC;QAC9E,wFAAW;QAAA,4DAAS;QAC9B;QAAA,4DAAK;QACT;QAAA,4DAAM;QAAA,2EACA;QAAA;QAAA,uFACE;QAAA;QAAA,0EACE;QAAA;QAAA,4EAQE;QAAA;QAAA,4EACE;QAAA;QAAA,qHAOE;QAEF;QAAA,qHACE;QAEJ;QAAA,qEAAe;QAEf;QAAA,yIACE;QAcF;QAAA,4EACE;QAAA;QAAA,qHAOE;QAEF;QAAA,qHACE;QAEJ;QAAA,qEAAe;QAEf;QAAA,6EACE;QAAA;QAAA,qHAOE;QAEF;QAAA,qHACE;QAEJ;QAAA,qEAAe;QACf;QAAA,6EACE;QAAA;QAAA,qHAOE;QAEF;QAAA,qHACE;QAEJ;QAAA,qEAAe;QACf;QAAA,6EACE;QAAA;QAAA,qHAOE;QAEF;QAAA,qHACE;QAEJ;QAAA,qEAAe;QACf;QAAA,6EACE;QAAA;QAAA,qHAOE;QAEF;QAAA,qHACE;QAEJ;QAAA,qEAAe;QAEf;QAAA,6EACE;QAAA;QAAA,sHACE;QAEF;QAAA,sHACE;QAIJ;QAAA,qEAAe;QACf;QAAA,6EACE;QAAA;QAAA,sHACE;QAEF;QAAA,sHACE;QAIJ;QAAA,qEAAe;QACf;QAAA,6EACE;QAAA;QAAA,sHACE;QAEF;QAAA,uHACE;QAcJ;QAAA,qEAAe;QAEf;QAAA,sHAA2C;QAC3C;QAAA,sHAAgD;QAChD;QAAA,sHACE;QAEJ;QAAA,4DAAQ;QACV;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,gFAGiB;QACnB;QAAA,4DAAM;QACR;QAAA,4DAAmB;QACrB;QAAA,4DAAW;QAKjB;;QAvKc,2DAAyB;QAAzB,sFAAyB;QAoBgB,0DAAiB;QAAjB,6EAAiB;QAgIvC,2DAAuB;QAAvB,qFAAuB;QAC9B,0DAAmC;QAAnC,sFAAmC;QAQ/C,0DAAgC;QAAhC,kJAAgC;;6FD7IjC,yBAAyB;cANrC,uDAAS;eAAC;gBACT,QAAQ,EAAE,uBAAuB;gBACjC,WAAW,EAAE,oCAAoC;gBACjD,SAAS,EAAE,CAAC,oCAAoC,CAAC;gBACjD,SAAS,EAAE,EAAE;aACd;miBAyB4C,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACH,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AErDtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAkD;;;;;;;;;;;;ICMtC,4EACI;IADgC,uUAAkB;IAClD;IAAA,2EAAU;IAAA,qEAAU;IAAA,4DAAW;IAAA,6EACnC;IAAA,4DAAS;;;IARrB,8EACI;IAAA;IAAA,yEACI;IAAA;IAAA,yEACI;IAAA,kGACJ;IAAA,4DAAM;IACN;IAAA,yEACI;IAAA;IAAA,oIACI;IAER;IAAA,4DAAM;IACV;IAAA,4DAAM;IACN;IAAA,oFACI;IAAA;IAAA,0EACI;IAAA;IAAA,0EACI;IAAA;IAAA,0EACI;IAAA;IAAA,0EAA+D;IAAA,wEAAY;IAAA,4DAAM;IACjF;IAAA,0EAAsB;IAAA,wDAA8B;IAAA,4DAAM;IAC9D;IAAA,4DAAM;IACV;IAAA,4DAAM;IACN;IAAA,0EACI;IAAA;IAAA,0EACI;IAAA;IAAA,0EAA+D;IAAA,wEAAY;IAAA,4DAAM;IACjF;IAAA,0EAAsB;IAAA,wDAA8B;IAAA,4DAAM;IAC9D;IAAA,4DAAM;IACV;IAAA,4DAAM;IACN;IAAA,0EACI;IAAA;IAAA,0EACI;IAAA;IAAA,0EAA+D;IAAA,wEAAY;IAAA,4DAAM;IACjF;IAAA,0EAAsB;IAAA,wDAAyC;IAAA,4DAAM;IACzE;IAAA,4DAAM;IACV;IAAA,4DAAM;IACV;IAAA,4DAAM;IACN;IAAA,0EACI;IAAA;IAAA,0EACI;IAAA;IAAA,0EACI;IAAA;IAAA,0EAA+D;IAAA,2EAAe;IAAA,4DAAM;IACpF;IAAA,0EAAsB;IAAA,wDAAmC;IAAA,4DAAM;IACnE;IAAA,4DAAM;IACV;IAAA,4DAAM;IACN;IAAA,0EACI;IAAA;IAAA,0EACI;IAAA;IAAA,0EAA+D;IAAA,kEAAM;IAAA,4DAAM;IAC3E;IAAA,0EAAsB;IAAA,wDAA6B;IAAA,4DAAM;IAC7D;IAAA,4DAAM;IACV;IAAA,4DAAM;IACN;IAAA,0EACI;IAAA;IAAA,0EACI;IAAA;IAAA,0EAA+D;IAAA,kEAAM;IAAA,4DAAM;IAC3E;IAAA,0EAAsB;IAAA,wDAA6B;IAAA,4DAAM;IAC7D;IAAA,4DAAM;IACV;IAAA,4DAAM;IACV;IAAA,4DAAM;IACN;IAAA,0EACI;IAAA;IAAA,0EACI;IAAA;IAAA,0EACI;IAAA;IAAA,0EAA+D;IAAA,4EAAe;IAAA,4DAAM;IACpF;IAAA,2EAAsB;IAAA,yDAA8B;IAAA,4DAAM;IAC9D;IAAA,4DAAM;IACV;IAAA,4DAAM;IACN;IAAA,2EACI;IAAA;IAAA,2EACI;IAAA;IAAA,2EAA+D;IAAA,uEAAU;IAAA,4DAAM;IAC/E;IAAA,2EAAsB;IAAA,yDAAiC;IAAA,4DAAM;IACjE;IAAA,4DAAM;IACV;IAAA,4DAAM;IACN;IAAA,2EACI;IAAA;IAAA,2EACI;IAAA;IAAA,2EAA+D;IAAA,0EAAa;IAAA,4DAAM;IAClF;IAAA,2EAAsB;IAAA,yDAA+B;IAAA,4DAAM;IAC/D;IAAA,4DAAM;IACV;IAAA,4DAAM;IACV;IAAA,4DAAM;IACN;IAAA,2EACI;IAAA;IAAA,2EACI;IAAA;IAAA,2EACI;IAAA;IAAA,2EAA+D;IAAA,uEAAU;IAAA,4DAAM;IAC/E;IAAA,2EAAsB;IAAA,yDAAsD;;IAAA,4DAAM;IACtF;IAAA,4DAAM;IACV;IAAA,4DAAM;IACN;IAAA,2EACI;IAAA;IAAA,2EACI;IAAA;IAAA,2EAA+D;IAAA,qEAAQ;IAAA,4DAAM;IAC7E;IAAA,2EAAsB;IAAA,yDAAoD;;IAAA,4DAAM;IACpF;IAAA,4DAAM;IACV;IAAA,4DAAM;IACV;IAAA,4DAAM;IACV;IAAA,4DAAmB;IACvB;IAAA,4DAAW;;;IAjFoB,0DAAgB;IAAhB,iFAAgB;IAUL,2DAA8B;IAA9B,0GAA8B;IAM9B,2DAA8B;IAA9B,0GAA8B;IAM9B,2DAAyC;IAAzC,qHAAyC;IAQzC,2DAAmC;IAAnC,+GAAmC;IAMnC,2DAA6B;IAA7B,yGAA6B;IAM7B,2DAA6B;IAA7B,yGAA6B;IAQ7B,2DAA8B;IAA9B,0GAA8B;IAM9B,2DAAiC;IAAjC,6GAAiC;IAMjC,2DAA+B;IAA/B,2GAA+B;IAQ/B,2DAAsD;IAAtD,gMAAsD;IAMtD,2DAAoD;IAApD,8LAAoD;;ADpEvF,MAAM,uBAAuB;IAgBlC,YAAoB,QAAwB,EAClC,sBAA8C,EAC9C,SAAsB,EACtB,MAAc,EACd,UAAsB;QAJZ,aAAQ,GAAR,QAAQ,CAAgB;QAClC,2BAAsB,GAAtB,sBAAsB,CAAwB;QAC9C,cAAS,GAAT,SAAS,CAAa;QACtB,WAAM,GAAN,MAAM,CAAQ;QACd,eAAU,GAAV,UAAU,CAAY;QAbhC,aAAQ,GAAY,IAAI,CAAC;QACzB,aAAQ,GAAY,KAAK,CAAC;IAapB,CAAC;IAEP,QAAQ;QACN,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,WAAmB,EAAE,EAAE;YAC7D,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,UAAU,CAAC;QACtF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACvF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAEvF,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,sBAAsB,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAC7F,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC3B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,sBAAsB,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACvF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAED,iBAAiB;QACf,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;YACtB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACrC;IACH,CAAC;IACO,cAAc,CAAC,gBAAwB;QAC7C,IAAI,CAAC,sBAAsB;aACxB,qBAAqB,CAAC,gBAAgB,CAAC;aACvC,SAAS,EAAE,CAAC,IAAI,CACf,CAAC,WAAyB,EAAE,EAAE;YAC5B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;YAC/B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,CAAC,CAAC,CAAC,KAAK,CACR,KAAK,CAAC,EAAE;YACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;gBAClE,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CACF,CAAC;IACN,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC;;8FApEU,uBAAuB;uGAAvB,uBAAuB;QCdpC,gIACI;QAuFJ;;QAxFuB,8EAAgB;;6FDc1B,uBAAuB;cALnC,uDAAS;eAAC;gBACT,QAAQ,EAAE,qBAAqB;gBAC/B,WAAW,EAAE,kCAAkC;gBAC/C,SAAS,EAAE,CAAC,kCAAkC,CAAC;aAChD;;;;;;;;;;;;;;AEbD;AAAA;AAAA;AAAA;AAAA;AAAkD;;;;AAO3C,MAAM,yBAAyB;IAEpC,gBAAgB,CAAC;IAEjB,QAAQ;IACR,CAAC;;kGALU,yBAAyB;yGAAzB,yBAAyB;QCPtC,yEACI;QAAA;QAAA,2EAA+B;QACnC;QAAA,4DAAM;QAEN;QAIA;QAAA,iFAMI;QAAA;QAAA,uEAAmB;QAAA,sEAAW;QAAA,4DAAI;QACtC;QAAA,4DAAc;;QAJb,0DAAoB;QAApB,6EAAoB;;6FDJR,yBAAyB;cALrC,uDAAS;eAAC;gBACT,QAAQ,EAAE,wBAAwB;gBAClC,WAAW,EAAE,qCAAqC;gBAClD,SAAS,EAAE,CAAC,qCAAqC,CAAC;aACnD;;;;;;;;;;;;;;AEND;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsF;AAErB;AACnB;AAE8D;AAGX;AAI1B;AACZ;AAI0C;AAC3C;AAC4B;AAIA;AACrC;AAED;AACqD;;;;;;;;;;;;;;;;;;;;;;;;;;;ICXrF,6EAEA;IADmC,qUAAqB,kBAAkB,KAAE;IAC5E;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC1B;IAAA,4DAAS;;;;IAET,iFAEA;IADA,sZAA2C;IAC3C,uDACA;IAAA,4DAAa;;;IAHoC,2EAAc;IAE/D,0DACA;IADA,2HACA;;;IAGA,4EACE;IAAA,kHACJ;IAAA,4DAAY;;;IA6CR,yEAA+E;IAAA,wEAAa;IAAA,4DAAK;;;IACjG,yEAAwC;IAAA,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,oGAAyB;;;IAGjE,yEAA+E;IAAA,sEAAW;IAAA,4DAAK;;;IAC/F,yEAAwC;IAAA,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,mGAAwB;;;IAGhE,yEAA+E;IAAA,gEAAK;IAAA,4DAAK;;;IACzF,yEAAwC;IAAA,uDAAkB;IAAA,4DAAK;;;IAAvB,0DAAkB;IAAlB,6FAAkB;;;IAG1D,yEAA+E;IAAA,qEAAU;IAAA,4DAAK;;;IAC9F,yEAAwC;IAAA,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,kGAAuB;;;IAI/D,yEAA+E;IAAA,wEAAa;IAAA,4DAAK;;;;IAI9F,6EACG;IADuE,ocAA6C,cAAc,KAAE;IACpI;IAAA,sEAAK;IAAA,iEAAM;IAAA,4DAAM;IACpB;IAAA,4DAAS;;;IALZ,yEACG;IAAA,uDAEA;IAAA,uIACG;IAEN;IAAA,4DAAK;;;IALF,0DAEA;IAFA,sKAEA;IAAQ,0DAAkC;IAAlC,gGAAkC;;;IAM7C,yEAA+E;IAAA,0EAAe;IAAA,4DAAK;;;;IAGhG,6EACG;IADyE,ocAA6C,gBAAgB,KAAE;IACxI;IAAA,sEAAK;IAAA,iEAAM;IAAA,4DAAM;IACpB;IAAA,4DAAS;;;IAJZ,yEACG;IAAA,uDACA;IAAA,uIACG;IAEN;IAAA,4DAAK;;;IAJF,0DACA;IADA,kJACA;IAAQ,0DAAoC;IAApC,kGAAoC;;;IAU/C,yEAA+E;IAAA,uEAAY;IAAA,4DAAK;;;IAChG,yEAAwC;IAAA,uDAAiC;IAAA,4DAAK;;;IAAtC,0DAAiC;IAAjC,4GAAiC;;;IAGzE,yEAA+E;IAAA,mEAAQ;IAAA,4DAAK;;;IAEzF,+EAA2D;IAAA,gEAAK;IAAA,4DAAW;;;IAC3E,+EAAyD;IAAA,gEAAK;IAAA,4DAAW;;;IAF5E,yEACG;IAAA;IAAA,2IAA2D;IAC3D;IAAA,2IAAyD;IAC5D;IAAA,4DAAK;;;IAFQ,0DAA0B;IAA1B,wFAA0B;IAC1B,0DAA2B;IAA3B,yFAA2B;;;IAIxC,yEAA+E;IAAA,mEAAQ;IAAA,4DAAK;;;IAEzF,+EAA2D;IAAA,gEAAK;IAAA,4DAAW;;;IAC3E,+EAAyD;IAAA,gEAAK;IAAA,4DAAW;;;IAF5E,yEACG;IAAA;IAAA,2IAA2D;IAC3D;IAAA,2IAAyD;IAC5D;IAAA,4DAAK;;;IAFQ,0DAA0B;IAA1B,wFAA0B;IAC1B,0DAA2B;IAA3B,yFAA2B;;;IAIxC,yEAA+E;IAAA,uEAAY;IAAA,4DAAK;;;IAChG,yEAAwC;IAAA,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,mGAAwB;;;IAGhE,yEAA+E;IAAA,oEAAS;IAAA,4DAAK;;;IAC7F,yEAAwC;IAAA,uDAAqB;IAAA,4DAAK;;;IAA1B,0DAAqB;IAArB,gGAAqB;;;IAG7D,yEAA+E;IAAA,mEAAQ;IAAA,4DAAK;;;;IAC5F,yEAA4I;IAAvE,6ZAAsE;IAAC,gEAAK;IAAA,4DAAK;;;IAEzJ,oEAA4D;;;IAC5D,oEAAkE;;;IAI/D,yEAAgE;IAAA,wEAAa;IAAA,4DAAK;;;IAClF,yEAAwC;IAAA,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,oGAAyB;;;IAGjE,yEAA+D;IAAA,sEAAW;IAAA,4DAAK;;;IAC/E,yEAAwC;IAAA,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,mGAAwB;;;IAGhE,yEAA+D;IAAA,gEAAK;IAAA,4DAAK;;;IACzE,yEAAwC;IAAA,uDAAkB;IAAA,4DAAK;;;IAAvB,0DAAkB;IAAlB,6FAAkB;;;IAG1D,yEAA+D;IAAA,qEAAU;IAAA,4DAAK;;;IAC9E,yEAAwC;IAAA,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,kGAAuB;;;IAI/D,yEAA+D;IAAA,wEAAa;IAAA,4DAAK;;;IACjF,yEACG;IAAA,uDACH;IAAA,4DAAK;;;IADF,0DACH;IADG,6IACH;;;IAGA,yEAA+D;IAAA,0EAAe;IAAA,4DAAK;;;IACnF,yEACG;IAAA,uDACH;IAAA,4DAAK;;;IADF,0DACH;IADG,+IACH;;;IAGA,yEAA+D;IAAA,uEAAY;IAAA,4DAAK;;;IAChF,yEAAwC;IAAA,uDAAiC;IAAA,4DAAK;;;IAAtC,0DAAiC;IAAjC,4GAAiC;;;IAGzE,yEAA+D;IAAA,mEAAQ;IAAA,4DAAK;;;IAC5E,yEAAuC;IAAA,uDACvC;IAAA,4DAAK;;;IADkC,0DACvC;IADuC,mIACvC;;;IAGA,yEAA+D;IAAA,mEAAQ;IAAA,4DAAK;;;IAC5E,yEAAuC;IAAA,uDACvC;IAAA,4DAAK;;;IADkC,0DACvC;IADuC,mIACvC;;;IAGA,yEAA+D;IAAA,uEAAY;IAAA,4DAAK;;;IAChF,yEAAwC;IAAA,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,mGAAwB;;;IAGhE,yEAA+D;IAAA,oEAAS;IAAA,4DAAK;;;IAC7E,yEAAwC;IAAA,uDAAqB;IAAA,4DAAK;;;IAA1B,0DAAqB;IAArB,iGAAqB;;;IAEhE,oEAAoE;;;IACpE,oEAA0E;;;IAMhF,0EACG;IAAA;IAAA,2FAA2D;IAAA,qFAC3D;IAAA,4DAAuB;IAC3B;IAAA,4DAAM;;;ADxKP,MAAM,6BAA6B;IAkFtC,YACU,2BAAwD,EAEzD,UAAsB,EACrB,QAAqB,EACrB,MAAiB,EACjB,YAA2B,EAC3B,mBAAwC,EACxC,KAAa,EAAU,EAAe;QAPtC,gCAA2B,GAA3B,2BAA2B,CAA6B;QAEzD,eAAU,GAAV,UAAU,CAAY;QACrB,aAAQ,GAAR,QAAQ,CAAa;QACrB,WAAM,GAAN,MAAM,CAAW;QACjB,iBAAY,GAAZ,YAAY,CAAe;QAC3B,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,UAAK,GAAL,KAAK,CAAQ;QAAU,OAAE,GAAF,EAAE,CAAa;QAzFhD,qBAAgB,GAAG,2DAAW,CAAC,oBAAoB,CAAC;QAGpD,iBAAY,GAAa,EAAE,CAAC;QAC5B,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QAO9C,+BAA0B,GAAG,IAAI,yHAAoB,EAAE,CAAC;QACxD,qBAAgB,GAAQ,EAAE,CAAC;QAK3B,cAAS,GAAY,KAAK,CAAC;QAC3B,gBAAW,GAAY,KAAK,CAAC;QAC7B,eAAU,GAAG,KAAK,CAAC;QACnB,kBAAa,GAAG,KAAK,CAAC;QACtB,eAAU,GAAG,KAAK,CAAC;QACnB,kBAAa,GAAG,KAAK,CAAC;QACtB,mBAAc,GAAG,CAAC,CAAC;QACnB,UAAK,GAAW,CAAC,CAAC;QAClB,gBAAW,GAAW,kBAAkB,CAAC;QACzC,iBAAY,GAAW,CAAC,CAAC;QAEzB,eAAU,GAAiB,EAAE,CAAC;QAE9B,QAAG,GAAG,EAAE,CAAC;QACT,SAAI,GAAC,CAAC,CAAC;QACP,+CAA+C;QAC/C,cAAS,GAAY,KAAK,CAAC;QAG3B,0BAAqB,GAAY,KAAK,CAAC;QAEvC,2BAAsB,GAAW,EAAE,CAAC;QACpC,uBAAkB,GAAW,EAAE,CAAC;QAChC,cAAS,GAAG,KAAK,CAAC;QAClB,aAAQ,GAAG,KAAK,CAAC;QAGjB,gBAAW,GAAG,IAAI,CAAC;QAMnB,cAAS,GAAG,IAAI,uEAAc,CAAuB,IAAI,EAAE,EAAE,CAAC,CAAC;QAS/D,qBAAgB,GAAa,CAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,gBAAgB;YAC7F,sBAAsB,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU;YAC9E,aAAa,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC;QAE3C,6BAAwB,GAAa,CAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,gBAAgB;YACnG,sBAAsB,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU;YAC9E,aAAa,EAAE,OAAO,CAAC,CAAC;QAGvB,iBAAiB;QACjB,mBAAc,GAAuB,EAAE,CAAC;QACxC,wBAAmB,GAAqB,IAAI,8GAAgB,EAAE,CAAC;QAC/D,iBAAY,GAAG,EAAE,CAAC;QAClB,gBAAW,GAAqB,IAAI,8GAAgB,EAAE,CAAC;QACvD,mBAAc,GAAY,KAAK,CAAC;QAChC,gBAAW,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,UAAU,CAAC;QACvF,iBAAY,GAAW,GAAG,CAAC;QAC3B,iBAAY,GAAQ,EAAE,CAAC;QACvB,WAAM,GAAY,KAAK,CAAC;QAetB,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,EAAE;YAC9D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IAEL,CAAC;IAID,QAAQ;QACN,qEAAqE;QACrE,oCAAoC;QACpC,MAAM;QACN,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACnC,kBAAkB,EAAE,CAAC,EAAE,EAAC,CAAE,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC/C,WAAW,EAAE,CAAC,KAAK,CAAC;YACpB,aAAa,EAAE,CAAC,KAAK,CAAC;YACtB,YAAY,EAAE,CAAC,KAAK,CAAC;YACrB,eAAe,EAAE,CAAC,KAAK,CAAC;YACxB,YAAY,EAAE,CAAC,KAAK,CAAC;YACrB,eAAe,EAAC,CAAC,KAAK,CAAC;SAGxB,CAAC,CAAC;QAGH,IAAI,CAAC,2BAA2B,CAAC,0BAA0B,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YAC5E,GAAG,CAAC;YACJ,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;QAEvB,CAAC,CAAC;QACF,IAAI,CAAC,0BAA0B,CAAC,gBAAgB,GAAG,EAAE,CAAC;QACtD,0BAA0B;IAE5B,CAAC;IAGD,QAAQ;QACN,sDAAS,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;IACvD,CAAC;IACD,eAAe;QACb,oDAAoD;IACtD,CAAC;IAEC,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,WAAW,EAAC;gBACd,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;aACzD;iBACG;gBACJ,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;gBACxE,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;aAChC;SACJ;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACxE,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SAChC;IACL,CAAC;IAKH,WAAW,CAAC,KAAU,EAAE,OAAY;QAClC,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI,IAAI,OAAO,EAAE;YACpC,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAChD,IAAI,IAAI,CAAC,4BAA4B,CAAC,MAAM,GAAG,CAAC,EAAE;gBAChD,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;aAC1B;SACF;aACI;YACH,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,IAAI,OAAO,EAAE;gBACrC,IAAI,KAAK,GAAG,IAAI,CAAC,4BAA4B,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;gBACrG,IAAI,CAAC,4BAA4B,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBACnD,IAAI,IAAI,CAAC,4BAA4B,CAAC,MAAM,IAAI,CAAC,EAAE;oBACjD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;iBACzB;aACF;SACF;IACH,CAAC;IACD,UAAU;QACR,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,SAAS,CAAC;QACd,IAAG,IAAI,CAAC,WAAW,EAAC;YAClB,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iGAAsB,EAAE;gBAEnD,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK;gBAC7B,IAAI,EAAE;oBACJ,4BAA4B,EAAE,IAAI,CAAC,4BAA4B;iBAChE;aAEF,CAAC,CAAC;SACJ;QAGD,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEtB,CAAC,CAAC,CAAC;IACL,CAAC;IAID,kBAAkB;QAChB,IAAI,IAAI,CAAC,0BAA0B,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;YACjE,gDAAgD;YAChD,kDAAkD;YAClD,OAAO,KAAK,CAAC;SACd;;YAEC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,SAAS;QAGP,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;IAED,SAAS,CAAC,IAAY;QACpB,IAAI,IAAI,IAAI,QAAQ,EAAE;YACpB,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;SACpD;QACD,IAAI,IAAI,IAAI,eAAe,EAAE;YAC3B,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;SAC7B;QACD,IAAI,IAAI,IAAI,SAAS,EAAE;YACrB,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC;SACnC;IACH,CAAC;IAGD,2BAA2B,CAAC,YAAY;QACtC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;QAClC,IAAI,CAAC,2BAA2B,CAAC,4BAA4B,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,GAA0B,EAAE,EAAE;YAC9H,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC;YAC/B,IAAI,CAAC,sBAAsB,GAAG,qBAAqB,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;QAClG,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,oBAAoB;IACpB,MAAM,CAAC,MAAM;QACX,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QACvD,qDAAqD;IACvD,CAAC;IAED,eAAe,CAAC,IAAS;QACvB,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IACD,0BAA0B,CAAC,KAAU;QACnC,IAAI,KAAK,EAAE;YACR,IAAI,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YACrD,kCAAkC;YAElC,IAAI,YAAY,KAAK,EAAE,EAAE;gBACvB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC;aACtC;YACD,mHAAmH;YACnH,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;YAEzB,8GAA8G;YAC9G,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC3B,wHAAwH;gBACxH,0DAA0D;gBAC1D,IAAI;gBACF,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE;oBACpH,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;iBACtD;YACH,CAAC,CAAC,CAAC;SACJ;aACI;YACH,0BAA0B;YAC1B,mCAAmC;SACpC;IACH,CAAC;IACD,WAAW,CAAC,SAAS;QACnB,IAAI,SAAS,IAAI,kBAAkB,EAAE;YACnC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC5D,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;SAC1B;IAEH,CAAC;IAGD,UAAU;QACR,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;QAG3B,IAAI,CAAC,wBAAwB,GAAG,EAAE,CAAC;QACnC,IAAI,CAAC,4BAA4B,GAAG,EAAE,CAAC;QACvC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QAGf,IAAI,mBAAmB,GAAyB,IAAI,yHAAoB,EAAE,CAAC;QAC3E,mBAAmB,CAAC,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,gBAAgB,CAAC;QACnF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAEtB,6BAA6B;QAC7B,mBAAmB,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,CAAE;QAChI,mBAAmB,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,CAAE;QACtI,mBAAmB,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,CAAE;QACnI,mBAAmB,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,aAAa,CAAC,CAAE;QAC5I,mBAAmB,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,CAAE;QACnI,mBAAmB,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,aAAa,CAAC,CAAE;QAC5I,mBAAmB,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE;QAC7E,2EAA2E;QAC3E,mFAAmF;QAEnF,IAAI;QACJ,SAAS;QACT,yCAAyC;QAEzC,mBAAmB;QAInB,MAAM;QAEN,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,2BAA2B,CAAC,yBAAyB,CAAC,mBAAmB,CAAC,CAAC,SAAS,CACvF,CAAC,GAA2B,EAAE,EAAE;YAC9B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,IAAI,CAAC,wBAAwB,GAAG,GAAG,CAAC;YAEpC,IAAI,CAAC,IAAI,CAAC,wBAAwB,IAAI,IAAI,CAAC,wBAAwB,CAAC,MAAM,IAAI,CAAC,EAAE;gBAE/E,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,EAAE;oBACzC,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,UAAU,CAAC,GAAG,EAAE,CACd,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;gBACzC,4GAA4G;gBAC5G,IAAI,CAAC,WAAW,GAAG,kBAAkB,CAAC;gBACtC,IAAI,CAAC,KAAK,EAAE,CAAC;aACd;;gBAEC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC;YACzD,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAuB,IAAI,CAAC,wBAAwB,CAAC,CAAC;YAC9F,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACnC,CAAC,EACD,KAAK,CAAC,EAAE;YACN,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,EAAE;gBAChD,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,CAAC,aAAa,CAAC;gBAC3B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACH,UAAU,CAAC,GAAG,EAAE,CACd,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YACzC,8GAA8G;QAChH,CAAC,CAEF;QACD,6CAA6C;IAE/C,CAAC;IAED,OAAO,CAAC,KAAK;QACX,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC;IACnC,CAAC;IAED,SAAS,CAAC,KAAU;QAClB,OAAO,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1C,CAAC;IAED,KAAK;QACH,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,0BAA0B,GAAG,IAAI,yHAAoB,EAAE,CAAC;QAC7D,IAAI,CAAC,UAAU,GAAI,IAAI,0EAAkB,CAAC,EAAE,CAAC,CAAC;QAC9C,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACjC,8CAA8C;QAC9C,oCAAoC;QAGpC,IAAI,CAAC,4BAA4B,GAAG,EAAE,CAAC;QACvC,IAAI,CAAC,0BAA0B,CAAC,gBAAgB,GAAG,EAAE,CAAC;QACtD,IAAI,CAAC,wBAAwB,GAAG,EAAE,CAAC;QACnC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,kBAAkB,CAAC;QACtC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,sBAAsB;QACtB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;IAC3B,CAAC;IAMD,UAAU;IACV,YAAY;QACV,8CAA8C;QAC9C,IAAI,CAAC,mBAAmB,GAAG,IAAI,8GAAgB,EAAE,CAAC;QAClD,IAAI,IAAI,CAAC,4BAA4B,IAAI,IAAI,CAAC,4BAA4B,CAAC,MAAM,GAAG,CAAC,EAAE;YAErF,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,mBAAmB,GAAG,IAAI,8GAAgB,EAAE,CAAC;SACnD;aACI;YACH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,2BAA2B,EAAE,EAAE,EAAE;gBAClD,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,CAAC,aAAa,CAAC;gBAC3B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACH,UAAU,CAAC,GAAG,EAAE,CACd,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YACzC,+GAA+G;SAChH;IACH,CAAC;IAED,WAAW;QACT,6BAA6B;QAC7B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,eAAe,CAAC,KAAK;QACnB,IAAI,CAAC,mBAAmB,CAAC,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC;QACjD,IAAI,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;QAClE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACpB,IAAI,CAAC,mBAAmB,CAAC,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;SACvD;IACH,CAAC;IAGD,aAAa;QACX,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,4BAA4B,IAAI,IAAI,CAAC,4BAA4B,CAAC,MAAM,GAAG,CAAC,EAAE;YACrF,IAAI,CAAC,4BAA4B,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBAClD,IAAI,CAAC,WAAW,GAAG,IAAI,8GAAgB,EAAE,CAAC;gBAC1C,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;gBACjD,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC;gBAC9C,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;gBAC/C,IAAI,IAAI,CAAC,mBAAmB,CAAC,SAAS,GAAG,CAAC,EAAE;oBAC1C,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC;oBAChE,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC;iBACrE;qBACI,IAAI,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE;oBAC7C,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC;oBACpE,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,CAAC,CAAC;iBAChC;qBACI;oBACH,qHAAqH;oBACrH,OAAO;iBACR;gBACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC7C,CAAC,CAAC,CAAC;YAEH,QAAQ;YACR,IAAI,IAAI,CAAC,mBAAmB,CAAC,SAAS,GAAG,CAAC,EAAE;gBAC1C,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAW,EAAE,EAAE;oBACrF,IAAI,GAAG,IAAI,CAAC,EAAE;wBACZ,IAAI,CAAC,mBAAmB,EAAE,CAAC;wBAC3B,yHAAyH;wBACzH,IAAI,CAAC,UAAU,EAAE,CAAC;wBAClB,IAAI,CAAC,eAAe,EAAE,CAAC;qBACxB;yBACI,IAAI,GAAG,IAAI,CAAC,CAAC,EAAE;wBAClB,0IAA0I;qBAC3I;gBACH,CAAC,CAAC,EACA,KAAK,CAAC,EAAE;oBACN,kHAAkH;gBACpH,CAAC,CAAC,CAAC;aACN;YAED,QAAQ;iBACH,IAAI,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE;gBAC7C,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAW,EAAE,EAAE;oBACrF,IAAI,GAAG,IAAI,CAAC,EAAE;wBACZ,IAAI,CAAC,mBAAmB,EAAE,CAAC;wBAC3B,yHAAyH;wBACzH,IAAI,CAAC,UAAU,EAAE,CAAC;wBAClB,IAAI,CAAC,eAAe,EAAE,CAAC;qBACxB;yBACI,IAAI,GAAG,IAAI,CAAC,CAAC;wBAChB,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC;oBAC7C,mKAAmK;gBACrK,CAAC,CAAC,EACA,KAAK,CAAC,EAAE;oBACN,kHAAkH;gBACpH,CAAC,CAAC,CAAC;aACN;SACF;IACH,CAAC;IAED,aAAa;QACX,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAED,eAAe;QACb,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,mBAAmB,CAAC,0BAA0B,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,GAAuB,EAAE,EAAE;YAC1G,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBACpB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC;YAC3E,CAAC,CAAC;QACJ,CAAC,EACC,KAAK,CAAC,EAAE;YACN,mHAAmH;QACrH,CAAC,CAAC,CAAC;IACP,CAAC;IAED,mBAAmB;QACjB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,mBAAmB,GAAG,IAAI,8GAAgB,EAAE,CAAC;QAClD,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,IAAI,8GAAgB,EAAE,CAAC;IAC5C,CAAC;IAED,YAAY;QACV,IAAI,IAAI,CAAC,YAAY,IAAI,GAAG,EAAE;YAC5B,IAAI,CAAC,mBAAmB,CAAC,WAAW,GAAG,EAAE,CAAC;SAC3C;aACI;YACH,IAAI,CAAC,mBAAmB,GAAG,IAAI,8GAAgB,EAAE,CAAC;SACnD;IACH,CAAC;IACD,iBAAiB,CAAC,QAAQ,EAAE,IAAI;QAC9B,IAAI,QAAQ,IAAI,mBAAmB,EAAE;YACnC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;SACjC;IAEH,CAAC;IACD,QAAQ,CAAC,EAAU,EAAE,SAAkB;QACrC,IAAI,SAAS,EAAE;YACb,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACnB;aAAM;YACL,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACnC,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;gBACd,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;aAC3B;SACF;IAEH,CAAC;IACD,eAAe,CAAC,KAAK,EAAE,SAAS;QAC9B,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACrC,8CAA8C;QACjD,oCAAoC;IAEnC,CAAC;IAGD,aAAa,CAAC,KAAK,EAAE,SAAiB;QACpC,IAAI,OAAO,GAAG,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC;QACnC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,SAAS,IAAI,cAAc,EAAE;YAC/B,SAAS,GAAG,IAAI,CAAC;SAClB;QACD,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,GAAiB,EAAE,EAAE;YAC1E,IAAI,CAAC,kBAAkB,GAAG,mBAAmB,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;YACpE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBAChB,IAAI,CAAC,CAAC,SAAS,IAAI,SAAS;oBAC1B,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;YACnC,CAAC,CAAC;YACF,IAAI,SAAS,CAAC;YAChB,IAAG,IAAI,CAAC,aAAa,EAAC;gBACpB,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kGAAsB,EAAE;oBAEnD,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK;oBAC7B,IAAI,EAAE;wBACJ,UAAU,EAAE,IAAI,CAAC,UAAU;qBAC5B;iBAEF,CAAC,CAAC;aACJ;YACD,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;gBACzC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;YACvC,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,CAAC;IAEL,CAAC;IAEH,kBAAkB,CAAC,KAAa,EAAE,OAAe;QAC/C,IAAI,oBAAoB,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iHAA2B,EAAE;YAEvE,KAAK,EAAE,OAAO;YACd,IAAI,EAAE;gBACJ,UAAU,EAAE,KAAK;gBACjB,YAAY,EAAE,OAAO;aACtB;SAEF,CAAC,CAAC;IACL,CAAC;;0GAjlBU,6BAA6B;6GAA7B,6BAA6B;;kEAoD3B,iEAAkB;wEAGlB,+DAAO;wEACP,wEAAY;;;;;;;;QChG3B,mFACG;QAAA;QAAA,yFACE;QAD8C,+KAAe,CAAC,IAAC,uHAAgB,CAAC,IAAjB;QAC/D;QAAA,6FACE;QAAA;QAAA,kFACI;QAAA;QAAA,2EAAU;QAAA,sEAAW;QAAA,4DAAW;QAAC,iGACrC;QAAA,4DAAkB;QACnB;QAAA,4DAA6B;QAE7B;QAAA,2EACC;QAAA;QAAA,0EACG;QAAA;QAAA,0EAEG;QAAA;QAAA,qFACG;QAAA;QAAA,6EAAW;QAAA,yEAAa;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QAAA,4DAAY;QACtE;QAAA,4EAEA;QAFmB,2JAAS,sCAAkC,IAAC;QAA/D,4DAEA;QAAA;QAAA,iIAEA;QAEA;QAAA,2FACA;QAAA;QAAA,0IAEA;QAEA;QAAA,4DAAmB;QAEnB;QAAA,wIACE;QAEL;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QAEN;QAAA,0EACG;QAAA;QAAA,oFAA4E;QAAA,mEAAO;QAAA,4DAAe;QAClG;QAAA,oFAA8E;QAAA,qEAAS;QAAA,4DAAe;QACtG;QAAA,oFAA4C;QAAA,oEAAQ;QAAA,4DAAe;QACnE;QAAA,oFAA+C;QAAA,wEAAY;QAAA,4DAAe;QAC1E;QAAA,oFAA4C;QAAA,oEAAQ;QAAA,4DAAe;QACnE;QAAA,oFAA+C;QAAA,wEAAY;QAAA,4DAAe;QAC7E;QAAA,4DAAM;QAEN;QAAA,0EACC;QAAA;QAAA,2EACC;QAAA;QAAA,8EAA2D;QAAlB,sJAAS,WAAO,IAAC;QAAC,iEAAK;QAAA,4DAAS;QACzE;QAAA,8EAAmH;QAArD,sJAAS,gBAAY,IAAC;QAA+B,kEAAM;QAAA,4DAAS;QACnI;QAAA,4DAAM;QACR;QAAA,4DAAM;QACR;QAAA,4DAAM;QACT;QAAA,4DAAO;QACR;QAAA,4DAAsB;QACxB;QAAA,4DAAgB;QAEf;QAAA,gFACI;QAAA;QAAA,oFACG;QAAA;QAAA,0EACE;QAAA;QAAA,2EACE;QAAA;QAAA,qEAAG;QAAA,0EAAc;QAAA,4DAAI;QACtB;QAAA,wEAAM;QAAA,wDAAgB;QAAA,4DAAO;QAC/B;QAAA,4DAAM;QACJ;QAAA,2EACG;QAAA;QAAA,4EACG;QAAA;QAAA,yEAEG;QADA,iJAAS,cAAU,IAAC;QACpB;QAAA,sEAAiC;QACrC;QAAA,4DAAI;QACN;QAAA,4DAAO;QACV;QAAA,4DAAM;QACT;QAAA,4DAAM;QAEN;QAAA,4EAEG;QAAA;QAAA,kFACG;QAAA;QAAA,8EACG;QAAA;QAAA,4HAA+E;QAC/E;QAAA,4HAAwC;QAC3C;QAAA,qEAAe;QACf;QAAA,8EACG;QAAA;QAAA,4HAA+E;QAC/E;QAAA,4HAAwC;QAC3C;QAAA,qEAAe;QACf;QAAA,8EACG;QAAA;QAAA,4HAA+E;QAC/E;QAAA,4HAAwC;QAC3C;QAAA,qEAAe;QACf;QAAA,8EACG;QAAA;QAAA,4HAA+E;QAC/E;QAAA,4HAAwC;QAC3C;QAAA,qEAAe;QAEf;QAAA,8EACG;QAAA;QAAA,4HAA+E;QAC/E;QAAA,4HACG;QAMN;QAAA,qEAAe;QACf;QAAA,8EACG;QAAA;QAAA,4HAA+E;QAC/E;QAAA,4HACG;QAKN;QAAA,qEAAe;QACf;QAIA;QAAA,8EACG;QAAA;QAAA,4HAA+E;QAC/E;QAAA,4HAAwC;QAC3C;QAAA,qEAAe;QACf;QAAA,8EACG;QAAA;QAAA,4HAA+E;QAC/E;QAAA,4HACG;QAGN;QAAA,qEAAe;QACf;QAAA,8EACG;QAAA;QAAA,4HAA+E;QAC/E;QAAA,4HACG;QAGN;QAAA,qEAAe;QACf;QAAA,8EACG;QAAA;QAAA,4HAA+E;QAC/E;QAAA,4HAAwC;QAC3C;QAAA,qEAAe;QACf;QAAA,8EACG;QAAA;QAAA,4HAA+E;QAC/E;QAAA,4HAAwC;QAC3C;QAAA,qEAAe;QACf;QAAA,8EACG;QAAA;QAAA,4HAA+E;QAC/E;QAAA,4HAA4I;QAC/I;QAAA,qEAAe;QACf;QAAA,4HAAuD;QACvD;QAAA,4HAA6D;QAChE;QAAA,4DAAQ;QACR;QAAA,kFACG;QAAA;QAAA,8EACG;QAAA;QAAA,4HAAgE;QAChE;QAAA,4HAAwC;QAC3C;QAAA,qEAAe;QACf;QAAA,8EACG;QAAA;QAAA,4HAA+D;QAC/D;QAAA,4HAAwC;QAC3C;QAAA,qEAAe;QACf;QAAA,8EACG;QAAA;QAAA,4HAA+D;QAC/D;QAAA,4HAAwC;QAC3C;QAAA,qEAAe;QACf;QAAA,8EACG;QAAA;QAAA,4HAA+D;QAC/D;QAAA,4HAAwC;QAC3C;QAAA,qEAAe;QAEf;QAAA,8EACG;QAAA;QAAA,4HAA+D;QAC/D;QAAA,4HACG;QAEN;QAAA,qEAAe;QACf;QAAA,8EACG;QAAA;QAAA,4HAA+D;QAC/D;QAAA,4HACG;QAEN;QAAA,qEAAe;QACf;QAAA,8EACG;QAAA;QAAA,4HAA+D;QAC/D;QAAA,4HAAwC;QAC3C;QAAA,qEAAe;QACf;QAAA,8EACG;QAAA;QAAA,4HAA+D;QAC/D;QAAA,4HAAuC;QAE1C;QAAA,qEAAe;QACf;QAAA,8EACG;QAAA;QAAA,4HAA+D;QAC/D;QAAA,4HAAuC;QAE1C;QAAA,qEAAe;QACf;QAAA,8EACG;QAAA;QAAA,4HAA+D;QAC/D;QAAA,4HAAwC;QAC3C;QAAA,qEAAe;QACf;QAAA,8EACG;QAAA;QAAA,4HAA+D;QAC/D;QAAA,4HAAwC;QAC3C;QAAA,qEAAe;QACf;QAAA,4HAA+D;QAC/D;QAAA,4HAAqE;QACxE;QAAA,4DAAQ;QACX;QAAA,4DAAM;QACN;QAAA,4EACG;QAAA;QAAA,qFAA2E;QAC9E;QAAA,4DAAM;QACN;QAAA,8HACG;QAGN;QAAA,4DAAmB;QACtB;QAAA,4DAAW;;;QAjNa,0DAAuB;QAAvB,oFAAuB;QAOtC,2DAA6B;QAA7B,0FAA6B;QAIZ,0DAA+B;QAA/B,uGAA+B;QAGmB,0DAAwB;QAAxB,gFAAwB;QACxD,0DAA8C;QAA9C,4GAA8C;QAInC,0DAAyB;QAAzB,sFAAyB;QACvD,0DAAoC;QAApC,uFAAoC;QAMrC,0DAAoE;QAApE,kIAAoE;QAOxC,0DAAiC;QAAjC,8FAAiC;QAC/B,0DAAiC;QAAjC,8FAAiC;QAUvC,2DAAsB;QAAtB,mFAAsB;QAavD,2DAAgB;QAAhB,iFAAgB;QAcG,2DAAyB;QAAzB,sFAAyB;QAuE5B,2DAAmC;QAAnC,iGAAmC;QAC1C,0DAAgD;QAAhD,kGAAgD;QAExD,0DAAe;QAAf,wEAAe;QAoDA,2DAA2C;QAA3C,yGAA2C;QAClD,0DAAwD;QAAxD,0GAAwD;QAI7C,0DAAgC;QAAhC,mJAAgC;QAExD,0DAAc;QAAd,4EAAc;;6FDrKf,6BAA6B;cALzC,uDAAS;eAAC;gBACT,QAAQ,EAAE,0BAA0B;gBACpC,WAAW,EAAE,uCAAuC;gBACpD,SAAS,EAAE,CAAC,uCAAuC,CAAC;aACrD;qzBAkDuB,KAAK;kBAAxB,uDAAS;mBAAC,OAAO;YAGa,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;YAGS,IAAI;kBAAzC,uDAAS;mBAAC,+DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACO,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AEhG7C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAqE;AAKI;AAGwB;AAEnD;AAC0C;;;;;;;;;;;;;;;;ICMxE,iFACI;IAAA,uDAAc;IAAA,4DAAa;;;IADe,gFAAoB;IAC9D,0DAAc;IAAd,6GAAc;;;IAHtB,iFAEI;IAAA;IAAA,+IACI;IACR;IAAA,4DAAa;;;IAFG,0DAAiC;IAAjC,wFAAiC;;;IAIjD,uEAGJ;;ADLD,MAAM,sBAAsB;IA2BjC,YACS,SAA+C,EACtB,IAAS,EACjC,QAAqB,EACrB,YAA2B,EAC3B,mBAAwC,EACxC,KAAa,EAAU,EAAe;QALvC,cAAS,GAAT,SAAS,CAAsC;QACtB,SAAI,GAAJ,IAAI,CAAK;QACjC,aAAQ,GAAR,QAAQ,CAAa;QACrB,iBAAY,GAAZ,YAAY,CAAe;QAC3B,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,UAAK,GAAL,KAAK,CAAQ;QAAU,OAAE,GAAF,EAAE,CAAa;QA9BhD,qBAAgB,GAAG,2DAAW,CAAC,oBAAoB,CAAC;QAGpD,iBAAY,GAAa,EAAE,CAAC;QAC5B,iCAA4B,GAA2B,EAAE,CAAC;QAG1D,gBAAW,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,UAAU,CAAC;QAEzF,UAAK,GAAG,OAAO,CAAC;QACb,eAAU,GAAiB,EAAE,CAAC;QAE/B,0BAAqB,GAAY,KAAK,CAAC;QACvC,mBAAc,GAAY,KAAK,CAAC;QAChC,iBAAY,GAAG,EAAE,CAAC;QAClB,mBAAc,GAAuB,EAAE,CAAC;QACxC,gBAAW,GAAqB,IAAI,8GAAgB,EAAE,CAAC;QAGvD,2BAAsB,GAAW,EAAE,CAAC;QACpC,uBAAkB,GAAW,EAAE,CAAC;QAChC,cAAS,GAAY,KAAK,CAAC;QAW7B,IAAI,CAAC,4BAA4B,GAAE,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC;IAExE,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACnC,WAAW,EAAE,CAAC,IAAI,EAAE,yDAAU,CAAC,QAAQ,CAAC;YACxC,aAAa,EAAE,CAAC,IAAI,EAAE,yDAAU,CAAC,QAAQ,CAAC;SAE3C,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,IAAI,CAAC,eAAe,EAAE,CAAC;IAEzB,CAAC;IAED,WAAW;QACT,6BAA6B;QAC7B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,yBAAyB,CAAC,qBAA0B;QAClD,IAAI,CAAC,eAAe,GAAG,qBAAqB,CAAC;IAE/C,CAAC;IACF,aAAa;QACV,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,4BAA4B,IAAI,IAAI,CAAC,4BAA4B,CAAC,MAAM,GAAG,CAAC,EAAE;YACrF,IAAI,CAAC,4BAA4B,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBAElD,IAAI,CAAC,WAAW,GAAG,IAAI,8GAAgB,EAAE,CAAC;gBAC1C,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;gBACjD,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC;gBAC9C,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;gBAC/C,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,EAAE;oBAC5C,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC;oBAClE,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC;iBACvE;qBACI,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,EAAE;oBAC/C,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC;oBACtE,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,CAAC,CAAC;iBAChC;qBACI;oBACH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,iCAAiC,EAAE,EAAE,EAAE;wBACxD,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAC,CAAC,aAAa,CAAC;wBAC1B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACH,UAAU,CAAC,GAAG,EAAE,CAChB,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;oBACvC,OAAO;iBACR;gBACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC7C,CAAC,CAAC,CAAC;YAEH,QAAQ;YACR,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,EAAE;gBAC5C,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAW,EAAE,EAAE;oBACrF,IAAI,GAAG,IAAI,CAAC,EAAE;wBACZ,IAAI,CAAC,mBAAmB,EAAE,CAAC;wBAC3B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,+BAA+B,EAAE,EAAE,EAAE;4BACtD,QAAQ,EAAE,IAAI;4BACd,UAAU,EAAC,CAAC,eAAe,CAAC;4BAC5B,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;wBACH,UAAU,CAAC,GAAG,EAAE,CAChB,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;wBACvC,qBAAqB;wBACrB,IAAI,CAAC,eAAe,EAAE,CAAC;qBACxB;yBACI,IAAI,GAAG,IAAI,CAAC,CAAC,EAAE;wBAClB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,qDAAqD,EAAE,EAAE,EAAE;4BAC5E,QAAQ,EAAE,IAAI;4BACd,UAAU,EAAC,CAAC,aAAa,CAAC;4BAC1B,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;wBACH,UAAU,CAAC,GAAG,EAAE,CAChB,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;wBACvC,0IAA0I;qBAC3I;gBACH,CAAC,CAAC,EACA,KAAK,CAAC,EAAE;oBACN,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,6BAA6B,EAAE,EAAE,EAAE;wBACpD,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAC,CAAC,aAAa,CAAC;wBAC1B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACH,UAAU,CAAC,GAAG,EAAE,CAChB,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;oBACvC,kHAAkH;gBACpH,CAAC,CAAC,CAAC;aACN;YAED,QAAQ;iBACH,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,EAAE;gBAC/C,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAW,EAAE,EAAE;oBACrF,IAAI,GAAG,IAAI,CAAC,EAAE;wBACZ,IAAI,CAAC,mBAAmB,EAAE,CAAC;wBAC3B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gCAAgC,EAAE,EAAE,EAAE;4BACvD,QAAQ,EAAE,IAAI;4BACd,UAAU,EAAC,CAAC,eAAe,CAAC;4BAC5B,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;wBACH,UAAU,CAAC,GAAG,EAAE,CAChB,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;wBACvC,qBAAqB;wBACrB,IAAI,CAAC,eAAe,EAAE,CAAC;qBACxB;yBACI,IAAI,GAAG,IAAI,CAAC,CAAC;wBAClB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,8BAA8B,EAAE,EAAE,EAAE;4BACrD,QAAQ,EAAE,IAAI;4BACd,UAAU,EAAC,CAAC,aAAa,CAAC;4BAC1B,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;oBACH,UAAU,CAAC,GAAG,EAAE,CAChB,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;oBACrC,mKAAmK;gBACvK,CAAC,CAAC,EACA,KAAK,CAAC,EAAE;oBACN,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,6BAA6B,EAAE,EAAE,EAAE;wBACpD,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAC,CAAC,aAAa,CAAC;wBAC1B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACH,UAAU,CAAC,GAAG,EAAE,CAChB,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;oBACvC,kHAAkH;gBACpH,CAAC,CAAC,CAAC;aACN;SACF;IACH,CAAC;IAED,aAAa;QACX,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAED,SAAS;QACP,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAGD,eAAe;QACb,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,mBAAmB,CAAC,0BAA0B,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,GAAuB,EAAE,EAAE;YAC1G,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBACpB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC;YAC3E,CAAC,CAAC;QACJ,CAAC,EACC,KAAK,CAAC,EAAE;YACN,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,8BAA8B,EAAE,EAAE,EAAE;gBACrD,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,CAAC,aAAa,CAAC;gBAC3B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACH,UAAU,CAAC,GAAG,EAAE,CACd,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACP,CAAC;IAED,mBAAmB;QACjB,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,qDAAqD;QACrD,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,IAAI,8GAAgB,EAAE,CAAC;IAC5C,CAAC;IAED,YAAY;QACV,IAAI,IAAI,CAAC,YAAY,IAAI,GAAG,EAAE;YAC5B,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;SAC3D;aACI;YACH,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACvD,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;SAC3D;IACH,CAAC;;4FA5NU,sBAAsB,0MA6BvB,wEAAe;sGA7Bd,sBAAsB;kEAyBtB,iEAAkB;;;;;QC5C/B,wEAAsB;QAAA,oEAAQ;QAAA,4DAAK;QACnC;QAAA,yEACI;QAAA;QAAA,qFACI;QAD2C,0MAA0B;QACrE;QAAA,sFAE6B;QADf,wJAAS,kBAAc,IAAC;QACT,uEAAY;QAAA,4DAAmB;QAC5D;QAAA,uFAEqC;QAArC,yJAAS,kBAAc,IAAC;QAAa,wEAAY;QAAA,4DAAmB;QACxE;QAAA,4DAAkB;QAEtB;QAAA,2EACI;QAAA;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,qEAAS;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QAAA,4DAAY;QAClE;QAAA,kIAEI;QAIJ;QAAA,yHAGJ;QAAA;QAAA,4DAAiB;QAEjB;QAAA,2EACI;QAAA;QAAA,8EAAyC;QAAtB,+IAAS,eAAW,IAAC;QAAC,iEAAK;QAAA,4DAAS;QACvD;QAAA,8EACI;QADkB,+IAAS,mBAAe,IAAC;QAC3C,kFAAI;QAAA,4DAAS;QACrB;QAAA,4DAAM;QACV;QAAA,4DAAM;QACV;QAAA,4DAAO;QACP;QAAA,4DAAM;;QA/B6C,0DAA0B;QAA1B,qFAA0B;QAGrE,0DAAgB;QAAhB,yEAAgB;QAGS,0DAAW;QAAX,oEAAW;QAGtC,0DAA6B;QAA7B,0FAA6B;QAEX,0DAA+B;QAA/B,uGAA+B;QAE9B,0DAA0B;QAA1B,yFAA0B;QAM/B,0DAA0B;QAA1B,yFAA0B;;6FDFjC,sBAAsB;cALlC,uDAAS;eAAC;gBACT,QAAQ,EAAE,qBAAqB;gBAC/B,WAAW,EAAE,kCAAkC;gBAC/C,SAAS,EAAE,CAAC,kCAAkC,CAAC;aAChD;;sBA8BI,oDAAM;uBAAC,wEAAe;2dAJM,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;;;;;;;;;;;;;;AE5C/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAqE;AACI;AAEZ;AAEZ;;;;;;;;;ICHlB,uEAAsB;IAAA,uDAAW;IAAA,4DAAO;;;IAAlB,0DAAW;IAAX,+EAAW;;;IAepD,yEAA+D;IAAA,sEAAW;IAAA,4DAAK;;;IAC/E,yEAAwC;IAAA,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,mGAAwB;;;IAKhE,yEAAgE;IAAA,wEAAY;IAAA,4DAAK;;;IACjF,yEAAwC;IAAA,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,kGAAwB;;;IAIhE,yEAAgE;IAAA,2EAAe;IAAA,4DAAK;;;IACpF,yEAAwC;IAAA,uDAA2B;IAAA,4DAAK;;;IAAhC,0DAA2B;IAA3B,qGAA2B;;;IAGnE,yEAAgE;IAAA,yEAAa;IAAA,4DAAK;;;IAClF,yEAAwC;IAAA,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,mGAAyB;;;IAGjE,yEAAgE;IAAA,uEAAW;IAAA,4DAAK;;;IAChF,yEAAwC;IAAA,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,kGAAwB;;;IAIpE,oEAA6D;;;IAC7D,oEAC0E;;;IAAtE,6HAAgE;;AD9BrE,MAAM,2BAA2B;IActC,YAAmB,SAAoD,EACrC,IAA8C,EAAS,iBAA6C;QADnH,cAAS,GAAT,SAAS,CAA2C;QACrC,SAAI,GAAJ,IAAI,CAA0C;QAAS,sBAAiB,GAAjB,iBAAiB,CAA4B;QAbtI,eAAU,GAAG,IAAI,0EAAkB,EAAO,CAAC;QAK3C,sBAAiB,GAAa;YAC5B,aAAa;YACb,YAAY;YACZ,eAAe;YACf,aAAa;YACb,YAAY;SACb,CAAC;IAEwI,CAAC;IAE3I,QAAQ;QACN,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,iBAAiB,CAAC,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YAC9E,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;YACjC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBACnC,MAAM,CAAC,UAAU,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;YACjE,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,UAAU,GAAI,IAAI,0EAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC/D,CAAC,CAAC;IACJ,CAAC;IAED,SAAS;QACP,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;;sGA/BU,2BAA2B,0MAe5B,wEAAe;2GAfd,2BAA2B;wEAM3B,8DAAO;;;;;QCnBpB,yEACI;QAAA;QAAA,yEACI;QAAA;QAAA,qEAAI;QAAA,8EAAmB;QAAA,yHAAsB;QAAkB,4DAAK;QACxE;QAAA,4DAAM;QACN;QAAA,yEACI;QAAA;QAAA,+EAAgD;QAAtB,sJAAS,eAAW,IAAC;QAAC,iEAAK;QAAA,4DAAW;QACpE;QAAA,4DAAM;QACR;QAAA,4DAAM;QAER;QAAA,0EACI;QAAA;QAAA,0EACI;QAAA;QAAA,qEAAiC;QACjC;QAAA,2EAAkC;QAAA,2EAAe;QAAA,4DAAO;QAC5D;QAAA,4DAAM;QAEN;QAAA,4EACI;QAAA;QAAA,6EACI;QAAA;QAAA,wHAA+D;QAC/D;QAAA,wHAAwC;QAE5C;QAAA,qEAAe;QAEf;QAAA,6EACI;QAAA;QAAA,wHAAgE;QAChE;QAAA,wHAAwC;QAC5C;QAAA,qEAAe;QAEf;QAAA,6EACI;QAAA;QAAA,wHAAgE;QAChE;QAAA,wHAAwC;QAC5C;QAAA,qEAAe;QACf;QAAA,6EACI;QAAA;QAAA,wHAAgE;QAChE;QAAA,wHAAwC;QAC5C;QAAA,qEAAe;QACf;QAAA,6EACI;QAAA;QAAA,wHAAgE;QAChE;QAAA,wHAAwC;QAC5C;QAAA,qEAAe;QAGf;QAAA,wHAAwD;QACxD;QAAA,wHACqE;QACzE;QAAA,4DAAQ;QACZ;QAAA,4DAAM;QACN;;QA5CqC,0DAAe;QAAf,6EAAe;QAa/B,2DAAyB;QAAzB,sFAAyB;QA0BnB,2DAAoC;QAApC,kGAAoC;QAC3C,0DAAiD;QAAjD,mGAAiD;;6FD7BxD,2BAA2B;cALvC,uDAAS;eAAC;gBACT,QAAQ,EAAE,0BAA0B;gBACpC,WAAW,EAAE,uCAAuC;gBACpD,SAAS,EAAE,CAAC,uCAAuC,CAAC;aACrD;;sBAgBI,oDAAM;uBAAC,wEAAe;mKATa,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AEnBtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AAOT;;;;;;;;;;;;;;ICFO,sEAAgC;IAAA,qEAAmB;IAAC;IAAA,4DAAM;;;IAC3C,sEAA+B;IAAA,qFAAmD;IAAA,4DAAM;;;;IACtG,4EAE/C;IADmD,4TAAyB;IAC5E,uDACD;IAAA,4DAAS;;;IADR,0DACD;IADC,sHACD;;ADML,MAAM,gBAAgB;IAe3B,YAAoB,QAAwB,EAAS,MAAc,EAAU,yBAAiD,EAAS,SAAsB;QAAzI,aAAQ,GAAR,QAAQ,CAAgB;QAAS,WAAM,GAAN,MAAM,CAAQ;QAAU,8BAAyB,GAAzB,yBAAyB,CAAwB;QAAS,cAAS,GAAT,SAAS,CAAa;QAd7J,gBAAW,GAAG,CAAC,CAAC;QAChB,iBAAY,GAAG,IAAI,CAAC;QACpB,cAAS,GAAG,KAAK,CAAC;QAIlB,cAAS,GAAG,CAAC,CAAC;QAEd,gBAAW,GAAG,EAAE,CAAC;QACjB,aAAQ,GAAG,EAAE,CAAC;QACd,YAAO,GAAG,IAAI,CAAC;QAEf,iBAAY,GAAW,EAAE,CAAC;IAEuI,CAAC;IAElK,QAAQ;QACN,IAAI,CAAC,yBAAyB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC1F,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,UAAU,CAAC;QACtF,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,yBAAyB,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,CAAC,KAAa,EAAE,EAAE;YAC3G,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAG,IAAI,CAAC,YAAY,IAAI,IAAI,EAAC;gBAC3B,IAAI,IAAI,CAAC,WAAW,IAAI,iBAAiB,IAAI,IAAI,CAAC,YAAY,IAAI,SAAS,EAAE;oBAC3E,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;oBACtB,IAAI,CAAC,QAAQ,GAAG,qBAAqB,CAAC;iBACvC;qBACI;oBACH,IAAG,IAAI,CAAC,WAAW,IAAI,iBAAiB,IAAI,IAAI,CAAC,SAAS,IAAI,aAAa;wBACzE,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;;wBAEvB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;iBACxB;aACF;QACH,CAAC,CAAC,CAAC;QAIH,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,yBAAyB,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAC1F,IAAI,IAAI,KAAK,CAAC,EAAE;gBACd,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;aAC1B;iBACI;gBACH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;aAC3B;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,yBAAyB,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YAChG,mEAAmE;YACnE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC,CAAC;IACJ,CAAC;IACD,cAAc,CAAC,KAAK;QAClB,IAAI,CAAC,yBAAyB,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC5D,CAAC;IAED,aAAa;QACX,IAAI,GAAG,GAAC,EAAE;QACV,IAAI,CAAC,yBAAyB,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,EAAG,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YAC/G,IAAI,GAAG,GAAG,CAAC,EAAE;gBACX,IAAI,IAAI,CAAC,QAAQ,IAAI,qBAAqB,EAAC;oBACzC,GAAG,GAAG,wBAAwB;iBAC/B;gBACD,IAAG,IAAI,CAAC,QAAQ,IAAI,MAAM,EAAC;oBACzB,GAAG,GAAG,8BAA8B;iBACrC;gBACD,+BAA+B;gBAC/B,8HAA8H;gBAC9H,OAAO;gBACP,sHAAsH;gBACtH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE;oBAC5B,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBAEH,UAAU,CAAC,GAAG,EAAE;oBAEJ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;gBAC9C,CAAC,EAAE,IAAI,CAAC,CAAC;aAEpB;YACD,SAAS;YACT,iCAAiC;YACjC,2HAA2H;YAC3H,SAAS;YACT,wHAAwH;YAExH,IAAI;QACN,CAAC,EACC,KAAK,CAAC,EAAE;YACN,iGAAiG;QAEnG,CAAC,CAAC;IACN,CAAC;IAED,MAAM;QACJ,IAAG,IAAI,CAAC,SAAS,IAAI,aAAa,IAAI,IAAI,CAAC,SAAS,IAAI,aAAa;YACnE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,kBAAkB,CAAC,CAAC;;YAE1C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAC/C,CAAC;IAED,WAAW;QACT,IAAI,CAAC,yBAAyB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAChD,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,CAAC;QAC3C,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,CAAC;QACzC,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE,CAAC;IAC9C,CAAC;;gFA9GU,gBAAgB;gGAAhB,gBAAgB;kEAchB,+DAAY;;;;qFAjBZ,EAAE;QCZX;QAAA,yEAA4B;QAAA;QAAA,4EAAsC;QAAnB,wIAAS,YAAQ,IAAC;QAAC,2EAAU;QAAA,qEAAU;QAAA,4DAAW;QAAA,+DAAI;QAAA,4DAAS;QAC9G;QAAA,4DAAM;QACN;QAAA,mFACI;QADW,6KAAqB,0BAAsB,IAAC;QACvD;QAAA,8EAAmC;QAAA;QAAA,mFAA6C;QAAC;QAAA,4DAAU;QAC3F;QAAA,8EAAmD;QAAA;QAAA,8GAAgC;QAA0B,4DAAU;QACvH;QAAA,8EAAkE;QAAA;QAAA,8GAA+B;QAAyD,4DAAU;QACpK;QAAA,8EAAoD;QAAA,oHAE/C;QACQ,+EAAqC;QAElD;QAAA,4DAAU;QAClB;QAAA,4DAAgB;QACZ;;QAX4D,0DAA6B;QAA7B,0FAA6B;QAE5E,0DAA2B;QAA3B,sFAA2B;QAAoB,0DAAyB;QAAzB,sFAAyB;QACxE,0DAA2B;QAA3B,sFAA2B;QAAmC,0DAAyB;QAAzB,sFAAyB;QACvF,0DAA2B;QAA3B,sFAA2B;QAClB,0DAAkB;QAAlB,6EAAkB;;6FDQ/B,gBAAgB;cAP5B,uDAAS;eAAC;gBACT,QAAQ,EAAE,aAAa;gBACvB,WAAW,EAAE,0BAA0B;gBACvC,SAAS,EAAE,CAAC,0BAA0B,CAAC;gBACvC,SAAS,EAAE,EAAE;aACd;wWAgB0B,YAAY;kBAApC,uDAAS;mBAAC,+DAAY;;;;;;;;;;;;;;AE9BzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAqE;AAEJ;AAMgC;AAKtC;AAOc;;;;;;;;ICdjE,yEAAgE;IAAA,oEAAS;IAAA,4DAAK;;;IAChF,yEAAwC;IAAA,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,iGAAsB;;;IAK9D,yEAAgE;IAAA,iFAAqB;IAAA,4DAAK;;;IAC1F,yEAAwC;IAAA,uDAAkC;IAAA,4DAAK;;;IAAvC,0DAAkC;IAAlC,4GAAkC;;;IAIxE,yEAAgE;IAAA,4EAAgB;IAAA,4DAAK;;;IACrF,yEAAwC;IAAA,uDAA6B;IAAA,4DAAK;;;IAAlC,0DAA6B;IAA7B,uGAA6B;;;IAGrE,yEAAgE;IAAA,qEAAS;IAAA,4DAAK;;;IAC9E,yEAAwC;IAAA,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,gGAAsB;;;IAIlE,oEAA4D;;;IAC5D,oEAAkE;;;ADE/D,MAAM,sBAAsB;IAwCjC,YACS,SAA+C,EACtB,IAA8B,EACtD,YAA2B;QAF5B,cAAS,GAAT,SAAS,CAAsC;QACtB,SAAI,GAAJ,IAAI,CAA0B;QACtD,iBAAY,GAAZ,YAAY,CAAe;QAzCrC,iBAAY,GAAa,EAAE,CAAC;QAC5B,sCAAsC;QACtC,yDAAyD;QACzD,iFAAiF;QACjF,iCAA4B,GAA2B,EAAE,CAAC;QAI1D,gBAAW,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,UAAU,CAAC;QAGzF,UAAK,GAAG,OAAO,CAAC;QAId,0BAAqB,GAAY,KAAK,CAAC;QACvC,mBAAc,GAAY,KAAK,CAAC;QAChC,iBAAY,GAAG,EAAE,CAAC;QAClB,mBAAc,GAAuB,EAAE,CAAC;QACxC,gBAAW,GAAqB,IAAI,8GAAgB,EAAE,CAAC;QAGvD,2BAAsB,GAAW,EAAE,CAAC;QACpC,uBAAkB,GAAW,EAAE,CAAC;QAChC,cAAS,GAAY,KAAK,CAAC;QAC3B,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QAS9C,qBAAgB,GAAa,CAAC,WAAW,EAAC,sBAAsB;YAChE,iBAAiB,EAAC,UAAU,CAAC,CAAC;QAY5B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;IAEnC,CAAC;IAEF,QAAQ;IACR,CAAC;IAED,SAAS;QACP,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;;4FA1DU,sBAAsB,0MA0CvB,wEAAe;sGA1Cd,sBAAsB;wEAiCtB,wEAAY;;;;;QC7DzB;QAAA,wEAAsB;QAAA,yEAAc;QAAA,4DAAK;QAEzC;QAAA,yEACA;QAAA;QAAA,2EACI;QAAA;QAAA,2EACI;QAAA;QAAA,kHAAgE;QAClE;QAAA,kHAAwC;QAE1C;QAAA,qEAAe;QAEf;QAAA,4EACE;QAAA;QAAA,kHAAgE;QAChE;QAAA,kHAAwC;QAC1C;QAAA,qEAAe;QAEf;QAAA,4EACI;QAAA;QAAA,kHAAgE;QAChE;QAAA,kHAAwC;QAC1C;QAAA,qEAAe;QACf;QAAA,4EACE;QAAA;QAAA,kHAAgE;QAChE;QAAA,kHAAwC;QAC1C;QAAA,qEAAe;QAGjB;QAAA,kHAAuD;QACvD;QAAA,mHAA6D;QAC7D;QACF;QAAA,4DAAQ;QACV;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,gFAAgE;QAClE;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,8EAA2D;QAAxC,+IAAS,eAAW,IAAC;QAAmB,iEAAK;QAAA,4DAAS;QAE3E;QAAA,4DAAM;;QAjCW,0DAAyB;QAAzB,sFAAyB;QAsBnB,2DAAmC;QAAnC,iGAAmC;QAC1C,0DAAgD;QAAhD,kGAAgD;QAK/C,0DAAgC;QAAhC,kJAAgC;;6FDHpC,sBAAsB;cALlC,uDAAS;eAAC;gBACT,QAAQ,EAAE,qBAAqB;gBAC/B,WAAW,EAAE,kCAAkC;gBAC/C,SAAS,EAAE,CAAC,kCAAkC,CAAC;aAChD;;sBA2CI,oDAAM;uBAAC,wEAAe;+HATkB,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AE9D3C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6E;AACJ;AAEL;AACP;;;;;;;;;;;IC4B/C,4EACE;IAAA,gHACF;IAAA,4DAAY;;ADvBnB,MAAM,wBAAwB;IAGnC,YACU,SAAiD,EACzB,IAAS,EACjC,SAAsB;QAFtB,cAAS,GAAT,SAAS,CAAwC;QACzB,SAAI,GAAJ,IAAI,CAAK;QACjC,cAAS,GAAT,SAAS,CAAa;QAJhC,qBAAgB,GAAG,4DAAW,CAAC,oBAAoB,CAAC;QAMlD,IAAI,CAAC,gBAAgB,GAAG,IAAI,wDAAS,CAAC;YACpC,aAAa,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,yDAAU,CAAC,QAAQ,CAAC;SAC1D,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;IACD,SAAS;QACP,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACpD,CAAC;IAED,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;;gGA1BU,wBAAwB,0MAKzB,wEAAe;wGALd,wBAAwB;QCXrC,yEACI;QAAA;QAAA,wEAAqB;QAAA,kEAAO;QAAA,4DAAK;QAEjC;QAAA,4DAAM;QACN;QAAA,qFAEI;QAAA;QAAA,0EAEE;QAAA;QAkBA;QAAA,0EACE;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,qFACT;QAAA,2EAA2B;QAAA,8DAAC;QAAA,4DAAO;QACrC;QAAA,4DAAY;QACZ;QAAA,0EAA8D;QAC9D;QAAA,kIACE;QAEJ;QAAA,4DAAiB;QACnB;QAAA,4DAAM;QAGN;QAAA,0EACE;QAAA;QAAA,0EACE;QAAA;QAAA,8EACE;QADyB,iJAAS,eAAW,IAAC;QAC9C;QAAA,4EAAU;QAAA,iEAAK;QAAA,4DAAW;QAAA,kFAC5B;QAAA,4DAAS;QACT;QAAA,8EAA4G;QAAtD,iJAAS,UAAM,IAAC;QAAsC,kEAAM;QAAA,4DAAS;QAC7H;QAAA,4DAAM;QACJ;QAAA,4DAAM;QACV;QAAA,4DAAO;QAEb;QAAA,4DAAqB;QAIrB;;QA/CU,0DAA8B;QAA9B,2FAA8B;QAqBhB,0DAA+B;QAA/B,uGAA+B;QAKlC,2DAAkE;QAAlE,gIAAkE;QAYN,2DAAoC;QAApC,iGAAoC;;6FDjC5G,wBAAwB;cALpC,uDAAS;eAAC;gBACT,QAAQ,EAAE,sBAAsB;gBAChC,WAAW,EAAE,mCAAmC;gBAChD,SAAS,EAAE,CAAC,mCAAmC,CAAC;aACjD;;sBAMI,oDAAM;uBAAC,wEAAe;;;;;;;;;;;;;;AEhB3B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AAC6C;AAE/C;AAEV;AACY;AAC5B;AAMa;AAGsC;;;;;;;;;;;;;;;;;;;;;;;;ICA5D,iFAAyE;IAAA,uDAAiB;IAAA,4DAAa;;;IAAtD,mFAAuB;IAAC,0DAAiB;IAAjB,iFAAiB;;;;IAW1F,4EACA;IAD2H,0UAAyB,OAAO,KAAE;IAA7J,4DACA;;;;IAAA,4EACJ;IADgH,0UAAyB,OAAO,KAAE;IAA9I,4DACJ;;;IAHA,sEACI;IAAA;IAAA,2HACA;IAAA;IAAA,2HACJ;IAAA;IAAA,4DAAM;;;IAF2D,0DAAgC;IAAhC,iGAAgC;IAChC,0DAAiC;IAAjC,kGAAiC;;;;IAElG,sEACI;IAAA;IAAA,4EACJ;IADyD,kUAAyB,OAAO,KAAE;IAAvF,4DACJ;IAAA;IAAA,4DAAM;;;IACN,4EACI;IAAA,0HACJ;IAAA,4DAAY;;;IAOR,4EACI;IAAA,yIACJ;IAAA,4DAAY;;;IACZ,4EACI;IAAA,yIACJ;IAAA,4DAAY;;;;IAOR,4FAEI;IADA,uWAA4B,eAAe,KAAE;IAC7C;IAAA,+EAAkC;IAAA,gEAAK;IAAA,4DAAW;IACtD;IAAA,4DAAwB;;;IAGxB,4EACI;IAAA,+IACJ;IAAA,4DAAY;;;IACZ,4EACI;IAAA,wKACJ;IAAA,4DAAY;;;;IA5ChC,sEACA;IAAA;IAAA,yEACI;IAAA;IAAA,0EACI;IAAA;IAAA,oFACI;IAAA;IAAA,4EAAW;IAAA,kEAAO;IAAA,4EAA0B;IAAA,6DAAC;IAAA,4DAAO;IAAA,4DAAY;IAChE;IAAA,kHACI;IAGJ;IAAA,kHACI;IAEJ;IAAA,8HACI;IAER;IAAA,4DAAiB;IACrB;IAAA,4DAAM;IACN;IAAA,2EACA;IAAA;IAAA,qFACY;IAAA;IAAA,6EAAW;IAAA,0EAAc;IAAA,4EAA0B;IAAA,6DAAC;IAAA,4DAAO;IAAA,4DAAY;IACvE;IAAA,6EACA;IADiE,2TAAyB,aAAa,KAAE;IAAzG,4DACA;IAAA;IAAA,8HACI;IAEJ;IAAA,8HACI;IAER;IAAA,4DAAiB;IACrB;IAAA,4DAAM;IACF;IAAA,2EACI;IAAA;IAAA,qFACI;IAAA;IAAA,6EAAW;IAAA,uEAAW;IAAA,4EAA0B;IAAA,6DAAC;IAAA,4DAAO;IAAA,4DAAY;IACpE;IAAA,6EACA;IADgI,0RAAS,WAAoB,IAAC;IAA9J,4DACA;IAAA;IAAA,sJAEI;IAEJ;IAAA,wFAA+E;IAC/E;IAAA,uFAAgD;IAChD;IAAA,8HACI;IAEJ;IAAA,8HACI;IAEN;IAAA,4DAAiB;IACvB;IAAA,4DAAM;IACV;IAAA,4DAAM;IACN;IAAA,2EACI;IAAA;IAAA,8EACE;IADyB,wTAAwB;IACjD;IAAA,4EAAU;IAAA,iEAAK;IAAA,4DAAW;IAC1B,wDACF;IAAA,4DAAS;IACT;IAAA,8EAAwE;IAAnB,kTAAkB;IAAC,wDAAe;IAAA,4DAAS;IAClG;IAAA,4DAAM;IACZ;IAAA,4DAAM;;;;IApDc,0DAA+B;IAA/B,0GAA+B;IAEtC,0DAAwB;IAAxB,yFAAwB;IAIxB,0DAAyB;IAAzB,0FAAyB;IAGnB,0DAAgD;IAAhD,iHAAgD;IAMnD,0DAA+B;IAA/B,0GAA+B;IAGxB,0DAAuD;IAAvD,uHAAuD;IAGvD,0DAAuD;IAAvD,wHAAuD;IAMlD,0DAA+B;IAA/B,0GAA+B;IAE3B,0DAAiB;IAAjB,iFAAiB;IACA,0DAAkC;IAAlC,mGAAkC;IAIlC,0DAAqB;IAArB,qEAAqB;IAE3C,0DAAwD;IAAxD,yHAAwD;IAGxD,0DAAsH;IAAtH,0PAAsH;IASvI,2DACF;IADE,gJACF;IACwE,0DAAe;IAAf,iFAAe;;;IAYxF,iFAA4D;IAAA,uDAAa;IAAA,4DAAa;;;IAA9C,gFAAmB;IAAC,0DAAa;IAAb,8EAAa;;;IAE5E,4EACI;IAAA,mHACJ;IAAA,4DAAY;;;IAOJ,4EACI;IAAA,2IACJ;IAAA,4DAAY;;;;IAOpB,4FAEI;IADA,wWAA4B,cAAc,KAAE;IAC5C;IAAA,+EAAkC;IAAA,gEAAK;IAAA,4DAAW;IACtD;IAAA,4DAAwB;;;IAGxB,4EACI;IAAA,gIACJ;IAAA,4DAAY;;;IASA,4EACI;IAAA,mJACJ;IAAA,4DAAY;;;IACZ,4EACI;IAAA,mJACJ;IAAA,4DAAY;;;IAOZ,4EACI;IAAA,6IACJ;IAAA,4DAAY;;;;IAzDpC,0EACI;IAAA;IAAA,yEACG;IAAA;IAAA,0EACC;IAAA;IAAA,oFACG;IAAA;IAAA,4EAAW;IAAA,iEAAM;IAAA,4EAA0B;IAAA,6DAAC;IAAA,4DAAO;IAAA,4DAAY;IAC/D;IAAA,kFACI;IADmD,oWAA6C;IAChG;IAAA,gIAA4D;IAC/D;IAAA,4DAAa;IACb;IAAA,+HACI;IAER;IAAA,4DAAiB;IACrB;IAAA,4DAAM;IACN;IAAA,2EACI;IAAA;IAAA,qFACI;IAAA;IAAA,6EAAW;IAAA,yEAAa;IAAA,4EAA0B;IAAA,6DAAC;IAAA,4DAAO;IAAA,4DAAY;IAC9D;IAAA,6EACA;IAD+D,4TAAyB,YAAY,KAAE;IAAtG,4DACA;IAAA;IAAA,+HACI;IAEhB;IAAA,4DAAiB;IAClB;IAAA,4DAAM;IACN;IAAA,2EACC;IAAA;IAAA,qFACI;IAAA;IAAA,6EAAW;IAAA,gFAAoB;IAAA,4EAA0B;IAAA,6DAAC;IAAA,4DAAO;IAAA,4DAAY;IAC7E;IAAA,6EACA;IAD6H,2RAAS,WAAmB,IAAC;IAA1J,4DACA;IAAA;IAAA,uJAEI;IAEJ;IAAA,wFAA8E;IAC9E;IAAA,uFAA+C;IAC/C;IAAA,+HACI;IAEN;IAAA,4DAAiB;IACvB;IAAA,4DAAM;IACN;IAAA,4DAAM;IACN;IAAA,0EACI;IAAA;IAAA,2EACI;IAAA;IAAA,qFACI;IAAA;IAAA,6EAAW;IAAA,2EAAe;IAAA,4EAA0B;IAAA,6DAAC;IAAA,4DAAO;IAAA,4DAAY;IAChE;IAAA,6EACA;IADqE,4TAAyB,eAAe,KAAE;IAA/G,4DACA;IAAA;IAAA,+HACI;IAEJ;IAAA,+HACI;IAEhB;IAAA,4DAAiB;IAClB;IAAA,4DAAM;IACN;IAAA,2EACC;IAAA;IAAA,qFACI;IAAA;IAAA,6EAAW;IAAA,qEAAS;IAAA,4EAA0B;IAAA,6DAAC;IAAA,4DAAO;IAAA,4DAAY;IAC1D;IAAA,6EACA;IADmD,4TAAyB,MAAM,KAAE;IAApF,4DACA;IAAA;IAAA,+HACI;IAEhB;IAAA,4DAAiB;IAClB;IAAA,4DAAM;IACN;IAAA,2EACC;IAAA;IAAA,8EACE;IADyB,iUAAgC;IACzD;IAAA,4EAAU;IAAA,iEAAK;IAAA,4DAAW;IAC1B,yDACF;IAAA,4DAAS;IACT;IAAA,+EAA6E;IAAxB,yTAAuB;IAAC,yDAAc;IAAA,4DAAS;IACtG;IAAA,4DAAM;IACZ;IAAA,4DAAM;IACV;IAAA,4DAAO;;;;IApED,yFAAyB;IAGP,0DAA+B;IAA/B,0GAA+B;IAEX,0DAAqB;IAArB,qFAAqB;IACtC,0DAA2B;IAA3B,mFAA2B;IAE/B,0DAAiE;IAAjE,wIAAiE;IAMhE,0DAA+B;IAA/B,0GAA+B;IAGxB,0DAAyE;IAAzE,gJAAyE;IAMhF,0DAA+B;IAA/B,0GAA+B;IAE3B,0DAAiB;IAAjB,iFAAiB;IACA,0DAAsC;IAAtC,uGAAsC;IAItC,0DAAoB;IAApB,qEAAoB;IAE1C,0DAA2E;IAA3E,kJAA2E;IAQtE,0DAA+B;IAA/B,0GAA+B;IAGxB,0DAA8D;IAA9D,8HAA8D;IAG9D,0DAA4D;IAA5D,6HAA4D;IAMnE,0DAA+B;IAA/B,0GAA+B;IAGxB,0DAAsD;IAAtD,qHAAsD;IAQ3E,2DACF;IADE,6IACF;IAC6E,0DAAc;IAAd,gFAAc;;;IAcvF,yEAAgF;IAAA,mEAAO;IAAA,4DAAK;;;IAC5F,yEAAmC;IAAA,uDAAa;IAAA,4DAAK;;;IAAlB,0DAAa;IAAb,8EAAa;;;IAIhD,yEAAgF;IAAA,0EAAc;IAAA,4DAAK;;;IACnG,yEAAmC;IAAA,uDAAmB;IAAA,4DAAK;;;IAAxB,0DAAmB;IAAnB,oFAAmB;;;IAItD,yEAAgF;IAAA,wEAAY;IAAA,4DAAK;;;IACjG,yEAAmC;IAAA,uDAAqB;IAAA,4DAAK;;;IAA1B,0DAAqB;IAArB,sFAAqB;;;IAIxD,yEAAgE;IAAA,iEAAK;IAAA,4DAAK;;;;IAC1E,yEACE;IAAA;IAAA,+EAAuE;IAAvB,iWAAsB;IAAC,+DAAI;IAAA,4DAAW;IACxF;IAAA,4DAAK;;;IAIL,yEAAgE;IAAA,mEAAO;IAAA,4DAAK;;;;IAC5E,yEACE;IAAA;IAAA,+EAA8E;IAA5B,sWAA2B;IAAC,iEAAM;IAAA,4DAAW;IACjG;IAAA,4DAAK;;;IAGP,oEAA+D;;;IAC/D,oEAAqE;;;IACrE,yEACE;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAC/C;IAAA,4DAAK;;;IApCf,sEACA;IAAA;IAAA,0EACI;IAAA;IAAA,4EACI;IAAA;IAAA,4EACI;IAAA;IAAA,8GAAgF;IAChF;IAAA,gHAAmC;IACrC;IAAA,qEAAe;IAEf;IAAA,6EACE;IAAA;IAAA,gHAAgF;IAChF;IAAA,gHAAmC;IACrC;IAAA,qEAAe;IAEf;IAAA,6EACE;IAAA;IAAA,gHAAgF;IAChF;IAAA,gHAAmC;IACrC;IAAA,qEAAe;IAEf;IAAA,6EACE;IAAA;IAAA,gHAAgE;IAChE;IAAA,gHACE;IAEJ;IAAA,qEAAe;IAEf;IAAA,6EACE;IAAA;IAAA,gHAAgE;IAChE;IAAA,gHACE;IAEJ;IAAA,qEAAe;IAEf;IAAA,gHAA0D;IAC1D;IAAA,gHAAgE;IAChE;IAAA,gHACE;IAER;IAAA,4DAAQ;IACZ;IAAA,4DAAM;IACN;IAAA,4DAAM;;;IArCe,0DAA4B;IAA5B,4FAA4B;IA8BpB,2DAAsC;IAAtC,uGAAsC;IAC7C,0DAAmD;IAAnD,wGAAmD;;;IAe7D,yEAAgF;IAAA,yEAAa;IAAA,4DAAK;;;IAClG,yEAAwC;IAAA,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,wFAAuB;;;IAI/D,yEAAgF;IAAA,iFAAqB;IAAA,4DAAK;;;IAC1G,yEAAwC;IAAA,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,0FAAyB;;;IAIjE,yEAAgF;IAAA,2EAAe;IAAA,4DAAK;;;IACpG,yEAAwC;IAAA,uDAA0B;IAAA,4DAAK;;;IAA/B,0DAA0B;IAA1B,2FAA0B;;;IAIlE,yEAAgE;IAAA,qEAAS;IAAA,4DAAK;;;IAC9E,yEAAwC;IAAA,uDAAiB;IAAA,4DAAK;;;IAAtB,0DAAiB;IAAjB,kFAAiB;;;IAIzD,yEAAuC;IAAA,iEAAK;IAAA,4DAAK;;;;IACjD,yEACE;IAAA;IAAA,+EAA4E;IAA5B,2WAA2B;IAAC,+DAAI;IAAA,4DAAW;IAC7F;IAAA,4DAAK;;;IAIP,oEAAoE;;;IACpE,oEAA0E;;;IAC1E,yEACE;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAC/C;IAAA,4DAAK;;;IAnCf,sEACA;IAAA;IAAA,0EACI;IAAA;IAAA,4EACI;IAAA;IAAA,4EACI;IAAA;IAAA,8GAAgF;IAChF;IAAA,gHAAwC;IAC1C;IAAA,qEAAe;IAEf;IAAA,6EACE;IAAA;IAAA,gHAAgF;IAChF;IAAA,gHAAwC;IAC1C;IAAA,qEAAe;IAEf;IAAA,6EACE;IAAA;IAAA,gHAAgF;IAChF;IAAA,gHAAwC;IAC1C;IAAA,qEAAe;IAEf;IAAA,6EACE;IAAA;IAAA,gHAAgE;IAChE;IAAA,gHAAwC;IAC1C;IAAA,qEAAe;IAEf;IAAA,6EACE;IAAA;IAAA,gHAAuC;IACvC;IAAA,gHACE;IAEJ;IAAA,qEAAe;IAGf;IAAA,gHAA+D;IAC/D;IAAA,gHAAqE;IACrE;IAAA,gHACE;IAER;IAAA,4DAAQ;IACR;IAAA,4DAAM;IACV;IAAA,4DAAM;;;IApCe,0DAAiC;IAAjC,iGAAiC;IA6BzB,2DAA2C;IAA3C,4GAA2C;IAClD,0DAAwD;IAAxD,6GAAwD;;;ADzM/E,MAAM,YAAY;IA4CvB,YAAoB,WAAuB,EACjC,cAA6B,EAC7B,uBAA+C,EAC/C,SAAsB,EACvB,UAAsB,EACtB,MAAiB;QALN,gBAAW,GAAX,WAAW,CAAY;QACjC,mBAAc,GAAd,cAAc,CAAe;QAC7B,4BAAuB,GAAvB,uBAAuB,CAAwB;QAC/C,cAAS,GAAT,SAAS,CAAa;QACvB,eAAU,GAAV,UAAU,CAAY;QACtB,WAAM,GAAN,MAAM,CAAW;QA/C1B,aAAQ,GAAG,KAAK,CAAC;QAGjB,YAAO,GAAiB,EAAE,CAAC;QAC3B,mBAAc,GAAU,EAAE;QAE1B,YAAO,GAAU,EAAE,CAAC;QACpB,UAAK,GAAG,CAAC,CAAC;QACV,UAAK,GAAW,EAAE,CAAC;QACnB,oBAAe,GAAY,KAAK,CAAC;QACjC,gBAAW,GAAG,EAAE,CAAC;QAIjB,kBAAa,GAAG,KAAK,CAAC;QACtB,0BAAqB,GAAG,KAAK,CAAC;QAC9B,iBAAY,GAAU,EAAE,CAAC;QAEzB,aAAQ,GAAG,KAAK,CAAC;QACjB,sBAAiB,GAAG,OAAO,CAAC;QAC5B,2BAAsB,GAAG,OAAO,CAAC;QACjC,cAAS,GAAG,KAAK,CAAC;QAElB,qBAAgB,GAAG,2DAAW,CAAC,oBAAoB,CAAC;QAKpD,wBAAmB,GAAa,CAAC,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC5F,6BAAwB,GAAa,CAAC,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAoBnG,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;QAExC,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE;YAC5D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IAEL,CAAC;IAED,QAAQ;QAEN,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC1F,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,uBAAuB,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACxF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;gBACtB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACvC,IAAI,CAAC,eAAe,EAAE,CAAC;aACxB;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAED,aAAa;QACX,wBAAwB;QACxB,IAAI,CAAC,MAAM,GAAG,IAAI,wDAAS,CAAC;YAC1B,GAAG,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAC1B,SAAS,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACvD,KAAK,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ;gBACjD,yDAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1B,aAAa,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAC9F,WAAW,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ;gBACvD,yDAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1B,QAAQ,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAC/B,EAAE,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;SAC1B,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;YACtB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;gBACrB,SAAS,EAAE,IAAI,CAAC,SAAS;aAC1B,CAAC,CAAC;SACJ;QACD,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;gBACrB,QAAQ,EAAE,IAAI,CAAC,WAAW;aAC3B,CAAC,CAAC;SACJ;IACH,CAAC;IAED,kBAAkB;QAChB,6BAA6B;QAC7B,IAAI,CAAC,WAAW,GAAG,IAAI,wDAAS,CAAC;YAC/B,QAAQ,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAC/B,SAAS,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAChC,KAAK,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAC5B,UAAU,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE;gBAChC,yDAAU,CAAC,QAAQ;aAEpB,CAAC;YACF,aAAa,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE;gBACnC,yDAAU,CAAC,QAAQ;gBACnB,yDAAU,CAAC,OAAO,CAAC,aAAa,CAAC;aAClC,CAAC;YACF,IAAI,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAE;YACnD,YAAY,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAC1D,EAAE,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAChD,QAAQ,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAC/B,UAAU,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;SAClC,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;YACtB,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;gBAC1B,SAAS,EAAE,IAAI,CAAC,SAAS;aAC1B,CAAC,CAAC;SACJ;IACH,CAAC;IAED,UAAU,CAAC,GAAQ,EAAE,SAAS;QAC5B,IAAG,SAAS,IAAE,cAAc,EAAC;YAC3B,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,KAAK,EAAE,CAAC;SAC9C;QACD,IAAG,SAAS,IAAE,eAAe,EAAC;YAC5B,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,KAAK,EAAE,CAAC;SAC1C;IACH,CAAC;IAED,eAAe;QACb,6BAA6B;QAC7B,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,uBAAuB,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAC1E,CAAC,GAAiB,EAAE,EAAE;YACpB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,eAAe,CAAC;YACrC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;gBACrB,KAAK,EAAE,GAAG,CAAC,WAAW;gBACtB,KAAK,EAAE,GAAG,CAAC,SAAS;aACrB,CAAC,CAAC;YAEH,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;gBACtB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;oBACrB,SAAS,EAAE,IAAI,CAAC,SAAS;iBAC1B,CAAC,CAAC;gBACH,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;oBAC1B,SAAS,EAAE,IAAI,CAAC,SAAS;iBAC1B,CAAC,CAAC;aACJ;QACH,CAAC,CACF;YACC,KAAK,CAAC,EAAE;YACR,CAAC,CAAC;IACN,CAAC;IAED,qBAAqB;QACnB,kCAAkC;QAClC,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,uBAAuB,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,CAAC,KAAa,EAAE,EAAE;YACzG,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,IAAI,CAAC,KAAK,IAAI,SAAS,IAAI,IAAI,CAAC,KAAK,IAAI,sBAAsB;gBACjE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;iBACzB,IAAI,IAAI,CAAC,KAAK,IAAI,SAAS,EAAE;gBAChC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE;oBAC5B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;iBAC7B;aACF;;gBAEC,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,iBAAiB,CAAC,gBAAwB;QACxC,+BAA+B;QAC/B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,gBAAgB,IAAI,IAAI,EAAE;YAC5B,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;YAClB,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAC5D,CAAC,QAAe,EAAE,EAAE;gBAClB,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC;gBACxB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAM,EAAE,EAAE;oBAC9B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACnD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC;oBAClE,CAAC,CAAC,aAAa,GAAG,mCAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBACjE,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAChC,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAC7B,IAAI,CAAC,aAAa,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC1D,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;gBAC7C,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBACpC,IAAI,CAAC,aAAa,CAAC,mBAAmB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YACxF,CAAC,CAEF,CAAC;SACH;IACH,CAAC;IAED,OAAO,CAAC,KAAK;QACX,4BAA4B;QAC5B,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAED,YAAY,CAAC,OAAO;QAClB,uBAAuB;QACvB,IAAI,CAAC,CAAC;QACN,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC;YACjB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACnC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,IAAI,IAAI;oBAClC,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,GAAG,mCAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,CAChE,YAAY,CACb,CAAC;aACL;;YAED,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACnC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,IAAI;oBACjC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,mCAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,CAC9D,YAAY,CACb,CAAC;aACL;IACL,CAAC;IAED,qBAAqB;QACnB,oCAAoC;QACpC,IAAI,IAAI,CAAC,KAAK,IAAI,SAAS,EAAE;YAC3B,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC;gBAC1B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;;gBAE5B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;SAChC;IACH,CAAC;IAED,cAAc;QACZ,+BAA+B;QAC/B,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,SAAS,IAAI,IAAI,CAAC,KAAK,IAAI,sBAAsB,CAAC,IAAI,IAAI,CAAC,WAAW,IAAI,iBAAiB;YAC5G,OAAO,KAAK,CAAC;QACf,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC,IAAI,IAAI,CAAC,WAAW,IAAI,iBAAiB;YACpE,OAAO,KAAK,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAED,iBAAiB,CAAC,OAAoB;QACpC,MAAM,SAAS,GAAQ,OAAO,CAAC,KAAK,CAAC;QACrC,IAAI,IAAI,CAAC,KAAK,CAAC,mCAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,mCAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE;YAChH,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC;SACpC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,iBAAiB;QACf,MAAM,SAAS,GAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;QAChE,IAAI,IAAI,CAAC,KAAK,CAAC,mCAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,mCAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE;YAChH,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM;QACJ,gDAAgD;QAChD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,yBAAyB,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACrD,IAAI,CAAC,yBAAyB,CAAC,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7D,IAAI,CAAC,yBAAyB,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3D,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,EAAE;YAC1B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,GAAG,mCAAM,CACtC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAChC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACvB,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE;gBAChD,IAAI,CAAC,OAAO,EAAE,CAAC;aAChB;SACF;aACI;YACH,mBAAmB;YACnB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,GAAG,mCAAM,CACtC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAChC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACvB,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE;gBAChD,IAAI,CAAC,SAAS,EAAE,CAAC;aAClB;SAEF;IACH,CAAC;IAED,OAAO;QACL,aAAa;QACb,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;QAExC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,IAAI,EAAE;YAChC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;SAC1B;QACD,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YAC1D,IAAI,GAAG,IAAI,CAAC,EAAE;gBACZ,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;gBAC9B,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAC7B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,yBAAyB,EAAE,GAAG,EAAE;oBAClD,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACF,IAAI,CAAC,QAAQ,EAAE,CAAC;aAClB;iBACI,IAAI,GAAG,IAAI,CAAC,CAAC,EAAE;gBAClB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE;oBAC5C,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aAEJ;iBACI,IAAI,GAAG,IAAI,IAAI,EAAE;gBACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE;oBAC5C,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;iBACI;gBACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,qBAAqB,EAAE,GAAG,EAAE;oBAC9C,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;YACD,KAAK,CAAC,EAAE;gBACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;oBACpC,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACL,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,SAAS;QACP,eAAe;QACf,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;QACxC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC;QAC9C,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAC/B,IAAI,CAAC,MAAM,CAAC,KAAK,CAClB,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YAChB,IAAI,GAAG,IAAI,CAAC,EAAE;gBACZ,IAAI,CAAC,cAAc,GAAC,EAAE,CAAC;gBACvB,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;gBAE9B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,2BAA2B,EAAE,GAAG,EAAE;oBACpD,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACF,IAAI,CAAC,QAAQ,EAAE,CAAC;aAClB;iBACI,IAAI,GAAG,IAAI,CAAC,CAAC,EAAE;gBAClB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE;oBAC5C,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;iBACI,IAAI,GAAG,IAAI,IAAI,EAAE;gBACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE;oBAC5C,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;iBACI;gBACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uBAAuB,EAAE,GAAG,EAAE;oBAChD,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;YACD,KAAK,CAAC,EAAE;gBACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;oBACpC,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACL,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,mBAAmB;IACrB,CAAC;IAED,yBAAyB,CAAC,cAAsB,EAAE,aAAwB;QACxE,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;QAC3E,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,sBAAsB,EAAE,CAAC;QAChE,IAAI,cAAc,KAAK,eAAe,EAAE;YACtC,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,aAAa,CAAC,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;SAC/G;aACI,IAAI,cAAc,KAAK,eAAe,EAAC;YAC1C,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAC;gBAC3B,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,EAAC,aAAa,EAAC,IAAI,EAAC,CAAC,CAAC;aACxE;SACF;IACH,CAAC;IAGD,OAAO,CAAC,MAAM;QACZ,qBAAqB;QACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QAErB,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE;YACnB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;YAC1B,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC;SACnC;aACI;YACH,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACzB,IAAI,CAAC,sBAAsB,GAAG,QAAQ,CAAC;SACxC;QACD,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE;YACnB,WAAW;YACX,IAAI,CAAC,WAAW,CAAC,aAAa,CAC5B,IAAI,CAAC,SAAS,EACd,MAAM,CAAC,EAAE,EACT,IAAI,CAAC,WAAW,CACjB,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;gBACvB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;YAC5B,CAAC,CAAC,CAAC;SACJ;aAAM;YACL,gBAAgB;YAChB,IAAI,CAAC,WAAW,CAAC,sBAAsB,CACrC,IAAI,CAAC,SAAS,EACd,MAAM,CAAC,UAAU,EACjB,IAAI,CAAC,WAAW,CACjB,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;gBAChB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC7B,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,YAAY;QACV,IAAI,WAAmB,CAAC;QACxB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,WAAW,GAAG,wBAAwB,CAAC;SACxC;aACI;YACH,WAAW,GAAG,uBAAuB,CAAC;SACvC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+FAAsB,EAAE;YACzD,YAAY,EAAE,IAAI;YAClB,WAAW,EAAE,IAAI;YACjB,IAAI,EAAE;gBACJ,OAAO,EAAE,WAAW;aACrB;SACF,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,QAAQ,EAAE,CAAC;aACjB;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,YAAY,CAAC,OAAO;QAClB,+BAA+B;QAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+FAAsB,EAAE;YACzD,YAAY,EAAE,IAAI;YAClB,WAAW,EAAE,IAAI;YACjB,IAAI,EAAE,EAAE,OAAO,EAAE,4BAA4B,EAAE;SAChD,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,MAAM;gBACR,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IAEL,CAAC;IAGD,SAAS,CAAC,GAAG;QACX,eAAe;QACf,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,GAAO,EAAE,EAAE;YACvD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;YAChB,IAAI,GAAG,CAAC,cAAc,CAAC,EAAE;gBACvB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACvC,mBAAmB;gBACnB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE;oBACvC,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;iBACG;gBACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE;oBACvC,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;QACH,CAAC,CACA,CAAC;IACJ,CAAC;IAED,eAAe,CAAC,GAAG;QACjB,sBAAsB;QACtB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;YACrB,GAAG,EAAE,IAAI;YACT,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,aAAa,EACX,GAAG,CAAC,aAAa,IAAI,IAAI;gBACvB,CAAC,CAAC,IAAI,IAAI,CAAC,mCAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBAC1D,CAAC,CAAC,IAAI;YACV,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,QAAQ,EAAE,IAAI,CAAC,WAAW;SAC3B,CAAC,CAAC;IACL,CAAC;IAGD,QAAQ;QACN,cAAc;QACd,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;QAClC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,qBAAqB,CAAC,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACzD,IAAI,CAAC,qBAAqB,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACzD,CAAC;IAED,qBAAqB,CAAC,UAAkB,EAAE,kBAA6B;QACrE,kBAAkB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACxD,kBAAkB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,eAAe,EAAE,CAAC;QAC1D,kBAAkB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,sBAAsB,EAAE,CAAC;IACnE,CAAC;IAED,aAAa,CAAC,EAAU;QACtB,aAAa;QACb,IAAI,CAAC,EAAE,KAAK,CAAC;QACb,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxC,IAAI,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;gBAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;aAC9B;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB,CAAC,EAAE;QACjB,IAAI,CAAC,CAAC;QACN,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC/C,IAAI,EAAE,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;gBACtC,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;aACrC;SACF;IACH,CAAC;IAED,mBAAmB,CAAC,KAAK;QACvB,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACrD,IAAI,CAAC,qBAAqB,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3D,IAAI,CAAC,qBAAqB,CAAC,eAAe,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9D,IAAI,CAAC,qBAAqB,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC7D,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3C,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjD,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpD,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnD,2BAA2B;QAC3B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC;QACvD,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CACzE,CAAC,GAAU,EAAE,EAAE;YACb,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;YACxB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACrC,IAAI,CAAC,kBAAkB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACpE,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACnD,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACzC,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QAE7F,CAAC,CACF,CAAC;IACJ,CAAC;IAED,WAAW;QACT,qDAAqD;QACrD,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;QAClC,IAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACzD,IAAI,CAAC,yBAAyB,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC/D,IAAI,CAAC,yBAAyB,CAAC,eAAe,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAClE,IAAI,CAAC,yBAAyB,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACjE,IAAI,CAAC,yBAAyB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACvD,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;YACvE,IAAI,CAAC,YAAY,EAAE,CAAC;SACrB;aACI,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE;YACxB,kBAAkB;YAClB,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;YACrB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC;YACnD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC7E,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,GAAG,mCAAM,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACvG,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,IAAI,EAAE;gBAClC,IAAI,CAAC,cAAc,EAAE,CAAC;aACvB;SACF;IACH,CAAC;IAED,YAAY;QACV,kBAAkB;QAClB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC;QACnD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAClD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAC/C,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAC1B,CAAC;QACF,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,IAAI,IAAI,EAAE;YAC7C,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC;SACvC;QACD,IAAI,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACnC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,GAAG,mCAAM,CAC1C,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,CACpC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACvB,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,IAAI,EAAE;YAClC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,SAAS,CAC/D,GAAG,CAAC,EAAE;gBACJ,IAAI,GAAG,IAAI,IAAI,EAAE;oBACf,IAAI,CAAC,mBAAmB,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;oBACxC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,8BAA8B,EAAE,GAAG,EAAE;wBACvD,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACH,uBAAuB;iBACxB;gBACD,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,CAAC,EACD,KAAK,CAAC,EAAE;gBACN,IAAI,QAAQ,GAAE,6BAA6B,CAAC;gBAC5C,IAAI,KAAK,GAAE,4BAA4B,CAAC;gBACxC,IAAG,KAAK,CAAC,KAAK,CAAC,IAAI,IAAE,QAAQ,EAC7B;oBACE,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;iBAE1B;gBACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE;oBAC9B,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAC,CAAC,aAAa,CAAC;oBAC1B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACL,CAAC,CACF,CAAC;YACF,wBAAwB;SACzB;IACH,CAAC;IAED,cAAc;QACZ,oBAAoB;QACpB,IAAI,cAAc,GAAC,KAAK;QACxB,IAAI,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACnC,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU;QAGlD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YAChC,IAAG,OAAO,CAAC,UAAU,IAAE,UAAU,IAAI,OAAO,CAAC,UAAU,IAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,EAAC;gBACzF,cAAc,GAAC,IAAI;gBACnB,OAAO;aACR;QACL,CAAC,CAAC,CAAC;QAEH,IAAG,CAAC,cAAc,EAAC;YACnB,IAAI,CAAC,WAAW,CAAC,qBAAqB,CACpC,IAAI,CAAC,WAAW,CAAC,KAAK,CACvB,CAAC,SAAS,CACT,GAAG,CAAC,EAAE;gBACJ,IAAI,GAAG,IAAI,IAAI,EAAE;oBACf,IAAI,CAAC,mBAAmB,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;oBACxC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gCAAgC,EAAE,GAAG,EAAE;wBACzD,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;gBACD,IAAI,GAAG,IAAI,KAAK,EAAE;oBAChB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,4BAA4B,EAAE,GAAG,EAAE;wBACrD,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,aAAa,CAAC;wBAC3B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;gBACD,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,CAAC,EACD,KAAK,CAAC,EAAE;gBACN,IAAI,QAAQ,GAAG,6BAA6B,CAAC;gBAC7C,IAAI,KAAK,GAAG,4BAA4B,CAAC;gBACzC,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,QAAQ,EAAE;oBAChC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;iBAE1B;gBAED,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE;oBAC9B,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACL,CAAC,CACF,CAAC;SACD;aACG;YACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,6BAA6B,EAAE,GAAG,EAAE;gBACpD,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,CAAC,aAAa,CAAC;gBAC3B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;SACN;QACD,wBAAwB;IAC1B,CAAC;IAED,gBAAgB,CAAC,GAAG;QAClB,2BAA2B;QAC3B,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;YAC1B,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,aAAa,EAAE,GAAG,CAAC,aAAa;YAChC,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,YAAY,EACV,GAAG,CAAC,YAAY,IAAI,IAAI;gBACtB,CAAC,CAAC,IAAI,IAAI,CAAC,mCAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBACzD,CAAC,CAAC,IAAI;YACV,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,QAAQ,EAAE,IAAI,CAAC,WAAW;SAC3B,CAAC,CAAC;IACL,CAAC;IAGD,aAAa;QACX,mBAAmB;QACnB,IAAI,CAAC,sBAAsB,GAAG,OAAO,CAAC;QACtC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;QACnC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACrD,IAAI,CAAC,qBAAqB,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3D,IAAI,CAAC,qBAAqB,CAAC,eAAe,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9D,IAAI,CAAC,qBAAqB,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC7D,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IACrD,CAAC;IAED,oBAAoB;QAClB,IAAI,WAAmB,CAAC;QACxB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,WAAW,GAAG,wBAAwB,CAAC;SACxC;aACI;YACH,WAAW,GAAG,uBAAuB,CAAC;SACvC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+FAAsB,EAAE;YACzD,YAAY,EAAE,IAAI;YAClB,WAAW,EAAE,IAAI;YACjB,IAAI,EAAE;gBACJ,OAAO,EAAE,WAAW;aACrB;SACF,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,aAAa,EAAE,CAAC;aACtB;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,WAAW,CAAC,KAAY;QACtB,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE;YACnB,IAAI,CAAC,aAAa,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1D,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC9C,uCAAuC;SACxC;aACI;YACH,IAAI,CAAC,kBAAkB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACpE,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACnD,4CAA4C;SAC7C;IAEH,CAAC;IACD,OAAO,CAAC,KAAW,EAAE,WAAoB;QACvC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW,KAAK,OAAO;YAC5D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;aAEzC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW,KAAK,aAAa;YACvE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;aAE/C,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW,KAAK,YAAY;YACtE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;aAEnD,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW,KAAK,eAAe;YACzE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;aAEtD,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW,KAAK,MAAM;YAChE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAEpD,CAAC;IAED,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC;gBACjB,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAC/D,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC;gBACjB,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SACrE;aAAM;YACL,IAAI,CAAC,aAAa,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1D,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC9C,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YAEpC,IAAI,CAAC,kBAAkB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACpE,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACnD,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACzC,IAAI,CAAC,aAAa,CAAC,mBAAmB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YACtF,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;SAC5F;IACH,CAAC;;wEAh0BU,YAAY;4FAAZ,YAAY;kEAoCZ,8DAAO;kEACP,wEAAY;kEAEZ,iEAAkB;;;;;;;QCrE/B,8EACI;QAAA;QAAA,mFACA;QAAA;QAAA,yEACI;QAAA;QAAA,yEACA;QAAA;QAAA,qFACI;QAD2C,yLAAmB;QAC9D;QAAA,uFAAqE;QAA/B,uJAAU,uBAAmB,IAAC;QAAC,+DAAG;QAAA,4DAAmB;QAC3F;QAAA,uFAA0F;QAA/B,uJAAU,uBAAmB,IAAC;QAAC,oEAAQ;QAAA,4DAAmB;QACzH;QAAA,4DAAkB;QACtB;QAAA,4DAAM;QACN;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,0EACI;QAAA;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,oEAAQ;QAAA,4DAAY;QAC/B;QAAA,iFACI;QADuE,qJAAY,mBAAe,IAAC;QACnG;QAAA,wHAAyE;QAC7E;QAAA,4DAAa;QACjB;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACV;QAAA,4DAAM;QACN;QAAA,6GACA;QAuDJ;QAAA,4DAAO;QAEP;QACA;QAAA,gHACI;QAoER;QAAA,4DAAmB;QACnB;QAAA,4DAAW;QAEX;QAAA,4EACI;QAAA;QAAA,oFACI;QAAA;QACA;QAAA,4GACA;QAwCA;QAEA;QACA;QAAA,4GACA;QAsCA;QAAA,2EACI;QAAA;QAAA,gFAAqE;QACvE;QAAA,4DAAM;QAGR;QAGJ;QAAA,4DAAmB;QAEvB;QAAA,4DAAW;QAEX;;QAtPuD,0DAAmB;QAAnB,8EAAmB;QAC5C,0DAAW;QAAX,oEAAW;QACX,0DAA4B;QAA5B,yFAA4B;QAIhD,0DAAqB;QAArB,iFAAqB;QAGC,0DAA+B;QAA/B,uGAA+B;QAEc,0DAAiB;QAAjB,0EAAiB;QAC1D,0DAAoC;QAApC,qFAAoC;QAK3D,0DAAgB;QAAhB,gFAAgB;QA2DO,0DAAkB;QAAlB,gFAAkB;QA2EzC,0DAAkB;QAAlB,gFAAkB;QA4ClB,0DAAkB;QAAlB,gFAAkB;QAwCJ,0DAAqC;QAArC,mJAAqC;;6FDjNnD,YAAY;cALxB,uDAAS;eAAC;gBACT,QAAQ,EAAE,SAAS;gBACnB,WAAW,EAAE,sBAAsB;gBACnC,SAAS,EAAE,CAAC,sBAAsB,CAAC;aACpC;ikBAqCwC,IAAI;kBAA1C,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;YACO,SAAS;kBAApD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;YAEX,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;;;;;;;;;;;;;;AErE/B;AAAA;AAAA;AAAA;AAAA;AAAkD;;;;AAO3C,MAAM,4BAA4B;IAEtC,QAAQ;IACP,CAAC;;wGAHQ,4BAA4B;4GAA5B,4BAA4B;QCPzC,iFAA2C;QAE3C;QAAA,wFAAyD;QACzD;;6FDIa,4BAA4B;cALxC,uDAAS;eAAC;gBACT,QAAQ,EAAE,2BAA2B;gBACrC,WAAW,EAAE,wCAAwC;gBACrD,SAAS,EAAE,CAAC,wCAAwC,CAAC;aACtD;;;;;;;;;;;;;;AEND;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AAEe;AAE3C;AAO6B;AAED;AACZ;AAEmC;;;;;;;;;;;;;;;;;;;ICdhF,6EAEE;IADA,mUAA0B;IAC1B,iFAAc;IAAA,4DAAS;;;;IACzB,6EACkC;IAAhC,wUAA+B;IAAC,kEAAO;IAAA,4DAAS;;;IAmG5C,yEACE;IAAA,2FACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,qHACF;;;IAIA,yEACE;IAAA,kGACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,2HACF;;;IAGA,yEACE;IAAA,oGACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,6HACF;;;IAGF,oEAA+D;;;IAC/D,oEAAoE;;;IAgBhE,yEACE;IAAA,6FACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,yIACF;;;IAIA,yEACE;IAAA,0GACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,iIACF;;;IAGA,yEACE;IAAA,kGACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,2IACF;;;IAIA,yEACE;IAAA,2GACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,6HACF;;;IAIA,yEACE;IAAA,yGACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,2HACF;;;IAIA,yEACE;IAAA,iGACF;IAAA,4DAAK;;;IAEH,oEAA4C;IAAA,kEAAO;IAAA,4DAAI;;;IACvD,oEAAmC;IAAA,kEAAO;IAAA,4DAAI;;;IAFhD,yEACE;IAAA;IAAA,oHAA4C;IAC5C;IAAA,oHAAmC;IACrC;IAAA,4DAAK;;;;IAFA,0DAAwC;IAAxC,8GAAwC;IACxC,0DAA+B;IAA/B,qGAA+B;;;IAItC,oEAAkE;;;IAClE,oEAAuE;;;AD/K1E,MAAM,oBAAoB;IA6B/B,YAAoB,sBAA8C,EACxD,QAAwB,EAAU,MAAc;IACxD,oDAAoD;IAC5C,wBAAkD,EAClD,oBAAyC,EACzC,SAAsB,EACvB,MAAiB;IACxB,0CAA0C;IAClC,UAAsB;QARZ,2BAAsB,GAAtB,sBAAsB,CAAwB;QACxD,aAAQ,GAAR,QAAQ,CAAgB;QAAU,WAAM,GAAN,MAAM,CAAQ;QAEhD,6BAAwB,GAAxB,wBAAwB,CAA0B;QAClD,yBAAoB,GAApB,oBAAoB,CAAqB;QACzC,cAAS,GAAT,SAAS,CAAa;QACvB,WAAM,GAAN,MAAM,CAAW;QAEhB,eAAU,GAAV,UAAU,CAAY;QAnChC,aAAQ,GAAW,CAAC,CAAC;QACrB,iBAAY,GAAa,EAAE,CAAC;QAC5B,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QAK9C,0BAAqB,GAAG,EAAE,CAAC;QAC3B,YAAO,GAAU,EAAE,CAAC;QAEpB,cAAS,GAAY,KAAK,CAAC;QAI3B,aAAQ,GAAY,KAAK,CAAC;QAC1B,aAAQ,GAAY,KAAK,CAAC;QAC1B,wBAAmB,GAAa,CAAC,OAAO,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;QAC1E,2BAAsB,GAAa,CAAC,uBAAuB,EAAE,eAAe,EAAE,yBAAyB,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QAO7I,kBAAa,GAAG,IAAI,0EAAkB,EAAE,CAAC;QACzC,qBAAgB,GAAG,IAAI,0EAAkB,EAAE,CAAC;QAW1C,IAAI,CAAC,WAAW,GAAG,IAAI,iFAAY,EAAE,CAAC;QACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;IAClD,CAAC;IAED,eAAe;QACb,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC;QACjD,IAAI,CAAC,gBAAgB,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC;IACzD,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,UAAU,CAAC;QACnG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,IAAI,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7E,IAAI,OAAO,KAAK,aAAa,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,KAAK,2BAA2B,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,KAAK,gCAAgC,EAAE;YAC1J,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;SACtB;QAGD,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,sBAAsB,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAC7F,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC3B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,sBAAsB,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACvF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,sBAAsB,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAC3F,IAAI,IAAI,IAAI,CAAC;gBACX,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAE,4CAA4C;QACzE,CAAC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,SAAS,IAAI,aAAa,EAAE;YACnC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;SACxB;aACI;YACH,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;SACzB;QACD,IAAI,CAAC,gBAAgB,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC;QACvD,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC;IAEnD,CAAC;IAED,cAAc,CAAC,OAAiC;QAC9C,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,SAAS,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,OAAO,CAAC,QAAQ,IAAI,KAAK,EAAE;YAC5F,OAAO,KAAK,CAAC;SACd;QACD,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAI,IAAI,OAAO,CAAC,kBAAkB,IAAI,CAAC,EAAE;YAC/D,OAAO,KAAK,CAAC;SACd;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,iBAAiB;QACf,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;YACtB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACpC,IAAI,CAAC,gCAAgC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACxC;IACH,CAAC;IACO,cAAc,CAAC,gBAAwB;QAC7C,IAAI,CAAC,sBAAsB;aACxB,qBAAqB,CAAC,gBAAgB,CAAC;aACvC,SAAS,CACR,CAAC,WAAyB,EAAE,EAAE;YAC5B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;YAC/B,IAAI,IAAI,CAAC,WAAW,CAAC,YAAY,IAAI,SAAS;gBAC5C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAC1B,CAAC,EACD,KAAK,CAAC,EAAE;YACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;gBAClE,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACH,4BAA4B;YAC5B,uBAAuB;YACvB,8BAA8B;YAC9B,sDAAsD;YACtD,MAAM;QACR,CAAC,CACF,CAAC;IACN,CAAC;IAEO,gCAAgC,CAAC,SAAiB;QACxD,IAAI,SAAS,GAAG,CAAC,EAAE;YACjB,IAAI,CAAC,qBAAqB,GAAG,IAAI,KAAK,EAA4B,CAAC;YACnE,IAAI,CAAC,wBAAwB,CAAC,gCAAgC,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,GAA+B,EAAE,EAAE;gBACtH,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;oBAClB,IAAI,CAAC,qBAAqB,GAAG,GAAG,CAAC;oBACjC,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAChC,CAAC,CAA2B,EAAE,EAAE;wBAC9B,IAAI,CAAC,CAAC,QAAQ,IAAI,IAAI;4BACpB,CAAC,CAAC,kBAAkB,GAAG,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,eAAe,CAAC;;4BAE3D,CAAC,CAAC,kBAAkB,GAAG,CAAC,CAAC;oBAC7B,CAAC,CACF,CAAC;oBACF,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAA2B,EAAE,EAAE;wBACjE,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,mCAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;wBACpF,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,mCAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;oBAChF,CAAC,CAAC,CAAC;iBACJ;gBACD,IAAI,CAAC,gBAAgB,CAAC,IAAI,GAAG,GAAG,CAAC;gBACjC,IAAI,CAAC,gBAAgB,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC;gBACvD,IAAI,CAAC,gBAAgB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACzC,CAAC,CAAC;gBACA,CAAC,KAAK,EAAE,EAAE;gBAEV,CAAC,CAAC;SACL;IACH,CAAC;IAEO,iBAAiB,CAAC,gBAAwB;QAChD,IAAI,gBAAgB,IAAI,IAAI,EAAE;YAC5B,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,QAAe,EAAE,EAAE;gBAChF,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC;gBACxB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAM,EAAE,EAAE;oBAC9B,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC,mCAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBAClG,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,QAAQ,CAAC;gBACnC,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC;gBACjD,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACtC,CAAC,CAAC,CAAC;SAEJ;IACH,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC;IAE/C,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IACjC,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,IAAI,CAAC,SAAS,IAAI,aAAa,IAAI,IAAI,CAAC,SAAS,IAAI,aAAa;YACpE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,kBAAkB,CAAC,CAAC;;YAE1C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAC/C,CAAC;IAED,mBAAmB;QACjB,IAAI,CAAC,oBAAoB,CAAC,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YAC/G,IAAI,GAAG,GAAG,CAAC,EAAE;gBACX,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kCAAkC,EAAE,GAAG,EAAE;oBAC3D,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBAEH,4BAA4B;gBAC5B,yBAAyB;gBACzB,gCAAgC;gBAChC,+CAA+C;gBAC/C,MAAM;gBACN,UAAU,CAAC,GAAG,EAAE;oBACd,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,kBAAkB,CAAC,CAAC;gBAC5C,CAAC,EAAE,IAAI,CAAC,CAAC;aAGV;iBACI;gBACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;oBACxD,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,4BAA4B;gBAC5B,uBAAuB;gBACvB,+BAA+B;gBAC/B,4CAA4C;gBAC5C,MAAM;aACP;QACH,CAAC,EACC,KAAK,CAAC,EAAE;YACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;gBACxD,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CACF,CAAC;IACJ,CAAC;IAED,cAAc;QACZ,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+FAAsB,EAAE;YACzD,YAAY,EAAE,IAAI;YAClB,WAAW,EAAE,IAAI;YACjB,IAAI,EAAE;gBACJ,OAAO,EAAE,qCAAqC;aAC/C;SACF,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,QAAQ,EAAE,CAAC;aACjB;YACD,OAAO;YACP,+CAA+C;QACjD,CAAC,CAAC,CAAC;IAEL,CAAC;IACD,qCAAqC;IACrC,yDAAyD;IACzD,4BAA4B;IAC5B,wCAAwC;IACxC,oBAAoB;IACpB,uBAAuB;IACvB,OAAO;IACP,oBAAoB;IACpB,sDAAsD;IACtD,MAAM;IACN,MAAM;IAEN,QAAQ;QACN,IAAI,CAAC,sBAAsB;aACxB,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC;aACpC,SAAS,CAAC,CAAC,GAAY,EAAE,EAAE;YAC1B,IAAI,GAAG,IAAI,IAAI,EAAE;gBACf,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,8BAA8B,EAAE,GAAG,EAAE;oBACvD,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,UAAU,CAAC,GAAG,EAAE;oBACd,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;gBAC9C,CAAC,EAAE,IAAI,CAAC,CAAC;aACV;;gBACC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,EAAE,GAAG,EAAE;oBAC1C,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAED,WAAW;QACT,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,CAAC;QACzC,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,CAAC;IAC7C,CAAC;;wFAvRU,oBAAoB;oGAApB,oBAAoB;;;wEAwBpB,8DAAO;;;;;;qFA1BP,EAAE;QCxBf,yEACE;QAAA;QAAA,yEACE;QAAA;QAAA,sHAEE;QAAwB,wEAC1B;QAAA,sHACkC;QAClC,2EACF;QAAA,4DAAM;QACR;QAAA,4DAAM;QACN;QAAA,+EACG;QAAA;QAAA,wFAA4C;QAAA,2EAAe;QAAA,4DAAoB;QAChF;QAAA,0EACE;QAAA;QAGA;QAAA,0EACE;QAAA;QAAA,6EACE;QADiB,6IAAS,YAAQ,IAAC;QACnC;QAAA,4EAAU;QAAA,sEAAU;QAAA,4DAAW;QAAA,wEACjC;QAAA,4DAAS;QACX;QAAA,4DAAM;QACR;QAAA,4DAAM;QACN;QAAA,oFACE;QAAA;QAAA,0EACE;QAAA;QAAA,0EACE;QAAA;QAAA,0EACE;QAAA;QAAA,2EAAwC;QAAA,wEAAY;QAAA,4DAAM;QAC1D;QAAA,2EAAsB;QAAA,wDAA8B;QAAA,4DAAM;QAC5D;QAAA,4DAAM;QACR;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,0EACE;QAAA;QAAA,2EAAwC;QAAA,wEAAY;QAAA,4DAAM;QAC1D;QAAA,2EAAsB;QAAA,wDAA8B;QAAA,4DAAM;QAC5D;QAAA,4DAAM;QACR;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,0EACE;QAAA;QAAA,2EAAwC;QAAA,wEAAY;QAAA,4DAAM;QAC1D;QAAA,2EAAsB;QAAA,wDAAkC;QAAA,4DAAM;QAChE;QAAA,4DAAM;QACR;QAAA,4DAAM;QACR;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,0EACE;QAAA;QAAA,0EACE;QAAA;QAAA,2EAAwC;QAAA,2EAAe;QAAA,4DAAM;QAC7D;QAAA,2EAAsB;QAAA,wDAAmC;QAAA,4DAAM;QACjE;QAAA,4DAAM;QACR;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,0EACE;QAAA;QAAA,2EAAwC;QAAA,kEAAM;QAAA,4DAAM;QACpD;QAAA,2EAAsB;QAAA,wDAA6B;QAAA,4DAAM;QAC3D;QAAA,4DAAM;QACR;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,0EACE;QAAA;QAAA,2EAAwC;QAAA,mEAAM;QAAA,4DAAM;QACpD;QAAA,4EAAsB;QAAA,yDAA6B;QAAA,4DAAM;QAC3D;QAAA,4DAAM;QACR;QAAA,4DAAM;QACR;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,2EACE;QAAA;QAAA,2EACE;QAAA;QAAA,4EAAwC;QAAA,4EAAe;QAAA,4DAAM;QAC7D;QAAA,4EAAsB;QAAA,yDAA8B;QAAA,4DAAM;QAC5D;QAAA,4DAAM;QACR;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,2EACE;QAAA;QAAA,4EAAwC;QAAA,uEAAU;QAAA,4DAAM;QACxD;QAAA,4EAAsB;QAAA,yDAAiC;QAAA,4DAAM;QAC/D;QAAA,4DAAM;QACR;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,2EACE;QAAA;QAAA,4EAAwC;QAAA,0EAAa;QAAA,4DAAM;QAC3D;QAAA,4EAAsB;QAAA,yDAA+B;QAAA,4DAAM;QAC7D;QAAA,4DAAM;QACR;QAAA,4DAAM;QACR;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,2EACE;QAAA;QAAA,2EACE;QAAA;QAAA,4EAAwC;QAAA,uEAAU;QAAA,4DAAM;QACxD;QAAA,4EAAsB;QAAA,yDAAsD;;QAAA,4DAAM;QACpF;QAAA,4DAAM;QACR;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,2EACE;QAAA;QAAA,4EAAwC;QAAA,qEAAQ;QAAA,4DAAM;QACtD;QAAA,4EAAsB;QAAA,yDAAoD;;QAAA,4DAAM;QAClF;QAAA,4DAAM;QACR;QAAA,4DAAM;QACR;QAAA,4DAAM;QACR;QAAA,4DAAmB;QACrB;QAAA,4DAAW;QACX;QAAA,iFACE;QAAA;QAAA,yFAA4C;QAAA,gEAAG;QAAA,4DAAoB;QACnE;QAAA,qFACE;QAAA;QAAA,4EACE;QAAA;QAAA,8EACE;QAAA;QAAA,8EACE;QAAA;QAAA,mHACE;QAEF;QAAA,mHACE;QAEJ;QAAA,qEAAe;QAEf;QAAA,8EACE;QAAA;QAAA,mHACE;QAEF;QAAA,mHACE;QAEJ;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,mHACE;QAEF;QAAA,mHACE;QAEJ;QAAA,qEAAe;QAEf;QAAA,mHAA0D;QAC1D;QAAA,mHAA+D;QACjE;QAAA,4DAAQ;QACV;QAAA,4DAAM;QACN;QAAA,4EACE;QAAA;QAAA,qFAAoG;QACtG;QAAA,4DAAM;QACR;QAAA,4DAAmB;QACrB;QAAA,4DAAW;QAEX;QAAA,iFACE;QAAA;QAAA,wEACE;QAAA;QAAA,yFAA4C;QAAA,iFAAoB;QAAA,4DAAoB;QACpF;QAAA,qFACE;QAAA;QAAA,4EACE;QAAA;QAAA,8EACE;QAAA;QAAA,8EACE;QAAA;QAAA,mHACE;QAEF;QAAA,mHACE;QAEJ;QAAA,qEAAe;QAEf;QAAA,8EACE;QAAA;QAAA,mHACE;QAEF;QAAA,mHACE;QAEJ;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,mHACE;QAEF;QAAA,mHACE;QAEJ;QAAA,qEAAe;QAEf;QAAA,8EACE;QAAA;QAAA,mHACE;QAEF;QAAA,mHACE;QAEJ;QAAA,qEAAe;QAEf;QAAA,8EACE;QAAA;QAAA,mHACE;QAEF;QAAA,mHACE;QAEJ;QAAA,qEAAe;QAEf;QAAA,8EACE;QAAA;QAAA,mHACE;QAEF;QAAA,mHACE;QAGJ;QAAA,qEAAe;QAEf;QAAA,mHAA6D;QAC7D;QAAA,mHAAkE;QACpE;QAAA,4DAAQ;QACV;QAAA,4DAAM;QACN;QAAA,4EACE;QAAA;QAAA,qFAAuG;QACzG;QAAA,4DAAM;QACR;QAAA,4DAAmB;QACrB;QAAA,4DAAM;QACR;QAAA,4DAAW;;QA/M+C,0DAAiB;QAAjB,+EAAiB;QAGjB,0DAAkB;QAAlB,gFAAkB;QAsB5C,2DAA8B;QAA9B,uGAA8B;QAM9B,2DAA8B;QAA9B,uGAA8B;QAM9B,2DAAkC;QAAlC,2GAAkC;QAQlC,2DAAmC;QAAnC,4GAAmC;QAMnC,2DAA6B;QAA7B,sGAA6B;QAM7B,2DAA6B;QAA7B,sGAA6B;QAQ7B,2DAA8B;QAA9B,uGAA8B;QAM9B,2DAAiC;QAAjC,0GAAiC;QAMjC,2DAA+B;QAA/B,wGAA+B;QAQ/B,2DAAsD;QAAtD,6LAAsD;QAMtD,2DAAoD;QAApD,2LAAoD;QAM7D,0DAAqB;QAArB,kFAAqB;QAIW,0DAA4B;QAA5B,yFAA4B;QA2BxD,2DAAsC;QAAtC,oGAAsC;QAC7C,0DAAkD;QAAlD,qGAAkD;QAIjD,0DAAqB;QAArB,kFAAqB;QAKnB,0DAAqB;QAArB,kFAAqB;QAKa,2DAA+B;QAA/B,4FAA+B;QAuD3D,2DAAyC;QAAzC,uGAAyC;QAChD,0DAAqD;QAArD,wGAAqD;QAIpD,0DAAqB;QAArB,kFAAqB;;6FDnL/B,oBAAoB;cANhC,uDAAS;eAAC;gBACT,QAAQ,EAAE,kBAAkB;gBAC5B,WAAW,EAAE,+BAA+B;gBAC5C,SAAS,EAAE,CAAC,+BAA+B,CAAC;gBAC5C,SAAS,EAAE,EAAE;aACd;utBAuB+C,YAAY;kBAAzD,uDAAS;mBAAC,cAAc,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;YACK,eAAe;kBAA/D,uDAAS;mBAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;YACT,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AEjDtC;AAAA;AAAA;AAAA,+CAA+C;AAExC,MAAM,QAAQ;CAapB;AAEM,MAAM,oBAAoB;CAKhC;;;;;;;;;;;;;ACvBD;AAAA;AAAA;AAAO,MAAM,oBAAoB;CAyBhC;AAEM,MAAM,KAAK;CAGjB;;;;;;;;;;;;;AC9BD;AAAA;AAAA;AAAO,MAAM,wBAAwB;CAepC;AACM,MAAM,iBAAiB;CAO7B;;;;;;;;;;;;;ACrBD;AAAA;AAAA;AAAA;AAAA;AAAO,MAAM,cAAc;CAK1B;AACM,MAAM,YAAa,SAAQ,cAAc;CA2B/C;AACM,MAAM,oBAAoB;CAgC9B;AAEM,MAAM,oBAAoB;CAIhC;;;;;;;;;;;;;AC1EH;AAAA;AAAO,MAAM,gBAAgB;CAY5B;;;;;;;;;;;;;ACZD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAyC;AACc;AAEkD;AAEjB;AACd;AAC6B;AACjD;AACuE;AACF;AACF;AACJ;AACH;AACH;AACpB;;;AAE3F,MAAM,MAAM,GAAW;IACnB;QACI,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,qHAAyB,EAAE,QAAQ,EAAE;YACxD,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,oGAAoB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YAC9E,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,sFAAgB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAC,aAAa,EAAC,EAAE,WAAW,EAAG,CAAC,kEAAe,CAAC,GAAI;YACxH,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,mHAAyB,GAAK;YAG9D,EAAE,IAAI,EAAE,sBAAsB,EAAE,SAAS,EAAE,qIAA6B,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAE;YAIrH,EAAE,IAAI,EAAE,wBAAwB,EAAE,SAAS,EAAE,yIAA+B,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,2BAA2B,EAAE,EAAE;YAC5H,EAAE,IAAI,EAAE,wBAAwB,EAAE,SAAS,EAAE,uIAA+B,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,0BAA0B,EAAE,EAAE;YAC3H,EAAE,IAAI,EAAE,sBAAsB,EAAE,SAAS,EAAE,kIAA6B,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAE;YACrH,EAAE,IAAI,EAAE,kBAAkB,EAAE,SAAS,EAAE,+HAA4B,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAE;YAChH,EAAE,IAAI,EAAE,oBAAoB,EAAE,SAAS,EAAE,4HAA2B,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,2BAA2B,EAAE,EAAE;YACpH,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,wGAAqB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,8BAA8B,EAAE,GAAE;SAEzG;KAEJ;CAEJ,CAAC;AAMK,MAAM,6BAA6B;;4GAA7B,6BAA6B;oLAA7B,6BAA6B,kBAH7B,CAAC,4DAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAC9B,4DAAY;mIAEb,6BAA6B,uFAF5B,4DAAY;6FAEb,6BAA6B;cAJzC,sDAAQ;eAAC;gBACN,OAAO,EAAE,CAAC,4DAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACxC,OAAO,EAAE,CAAC,4DAAY,CAAC;aAC1B;;;;;;;;;;;;;;AC7CD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAyC;AACM;AACe;AAC8C;AACH;AACjB;AACe;AACrC;AACV;AAC4B;AACrC;AAC2B;AAC0B;AACG;AAClB;AACS;AAC+B;AACF;AACxB;AACL;AACmC;AACR;AACjB;AACxG,oHAAoH;AACZ;AACb;AAC0B;AACxD;AACqD;AACH;AAChE;AAC4C;AACM;AACd;AACQ;AACd;AACsB;AACoB;;AAsBhH,MAAM,sBAAsB;;qGAAtB,sBAAsB;sKAAtB,sBAAsB,kBAjBxB;YACP,6DAAY;YACZ,4DAAY;YACZ,0DAAW;YACX,kEAAmB;YACnB,qEAAgB;YAChB,gGAA6B;YAC7B,kHAAwB;YACxB,2EAAmB;YACnB,6DAAgB;YAChB,yGAAiC;YACjC,2FAA2B;YAC3B,iHAAqC;SACtC;mIAIU,sBAAsB,mBAlBlB,2GAAsB,EAAC,wIAA+B,EAAC,kGAAmB,EAAC,oGAAoB,EAAC,oHAAyB,EAAC,iHAAwB,EAAE,0EAAY,EAAE,wHAA0B,EAAE,qHAAyB,EAAE,uFAAgB,EAAE,0IAA+B,EAAE,gHAAuB,EAAE,2GAAsB,EAAE,8IAAiC,EAAE,sIAA6B,EAAE,qHAAsB,EAAG,qHAAsB,EAAC,wGAAqB,EAAE,kIAA6B,EAAE,+HAA4B,EAAE,4HAA2B,EAAE,wGAAqB,EAAE,8GAAuB,EAAE,gGAAwB,EAAE,oIAA2B,aAElpB,6DAAY;QACZ,4DAAY;QACZ,0DAAW;QACX,kEAAmB;QACnB,qEAAgB;QAChB,gGAA6B;QAC7B,kHAAwB;QACxB,2EAAmB;QACnB,6DAAgB;QAChB,yGAAiC;QACjC,2FAA2B;QAC3B,iHAAqC,aAE7B,kIAA6B;6FAG5B,sBAAsB;cAnBlC,sDAAQ;eAAC;gBACR,YAAY,EAAE,CAAC,2GAAsB,EAAC,wIAA+B,EAAC,kGAAmB,EAAC,oGAAoB,EAAC,oHAAyB,EAAC,iHAAwB,EAAE,0EAAY,EAAE,wHAA0B,EAAE,qHAAyB,EAAE,uFAAgB,EAAE,0IAA+B,EAAE,gHAAuB,EAAE,2GAAsB,EAAE,8IAAiC,EAAE,sIAA6B,EAAE,qHAAsB,EAAG,qHAAsB,EAAC,wGAAqB,EAAE,kIAA6B,EAAE,+HAA4B,EAAE,4HAA2B,EAAE,wGAAqB,EAAE,8GAAuB,EAAE,gGAAwB,EAAE,oIAA2B,CAAC;gBACrpB,OAAO,EAAE;oBACP,6DAAY;oBACZ,4DAAY;oBACZ,0DAAW;oBACX,kEAAmB;oBACnB,qEAAgB;oBAChB,gGAA6B;oBAC7B,kHAAwB;oBACxB,2EAAmB;oBACnB,6DAAgB;oBAChB,yGAAiC;oBACjC,2FAA2B;oBAC3B,iHAAqC;iBACtC;gBACD,OAAO,EAAE,CAAC,kIAA6B,CAAC;aAEzC;;;;;;;;;;;;;;AC1DD;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AACwB;AACR;;;AAOpD,MAAM,6BAA6B;IAOxC,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QANxC,eAAU,GAAG,qEAAW,CAAC,SAAS,CAAC;QACnC,0BAAqB,GAAG,qEAAW,CAAC,oBAAoB,CAAC;QACzD,sBAAiB,GAAG,qEAAW,CAAC,gBAAgB,CAAC;QACjD,uBAAkB,GAAG,qEAAW,CAAC,iBAAiB,CAAC;QACnD,cAAS,GAAG,uDAAe,CAAC,sBAAsB,CAAC;IAGrD,CAAC;IACM,sBAAsB,CAAC,SAAgB;QAC5C,IAAI,IAAI,GAAG,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,sBAAsB,GAAG,SAAS,CAAC;QACtF,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IACM,+BAA+B,CAAC,QAAiB;QACtD,IAAI,IAAI,GAAG,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC;QAC1E,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAEM,eAAe,CAAC,QAAiB,EAAE,KAAc;QACtD,IAAI,IAAI,GAAG,IAAI,CAAC,iBAAiB,GAAE,uDAAe,CAAC,QAAQ,CAAC,cAAc,GAAG,QAAQ,GAAE,cAAc,GAAE,KAAK,CAAC;QAC7G,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;IAChC,CAAC;;0GArBQ,6BAA6B;gHAA7B,6BAA6B,WAA7B,6BAA6B,mBAF5B,MAAM;6FAEP,6BAA6B;cAHzC,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACRD;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AACwB;AACR;;;AAOpD,MAAM,6BAA6B;IAQxC,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAP1C,eAAU,GAAG,qEAAW,CAAC,SAAS,CAAC;QAEnC,wBAAmB,GAAG,qEAAW,CAAC,gBAAgB,CAAC;QACnD,yBAAoB,GAAG,qEAAW,CAAC,oBAAoB,CAAC;QACxD,cAAS,GAAG,uDAAe,CAAC,sBAAsB,CAAC;QACnD,cAAS,GAAG,uDAAe,CAAC,QAAQ,CAAC;IAES,CAAC;IAExC,sBAAsB,CAAC,QAAkB,EAAE,UAAmB;QACnE,IAAI,IAAI,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,iCAAiC,GAAG,UAAU,CAAC;QACpG,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC9C,CAAC;IACM,cAAc,CAAC,SAAiB,EAAE,UAAkB;QACzD,IAAI,GAAG,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,GAAG,SAAS,GAAG,GAAG,GAAG,UAAU,CAAC;QAClG,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;IACjC,CAAC;IAEM,sBAAsB;QAC3B,IAAI,GAAG,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC;QAC3E,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;IACjC,CAAC;IAED,uBAAuB,CAAC,gBAAwB;QAC9C,IAAI,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,uBAAuB,GAAG,gBAAgB,CAAC;QAChG,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAEM,WAAW,CAAC,KAAa;QAC9B,IAAI,GAAG,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAC9E,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,mBAAmB,CAAC,gBAAwB;QAC1C,IAAI,GAAG,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,mBAAmB,GAAG,gBAAgB,CAAC;QAC3F,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,oBAAoB;QAClB,IAAI,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;QAChE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;;0GA1CU,6BAA6B;gHAA7B,6BAA6B,WAA7B,6BAA6B,mBAF5B,MAAM;6FAEP,6BAA6B;cAHzC,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACRD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwC;AAC2B;AACR;;;AAQpD,MAAM,2BAA2B;IAStC,YAAoB,UAAuB;QAAvB,eAAU,GAAV,UAAU,CAAa;QAN3C,eAAU,GAAG,qEAAW,CAAC,SAAS,CAAC;QACnC,cAAS,GAAG,uDAAe,CAAC,WAAW,CAAC;QACxC,aAAQ,GAAG,uDAAe,CAAC,OAAO,CAAC;QACrC,cAAS,GAAG,qEAAW,CAAC,kBAAkB,CAAC;QAC3C,aAAQ,GAAG,qEAAW,CAAC,iBAAiB,CAAC;IAIvC,CAAC;IAED,yEAAyE;IAElE,yBAAyB,CAAC,SAA+B;QAC5D,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAAC;QACnE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAyB,GAAG,EAAE,SAAS,CAAC;IACvE,CAAC;IAED,wDAAwD;IACxD,wFAAwF;IACxF,uDAAuD;IACvD,MAAM;IAEE,0BAA0B;QAC9B,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,0BAA0B,CAAC;QACrE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAgB,IAAI,CAAC,CAAC;IAClD,CAAC;IACM,4BAA4B,CAAC,KAAc;QAChD,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,4BAA4B,GAAG,KAAK,CAAE;QAClF,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAErC,CAAC;;sGAjCU,2BAA2B;8GAA3B,2BAA2B,WAA3B,2BAA2B,mBAF1B,MAAM;6FAEP,2BAA2B;cAHvC,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACTD;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AAEgB;AACQ;;;AAM5D,MAAM,wBAAwB;IAIjC,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAH1C,eAAU,GAAG,qEAAW,CAAC,SAAS,CAAC;QACnC,yBAAoB,GAAG,qEAAW,CAAC,gBAAgB,CAAC;QACpD,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;IACA,CAAC;IAExC,qBAAqB,CAAC,qBAA+C;QACxE,IAAI,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;QAC5D,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC;IAC5D,CAAC;IAEM,uBAAuB,CAAC,qBAA+C;QAC1E,IAAI,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;QAC5D,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC;IAC5D,CAAC;IAEM,gCAAgC,CAAC,SAAiB;QACrD,IAAI,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,gCAAgC,GAAG,SAAS,CAAC;QAClG,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAEM,uBAAuB,CAAC,mBAA2B;QACtD,IAAI,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,mBAAmB,CAAC;QAClF,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;IACM,wBAAwB,CAAC,KAAc,EAAG,OAAe,EAAE,MAAc;QAC5E,IAAI,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,sBAAsB,GAAG,KAAK,GAAG,GAAG,GAAG,OAAO,GAAC,GAAG,GAAE,MAAM,CAAC;QAChH,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;;gGA5BQ,wBAAwB;2GAAxB,wBAAwB,WAAxB,wBAAwB,mBAFrB,MAAM;6FAET,wBAAwB;cAHpC,wDAAU;eAAC;gBACR,UAAU,EAAE,MAAM;aACrB;;;;;;;;;;;;;;ACPD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AACgB;AACQ;AAK5B;;;AAQhC,MAAM,qBAAqB;IAahC,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAX1C,cAAS,GAAG,uDAAe,CAAC,QAAQ,CAAC;QACrC,qBAAgB,GAAG,uDAAe,CAAC,cAAc,CAAC;QAClD,eAAU,GAAG,uDAAe,CAAC,QAAQ,CAAC;QACtC,sBAAiB,GAAG,qEAAW,CAAC,iBAAiB,CAAC;QAClD,eAAU,GAAG,qEAAW,CAAC,SAAS,CAAC;QACnC,wBAAmB,GAAG,qEAAW,CAAC,gBAAgB,CAAC;QACnD,gBAAW,GAAG,IAAI,oDAAe,CAAS,CAAC,CAAC,CAAC;QAC7C,iBAAY,GAAG,IAAI,oDAAe,CAAS,IAAI,CAAC,CAAC;QACjD,aAAQ,GAAG,IAAI,oDAAe,CAAU,KAAK,CAAC,CAAC;QAC/C,cAAS,GAAG,IAAI,oDAAe,CAAS,CAAC,CAAC,CAAC;IAEG,CAAC;IAE/C,gCAAgC,CAAC,YAAoB;QACnD,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,GAAC,IAAI,CAAC,SAAS,CAAC,gCAAgC,GAAC,YAAY,CAAC;QAChG,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAEM,2BAA2B,CAAC,SAAiB;QAClD,IAAI,GAAG,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC,2BAA2B,GAAG,SAAS,CAAC;QAC7F,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAElC,CAAC;IACK,0BAA0B,CAAC,OAA6B;QAC5D,IAAI,IAAI,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC,0BAA0B,CAAC;QACjF,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IACM,0BAA0B,CAAC,OAA6B;QAC7D,IAAI,IAAI,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC,0BAA0B,CAAC;QACjF,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IACM,gCAAgC,CAAC,QAAgB,EAAE,SAAiB;QACzE,IAAI,IAAI,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAC,WAAW,GAAC,QAAQ,GAAC,aAAa,GAAC,SAAS,CAAC;QAC5G,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAC,EAAC,YAAY,EAAE,MAAM,EAAC,CAAC,CAAC;IAC1D,CAAC;IAEM,MAAM,CAAC,SAAiB,EAAC,QAAe;QAC7C,IAAI,GAAG,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,QAAQ,GAAG,GAAG,GAAE,SAAS,CAAE;QACzF,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IAED,uCAAuC,CAAC,SAAiB,EAAC,YAAY;QACpE,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,GAAC,IAAI,CAAC,SAAS,CAAC,uCAAuC,GAAC,SAAS,GAAC,gBAAgB,GAAC,YAAY,CAAC;QACpI,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,uBAAuB,CAAC,YAA0B;QAChD,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,GAAC,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC;QAC5E,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAC,YAAY,CAAC,CAAC;IAChD,CAAC;IAED,uBAAuB,CAAC,YAA0B;QAChD,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,GAAC,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC;QAC5E,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAC,YAAY,CAAC,CAAC;IAChD,CAAC;IAED,6BAA6B,CAAC,SAAiB;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,GAAC,IAAI,CAAC,SAAS,CAAC,6BAA6B,GAAC,SAAS,CAAC;QAC5F,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,wBAAwB,CAAC,iBAAiB;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,gBAAgB,CAAC,wBAAwB,CAAC;QACtF,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAC,iBAAiB,CAAC,CAAC;IACrD,CAAC;IACD,MAAM,CAAC,OAA6B;QAClC,IAAI,GAAG,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;QAClE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IACD,0BAA0B,CAAC,iBAAiB;QAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,gBAAgB,CAAC,0BAA0B,CAAC;QACxF,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAC,iBAAiB,CAAC,CAAC;IACrD,CAAC;;0FA1EU,qBAAqB;wGAArB,qBAAqB,WAArB,qBAAqB,mBAFpB,MAAM;6FAEP,qBAAqB;cAHjC,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACfD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AAEgB;AACQ;AAI5B;;;AAKhC,MAAM,sBAAsB;IASjC,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAR1C,eAAU,GAAG,qEAAW,CAAC,SAAS,CAAC;QACnC,sBAAiB,GAAG,qEAAW,CAAC,iBAAiB,CAAC;QAClD,wBAAmB,GAAG,qEAAW,CAAC,gBAAgB,CAAC;QACnD,cAAS,GAAG,uDAAe,CAAC,QAAQ,CAAC;QACrC,gBAAW,GAAG,IAAI,oDAAe,CAAS,CAAC,CAAC,CAAC;QAC7C,iBAAY,GAAG,IAAI,oDAAe,CAAS,IAAI,CAAC,CAAC;QACjD,aAAQ,GAAG,IAAI,oDAAe,CAAU,KAAK,CAAC,CAAC;QAC/C,cAAS,GAAG,IAAI,oDAAe,CAAS,CAAC,CAAC,CAAC;IACG,CAAC;IAExC,WAAW,CAAC,UAAU;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;QACjE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAC/C,CAAC;IAEM,WAAW,CAAC,QAAkB;QACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAEM,eAAe;QACpB,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;IAC1C,CAAC;IAEM,eAAe,CAAC,YAAqB;QAC1C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACvC,CAAC;IAEM,WAAW;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;IACtC,CAAC;IAEM,aAAa,CAAC,QAAgB;QACnC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAEM,cAAc;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;IACzC,CAAC;IAEM,YAAY,CAAC,SAAiB;QACnC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC;IAEM,YAAY;QAEjB,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;IACvC,CAAC;IAEM,qBAAqB,CAAC,SAAiB;QAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,GAAG,SAAS,CAAC;QACjF,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAEM,gBAAgB;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAE;QACzE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IACD,oBAAoB,CAAC,OAAqB;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;QACpE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED,oBAAoB,CAAC,SAAS;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,SAAS,CAAC;QAChF,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAC9C,CAAC;IAED,eAAe,CAAC,QAAgB,EAAE,KAAa,EAAE,SAAkB;QACjE,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,GAAG,QAAQ,GAAG,cAAc,GAAG,KAAK,GAAG,aAAa,GAAG,SAAS,CAAC;QACtI,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAmB,IAAI,CAAC,CAAC;IACrD,CAAC;IACD,kBAAkB,CAAC,QAAgB,EAAE,KAAa;QAEhD,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,QAAQ,GAAG,cAAc,GAAG,KAAK,CAAC;QACrG,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAmB,IAAI,CAAC,CAAC;IACrD,CAAC;IAEM,UAAU;QACf,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,GAAG,uDAAe,CAAC,MAAM,CAAC,IAAI,CAAC;IAClF,CAAC;IAEM,iBAAiB,CAAC,SAAkB,EAAE,QAAiB,EAAE,KAAc;QAC5E,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,GAAG,SAAS,GAAG,GAAG,GAAG,QAAQ,GAAG,GAAG,GAAG,KAAK,CAAC;QACnH,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAEM,mBAAmB,CAAC,SAAkB,EAAE,MAAe,EAAE,KAAc;QAC5E,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,mBAAmB,GAAG,SAAS,GAAG,GAAG,GAAG,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC;IAErI,CAAC;IAEM,eAAe,CAAC,SAAkB;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,GAAG,aAAa,GAAG,SAAS,CAAC;QAClG,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAEM,wBAAwB,CAAC,WAA0B;QACxD,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAE;QACpE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAC,WAAW,CAAC,CAAC;IAC/C,CAAC;;4FApGU,sBAAsB;yGAAtB,sBAAsB,WAAtB,sBAAsB,mBAFrB,MAAM;6FAEP,sBAAsB;cAHlC,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACXD;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AACgB;AAEQ;;;AAK5D,MAAM,qBAAqB;IAIhC,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAH1C,eAAU,GAAG,qEAAW,CAAC,SAAS,CAAC;QACnC,cAAS,GAAG,uDAAe,CAAC,eAAe,CAAC;IAEE,CAAC;IACxC,aAAa;QAElB,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;QACzD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;IACjC,CAAC;IACM,WAAW,CAAC,KAAa;QAE9B,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,GAAG,KAAK,CAAC;QACrE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;;0FAdU,qBAAqB;wGAArB,qBAAqB,WAArB,qBAAqB,mBAFpB,MAAM;6FAEP,qBAAqB;cAHjC,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACPD;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AAEgB;AACQ;;;AAQ5D,MAAM,UAAU;IAIrB,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAH1C,eAAU,GAAG,qEAAW,CAAC,SAAS,CAAC;QACnC,yBAAoB,GAAG,qEAAW,CAAC,gBAAgB,CAAC;QACpD,cAAS,GAAG,uDAAe,CAAC,GAAG,CAAC;QAEhC,YAAO,GAAW,EAAE,CAAC;IADyB,CAAC;IAGxC,OAAO,CAAC,MAAM;QACnB,IAAI,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;QAC/D,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAC,MAAM,CAAE;IAC1C,CAAC;IACM,iBAAiB,CAAC,SAAiB;QACxC,IAAI,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,GAAC,SAAS,CAAC;QACjF,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAE;IACpC,CAAC;IACM,eAAe,CAAC,QAAiB,EAAE,KAAc;QACtD,IAAI,IAAI,GAAG,IAAI,CAAC,oBAAoB,GAAE,uDAAe,CAAC,QAAQ,CAAC,cAAc,GAAG,QAAQ,GAAE,cAAc,GAAE,KAAK,CAAC;QAChH,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAmB,IAAI,CAAC;IAClD,CAAC;IACM,cAAc,CAAC,WAAW;QAC/B,IAAI,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;QACpE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAC,WAAW,CAAE;IAC/C,CAAC;IACM,mBAAmB,CAAC,EAAU,EAAG,SAAkB;QACxD,IAAI,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,mBAAmB,GAAC,EAAE,GAAG,aAAa,GAAG,SAAS,CAAC;QACxG,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;IACnC,CAAC;IACM,aAAa,CAAC,SAAkB,EAAE,EAAW,EAAG,QAAiB;QACpE,IAAI,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,GAAC,EAAE,GAAG,aAAa,GAAG,SAAS,GAAG,YAAY,GAAG,QAAQ,CAAC;QAC5H,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAE;IACpC,CAAC;IAEM,sBAAsB,CAAC,SAAkB,EAAE,EAAW,EAAG,QAAiB;QAC7E,IAAI,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,sBAAsB,GAAC,EAAE,GAAG,aAAa,GAAG,SAAS,GAAG,YAAY,GAAG,QAAQ,CAAC;QACrI,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAE;IACpC,CAAC;IAEM,gBAAgB,CAAC,YAAY;QAClC,IAAI,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC;QACtE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAC,YAAY,CAAE;IAChD,CAAC;IACM,qBAAqB,CAAC,YAAY;QACvC,IAAI,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC;QAC3E,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAC,YAAY,CAAE;IAChD,CAAC;IAED,oDAAoD;IACpD,8EAA8E;IAC9E,sDAAsD;IACtD,IAAI;IAEG,SAAS,CAAC,EAAE;QACjB,IAAI,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAC,MAAM,GAAC,EAAE,CAAC;QACtE,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC;IACpC,CAAC;;oEAtDY,UAAU;6FAAV,UAAU,WAAV,UAAU,mBAFT,MAAM;6FAEP,UAAU;cAHtB,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACVD;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AAEgB;AACA;;;AAOpD,MAAM,mBAAmB;IAK9B,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAH1C,eAAU,GAAG,wEAAW,CAAC,SAAS,CAAC;QACnC,cAAS,GAAG,uDAAe,CAAC,YAAY,CAAC;IAEK,CAAC;IAExC,4BAA4B,CAAC,SAAiB;QACjD,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,4BAA4B,GAAG,SAAS,CAAC;QACpF,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAqB,GAAG,CAAC;IACvD,CAAC;IAEM,0BAA0B,CAAC,SAAiB;QAC/C,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,0BAA0B,GAAG,SAAS,CAAC;QAClF,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAqB,GAAG,CAAC,CAAC;IACxD,CAAC;IAEM,aAAa,CAAC,SAA6B;QAC9C,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;QACzD,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAChD,CAAC;IAEM,aAAa,CAAC,QAA4B;QAC7C,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;QACzD,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAEM,aAAa,CAAC,cAAsB;QACvC,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,kBAAkB,GAAG,cAAc,CAAC;QAC/E,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IAEM,kBAAkB,CAAC,WAAmB,EAAE,SAAkB;QAC7D,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,WAAW,GAAG,aAAa,GAAG,SAAS,CAAE;QACpG,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;;sFAnCU,mBAAmB;sGAAnB,mBAAmB,WAAnB,mBAAmB,mBAFlB,MAAM;6FAEP,mBAAmB;cAH/B,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACTD;AAAA;AAAA;AAAA;AAA6B;AAE7B,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,EAAE;IACnC,IAAI,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACxC,IAAI,SAAS,GAAG,IAAI,IAAI,qBAAqB,CAAC;IAC9C,IAAI,QAAQ,GAAG,GAAG,SAAS,IAAI,QAAQ,EAAE,CAAC;IAC1C,OAAO;QACL,SAAS;QACT,QAAQ;KACT,CAAC;AACJ,CAAC,CAAC;AACK,MAAM,SAAS;IACpB,MAAM,CAAC,kBAAkB,CAAC,OAAe,EAAE,IAAa;QACtD,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,EAAE,GAAG,0CAAU,CAAC,aAAa,CAAC,cAAc,EAAwB;YACtE,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;QACH,8CAAc,CAAC,EAAE,EAAE,GAAG,QAAQ,OAAO,CAAC,CAAC;IACzC,CAAC;IACD,MAAM,CAAC,kBAAkB,CAAC,GAAU,EAAE,IAAa;QACjD,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAEhD,IAAI,EAAE,GAAG,0CAAU,CAAC,QAAQ,EAAE,CAAC;QAC/B,IAAI,EAAE,GAAG,0CAAU,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACvC,0CAAU,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;QAChD,8CAAc,CAAC,EAAE,EAAE,GAAG,QAAQ,OAAO,CAAC,CAAC;IACzC,CAAC;CACF;;;;;;;;;;;;;AC5BD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAyE;AAQjB;AACxD,0GAA0G;AAClB;AAC/B;AAMK;AAEH;AASE;AAM5B;AACgH;;;;;;;;;;;;;;;;;;;;;;;;;ICjB7H,4FAEI;IADA,qXAA4B,UAAU,KAAE;IACxC;IAAA,+EAAkC;IAAA,gEAAK;IAAA,4DAAW;IACtD;IAAA,4DAAwB;;;IAGxB,4EAAiE;IAAA,sGACjE;IAAA,4DAAY;;;;IAUZ,4FAEI;IADA,qXAA4B,QAAQ,KAAE;IACtC;IAAA,+EAAkC;IAAA,gEAAK;IAAA,4DAAW;IACtD;IAAA,4DAAwB;;;IAGxB,4EAA+D;IAAA,8EAAmB;IAAA,4DAAY;;;;IAgCjG,wEAEG;IADA,uUAAwB;IACxB;IAAA,qEAAiC;IACrC;IAAA,4DAAI;;;IAUI,yEAAwF;IAAA,6DAAE;IAAA,4DAAK;;;IAC/F,yEAAwD;IAAA,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,oGAAyB;;;IAIjF,yEAAwF;IAAA,+DAAI;IAAA,4DAAK;;;IACjG,yEAAwD;IAAA,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,oGAAyB;;;IAG/E,yEAAyF;IAAA,kEAAO;IAAA,4DAAK;;;IACrG,yEAAyD;IAAA,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,mGAAwB;;;IAGjF,yEAAwF;IAAA,4EAAiB;IAAA,4DAAK;;;IAC9G,yEAAwD;IAAA,uDAAiC;IAAA,4DAAK;;;IAAtC,0DAAiC;IAAjC,4GAAiC;;;IAGvF,yEAAwF;IAAA,qEAAU;IAAA,4DAAK;;;IACvG,yEAAwD;IAAA,uDAA4B;IAAA,4DAAK;;;IAAjC,0DAA4B;IAA5B,uGAA4B;;;IAGtF,yEAAwE;IAAA,sEAAW;IAAA,4DAAK;;;;IACxF,yEAAwD;IAAA;IAAA,+EAAqG;IAA1C,sYAAwC;IAAE,sEAAU;IAAA,4DAAW;IAAC;IAAA,4DAAK;;;IAG9L,oEAA4D;;;IACxD,oEAAkE;;;IAClE,yEACI;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAChD;IAAA,4DAAK;;;ADlEvB,MAAM,kCAAkC;IA8C7C,YAAoB,gCAAkE,EAC5E,mBAAwC,EACzC,UAAsB,EACrB,OAA0B,EAC1B,SAAsB,EACtB,EAAe,EAChB,MAAiB,EAChB,iBAAoC;QAP1B,qCAAgC,GAAhC,gCAAgC,CAAkC;QAC5E,wBAAmB,GAAnB,mBAAmB,CAAqB;QACzC,eAAU,GAAV,UAAU,CAAY;QACrB,YAAO,GAAP,OAAO,CAAmB;QAC1B,cAAS,GAAT,SAAS,CAAa;QACtB,OAAE,GAAF,EAAE,CAAa;QAChB,WAAM,GAAN,MAAM,CAAW;QAChB,sBAAiB,GAAjB,iBAAiB,CAAmB;QAlD9C,oBAAe,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QAGnD,iBAAY,GAAuB,EAAE,CAAC;QACtC,kBAAa,GAA6B,EAAE,CAAC;QAI7C,wBAAmB,GAAY,KAAK,CAAC;QAGrC,iBAAY,GAAW,EAAE,CAAC;QAC1B,SAAI,GAAC,CAAC,CAAC;QAEA,iBAAY,GAAY,KAAK,CAAC;QACrC,cAAS,GAAY,KAAK,CAAC;QAI3B,iBAAY,GAAa,EAAE,CAAC;QAIpB,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QACtD,qBAAgB,GAAa,CAAC,cAAc,EAAC,cAAc,EAAC,aAAa,EAAC,sBAAsB,EAAC,iBAAiB,EAAC,MAAM,CAAC,CAAC;QAC3H,iBAAY,GAAU,EAAE,CAAC;QAIzB,mBAAc,GAAiB,EAAE,CAAC;QAGlC,uBAAkB,GAAkC,OAAO,CAAC;QAC5D,qBAAgB,GAAgC,KAAK,CAAC;QAMtD,yBAAoB,GAAG,IAAI,CAAC;QAa9B,IAAI,CAAC,UAAU,GAAG,IAAI,gGAAsB,EAAE,CAAC;QAC/C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;QAEhD,IAAI,IAAI,GAAS,IAAI,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAEpB,IAAI,CAAC,gCAAgC,CAAC,oBAAoB,EAAE,CAAC,SAAS,CACpE,CAAC,QAAc,EAAE,EAAE;YACjB,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC;QAC1B,CAAC,EACD,CAAC,KAAU,EAAE,EAAE,GAAI,CAAC,CACrB,CAAC;QAEF,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CACrB,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAC1D,CAAC,UAAU,CAAC;QAEb,IAAI,CAAC,gCAAgC,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAC9E,CAAC,QAAiB,EAAE,EAAE;YACpB,IAAI,CAAC,oBAAoB,GAAG,QAAQ,CAAC;YACrC,IAAG,IAAI,CAAC,oBAAoB,KAAK,IAAI;gBAC7C,IAAI,CAAC,gBAAgB,GAAG,CAAC,cAAc,EAAC,cAAc,EAAC,aAAa,EAAC,sBAAsB,EAAC,iBAAiB,EAAC,MAAM,CAAC,CAAC;;gBAEtH,IAAI,CAAC,gBAAgB,GAAG,CAAC,cAAc,EAAC,cAAc,EAAC,sBAAsB,EAAC,iBAAiB,EAAC,MAAM,CAAC,CAAC;YAChG,IAAI,CAAC,kBAAkB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACpE,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC;YAC7B,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACnD,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;QAE1C,CAAC,EACD,CAAC,KAAU,EAAE,EAAE,GAAI,CAAC,CACrB,CAAC;QAEN,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE;YAC9D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACH,CAAC;IAEC,QAAQ;QAEN,IAAI,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,IAAI,IAAI,EAAE;YACrE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CACxB,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAC1D,CAAC,QAAQ,CAAC;YAEX,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CACrB,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAC1D,CAAC,UAAU,CAAC;YACb,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;YAC1B,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;SAC5B;QACD,IAAI,CAAC,gCAAgC,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAC9E,CAAC,QAAiB,EAAE,EAAE;YACpB,IAAI,CAAC,oBAAoB,GAAG,QAAQ,CAAC;QACvC,CAAC,EACD,CAAC,KAAU,EAAE,EAAE,GAAI,CAAC,CACrB,CAAC;QAEF,IAAG,IAAI,CAAC,oBAAoB,KAAK,IAAI;YACrC,IAAI,CAAC,gBAAgB,GAAG,CAAC,cAAc,EAAC,cAAc,EAAC,aAAa,EAAC,sBAAsB,EAAC,iBAAiB,EAAC,MAAM,CAAC,CAAC;;YAEtH,IAAI,CAAC,gBAAgB,GAAG,CAAC,cAAc,EAAC,cAAc,EAAC,sBAAsB,EAAC,iBAAiB,EAAC,MAAM,CAAC,CAAC;QAExG,IAAI,CAAC,kBAAkB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC5D,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACnD,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;QAE5C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YAC1B,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACrC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;SACpC,CAAC,CAAC;IACL,CAAC;IAED,qBAAqB;QACnB,IAAI,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,IAAI,IAAI,EAAE;YACrE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CACxB,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAC1D,CAAC,QAAQ,CAAC;YAEX,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAC7B,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAC1D,CAAC,QAAQ,CAAC;YAEX,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAC5B,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAC1D,CAAC,YAAY,CAAC;SAChB;QAED,IAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAC;YACnB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;SACf;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,KAAK,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,KAAK,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,EAAE;YACxL,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,OAAO;SACR;QAED,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;QACnB,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,IAAI,EAAE;YACtE,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE;gBACxD,IAAI,CAAC,YAAY,GAAG,qCAAqC,CAAC;gBAC1D,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;gBACnB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,qCAAqC,EAAE,GAAG,EAAE;oBAC9D,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBAEH,OAAO,KAAK,CAAC;aACd;YACD,IAAI,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE;gBACtD,IAAI,CAAC,YAAY,GAAG,mCAAmC,CAAC;gBACxD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;gBACnB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE;oBAC5D,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,OAAO,KAAK,CAAC;aACd;YACD,IAAI,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;gBACpE,IAAI,CAAC,YAAY,GAAG,uCAAuC,CAAC;gBAC5D,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;gBACnB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;oBAChE,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,OAAO,KAAK,CAAC;aACd;YAED,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACjF,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAC7E,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC;YAClD,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YACjD,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;YACxC,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC;YACjD,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACzC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC5C;IACH,CAAC;IAED,oBAAoB,CAAC,MAA8B;QACjD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAEpB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,gCAAgC,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC,SAAS,CAChF,CAAC,QAA4B,EAAE,EAAE;YAC/B,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;YAC7B,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACvB,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC,gBAAgB,CAAC;gBAC7C,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,CAAC;YACzC,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,kBAAkB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACpE,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACnD,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;QAC1C,CAAC,EACD,CAAC,KAAU,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CACzC,CAAC;IACJ,CAAC;IAED,mBAAmB,CAAC,MAA8B;QAChD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,gCAAgC,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC,SAAS,CAC/E,CAAC,QAAkC,EAAE,EAAE;YACrC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;QAChC,CAAC,EACD,CAAC,KAAU,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CACzC,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,WAAW,EAAE;gBACf,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;aACnE;iBAAM;gBACL,IAAI,CAAC,kBAAkB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACpE,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBACnD,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;aAC1C;SACF;aAAM;YACL,IAAI,CAAC,kBAAkB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACpE,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACnD,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SAC1C;IACH,CAAC;IAED,UAAU,CAAC,GAAQ,EAAE,SAAS;QAC5B,IAAG,SAAS,IAAE,QAAQ,EAAC;YACrB,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;YAClC,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB;QACD,IAAG,SAAS,IAAE,UAAU,EAAC;YACvB,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC;YACpC,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB;IACH,CAAC;IAED,WAAW;QACT,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;QAC7B,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,IAAI,gGAAsB,EAAE,CAAC;QAC/C,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,kBAAkB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACpE,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACzC,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACnD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;QAClD,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;IACvB,CAAC;IAED,SAAS;QACR,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,kBAAkB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACpE,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACzC,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACnD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;QAClD,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;IACvB,CAAC;IAEJ,YAAY;QACV,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAG,IAAI,CAAC,oBAAoB,IAAI,IAAI,EACpC;YACA,MAAM,wBAAwB,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACtE,IAAI,EAAE,CAAC,CAAC,YAAY;gBACpB,MAAM,EAAE,CAAC,CAAC,YAAY;gBACtB,SAAS,EAAE,CAAC,CAAC,WAAW;gBACxB,mBAAmB,EAAE,CAAC,CAAC,oBAAoB;gBAC3C,YAAY,EAAE,CAAC,CAAC,eAAe;aAChC,CAAC,CAAC,CAAC;YACJ,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,wBAAwB,EAAE,6BAA6B,CAAC,CAAC;SAChG;aAEA;YACC,MAAM,wBAAwB,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACtE,IAAI,EAAE,CAAC,CAAC,YAAY;gBACpB,MAAM,EAAE,CAAC,CAAC,YAAY;gBACtB,mBAAmB,EAAE,CAAC,CAAC,oBAAoB;gBAC3C,YAAY,EAAE,CAAC,CAAC,eAAe;aAChC,CAAC,CAAC,CAAC;YACJ,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,wBAAwB,EAAE,6BAA6B,CAAC,CAAC;SAChG;QACD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;IAEF,qBAAqB,CAAC,QAA0B;QAE/C,IAAI,CAAC,YAAY,GAAG,IAAI,gGAAsB,EAAE,CAAC;QACjD,IAAI,CAAC,YAAY,CAAC,YAAY,GAAE,QAAQ,CAAC,YAAY,CAAC;QACtD,IAAI,CAAC,YAAY,CAAC,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;QACvD,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QACtD,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAClD,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,CAAC,CAAC;QAEhC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,gCAAgC,CAAC,yBAAyB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,SAAS,CAC1F,CAAC,QAAkC,EAAE,EAAE;YACrC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;YAC9B,IAAI,CAAC,UAAU,GAAG,IAAI,oGAA0B,EAAE,CAAC;YACnD,IAAI,CAAC,UAAU,CAAC,SAAS,GAAI,IAAI,CAAC,aAAa,CAAC;YAChD,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;YACrD,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,QAAQ,CAAC,eAAe,CAAC;YACtD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8JAA+B,EAAE;gBAClE,KAAK,EAAE,QAAQ;gBACf,YAAY,EAAE,IAAI;gBAClB,IAAI,EAAE,IAAI,CAAC,UAAU;aACtB,CAAC,CAAC;QACL,CAAC,EACD,CAAC,KAAU,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CACzC,CAAC;IAEH,CAAC;;oHAhWS,kCAAkC;kHAAlC,kCAAkC;;wEA4ClC,wEAAY;;;;;;;QC7FzB,gFACI;QAAA;QAAA,yFACE;QAD8C,oLAAe,CAAC,IAAC,4HAAgB,CAAC,IAAjB;QAC/D;QAAA,6FACE;QAAA;QAAA,kFACI;QAAA;QAAA,2EAAU;QAAA,sEAAW;QAAA,4DAAW;QAAC,+FACrC;QAAA,4DAAkB;QACnB;QAAA,4DAA6B;QAE7B;QAAA,2EACC;QAAA;QAAA,0EACI;QAAA;QAAA,0EACE;QAAA;QAAA,iEACE;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,qEAAS;QAAA,2EAA0B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QAElE;QAAA,4EAGA;QAHuE,wSAAS,UAAW,IAAC,0JACpB,eAAW,IADS,wGAEjD,uBAAuB,IAF0B;QAA5F,4DAGA;QAAA;QAAA,oKAEI;QAEJ;QAAA,uFAAsE;QACtE;QAAA,sFAAuC;QACvC;QAAA,6IAAiE;QAErE;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,iEACE;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,mEAAO;QAAA,2EAA0B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QAChE;QAAA,6EAGA;QAHqE,wSAAS,UAAS,IAAC,wJAClB,eAAW,IADO,wGAErC,uBAAuB,IAFc;QAAxF,4DAGA;QAAA;QAAA,oKAEI;QAEJ;QAAA,uFAAoE;QACpE;QAAA,uFAAqC;QACrC;QAAA,6IAA+D;QACnE;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QAEV;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,8EACI;QADqC,2JAAS,iBAAa,IAAC;QAC5D,mFAAK;QAAA,4DAAS;QAClB;QAAA,8EACI;QAD+D,2JAAS,2BAAuB,IAAC;QAChG,mFAAK;QAAA,4DAAS;QACtB;QAAA,4DAAM;QACV;QAAA,4DAAO;QACP;QAAA,4DAAsB;QACxB;QAAA,4DAAgB;QAEhB;QAAA,4EACE;QAAA;QAAA,oFACI;QAAA;QAAA,0EACE;QAAA;QAAA,2EACE;QAAA;QAAA,gFAA0C;QAAA,kEAAM;QAAA,4DAAW;QAAA,qEAAI;QAAA,gFAAmB;QAAA,4DAAI;QACvF;QAAA,wEAAM;QAAA,wDAAuB;QAAA,4DAAO;QACtC;QAAA,4DAAM;QACN;QAAA,2EACC;QAAA;QAAA,qEAAI;QAAA,gFAAmB;QAAA,4DAAI;QAC5B;QAAA,yEAAM;QAAA,yDAAoB;QAAA,4DAAO;QACnC;QAAA,4DAAM;QACN;QAAA,4EACC;QAAA;QAAA,sEAAI;QAAA,uEAAS;QAAA,4DAAI;QAClB;QAAA,yEAAM;QAAA,yDAAiB;QAAA,4DAAO;QAChC;QAAA,4DAAM;QACA;QAAA,4EACG;QAAA;QAAA,6EACG;QAAA;QAAA,+HAEG;QAEN;QAAA,4DAAO;QACV;QAAA,4DAAM;QACT;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,4EACI;QAAA;QAAA,4EACI;QAAA;QAAA,kFAEE;QAAA;QAAA,8EACE;QAAA;QAAA,iIAAwF;QACxF;QAAA,iIAAwD;QAC1D;QAAA,qEAAe;QAEjB;QAAA,8EACI;QAAA;QAAA,iIAAwF;QACxF;QAAA,iIAAwD;QAC1D;QAAA,qEAAe;QACb;QAAA,8EACE;QAAA;QAAA,iIAAyF;QACzF;QAAA,iIAAyD;QAC3D;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,iIAAwF;QACxF;QAAA,iIAAwD;QAC1D;QAAA,qEAAe;QACf;QAAA,8EACI;QAAA;QAAA,iIAAwF;QACxF;QAAA,iIAAwD;QAC5D;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,iIAAwE;QACxE;QAAA,iIAAwD;QAC5D;QAAA,qEAAe;QAEjB;QAAA,iIAAuD;QACnD;QAAA,iIAA6D;QAC7D;QAAA,iIACI;QAER;QAAA,4DAAQ;QACV;QAAA,4DAAM;QACR;QAAA,4EACI;QAAA;QAAA,iFAA4F;QAChG;QAAA,4DAAM;QACV;QAAA,4DAAM;QACV;QAAA,4DAAM;QACV;QAAA,4DAAmB;QACvB;QAAA,4DAAW;QAIX;QAAA,oFAEI;QAAA;QAAA,0EAAmB;QAAA,wEAAW;QAAA,4DAAI;QACtC;QAAA,4DAAc;QAEd;;;;QApI4B,0DAAuB;QAAvB,oFAAuB;QAOtC,2DAAoB;QAApB,iFAAoB;QAID,0DAA8B;QAA9B,sGAA8B;QAG1B,0DAAe;QAAf,4EAAe;QAGE,0DAA6B;QAA7B,2FAA6B;QAI7B,0DAAY;QAAZ,oEAAY;QAElC,0DAAqD;QAArD,mHAAqD;QAMpD,0DAA8B;QAA9B,sGAA8B;QAE1B,0DAAe;QAAf,4EAAe;QAGE,0DAA2B;QAA3B,yFAA2B;QAI3B,0DAAU;QAAV,oEAAU;QAEhC,0DAAmD;QAAnD,iHAAmD;QAoBjE,2DAAuB;QAAvB,wFAAuB;QAIzB,0DAAoB;QAApB,qFAAoB;QAItB,0DAAiB;QAAjB,kFAAiB;QAIV,0DAA6B;QAA7B,6FAA6B;QAUY,2DAAiC;QAAjC,8FAAiC;QA4BvD,2DAAmC;QAAnC,iGAAmC;QACtC,0DAAgD;QAAhD,kGAAgD;QAOjD,0DAA4D;QAA5D,mJAA4D;QASrC,0DAAoB;QAApB,6EAAoB;;6FD/EjE,kCAAkC;cAL9C,uDAAS;eAAC;gBACT,QAAQ,EAAE,iCAAiC;gBAC3C,WAAW,EAAE,8CAA8C;gBAC3D,SAAS,EAAE,CAAC,8CAA8C,CAAC;aAC5D;iwBA4CoB,IAAI;kBAAtB,uDAAS;mBAAC,MAAM;YAC0B,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AE7F3C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAyE;AAC+C;AACjD;AAGZ;AACV;AAGmB;AAEX;AAGxB;AAE6B;;;;;;;;;;;;;;;;;;;;;ICbtD,wEAEE;IADA,+TAAwB;IACxB;IAAA,qEAAiC;IACrC;IAAA,4DAAI;;;;IAgBA,4FAEE;IADA,4XAA4B,WAAW,KAAE;IACzC;IAAA,+EAAkC;IAAA,gEAAK;IAAA,4DAAW;IACpD;IAAA,4DAAwB;;;IAGxB,4EACM;IAAA;IAAA,2EAAyB;IAAA,iFAAsB;IAAA,4DAAO;IAC1D;IAAA,4DAAY;;;;IAUd,4FACE;IADoE,4XAA4B,SAAS,KAAE;IAC3G;IAAA,+EAAkC;IAAA,gEAAK;IAAA,4DAAW;IACpD;IAAA,4DAAwB;;;IAGxB,4EACI;IAAA;IAAA,2EAAyB;IAAA,+EAAoB;IAAA,4DAAO;IACxD;IAAA,4DAAY;;;;IAnCpB,+EACE;IAAA;IAAA,0EAAwB;IAAA,yFAA8B;IAAA,4DAAM;IAC5D;IAAA,0EACE;IAAA;IAAA,0EACE;IAAA;IAAA,qFACE;IAAA;IAAA,6EAAW;IAAA,qFACT;IAAA,4EAA0B;IAAA,6DAAC;IAAA,4DAAO;IACpC;IAAA,4DAAY;IACZ;IAAA,6EAEA;IAFqE,+SAAS,WAAa,IAAC;IAA5F,4DAEA;IAAA;IAAA,2KAEE;IAEF;IAAA,wFAAwE;IACxE;IAAA,uFAAyC;IACzC;IAAA,mJACM;IAER;IAAA,4DAAiB;IACnB;IAAA,4DAAM;IACN;IAAA,2EACE;IAAA;IAAA,sFACE;IAAA;IAAA,6EAAW;IAAA,mFACT;IAAA,4EAA0B;IAAA,6DAAC;IAAA,4DAAO;IACpC;IAAA,4DAAY;IACZ;IAAA,6EAEA;IAFoE,+SAAS,WAAc,IAAC;IAA5F,4DAEA;IAAA;IAAA,2KACE;IAEF;IAAA,wFAAyE;IACzE;IAAA,uFAA0C;IAC1C;IAAA,mJACI;IAEN;IAAA,4DAAiB;IACnB;IAAA,4DAAM;IACR;IAAA,4DAAM;IACN;IAAA,2EACE;IAAA;IAAA,8EACI;IADqC,4UAAuB;IAC5D,6EAAK;IAAA,4DAAS;IAClB;IAAA,8EACI;IAD+D,mWAA8C;IAC7G,6EAAK;IAAA,4DAAS;IACtB;IAAA,4DAAM;IACN;IAAA,4DAAW;;;;;IA3CkB,0DAA4B;IAA5B,4FAA4B;IAEnC,0DAA+B;IAA/B,0GAA+B;IAID,0DAAwB;IAAxB,+EAAwB;IAEnC,0DAAsC;IAAtC,uGAAsC;IAItC,0DAAc;IAAd,qEAAc;IAEpC,0DAAiE;IAAjE,kIAAiE;IAM9D,0DAA+B;IAA/B,0GAA+B;IAIH,0DAAyB;IAAzB,+EAAyB;IAElC,0DAAoC;IAApC,qGAAoC;IAGpC,0DAAe;IAAf,qEAAe;IAErC,0DAA+D;IAA/D,gIAA+D;;;IAmB1E,yEAAoH;IAAA,yEAAc;IAAA,4DAAK;;;IAA/C,2FAA2B;;;IACnH,yEAAoF;IAAA,uDAA0B;IAAA,4DAAK;;;;IAA5D,2FAA2B;IAAE,0DAA0B;IAA1B,qGAA0B;;;IAI9G,yEAAwF;IAAA,yEAAc;IAAA,4DAAK;;;IAC3G,yEAAwD;IAAA,uDAA0B;IAAA,4DAAK;;;IAA/B,0DAA0B;IAA1B,qGAA0B;;;IAGhF,yEAAoH;IAAA,kEAAO;IAAA,4DAAK;;;IAAxC,2FAA2B;;;IACnH,yEAAoF;IAAA,uDAAoB;IAAA,4DAAK;;;;IAAtD,2FAA2B;IAAE,0DAAoB;IAApB,+FAAoB;;;IAGxG,yEAAwF;IAAA,4EAAiB;IAAA,4DAAK;;;IAC9G,yEAAwD;IAAA,uDAA6B;IAAA,4DAAK;;;IAAlC,0DAA6B;IAA7B,wGAA6B;;;IAGrF,yEAAwF;IAAA,0EAAe;IAAA,4DAAK;;;IAC5G,yEAAwD;IAAA,uDAA2B;IAAA,4DAAK;;;IAAhC,0DAA2B;IAA3B,sGAA2B;;;IAGvF,yEAAyF;IAAA,oEAAS;IAAA,4DAAK;;;IACvG,yEAAwD;IAAA,uDAAyC;;IAAA,4DAAK;;;IAA9C,0DAAyC;IAAzC,+KAAyC;;;IAIjG,yEAA0F;IAAA,oEAAS;IAAA,4DAAK;;;IACxG,yEAAwD;IAAA,uDAAyC;;IAAA,4DAAK;;;IAA9C,0DAAyC;IAAzC,+KAAyC;;;IAIjG,yEAAuF;IAAA,gEAAK;IAAA,4DAAK;;;IACjG,yEAAwD;IAAA,uDAAkB;IAAA,4DAAK;;;IAAvB,0DAAkB;IAAlB,6FAAkB;;;IAG1E,yEAAyF;IAAA,iEAAM;IAAA,4DAAK;;;IACpG,yEAAwD;IAAA,uDAAmB;IAAA,4DAAK;;;IAAxB,0DAAmB;IAAnB,8FAAmB;;;IAG3E,yEAAwF;IAAA,qEAAU;IAAA,4DAAK;;;IACvG,yEAAwD;IAAA,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,kGAAuB;;;IAG7E,yEAAyF;IAAA,2EAAgB;IAAA,4DAAK;;;IAC9G,yEAAwD;IAAA,uDAA4B;IAAA,4DAAK;;;IAAjC,0DAA4B;IAA5B,uGAA4B;;;IAGpF,yEAAqH;IAAA,oEAAS;IAAA,4DAAK;;;IAA1C,4FAA2B;;;IACpH,yEAAoF;IAAA,uDAAqB;IAAA,4DAAK;;;;IAAvD,4FAA2B;IAAE,0DAAqB;IAArB,gGAAqB;;;IAGzG,yEAAqH;IAAA,qEAAU;IAAA,4DAAK;;;IAA3C,4FAA2B;;;IACpH,yEAAoF;IAAA,uDAAsB;IAAA,4DAAK;;;;IAAxD,4FAA2B;IAAE,0DAAsB;IAAtB,iGAAsB;;;IAG1G,yEAAqH;IAAA,8EAAmB;IAAA,4DAAK;;;IAApD,4FAA2B;;;IACpH,yEAAsF;IAAA,uDAAiC;IAAA,4DAAK;;;;IAAnE,4FAA2B;IAAE,0DAAiC;IAAjC,4GAAiC;;;IAGvH,yEAAqH;IAAA,qEAAU;IAAA,4DAAK;;;IAA3C,4FAA2B;;;IACpH,yEAAsF;IAAA,uDAAyB;IAAA,4DAAK;;;;IAA3D,4FAA2B;IAAE,0DAAyB;IAAzB,oGAAyB;;;IAG7G,yEAAqH;IAAA,oFAAyB;IAAA,4DAAK;;;IAA1D,4FAA2B;;;IACpH,yEAAsF;IAAA,uDAAsC;IAAA,4DAAK;;;;IAAxE,4FAA2B;IAAE,0DAAsC;IAAtC,iHAAsC;;;IAG5H,yEAAqH;IAAA,yEAAc;IAAA,4DAAK;;;IAA/C,4FAA2B;;;IACpH,yEAAsF;IAAA,uDAA0B;IAAA,4DAAK;;;;IAA5D,4FAA2B;IAAE,0DAA0B;IAA1B,qGAA0B;;;IAIhH,yEAAqH;IAAA,iFAAsB;IAAA,4DAAK;;;IAAvD,4FAA2B;;;IACpH,yEAAsF;IAAA,uDAAgC;IAAA,4DAAK;;;;IAAlE,4FAA2B;IAAE,0DAAgC;IAAhC,2GAAgC;;;IAGtH,yEAAqH;IAAA,qFAA0B;IAAA,4DAAK;;;IAA3D,4FAA2B;;;IACpH,yEAAsF;IAAA,uDAAmC;IAAA,4DAAK;;;;IAArE,4FAA2B;IAAE,0DAAmC;IAAnC,8GAAmC;;;IAGzH,yEAAqH;IAAA,+EAAoB;IAAA,4DAAK;;;IAArD,4FAA2B;;;IACpH,yEAAsF;IAAA,uDAA+B;IAAA,4DAAK;;;;IAAjE,4FAA2B;IAAE,0DAA+B;IAA/B,0GAA+B;;;IAGrH,yEAAqH;IAAA,uFAA4B;IAAA,4DAAK;;;IAA7D,4FAA2B;;;IACpH,yEAAsF;IAAA,uDAAqC;IAAA,4DAAK;;;;IAAvE,4FAA2B;IAAE,0DAAqC;IAArC,gHAAqC;;;IAG3H,yEAAqH;IAAA,yEAAc;IAAA,4DAAK;;;IAA/C,4FAA2B;;;IACpH,yEAAoF;IAAA,uDAA0B;IAAA,4DAAK;;;;IAA5D,4FAA2B;IAAE,0DAA0B;IAA1B,qGAA0B;;;IAG9G,yEAAqH;IAAA,kEAAO;IAAA,4DAAK;;;IAAxC,4FAA2B;;;IACpH,yEAAoF;IAAA,uDAAoB;IAAA,4DAAK;;;;IAAtD,4FAA2B;IAAE,0DAAoB;IAApB,+FAAoB;;;IAE9G,oEAA4D;;;IACxD,oEAAkE;;;IAClE,yEACI;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAChD;IAAA,4DAAK;;;AD1IT,MAAM,4BAA4B;IAavC,YAAoB,0BAAsD,EACtD,SAAsB,EACvB,UAAsB,EACrB,mBAAuC,EACvC,OAA0B,EAAS,WAAuB;QAJ1D,+BAA0B,GAA1B,0BAA0B,CAA4B;QACtD,cAAS,GAAT,SAAS,CAAa;QACvB,eAAU,GAAV,UAAU,CAAY;QACrB,wBAAmB,GAAnB,mBAAmB,CAAoB;QACvC,YAAO,GAAP,OAAO,CAAmB;QAAS,gBAAW,GAAX,WAAW,CAAY;QAhB9E,kBAAa,GAAkC,EAAE,CAAC;QAIlD,qBAAgB,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QACpD,yBAAoB,GAAmC,IAAI,mGAA+B,EAAE,CAAC;QAC7F,qBAAgB,GAAW,IAAI,CAAC;QACxB,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QAItD,qBAAgB,GAAa,CAAC,eAAe,EAAC,eAAe,EAAC,OAAO,EAAC,QAAQ,EAAC,YAAY,EAAC,iBAAiB,EAAE,UAAU,EAAC,UAAU,EAAE,SAAS,EAAE,gBAAgB,EAAC,kBAAkB,EAAE,UAAU,EAAE,WAAW,EAAE,mBAAmB,EAAE,WAAW,EAAC,wBAAwB,EAAC,eAAe,EAAC,qBAAqB,EAAC,wBAAwB,EAAC,oBAAoB,EAAC,0BAA0B,EAAC,eAAe,EAAC,SAAS,CAAC,CAAC;IAKjU,CAAC;IAEnF,QAAQ;QACN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CACpB,cAAc,CAAC,+BAA+B,CAC/C,CAAC,QAAQ;QAEV,IAAG,IAAI,CAAC,IAAI,IAAI,iBAAiB,EAAC;YAChC,IAAI,CAAC,6BAA6B,EAAE,CAAC;YACrC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;SAC9B;aACG;YACJ,IAAI,CAAC,6BAA6B,EAAE,CAAC;YACrC,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;SAC7B;IACH,CAAC;IAED,6BAA6B;QAC3B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YAC3C,SAAS,EAAE,CAAC,IAAI,EAAE,yDAAU,CAAC,QAAQ,CAAC;YACtC,OAAO,EAAE,CAAC,IAAI,EAAE,yDAAU,CAAC,QAAQ,CAAC;SACrC,CAAC;IACJ,CAAC;IACD,kCAAkC;QAChC,IAAG,IAAI,CAAC,cAAc,CAAC,KAAK,EAAC;YAC7B,IAAI,CAAC,oBAAoB,CAAC,QAAQ,GAAG,mCAAM,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACtG,IAAI,CAAC,oBAAoB,CAAC,MAAM,GAAG,mCAAM,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAElG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,0BAA0B,CAAC,2BAA2B,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,SAAS,CAC9F,CAAC,GAAkC,EAAE,EAAE;gBACrC,IAAG,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE;oBAChC,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;oBACzB,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;oBAC7D,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;oBAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;oBACjC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;iBACrB;qBACI;oBACH,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;oBACxB,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;oBAC7D,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;oBAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;oBACjC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;oBACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE;wBAC3C,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAC,CAAC,eAAe,CAAC;wBAC5B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;YACH,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;gBACb,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;gBACtB,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBAC7D,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBACnC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,sCAAsC,EAAE,GAAG,EAAE;oBAC/D,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAC,CAAC,aAAa,CAAC;oBAC1B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACL,CAAC,CACF,CAAC;YAEF,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE;gBAC5D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;SACJ;aACG;YACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;gBAChE,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAC,CAAC,aAAa,CAAC;gBAC1B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;SACJ;IACD,CAAC;IACC,6BAA6B;QAC7B,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,0BAA0B,CAAC,sBAAsB,EAAE,CAAC,SAAS,CAChE,CAAC,GAAkC,EAAE,EAAE;YACrC,IAAG,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE;gBAChC,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;gBACzB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,MAAmC,EAAE,EAAE;oBACjE,MAAM,CAAC,yBAAyB,GAAG,CAAC,MAAM,CAAC,sBAAsB,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;oBAC1F,MAAM,CAAC,oBAAoB,GAAG,CAAC,MAAM,CAAC,iBAAiB,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;oBAChF,MAAM,CAAC,YAAY,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;gBAClE,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBAC7D,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBACjC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;aACrB;iBACI;gBACH,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE;oBAC3C,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAC,CAAC,eAAe,CAAC;oBAC5B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;QACH,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;YACb,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,sCAAsC,EAAE,GAAG,EAAE;gBAC/D,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAC,CAAC,aAAa,CAAC;gBAC1B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CACF,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE;YAC5D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAC3D;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC7D,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SAClC;IACH,CAAC;IAED,YAAY;QACV,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAG,IAAI,CAAC,IAAI,IAAI,iBAAiB,EAAC;YAC9B,IAAI,CAAC,eAAe,EAAE,CAAC;SAC1B;aACG;YACF,IAAI,CAAC,sBAAsB,EAAE,CAAC;SAC/B;QAED,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,UAAU,CAAC,GAAQ,EAAE,SAAS;QAC5B,IAAG,SAAS,IAAE,WAAW,EAAC;YACxB,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,CAAC;SAC9C;QACD,IAAG,SAAS,IAAE,SAAS,EAAC;YACtB,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC;SAC5C;IACH,CAAC;IAED,sBAAsB;QACpB,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACrD,gBAAgB,EAAE,CAAC,CAAC,aAAa;YACjC,gBAAgB,EAAE,CAAC,CAAC,aAAa;YACjC,OAAO,EAAE,CAAC,CAAC,KAAK;YAChB,QAAQ,EAAE,CAAC,CAAC,MAAM;YAClB,YAAY,EAAE,CAAC,CAAC,UAAU;YAC1B,kBAAkB,EAAE,CAAC,CAAC,eAAe;YACrC,SAAS,EAAE,CAAC,CAAC,OAAO;YACpB,iBAAiB,EAAE,CAAC,CAAC,cAAc;YACnC,mBAAmB,EAAE,CAAC,CAAC,gBAAgB;YACvC,WAAW,EAAG,CAAC,mCAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACvD,WAAW,EAAE,CAAC,mCAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACtD,WAAW,EAAE,CAAC,CAAC,QAAQ;YACvB,YAAY,EAAE,CAAC,CAAC,SAAS;YACzB,qBAAqB,EAAE,CAAC,CAAC,oBAAoB;YAC7C,2BAA2B,EAAE,CAAC,CAAC,yBAAyB;YACxD,YAAY,EAAE,CAAC,CAAC,YAAY;YAC5B,gBAAgB,EAAC,CAAC,CAAC,aAAa;YAChC,wBAAwB,EAAC,CAAC,CAAC,mBAAmB;YAC9C,4BAA4B,EAAC,CAAC,CAAC,sBAAsB;YACrD,sBAAsB,EAAC,CAAC,CAAC,kBAAkB;YAC3C,8BAA8B,EAAC,CAAC,CAAC,wBAAwB;YACzD,gBAAgB,EAAE,CAAC,CAAC,aAAa;YACjC,SAAS,EAAE,CAAC,CAAC,OAAO;SACrB,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,eAAe,EAAE,uBAAuB,CAAC,CAAC;IACnF,CAAC;IAED,eAAe;QACb,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACrD,gBAAgB,EAAE,CAAC,CAAC,aAAa;YACjC,OAAO,EAAE,CAAC,CAAC,KAAK;YAChB,QAAQ,EAAE,CAAC,CAAC,MAAM;YAClB,YAAY,EAAE,CAAC,CAAC,UAAU;YAC1B,kBAAkB,EAAE,CAAC,CAAC,eAAe;YACrC,iBAAiB,EAAE,CAAC,CAAC,cAAc;YACnC,mBAAmB,EAAE,CAAC,CAAC,gBAAgB;YACvC,WAAW,EAAG,CAAC,mCAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACvD,WAAW,EAAE,CAAC,mCAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;SACvD,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,eAAe,EAAE,uBAAuB,CAAC,CAAC;IACnF,CAAC;IAED,WAAW;QACT,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QAC5B,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC/D,CAAC;;wGA7NU,4BAA4B;4GAA5B,4BAA4B;wEAU5B,wEAAY;wEACZ,8DAAO;;;;;;QCpCpB,yEACI;QAAA;QAAA,yEACE;QAAA;QAAA,0EACE;QAAA;QAAA,oHAEE;QAEJ;QAAA,4DAAO;QAEP;QAAA,4DAAM;QACV;QAAA,4DAAM;QACN;QAAA,iEACA;QAAA;QAAA,sIACE;QA6CF;QAAA,4EACA;QAAA;QAAA,oFACE;QAAA;QAAA,0EACE;QAAA;QAAA,+EAEE;QAAA;QAAA,4EACE;QAAA;QAAA,wHAAoH;QACpH;QAAA,yHAAoF;QACtF;QAAA,qEAAe;QAEjB;QAAA,6EACI;QAAA;QAAA,yHAAwF;QACxF;QAAA,yHAAwD;QAC1D;QAAA,qEAAe;QACb;QAAA,6EACE;QAAA;QAAA,wHAAoH;QACpH;QAAA,yHAAoF;QACtF;QAAA,qEAAe;QACf;QAAA,6EACE;QAAA;QAAA,yHAAwF;QACxF;QAAA,yHAAwD;QAC1D;QAAA,qEAAe;QACf;QAAA,6EACE;QAAA;QAAA,yHAAwF;QACxF;QAAA,yHAAwD;QAC1D;QAAA,qEAAe;QACnB;QAAA,6EACE;QAAA;QAAA,yHAAyF;QACzF;QAAA,yHAAwD;QAC1D;QAAA,qEAAe;QAEf;QAAA,6EACE;QAAA;QAAA,yHAA0F;QAC1F;QAAA,yHAAwD;QAC1D;QAAA,qEAAe;QAEf;QAAA,6EACE;QAAA;QAAA,yHAAuF;QACvF;QAAA,yHAAwD;QAC1D;QAAA,qEAAe;QACf;QAAA,6EACE;QAAA;QAAA,yHAAyF;QACzF;QAAA,yHAAwD;QAC1D;QAAA,qEAAe;QACf;QAAA,6EACE;QAAA;QAAA,yHAAwF;QACxF;QAAA,yHAAwD;QAC1D;QAAA,qEAAe;QACf;QAAA,6EACI;QAAA;QAAA,yHAAyF;QACzF;QAAA,yHAAwD;QAC1D;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,2HAAqH;QACrH;QAAA,2HAAoF;QACtF;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,2HAAqH;QACrH;QAAA,2HAAoF;QACtF;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,2HAAqH;QACrH;QAAA,2HAAsF;QACxF;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,2HAAqH;QACrH;QAAA,2HAAsF;QACxF;QAAA,qEAAe;QACf;QAAA,8EACI;QAAA;QAAA,2HAAqH;QACrH;QAAA,2HAAsF;QACxF;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,2HAAqH;QACrH;QAAA,2HAAsF;QACxF;QAAA,qEAAe;QAEf;QAAA,8EACE;QAAA;QAAA,2HAAqH;QACrH;QAAA,2HAAsF;QACxF;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,2HAAqH;QACrH;QAAA,2HAAsF;QACxF;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,2HAAqH;QACrH;QAAA,2HAAsF;QACxF;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,2HAAqH;QACrH;QAAA,2HAAsF;QACxF;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,2HAAqH;QACrH;QAAA,2HAAoF;QACtF;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,2HAAqH;QACrH;QAAA,2HAAoF;QACtF;QAAA,qEAAe;QACnB;QAAA,2HAAuD;QACnD;QAAA,2HAA6D;QAC7D;QAAA,2HACI;QAER;QAAA,4DAAQ;QACV;QAAA,4DAAM;QACN;QAAA,4EACE;QAAA;QAAA,iFAAgE;QACpE;QAAA,4DAAM;QACN;QAAA,oFAMI;QAAA;QAAA,0EAAmB;QAAA,wEAAW;QAAA,4DAAI;QACtC;QAAA,4DAAc;QACd;QAAA,4DAAmB;QACnB;QAAA,4DAAW;;QA/KF,0DAA8B;QAA9B,8FAA8B;QAS7B,0DAAiC;QAAjC,+FAAiC;QAiDE,0DAAyB;QAAzB,sFAAyB;QAkG/C,4DAAmC;QAAnC,iGAAmC;QACtC,0DAAgD;QAAhD,kGAAgD;QAOjD,0DAAgC;QAAhC,kJAAgC;QAKlD,0DAAoB;QAApB,6EAAoB;;6FDnJV,4BAA4B;cALxC,uDAAS;eAAC;gBACT,QAAQ,EAAE,2BAA2B;gBACrC,WAAW,EAAE,wCAAwC;gBACrD,SAAS,EAAE,CAAC,wCAAwC,CAAC;aACtD;4kBAW4C,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACH,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AEpCtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAyE;AAMvB;AAEsC;AAC/B;AAMK;AAEH;AAG1B;AAC4B;AACA;AAK5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICTf,4FAEI;IADA,sXAA4B,UAAU,KAAE;IACxC;IAAA,+EAAkC;IAAA,gEAAK;IAAA,4DAAW;IACtD;IAAA,4DAAwB;;;IAGxB,4EAAiE;IAAA,oGACjE;IAAA,4DAAY;;;;IAUZ,4FAEI;IADA,sXAA4B,QAAQ,KAAE;IACtC;IAAA,+EAAkC;IAAA,gEAAK;IAAA,4DAAW;IACtD;IAAA,4DAAwB;;;IAGxB,4EAA+D;IAAA,8EAAmB;IAAA,4DAAY;;;IAU5F,iFACI;IAAA,uDAAgB;IAAA,4DAAa;;;IADc,6EAAgB;IAC3D,0DAAgB;IAAhB,oHAAgB;;;IAGxB,4EAEI;IAAA;IAAA,mEAA2D;IAC3D;IAAA,0EAAyB;IAAA,+EAAoB;IAAA,4DAAO;IACxD;IAAA,4DAAY;;;IAwBJ;IAAA,+EAAmC;IAAA,oEAAS;IAAA,4DAAW;IACvD,8GACJ;;;IAUQ;IAAA,+EAAmC;IAAA,oEAAS;IAAA,4DAAW;IACvD,sHACJ;;;IAkBI,yEAAgF;IAAA,uDAChF;IAAA,4DAAK;;;IAD2E,0DAChF;IADgF,2HAChF;;;IACA,yEAAuC;IAAA,uDAAiB;IAAA,4DAAK;;;IAAtB,0DAAiB;IAAjB,kFAAiB;;;IAGxD,yEAAgF;IAAA,+FAChF;IAAA,4DAAK;;;IACL,yEAAuC;IAAA,uDAAiB;IAAA,4DAAK;;;IAAtB,0DAAiB;IAAjB,kFAAiB;;;IAE5D,oEAA4D;;;IAC5D,oEAAkE;;;IAClE,yEACE;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAChD;IAAA,4DAAK;;;IAeA,uEAAiC;IAAA,uDAAgB;IAAA,yEAAS;IAAA,uDAAgB;IAAA,4DAAS;IACnF;IAAA,4DAAO;;;IAD0B,0DAAgB;IAAhB,+FAAgB;IAAS,0DAAgB;IAAhB,+FAAgB;;;;IAM9E,0EACI;IAAA;IAAA,wEACI;IADD,0UAAwB;IACvB;IAAA,qEAAiC;IACrC;IAAA,4DAAI;IACF;IAAA,0EACE;IAAA;IAAA,+EAA+G;IAAhF,oVAA2B;IAAqD,qEAAS;IAAA,4DAAW;IACrI;IAAA,4DAAM;IAEZ;IAAA,4DAAM;;;IAON,yEAAwF;IAAA,yEAAc;IAAA,4DAAK;;;IAC3G,yEAAwD;IAAA,uDAA0B;IAAA,4DAAK;;;IAA/B,0DAA0B;IAA1B,qGAA0B;;;IAIlF,yEAAwF;IAAA,yEAAc;IAAA,4DAAK;;;IAC3G,yEAAwD;IAAA,uDAA0B;IAAA,4DAAK;;;IAA/B,0DAA0B;IAA1B,qGAA0B;;;IAGhF,yEAAwF;IAAA,kEAAO;IAAA,4DAAK;;;IACpG,yEAAwD;IAAA,uDAAoB;IAAA,4DAAK;;;IAAzB,0DAAoB;IAApB,+FAAoB;;;IAG5E,yEAAwF;IAAA,4EAAiB;IAAA,4DAAK;;;IAC9G,yEAAwD;IAAA,uDAA6B;IAAA,4DAAK;;;IAAlC,0DAA6B;IAA7B,wGAA6B;;;IAGrF,yEAAwF;IAAA,0EAAe;IAAA,4DAAK;;;IAC5G,yEAAwD;IAAA,uDAA2B;IAAA,4DAAK;;;IAAhC,0DAA2B;IAA3B,sGAA2B;;;IAGvF,yEAAyF;IAAA,oEAAS;IAAA,4DAAK;;;IACvG,yEAA0D;IAAA,uDAAyC;;IAAA,4DAAK;;;IAA9C,0DAAyC;IAAzC,+KAAyC;;;IAInG,yEAA0F;IAAA,oEAAS;IAAA,4DAAK;;;IACxG,yEAA0D;IAAA,uDAAyC;;IAAA,4DAAK;;;IAA9C,0DAAyC;IAAzC,+KAAyC;;;IAInG,yEAAuF;IAAA,gEAAK;IAAA,4DAAK;;;IACjG,yEAAwD;IAAA,uDAAkB;IAAA,4DAAK;;;IAAvB,0DAAkB;IAAlB,6FAAkB;;;IAG1E,yEAAyF;IAAA,iEAAM;IAAA,4DAAK;;;IACpG,yEAA0D;IAAA,uDAAmB;IAAA,4DAAK;;;IAAxB,0DAAmB;IAAnB,8FAAmB;;;IAG7E,yEAAwF;IAAA,qEAAU;IAAA,4DAAK;;;IACvG,yEAA0D;IAAA,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,kGAAuB;;;IAG/E,yEAAyF;IAAA,2EAAgB;IAAA,4DAAK;;;IAC9G,yEAA0D;IAAA,uDAA4B;IAAA,4DAAK;;;IAAjC,0DAA4B;IAA5B,uGAA4B;;;IAGtF,yEAAyF;IAAA,oEAAS;IAAA,4DAAK;;;IACvG,yEAA0D;IAAA,uDAAqB;IAAA,4DAAK;;;IAA1B,0DAAqB;IAArB,gGAAqB;;;IAG/E,yEAAyF;IAAA,qEAAU;IAAA,4DAAK;;;IACxG,yEAA0D;IAAA,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,iGAAsB;;;IAGhF,yEAAyF;IAAA,8EAAmB;IAAA,4DAAK;;;IACjH,yEAA0D;IAAA,uDAAiC;IAAA,4DAAK;;;IAAtC,0DAAiC;IAAjC,4GAAiC;;;IAG3F,yEAAyF;IAAA,qEAAU;IAAA,4DAAK;;;IACxG,yEAA0D;IAAA,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,oGAAyB;;;IAGjF,yEAAyF;IAAA,oFAAyB;IAAA,4DAAK;;;IACvH,yEAA0D;IAAA,uDAAsC;IAAA,4DAAK;;;IAA3C,0DAAsC;IAAtC,kHAAsC;;;IAGhG,yEAAyF;IAAA,yEAAc;IAAA,4DAAK;;;IAC5G,yEAA0D;IAAA,uDAA0B;IAAA,4DAAK;;;IAA/B,0DAA0B;IAA1B,sGAA0B;;;IAIpF,yEAAyF;IAAA,iFAAsB;IAAA,4DAAK;;;IACpH,yEAA0D;IAAA,uDAAgC;IAAA,4DAAK;;;IAArC,0DAAgC;IAAhC,4GAAgC;;;IAG1F,yEAAyF;IAAA,qFAA0B;IAAA,4DAAK;;;IACxH,yEAA0D;IAAA,uDAAmC;IAAA,4DAAK;;;IAAxC,0DAAmC;IAAnC,+GAAmC;;;IAG7F,yEAAyF;IAAA,+EAAoB;IAAA,4DAAK;;;IAClH,yEAA0D;IAAA,uDAA+B;IAAA,4DAAK;;;IAApC,0DAA+B;IAA/B,2GAA+B;;;IAIzF,yEAAyF;IAAA,uFAA4B;IAAA,4DAAK;;;IAC1H,yEAA0D;IAAA,uDAAqC;IAAA,4DAAK;;;IAA1C,0DAAqC;IAArC,iHAAqC;;;IAG/F,yEAAyF;IAAA,yEAAc;IAAA,4DAAK;;;IAC5G,yEAA0D;IAAA,uDAA0B;IAAA,4DAAK;;;IAA/B,0DAA0B;IAA1B,sGAA0B;;;IAGpF,yEAAyF;IAAA,kEAAO;IAAA,4DAAK;;;IACrG,yEAA0D;IAAA,uDAAoB;IAAA,4DAAK;;;IAAzB,0DAAoB;IAApB,gGAAoB;;;IAEpF,oEAA6D;;;IACzD,oEAAmE;;;IACnE,yEACI;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAChD;IAAA,4DAAK;;;ADtOvB,MAAM,mCAAmC;IAsD9C,YAAoB,0BAAsD,EACtD,mBAAwC,EACzC,UAAsB,EACrB,OAA0B,EAC1B,SAAsB,EACtB,EAAe;QALf,+BAA0B,GAA1B,0BAA0B,CAA4B;QACtD,wBAAmB,GAAnB,mBAAmB,CAAqB;QACzC,eAAU,GAAV,UAAU,CAAY;QACrB,YAAO,GAAP,OAAO,CAAmB;QAC1B,cAAS,GAAT,SAAS,CAAa;QACtB,OAAE,GAAF,EAAE,CAAa;QA1DnC,oBAAe,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QACnD,cAAS,GAAG,KAAK,CAAC,CAAC,sCAAsC;QACzD,yBAAoB,GAAgB,EAAE,CAAC,CAAC,yCAAyC;QACzE,6BAAwB,GAAgB,EAAE,CAAC,CAAC,8BAA8B;QAClF,kBAAa,GAAkC,EAAE,CAAC;QAC1C,iCAA4B,GAAa,EAAE,CAAC,CAAC,4BAA4B;QACzE,iCAA4B,GAAa,EAAE,CAAC,CAAC,6BAA6B;QAClF,eAAU,GAAY,EAAE,CAAC;QACzB,gBAAW,GAAY,EAAE,CAAC;QAE1B,iBAAY,GAAkC,EAAE,CAAC;QAIjD,wBAAmB,GAAY,KAAK,CAAC;QACrC,gBAAW,GAAU,EAAE,CAAC;QAGxB,iBAAY,GAAW,EAAE,CAAC;QAC1B,SAAI,GAAC,CAAC,CAAC;QAEA,iBAAY,GAAY,KAAK,CAAC;QACrC,cAAS,GAAY,KAAK,CAAC;QAG3B,mBAAc,GAAG,EAAE,CAAC;QAEpB,eAAU,GAAG,+DAAa,CAAC;QAE3B,iBAAY,GAAa,EAAE,CAAC;QAC5B,uBAAkB,GAAG,KAAK,CAAC;QACnB,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QAKtD,qBAAgB,GAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAChD,sBAAiB,GAAa,CAAC,eAAe,EAAC,eAAe,EAAC,OAAO,EAAC,QAAQ,EAAC,YAAY,EAAC,iBAAiB,EAAE,UAAU,EAAC,UAAU,EAAE,SAAS,EAAE,gBAAgB,EAAC,kBAAkB,EAAE,UAAU,EAAE,WAAW,EAAE,mBAAmB,EAAE,WAAW,EAAC,wBAAwB,EAAC,eAAe,EAAC,qBAAqB,EAAC,wBAAwB,EAAC,oBAAoB,EAAC,0BAA0B,EAAC,eAAe,EAAC,SAAS,CAAC,CAAC;QAkUnZ,WAAM,GAAG;YACR,EAAE,EAAE,YAAY;YAChB,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO;gBAC1B,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC;gBAChC,IAAI,OAAO,GAAG,KAAK,CAAC;gBAEpB,KAAK,IAAI,OAAO,IAAI,QAAQ,EAAE;oBAC1B,4CAA4C;oBAC5C,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE;wBAClE,OAAO,GAAG,IAAI,CAAC;wBACf,MAAM;qBACT;iBACJ;gBAED,IAAI,CAAC,OAAO,EAAE;oBAEV,MAAM,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;oBAC/D,MAAM,OAAO,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;oBACnC,MAAM,OAAO,GAAG,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;oBAEnC,KAAK,CAAC,KAAK,EAAE,CAAC;oBACd,GAAG,CAAC,IAAI,EAAE,CAAC;oBACX,GAAG,CAAC,SAAS,GAAG,QAAQ,CAAC;oBACzB,GAAG,CAAC,YAAY,GAAG,QAAQ,CAAC;oBAC5B,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;oBAC1C,GAAG,CAAC,OAAO,EAAE,CAAC;iBACjB;YACL,CAAC;SACJ,CAAC;QAEC,YAAO,GAAS,IAAI,CAAC;QA4CxB,eAAU,GAAS,IAAI,CAAC;QArXpB,IAAI,CAAC,UAAU,GAAG,IAAI,6FAAyB,EAAE,CAAC;QAClD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;QAChD,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE;YAC5D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IAjBD,GAAG,CAAC,IAAS;QACX,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAiBD,QAAQ;QAEN,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YAC1B,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACrC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACnC,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;SACxC,CAAC,CAAC;QAEH,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,eAAe;QACb,IAAI,CAAC,0BAA0B,CAAC,2BAA2B,EAAE,CAAC,SAAS,CAAC,CAAC,GAAkB,EAAE,EAAE;YAC7F,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YAC3B,wDAAwD;YACnD,GAAG,CAAC,OAAO,CAAC,CAAC,OAAoB,EAAE,EAAE;gBACnC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;YACpE,CAAC,CAAC,CAAC;QACL,CAAC,EACC,CAAC,KAAU,EAAE,EAAE;YACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kCAAkC,EAAE,GAAG,EAAE;gBAC3D,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,CAAC,aAAa,CAAC;gBAC3B,kBAAkB,EAAE,OAAO;gBACzB,gBAAgB,EAAE,KAAK;aAC1B,CAAC,CAAC;QACL,CAAC,CACF,CAAC;IACJ,CAAC;IAED,eAAe;QAEb,IAAI,CAAC,kBAAkB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACrE,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACnD,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;IAC5C,CAAC;IAED,wBAAwB;QAEtB,IAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAC;YACnB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;SACf;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,KAAK,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,KAAK,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE;YACvS,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,OAAO;SACR;QAED,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;QACnB,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,IAAI,EAAE;YACtE,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE;gBACxD,IAAI,CAAC,YAAY,GAAG,qCAAqC,CAAC;gBAC1D,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;gBACnB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,qCAAqC,EAAE,GAAG,EAAE;oBAC9D,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBAEH,OAAO,KAAK,CAAC;aACd;YACD,IAAI,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE;gBACtD,IAAI,CAAC,YAAY,GAAG,mCAAmC,CAAC;gBACxD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;gBACnB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE;oBAC5D,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,OAAO,KAAK,CAAC;aACd;YACD,IAAI,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;gBACpE,IAAI,CAAC,YAAY,GAAG,uCAAuC,CAAC;gBAC5D,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;gBACnB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;oBAChE,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,OAAO,KAAK,CAAC;aACd;YACD,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACjF,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAC7E,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACnC,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACpD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;SACpD;IACH,CAAC;IAED,6BAA6B,CAAC,MAAiC;QAC7D,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,0BAA0B,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC,SAAS,CAC1E,CAAC,GAAkC,EAAE,EAAE;YACrC,IAAG,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAC5B;gBACF,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;gBACzB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,MAAmC,EAAE,EAAE;oBACjE,MAAM,CAAC,yBAAyB,GAAG,CAAC,MAAM,CAAC,sBAAsB,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;oBAC1F,MAAM,CAAC,oBAAoB,GAAG,CAAC,MAAM,CAAC,iBAAiB,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;oBAChF,MAAM,CAAC,YAAY,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;gBAClE,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,kBAAkB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBACrE,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBACnD,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;gBAE1C,QAAO,MAAM,CAAC,UAAU,EACxB;oBACE,KAAK,CAAC;wBACJ,IAAI,CAAC,kBAAkB,CAAC,eAAe;4BAC/C,CAAC,IAAiC,EAAE,MAAc,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC;wBACxE,MAAM;oBACN,KAAK,CAAC;wBACN,IAAI,CAAC,kBAAkB,CAAC,eAAe;4BAC/C,CAAC,IAAiC,EAAE,MAAc,EAAE,EAAE,CAAC,IAAI,CAAC,oBAAoB,IAAI,MAAM,CAAC;wBACnF,MAAM;oBACN,KAAK,CAAC;wBACN,IAAI,CAAC,kBAAkB,CAAC,eAAe;4BAC/C,CAAC,IAAiC,EAAE,MAAc,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;wBAC9E,MAAM;oBACN,KAAK,CAAC;wBACJ,IAAI,CAAC,kBAAkB,CAAC,eAAe;4BAC/C,CAAC,IAAiC,EAAE,MAAc,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC;wBACpE,MAAM;oBACN,KAAK,CAAC;wBACJ,IAAI,CAAC,kBAAkB,CAAC,eAAe;4BAC/C,CAAC,IAAiC,EAAE,MAAc,EAAE,EAAE,CAAC,IAAI,CAAC,yBAAyB,IAAI,MAAM,CAAC;wBACxF,MAAM;oBACN,KAAK,CAAC;wBACJ,IAAI,CAAC,kBAAkB,CAAC,eAAe;4BAC/C,CAAC,IAAiC,EAAE,MAAc,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,IAAI,MAAM,CAAC;wBAC3E,MAAM;oBACN,KAAK,CAAC;wBACJ,IAAI,CAAC,kBAAkB,CAAC,eAAe;4BAC/C,CAAC,IAAiC,EAAE,MAAc,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,IAAI,MAAM,CAAC;wBAC7E,MAAM;oBACN,KAAK,CAAC;wBACJ,IAAI,CAAC,kBAAkB,CAAC,eAAe;4BAC/C,CAAC,IAAiC,EAAE,MAAc,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,IAAI,MAAM,CAAC;wBAC9E,MAAM;oBACN,KAAK,CAAC;wBACJ,IAAI,CAAC,kBAAkB,CAAC,eAAe;4BAC/C,CAAC,IAAiC,EAAE,MAAc,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,IAAI,MAAM,CAAC;wBACjF,MAAM;oBACN,KAAK,EAAE;wBACL,IAAI,CAAC,kBAAkB,CAAC,eAAe;4BAC/C,CAAC,IAAiC,EAAE,MAAc,EAAE,EAAE,CAAC,IAAI,CAAC,wBAAwB,IAAI,MAAM,CAAC;wBACvF,MAAM;oBACN,KAAK,EAAE;wBACL,IAAI,CAAC,kBAAkB,CAAC,eAAe;4BAC/C,CAAC,IAAiC,EAAE,MAAc,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC;wBACvE,MAAM;iBACzB;gBAED,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;aACrB;iBACI;gBACH,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACpB,IAAI,CAAC,kBAAkB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBACrE,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBACnD,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;gBAC1C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE;oBAC3C,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAC,CAAC,eAAe,CAAC;oBAC5B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;QACH,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;YACb,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,sCAAsC,EAAE,GAAG,EAAE;gBAC/D,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAC,CAAC,aAAa,CAAC;gBAC1B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CACF,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE;YAC5D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY,CAAC,MAAiC;QAC5C,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,4BAA4B,GAAG,EAAE,CAAC;QACvC,IAAI,CAAC,4BAA4B,GAAG,EAAE,CAAC;QACvC,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;QAC/B,IAAI,CAAC,0BAA0B,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC,SAAS,CAC3E,CAAC,QAAqB,EAAE,EAAE;YACxB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,oBAAoB,GAAG,QAAQ,CAAC;YAGrC,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACvB,IAAG,GAAG,CAAC,KAAK,IAAI,MAAM;oBACtB,GAAG,CAAC,KAAK,GAAI,KAAK,CAAC;qBACb,IAAG,GAAG,CAAC,KAAK,IAAI,OAAO;oBAC7B,GAAG,CAAC,KAAK,GAAI,IAAI,CAAC;gBAClB,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAClD,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACpD,CAAC,CAAC,CAAC;YAEH,eAAe;YACf,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACjC,IAAI,CAAC,0BAA0B,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACpF,IAAI,CAAC,0BAA0B,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK;QACnD,CAAC,EACD,CAAC,KAAU,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CACzC,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,WAAW,EAAE;gBACf,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;aACnE;iBAAM;gBACL,IAAI,CAAC,kBAAkB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBACrE,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBACnD,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;aAC3C;SACF;aAAM;YACL,IAAI,CAAC,kBAAkB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACrE,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACnD,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;SAC3C;IACH,CAAC;IACD,WAAW,CAAC,WAAmB;QAC7B,2BAA2B;QAC3B,IAAI,WAAW,KAAK,KAAK,EAAE;YACzB,IAAI,CAAC,yBAAyB,EAAE,CAAC;SAClC;aACI;YACH,IAAI,CAAC,yBAAyB,EAAE,CAAC;SAClC;IACH,CAAC;IAED,UAAU,CAAC,GAAQ,EAAE,SAAS;QAC5B,IAAG,SAAS,IAAE,QAAQ,EAAC;YACrB,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;SACnC;QACD,IAAG,SAAS,IAAE,UAAU,EAAC;YACvB,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC;SACrC;IACH,CAAC;IAED,eAAe,CAAC,KAAU;QACxB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAClD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,IAAI,WAAW,GAAK,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAgB,CAAC;YACpD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;YAC/B,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,WAAW,CAAC;SAC9C;QACD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,eAAe,CAAC,KAAU;QACxB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACvD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACnB,IAAI,WAAW,GAAK,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAgB,CAAC;YACpD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;YAC/B,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,WAAW,CAAC;SAC9C;QACD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,eAAe;QACb,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;IACD,eAAe;QACb,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;IAiCD,yBAAyB;;QAEvB,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,8BAA8B,CAAC,CAAC;QACvE,IAAI,IAAI,CAAC,OAAO,EAChB;YACE,UAAI,CAAC,OAAO,0CAAE,OAAO,GAAG;SACzB;QAED,MAAM,GAAG,GAAG,MAAM,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,IAAI,8CAAK,CAAC,GAAG,EAAI;YAChC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,KAAK;YACX,IAAI,EAAE;gBACJ,MAAM,EAAE,IAAI,CAAC,4BAA4B;gBACzC,QAAQ,EAAE;oBACR;wBACE,KAAK,EAAE,IAAI,CAAC,UAAU;wBACtB,eAAe,EAAE,IAAI,CAAC,UAAU;wBAChC,IAAI,EAAE,IAAI,CAAC,4BAA4B;qBACxC;iBACF;aACF;YACD,OAAO,EAAE;gBACP,UAAU,EAAE,IAAI;gBAChB,mBAAmB,EAAE,KAAK;gBAC1B,QAAQ,EAAE,CAAC;gBACX,MAAM,EAAE;oBACN,KAAK,EAAE;wBACL;4BACE,KAAK,EAAE;gCACL,QAAQ,EAAE,CAAC;gCACX,WAAW,EAAE,IAAI;6BAClB;yBACF;qBACF;iBACF;gBACD,MAAM,EAAE;oBACN,QAAQ,EAAE,QAAQ;iBACnB;aACF;SACF,CAAC,CAAC;IAEL,CAAC;IAED,yBAAyB;;QACvB,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC;QAC1E,MAAM,GAAG,GAAG,MAAM,CAAC;QACnB,IAAI,IAAI,CAAC,UAAU,EACnB;YACE,UAAI,CAAC,UAAU,0CAAE,OAAO,GAAG;SAC5B;QACD,IAAI,CAAC,UAAU,GAAG,IAAI,8CAAK,CAAC,GAAG,EAAE;YAC/B,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;YACtB,IAAI,EAAE,KAAK;YACX,IAAI,EAAE;gBACJ,MAAM,EAAE,IAAI,CAAC,4BAA4B;gBACzC,QAAQ,EAAE;oBACR;wBACE,eAAe,EAAE,IAAI,CAAC,UAAU;wBAChC,IAAI,EAAE,IAAI,CAAC,4BAA4B;qBACxC;iBACF;aACF;YACD,OAAO,EAAE;gBACP,MAAM,EAAE;oBACN,QAAQ,EAAE,QAAQ;iBACnB;gBACD,UAAU,EAAE,IAAI;gBAChB,mBAAmB,EAAE,KAAK;aAC3B;SACF,CAAC,CAAC;IACL,CAAC;IAED,WAAW,CAAC,CAAC;QACX,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,EAAE;YACjB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,yBAAyB,EAAE,CAAC;SAClC;aACI,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,EAAE;YACtB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,yBAAyB,EAAE,CAAC;SAClC;IAEH,CAAC;IAID,WAAW;QACV,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;QAC7B,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,IAAI,6FAAyB,EAAE,CAAC;QAClD,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,4BAA4B,GAAG,EAAE,CAAC;QACvC,IAAI,CAAC,4BAA4B,GAAG,EAAE,CAAC;QACvC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACjC,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;QAC/B,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,0BAA0B,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACpF,IAAI,CAAC,0BAA0B,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;QAClD,IAAI,CAAC,kBAAkB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACrE,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACnD,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;QAC1C,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;IACnD,CAAC;IAEH,YAAY;QACV,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC7D,gBAAgB,EAAE,CAAC,CAAC,aAAa;YACjC,gBAAgB,EAAE,CAAC,CAAC,aAAa;YACjC,OAAO,EAAE,CAAC,CAAC,KAAK;YAChB,QAAQ,EAAE,CAAC,CAAC,MAAM;YAClB,YAAY,EAAE,CAAC,CAAC,UAAU;YAC1B,kBAAkB,EAAE,CAAC,CAAC,eAAe;YACrC,SAAS,EAAE,CAAC,CAAC,OAAO;YACpB,iBAAiB,EAAE,CAAC,CAAC,cAAc;YACnC,mBAAmB,EAAE,CAAC,CAAC,gBAAgB;YACvC,WAAW,EAAG,IAAI,IAAI,CAAC,mCAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAC/D,WAAW,EAAE,IAAI,IAAI,CAAC,mCAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAC9D,WAAW,EAAE,CAAC,CAAC,QAAQ;YACvB,YAAY,EAAE,CAAC,CAAC,SAAS;YACzB,qBAAqB,EAAE,CAAC,CAAC,oBAAoB;YAC7C,2BAA2B,EAAE,CAAC,CAAC,yBAAyB;YACxD,YAAY,EAAE,CAAC,CAAC,YAAY;YAC5B,gBAAgB,EAAC,CAAC,CAAC,aAAa;YAChC,wBAAwB,EAAC,CAAC,CAAC,mBAAmB;YAC9C,4BAA4B,EAAC,CAAC,CAAC,sBAAsB;YACrD,sBAAsB,EAAC,CAAC,CAAC,kBAAkB;YAC3C,8BAA8B,EAAC,CAAC,CAAC,wBAAwB;YACzD,gBAAgB,EAAE,CAAC,CAAC,aAAa;YACjC,SAAS,EAAE,CAAC,CAAC,OAAO;SACrB,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,eAAe,EAAE,uBAAuB,CAAC,CAAC;QACjF,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;;sHAhhBU,mCAAmC;mHAAnC,mCAAmC;;;;wEA+CnC,wEAAY;;;;;;;;;;;QCjFzB,gFACE;QAAA;QAAA,yFACE;QAD8C,qLAAe,CAAC,IAAC,6HAAgB,CAAC,IAAjB;QAC/D;QAAA,6FACE;QAAA;QAAA,kFACI;QAAA;QAAA,2EAAU;QAAA,sEAAW;QAAA,4DAAW;QAAC,kGACrC;QAAA,4DAAkB;QACnB;QAAA,4DAA6B;QAE7B;QAAA,2EACC;QAAA;QAAA,0EACI;QAAA;QAAA,0EACE;QAAA;QAAA,iEACE;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,qEAAS;QAAA,2EAA0B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QAElE;QAAA,4EAGA;QAHuC,0SAAS,UAAW,IAAC,sQAEjB,uBAAuB,IAFN;QAA5D,4DAGA;QAAA;QAAA,qKAEI;QAEJ;QAAA,uFAAsE;QACtE;QAAA,sFAAuC;QACvC;QAAA,8IAAiE;QAErE;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,iEACE;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,mEAAO;QAAA,2EAA0B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QAChE;QAAA,6EAGA;QAHqC,0SAAS,UAAS,IAAC,oQAEW,uBAAuB,IAFlC;QAAxD,4DAGA;QAAA;QAAA,qKAEI;QAEJ;QAAA,uFAAoE;QACpE;QAAA,uFAAqC;QACrC;QAAA,8IAA+D;QACnE;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,0EACG;QAAA;QAAA,iEACD;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAW;QAAA,2GACN;QAAA,4DAAY;QACZ;QAAA,kFAEC;QAF2D,iRAA+F;QAE1J;QAAA,gJACI;QACR;QAAA,4DAAa;QAEb;QAAA,8IAEI;QAKR;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACR;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,8EACI;QADqC,4JAAS,iBAAa,IAAC;QAC5D,iFAAK;QAAA,4DAAS;QAClB;QAAA,8EACI;QAD+D,4JAAS,8BAA0B,IAAC;QACnG,iFAAK;QAAA,4DAAS;QACtB;QAAA,4DAAM;QACV;QAAA,4DAAO;QACP;QAAA,4DAAsB;QACxB;QAAA,4DAAgB;QAEhB;QAAA,4EACI;QAAA;QAAA,oFACI;QAAA;QAAA,2EACI;QAAA;QAAA,4EAEI;QAAA;QAAA,sFACE;QADa,kMAAqB,uBAAmB,IAAC;QACtD;QAAA,4EACE;QAAA;QAAA,oJACI;QAGJ;QAAA,4EACI;QAAA;QAAA,mFAE0B;QADtB,mKAAS,2BAAuB,IAAC;QACpB,4DAAS;QAC9B;QAAA,4DAAM;QAEV;QAAA,4DAAU;QACN;QAAA,4EACI;QAAA;QAAA,oJACI;QAIJ;QAAA,4EACI;QAAA;QAAA,mFACwD;QADC,mKAAS,2BAAuB,IAAC;QAC3C,4DAAS;QAC5D;QAAA,4DAAM;QAEV;QAAA,4DAAU;QAEd;QAAA,4DAAgB;QAIpB;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,4EACI;QAAA;QAAA,kFACI;QAAA;QAAA,8EACI;QAAA;QAAA,kIAAgF;QAEhF;QAAA,kIAAuC;QAC3C;QAAA,qEAAe;QACf;QAAA,8EACI;QAAA;QAAA,kIAAgF;QAEhF;QAAA,kIAAuC;QAC3C;QAAA,qEAAe;QACf;QAAA,kIAAuD;QACvD;QAAA,kIAA6D;QAC7D;QAAA,kIACE;QAEN;QAAA,4DAAQ;QACZ;QAAA,4DAAM;QACV;QAAA,4DAAM;QACV;QAAA,4DAAM;QACV;QAAA,4DAAmB;QACvB;QAAA,4DAAW;QAEX;QAAA,6EACI;QAAA;QAAA,qFACI;QAAA;QAAA,2EACI;QAAA;QAAA,4EACI;QAAA;QAAA,2EACI;QAAA;QAAA,4EACI;QAAA;QAAA,4EACI;QAAA;QAAA,sIAAiC;QAErC;QAAA,4DAAM;QACV;QAAA,4DAAM;QACN;QAAA,4EAEI;QAAA;QAAA,qIACI;QAQR;QAAA,4DAAM;QACV;QAAA,4DAAM;QACN;QAAA,4EACI;QAAA;QAAA,kFAEE;QAAA;QAAA,8EACE;QAAA;QAAA,kIAAwF;QACxF;QAAA,kIAAwD;QAC1D;QAAA,qEAAe;QAEjB;QAAA,8EACI;QAAA;QAAA,kIAAwF;QACxF;QAAA,kIAAwD;QAC1D;QAAA,qEAAe;QACb;QAAA,8EACE;QAAA;QAAA,kIAAwF;QACxF;QAAA,kIAAwD;QAC1D;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,kIAAwF;QACxF;QAAA,kIAAwD;QAC1D;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,kIAAwF;QACxF;QAAA,kIAAwD;QAC1D;QAAA,qEAAe;QACnB;QAAA,8EACE;QAAA;QAAA,kIAAyF;QACzF;QAAA,kIAA0D;QAC5D;QAAA,qEAAe;QAEf;QAAA,8EACE;QAAA;QAAA,kIAA0F;QAC1F;QAAA,kIAA0D;QAC5D;QAAA,qEAAe;QAEf;QAAA,8EACE;QAAA;QAAA,kIAAuF;QACvF;QAAA,kIAAwD;QAC1D;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,kIAAyF;QACzF;QAAA,kIAA0D;QAC5D;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,kIAAwF;QACxF;QAAA,kIAA0D;QAC5D;QAAA,qEAAe;QACf;QAAA,8EACI;QAAA;QAAA,kIAAyF;QACzF;QAAA,kIAA0D;QAC5D;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,kIAAyF;QACzF;QAAA,kIAA0D;QAC5D;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,kIAAyF;QACzF;QAAA,kIAA0D;QAC5D;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,kIAAyF;QACzF;QAAA,kIAA0D;QAC5D;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,kIAAyF;QACzF;QAAA,kIAA0D;QAC5D;QAAA,qEAAe;QACf;QAAA,8EACI;QAAA;QAAA,kIAAyF;QACzF;QAAA,kIAA0D;QAC5D;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,kIAAyF;QACzF;QAAA,kIAA0D;QAC5D;QAAA,qEAAe;QAEf;QAAA,8EACE;QAAA;QAAA,kIAAyF;QACzF;QAAA,kIAA0D;QAC5D;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,kIAAyF;QACzF;QAAA,kIAA0D;QAC5D;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,kIAAyF;QACzF;QAAA,kIAA0D;QAC5D;QAAA,qEAAe;QAEf;QAAA,8EACE;QAAA;QAAA,kIAAyF;QACzF;QAAA,kIAA0D;QAC5D;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,kIAAyF;QACzF;QAAA,kIAA0D;QAC5D;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,kIAAyF;QACzF;QAAA,kIAA0D;QAC5D;QAAA,qEAAe;QACnB;QAAA,kIAAwD;QACpD;QAAA,kIAA8D;QAC9D;QAAA,kIACI;QAER;QAAA,4DAAQ;QACV;QAAA,4DAAM;QACR;QAAA,4EACI;QAAA;QAAA,iFAAgE;QACpE;QAAA,4DAAM;QACV;QAAA,4DAAM;QACV;QAAA,4DAAM;QAEV;QAAA,4DAAmB;QACvB;QAAA,4DAAW;QACX;QAAA,oFAEI;QAAA;QAAA,0EAAmB;QAAA,wEAAW;QAAA,4DAAI;QACtC;QAAA,4DAAc;;;;QArRY,0DAAuB;QAAvB,oFAAuB;QAOtC,2DAAoB;QAApB,iFAAoB;QAID,0DAA8B;QAA9B,sGAA8B;QAG1B,0DAAsB;QAAtB,8EAAsB;QAGL,0DAA6B;QAA7B,2FAA6B;QAI7B,0DAAY;QAAZ,oEAAY;QAElC,0DAAqD;QAArD,mHAAqD;QAMpD,0DAA8B;QAA9B,sGAA8B;QAE1B,0DAAoB;QAApB,8EAAoB;QAGH,0DAA2B;QAA3B,yFAA2B;QAI3B,0DAAU;QAAV,oEAAU;QAEhC,0DAAmD;QAAnD,iHAAmD;QAKnD,0DAA8B;QAA9B,sGAA8B;QAK3B,0DAAkC;QAAlC,oFAAkC;QAK9C,0DAAqD;QAArD,mHAAqD;QAyDpC,2DAAyC;QAAzC,sGAAyC;QAWnC,2DAAmC;QAAnC,iGAAmC;QAC1C,0DAAgD;QAAhD,kGAAgD;QAkBlD,2DAAyB;QAAzB,uFAAyB;QAM9B,0DAAgC;QAAhC,8FAAgC;QAYA,0DAAiC;QAAjC,8FAAiC;QAmGvD,4DAAoC;QAApC,kGAAoC;QACvC,0DAAiD;QAAjD,mGAAiD;QAOlD,0DAAgC;QAAhC,mJAAgC;QAOT,0DAAoB;QAApB,6EAAoB;;6FDjPjE,mCAAmC;cAL/C,uDAAS;eAAC;gBACT,QAAQ,EAAE,mCAAmC;gBAC7C,WAAW,EAAE,gDAAgD;gBAC7D,SAAS,EAAE,CAAC,gDAAgD,CAAC;aAC9D;8jBA4C4C,4BAA4B;kBAAtE,uDAAS;mBAAC,8BAA8B;YACK,+BAA+B;kBAA5E,uDAAS;mBAAC,iCAAiC;YAExB,KAAK;kBAAxB,uDAAS;mBAAC,OAAO;YACyB,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACrB,KAAK;kBAAxB,uDAAS;mBAAC,OAAO;;;;;;;;;;;;;;AElFpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwF;AACf;AAGtB;;;;;;;;AAkB5C,MAAM,+BAA+B;IAc5C,YACU,SAAwD,EAC9B,IAAgC;QAD1D,cAAS,GAAT,SAAS,CAA+C;QAC9B,SAAI,GAAJ,IAAI,CAA4B;QAbpE,oBAAe,GAAoB;YACjC,WAAW,EAAE,cAAc;YAC3B,MAAM,EAAE,EACH;SACN,CAAC;QAKK,cAAS,GAAG,IAAI,oDAAe,CAAC,EAAE,CAAC,CAAC;QAMvC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YAAG,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;gBACxE,sBAAsB;gBACtB,IAAG,KAAK,CAAC,KAAK,KAAK,SAAS,EAAC;oBAC3B,KAAK,CAAC,iBAAiB,CAAC,GAAG,QAAQ;iBACpC;qBACI,IAAG,KAAK,CAAC,KAAK,KAAK,SAAS,EAAC;oBAChC,KAAK,CAAC,iBAAiB,CAAC,GAAG,MAAM;iBAClC;qBACI,IAAG,KAAK,CAAC,KAAK,KAAI,SAAS,EAAC;oBAC/B,KAAK,CAAC,iBAAiB,CAAC,GAAG,OAAO;iBACnC;qBACI;oBACH,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;oBACnC,yKAAyK;oBACzK,sCAAsC;oBACtC,kCAAkC;oBAClC,yDAAyD;oBACzD,IAAI;oBACJ,IAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC,CAAC,EAAC;wBACpG,KAAK,CAAC,iBAAiB,CAAC,GAAG,KAAK,CAAC;qBAClC;iBACF;gBACD,OAAO,KAAK,CAAC;YACf,CAAC,CAAC;QAAA,CAAC,CAAC,CAAC;QACL,IAAI,CAAC,YAAY,GAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;QAC9C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAElC,IAAI,CAAC,eAAe,GAAG;YACrB,WAAW,EAAE,cAAc;YAC3B,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;YACjC,eAAe;YACf,MAAM,EAAG,IAAI,CAAC,SAAS;YACvB,gBAAgB,EAAE,OAAO;YACzB,+CAA+C;SAC/C,CAAC;IACL,CAAC;IAED,QAAQ;IAER,CAAC;IAED,OAAO;QACJ,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;IACtC,CAAC;;8GAlEO,+BAA+B,0MAgBhC,wEAAe;+GAhBd,+BAA+B;;;;;;QCrB5C;QAAA,yEACI;QAAA;QAAA,yEACG;QAAA;QAAA,oEAAI;QAAA,uDAAiB;QAAA,4DAAI;QAAC,uDAC7B;QAAA,4DAAM;QACN;QAAA,yEACE;QAAA;QAAA,6EACE;QADyB,wJAAS,aAAS,IAAC;QAC5C;QAAA,4EAAU;QAAA,iEAAK;QAAA,4DAAW;QAAA,4DAAS;QACvC;QAAA,4DAAM;QACR;QAAA,4DAAM;QAEJ;QAAA,sFACI;QAAA;QAAA,0EACI;QAAA;QAAA,0EACI;QAAA;QAAA,+EAAwF;QAC5F;QAAA,4DAAM;QACV;QAAA,4DAAM;QACV;QAAA,4DAAqB;QACzB;;QAfW,0DAAiB;QAAjB,4FAAiB;QAAK,0DAC7B;QAD6B,iIAC7B;QAUwD,2DAA2B;QAA3B,wFAA2B;;6FDQ1E,+BAA+B;cAN3C,uDAAS;eAAC;gBACT,QAAQ,EAAE,8BAA8B;gBACxC,WAAW,EAAE,2CAA2C;gBACxD,SAAS,EAAE,CAAC,2CAA2C,CAAC;gBACxD,aAAa,EAAE,+DAAiB,CAAC,IAAI;aACtC;;sBAiBI,oDAAM;uBAAC,wEAAe;wBANJ,iBAAiB;kBAAvC,uDAAS;mBAAC,UAAU;;;;;;;;;;;;;;AEhCrB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AAMA;AACZ;AAEU;AAG3D,qDAAqD;AACpB;AAC4B;;;;;;;;;;;;;;;ICPrC;IAAA,+EAAmC;IAAA,oEAAS;IAAA,4DAAW;IACvD,+GACH;;;IAUG;IAAA,+EAAmC;IAAA,oEAAS;IAAA,4DAAW;IACvD,+GACH;;;IAYA,yEACG;IAAA,uHACH;IAAA,4DAAK;;;IACL,yEACG;IAAA,uDACH;IAAA,4DAAK;;;IADF,0DACH;IADG,iJACH;;;IAGA,yEACG;IAAA,0HACH;IAAA,4DAAK;;;IACL,yEACG;IAAA,uDACH;IAAA,4DAAK;;;IADF,0DACH;IADG,oJACH;;;IAEH,oEAAkE;;;IAClE,oEAAuE;;;IACvE,yEACG;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAChD;IAAA,4DAAK;;;IAkBC,yEAEG;IAAA,+HACH;IAAA,4DAAK;;;IACL,yEACG;IAAA,uDACH;IAAA,4DAAK;;;IADF,0DACH;IADG,yJACH;;;IAGA,yEAEG;IAAA,+HACH;IAAA,4DAAK;;;IACL,yEACG;IAAA,uDACH;IAAA,4DAAK;;;IADF,0DACH;IADG,yJACH;;;IAGA,yEAEG;IAAA,6HACH;IAAA,4DAAK;;;IACL,yEACG;IAAA,uDACH;IAAA,4DAAK;;;IADF,0DACH;IADG,wJACH;;;IAGA,yEAEG;IAAA,uHACH;IAAA,4DAAK;;;IACL,yEACG;IAAA,uDACH;IAAA,4DAAK;;;IADF,0DACH;IADG,kJACH;;;IAEH,oEAAoE;;;IACpE,oEAAyE;;;IACzE,yEACG;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAChD;IAAA,4DAAK;;;ADvFnB,MAAM,qBAAqB;IAgChC,YACU,KAAiB,EACjB,6BAAkD,EACnD,UAAsB,EACrB,OAA0B;QAH1B,UAAK,GAAL,KAAK,CAAY;QACjB,kCAA6B,GAA7B,6BAA6B,CAAqB;QACnD,eAAU,GAAV,UAAU,CAAY;QACrB,YAAO,GAAP,OAAO,CAAmB;QA9BpC,cAAS,GAAW,KAAK,CAAC,CAAC,sCAAsC;QACjE,kBAAa,GAAsB,EAAE,CAAC;QAC9B,0BAAqB,GAAa,EAAE,CAAC;QACrC,0BAAqB,GAAa,EAAE,CAAC;QAG7C,eAAU,GAAG,+DAAa,CAAC;QAC3B,iBAAY,GAAyB,EAAE,CAAC,CAAC,oDAAoD;QAC7F,kCAAkC;QAClC,eAAU,GAAW,EAAE,CAAC;QACxB,6BAAwB,GAAa;YACnC,cAAc;YACd,cAAc;YACd,aAAa;YACb,OAAO;SACR,CAAC;QACF,2BAAsB,GAAa,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;QAgBjE,IAAI,CAAC,kBAAkB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACpE,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACnD,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAEzC,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,EAAE;YAC9D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IA5CD,GAAG,CAAC,IAAS;QACX,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IA2CD,QAAQ;QACN,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAED,qBAAqB;QACnB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;QACnB,IAAI,CAAC,6BAA6B;aAC/B,kBAAkB,EAAE;aACpB,SAAS,CAAC,CAAC,mBAAsC,EAAE,EAAE;YACpD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YACnB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,GAAG,mBAAmB,CAAC;YACzC,mBAAmB,CAAC,OAAO,CAAC,CAAC,GAAQ,EAAE,EAAE;gBACvC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;gBACnD,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAClD,CAAC,CAAC,CAAC;YACH,IACE,IAAI,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC;gBACrC,CAAC,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAEvC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAErC,IACE,IAAI,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC;gBACrC,IAAI,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC;gBAErC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,CAAC,gBAAgB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACnE,IAAI,CAAC,gBAAgB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACjD,IAAI,CAAC,gBAAgB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACzC,CAAC,CAAC,CAAC;QAEL,IAAI,CAAC,qBAAqB,CAAC;IAC7B,CAAC;IAED,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,WAAW,EAAE;gBACf,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;aACnE;iBAAM;gBACL,IAAI,CAAC,kBAAkB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACpE,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBACnD,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;aAC1C;SACF;aAAM;YACL,IAAI,CAAC,kBAAkB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACpE,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACnD,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SAC1C;IACH,CAAC;IAED,WAAW,CAAC,WAAmB;QAC7B,IAAI,WAAW,IAAI,KAAK;YAAE,IAAI,CAAC,WAAW,EAAE,CAAC;;YACxC,IAAI,CAAC,WAAW,EAAE,CAAC;IAC1B,CAAC;IACD,eAAe,CAAC,KAAU;QACxB,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACtD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAEvC,IAAI,UAAU,GAAoB,IAAI,CAAC,aAAa,CAAC,IAAI,CACvD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CACzE,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;QACnB,IAAI,CAAC,6BAA6B;aAC/B,sBAAsB,CAAC,UAAU,CAAC,QAAQ,CAAC;aAC3C,SAAS,CAAC,CAAC,QAA8B,EAAE,EAAE;YAC5C,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YACnB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;gBAAE,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;YACtD,IAAI,CAAC,kBAAkB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACpE,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACnD,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAC3C,CAAC,CAAC,CAAC;IACP,CAAC;IAID,eAAe,CAAC,KAAU;QACxB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;QACnB,IAAI,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACzD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAEvC,IAAI,UAAU,GAAoB,IAAI,CAAC,aAAa,CAAC,IAAI,CACvD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CACzE,CAAC;QAEF,IAAI,CAAC,6BAA6B;aAC/B,sBAAsB,CAAC,UAAU,CAAC,QAAQ,CAAC;aAC3C,SAAS,CAAC,CAAC,QAA8B,EAAE,EAAE;YAC5C,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YACnB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;gBAAE,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;YACtD,IAAI,CAAC,kBAAkB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACpE,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACnD,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAC3C,CAAC,CAAC,CAAC;IACP,CAAC;IAED,WAAW,CAAC,CAAC;QACX,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE;YAChB,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;aACI,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE;YACrB,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;IAEH,CAAC;IAED,WAAW;QACT,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QACtD,MAAM,GAAG,GAAG,MAAM,CAAC;QACnB,IAAI,CAAC,WAAW,GAAG,IAAI,8CAAK,CAAC,GAAG,EAAE;YAChC,IAAI,EAAE,KAAK;YACX,IAAI,EAAE;gBACJ,MAAM,EAAE,IAAI,CAAC,qBAAqB;gBAClC,QAAQ,EAAE;oBACR;wBACE,KAAK,EAAE,QAAQ;wBACf,eAAe,EAAE,IAAI,CAAC,UAAU;wBAChC,IAAI,EAAE,IAAI,CAAC,qBAAqB;qBACjC;iBACF;aACF;YACD,OAAO,EAAE;gBACP,MAAM,EAAE;oBACN,QAAQ,EAAE,QAAQ;iBACnB;gBACD,UAAU,EAAE,IAAI;gBAChB,mBAAmB,EAAE,KAAK;gBACzB,QAAQ,EAAE,CAAC;gBACZ,MAAM,EAAE;oBACN,KAAK,EAAE;wBACL;4BACE,KAAK,EAAE;gCACL,QAAQ,EAAE,EAAE;gCACZ,WAAW,EAAE,IAAI;6BAClB;yBACF;qBACF;iBACF;gBACD,MAAM,EAAE,CAAC,OAAO,CAAC;gBACjB,QAAQ,EAAE;oBACR,IAAI,EAAE,SAAS;iBAChB;aACF;SACF,CAAC,CAAC;IACL,CAAC;IAED,WAAW;QAEV,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;QACxD,MAAM,GAAG,GAAG,MAAM,CAAC;QACnB,IAAI,CAAC,cAAc,GAAG,IAAI,8CAAK,CAAC,GAAG,EAAE;YACnC,IAAI,EAAE,KAAK;YACX,IAAI,EAAE;gBACJ,MAAM,EAAE,IAAI,CAAC,qBAAqB;gBAClC,QAAQ,EAAE;oBACR;wBACE,eAAe,EAAE,IAAI,CAAC,UAAU;wBAChC,IAAI,EAAE,IAAI,CAAC,qBAAqB;qBACjC;iBACF;aACF;YACD,OAAO,EAAE;gBACP,MAAM,EAAE;oBACN,QAAQ,EAAE,QAAQ;iBACnB;gBACD,UAAU,EAAE,KAAK;aAClB;SACF,CAAC,CAAC;IACL,CAAC;;0FAzNU,qBAAqB;qGAArB,qBAAqB;wEA0BrB,wEAAY;wEACZ,8DAAO;;;;;;;;;;QCjDpB,2EACM;QAAA;QAAA,mFACG;QAAA;QAAA,yEACG;QAAA;QAAA,yEACG;QAAA;QAAA,mFACG;QADY,kLAAqB,uBAAmB,IAAC;QACrD;QAAA,2EACG;QAAA;QAAA,mIACG;QAIH;QAAA,0EACG;QAAA;QAAA,gFACwD;QAAxD,oJAAS,2BAAuB,IAAC;QAAc,4DAAS;QAC3D;QAAA,4DAAM;QAET;QAAA,4DAAU;QACV;QAAA,2EACG;QAAA;QAAA,mIACG;QAGH;QAAA,0EACG;QAAA;QAAA,gFACyD;QAAzD,oJAAS,2BAAuB,IAAC;QAAe,4DAAS;QAC5D;QAAA,4DAAM;QAET;QAAA,4DAAU;QACb;QAAA,4DAAgB;QACnB;QAAA,4DAAM;QACN;QAAA,0EACG;QAAA;QAAA,6EACG;QAAA;QAAA,6EACG;QAAA;QAAA,kHACG;QAEH;QAAA,kHACG;QAEN;QAAA,qEAAe;QACf;QAAA,6EACG;QAAA;QAAA,kHACG;QAEH;QAAA,kHACG;QAEN;QAAA,qEAAe;QACf;QAAA,kHAA6D;QAC7D;QAAA,kHAAkE;QAClE;QAAA,kHACG;QAEN;QAAA,4DAAQ;QACX;QAAA,4DAAM;QACN;QAEH;QAAA,4DAAM;QACT;QAAA,4DAAmB;QACtB;QAAA,4DAAW;QACX;QAAA,4EACG;QAAA;QAAA,oFACG;QAAA;QAAA,0EACG;QAAA;QAAA,2EACG;QAAA;QAAA,4EAAuC;QAAA,0FACvC;QAAA,0EAAS;QAAA,wDAAoB;QAAA,4DAAS;QACtC;QAAA,4DAAO;QACP;QAAA,2EACG;QAAA;QAAA,6EACG;QAAA;QAAA,6EACG;QAAA;QAAA,kHAEG;QAEH;QAAA,kHACG;QAEN;QAAA,qEAAe;QACf;QAAA,6EACG;QAAA;QAAA,kHAEG;QAEH;QAAA,kHACG;QAEN;QAAA,qEAAe;QACf;QAAA,6EACG;QAAA;QAAA,kHAEG;QAEH;QAAA,oHACG;QAEN;QAAA,qEAAe;QACf;QAAA,8EACG;QAAA;QAAA,oHAEG;QAEH;QAAA,oHACG;QAEN;QAAA,qEAAe;QACf;QAAA,oHAA+D;QAC/D;QAAA,oHAAoE;QACpE;QAAA,oHACG;QAEN;QAAA,4DAAQ;QACX;QAAA,4DAAM;QACT;QAAA,4DAAM;QACT;QAAA,4DAAM;QACN;QAAA,4EACG;QAAA;QAAA,iFAAgE;QACnE;QAAA,4DAAM;QACT;QAAA,4DAAmB;QACtB;QAAA,4DAAW;QACX;QAAA,oFAEG;QAAA;QAAA,0EAAmB;QAAA,wEAAW;QAAA,4DAAI;QACrC;QAAA,4DAAc;;QA3F8B,2DAA+B;QAA/B,4FAA+B;QAiBzC,2DAAyC;QAAzC,uGAAyC;QAChD,0DAAqD;QAArD,wGAAqD;QAgB3D,2DAAoB;QAApB,0FAAoB;QAGT,0DAAiC;QAAjC,8FAAiC;QAqC5B,2DAA2C;QAA3C,yGAA2C;QAClD,0DAAuD;QAAvD,0GAAuD;QAS7D,2DAAgC;QAAhC,kJAAgC;QAIE,0DAAoB;QAApB,6EAAoB;;6FDjGpE,qBAAqB;cALjC,uDAAS;eAAC;gBACT,QAAQ,EAAE,mBAAmB;gBAC7B,WAAW,EAAE,gCAAgC;gBAC7C,SAAS,EAAE,CAAC,gCAAgC,CAAC;aAC9C;iXA2B4C,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACH,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACV,WAAW;kBAApC,uDAAS;mBAAC,aAAa;YACK,cAAc;kBAA1C,uDAAS;mBAAC,gBAAgB;;;;;;;;;;;;;;AEnD7B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsF;AAET;AACU;AAElB;AACM;AAEa;AAC1B;AAC7B;AACqC;AACb;AACR;AACU;AACY;AACF;AAOhC;AACN;AACkB;AAGD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICV5B,4FAEI;IADA,yWAA4B,UAAU,KAAE;IACxC;IAAA,+EAAkC;IAAA,gEAAK;IAAA,4DAAW;IACtD;IAAA,4DAAwB;;;IAGxB,4EAAiE;IAAA,sGACjE;IAAA,4DAAY;;;;IAUZ,4FAEI;IADA,yWAA4B,QAAQ,KAAE;IACtC;IAAA,+EAAkC;IAAA,gEAAK;IAAA,4DAAW;IACtD;IAAA,4DAAwB;;;IAGxB,4EAA+D;IAAA,8EAAmB;IAAA,4DAAY;;;;IAU9F,6EAEA;IAF+D,kUAAsB;IAErF;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC1B;IAAA,4DAAS;;;;IAET,iFACI;IADQ,yXAAiC;IACzC,uDACJ;IAAA,4DAAa;;;IAFwH,iFAAoB;IACrJ,0DACJ;IADI,wIACJ;;;;IAgCQ,iFACI;IADiE,saAA6C;IAC9G,uDACJ;IAAA,4DAAa;;;IAF4C,wEAAW;IAChE,0DACJ;IADI,sJACJ;;;;IAoBA,wEAEI;IADA,2TAAwB;IACxB;IAAA,qEAAiC;IACrC;IAAA,4DAAI;;;IAQJ,yEAA+D;IAAA,uDAC/D;IAAA,4DAAK;;;IAD0D,0DAC/D;IAD+D,sHAC/D;;;IACA,yEAAuC;IAAA,uDAAsB;IAAA,4DAAK;;;;IAA3B,0DAAsB;IAAtB,2FAAsB;;;IAHjE,4EACI;IAAA;IAAA,kIAA+D;IAE/D;IAAA,kIAAuC;IAC3C;IAAA,qEAAe;;;IAJgC,mGAA6B;;;IAK5E,oEAA4D;;;IAE5D,oEAAkE;;;IAClE,yEACI;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAErD;IAHI,4DACI;;;IAQJ,yEAA+F;IAAA,uDAC/F;IAAA,4DAAK;;;IADiC,qGAA+B;IAA0B,0DAC/F;IAD+F,kHAC/F;;;IACA,yEAAuC;IAAA,uDAAsB;IAAA,4DAAK;;;;IAA3B,0DAAsB;IAAtB,2FAAsB;;;IAHjE,4EACI;IAAA;IAAA,kIAA+F;IAE/F;IAAA,kIAAuC;IAC3C;IAAA,qEAAe;;;IAJmC,mGAA6B;;;IAK/E,oEAAuD;;;IAEvD,oEAA6D;;;IAC7D,yEACI;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAErD;IAHI,4DACI;;;ADvGjB,MAAM,sBAAsB;IAqDjC,YAAoB,qBAA2C,EACrD,SAA8B,EAC9B,cAA8B,EAC9B,iBAAoC,EAAU,EAAe,EAAS,UAAsB,EAAU,QAAqB,EAAS,mBAAuC,EAAU,OAA0B;QAHrM,0BAAqB,GAArB,qBAAqB,CAAsB;QACrD,cAAS,GAAT,SAAS,CAAqB;QAC9B,mBAAc,GAAd,cAAc,CAAgB;QAC9B,sBAAiB,GAAjB,iBAAiB,CAAmB;QAAU,OAAE,GAAF,EAAE,CAAa;QAAS,eAAU,GAAV,UAAU,CAAY;QAAU,aAAQ,GAAR,QAAQ,CAAa;QAAS,wBAAmB,GAAnB,mBAAmB,CAAoB;QAAU,YAAO,GAAP,OAAO,CAAmB;QAvDzN,uBAAkB,GAAyB,IAAI,mDAAa,CAAQ,CAAC,CAAC,CAAC;QAIvE,oBAAe,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QAEnD,gBAAW,GAAG,EAAE,CAAC;QACjB,qBAAgB,GAAG,EAAE,CAAC;QAEtB,iBAAY,GAAU,EAAE,CAAC;QACzB,kBAAa,GAAkB,EAAE,CAAC;QAElC,wBAAmB,GAAY,KAAK,CAAC;QAGT,cAAS,GAAG,IAAI,uDAAS,EAAgB,CAAC;QACtE,sDAAsD;QACtD,qDAAqD;QAE7B,SAAI,GAAG,IAAI,uDAAS,EAAW,CAAC;QAKxD,iBAAY,GAAW,EAAE,CAAC;QAO1B,SAAI,GAAU,EAAE,CAAC;QACjB,kBAAa,GAAU,EAAE,CAAC;QAE1B,iBAAY,GAAa,EAAE,CAAC;QACpB,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QACtD,kBAAa,GAAY,KAAK,CAAC;QAGvB,eAAU,GAAG,IAAI,6CAAO,EAAQ,CAAC;QAElC,iBAAY,GAAY,KAAK,CAAC;QACrC,cAAS,GAAY,KAAK,CAAC;QAM3B,SAAI,GAAC,CAAC,CAAC;QAEP,uBAAkB,GAAkC,OAAO,CAAC;QAC5D,qBAAgB,GAAgC,KAAK,CAAC;QAKpD,mDAAmD;QACnD,IAAI,CAAC,UAAU,GAAG,IAAI,6EAAiB,EAAE,CAAC;QAC1C,IAAI,CAAC,iBAAiB,GAAG,IAAI,6EAAiB,EAAE,CAAC;QACjD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;IAElD,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,EAAE;YAC9D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,GAAG;YACV,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,gBAAgB,EAAC;YAClD,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE;YAC3C,EAAE,KAAK,EAAE,sBAAsB,EAAE,MAAM,EAAE,gBAAgB,EAAE;YAC3D,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE;YAC1C,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE;YACtC,EAAE,KAAK,EAAE,oBAAoB,EAAE,MAAM,EAAE,UAAU,EAAE;YACnD,EAAE,KAAK,EAAE,oBAAoB,EAAE,MAAM,EAAE,UAAU,EAAE;YACnD,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE;YACjD,sDAAsD;YACtD,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,kBAAkB,EAAE;YACxD,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE;YACvC,6CAA6C;YAC7C,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE;YACvC,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE;YACrC,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE;YACzC,+DAA+D;YAC/D,EAAE,KAAK,EAAE,yBAAyB,EAAE,MAAM,EAAE,oBAAoB,EAAE;YAClE,EAAE,KAAK,EAAE,2BAA2B,EAAE,MAAM,EAAE,sBAAsB,EAAE;YACtE,EAAE,KAAK,EAAE,uBAAuB,EAAE,MAAM,EAAE,qBAAqB,EAAE;YACjE,EAAE,KAAK,EAAE,yBAAyB,EAAE,MAAM,EAAE,uBAAuB,EAAE;YAErE,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE;YACrC,EAAE,KAAK,EAAE,sBAAsB,EAAE,MAAM,EAAE,mBAAmB,EAAE;YAC9D,EAAE,KAAK,EAAE,oBAAoB,EAAE,MAAM,EAAE,iBAAiB,EAAE;YAC1D,EAAE,KAAK,EAAE,oBAAoB,EAAE,MAAM,EAAE,UAAU,EAAE;YACnD,EAAE,KAAK,EAAE,qBAAqB,EAAE,MAAM,EAAE,YAAY,EAAE;SAEvD,CAAC;QAEF,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QAExB,yCAAyC;QACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAEzC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SAE9E;QACD,IAAI,CAAC,eAAe,GAAG;YACrB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SAEb,CAAC;QACF,IAAI,CAAC,YAAY,GAAG;YAClB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SACb;QACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC;QAC9B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC/D,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACpE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACjE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YAC1B,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACrC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACnC,SAAS,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;YACrB,YAAY,EAAE,EAAE;YAChB,YAAY,EAAE,CAAC,EAAE,CAAC;SACnB,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACjE,IAAI,CAAC,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC;QAC/B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,YAAY;aAC3C,IAAI,CAAC,iEAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAChC,SAAS,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEL,IAAI,CAAC,QAAQ,EAAE,CAAC;IAElB,CAAC;IAID,UAAU,CAAC,GAAQ,EAAE,SAAS;QAC5B,IAAG,SAAS,IAAE,QAAQ,EAAC;YACrB,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;SACnC;QACD,IAAG,SAAS,IAAE,UAAU,EAAC;YACvB,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC;SACrC;IACH,CAAC;IAEO,QAAQ;QACd,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnE,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACnC,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC;IAC7B,CAAC;IAGD,mDAAmD;IACnD,6EAA6E;IAC9E,0DAA0D;IAC1D,eAAe;QACf,IAAI,CAAC,UAAU,GAAG,IAAI,2EAAkB,EAAE,CAAC;QAC3C,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QACxD,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;IAE/C,CAAC;IACC,WAAW;QACT,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;IAC7B,CAAC;IACD,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,WAAW,EAAE;gBACf,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;aAC3D;iBACI;gBACH,IAAI,CAAC,UAAU,GAAG,IAAI,2EAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBAC7D,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;gBACxD,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC9C,8CAA8C;gBAC9C,oCAAoC;aAErC;SACF;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,2EAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC7D,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;YACxD,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;YAC9C,8CAA8C;YAC9C,oCAAoC;SAErC;IACH,CAAC;IACO,gBAAgB;QACtB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,OAAO;SACR;QACD,yBAAyB;QACzB,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC;QACrD,IAAI,CAAC,MAAM,EAAE;YACX,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YAChD,OAAO;SACR;aAAM;YACL,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;SAC/B;QACD,mBAAmB;QACnB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAC1B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CACvE,CAAC;IACJ,CAAC;IACD,MAAM,CAAC,KAAU;QAEf,IAAI,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC;QAC1D,IAAI,WAAW,EAAE;YACf,OAAO,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;SAC1G;aACI;YACH,OAAO,IAAI,CAAC,IAAI,CAAC;SAClB;IACH,CAAC;IACD,UAAU,CAAC,KAAU;QACnB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAC;YAC/B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACjE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC/D,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;SACvB;IACH,CAAC;IAED,YAAY,CAAC,GAAG;QACd,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;YAC7B,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAC;SACd;QACD,IACE,IAAI,CAAC,eAAe,CAAC,MAAM;YAC3B,IAAI,CAAC,IAAI,CAAC,MAAM;YAEhB,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;IAC9B,CAAC;IAED,kBAAkB;QAChB,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;YAC7B,IAAI,CAAC,eAAe,GAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAC,CAAC,CAAC,CAAC;YACzD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY;iBAC9B,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACpC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpD,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;SACzB;aAAM;YACL,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YACjD,IAAI,CAAC,eAAe,GAAC,EAAE,CAAC;YACxB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;SACzB;IACH,CAAC;IAID,WAAW;QACT,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,CAAC,GAAqB,EAAE,EAAE;YAC3E,IAAI,QAAQ,GAAU,EAAE,CAAC;YACzB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1C,GAAG,CAAC,OAAO,CAAC,CAAC,OAAuB,EAAE,EAAE;gBACtC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;YAC1E,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,MAAM,CACjC,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC;YAElF,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAClD,iEAAS,CAAC,EAAE,CAAC,EACb,2DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CACzC,CAAC;QACR,CAAC,EACC,CAAC,KAAU,EAAE,EAAE;YACb,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,6BAA6B,EAAE,GAAG,EAAE;gBACrD,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;gBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;aACxC,CAAC,CAAC;QACL,CAAC,CACF,CAAC;IACJ,CAAC;IAEO,cAAc,CAAC,KAAK;QAC1B,IAAI,WAAW,CAAC;QAChB,IAAI,KAAK,IAAI,KAAK,CAAC,SAAS,EAAE;YAC5B,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CACzC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CACjD,CAAC;SACH;aAAM;YACL,OAAO,IAAI,CAAC,YAAY,CAAC;SAC1B;IACH,CAAC;IAED,UAAU;QACR,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC;IACnE,CAAC;IAED,iBAAiB,CAAC,IAAI;QACpB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC;QACpC,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC;IAErD,CAAC;IAED,mBAAmB;QACjB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;QACnB,IAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAC;YACnB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;SACf;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,KAAK,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,KAAK,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,EAAE;YACxL,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YACnB,OAAO;SACR;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,IAAI,EAAE;YACtE,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE;gBAC9D,IAAI,CAAC,YAAY,GAAG,qCAAqC,CAAC;gBAC1D,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;gBACnB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,qCAAqC,EAAE,GAAG,EAAE;oBAC7D,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;oBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;iBACxC,CAAC,CAAC;gBAEH,OAAO,KAAK,CAAC;aACd;YACD,IAAI,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE;gBAC5D,IAAI,CAAC,YAAY,GAAG,mCAAmC,CAAC;gBACxD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;gBACnB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE;oBAC3D,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;oBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;iBACxC,CAAC,CAAC;gBACH,OAAO,KAAK,CAAC;aACd;YACD,IAAI,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;gBAC1E,IAAI,CAAC,YAAY,GAAG,uCAAuC,CAAC;gBAC5D,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;gBACnB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;oBAC/D,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;oBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;iBACxC,CAAC,CAAC;gBACH,OAAO,KAAK,CAAC;aACd;YACD,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,EAAE,CAAC;YACjC,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,CAAC,CAAC;YAC/B,IAAI,CAAC,iBAAiB,GAAG,IAAI,6EAAiB,EAAE,CAAC;YACjD,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,GAAG,IAAI,mFAAuB,EAAE,CAAC;YAC/E,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,QAAQ,GAAG,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;YACpG,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,MAAM,GAAG,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE;YAC/F,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;YACrF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACjF,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAC7E,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,WAA+B,EAAE,EAAE;gBACzG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;gBACnB,IAAI,WAAW,EAAE;oBACf,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;oBAC1B,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC;oBACjC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,MAAmB,EAAE,EAAE;wBACjD,MAAM,CAAC,QAAQ,GAAG,mCAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;wBAC/D,MAAM,CAAC,MAAM,GAAG,mCAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;wBAC3D,MAAM,CAAC,kBAAkB,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;wBACvE,MAAM,CAAC,kBAAkB,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;wBACvE,MAAM,CAAC,kBAAkB,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,EAAC,CAAC,IAAI,CAAC;wBACtE,MAAM,CAAC,mBAAmB,GAAE,CAAC,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,EAAC,CAAC,IAAI,CAAC;oBACzE,CAAC,CAAC,CAAC;oBACH,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;oBACvB,IAAI,CAAC,UAAU,GAAG,IAAI,2EAAkB,CAAc,IAAI,CAAC,aAAa,CAAC,CAAC;oBAGzE,6CAA6C;oBAC7C,mCAAmC;oBACpC,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;oBACxD,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;oBAC9C,8DAA8D;oBAC9D,6BAA6B;oBAC7B,OAAO;oBAGP,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;oBACnD,IAAI,CAAC,QAAQ,GAAG,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;oBAC1D,IAAI,CAAC,MAAM,GAAG,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;oBACtD,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;iBAC5B;qBACI;oBACH,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;oBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;iBAC3C;YACH,CAAC,EACC,CAAC,KAAU,EAAE,EAAE;gBACb,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;gBACnB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;gBACvB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,4BAA4B,EAAE,GAAG,EAAE;oBACpD,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;oBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;iBACxC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;SACN;IAEH,CAAC;IAED,WAAW;QACT,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,CAAC;QACpC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACjE,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,mDAAmD;QACnD,IAAI,CAAC,UAAU,GAAG,IAAI,6EAAiB,EAAE,CAAC;QAE1C,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,gEAAgE;QAChE,8CAA8C;QAC9C,oCAAoC;QACpC,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QACxD,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;QAEnD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC/D,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAGtE,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;IACzB,CAAC;IAED,iBAAiB,CAAC,KAAU;QAC1B,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;IACzB,CAAC;IAED,YAAY;QACV,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACrD,cAAc,EAAE,CAAC,CAAC,YAAY;YAC9B,gBAAgB,EAAE,CAAC,CAAC,YAAY;YAChC,kBAAkB,EAAE,CAAC,CAAC,eAAe;YACrC,OAAO,EAAE,CAAC,CAAC,SAAS;YACpB,OAAO,EAAE,CAAC,CAAC,SAAS;YACpB,QAAQ,EAAE,CAAC,CAAC,UAAU;YACtB,SAAS,EAAE,CAAC,CAAC,WAAW;YACxB,gBAAgB,EAAE,CAAC,CAAC,oBAAoB;YACxC,oBAAoB,EAAE,CAAC,CAAC,uBAAuB;YAC/C,qBAAqB,EAAE,CAAC,CAAC,qBAAqB;YAC9C,UAAU,EAAE,CAAC,CAAC,kBAAkB;YAChC,UAAU,EAAE,CAAC,CAAC,kBAAkB;YAChC,mBAAmB,EAAE,CAAC,CAAC,oBAAoB;YAC3C,iBAAiB,EAAE,CAAC,CAAC,kBAAkB;YACvC,WAAW,EAAE,CAAC,CAAC,QAAQ;YACvB,SAAS,EAAE,CAAC,CAAC,MAAM;SACpB,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;IAC5E,CAAC;;4FA/eU,sBAAsB;sGAAtB,sBAAsB;;kEAqBtB,iEAAkB;;;kEALf,yEAAY;kEAIX,8DAAO;;;;;;;;;qFAxBX,CAAC,qFAAoB,EAAE,4FAAiB,EAAE,8EAAmB,CAAC;;QCxC3E,gFACI;QAAA;QAAA,yFACE;QAD8C,wKAAe,CAAC,IAAC,gHAAgB,CAAC,IAAjB;QAC/D;QAAA,6FACE;QAAA;QAAA,kFACI;QAAA;QAAA,2EAAU;QAAA,sEAAW;QAAA,4DAAW;QAAC,iGACrC;QAAA,4DAAkB;QACnB;QAAA,4DAA6B;QAE7B;QAAA,2EACC;QAAA;QAAA,0EACI;QAAA;QAAA,0EACI;QAAA;QAAA,iEACA;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,qEAAS;QAAA,2EAA0B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QAElE;QAAA,4EAGA;QAHuC,4RAAS,UAAW,IAAC,4OAEjB,uBAAuB,IAFN;QAA5D,4DAGA;QAAA;QAAA,wJAEI;QAEJ;QAAA,uFAAsE;QACtE;QAAA,sFAAuC;QACvC;QAAA,iIAAiE;QAErE;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,iEACA;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,mEAAO;QAAA,2EAA0B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QAChE;QAAA,6EAGA;QAHqC,4RAAS,UAAS,IAAC,0OAEW,uBAAuB,IAFlC;QAAxD,4DAGA;QAAA;QAAA,wJAEI;QAEJ;QAAA,uFAAoE;QACpE;QAAA,uFAAqC;QACrC;QAAA,iIAA+D;QACnE;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,iEAEA;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,0EAAc;QAAA,4DAAY;QACrC;QAAA,wEAEA;QAAA;QAAA,2HAEA;QAEA;QAAA,8FACA;QAAA;QAAA,mIACI;;QAER;QAAA,4DAAmB;QACnB;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACV;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,8EACI;QADqC,+IAAS,iBAAa,IAAC;QAC5D,mFAAK;QAAA,4DAAS;QAClB;QAAA,8EACI;QAD+D,+IAAS,yBAAqB,IAAC;QAC9F,mFAAK;QAAA,4DAAS;QACtB;QAAA,4DAAM;QACV;QAAA,4DAAO;QACP;QAAA,4DAAsB;QACxB;QAAA,4DAAgB;QAGlB;QAAA,iFACI;QAAA;QAAA,wEACI;QAAA;QAAA,4EACI;QAAA;QAAA,2EACI;QAAA;QAAA,2EAGI;QAAA;QAAA,sFACI;QAAA;QAAA,8EAAW;QAAA,yDAA2C;QAAA,4DAAY;QAClE;QAAA,mFAEI;QADuB,8KAAmB,sBAAkB,IAAC;QAC7D;QAAA,+EACI;QAAA;QAAA,yFACkE;QACtE;QAAA,4DAAa;QACb;QAAA,uFAAoE;QAA3C,oJAAS,wBAAoB,IAAC;QAAa,gEAAG;QAAA,4DAAa;QACpF;QAAA,qIACI;;QAER;QAAA,4DAAa;QACjB;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,4EACI;QAAA;QAAA,sEAAG;QAAA,2EAAc;QAAA,4DAAI;QACrB;QAAA,yEAAM;QAAA,yDAA+C;QAAA,4DAAO;QAChE;QAAA,4DAAM;QACV;QAAA,4DAAM;QACN;QAAA,kEACA;QAAA;QAAA,2EACQ;QAAA;QAAA,4EACI;QAAA;QAGA;QAIA;QAAA,mHAEI;QAER;QAAA,4DAAM;QACd;QAAA,4DAAM;QACV;QAAA,4DAAM;QACN;QAAA,4EACI;QAAA;QAAA,4EACI;QAAA;QAAA,kFACI;QAAA;QAAA,yIACI;QAIJ;QAAA,qHAAuD;QAEvD;QAAA,qHAA6D;QAC7D;QAAA,qHACI;QAER,4DAAQ;QACZ;QAAA,4DAAM;QACV;QAAA,4DAAM;QACN;QAAA,4EACI;QAAA;QAAA,kFACI;QAAA;QAAA,yIACI;QAIJ;QAAA,qHAAkD;QAElD;QAAA,qHAAwD;QACxD;QAAA,qHACI;QAER,4DAAQ;QACZ;QAAA,4DAAM;QACN;QAAA,4EACI;QAAA;QAAA,iFAAgE;QACpE;QAAA,4DAAM;QACN;QAIJ;QAAA,4DAAO;QACX;QAAA,4DAAM;QACV;QAAA,4DAAW;QACX;QAAA,oFAEI;QAAA;QAAA,0EAAmB;QAAA,wEAAW;QAAA,4DAAI;QACtC;QAAA,4DAAc;;;;;QAnKc,0DAAuB;QAAvB,oFAAuB;QAOtC,2DAAoB;QAApB,iFAAoB;QAID,0DAA8B;QAA9B,sGAA8B;QAG1B,0DAAsB;QAAtB,8EAAsB;QAGL,0DAA6B;QAA7B,2FAA6B;QAI7B,0DAAY;QAAZ,oEAAY;QAElC,0DAAqD;QAArD,mHAAqD;QAMpD,0DAA8B;QAA9B,sGAA8B;QAE1B,0DAAoB;QAApB,8EAAoB;QAGH,0DAA2B;QAA3B,yFAA2B;QAI3B,0DAAU;QAAV,oEAAU;QAEhC,0DAAmD;QAAnD,iHAAmD;QAMlD,0DAAkC;QAAlC,sGAAkC;QAGD,0DAAwB;QAAxB,gFAAwB;QACtC,0DAA8B;QAA9B,4FAA8B;QAK0B,0DAA6C;QAA7C,2JAA6C;QAoB1I,2DAAoB;QAApB,iFAAoB;QAKE,0DAAkC;QAAlC,sGAAkC;QACnC,0DAA2C;QAA3C,qHAA2C;QAC1C,0DAA4C;QAA5C,yGAA4C;QAMI,0DAAW;QAAX,oEAAW;QACvD,0DAA4C;QAA5C,+JAA4C;QAStD,2DAA+C;QAA/C,sHAA+C;QAa9C,2DAA4C;QAA5C,gHAA4C;QASrC,0DAAyB;QAAzB,sFAAyB;QACzB,0DAAgC;QAAhC,qFAAgC;QAK3B,0DAAmC;QAAnC,iGAAmC;QAE1C,0DAAgD;QAAhD,kGAAgD;QAQ5C,0DAAyB;QAAzB,sFAAyB;QAC/B,0DAAmC;QAAnC,wFAAmC;QAK9B,0DAA8B;QAA9B,4FAA8B;QAErC,0DAA2C;QAA3C,6FAA2C;QAO5C,0DAAgC;QAAhC,mJAAgC;QASL,0DAAoB;QAApB,6EAAoB;;6FDrHjE,sBAAsB;cARlC,uDAAS;eAAC;gBACT,QAAQ,EAAE,oBAAoB;gBAC9B,WAAW,EAAE,iCAAiC;gBAC9C,SAAS,EAAE,CAAC,iCAAiC,CAAC;gBAC9C,SAAS,EAAE,CAAC,qFAAoB,EAAE,4FAAiB,EAAE,8EAAmB,CAAC;aAE1E;6zBAiB6B,aAAa;kBAAxC,uDAAS;mBAAC,eAAe;YACE,SAAS;kBAApC,0DAAY;mBAAC,yEAAY;YAIF,IAAI;kBAA1B,0DAAY;mBAAC,8DAAO;YACS,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;YACT,KAAK;kBAAxB,uDAAS;mBAAC,OAAO;YAEgB,WAAW;kBAA5C,uDAAS;mBAAC,aAAa;;;;;;;;;;;;;;AEpE1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAyE;AAQjB;AACxD,0GAA0G;AAClB;AAC/B;AAMK;AAEH;AACV;AAQY;AAM5B;AACgH;AAKjG;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICtB5B,4FAEI;IADA,mXAA4B,UAAU,KAAE;IACxC;IAAA,+EAAkC;IAAA,gEAAK;IAAA,4DAAW;IACtD;IAAA,4DAAwB;;;IAGxB,4EAAiE;IAAA,sGACjE;IAAA,4DAAY;;;;IAUZ,4FAEI;IADA,mXAA4B,QAAQ,KAAE;IACtC;IAAA,+EAAkC;IAAA,gEAAK;IAAA,4DAAW;IACtD;IAAA,4DAAwB;;;IAGxB,4EAA+D;IAAA,8EAAmB;IAAA,4DAAY;;;;IAShG,6EAEA;IAF+D,+UAAoB,WAAW,KAAE;IAEhG;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC1B;IAAA,4DAAS;;;;IAET,iFACI;IADQ,8XAA2B,WAAW,eAAO,kVAAmC,WAAW,eAA9C;IACrD,uDACJ;IAAA,4DAAa;;;IAFgJ,iFAAoB;IAC7K,0DACJ;IADI,oIACJ;;;IAbN,yEACE;IAAA;IAAA,gEACA;IAAA;IAAA,oFACI;IAAA;IAAA,4EAAW;IAAA,kEAAO;IAAA,4DAAY;IAC9B;IAAA,uEAEA;IAAA;IAAA,4IAEA;IAEA;IAAA,8FACA;IAAA;IAAA,oJACI;;IAER;IAAA,4DAAmB;IACnB;IAAA,4DAAiB;IACrB;IAAA,4DAAM;;;;IAdc,0DAAkC;IAAlC,yGAAkC;IAGD,0DAAwB;IAAxB,iFAAwB;IACtC,0DAA8B;IAA9B,+FAA8B;IAKkD,0DAA6C;IAA7C,6JAA6C;;;;IAalK,6EAEI;IADA,uUAAoB,cAAc,KAAE;IACpC;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC9B;IAAA,4DAAS;;;;IAEL,iFAGI;IAHQ,sXAA2B,cAAc,eAAO,0UACvB,cAAc,eADS;IAGxD,uDACJ;IAAA,4DAAa;;;IAFwC,iFAAoB;IACrE,0DACJ;IADI,gIACJ;;;;IAMN,mFAAsH;IAAxG,6WAAoC;IAAoE,iGACtH;IAAA,4DAAe;;;;IA2BJ,wEAEG;IADA,qUAAwB;IACxB;IAAA,qEAAiC;IACrC;IAAA,4DAAI;;;IAUA,yEAAwF;IAAA,6DAAE;IAAA,4DAAK;;;IAC/F,yEAAwD;IAAA,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,oGAAyB;;;IAIjF,yEAAwF;IAAA,+DAAI;IAAA,4DAAK;;;IACjG,yEAAwD;IAAA,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,oGAAyB;;;IAGjF,yEAAyF;IAAA,qEAAU;IAAA,4DAAK;;;IACxG,yEAAwD;IAAA,uDAA2B;IAAA,4DAAK;;;IAAhC,0DAA2B;IAA3B,sGAA2B;;;IAGjF,yEAAyF;IAAA,kEAAO;IAAA,4DAAK;;;IACrG,yEAAwD;IAAA,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,mGAAwB;;;IAGhF,yEAAwF;IAAA,4EAAiB;IAAA,4DAAK;;;IAC9G,yEAAwD;IAAA,uDAAiC;IAAA,4DAAK;;;IAAtC,0DAAiC;IAAjC,4GAAiC;;;IAGvF,yEAAwF;IAAA,qEAAU;IAAA,4DAAK;;;IACvG,yEAAwD;IAAA,uDAA4B;IAAA,4DAAK;;;IAAjC,0DAA4B;IAA5B,uGAA4B;;;IAGtF,yEAAuE;IAAA,sEAAW;IAAA,4DAAK;;;;IACvF,yEAAwD;IAAA;IAAA,+EAAoG;IAA1C,oYAAwC;IAAE,sEAAU;IAAA,4DAAW;IAAC;IAAA,4DAAK;;;IAGzL,oEAA4D;;;IAC5D,oEAAmI;;;IAAtE,6HAAgE;;;IAC7H,yEACI;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IACjD;IAAA,4DAAK;;;AD3GtB,MAAM,gCAAgC;IA+C3C,YAAoB,gCAAkE,EAC5E,mBAAwC,EACzC,UAAsB,EACrB,OAA0B,EAC1B,SAAsB,EACtB,EAAe,EAChB,MAAiB,EAChB,iBAAoC;QAP1B,qCAAgC,GAAhC,gCAAgC,CAAkC;QAC5E,wBAAmB,GAAnB,mBAAmB,CAAqB;QACzC,eAAU,GAAV,UAAU,CAAY;QACrB,YAAO,GAAP,OAAO,CAAmB;QAC1B,cAAS,GAAT,SAAS,CAAa;QACtB,OAAE,GAAF,EAAE,CAAa;QAChB,WAAM,GAAN,MAAM,CAAW;QAChB,sBAAiB,GAAjB,iBAAiB,CAAmB;QApD9C,oBAAe,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QAInD,iBAAY,GAAuB,EAAE,CAAC;QACtC,kBAAa,GAA6B,EAAE,CAAC;QAI7C,wBAAmB,GAAY,KAAK,CAAC;QAGrC,iBAAY,GAAW,EAAE,CAAC;QAC1B,SAAI,GAAC,CAAC,CAAC;QAEA,iBAAY,GAAY,KAAK,CAAC;QACrC,cAAS,GAAY,KAAK,CAAC;QAI3B,iBAAY,GAAa,EAAE,CAAC;QAGpB,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QACtD,qBAAgB,GAAa,CAAC,cAAc,EAAC,cAAc,EAAC,aAAa,EAAC,sBAAsB,EAAC,iBAAiB,EAAC,MAAM,CAAC,CAAC;QAC3H,iBAAY,GAAU,EAAE,CAAC;QAIzB,mBAAc,GAAiB,EAAE,CAAC;QAGlC,uBAAkB,GAAkC,OAAO,CAAC;QAC5D,qBAAgB,GAAgC,KAAK,CAAC;QAMtD,iBAAY,GAAG,KAAK,CAAC;QACrB,cAAS,GAAG,CAAC,CAAC;QACd,yBAAoB,GAAG,IAAI,CAAC;QAa9B,IAAI,CAAC,UAAU,GAAG,IAAI,gGAAsB,EAAE,CAAC;QAC/C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;QAChD,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE;YAC9D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,IAAI,IAAI,GAAS,IAAI,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAExB,IAAI,CAAC,gCAAgC,CAAC,oBAAoB,EAAE,CAAC,SAAS,CAChE,CAAC,QAAc,EAAE,EAAE;YACjB,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC;QAC1B,CAAC,EACD,CAAC,KAAU,EAAE,EAAE,GAAI,CAAC,CACrB,CAAC;QACF,IAAI,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,IAAI,IAAI,EAAE;YACrE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CACxB,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAC1D,CAAC,QAAQ,CAAC;YAEX,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CACrB,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAC1D,CAAC,UAAU,CAAC;SAClB;QAEG,IAAI,CAAC,gCAAgC,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAC9E,CAAC,QAAiB,EAAE,EAAE;YACpB,IAAI,CAAC,oBAAoB,GAAG,QAAQ,CAAC;YACrC,IAAG,IAAI,CAAC,QAAQ,KAAK,KAAK,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK;gBACrD,IAAI,CAAC,gBAAgB,GAAG,CAAC,cAAc,EAAC,cAAc,EAAC,gBAAgB,EAAC,sBAAsB,EAAC,iBAAiB,EAAC,MAAM,CAAC,CAAC;iBACtH,IAAG,IAAI,CAAC,oBAAoB,KAAK,IAAI;gBAChD,IAAI,CAAC,gBAAgB,GAAG,CAAC,cAAc,EAAC,cAAc,EAAC,aAAa,EAAC,sBAAsB,EAAC,iBAAiB,EAAC,MAAM,CAAC,CAAC;;gBAEtH,IAAI,CAAC,gBAAgB,GAAG,CAAC,cAAc,EAAC,cAAc,EAAC,sBAAsB,EAAC,iBAAiB,EAAC,MAAM,CAAC,CAAC;YACxG,IAAI,CAAC,kBAAkB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC5D,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC;YAC7B,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACnD,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;QAC1C,CAAC,EACD,CAAC,KAAU,EAAE,EAAE,GAAI,CAAC,CACrB,CAAC;IACF,CAAC;IAEH,QAAQ;QAEN,IAAI,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,IAAI,IAAI,EAAE;YACrE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CACxB,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAC1D,CAAC,QAAQ,CAAC;YAEX,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CACrB,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAC1D,CAAC,UAAU,CAAC;SAClB;QACD,IAAI,CAAC,gCAAgC,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAC9E,CAAC,QAAiB,EAAE,EAAE;YACpB,IAAI,CAAC,oBAAoB,GAAG,QAAQ,CAAC;YACrC,IAAG,IAAI,CAAC,QAAQ,KAAK,KAAK,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK;gBACrD,IAAI,CAAC,gBAAgB,GAAG,CAAC,cAAc,EAAC,cAAc,EAAC,gBAAgB,EAAC,sBAAsB,EAAC,iBAAiB,EAAC,MAAM,CAAC,CAAC;iBACtH,IAAG,IAAI,CAAC,oBAAoB,KAAK,IAAI;gBAC5C,IAAI,CAAC,gBAAgB,GAAG,CAAC,cAAc,EAAC,cAAc,EAAC,aAAa,EAAC,sBAAsB,EAAC,iBAAiB,EAAC,MAAM,CAAC,CAAC;;gBAEtH,IAAI,CAAC,gBAAgB,GAAG,CAAC,cAAc,EAAC,cAAc,EAAC,sBAAsB,EAAC,iBAAiB,EAAC,MAAM,CAAC,CAAC;YACxG,IAAI,CAAC,kBAAkB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACpE,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC;YAC7B,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACnD,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;QACtC,CAAC,EACD,CAAC,KAAU,EAAE,EAAE,GAAI,CAAC,CACrB,CAAC;QAKE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACjF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YAC1B,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACrC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACnC,SAAS,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;YACrB,YAAY,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;YACxB,UAAU,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC;SAC1B,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,qBAAqB;QACnB,IAAI,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,IAAI,IAAI,EAAE;YACrE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CACxB,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAC1D,CAAC,QAAQ,CAAC;YAEX,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAC7B,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAC1D,CAAC,QAAQ,CAAC;SACZ;QAED,IAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAC;YACnB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;SACf;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,KAAK,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,KAAK,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,EAAE;YACxL,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,OAAO;SACR;QAED,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;QACnB,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,IAAI,EAAE;YACtE,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE;gBACxD,IAAI,CAAC,YAAY,GAAG,qCAAqC,CAAC;gBAC1D,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;gBACnB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,qCAAqC,EAAE,GAAG,EAAE;oBAC9D,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBAEH,OAAO,KAAK,CAAC;aACd;YACD,IAAI,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE;gBACtD,IAAI,CAAC,YAAY,GAAG,mCAAmC,CAAC;gBACxD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;gBACnB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE;oBAC5D,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,OAAO,KAAK,CAAC;aACd;YACD,IAAI,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;gBACpE,IAAI,CAAC,YAAY,GAAG,uCAAuC,CAAC;gBAC5D,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;gBACnB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;oBAChE,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACH,OAAO,KAAK,CAAC;aACd;YAED,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACjF,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAC7E,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC;YACjD,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;YACzC,qDAAqD;YACnD,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACzC,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YACjD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC5C;IACH,CAAC;IAED,oBAAoB,CAAC,MAA8B;QACjD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAEpB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,gCAAgC,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC,SAAS,CAChF,CAAC,QAA4B,EAAE,EAAE;YAC/B,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;YAC7B,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACvB,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC,gBAAgB,CAAC;gBAC7C,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,CAAC;YACzC,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,kBAAkB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACpE,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC;YAC7B,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACnD,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;QAC1C,CAAC,EACD,CAAC,KAAU,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CACzC,CAAC;IACJ,CAAC;IAED,mBAAmB,CAAC,MAA8B;QAChD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,gCAAgC,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC,SAAS,CAC/E,CAAC,QAAkC,EAAE,EAAE;YACrC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;QAChC,CAAC,EACD,CAAC,KAAU,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CACzC,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,WAAW,EAAE;gBACf,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;aACnE;iBAAM;gBACL,IAAI,CAAC,kBAAkB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACpE,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC;gBAC7B,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBACnD,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;aAC1C;SACF;aAAM;YACL,IAAI,CAAC,kBAAkB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACpE,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC;YAC7B,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACnD,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SAC1C;IACH,CAAC;IAED,UAAU,CAAC,GAAQ,EAAE,SAAS;QAC5B,IAAG,SAAS,IAAE,QAAQ,EAAC;YACrB,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;YAClC,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB;QACD,IAAG,SAAS,IAAE,UAAU,EAAC;YACvB,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC;YACpC,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB;IACH,CAAC;IAED,WAAW;QACT,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;QAC7B,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,IAAI,gGAAsB,EAAE,CAAC;QAC/C,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,kBAAkB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACpE,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACzC,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACnD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;QAClD,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACjF,CAAC;IAED,SAAS;QACP,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,kBAAkB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACpE,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACzC,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACnD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;QAClD,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;IACvB,CAAC;IAEL,YAAY;QACV,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAEpB,IAAG,IAAI,CAAC,QAAQ,KAAK,KAAK,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EACrD;YACC,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC7D,IAAI,EAAE,CAAC,CAAC,YAAY;gBACpB,MAAM,EAAE,CAAC,CAAC,YAAY;gBACtB,YAAY,EAAE,CAAC,CAAC,cAAc;gBAC9B,mBAAmB,EAAE,CAAC,CAAC,oBAAoB;gBAC3C,YAAY,EAAE,CAAC,CAAC,eAAe;aAChC,CAAC,CAAC,CAAC;YACJ,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,eAAe,EAAE,6BAA6B,CAAC,CAAC;SACvF;aACI,IAAG,IAAI,CAAC,oBAAoB,KAAK,IAAI,EAC1C;YACA,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC7D,IAAI,EAAE,CAAC,CAAC,YAAY;gBACpB,MAAM,EAAE,CAAC,CAAC,YAAY;gBACtB,SAAS,EAAE,CAAC,CAAC,WAAW;gBACxB,mBAAmB,EAAE,CAAC,CAAC,oBAAoB;gBAC3C,YAAY,EAAE,CAAC,CAAC,eAAe;aAChC,CAAC,CAAC,CAAC;YACJ,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,eAAe,EAAE,6BAA6B,CAAC,CAAC;SACvF;aAED;YACE,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC7D,IAAI,EAAE,CAAC,CAAC,YAAY;gBACpB,MAAM,EAAE,CAAC,CAAC,YAAY;gBACtB,mBAAmB,EAAE,CAAC,CAAC,oBAAoB;gBAC3C,YAAY,EAAE,CAAC,CAAC,eAAe;aAChC,CAAC,CAAC,CAAC;YACJ,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,eAAe,EAAE,6BAA6B,CAAC,CAAC;SACxF;QACA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,qBAAqB,CAAC,QAA0B;QAE/C,IAAI,CAAC,YAAY,GAAG,IAAI,gGAAsB,EAAE,CAAC;QACjD,IAAI,CAAC,YAAY,CAAC,YAAY,GAAE,QAAQ,CAAC,YAAY,CAAC;QACtD,IAAI,CAAC,YAAY,CAAC,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;QACvD,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QACtD,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAClD,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,CAAC,CAAC;QAEhC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,gCAAgC,CAAC,yBAAyB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,SAAS,CAC1F,CAAC,QAAkC,EAAE,EAAE;YACrC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;YAC9B,IAAI,CAAC,UAAU,GAAG,IAAI,oGAA0B,EAAE,CAAC;YACnD,IAAI,CAAC,UAAU,CAAC,SAAS,GAAI,IAAI,CAAC,aAAa,CAAC;YAChD,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;YACrD,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,QAAQ,CAAC,eAAe,CAAC;YACtD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8JAA+B,EAAE;gBAClE,MAAM,EAAE,OAAO;gBACf,KAAK,EAAE,QAAQ;gBACf,YAAY,EAAE,IAAI;gBAClB,IAAI,EAAE,IAAI,CAAC,UAAU;aACtB,CAAC,CAAC;QACL,CAAC,EACD,CAAC,KAAU,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CACzC,CAAC;IAEH,CAAC;IAED,WAAW,CAAC,UAAiB,EAAE,QAAe;QAC7C,IAAI,CAAC,gCAAgC,CAAC,WAAW,CAAC,UAAU,EAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,GAAkB,EAAE,EAAE;YACtG,IAAI,QAAQ,GAAU,EAAE,CAAC;YACzB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACxB,6CAA6C;YAC5C,GAAG,CAAC,OAAO,CAAC,CAAC,OAAoB,EAAE,EAAE;gBACnC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5D,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,MAAM,CACjC,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC;YAElF,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAClD,iEAAS,CAAC,EAAE,CAAC,EACb,2DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CACzC,CAAC;QACR,CAAC,EACC,CAAC,KAAU,EAAE,EAAE;YACb,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,6BAA6B,EAAE,GAAG,EAAE;gBACtD,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;gBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;aACxC,CAAC,CAAC;QACL,CAAC,CACF,CAAC;IACJ,CAAC;IAEO,cAAc,CAAC,KAAK;QAC1B,IAAI,WAAW,CAAC;QAChB,IAAI,KAAK,IAAI,KAAK,CAAC,SAAS,EAAE;YAC5B,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CACzC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CACjD,CAAC;SACH;aAAM;YACL,OAAO,IAAI,CAAC,YAAY,CAAC;SAC1B;IACH,CAAC;IAED,UAAU,CAAC,SAAS;QAElB,IAAI,SAAS,IAAI,cAAc,EAAE;YAC/B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACjD,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC;YACpC,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,CAAC,CAAC;YAC/B,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB;QAED,IAAI,SAAS,IAAI,WAAW,EAAE;YAC5B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC9C,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC;YACjC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;YACnB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YACjF,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB;IACH,CAAC;IAED,mBAAmB;QAEf,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,SAAS,EAAE,CAAC;IACrB,CAAC;IAED,iBAAiB,CAAC,QAAQ,EAAE,IAAI;QAC9B,IAAI,QAAQ,IAAI,cAAc,EAAE;YAC9B,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC;YACvC,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC;YACzD,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;YACxC,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB;aAEI,IAAI,QAAQ,IAAI,WAAW,EAAE;YAChC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC;YACpC,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC;YACnD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC;YACxC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YACjF,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB;IACD,CAAC;IAEK,gBAAgB,CAAC,KAAK;QAC5B,IAAI,WAAW,CAAC;QAChB,IAAI,KAAK,IAAI,KAAK,CAAC,YAAY,EAAE;YAC/B,WAAW,GAAG,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;YAC/C,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAC3C,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CACjD,CAAC;SACH;aAAM;YACL,OAAO,IAAI,CAAC,cAAc,CAAC;SAC5B;IACH,CAAC;IAED,aAAa,CAAC,UAAiB,EAAE,QAAe,EAAE,SAAgB,EAAE,YAAoB;QACtF,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,gCAAgC,CAAC,aAAa,CAAC,UAAU,EAAC,QAAQ,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC,iBAAgC,EAAE,EAAE;YAC/I,iBAAiB,CAAC,OAAO,CAAC,CAAC,iBAA8B,EAAE,EAAE;gBACzD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,iBAAiB,CAAC,EAAE,EAAE,CAAC,CAAC;YAC7F,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CACrD,iEAAS,CAAC,EAAE,CAAC,EACb,2DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAC7C,CAAC;QACJ,CAAC,CAAC;YACA,CAAC,KAAU,EAAE,EAAE;gBACb,IAAI,KAAK,CAAC,KAAK,IAAI,SAAS,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE;oBAC/C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;wBACpC,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,8BAA8B,CAAC,EAAE,kBAAkB,EAAE,OAAO;wBACzF,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;YACP,CAAC,CAAC;IAEN,CAAC;IAED,iBAAiB,CAAC,KAAK;QACrB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC;QAClC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QAChC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACjF,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;IACnD,CAAC;;gHA5fU,gCAAgC;gHAAhC,gCAAgC;wEA4ChC,wEAAY;wEACZ,8DAAO;;;;;;;QC/FpB,gFACI;QAAA;QAAA,yFACE;QAD8C,kLAAe,CAAC,IAAC,0HAAgB,CAAC,IAAjB;QAC/D;QAAA,6FACE;QAAA;QAAA,kFACI;QAAA;QAAA,2EAAU;QAAA,sEAAW;QAAA,4DAAW;QAAC,+FACrC;QAAA,4DAAkB;QACnB;QAAA,4DAA6B;QAE7B;QAAA,2EACC;QAAA;QAAA,0EACI;QAAA;QAAA,0EACE;QAAA;QAAA,iEACE;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,qEAAS;QAAA,2EAA0B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QAElE;QAAA,4EAGA;QAHwE,sSAAS,UAAW,IAAC,wJACtB,eAAW,IADW,sGAElD,uBAAuB,IAF2B;QAA7F,4DAGA;QAAA;QAAA,kKAEI;QAEJ;QAAA,uFAAsE;QACtE;QAAA,sFAAuC;QACvC;QAAA,2IAAiE;QAErE;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,iEACE;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,mEAAO;QAAA,2EAA0B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QAChE;QAAA,6EAGA;QAHsE,sSAAS,UAAS,IAAC,sJACpB,eAAW,IADS,sGAEtC,uBAAuB,IAFe;QAAzF,4DAGA;QAAA;QAAA,kKAEI;QAEJ;QAAA,uFAAoE;QACpE;QAAA,uFAAqC;QACrC;QAAA,2IAA+D;QACnE;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,gIACE;QAgBJ;QAAA,0EACE;QAAA;QAAA,iEAEF;QAAA;QAAA,qFACE;QAAA;QAAA,6EAAY;QAAA,sEAAS;QAAA,4DAAY;QACjC;QAAA,wEAEA;QAAA;QAAA,qIAEI;QAEJ;QAAA,8FACI;QAAA;QAAA,6IAGI;;QAER;QAAA,4DAAmB;QACvB;QAAA,4DAAiB;QACf;QAAA,4DAAM;QACR;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,iJAAsH;QAEpH;QAAA,8EACI;QADqC,yJAAS,iBAAa,IAAC;QAC5D,mFAAK;QAAA,4DAAS;QAClB;QAAA,8EACI;QAD+D,yJAAS,2BAAuB,IAAC;QAChG,mFAAK;QAAA,4DAAS;QACtB;QAAA,4DAAM;QACV;QAAA,4DAAO;QACP;QAAA,4DAAsB;QACxB;QAAA,4DAAgB;QAEhB;QAAA,6EACE;QAAA;QAAA,qFACI;QAAA;QAAA,2EACI;QAAA;QAAA,4EACI;QAAA;QAAA,iFAA0C;QAAA,mEAAM;QAAA,4DAAW;QAAA,sEAAI;QAAA,iFAAmB;QAAA,4DAAI;QACvF;QAAA,yEAAM;QAAA,yDAAuB;QAAA,4DAAO;QACtC;QAAA,4DAAM;QACN;QAAA,4EACC;QAAA;QAAA,sEAAI;QAAA,iFAAmB;QAAA,4DAAI;QAC5B;QAAA,yEAAM;QAAA,yDAAoB;QAAA,4DAAO;QACnC;QAAA,4DAAM;QACN;QAAA,4EACC;QAAA;QAAA,sEAAI;QAAA,uEAAS;QAAA,4DAAI;QAClB;QAAA,yEAAM;QAAA,yDAAiB;QAAA,4DAAO;QAChC;QAAA,4DAAM;QACA;QAAA,4EACG;QAAA;QAAA,6EACG;QAAA;QAAA,6HAEG;QAEN;QAAA,4DAAO;QACV;QAAA,4DAAM;QACb;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,4EACI;QAAA;QAAA,4EACI;QAAA;QAAA,kFAEE;QAAA;QAAA,8EACE;QAAA;QAAA,+HAAwF;QACxF;QAAA,+HAAwD;QAC1D;QAAA,qEAAe;QAEjB;QAAA,8EACI;QAAA;QAAA,+HAAwF;QACxF;QAAA,+HAAwD;QAC1D;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,+HAAyF;QACzF;QAAA,+HAAwD;QAC1D;QAAA,qEAAe;QACb;QAAA,8EACE;QAAA;QAAA,+HAAyF;QACzF;QAAA,+HAAwD;QAC1D;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,+HAAwF;QACxF;QAAA,+HAAwD;QAC1D;QAAA,qEAAe;QACf;QAAA,8EACI;QAAA;QAAA,+HAAwF;QACxF;QAAA,+HAAwD;QAC5D;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,+HAAuE;QACvE;QAAA,+HAAwD;QAC5D;QAAA,qEAAe;QAEb;QAAA,+HAAuD;QACvD;QAAA,+HAA8H;QAC9H;QAAA,+HACI;QAER;QAAA,4DAAQ;QACV;QAAA,4DAAM;QACR;QAAA,4EACI;QAAA;QAAA,iFAA4F;QAChG;QAAA,4DAAM;QACV;QAAA,4DAAM;QACV;QAAA,4DAAM;QACV;QAAA,4DAAmB;QACvB;QAAA,4DAAW;QAIX;QAAA,oFAEI;QAAA;QAAA,0EAAmB;QAAA,wEAAW;QAAA,4DAAI;QACtC;QAAA,4DAAc;QAEd;;;;;QA9K4B,0DAAuB;QAAvB,oFAAuB;QAOtC,2DAAoB;QAApB,iFAAoB;QAID,0DAA8B;QAA9B,sGAA8B;QAG1B,0DAAsB;QAAtB,8EAAsB;QAGL,0DAA6B;QAA7B,2FAA6B;QAI7B,0DAAY;QAAZ,oEAAY;QAElC,0DAAqD;QAArD,mHAAqD;QAMpD,0DAA8B;QAA9B,sGAA8B;QAE1B,0DAAoB;QAApB,8EAAoB;QAGH,0DAA2B;QAA3B,yFAA2B;QAI3B,0DAAU;QAAV,oEAAU;QAEhC,0DAAmD;QAAnD,iHAAmD;QAGjE,0DAA+D;QAA/D,iIAA+D;QAoBtD,0DAA8B;QAA9B,sGAA8B;QAGpB,0DAAyB;QAAzB,gFAAyB;QAClB,0DAAiC;QAAjC,+FAAiC;QAOxD,0DAAgD;QAAhD,8JAAgD;QAQuB,0DAAoC;QAApC,oGAAoC;QAgB1G,2DAAuB;QAAvB,wFAAuB;QAIzB,0DAAoB;QAApB,qFAAoB;QAItB,0DAAiB;QAAjB,kFAAiB;QAIV,0DAA6B;QAA7B,6FAA6B;QAUQ,2DAAiC;QAAjC,8FAAiC;QAgCnD,2DAAmC;QAAnC,iGAAmC;QAC1C,0DAAgD;QAAhD,kGAAgD;QAOjD,0DAA4D;QAA5D,mJAA4D;QASrC,0DAAoB;QAApB,6EAAoB;;6FDxHjE,gCAAgC;cAL5C,uDAAS;eAAC;gBACT,QAAQ,EAAE,+BAA+B;gBACzC,WAAW,EAAE,4CAA4C;gBACzD,SAAS,EAAE,CAAC,4CAA4C,CAAC;aAC1D;kwBA6C4C,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACH,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AE/FtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AAEC;AACS;AACtB;AACU;AAOH;AACC;AACX;AACH;AACV;;;;;;;;;;;;;;;;;;;;;;ICHT,gFAEI;IADA,2bAA6C;IAC7C,uDACJ;IAAA,4DAAa;;;IAH4C,uEAAW;IAEhE,0DACJ;IADI,6IACJ;;;;IASR,wEACI;IADiD,iVAAwB;IACzE;IAAA,qEAAiC;IACrC;IAAA,4DAAI;;;IASA,yEAA+E;IAAA,uDAC/E;IAAA,4DAAK;;;IAD0E,0DAC/E;IAD+E,8GAC/E;;;IACA,yEAAuC;IAAA,uDAAsB;IAAA,4DAAK;;;;IAA3B,0DAAsB;IAAtB,2FAAsB;;;IAHjE,4EACI;IAAA;IAAA,wJAA+E;IAE/E;IAAA,wJAAuC;IAC3C;IAAA,qEAAe;;;IAJmC,mGAA6B;;;IAK/E,oEAAuD;;;IAEvD,oEAA6D;;;IAC7D,yEACI;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAErD;IAHI,4DACI;;;ADrBb,MAAM,6CAA6C;IAuBxD,YAAoB,iCAAmE,EAAU,UAAsB,EAAU,OAA0B,EAAS,mBAAuC,EAAU,SAAsB;QAAvN,sCAAiC,GAAjC,iCAAiC,CAAkC;QAAU,eAAU,GAAV,UAAU,CAAY;QAAU,YAAO,GAAP,OAAO,CAAmB;QAAS,wBAAmB,GAAnB,mBAAmB,CAAoB;QAAU,cAAS,GAAT,SAAS,CAAa;QArB3O,qBAAgB,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QAEpD,uBAAkB,GAAyB,IAAI,kDAAa,CAAQ,CAAC,CAAC,CAAC;QACvE,SAAI,GAAU,EAAE,CAAC;QAGV,qCAAgC,GAAkB,EAAE;QAE3D,iBAAY,GAAa,EAAE,CAAC;QAC5B,uBAAkB,GAAY,KAAK,CAAC;QAC5B,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QAI9C,eAAU,GAAG,IAAI,4CAAO,EAAQ,CAAC;QAQvC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;QAChD,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE;YAC5D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;QACnB,IAAI,CAAC,iCAAiC,CAAC,2BAA2B,EAAE,CAAC,SAAS,CAC5E,CAAC,QAAuB,EAAE,EAAE;YAC1B,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YACnB,IAAI,CAAC,gCAAgC,GAAG,QAAQ,CAAC;YACjD,IAAI,CAAC,gCAAgC,CAAC,OAAO,CAAC,CAAC,GAAgB,EAAE,EAAE;gBACjE,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACnD,GAAG,CAAC,QAAQ,GAAE,GAAG,CAAC,QAAQ,IAAE,SAAS,EAAC,KAAI,EAAC,oCAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBACrF,GAAG,CAAC,eAAe,GAAE,GAAG,CAAC,eAAe,IAAE,SAAS,EAAC,KAAI,EAAC,CAAC,mCAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBAC3G,GAAG,CAAC,0BAA0B,GAAG,GAAG,CAAC,0BAA0B,IAAI,mCAAM,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACjI,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,gCAAgC,CAAC,MAAM;YACrE,IAAI,CAAC,sCAAsC,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;YAC5G,IAAI,CAAC,sCAAsC,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACvE,IAAI,CAAC,sCAAsC,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAC/D,CAAC,EACD,CAAC,KAAK,GAAE;YACN,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,KAAK,CAAC,KAAK,IAAI,SAAS,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE;gBAC/C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;oBACpC,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,iDAAiD,CAAC,EAAE,kBAAkB,EAAE,OAAO;oBAC5G,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;iBACD;gBACF,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,+CAA+C,EAAE,GAAG,EAAE;oBACxE,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;IACP,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,IAAI,GAAG;YACV,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE;YACvC,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE;YAC1C,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE;YAC/C,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;YACnC,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE;YAC7C,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE;YAC3C,EAAC,KAAK,EAAC,iBAAiB,EAAC,MAAM,EAAC,mBAAmB,EAAC;SAErD,CAAC;QACF,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC/D,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,6BAA6B,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACxF,kCAAkC;QAClC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,6BAA6B,CAAC,QAAQ,CAAC,YAAY,CAAC,YAAY;aAClE,IAAI,CAAC,gEAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAChC,SAAS,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;QACL,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,WAAW,EAAE;gBACf,IAAI,CAAC,sCAAsC,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;aACvF;iBACI;gBACH,IAAI,CAAC,sCAAsC,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;gBAC5G,IAAI,CAAC,sCAAsC,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBACvE,IAAI,CAAC,sCAAsC,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;aAC9D;SACF;aAAM;YACL,IAAI,CAAC,sCAAsC,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;YAC5G,IAAI,CAAC,sCAAsC,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACvE,IAAI,CAAC,sCAAsC,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SAC9D;IACH,CAAC;IAEO,gBAAgB;QACtB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,OAAO;SACR;QACD,yBAAyB;QACzB,IAAI,MAAM,GAAG,IAAI,CAAC,6BAA6B,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC;QAC5E,IAAI,CAAC,MAAM,EAAE;YACX,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YAChD,OAAO;SACR;aAAM;YACL,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;SAC/B;QACD,mBAAmB;QACnB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAC1B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CACvE,CAAC;IACJ,CAAC;IAED,YAAY;QACV,IAAI,eAAe,GAAC,EAAE;QACtB,IAAI,iBAAiB,GAAC,EAAE;QACxB,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,sCAAsC,CAAC,IAAI,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC;YACxE,IAAI,mBAAmB,GAAG,IAAI,CAAC,sCAAsC,CAAC,IAAI,CAAC,CAAC,CAAC;YAC7E,iBAAiB,GAAC,EAAE;YACpB,KAAI,MAAM,GAAG,IAAI,mBAAmB,EAAC;gBAClC,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC;oBAC5C,IAAG,GAAG,KAAK,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,EAAC;wBACvC,IAAI,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,MAAM;wBACxC,iBAAiB,CAAC,GAAG,CAAC,GAAC,mBAAmB,CAAC,GAAG,CAAC;wBAChD,MAAK;qBACL;iBACF;aACH;YACD,eAAe,CAAC,IAAI,CAAC,iBAAiB,CAAC;SACxC;QACD,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,eAAe,EAAE,8BAA8B,CAAC,CAAC;IAC1F,CAAC;IAED,mBAAmB;QACjB,IAAI,CAAC,eAAe,GAAG;YACrB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SACb,CAAC;IACJ,CAAC;IAED,UAAU;QACR,IAAI,CAAC,6BAA6B,GAAG,IAAI,wDAAS,CAAC;YACjD,YAAY,EAAE,IAAI,0DAAW,EAAE;YAC/B,YAAY,EAAE,IAAI,0DAAW,CAAC,EAAE,CAAC;SAClC,CAAC,CAAC;IACL,CAAC;IAED,UAAU,CAAC,KAAU;QACnB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;YAC9B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC;YACnC,IAAI,CAAC,6BAA6B,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACxF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC/D,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;SACzB;IACH,CAAC;IAED,YAAY,CAAC,GAAG;QACd,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;YAC7B,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAC;SACd;QACD,IACE,IAAI,CAAC,eAAe,CAAC,MAAM;YAC3B,IAAI,CAAC,IAAI,CAAC,MAAM;YAEhB,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;IAC9B,CAAC;IAED,kBAAkB;QAChB,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;YAC7B,IAAI,CAAC,eAAe,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YAC3D,IAAI,CAAC,6BAA6B,CAAC,QAAQ,CAAC,YAAY;iBACrD,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACpC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpD,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;SACzB;aAAM;YACL,IAAI,CAAC,6BAA6B,CAAC,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YACxE,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;YAC1B,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;SACzB;IACH,CAAC;;0IAzMU,6CAA6C;6HAA7C,6CAA6C;;;kEAoB7C,8DAAO;wEACP,wEAAY;;;;;;;;QC5CzB,2EACI;QAAA;QAAA,0EACI;QAAA;QAAA,yEACI;QAAA;QAAA,yEACI;QAAA;QAAA,oFACI;QAAA;QAAA,6EAAW;QAAA,wDAA2C;QAAA,4DAAY;QAClE;QAAA,iFAEI;QADgC,oMAAmB,sBAAkB,IAAC;QACtE;QAAA,8EACI;QAAA;QAAA,uFACkE;QACtE;QAAA,4DAAa;QACb;QAAA,oFAAoE;QAA3C,0KAAS,wBAAoB,IAAC;QAAa,+DAAG;QAAA,4DAAa;QACpF;QAAA,yJAEI;;QAER;QAAA,4DAAa;QACjB;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,qEAAG;QAAA,0EAAc;QAAA,4DAAI;QACrB;QAAA,wEAAM;QAAA,wDAA+C;QAAA,4DAAO;QAChE;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,wIACI;QAER;QAAA,4DAAM;QACV;QAAA,4DAAM;QAGN;QAAA,2EACI;QAAA;QAAA,iFAEI;QAAA;QAAA,8JACI;QAIJ;QAAA,0IAAkD;QAElD;QAAA,0IAAwD;QACxD;QAAA,0IACI;QAER,4DAAQ;QACZ;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,gFAAgE;QACpE;QAAA,4DAAM;QACV;QAAA,4DAAO;QACX;QAAA,4DAAW;QACX;QAAA,mFAEI;QAAA;QAAA,yEAAmB;QAAA,uEAAW;QAAA,4DAAI;QACtC;QAAA,4DAAc;;QAvDJ,0DAA2C;QAA3C,wGAA2C;QAGrB,0DAAmC;QAAnC,uGAAmC;QACpC,0DAA2C;QAA3C,qHAA2C;QAC1C,0DAAmE;QAAnE,gIAAmE;QAMnB,0DAAW;QAAX,oEAAW;QACvD,0DAA4C;QAA5C,8JAA4C;QAS1D,2DAA+C;QAA/C,sHAA+C;QAGlD,0DAAiD;QAAjD,iHAAiD;QAQf,0DAAqD;QAArD,kHAAqD;QAE5E,0DAAmC;QAAnC,wFAAmC;QAK9B,0DAA8B;QAA9B,4FAA8B;QAErC,0DAA2C;QAA3C,6FAA2C;QAO5C,0DAAgC;QAAhC,mJAAgC;QAID,0DAAoB;QAApB,6EAAoB;;6FD9BjE,6CAA6C;cALzD,uDAAS;eAAC;gBACT,QAAQ,EAAE,+CAA+C;gBACzD,WAAW,EAAE,4DAA4D;gBACzE,SAAS,EAAE,CAAC,4DAA4D,CAAC;aAC1E;mhBAmBqB,KAAK;kBAAxB,uDAAS;mBAAC,OAAO;YACgB,WAAW;kBAA5C,uDAAS;mBAAC,aAAa;YACJ,IAAI;kBAAvB,uDAAS;mBAAC,8DAAO;YACyB,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AE5C3C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AAIA;AAEC;AACH;AACV;;;;;;;;;;;;;;ICFzC,wEAEE;IADA,gUAAwB;IACxB;IAAA,qEAAiC;IACrC;IAAA,4DAAI;;;IASE,yEAAgF;IAAA,uEAAY;IAAA,4DAAK;;;IACjG,yEAAwC;IAAA,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,mGAAwB;;;IAIhE,yEAAgF;IAAA,uEAAY;IAAA,4DAAK;;;IACjG,yEAAwC;IAAA,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,mGAAwB;;;IAIlE,yEAA+E;IAAA,qEAAU;IAAA,4DAAK;;;IAC9F,yEAAwC;IAAA,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,kGAAuB;;;IAI/D,yEAAgF;IAAA,2EAAgB;IAAA,4DAAK;;;IACrG,yEAAwC;IAAA,uDAA2B;IAAA,4DAAK;;;IAAhC,0DAA2B;IAA3B,sGAA2B;;;IAInE,yEAA+E;IAAA,4EAAiB;IAAA,4DAAK;;;IACrG,yEAAwC;IAAA,uDAAkB;IAAA,4DAAK;;;IAAvB,0DAAkB;IAAlB,6FAAkB;;;IAG1D,yEAA+E;IAAA,mEAAQ;IAAA,4DAAK;;;IAC5F,yEAAwC;IAAA,uDAAqB;IAAA,4DAAK;;;IAA1B,0DAAqB;IAArB,gGAAqB;;;IAG7D,yEAAgF;IAAA,uEAAY;IAAA,4DAAK;;;IACjG,yEAAwC;IAAA,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,mGAAwB;;;IAG9D,yEAAgF;IAAA,qEAAU;IAAA,4DAAK;;;IAC/F,yEAAwC;IAAA,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,kGAAuB;;;IAEnE,oEAA4D;;;IACxD,oEAAkE;;;IAClE,yEACI;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAChD;IAAA,4DAAK;;;ADxCX,MAAM,6BAA6B;IASxC,YAAoB,qBAA4C,EAAU,SAAsB,EAAU,mBAAuC,EAAS,UAAsB;QAA5J,0BAAqB,GAArB,qBAAqB,CAAuB;QAAU,cAAS,GAAT,SAAS,CAAa;QAAU,wBAAmB,GAAnB,mBAAmB,CAAoB;QAAS,eAAU,GAAV,UAAU,CAAY;QAPhL,6BAAwB,GAA+B,EAAE,CAAC;QAElD,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QAItD,qBAAgB,GAAa,CAAC,aAAa,EAAC,aAAa,EAAC,YAAY,EAAE,gBAAgB,EAAE,OAAO,EAAE,UAAU,EAAC,aAAa,EAAE,YAAY,CAAC,CAAC;QAEzI,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,EAAE;YAC9D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAE3B,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,qBAAqB,CAAC,0BAA0B,EAAE,CAAC,SAAS,CAC/D,CAAC,GAA+B,EAAE,EAAE;YAClC,IAAG,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE;gBAChC,IAAI,CAAC,wBAAwB,GAAG,GAAG,CAAC;gBACpC,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;gBACxE,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;aAClC;iBACI;gBACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE;oBAC3C,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAC,CAAC,eAAe,CAAC;oBAC5B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;QACH,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;YACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;gBACxD,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAC,CAAC,aAAa,CAAC;gBAC1B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CACF,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,WAAW,EAAC;gBACd,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;aACzD;iBACG;gBACJ,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;gBACxE,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBACjC,IAAI,CAAC,UAAU,CAAC,mBAAmB,GAAG,CAAC,IAAS,EAAE,YAAoB,EAAU,EAAE;oBAChF,IAAI,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,QAAQ,EAAE;wBAC1C,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,iBAAiB,EAAE,CAAC;qBAC/C;oBAED,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC;gBAC5B,CAAC,CAAC;aACD;SACJ;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACxE,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACjC,IAAI,CAAC,UAAU,CAAC,mBAAmB,GAAG,CAAC,IAAS,EAAE,YAAoB,EAAU,EAAE;gBAChF,IAAI,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,QAAQ,EAAE;oBAC1C,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,iBAAiB,EAAE,CAAC;iBAC/C;gBAED,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC;YAC5B,CAAC,CAAC;SACD;IACL,CAAC;IAED,YAAY;QACV,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,4BAA4B,CAAC,CAAC;IAC7F,CAAC;;0GAnFU,6BAA6B;6GAA7B,6BAA6B;wEAM7B,wEAAY;wEACZ,8DAAO;;;;;;QCvBd;QAAA,0EACE;QAAA;QAIA;QAAA,qHAEE;QAEJ;QAAA,4DAAO;QAAC;QAAA,gEAAI;QAAA,gEAElB;QAAA;QAAA,4EACI;QAAA;QAAA,oFACE;QAAA;QAAA,0EACE;QAAA;QAAA,+EAEE;QAAA;QAAA,4EACE;QAAA;QAAA,yHAAgF;QAChF;QAAA,yHAAwC;QAC1C;QAAA,qEAAe;QAEjB;QAAA,4EACI;QAAA;QAAA,yHAAgF;QAChF;QAAA,yHAAwC;QAC1C;QAAA,qEAAe;QAEjB;QAAA,4EACE;QAAA;QAAA,yHAA+E;QAC/E;QAAA,yHAAwC;QAC1C;QAAA,qEAAe;QAEf;QAAA,6EACE;QAAA;QAAA,yHAAgF;QAChF;QAAA,yHAAwC;QAC1C;QAAA,qEAAe;QAEf;QAAA,6EACE;QAAA;QAAA,yHAA+E;QAC/E;QAAA,yHAAwC;QAC1C;QAAA,qEAAe;QACf;QAAA,6EACE;QAAA;QAAA,yHAA+E;QAC/E;QAAA,yHAAwC;QAC1C;QAAA,qEAAe;QACf;QAAA,6EACE;QAAA;QAAA,yHAAgF;QAChF;QAAA,yHAAwC;QAC1C;QAAA,qEAAe;QACf;QAAA,6EACI;QAAA;QAAA,yHAAgF;QAChF;QAAA,yHAAwC;QAC1C;QAAA,qEAAe;QACjB;QAAA,0HAAuD;QACnD;QAAA,0HAA6D;QAC7D;QAAA,0HACI;QAER;QAAA,4DAAQ;QACV;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,gFAAgE;QACpE;QAAA,4DAAM;QACN;QAAA,4DAAmB;QACrB;QAAA,4DAAW;QACb;;QA3DW,0DAAyC;QAAzC,yGAAyC;QASH,2DAAyB;QAAzB,sFAAyB;QAsC/C,2DAAmC;QAAnC,iGAAmC;QACtC,0DAAgD;QAAhD,kGAAgD;QAOjD,0DAAgC;QAAhC,kJAAgC;;6FD5C1C,6BAA6B;cALzC,uDAAS;eAAC;gBACT,QAAQ,EAAE,2BAA2B;gBACrC,WAAW,EAAE,wCAAwC;gBACrD,SAAS,EAAE,CAAC,wCAAwC,CAAC;aACtD;6aAO4C,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACH,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AExBtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAyE;AAEF;AAGZ;AACV;AAIH;AACW;AACd;AAEV;;;;;;;;;;;;;;;;;;;;;ICDT,gFACI;IADiE,kaAA6C;IAC9G,uDACJ;IAAA,4DAAa;;;IAF4C,uEAAW;IAChE,0DACJ;IADI,6IACJ;;;;IAeZ,wEAEI;IADA,uUAA6B;IAC7B;IAAA,qEAAiC;IACrC;IAAA,4DAAI;;;IAKY,yEAAgF;IAAA,uDAChF;IAAA,4DAAK;;;IAD2E,0DAChF;IADgF,sHAChF;;;IACA,yEAAuC;IAAA,uDAAsB;IAAA,4DAAK;;;;IAA3B,0DAAsB;IAAtB,2FAAsB;;;IAHjE,4EACI;IAAA;IAAA,yIAAgF;IAEhF;IAAA,yIAAuC;IAC3C;IAAA,qEAAe;;;IAJmC,mGAA6B;;;IAK/E,oEAAuD;;;IAEvD,oEAA6D;;;IAC7D,yEACI;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAErD;IAHI,4DACI;;;;IAnB5B,sEAGY;IAAA;IAAA,uHAEI;IAGJ;IAAA,0EACQ;IAAA;IAAA,gFACI;IAAA;IAAA,+IACI;IAIJ;IAAA,2HAAkD;IAElD;IAAA,2HAAwD;IACxD;IAAA,2HACI;IAER,4DAAQ;IACZ;IAAA,4DAAM;IAEd;IAAA,2EACI;IAAA;IAAA,gFAAiE;IACrE;IAAA,4DAAM;IAEd;IAAA,4DAAM;;;IAzBS,0DAAgC;IAAhC,kGAAgC;IAMc,0DAA2B;IAA3B,2FAA2B;IAClD,0DAAmC;IAAnC,2FAAmC;IAK9B,0DAA8B;IAA9B,+FAA8B;IAErC,0DAA2C;IAA3C,gGAA2C;IAQnD,0DAAgC;IAAhC,kJAAgC;;AD/BrD,MAAM,uBAAuB;IAuBlC,YAAoB,OAAwB,EAAU,OAA0B,EAAU,SAAsB,EAAU,EAAe,EAAS,QAAkB;QAAhJ,YAAO,GAAP,OAAO,CAAiB;QAAU,YAAO,GAAP,OAAO,CAAmB;QAAU,cAAS,GAAT,SAAS,CAAa;QAAU,OAAE,GAAF,EAAE,CAAa;QAAS,aAAQ,GAAR,QAAQ,CAAU;QApBtK,aAAQ,GAAG,KAAK,CAAC;QACjB,iBAAY,GAAG,IAAI,CAAC;QAEpB,oBAAe,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QAMzC,eAAU,GAAG,IAAI,4CAAO,EAAQ,CAAC;QACzC,SAAI,GAAU,EAAE,CAAC;QAEjB,uBAAkB,GAAyB,IAAI,kDAAa,CAAQ,CAAC,CAAC,CAAC;QAGvE,kBAAa,GAAU,EAAE,CAAC;QAC1B,gBAAW,GAAG,EAAE,CAAC;QACjB,sBAAiB,GAAG,CAAC,CAAC;QACtB,oBAAe,GAAY,KAAK,CAAC;IAEuI,CAAC;IAEzK,QAAQ;QAEN,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YAE1B,YAAY,EAAE,EAAE;YAChB,YAAY,EAAE,CAAC,EAAE,CAAC;SACnB,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QAEzB,IAAI,CAAC,IAAI,GAAG;YACV,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE;YAChD,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE;YAC3C,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE;YACzC,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,iBAAiB,EAAE;YACnD,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,YAAY,EAAE;YAClD,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE;YAC3C,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE;YAC9C,EAAE,KAAK,EAAE,wBAAwB,EAAE,MAAM,EAAE,cAAc,EAAE;YAE3D,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,YAAY,EAAE;SAGpD,CAAC;QACF,IAAI,CAAC,eAAe,GAAG;YACrB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SAGb,CAAC;QACF,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAEzC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SAE9E;QACL,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,MAAM,EAAE,CAAC;QAGd,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC;QAC1B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC/D,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACpE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAEjE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,YAAY;aAC3C,IAAI,CAAC,gEAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAChC,SAAS,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;QACT,IAAI,CAAC,QAAQ,GAAG,IAAI;IAClB,CAAC;IACD,WAAW;QACT,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;IAC7B,CAAC;IACD,gBAAgB,CAAC,IAAuB;QACtC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACf,IAAI,CAAC,CAAC,eAAe,IAAI,IAAI,EAAE;gBAC7B,CAAC,CAAC,eAAe,GAAG,mCAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;aACpE;YACD,IAAI,CAAC,CAAC,aAAa,IAAI,IAAI,EAAE;gBAC3B,CAAC,CAAC,aAAa,GAAG,mCAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;aAChE;QACH,CAAC,CAAC;QACF,IAAI,CAAC,YAAY,GAAE,IAAI,0EAAkB,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3C,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACvC,CAAC;IAED,MAAM;QAEJ,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,GAAsB,EAAC,EAAE;YACvE,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;YAC1B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC3C,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC,MAAM,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YAExC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAE;YAChB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,8CAA8C,EAAE,GAAG,EAAE;gBACzE,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACtB,CAAC,CAAC;QACH,CAAC,CAAC,CAAC;QAAA,CAAC;IACN,CAAC;IACD,UAAU,CAAC,KAAU;QACnB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAC;YAC/B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACjE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC/D,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;SACvB;IACH,CAAC;IAED,YAAY,CAAC,GAAG;QACd,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;YAC7B,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAC;SACd;QACD,IACE,IAAI,CAAC,eAAe,CAAC,MAAM;YAC3B,IAAI,CAAC,IAAI,CAAC,MAAM;YAEhB,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;IAC9B,CAAC;IAED,kBAAkB;QAChB,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;YAC7B,IAAI,CAAC,eAAe,GAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAC,CAAC,CAAC,CAAC;YACzD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY;iBAC9B,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACpC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpD,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;SACzB;aAAM;YACL,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YACjD,IAAI,CAAC,eAAe,GAAC,EAAE,CAAC;YACxB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;SACzB;IACH,CAAC;IACO,gBAAgB;QACtB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,OAAO;SACR;QAED,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC;QACrD,IAAI,CAAC,MAAM,EAAE;YACX,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YAChD,OAAO;SACR;aAAM;YACL,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;SAC/B;QAED,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAC1B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CACvE,CAAC;IACJ,CAAC;IACD,MAAM,CAAC,KAAU;QAEf,IAAI,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC;QAC1D,IAAI,WAAW,EAAE;YACf,OAAO,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;SAC1G;aACI;YACH,OAAO,IAAI,CAAC,IAAI,CAAC;SAClB;IACH,CAAC;IACD,iBAAiB;QACf,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC;QACrC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACjE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC/D,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;IAG1B,CAAC;IACD,MAAM;QAGL,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAC,EAAC,QAAQ,EAAE,iBAAiB,EAAC,CAAC;QAC7D,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAE5B,CAAC;;8FAlMU,uBAAuB;uGAAvB,uBAAuB;kEAOzB,wEAAY;kEACV,8DAAO;;;;;;;;;;;;QC7BpB,8EACO;QAAA;QAAA,0EACC;QAAA;QAAA,yEACI;QAAA;QAAA,yEAGI;QAAA;QAAA,oFACI;QAAA;QAAA,6EAAW;QAAA,wDAA2C;QAAA,4DAAY;QAClE;QAAA,iFACI;QADkH,8KAAmB,sBAAkB,IAAC;QACxJ;QAAA,8EACI;QAAA;QAAA,uFAA8I;QAClJ;QAAA,4DAAa;QACb;QAAA,oFAAoE;QAA3C,oJAAS,wBAAoB,IAAC;QAAa,+DAAG;QAAA,4DAAa;QACpF;QAAA,mIACI;;QAER;QAAA,4DAAa;QACjB;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,2EACI;QAAA;QAAA,qEAAG;QAAA,0EAAc;QAAA,4DAAI;QACrB;QAAA,wEAAM;QAAA,wDAA+C;QAAA,4DAAO;QAChE;QAAA,4DAAM;QACV;QAAA,4DAAM;QACV;QAAA,4DAAM;QACN;QAAA,4DAAO;QACf;QAAA,uHAGY;QA0BZ;QAAA,4DAAW;;QAvDE,0DAAoB;QAApB,iFAAoB;QAKD,0DAAkC;QAAlC,sGAAkC;QACnC,0DAA2C;QAA3C,qHAA2C;QAC1C,0DAA4C;QAA5C,yGAA4C;QAII,0DAAW;QAAX,oEAAW;QACvD,0DAA4C;QAA5C,6JAA4C;QAStD,2DAA+C;QAA/C,sHAA+C;QAKpE,0DAAgB;QAAhB,8EAAgB;;6FDNR,uBAAuB;cALnC,uDAAS;eAAC;gBACT,QAAQ,EAAE,qBAAqB;gBAC/B,WAAW,EAAE,kCAAkC;gBAC/C,SAAS,EAAE,CAAC,kCAAkC,CAAC;aAChD;0aAQ2C,SAAS;kBAApD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;YACD,IAAI;kBAA1C,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;YACH,WAAW;kBAA5C,uDAAS;mBAAC,aAAa;YACJ,KAAK;kBAAxB,uDAAS;mBAAC,OAAO;YACK,QAAQ;kBAA9B,uDAAS;mBAAC,UAAU;;;;;;;;;;;;;;AEhCvB;AAAA;AAAA;AAAA;AAAkD;;;AAO3C,MAAM,gBAAgB;IAE3B,gBAAgB,CAAC;IAEjB,QAAQ;IACR,CAAC;;gFALU,gBAAgB;gGAAhB,gBAAgB;QCP7B,yEACI;QAAA;QAAA,2EAA+B;QACnC;QAAA,4DAAM;QACN;;6FDIa,gBAAgB;cAL5B,uDAAS;eAAC;gBACT,QAAQ,EAAE,aAAa;gBACvB,WAAW,EAAE,0BAA0B;gBACvC,SAAS,EAAE,CAAC,0BAA0B,CAAC;aACxC;;;;;;;;;;;;;;AEND;AAAA;AAAA;AAAkD;;AAO3C,MAAM,8BAA8B;IAEzC,gBAAgB,CAAC;IAEjB,QAAQ;IACR,CAAC;;4GALU,8BAA8B;8GAA9B,8BAA8B;QCP3C,oEAAG;QAAA,0FAA+B;QAAA,4DAAI;QACtC;;6FDMa,8BAA8B;cAL1C,uDAAS;eAAC;gBACT,QAAQ,EAAE,8BAA8B;gBACxC,WAAW,EAAE,2CAA2C;gBACxD,SAAS,EAAE,CAAC,2CAA2C,CAAC;aACzD;;;;;;;;;;;;;;AEND;AAAA;AAAA;AAAkD;;AAO3C,MAAM,gCAAgC;IAE3C,gBAAgB,CAAC;IAEjB,QAAQ;IACR,CAAC;;gHALU,gCAAgC;gHAAhC,gCAAgC;QCP7C,oEAAG;QAAA,4FAAiC;QAAA,4DAAI;QACxC;;6FDMa,gCAAgC;cAL5C,uDAAS;eAAC;gBACT,QAAQ,EAAE,gCAAgC;gBAC1C,WAAW,EAAE,6CAA6C;gBAC1D,SAAS,EAAE,CAAC,6CAA6C,CAAC;aAC3D;;;;;;;;;;;;;;AEND;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AAGC;AACb;AACsB;AACZ;AACE;AAOL;AACC;AACX;AACH;;;;;;;;;;;;;;;;;;;;;;ICJnB,gFAEI;IADA,ubAA6C;IAC7C,uDACJ;IAAA,4DAAa;;;IAH4C,uEAAW;IAEhE,0DACJ;IADI,6IACJ;;;;IASR,wEACI;IAD8C,6UAAwB;IACtE;IAAA,qEAAiC;IACrC;IAAA,4DAAI;;;IASA,yEAA+E;IAAA,uDAC/E;IAAA,4DAAK;;;IAD0E,0DAC/E;IAD+E,8GAC/E;;;IACA,yEAAuC;IAAA,uDAAsB;IAAA,4DAAK;;;;IAA3B,0DAAsB;IAAtB,2FAAsB;;;IAHjE,4EACI;IAAA;IAAA,oJAA+E;IAE/E;IAAA,oJAAuC;IAC3C;IAAA,qEAAe;;;IAJmC,mGAA6B;;;IAK/E,oEAAuD;;;IAEvD,oEAA6D;;;IAC7D,yEACI;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAErD;IAHI,4DACI;;;ADlBb,MAAM,yCAAyC;IAwBpD,YAAoB,8BAA6D,EAAU,UAAsB,EAAU,OAA0B,EAAS,mBAAuC,EAAU,SAAsB;QAAjN,mCAA8B,GAA9B,8BAA8B,CAA+B;QAAU,eAAU,GAAV,UAAU,CAAY;QAAU,YAAO,GAAP,OAAO,CAAmB;QAAS,wBAAmB,GAAnB,mBAAmB,CAAoB;QAAU,cAAS,GAAT,SAAS,CAAa;QAvBrO,qBAAgB,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QAEpD,uBAAkB,GAAyB,IAAI,kDAAa,CAAQ,CAAC,CAAC,CAAC;QACvE,SAAI,GAAU,EAAE,CAAC;QAGV,kCAA6B,GAAkB,EAAE;QACxD,iBAAY,GAAyB,EAAE,CAAC,CAAC,oDAAoD;QAE7F,eAAU,GAAG,+DAAa,CAAC;QAE3B,iBAAY,GAAa,EAAE,CAAC;QAC5B,uBAAkB,GAAY,KAAK,CAAC;QAC5B,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QAE9C,eAAU,GAAG,IAAI,4CAAO,EAAQ,CAAC;QASvC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;QAChD,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE;YAC5D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;QACnB,IAAI,CAAC,8BAA8B,CAAC,yBAAyB,EAAE,CAAC,SAAS,CACvE,CAAC,QAAuB,EAAE,EAAE;YAC1B,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YACnB,IAAI,CAAC,6BAA6B,GAAG,QAAQ,CAAC;YAC9C,IAAI,CAAC,6BAA6B,CAAC,OAAO,CAAC,CAAC,GAAgB,EAAE,EAAE;gBAC9D,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACrD,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,6BAA6B,CAAC,MAAM;YAClE,IAAI,CAAC,mCAAmC,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YACtG,IAAI,CAAC,mCAAmC,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACpE,IAAI,CAAC,mCAAmC,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAC5D,CAAC,EACD,CAAC,KAAK,GAAE;YACN,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,KAAK,CAAC,KAAK,IAAI,SAAS,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE;gBAC/C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;oBACpC,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,6CAA6C,CAAC,EAAE,kBAAkB,EAAE,OAAO;oBACxG,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;iBACD;gBACF,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,+CAA+C,EAAE,GAAG,EAAE;oBACxE,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;IACP,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,IAAI,GAAG;YAEV,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE;YACvC,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE;YAC1C,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE;YAC/C,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;YACnC,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE;YAC7C,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE;YAC3C,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;YACnC,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE;SAC9C,CAAC;QACF,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC/D,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACrF,kCAAkC;QAClC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,YAAY,CAAC,YAAY;aAC/D,IAAI,CAAC,gEAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAChC,SAAS,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;QACL,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAEO,gBAAgB;QACtB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,OAAO;SACR;QACD,yBAAyB;QACzB,IAAI,MAAM,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC;QACzE,IAAI,CAAC,MAAM,EAAE;YACX,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YAChD,OAAO;SACR;aAAM;YACL,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;SAC/B;QACD,mBAAmB;QACnB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAC1B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CACvE,CAAC;IACJ,CAAC;IAED,mBAAmB;QACjB,IAAI,CAAC,eAAe,GAAG;YAErB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SACb,CAAC;IACJ,CAAC;IAED,UAAU;QACR,IAAI,CAAC,0BAA0B,GAAG,IAAI,wDAAS,CAAC;YAC9C,YAAY,EAAE,IAAI,0DAAW,EAAE;YAC/B,YAAY,EAAE,IAAI,0DAAW,CAAC,EAAE,CAAC;SAClC,CAAC,CAAC;IACL,CAAC;IAED,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,WAAW,EAAE;gBACf,IAAI,CAAC,mCAAmC,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;aACpF;iBACI;gBACH,IAAI,CAAC,mCAAmC,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;gBACtG,IAAI,CAAC,mCAAmC,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBACpE,IAAI,CAAC,mCAAmC,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;aAC3D;SACF;aAAM;YACL,IAAI,CAAC,mCAAmC,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YACtG,IAAI,CAAC,mCAAmC,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACpE,IAAI,CAAC,mCAAmC,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SAC3D;IACH,CAAC;IAED,YAAY;QACV,IAAI,eAAe,GAAC,EAAE;QACtB,IAAI,iBAAiB,GAAC,EAAE;QACxB,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,mCAAmC,CAAC,IAAI,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC;YACrE,IAAI,mBAAmB,GAAG,IAAI,CAAC,mCAAmC,CAAC,IAAI,CAAC,CAAC,CAAC;YAC1E,iBAAiB,GAAC,EAAE;YACpB,KAAI,MAAM,GAAG,IAAI,mBAAmB,EAAC;gBAClC,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC;oBAC5C,IAAG,GAAG,KAAK,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,EAAC;wBACvC,IAAI,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,MAAM;wBACxC,iBAAiB,CAAC,GAAG,CAAC,GAAC,mBAAmB,CAAC,GAAG,CAAC;wBAChD,MAAK;qBACL;iBACF;aACH;YACD,eAAe,CAAC,IAAI,CAAC,iBAAiB,CAAC;SACxC;QACD,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,eAAe,EAAE,0BAA0B,CAAC,CAAC;IACtF,CAAC;IAED,UAAU,CAAC,KAAU;QACnB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;YAC9B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC;YACnC,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACrF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC/D,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;SACzB;IACH,CAAC;IAED,YAAY,CAAC,GAAG;QACd,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;YAC7B,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAC;SACd;QACD,IACE,IAAI,CAAC,eAAe,CAAC,MAAM;YAC3B,IAAI,CAAC,IAAI,CAAC,MAAM;YAEhB,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;IAC9B,CAAC;IAED,kBAAkB;QAChB,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;YAC7B,IAAI,CAAC,eAAe,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YAC3D,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,YAAY;iBAClD,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACpC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpD,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;SACzB;aAAM;YACL,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YACrE,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;YAC1B,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;SACzB;IACH,CAAC;;kIA1MU,yCAAyC;yHAAzC,yCAAyC;;;kEAqBzC,8DAAO;wEACP,wEAAY;;;;;;;;QChDzB,2EACI;QAAA;QAAA,0EACI;QAAA;QAAA,yEACI;QAAA;QAAA,yEACI;QAAA;QAAA,oFACI;QAAA;QAAA,6EAAW;QAAA,wDAA2C;QAAA,4DAAY;QAClE;QAAA,iFAEI;QADgC,gMAAmB,sBAAkB,IAAC;QACtE;QAAA,8EACI;QAAA;QAAA,uFACkE;QACtE;QAAA,4DAAa;QACb;QAAA,oFAAoE;QAA3C,sKAAS,wBAAoB,IAAC;QAAa,+DAAG;QAAA,4DAAa;QACpF;QAAA,qJAEI;;QAER;QAAA,4DAAa;QACjB;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,qEAAG;QAAA,0EAAc;QAAA,4DAAI;QACrB;QAAA,wEAAM;QAAA,wDAA+C;QAAA,4DAAO;QAChE;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,oIACI;QAER;QAAA,4DAAM;QACV;QAAA,4DAAM;QAGN;QAAA,2EACI;QAAA;QAAA,iFAEI;QAAA;QAAA,0JACI;QAIJ;QAAA,sIAAkD;QAElD;QAAA,sIAAwD;QACxD;QAAA,sIACI;QAER,4DAAQ;QACZ;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,gFAAgE;QACpE;QAAA,4DAAM;QACV;QAAA,4DAAO;QACX;QAAA,4DAAW;QACX;QAAA,mFAEI;QAAA;QAAA,yEAAmB;QAAA,uEAAW;QAAA,4DAAI;QACtC;QAAA,4DAAc;;QAvDJ,0DAAwC;QAAxC,qGAAwC;QAGlB,0DAAmC;QAAnC,uGAAmC;QACpC,0DAA2C;QAA3C,qHAA2C;QAC1C,0DAAgE;QAAhE,6HAAgE;QAMhB,0DAAW;QAAX,oEAAW;QACvD,0DAA4C;QAA5C,8JAA4C;QAS1D,2DAA+C;QAA/C,sHAA+C;QAGlD,0DAA8C;QAA9C,8GAA8C;QAQZ,0DAAkD;QAAlD,+GAAkD;QAEzE,0DAAmC;QAAnC,wFAAmC;QAK9B,0DAA8B;QAA9B,4FAA8B;QAErC,0DAA2C;QAA3C,6FAA2C;QAO5C,0DAAgC;QAAhC,mJAAgC;QAID,0DAAoB;QAApB,6EAAoB;;6FD3BjE,yCAAyC;cANrD,uDAAS;eAAC;gBACT,QAAQ,EAAE,yCAAyC;gBACnD,WAAW,EAAE,sDAAsD;gBACnE,SAAS,EAAE,CAAC,sDAAsD,CAAC;aAEpE;8fAoBqB,KAAK;kBAAxB,uDAAS;mBAAC,OAAO;YACgB,WAAW;kBAA5C,uDAAS;mBAAC,aAAa;YACJ,IAAI;kBAAvB,uDAAS;mBAAC,8DAAO;YACyB,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AEhD3C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AAEC;AACS;AACtB;AACU;AAOH;AACC;AACX;AACH;AACV;;;;;;;;;;;;;;;;;;;;;;ICHT,gFAEI;IADA,0bAA6C;IAC7C,uDACJ;IAAA,4DAAa;;;IAH4C,uEAAW;IAEhE,0DACJ;IADI,6IACJ;;;;IASR,wEACI;IADiD,gVAAwB;IACzE;IAAA,qEAAiC;IACrC;IAAA,4DAAI;;;IASA,yEAA+E;IAAA,uDAC/E;IAAA,4DAAK;;;IAD0E,0DAC/E;IAD+E,8GAC/E;;;IACA,yEAAuC;IAAA,uDAAsB;IAAA,4DAAK;;;;IAA3B,0DAAsB;IAAtB,2FAAsB;;;IAHjE,4EACI;IAAA;IAAA,uJAA+E;IAE/E;IAAA,uJAAuC;IAC3C;IAAA,qEAAe;;;IAJmC,mGAA6B;;;IAK/E,oEAAuD;;;IAEvD,oEAA6D;;;IAC7D,yEACI;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAErD;IAHI,4DACI;;;ADrBb,MAAM,4CAA4C;IAuBvD,YAAoB,iCAAmE,EAAU,UAAsB,EAAU,OAA0B,EAAS,mBAAuC,EAAU,SAAsB;QAAvN,sCAAiC,GAAjC,iCAAiC,CAAkC;QAAU,eAAU,GAAV,UAAU,CAAY;QAAU,YAAO,GAAP,OAAO,CAAmB;QAAS,wBAAmB,GAAnB,mBAAmB,CAAoB;QAAU,cAAS,GAAT,SAAS,CAAa;QArB3O,qBAAgB,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QAEpD,uBAAkB,GAAyB,IAAI,kDAAa,CAAQ,CAAC,CAAC,CAAC;QACvE,SAAI,GAAU,EAAE,CAAC;QAGV,qCAAgC,GAAkB,EAAE;QAE3D,iBAAY,GAAa,EAAE,CAAC;QAC5B,uBAAkB,GAAY,KAAK,CAAC;QAC5B,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QAI9C,eAAU,GAAG,IAAI,4CAAO,EAAQ,CAAC;QAQvC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;QAChD,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE;YAC5D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;QACnB,IAAI,CAAC,iCAAiC,CAAC,4BAA4B,EAAE,CAAC,SAAS,CAC7E,CAAC,QAAuB,EAAE,EAAE;YAC1B,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YACnB,IAAI,CAAC,gCAAgC,GAAG,QAAQ,CAAC;YACjD,IAAI,CAAC,gCAAgC,CAAC,OAAO,CAAC,CAAC,GAAgB,EAAE,EAAE;gBACjE,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACnD,GAAG,CAAC,QAAQ,GAAG,mCAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBACzD,GAAG,CAAC,0BAA0B,GAAG,GAAG,CAAC,0BAA0B,IAAI,mCAAM,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACjI,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,gCAAgC,CAAC,MAAM;YACrE,IAAI,CAAC,sCAAsC,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;YAC5G,IAAI,CAAC,sCAAsC,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACvE,IAAI,CAAC,sCAAsC,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAC/D,CAAC,EACD,CAAC,KAAK,GAAE;YACN,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,KAAK,CAAC,KAAK,IAAI,SAAS,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE;gBAC/C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;oBACpC,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,iDAAiD,CAAC,EAAE,kBAAkB,EAAE,OAAO;oBAC5G,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;iBACD;gBACF,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,+CAA+C,EAAE,GAAG,EAAE;oBACxE,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;IACP,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,IAAI,GAAG;YACV,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE;YACvC,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE;YAC1C,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE;YAC/C,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;YACnC,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE;YAC7C,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE;YAC3C,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;YACnC,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE;YAE7C,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,iBAAiB,EAAE;YAChD,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE;YACzC,EAAE,KAAK,EAAE,oBAAoB,EAAE,MAAM,EAAE,UAAU,EAAE;YACnD,EAAE,KAAK,EAAE,oBAAoB,EAAE,MAAM,EAAE,UAAU,EAAE;YACnD,EAAE,KAAK,EAAE,sBAAsB,EAAE,MAAM,EAAE,iBAAiB,EAAE;YAC5D,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE;YACrC,EAAE,KAAK,EAAE,sBAAsB,EAAE,MAAM,EAAE,mBAAmB,EAAE;YAC9D,EAAE,KAAK,EAAE,oBAAoB,EAAE,MAAM,EAAE,iBAAiB,EAAE;YAC1D,uDAAuD;YACvD,4DAA4D;YAC5D,6DAA6D;YAC7D,0DAA0D;YAC1D,yDAAyD;YACzD,iEAAiE;YACjE,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,gBAAgB,EAAC;YACvD,EAAE,KAAK,EAAE,4BAA4B,EAAE,MAAM,EAAE,qCAAqC,EAAC;SAEtF,CAAC;QACF,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC/D,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,6BAA6B,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACxF,kCAAkC;QAClC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,6BAA6B,CAAC,QAAQ,CAAC,YAAY,CAAC,YAAY;aAClE,IAAI,CAAC,gEAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAChC,SAAS,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;QACL,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,WAAW,EAAE;gBACf,IAAI,CAAC,sCAAsC,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;aACvF;iBACI;gBACH,IAAI,CAAC,sCAAsC,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;gBAC5G,IAAI,CAAC,sCAAsC,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBACvE,IAAI,CAAC,sCAAsC,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;aAC9D;SACF;aAAM;YACL,IAAI,CAAC,sCAAsC,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;YAC5G,IAAI,CAAC,sCAAsC,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACvE,IAAI,CAAC,sCAAsC,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SAC9D;IACH,CAAC;IAEO,gBAAgB;QACtB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,OAAO;SACR;QACD,yBAAyB;QACzB,IAAI,MAAM,GAAG,IAAI,CAAC,6BAA6B,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC;QAC5E,IAAI,CAAC,MAAM,EAAE;YACX,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YAChD,OAAO;SACR;aAAM;YACL,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;SAC/B;QACD,mBAAmB;QACnB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAC1B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CACvE,CAAC;IACJ,CAAC;IAED,YAAY;QACV,IAAI,eAAe,GAAC,EAAE;QACtB,IAAI,iBAAiB,GAAC,EAAE;QACxB,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,sCAAsC,CAAC,IAAI,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC;YACxE,IAAI,mBAAmB,GAAG,IAAI,CAAC,sCAAsC,CAAC,IAAI,CAAC,CAAC,CAAC;YAC7E,iBAAiB,GAAC,EAAE;YACpB,KAAI,MAAM,GAAG,IAAI,mBAAmB,EAAC;gBAClC,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC;oBAC5C,IAAG,GAAG,KAAK,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,EAAC;wBACvC,IAAI,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,MAAM;wBACxC,iBAAiB,CAAC,GAAG,CAAC,GAAC,mBAAmB,CAAC,GAAG,CAAC;wBAChD,MAAK;qBACL;iBACF;aACH;YACD,eAAe,CAAC,IAAI,CAAC,iBAAiB,CAAC;SACxC;QACD,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,eAAe,EAAE,8BAA8B,CAAC,CAAC;IAC1F,CAAC;IAED,mBAAmB;QACjB,IAAI,CAAC,eAAe,GAAG;YAErB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SACb,CAAC;IACJ,CAAC;IAED,UAAU;QACR,IAAI,CAAC,6BAA6B,GAAG,IAAI,wDAAS,CAAC;YACjD,YAAY,EAAE,IAAI,0DAAW,EAAE;YAC/B,YAAY,EAAE,IAAI,0DAAW,CAAC,EAAE,CAAC;SAClC,CAAC,CAAC;IACL,CAAC;IAED,UAAU,CAAC,KAAU;QACnB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;YAC9B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC;YACnC,IAAI,CAAC,6BAA6B,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACxF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC/D,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;SACzB;IACH,CAAC;IAED,YAAY,CAAC,GAAG;QACd,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;YAC7B,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAC;SACd;QACD,IACE,IAAI,CAAC,eAAe,CAAC,MAAM;YAC3B,IAAI,CAAC,IAAI,CAAC,MAAM;YAEhB,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;IAC9B,CAAC;IAED,kBAAkB;QAChB,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;YAC7B,IAAI,CAAC,eAAe,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YAC3D,IAAI,CAAC,6BAA6B,CAAC,QAAQ,CAAC,YAAY;iBACrD,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACpC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpD,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;SACzB;aAAM;YACL,IAAI,CAAC,6BAA6B,CAAC,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YACxE,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;YAC1B,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;SACzB;IACH,CAAC;;wIA5NU,4CAA4C;4HAA5C,4CAA4C;;;kEAoB5C,8DAAO;wEACP,wEAAY;;;;;;;;QC5CzB,2EACI;QAAA;QAAA,0EACI;QAAA;QAAA,yEACI;QAAA;QAAA,yEACI;QAAA;QAAA,oFACI;QAAA;QAAA,6EAAW;QAAA,wDAA2C;QAAA,4DAAY;QAClE;QAAA,iFAEI;QADgC,mMAAmB,sBAAkB,IAAC;QACtE;QAAA,8EACI;QAAA;QAAA,uFACkE;QACtE;QAAA,4DAAa;QACb;QAAA,oFAAoE;QAA3C,yKAAS,wBAAoB,IAAC;QAAa,+DAAG;QAAA,4DAAa;QACpF;QAAA,wJAEI;;QAER;QAAA,4DAAa;QACjB;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,qEAAG;QAAA,0EAAc;QAAA,4DAAI;QACrB;QAAA,wEAAM;QAAA,wDAA+C;QAAA,4DAAO;QAChE;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,uIACI;QAER;QAAA,4DAAM;QACV;QAAA,4DAAM;QAGN;QAAA,2EACI;QAAA;QAAA,iFAEI;QAAA;QAAA,6JACI;QAIJ;QAAA,yIAAkD;QAElD;QAAA,yIAAwD;QACxD;QAAA,yIACI;QAER,4DAAQ;QACZ;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,gFAAgE;QACpE;QAAA,4DAAM;QACV;QAAA,4DAAO;QACX;QAAA,4DAAW;QACX;QAAA,mFAEI;QAAA;QAAA,yEAAmB;QAAA,uEAAW;QAAA,4DAAI;QACtC;QAAA,4DAAc;;QAvDJ,0DAA2C;QAA3C,wGAA2C;QAGrB,0DAAmC;QAAnC,uGAAmC;QACpC,0DAA2C;QAA3C,qHAA2C;QAC1C,0DAAmE;QAAnE,gIAAmE;QAMnB,0DAAW;QAAX,oEAAW;QACvD,0DAA4C;QAA5C,8JAA4C;QAS1D,2DAA+C;QAA/C,sHAA+C;QAGlD,0DAAiD;QAAjD,iHAAiD;QAQf,0DAAqD;QAArD,kHAAqD;QAE5E,0DAAmC;QAAnC,wFAAmC;QAK9B,0DAA8B;QAA9B,4FAA8B;QAErC,0DAA2C;QAA3C,6FAA2C;QAO5C,0DAAgC;QAAhC,mJAAgC;QAID,0DAAoB;QAApB,6EAAoB;;6FD9BjE,4CAA4C;cALxD,uDAAS;eAAC;gBACT,QAAQ,EAAE,6CAA6C;gBACvD,WAAW,EAAE,0DAA0D;gBACvE,SAAS,EAAE,CAAC,0DAA0D,CAAC;aACxE;mhBAmBqB,KAAK;kBAAxB,uDAAS;mBAAC,OAAO;YACgB,WAAW;kBAA5C,uDAAS;mBAAC,aAAa;YACJ,IAAI;kBAAvB,uDAAS;mBAAC,8DAAO;YACyB,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AE5C3C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AAEoB;AAI0D;AAElF;AACI;AAEZ;AAEhB;AAGe;AAGf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICVd,6EAEA;IAFuD,0UAAsB;IAE7E;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC1B;IAAA,4DAAS;;;;IAEN,iFACA;IADa,iYAAiC;IAC9C,uDACA;IAAA,4DAAa;;;IAFyH,iFAAoB;IAC1J,0DACA;IADA,wIACA;;;;IAKN,6EACA;IADoD,8UAA0B;IAC9E;IAAA,2EAAU;IAAA,qEAAU;IAAA,4DAAW;IAC/B,mGACA;IAAA,4DAAS;;;IASH;IAAA,+EAAmC;IAAA,oEAAS;IAAA,4DAAW;IACvD,2GACH;;;IAOG;IAAA,+EAAmC;IAAA,oEAAS;IAAA,4DAAW;IACvD,2GACH;;;IAWG,yEAAgF;IAAA,gGAChF;IAAA,4DAAK;;;IACL,yEAAkD;IAAA,uDAAkC;IAAA,4DAAK;;;IAAvC,0DAAkC;IAAlC,mGAAkC;;;IAGpF,yEAA+E;IAAA,6HAE/E;IAAA,4DAAK;;;IACL,yEAAkD;IAAA,uDAAoC;IAAA,4DAAK;;;IAAzC,0DAAoC;IAApC,qGAAoC;;;IAGtF,yEAAgF;IAAA,+HAEhF;IAAA,4DAAK;;;IACL,yEAAkD;IAAA,uDAAoC;IAAA,4DAAK;;;IAAzC,0DAAoC;IAApC,qGAAoC;;;IAGtF,yEAA+E;IAAA,4IAE/E;IAAA,4DAAK;;;IACL,yEAAkD;IAAA,uDAClD;IAAA,4DAAK;;;IAD6C,0DAClD;IADkD,iJAClD;;;IAGF,yEAA+E;IAAA,4IAE/E;IAAA,4DAAK;;;IACL,yEAAkD;IAAA,uDAClD;IAAA,4DAAK;;;IAD6C,0DAClD;IADkD,kJAClD;;;IAED,oEAA8E;;;IAC9E,oEAAoF;;;IACpF,yEACG;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAChD;IAAA,4DAAK;;;IArCX,0EACG;IAAA;IAAA,4EACG;IAAA;IAAA,4EACG;IAAA;IAAA,gIAAgF;IAEhF;IAAA,gIAAkD;IACrD;IAAA,qEAAe;IACf;IAAA,6EACG;IAAA;IAAA,kIAA+E;IAG/E;IAAA,kIAAkD;IACrD;IAAA,qEAAe;IACf;IAAA,6EACG;IAAA;IAAA,kIAAgF;IAGhF;IAAA,kIAAkD;IACrD;IAAA,qEAAe;IACf;IAAA,6EACG;IAAA;IAAA,kIAA+E;IAG/E;IAAA,kIAAkD;IAErD;IAAA,qEAAe;IACf;IAAA,6EACC;IAAA;IAAA,kIAA+E;IAG/E;IAAA,kIAAkD;IAErD;IAAA,qEAAe;IACb;IAAA,kIAAyE;IACzE;IAAA,kIAA+E;IAC/E;IAAA,kIACG;IAEN;IAAA,4DAAQ;IACX;IAAA,4DAAM;;;IAtCc,0DAA2C;IAA3C,2GAA2C;IAgCtC,2DAAqD;IAArD,sHAAqD;IAC5D,0DAAkE;IAAlE,uHAAkE;;;IAW3E,yEAAgF;IAAA,4HAEhF;IAAA,4DAAK;;;IACL,yEACG;IAAA,uDACH;IAAA,4DAAK;;;IADF,0DACH;IADG,yKACH;;;IAGA,yEAAgF;IAAA,4HAEhF;IAAA,4DAAK;;;IACL,yEACG;IAAA,uDACH;IAAA,4DAAK;;;IADF,0DACH;IADG,yKACH;;;IAGA,yEAAgF;IAAA,gGAChF;IAAA,4DAAK;;;IACL,yEACG;IAAA,uDACH;IAAA,4DAAK;;;IADF,0DACH;IADG,gLACH;;;IAGA,yEAAgF;IAAA,iIAEhF;IAAA,4DAAK;;;IACL,yEACG;IAAA,uDACH;IAAA,4DAAK;;;IADF,0DACH;IADG,iLACH;;;IAGA,yEAA+E;IAAA,kEAAO;IAAA,4DAAK;;;IAC3F,yEACG;IAAA,uDACH;IAAA,4DAAK;;;IADF,0DACH;IADG,4KACH;;;IAGA,yEAA+E;IAAA,mEAAQ;IAAA,4DAAK;;;IAC5F,yEACG;IAAA,uDACH;IAAA,4DAAK;;;IADF,0DACH;IADG,8KACH;;;IAGF,yEAA+E;IAAA,0EAAe;IAAA,4DAAK;;;IACnG,yEACG;IAAA,uDACH;IAAA,4DAAK;;;IADF,0DACH;IADG,qKACH;;;IAED,oEAAgF;;;IAChF,oEAAsF;;;IACtF,yEACG;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAChD;IAAA,4DAAK;;;IAWF,yEAAgF;IAAA,4HAEhF;IAAA,4DAAK;;;IACL,yEACG;IAAA,uDACH;IAAA,4DAAK;;;IADF,0DACH;IADG,4KACH;;;IAGA,yEAAgF;IAAA,4HAEhF;IAAA,4DAAK;;;IACL,yEACG;IAAA,uDACH;IAAA,4DAAK;;;IADF,0DACH;IADG,4KACH;;;IAGA,yEAAgF;IAAA,gGAChF;IAAA,4DAAK;;;IACL,yEACG;IAAA,uDACH;IAAA,4DAAK;;;IADF,0DACH;IADG,oLACH;;;IAGA,yEAAgF;IAAA,iIAEhF;IAAA,4DAAK;;;IACL,yEACG;IAAA,uDACH;IAAA,4DAAK;;;IADF,0DACH;IADG,qLACH;;;IAGA,yEAA+E;IAAA,kEAAO;IAAA,4DAAK;;;IAC3F,yEACG;IAAA,uDACH;IAAA,4DAAK;;;IADF,0DACH;IADG,gLACH;;;IAGA,yEAA+E;IAAA,mEAAQ;IAAA,4DAAK;;;IAC5F,yEACG;IAAA,uDACH;IAAA,4DAAK;;;IADF,0DACH;IADG,kLACH;;;IAGF,yEAA+E;IAAA,0EAAe;IAAA,4DAAK;;;IACnG,yEACG;IAAA,uDACH;IAAA,4DAAK;;;IADF,0DACH;IADG,yKACH;;;IAED,oEAAgF;;;IAChF,oEAAsF;;;IACtF,yEACG;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAChD;IAAA,4DAAK;;;IAWF,yEAAgF;IAAA,4HAEhF;IAAA,4DAAK;;;IACL,yEACG;IAAA,uDACH;IAAA,4DAAK;;;IADF,0DACH;IADG,wLACH;;;IAGA,yEAAgF;IAAA,4HAEhF;IAAA,4DAAK;;;IACL,yEACG;IAAA,uDACH;IAAA,4DAAK;;;IADF,0DACH;IADG,wLACH;;;IAGA,yEAAgF;IAAA,gGAChF;IAAA,4DAAK;;;IACL,yEACG;IAAA,uDACH;IAAA,4DAAK;;;IADF,0DACH;IADG,+LACH;;;IAGA,yEAAgF;IAAA,iIAEhF;IAAA,4DAAK;;;IACL,yEACG;IAAA,uDACH;IAAA,4DAAK;;;IADF,0DACH;IADG,gMACH;;;IAGA,yEAA+E;IAAA,kEAAO;IAAA,4DAAK;;;IAC3F,yEACG;IAAA,uDACH;IAAA,4DAAK;;;IADF,0DACH;IADG,2LACH;;;IAGA,yEAA+E;IAAA,mEAAQ;IAAA,4DAAK;;;IAC5F,yEACG;IAAA,uDACH;IAAA,4DAAK;;;IADF,0DACH;IADG,6LACH;;;IAGF,yEAA+E;IAAA,0EAAe;IAAA,4DAAK;;;IACnG,yEACG;IAAA,uDACH;IAAA,4DAAK;;;IADF,0DACH;IADG,oLACH;;;IAED,oEAAgF;;;IAChF,oEAAsF;;;IACtF,yEACG;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAChD;IAAA,4DAAK;;;;ADjPjB,MAAM,8BAA8B;IAyCzC,YAAoB,QAAwB,EAClC,EAAe,EACf,uBAA8C,EAC9C,cAA6B,EAC7B,SAAsB,EACtB,kBAAqC,EACtC,UAAsB,EACrB,MAAc,EAAS,OAA0B;QAPvC,aAAQ,GAAR,QAAQ,CAAgB;QAClC,OAAE,GAAF,EAAE,CAAa;QACf,4BAAuB,GAAvB,uBAAuB,CAAuB;QAC9C,mBAAc,GAAd,cAAc,CAAe;QAC7B,cAAS,GAAT,SAAS,CAAa;QACtB,uBAAkB,GAAlB,kBAAkB,CAAmB;QACtC,eAAU,GAAV,UAAU,CAAY;QACrB,WAAM,GAAN,MAAM,CAAQ;QAAS,YAAO,GAAP,OAAO,CAAmB;QA9C3D,iBAAY,GAAG,CAAC,CAAC;QACjB,qBAAgB,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QAEpD,cAAS,GAAW,CAAC,CAAC;QACtB,mBAAc,GAAa,KAAK,CAAC;QACjC,mBAAc,GAAa,KAAK,CAAC;QACzB,cAAS,GAAW,KAAK,CAAC;QAElC,iBAAY,GAAiB,EAAE,CAAC;QAChC,aAAQ,GAAkB,EAAE,CAAC;QAC7B,2BAAsB,GAAsB,EAAE,CAAC;QAC/C,mCAA8B,GAAgC,EAAE,CAAC;QACjE,8CAAyC,GAAgC,EAAE,CAAC;QAC5E,iDAA4C,GAAgC,EAAE,CAAC;QAuB/E,uCAAkC,GAAa,CAAC,aAAa,EAAC,eAAe,EAAC,eAAe,EAAC,0BAA0B,EAAC,6BAA6B,CAAC,CAAC;QACxJ,yCAAoC,GAAa,CAAC,eAAe,EAAC,eAAe,EAAC,sBAAsB,EAAC,uBAAuB,EAAC,kBAAkB,EAAC,oBAAoB,EAAC,eAAe,CAAC,CAAC;QAUtL,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;QAExC,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE;YAC5D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACP,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpF,IAAG,IAAI,CAAC,SAAS,GAAG,CAAC,EAAC;YACpB,IAAI,CAAC,SAAS,GAAC,IAAI,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACxC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACtC;QACD,0BAA0B;QAC1B,2DAA2D;QAC3D,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,cAAc,EAAE,CAAC;QAC9D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YAChC,SAAS,EAAE,IAAI,0DAAW,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC;SAC7E,CAAC,CAAC;IAEH,CAAC;IAED,eAAe;QAEZ,IAAI,CAAC,MAAM,GAAuB,QAAQ,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC;QAC7F,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAE3C,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,CAAC,eAA8B,EAAE,EAAE;YAErF,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/C,eAAe,CAAC,OAAO,CAAC,CAAC,eAA4B,EAAE,EAAE;gBACvD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,eAAe,CAAC,EAAE,EAAE,CAAC,CAAC;YACjF,CAAC,CAAC,CAAC;YACH,IAAG,IAAI,CAAC,SAAS,GAAG,CAAC,EAAC;gBACpB,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAE,EAAC,CAAC,KAAK,KAAK,IAAI,CAAC,SAAS,CAAC;gBAC3D,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;aAC7D;YACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CACtC,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC;YAEpF,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CACxD,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CACzC,CAAC;QACN,CAAC,EACC,CAAC,KAAU,EAAE,EAAE;YACb,IAAI,KAAK,CAAC,KAAK,IAAI,SAAS,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE;gBAC/C,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE;gBACtF,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,6BAA6B,EAAE,GAAG,EAAE;gBACtD,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAC,CAAC,aAAa,CAAC;gBAC1B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACP,CAAC,CACF,CAAC;IACJ,CAAC;IAEO,cAAc,CAAC,KAAK;QAC1B,IAAG,KAAK;YACN,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC7B,IAAI,WAAW,CAAC;QAChB,IAAI,KAAK,IAAI,KAAK,CAAC,SAAS,EAAE;YAC5B,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CACzC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CACjD,CAAC;SACH;aAAM;YACL,OAAO,IAAI,CAAC,YAAY,CAAC;SAC1B;IACH,CAAC;IAED,UAAU;QACR,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;IAED,iBAAiB,CAAC,IAAI;QACpB,IAAI,CAAC,SAAS,GAAC,IAAI,CAAC;QACpB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC;QACpC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAE/C,CAAC;IAED,eAAe,CAAC,SAAS;QACvB,IAAI,CAAC,4BAA4B,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC;IAED,4BAA4B,CAAC,SAAiB;QAC5C,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;QACnB,IAAI,SAAS,IAAI,CAAC,EAAE;YAClB,IAAI,CAAC,uBAAuB,CAAC,4BAA4B,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,sBAAyC,EAAE,EAAE;gBAC3H,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;gBACnB,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC;gBACjC,IAAI,CAAC,8BAA8B,GAAG,EAAE,CAAC;gBACzC,IAAI,CAAC,yCAAyC,GAAG,EAAE,CAAC;gBACpD,IAAI,CAAC,4CAA4C,GAAG,EAAE,CAAC;gBACvD,IAAI,CAAC,uBAAuB,GAAG,IAAI,qFAAe,EAAE,CAAC;gBAErD,IAAI,sBAAsB,IAAI,sBAAsB,CAAC,eAAe,EAAE;oBACpE,IAAI,sBAAsB,CAAC,eAAe,EAAE;wBAC1C,IAAI,CAAC,uBAAuB,GAAG,sBAAsB,CAAC,eAAe,CAAC;wBACtE,IAAI,IAAI,CAAC,SAAS,IAAI,KAAK,EAAE;4BAC3B,IAAI,CAAC,yBAAyB,EAAE,CAAC;yBAClC;6BACI;4BACH,IAAI,CAAC,yBAAyB,EAAE,CAAC;yBAClC;wBACD,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC;4BAC/B,WAAW,EAAE,IAAI,CAAC,uBAAuB,CAAC,WAAW;4BACrD,aAAa,EAAE,IAAI,CAAC,uBAAuB,CAAC,aAAa;4BACzD,aAAa,EAAE,IAAI,CAAC,uBAAuB,CAAC,aAAa;4BACzD,wBAAwB,EAAE,IAAI,CAAC,uBAAuB,CAAC,wBAAwB;4BAC/E,2BAA2B,EAAC,IAAI,CAAC,uBAAuB,CAAC,2BAA2B;yBACrF,CAAC,CAAC;wBACL,IAAI,CAAC,4BAA4B,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;qBACvF;oBACD,IAAI,sBAAsB,CAAC,oBAAoB,IAAI,sBAAsB,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE;wBACzG,IAAI,CAAC,8BAA8B,GAAG,sBAAsB,CAAC,oBAAoB,CAAC;wBAClF,IAAI,CAAC,8BAA8B,CAAC,OAAO,CAAC,CAAC,MAAiC,EAAE,EAAE;4BAChF,MAAM,CAAC,aAAa,GAAG,mCAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;wBAC3E,CAAC,CAAC,CAAC;wBACH,IAAI,CAAC,oCAAoC,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;wBACxG,IAAI,CAAC,oCAAoC,CAAC,SAAS,GAAG,IAAI,CAAC,yBAAyB,CAAC;wBACrF,IAAI,CAAC,oCAAoC,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;qBAC5D;oBACD,IAAI,sBAAsB,CAAC,+BAA+B,IAAI,sBAAsB,CAAC,+BAA+B,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC/H,IAAI,CAAC,yCAAyC,GAAG,sBAAsB,CAAC,+BAA+B,CAAC;wBACxG,IAAI,CAAC,yCAAyC,CAAC,OAAO,CAAC,CAAC,MAAiC,EAAE,EAAE;4BAC3F,MAAM,CAAC,aAAa,GAAG,mCAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;wBAC3E,CAAC,CAAC,CAAC;wBACH,IAAI,CAAC,+CAA+C,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;wBAC9H,IAAI,CAAC,+CAA+C,CAAC,SAAS,GAAG,IAAI,CAAC,oCAAoC,CAAC;wBAC3G,IAAI,CAAC,+CAA+C,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;qBAEvE;oBACD,IAAI,sBAAsB,CAAC,kCAAkC,IAAI,sBAAsB,CAAC,kCAAkC,CAAC,MAAM,GAAG,CAAC,EAAE;wBACrI,IAAI,CAAC,4CAA4C,GAAG,sBAAsB,CAAC,kCAAkC,CAAC;wBAC9G,IAAI,CAAC,4CAA4C,CAAC,OAAO,CAAC,CAAC,MAAiC,EAAE,EAAE;4BAC9F,MAAM,CAAC,aAAa,GAAG,mCAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;wBAC3E,CAAC,CAAC,CAAC;wBACH,IAAI,CAAC,kDAAkD,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;wBACpI,IAAI,CAAC,kDAAkD,CAAC,SAAS,GAAG,IAAI,CAAC,uCAAuC,CAAC;wBACjH,IAAI,CAAC,kDAAkD,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;qBAE1E;iBACF;qBACI;oBACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE;wBAC3C,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAC,CAAC,eAAe,CAAC;wBAC5B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;iBACJ;YACH,CAAC,EACC,CAAC,KAAU,EAAE,EAAE;gBACb,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;gBACnB,IAAI,KAAK,CAAC,KAAK,IAAI,SAAS,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE;oBAC/C,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE;oBACtF,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;oBAChE,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAC,CAAC,aAAa,CAAC;oBAC1B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;SACN;aACI;YACH,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YACnB,IAAI,CAAC,uBAAuB,GAAG,IAAI,qFAAe,EAAE,CAAC;YACrD,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC;YACjC,IAAI,CAAC,8BAA8B,GAAG,EAAE,CAAC;YACzC,IAAI,CAAC,yCAAyC,GAAG,EAAE,CAAC;YACpD,IAAI,CAAC,4CAA4C;YACjD,IAAI,CAAC,4BAA4B,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YAExF,IAAI,CAAC,oCAAoC,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;YACxG,IAAI,CAAC,oCAAoC,CAAC,SAAS,GAAG,IAAI,CAAC,yBAAyB,CAAC;YACrF,IAAI,CAAC,oCAAoC,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YAE3D,IAAI,CAAC,+CAA+C,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;YAC9H,IAAI,CAAC,+CAA+C,CAAC,SAAS,GAAG,IAAI,CAAC,oCAAoC,CAAC;YAC3G,IAAI,CAAC,+CAA+C,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YAEtE,IAAI,CAAC,kDAAkD,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;YACpI,IAAI,CAAC,kDAAkD,CAAC,SAAS,GAAG,IAAI,CAAC,uCAAuC,CAAC;YACjH,IAAI,CAAC,kDAAkD,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YAEzE,IAAI,CAAC,4BAA4B,CAAC,OAAO,EAAE,CAAC;YAC5C,IAAI,CAAC,wBAAwB,CAAC,OAAO,EAAE,CAAC;SAEzC;IACH,CAAC;IAED,eAAe,CAAC,uBAAwC;QACtD,IAAI,CAAC,uBAAuB,GAAG,uBAAuB,CAAC;QACvD,IAAI,CAAC,yBAAyB,EAAE,CAAC;IACnC,CAAC;IAED,eAAe,CAAC,uBAAwC;QACtD,IAAI,CAAC,uBAAuB,GAAG,uBAAuB,CAAC;QACvD,IAAI,CAAC,yBAAyB,EAAE,CAAC;IACnC,CAAC;IAED,yBAAyB;QACvB,MAAM,MAAM,GAAuB,QAAQ,CAAC,cAAc,CAAC,8BAA8B,CAAC,CAAC;QAC3F,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAEpC,IAAI,IAAI,CAAC,4BAA4B,EAAE;YACrC,IAAI,CAAC,4BAA4B,CAAC,OAAO,EAAE,CAAC;SAC7C;QAEA,IAAI,CAAC,4BAA4B,GAAG,IAAI,8CAAK,CAAC,GAAG,EAAC;YACjD,IAAI,EAAG,KAAK;YACZ,IAAI,EAAG;gBACL,MAAM,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC;gBAClD,QAAQ,EAAE;oBACR;wBACE,KAAK,EAAE,sBAAsB;wBAC7B,eAAe,EAAE,SAAS;wBAC1B,WAAW,EAAE,SAAS;wBACtB,IAAI,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC;qBACnD;oBACD;wBACE,KAAK,EAAE,kCAAkC;wBACzC,eAAe,EAAE,SAAS;wBAC1B,WAAW,EAAE,SAAS;wBACtB,IAAI,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,wBAAwB,CAAC;qBAC9D;oBACD;wBACE,KAAK,EAAE,qCAAqC;wBAC5C,eAAe,EAAE,SAAS;wBAC1B,WAAW,EAAE,SAAS;wBACtB,IAAI,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,2BAA2B,CAAC;qBACjE;iBACF;aACA;YAEL,OAAO,EAAG;gBACR,KAAK,EAAE;oBACL,OAAO,EAAE,IAAI;oBACb,IAAI,EAAE,IAAI,CAAC,uBAAuB,CAAC,WAAW;oBAC9C,QAAQ,EAAE,EAAE;iBACb;gBACD,MAAM,EAAE;oBACN,QAAQ,EAAE,QAAQ;iBACnB;gBACD,sBAAsB,EAAE,KAAK;gBAC/B,UAAU,EAAE,IAAI;gBAChB,MAAM,EAAE;oBACA,KAAK,EAAE,CAAC;4BACJ,OAAO,EAAE,IAAI;yBAChB,CAAC;oBACF,KAAK,EAAE,CAAC;4BACJ,OAAO,EAAE,IAAI;yBAChB,CAAC;iBACL;aACJ;SACA,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;YAC9B,CAAC,EAAE,EAAE,CAAC,CAAC;SACR;IACH,CAAC;IAGD,yBAAyB;QAEvB,iGAAiG;QACjG,uCAAuC;QAEvC,IAAI,IAAI,CAAC,wBAAwB,EAAE;YACjC,IAAI,CAAC,wBAAwB,CAAC,OAAO,EAAE,CAAC;SACzC;QACA,IAAI,CAAC,wBAAwB,GAAG,IAAI,8CAAK,CAAC,IAAI,CAAC,GAAG,EAAC;YAClD,IAAI,EAAG,KAAK;YACZ,IAAI,EAAG;gBACL,MAAM,EAAG,CAAC,UAAU,EAAC,sBAAsB,EAAC,yBAAyB,CAAC;gBACtE,QAAQ,EAAE,CAAC;wBACP,KAAK,EAAE,kBAAkB;wBACzB,eAAe,EAAE,CAAC,SAAS,EAAC,SAAS,EAAE,SAAS,CAAC;wBACjD,WAAW,EAAE,CAAC,SAAS,EAAC,SAAS,EAAE,QAAQ,CAAC;wBAC5C,IAAI,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,aAAa,EAAE,IAAI,CAAC,uBAAuB,CAAC,wBAAwB,EAAE,IAAI,CAAC,uBAAuB,CAAC,2BAA2B,CAAC;qBACpK,CAAC;aACH;YACH,OAAO,EAAG;gBACR,UAAU,EAAC,IAAI;gBACf,mBAAmB,EAAE,KAAK;gBAC1B,MAAM,EAAE;oBACN,QAAQ,EAAE,QAAQ;iBACnB;aACF;SACF,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC;YACjC,CAAC,EAAE,EAAE,CAAC,CAAC;SACR;IAEH,CAAC;IAOD,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,CAAC,4BAA4B,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAC5E,IAAI,CAAC,oCAAoC,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACpF,IAAI,CAAC,+CAA+C,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAC/F,IAAI,CAAC,kDAAkD,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SACnG;aAAM;YAEL,IAAI,CAAC,4BAA4B,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YAExF,IAAI,CAAC,oCAAoC,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;YACxG,IAAI,CAAC,oCAAoC,CAAC,SAAS,GAAG,IAAI,CAAC,yBAAyB,CAAC;YACrF,IAAI,CAAC,oCAAoC,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YAE3D,IAAI,CAAC,+CAA+C,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;YAC9H,IAAI,CAAC,+CAA+C,CAAC,SAAS,GAAG,IAAI,CAAC,oCAAoC,CAAC;YAC3G,IAAI,CAAC,+CAA+C,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YAEtE,IAAI,CAAC,kDAAkD,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;YACpI,IAAI,CAAC,kDAAkD,CAAC,SAAS,GAAG,IAAI,CAAC,uCAAuC,CAAC;YACjH,IAAI,CAAC,kDAAkD,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SAC1E;IACH,CAAC;IAED,cAAc;QACZ,IAAG,IAAI,CAAC,QAAQ,IAAE,wBAAwB,EAAC;YACzC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,wBAAwB,CAAC,CAAC;SACjD;aACG;YACJ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC;SAC/C;IACH,CAAC;IAGC,WAAW,CAAC,CAAC;QACX,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC;QAC5B,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE;YAChB,IAAI,CAAC,yBAAyB,EAAE,CAAC;SAClC;aACI,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE;YACrB,IAAI,CAAC,yBAAyB,EAAE,CAAC;SAClC;IACH,CAAC;;4GA5ZU,8BAA8B;8GAA9B,8BAA8B;;;;wEAiC9B,8DAAO;;;;;;;;;;;;QCnEpB,2EACI;QAAA;QAAA,mFACG;QAAA;QAAA,0EACG;QAAA;QAAA,yEACG;QAAA;QAAA,yEACG;QAAA;QAAA,qFACG;QAAA;QAAA,6EAAW;QAAA,2EAAe;QAAA,4DAAY;QACtC;QAAA,uEAEA;QAAA;QAAA,kIAEA;QAEA;QAAA,6FACG;QAAA;QAAA,0IACA;;QAEH;QAAA,4DAAmB;QACtB;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACN;QAAA,0EACG;QAAA;QAAA,kIACA;QAGH;QAAA,4DAAM;QACT;QAAA,4DAAM;QACT;QAAA,4DAAO;QACP;QAAA,0EACG;QAAA;QAAA,0EACG;QAAA;QAAA,qFACG;QAD2C,4LAAqB,uBAAmB,IAAC;QACpF;QAAA,2EACG;QAAA;QAAA,6IACG;QAGH;QAAA,uEACG;QAAA;QAAA,6EAAiF;QACpF;QAAA,4DAAM;QACT;QAAA,4DAAU;QACV;QAAA,2EACG;QAAA;QAAA,6IACG;QAGH;QAAA,2EACG;QAAA;QAAA,6EAAqF;QACxF;QAAA,4DAAM;QACT;QAAA,4DAAU;QACb;QAAA,4DAAgB;QACnB;QAAA,4DAAM;QACN;QAAA,2EACG;QAAA;QAAA,8HACG;QAuCH;QAAA,2EACG;QAAA;QAAA,sEAAI;QAAA,6FAAiC;QAAA,4DAAK;QAC1C;QAAA,6EAEG;QAAA;QAAA,6EACG;QAAA;QAAA,2HAAgF;QAGhF;QAAA,2HACG;QAEN;QAAA,qEAAe;QACf;QAAA,6EACG;QAAA;QAAA,2HAAgF;QAGhF;QAAA,2HACG;QAEN;QAAA,qEAAe;QACf;QAAA,6EACG;QAAA;QAAA,2HAAgF;QAEhF;QAAA,2HACG;QAEN;QAAA,qEAAe;QACf;QAAA,6EACG;QAAA;QAAA,2HAAgF;QAGhF;QAAA,6HACG;QAEN;QAAA,qEAAe;QACf;QAAA,8EACG;QAAA;QAAA,6HAA+E;QAC/E;QAAA,6HACG;QAEN;QAAA,qEAAe;QACf;QAAA,8EACG;QAAA;QAAA,6HAA+E;QAC/E;QAAA,6HACG;QAEN;QAAA,qEAAe;QACf;QAAA,8EACC;QAAA;QAAA,6HAA+E;QAC/E;QAAA,6HACG;QAEN;QAAA,qEAAe;QACb;QAAA,6HAA2E;QAC3E;QAAA,6HAAiF;QACjF;QAAA,6HACG;QAEN;QAAA,4DAAQ;QACR;QAAA,4EACG;QAAA;QAAA,qFAA0F;QAC7F;QAAA,4DAAM;QACT;QAAA,4DAAM;QACN;QAAA,4EACG;QAAA;QAAA,uEAAI;QAAA,kGAAqC;QAAA,4DAAK;QAC9C;QAAA,8EAEG;QAAA;QAAA,8EACG;QAAA;QAAA,6HAAgF;QAGhF;QAAA,6HACG;QAEN;QAAA,qEAAe;QACf;QAAA,8EACG;QAAA;QAAA,6HAAgF;QAGhF;QAAA,6HACG;QAEN;QAAA,qEAAe;QACf;QAAA,8EACG;QAAA;QAAA,6HAAgF;QAEhF;QAAA,6HACG;QAEN;QAAA,qEAAe;QACf;QAAA,8EACG;QAAA;QAAA,6HAAgF;QAGhF;QAAA,6HACG;QAEN;QAAA,qEAAe;QACf;QAAA,8EACG;QAAA;QAAA,6HAA+E;QAC/E;QAAA,6HACG;QAEN;QAAA,qEAAe;QACf;QAAA,8EACG;QAAA;QAAA,6HAA+E;QAC/E;QAAA,6HACG;QAEN;QAAA,qEAAe;QACf;QAAA,8EACC;QAAA;QAAA,6HAA+E;QAC/E;QAAA,6HACG;QAEN;QAAA,qEAAe;QACb;QAAA,6HAA2E;QAC3E;QAAA,6HAAiF;QACjF;QAAA,6HACG;QAEN;QAAA,4DAAQ;QACR;QAAA,4EACG;QAAA;QAAA,qFAA6F;QAChG;QAAA,4DAAM;QACT;QAAA,4DAAM;QACN;QAAA,4EACG;QAAA;QAAA,uEAAI;QAAA,+GAAkD;QAAA,4DAAK;QAC3D;QAAA,8EAEG;QAAA;QAAA,8EACG;QAAA;QAAA,6HAAgF;QAGhF;QAAA,6HACG;QAEN;QAAA,qEAAe;QACf;QAAA,8EACG;QAAA;QAAA,6HAAgF;QAGhF;QAAA,6HACG;QAEN;QAAA,qEAAe;QACf;QAAA,8EACG;QAAA;QAAA,6HAAgF;QAEhF;QAAA,6HACG;QAEN;QAAA,qEAAe;QACf;QAAA,8EACG;QAAA;QAAA,6HAAgF;QAGhF;QAAA,6HACG;QAEN;QAAA,qEAAe;QACf;QAAA,8EACG;QAAA;QAAA,6HAA+E;QAC/E;QAAA,6HACG;QAEN;QAAA,qEAAe;QACf;QAAA,8EACG;QAAA;QAAA,6HAA+E;QAC/E;QAAA,6HACG;QAEN;QAAA,qEAAe;QACf;QAAA,8EACC;QAAA;QAAA,6HAA+E;QAC/E;QAAA,6HACG;QAEN;QAAA,qEAAe;QACb;QAAA,6HAA2E;QAC3E;QAAA,6HAAiF;QACjF;QAAA,6HACG;QAEN;QAAA,4DAAQ;QACR;QAAA,4EACG;QAAA;QAAA,qFAAwG;QAC3G;QAAA,4DAAM;QACT;QAAA,4DAAM;QACT;QAAA,4DAAM;QACT;QAAA,4DAAM;QACT;QAAA,4DAAmB;QACtB;QAAA,4DAAW;QACX;QAAA,oFAEG;QAAA;QAAA,0EAAmB;QAAA,wEAAW;QAAA,4DAAI;QACtC;QAAA,4DAAc;;;QA9RD,0DAA0B;QAA1B,uFAA0B;QAGP,0DAA+B;QAA/B,uGAA+B;QAGI,0DAAwB;QAAxB,gFAAwB;QACzC,0DAAsB;QAAtB,oFAAsB;QAKsC,0DAA6C;QAA7C,2JAA6C;QAOnI,0DAAsB;QAAtB,oFAAsB;QASlB,0DAA8B;QAA9B,2FAA8B;QAsBf,2DAAuC;QAAvC,uGAAuC;QAwCvC,0DAAqD;QAArD,oHAAqD;QAE/D,0DAAmD;QAAnD,gHAAmD;QAmD9C,2DAAuD;QAAvD,qHAAuD;QAC9D,0DAAoE;QAApE,sHAAoE;QAMtC,0DAA+B;QAA/B,mJAA+B;QAGjD,0DAAgE;QAAhE,+HAAgE;QAE1E,0DAA8D;QAA9D,2HAA8D;QAmDzD,2DAAuD;QAAvD,qHAAuD;QAC9D,0DAAoE;QAApE,sHAAoE;QAMnC,0DAA+B;QAA/B,mJAA+B;QAGpD,0DAAmE;QAAnE,kIAAmE;QAE7E,0DAAiE;QAAjE,8HAAiE;QAmD5D,2DAAuD;QAAvD,qHAAuD;QAC9D,0DAAoE;QAApE,sHAAoE;QAMxB,0DAA+B;QAA/B,mJAA+B;QAO/C,0DAAoB;QAApB,6EAAoB;;6FD3PlE,8BAA8B;cAL1C,uDAAS;eAAC;gBACT,QAAQ,EAAE,6BAA6B;gBACvC,WAAW,EAAE,0CAA0C;gBACvD,SAAS,EAAE,CAAC,0CAA0C,CAAC;aACxD;0xBA+B4D,yBAAyB;kBAAnF,uDAAS;mBAAC,2BAA2B,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;YACa,oCAAoC;kBAAzG,uDAAS;mBAAC,sCAAsC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;YACK,uCAAuC;kBAA/G,uDAAS;mBAAC,yCAAyC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;YACjC,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACR,aAAa;kBAAxC,uDAAS;mBAAC,eAAe;YACK,gBAAgB;kBAA9C,uDAAS;mBAAC,kBAAkB;;;;;;;;;;;;;;AErE/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsF;AACe;AAE3C;AACD;AAIyC;AAEvC;AAC1B;AAEsC;AACZ;AACV;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICArB,6EAEI;IADA,8TAAoB,YAAY,KAAE;IAClC;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC9B;IAAA,4DAAS;;;;IAEL,iFAGI;IAHQ,6WAA2B,YAAY,eAAO,iUACrB,YAAY,eADS;IAGtD,uDACJ;IAAA,4DAAa;;;IAFwC,iFAAoB;IACrE,0DACJ;IADI,gKACJ;;;;IASJ,6EAGI;IAFA,8TAAoB,gBAAgB,KAAE;IAEtC;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC9B;IAAA,4DAAS;;;;IAEL,iFAGI;IAHQ,6WAA2B,gBAAgB,eAAO,iUACzB,gBAAgB,eADS;IAG1D,uDACJ;IAAA,4DAAa;;;IAFwC,iFAAoB;IACrE,0DACJ;IADI,gKACJ;;;;IASJ,6EAEI;IADA,8TAAoB,WAAW,KAAE;IACjC;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC9B;IAAA,4DAAS;;;;IAEL,iFAGI;IAHQ,6WAA2B,WAAW,eAAO,iUACpB,WAAW,eADS;IAGrD,uDACJ;IAAA,4DAAa;;;IAFqC,iFAAoB;IAClE,0DACJ;IADI,gKACJ;;;;IAYJ,6EAGI;IAFA,8TAAoB,kBAAkB,KAAE;IAExC;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC9B;IAAA,4DAAS;;;;IAEL,iFAGI;IAHQ,6WAA2B,kBAAkB,eAAO,iUAC3B,kBAAkB,eADS;IAG5D,uDACJ;IAAA,4DAAa;;;IAF4C,iFAAoB;IACzE,0DACJ;IADI,gKACJ;;;;IASJ,6EAEI;IADA,+TAAoB,UAAU,KAAE;IAChC;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC9B;IAAA,4DAAS;;;;IAEL,iFAGI;IAHQ,8WAA2B,UAAU,eAAO,kUACnB,UAAU,eADS;IAGpD,uDACJ;IAAA,4DAAa;;;IAFoC,iFAAoB;IACjE,0DACJ;IADI,gKACJ;;;;IASJ,6EAGI;IAFA,+TAAoB,cAAc,KAAE;IAEpC;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC9B;IAAA,4DAAS;;;;IAEL,iFAGI;IAHQ,8WAA2B,cAAc,eAAO,kUACvB,cAAc,eADS;IAGxD,uDACJ;IAAA,4DAAa;;;IAFwC,iFAAoB;IACrE,0DACJ;IADI,gKACJ;;;;IAYJ,6EAEI;IADA,+TAAoB,SAAS,KAAE;IAC/B;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC9B;IAAA,4DAAS;;;;IAEL,iFAGI;IAHQ,8WAA2B,SAAS,eAAO,kUAClB,SAAS,eADS;IAGnD,uDACJ;IAAA,4DAAa;;;IAFmC,iFAAoB;IAChE,0DACJ;IADI,gKACJ;;;;IASJ,6EAGI;IAFA,+TAAoB,eAAe,KAAE;IAErC;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC9B;IAAA,4DAAS;;;;IAEL,iFAGI;IAHQ,8WAA2B,eAAe,eAAO,kUACxB,eAAe,eADS;IAGzD,uDACJ;IAAA,4DAAa;;;IAFyC,iFAAoB;IACtE,0DACJ;IADI,gKACJ;;;IAkBA,iFACI;IAAA,uDAAc;IAAA,4DAAa;;;IADa,iFAAoB;IAC5D,0DAAc;IAAd,8HAAc;;;IASlB,iFACI;IAAA,uDAAc;IAAA,4DAAa;;;IADa,iFAAoB;IAC5D,0DAAc;IAAd,8HAAc;;;;IAqCtB,iFACI;IADiE,yaAA6C;IAC9G,uDACJ;IAAA,4DAAa;;;IAF4C,wEAAW;IAChE,0DACJ;IADI,sJACJ;;;;IAiBR,wEAEI;IADA,4TAAwB;IACxB;IAAA,qEAAiC;IACrC;IAAA,4DAAI;;;IAOA,yEAAgG;IAAA,uDAChG;IAAA,4DAAK;;;IADiC,qGAAgC;IAA0B,0DAChG;IADgG,kHAChG;;;IACA,yEAAuC;IAAA,uDAAsB;IAAA,4DAAK;;;;IAA3B,0DAAsB;IAAtB,2FAAsB;;;IAHjE,4EACI;IAAA;IAAA,mIAAgG;IAEhG;IAAA,mIAAuC;IAC3C;IAAA,qEAAe;;;IAJmC,mGAA6B;;;IAK/E,oEAAuD;;;IAEvD,oEAA6D;;;IAC7D,yEACI;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAErD;IAHI,4DACI;;;ADrOjB,MAAM,uBAAuB;IAyElC,YAAoB,kBAAqC,EAAU,SAAsB,EAC/E,sBAA6C,EAAS,UAAsB,EAAU,mBAAuC,EAAU,OAA0B;QADvJ,uBAAkB,GAAlB,kBAAkB,CAAmB;QAAU,cAAS,GAAT,SAAS,CAAa;QAC/E,2BAAsB,GAAtB,sBAAsB,CAAuB;QAAS,eAAU,GAAV,UAAU,CAAY;QAAU,wBAAmB,GAAnB,mBAAmB,CAAoB;QAAU,YAAO,GAAP,OAAO,CAAmB;QAxE3K,qBAAgB,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QAEpD,uBAAkB,GAAyB,IAAI,kDAAa,CAAQ,CAAC,CAAC,CAAC;QAGvE,gBAAW,GAAG,EAAE,CAAC;QACT,eAAU,GAAG,IAAI,4CAAO,EAAQ,CAAC;QASzC,iBAAY,GAAY,IAAI,CAAC;QAE7B,SAAI,GAAG,CAAC,CAAC;QACT,sBAAiB,GAAY,KAAK,CAAC;QACnC,SAAI,GAAU,EAAE,CAAC;QACjB,kBAAa,GAAU,EAAE,CAAC;QAC1B,aAAQ,GAAW,CAAC,CAAC;QACrB,iBAAY,GAAa,EAAE,CAAC;QAC5B,yDAAyD;QACzD,mCAA8B,GAAkB,EAAE,CAAC;QAC3C,oCAA+B,GAAkB,EAAE,CAAC;QAI5D,kBAAa,GAAY,KAAK,CAAC;QAC/B,mBAAc,GAAiB,EAAE,CAAC;QAClC,mBAAc,GAAiB,EAAE,CAAC;QAClC,iBAAY,GAAiB,EAAE,CAAC;QAChC,eAAU,GAAiB,EAAE,CAAC;QAC9B,mBAAc,GAAiB,EAAE,CAAC;QAClC,iBAAY,GAAiB,EAAE,CAAC;QAChC,wBAAmB,GAAiB,EAAE,CAAC;QACvC,iBAAY,GAAiB,EAAE,CAAC;QAChC,iBAAY,GAAiB,EAAE,CAAC;QAChC,qBAAgB,GAAiB,EAAE,CAAC;QACpC,mBAAc,GAAiB,EAAE,CAAC;QAClC,YAAO,GAAkB,EAAE,CAAC;QAC5B,sBAAiB,GAAW,CAAC,CAAC;QAC9B,gBAAW,GAAW,CAAC,CAAC,CAAC;QACzB,gBAAW,GAAW,CAAC,CAAC,CAAC;QACzB,0BAAqB,GAAW,CAAC,CAAC;QAClC,gCAA2B,GAAW,CAAC,CAAC;QACxC,eAAU,GAAG,IAAI,KAAK,EAAgB,CAAC;QACvC,eAAU,GAAG,IAAI,KAAK,EAAgB,CAAC;QAyBrC,IAAI,CAAC,iBAAiB,GAAG,IAAI,6EAAiB,EAAE,CAAC;QACjD,IAAI,CAAC,iBAAiB,CAAC,2BAA2B,GAAG,IAAI,uFAA2B,EAAE,CAAC;QACvF,IAAI,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE;YAC5D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC;IAEJ,CAAC;IAED,QAAQ;QAEN,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACvF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,UAAU,CAAC;QAC3F,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,IAAI,CAAC,IAAI,GAAG;YAEV,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE;YACvC,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE;YACzC,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,aAAa,EAAE;YACnD,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE;YACvC,EAAE,KAAK,EAAE,gCAAgC,EAAE,MAAM,EAAE,YAAY,EAAE;YACjE,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE;YAC7C,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,iBAAiB,EAAE;YAChD,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE;YAC3C,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE;YACzC,EAAE,KAAK,EAAE,oBAAoB,EAAE,MAAM,EAAE,UAAU,EAAE;YACnD,EAAE,KAAK,EAAE,oBAAoB,EAAE,MAAM,EAAE,UAAU,EAAE;YACnD,EAAE,KAAK,EAAE,sBAAsB,EAAE,MAAM,EAAE,iBAAiB,EAAE;YAC5D,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE;YACrC,EAAE,KAAK,EAAE,sBAAsB,EAAE,MAAM,EAAE,mBAAmB,EAAE;YAC9D,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE;YACvC,EAAE,KAAK,EAAE,oBAAoB,EAAE,MAAM,EAAE,iBAAiB,EAAE;YAC1D,EAAE,KAAK,EAAE,oBAAoB,EAAE,MAAM,EAAE,UAAU,EAAE;YACnD,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,kBAAkB,EAAE;YACxD,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,mBAAmB,EAAE;YACzD,EAAE,KAAK,EAAE,qBAAqB,EAAE,MAAM,EAAE,YAAY,EAAE;YACtD,EAAE,KAAK,EAAE,oBAAoB,EAAE,MAAM,EAAE,uBAAuB,EAAE;YAChE,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,gCAAgC,EAAE;YACxE,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,gBAAgB,EAAC;YACvD,EAAE,KAAK,EAAE,4BAA4B,EAAE,MAAM,EAAE,qCAAqC,EAAC;SAEtF,CAAC;QAEF,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACzC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SAC9E;QAED,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE3B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC;QAC9B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC/D,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACpE,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC7E,kCAAkC;QAClC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,YAAY,CAAC,YAAY;aACvD,IAAI,CAAC,gEAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAChC,SAAS,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEL,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAEhD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAGhD,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAE3B,IAAI,IAAI,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,UAAU,IAAI,CAAC,CAAC;gBAAE,IAAI,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,UAAU,GAAG,CAAC,CAAC;YAC3I,IAAI,IAAI,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,UAAU,IAAI,CAAC,CAAC;gBAAE,IAAI,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,UAAU,GAAG,CAAC;YAC1I,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;YACzB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YAC1D,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YACxD,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YACtD,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;YACzB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YAC1D,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YACxD,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;YAC9B,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YAC/D,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YACxD,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YACxD,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;YAC3B,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YAC5D,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;YACzB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YAC1D,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;YACzB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YAC1D,IAAI,CAAC,OAAO,GAAG;gBACb,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE;gBACtB,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;gBACvB,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE;gBACxB,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE;gBACxB,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE;gBACxB,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE;gBACxB,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE;gBACxB,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE;aAAC,CAAC;YAC5B,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC7B,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAEzB,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAE5D,IAAI,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;YACnE,IAAI,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;YAEnE,qBAAqB;SACtB;QACD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC5B,CAAC;IAED,eAAe,KAAK,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACvD,WAAW;QACT,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;IAC7B,CAAC;IACD,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,WAAW,EAAE;gBACf,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;gBAC1D,OAAO,CAAC,GAAG,CAAC,WAAW,EAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;aAChD;iBACI;gBACH,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;gBAC9E,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;aAClC;SACF;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;YAC9E,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SAClC;IACH,CAAC;IAEO,gBAAgB;QACtB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,OAAO;SACR;QACD,yBAAyB;QACzB,IAAI,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC;QACjE,IAAI,CAAC,MAAM,EAAE;YACX,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YAChD,OAAO;SACR;aAAM;YACL,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;SAC/B;QACD,mBAAmB;QACnB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAC1B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CACvE,CAAC;IACJ,CAAC;IACD,MAAM,CAAC,KAAU;QAEf,IAAI,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC;QACtE,IAAI,WAAW,EAAE;YACf,OAAO,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;SAC1G;aACI;YACH,OAAO,IAAI,CAAC,IAAI,CAAC;SAClB;IACH,CAAC;IACD,UAAU,CAAC,KAAU;QACnB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;YAC9B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC;YACnC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC7E,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC/D,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;SACzB;IACH,CAAC;IAED,YAAY,CAAC,GAAG;QACd,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;YAC7B,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAC;SACd;QACD,IACE,IAAI,CAAC,eAAe,CAAC,MAAM;YAC3B,IAAI,CAAC,IAAI,CAAC,MAAM;YAEhB,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;IAC9B,CAAC;IAED,kBAAkB;QAChB,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;YAC7B,IAAI,CAAC,eAAe,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YAC3D,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,YAAY;iBAC1C,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACpC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpD,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;SACzB;aAAM;YACL,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YAC7D,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;YAC1B,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;SACzB;IACH,CAAC;IAMD,WAAW;QAET,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,iBAAiB,CAAC,2BAA2B,GAAG;YACnD,UAAU,EAAE,CAAC;YACb,SAAS,EAAE,CAAC;YACZ,OAAO,EAAE,CAAC;YACV,aAAa,EAAE,CAAC;YAChB,QAAQ,EAAE,CAAC;YACX,sBAAsB,EAAE,CAAC;YAEzB,gBAAgB,EAAE,CAAC;YACnB,YAAY,EAAE,CAAC;YACf,eAAe,EAAE,IAAI;YACrB,UAAU,EAAE,CAAC;YACb,UAAU,EAAE,CAAC,CAAC;YACd,UAAU,EAAE,CAAC,CAAC;YAEd,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,CAAC;YACjB,WAAW,EAAE,EAAE;YACf,UAAU,EAAE,CAAC;SACd,CAAC;IACJ,CAAC;IAED,KAAK;QACH,IAAI,CAAC,iBAAiB,CAAC,2BAA2B,GAAG;YACnD,UAAU,EAAE,CAAC;YACb,SAAS,EAAE,CAAC;YACZ,OAAO,EAAE,CAAC;YACV,aAAa,EAAE,CAAC;YAChB,QAAQ,EAAE,CAAC;YACX,sBAAsB,EAAE,CAAC;YAEzB,gBAAgB,EAAE,CAAC;YACnB,YAAY,EAAE,CAAC;YACf,eAAe,EAAE,IAAI;YACrB,UAAU,EAAE,CAAC;YACb,UAAU,EAAE,CAAC,CAAC;YACd,UAAU,EAAE,CAAC,CAAC;YAEd,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,CAAC;YACjB,WAAW,EAAE,EAAE;YACf,UAAU,EAAE,CAAC;SACd,CAAC;IACJ,CAAC;IAED,mBAAmB;QACjB,IAAI,CAAC,eAAe,GAAG;YAErB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;SAEd,CAAC;IACJ,CAAC;IAGD,UAAU;QAER,IAAI,CAAC,kBAAkB,GAAG,IAAI,wDAAS,CAAC;YACtC,UAAU,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACjC,cAAc,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACrC,SAAS,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAChC,gBAAgB,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACvC,QAAQ,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAC/B,YAAY,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACnC,OAAO,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAC9B,aAAa,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACpC,qBAAqB,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAC5C,UAAU,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACjC,UAAU,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACjC,YAAY,EAAE,IAAI,0DAAW,EAAE;YAC/B,YAAY,EAAE,IAAI,0DAAW,CAAC,EAAE,CAAC;SAClC,CAAC,CAAC;IACL,CAAC;IAED,UAAU,CAAC,SAAS;QAElB,IAAI,SAAS,IAAI,YAAY,EAAE;YAC7B,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SAC5D;QACD,IAAI,SAAS,IAAI,gBAAgB,EAAE;YACjC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SAChE;QACD,IAAI,SAAS,IAAI,WAAW,EAAE;YAC5B,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SAC3D;QACD,IAAI,SAAS,IAAI,kBAAkB,EAAE;YACnC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SAClE;QACD,IAAI,SAAS,IAAI,UAAU,EAAE;YAC3B,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SAC1D;QACD,IAAI,SAAS,IAAI,cAAc,EAAE;YAC/B,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SAC9D;QACD,IAAI,SAAS,IAAI,SAAS,EAAE;YAC1B,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SACzD;QACD,IAAI,SAAS,IAAI,eAAe,EAAE;YAChC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SAC/D;IACH,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,EAAE,CAAC,SAAS,CAAC,CAAC,iBAAiC,EAAE,EAAE;YAC5F,iBAAiB,CAAC,OAAO,CAAC,CAAC,iBAA+B,EAAE,EAAE;gBAC5D,IAAG,iBAAiB,CAAC,YAAY,IAAI,IAAI,IAAI,iBAAiB,CAAC,YAAY,IAAI,CAAC,EAAE;oBAChF,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,iBAAiB,CAAC,EAAE,EAAE,CAAC,CAAC;iBACxF;YACL,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,IAAI,CACjE,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAC9C,CAAC;QACJ,CAAC,CAAC;YACA,CAAC,KAAU,EAAE,EAAE;gBACb,IAAI,KAAK,CAAC,KAAK,IAAI,SAAS,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE;oBAC/C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;wBACpC,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,8BAA8B,CAAC,EAAE,kBAAkB,EAAE,OAAO;wBACzF,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;YACP,CAAC,CAAC;IAEN,CAAC;IAEO,iBAAiB,CAAC,KAAK;QAC7B,IAAI,WAAW,CAAC;QAChB,IAAI,KAAK,IAAI,KAAK,CAAC,UAAU,EAAE;YAC7B,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;YAC7C,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAC3C,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CACjD,CAAC;SACH;aAAM;YACL,OAAO,IAAI,CAAC,cAAc,CAAC;SAC5B;IACH,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,CAAC,eAA8B,EAAE,EAAE;YACrF,IAAI,QAAQ,GAAU,EAAE,CAAC;YACzB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1C,eAAe,CAAC,OAAO,CAAC,CAAC,eAA4B,EAAE,EAAE;gBACvD,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,eAAe,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5E,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,MAAM,CACjC,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC;YAEpF,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAC9D,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAC3C,CAAC;QACJ,CAAC,EACC,CAAC,KAAU,EAAE,EAAE;YACb,IAAI,KAAK,CAAC,KAAK,IAAI,SAAS,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE;gBAC/C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;oBACpC,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,4BAA4B,CAAC,EAAE,kBAAkB,EAAE,OAAO;oBACvF,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;QAEP,CAAC,CACF,CAAC;IACJ,CAAC;IAEO,cAAc,CAAC,KAAK;QAE1B,IAAI,WAAW,CAAC;QAChB,IAAI,KAAK,IAAI,KAAK,CAAC,SAAS,EAAE;YAC5B,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CACzC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CACjD,CAAC;SACH;aAAM;YACL,OAAO,IAAI,CAAC,YAAY,CAAC;SAC1B;IACH,CAAC;IAID,YAAY;QACV,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC,CAAC,aAA4B,EAAE,EAAE;YACpF,aAAa,CAAC,OAAO,CAAC,CAAC,aAA0B,EAAE,EAAE;gBACnD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,aAAa,CAAC,EAAE,EAAE,CAAC;YAC9E,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAC5D,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CACzC,CAAC;QACJ,CAAC,CAAC;YACA,CAAC,KAAU,EAAE,EAAE;gBACb,IAAI,KAAK,CAAC,KAAK,IAAI,SAAS,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE;oBAC/C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;wBACpC,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,0BAA0B,CAAC,EAAE,kBAAkB,EAAE,OAAO;wBACrF,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;YACP,CAAC,CAAC;IACN,CAAC;IAEO,YAAY,CAAC,KAAK;QAExB,IAAI,WAAW,CAAC;QAChB,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,EAAE;YAC1B,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CACvC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CACjD,CAAC;SACH;aAAM;YACL,OAAO,IAAI,CAAC,UAAU,CAAC;SACxB;IACH,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,UAAuB,EAAE,EAAE;YAC/C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7E,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,IAAI,CACjE,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAC9C,CAAC;IACJ,CAAC;IAEO,iBAAiB,CAAC,KAAK;QAE7B,IAAI,WAAW,CAAC;QAChB,IAAI,KAAK,IAAI,KAAK,CAAC,YAAY,EAAE;YAC/B,WAAW,GAAG,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;YAC/C,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAC3C,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CACjD,CAAC;SACH;aAAM;YACL,OAAO,IAAI,CAAC,cAAc,CAAC;SAC5B;IACH,CAAC;IAED,aAAa;QACX,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,CAAC,cAA6B,EAAE,EAAE;YAClF,cAAc,CAAC,OAAO,CAAC,CAAC,cAA2B,EAAE,EAAE;gBACrD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,cAAc,CAAC,EAAE,EAAE,CAAC;YAClF,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAC7D,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAC1C,CAAC;QACJ,CAAC,CAAC;YACA,CAAC,KAAU,EAAE,EAAE;gBACb,IAAI,KAAK,CAAC,KAAK,IAAI,SAAS,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE;oBAC/C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;wBACpC,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,2BAA2B,CAAC,EAAE,kBAAkB,EAAE,OAAO;wBACtF,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;YACP,CAAC,CAAC;IACN,CAAC;IAEO,aAAa,CAAC,KAAK;QAEzB,IAAI,WAAW,CAAC;QAChB,IAAI,KAAK,IAAI,KAAK,CAAC,QAAQ,EAAE;YAC3B,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;YAC3C,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CACzC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CACjD,CAAC;SACH;aAAM;YACL,OAAO,IAAI,CAAC,YAAY,CAAC;SAC1B;IACH,CAAC;IAGD,qBAAqB;QACnB,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,EAAE,CAAC,SAAS,CAAC,CAAC,sBAAqC,EAAE,EAAE;YAC/F,sBAAsB,CAAC,OAAO,CAAC,CAAC,sBAAmC,EAAE,EAAE;gBACrE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,sBAAsB,CAAC,IAAI,EAAE,KAAK,EAAE,sBAAsB,CAAC,EAAE,EAAE,CAAC;YACzG,CAAC,CAAC;YACF,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,IAAI,CACrE,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAClD,CAAC;QACJ,CAAC,CAAC;YACA,CAAC,KAAU,EAAE,EAAE;gBACb,IAAI,KAAK,CAAC,KAAK,IAAI,SAAS,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE;oBAC/C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;wBACpC,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,oCAAoC,CAAC,EAAE,kBAAkB,EAAE,OAAO;wBAC/F,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;YACP,CAAC,CAAC;IACN,CAAC;IAEO,qBAAqB,CAAC,KAAK;QAEjC,IAAI,WAAW,CAAC;QAChB,IAAI,KAAK,IAAI,KAAK,CAAC,gBAAgB,EAAE;YACnC,WAAW,GAAG,KAAK,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC;YACnD,OAAO,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAChD,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CACjD,CAAC;SACH;aAAM;YACL,OAAO,IAAI,CAAC,mBAAmB,CAAC;SACjC;IACH,CAAC;IAED,mBAAmB;QACjB,IAAI,CAAC,kBAAkB,CAAC,6BAA6B,EAAE,CAAC,SAAS,CAAC,CAAC,mBAAkC,EAAE,EAAE;YACvG,mBAAmB,CAAC,OAAO,CAAC,CAAC,mBAAgC,EAAE,EAAE;gBAC/D,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,CAAC,IAAI,EAAE,KAAK,EAAE,mBAAmB,CAAC,EAAE,EAAE,CAAC;YAChG,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAClE,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAC/C,CAAC;QACJ,CAAC,CAAC;YACA,CAAC,KAAU,EAAE,EAAE;gBACb,IAAI,KAAK,CAAC,KAAK,IAAI,SAAS,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE;oBAC/C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;wBACpC,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,gCAAgC,CAAC,EAAE,kBAAkB,EAAE,OAAO;wBAC3F,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;YACP,CAAC,CAAC;IACN,CAAC;IAEO,kBAAkB,CAAC,KAAK;QAE9B,IAAI,WAAW,CAAC;QAChB,IAAI,KAAK,IAAI,KAAK,CAAC,aAAa,EAAE;YAChC,WAAW,GAAG,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;YAChD,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAC7C,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CACjD,CAAC;SACH;aAAM;YACL,OAAO,IAAI,CAAC,gBAAgB,CAAC;SAC9B;IACH,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,kBAAkB,CAAC,wBAAwB,EAAE,CAAC,SAAS,CAAC,CAAC,kBAAiC,EAAE,EAAE;YACjG,kBAAkB,CAAC,OAAO,CAAC,CAAC,kBAA+B,EAAE,EAAE;gBAC7D,IAAI,kBAAkB,CAAC,IAAI,IAAI,GAAG;oBAChC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,kBAAkB,CAAC,IAAI,EAAE,KAAK,EAAE,kBAAkB,CAAC,EAAE,EAAE,CAAC,CAAC;YAC/F,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;YACA,CAAC,KAAU,EAAE,EAAE;gBACb,IAAI,KAAK,CAAC,KAAK,IAAI,SAAS,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE;oBAC/C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;wBACpC,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,+BAA+B,CAAC,EAAE,kBAAkB,EAAE,OAAO;wBAC1F,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;YACP,CAAC,CAAC;IACN,CAAC;IACD,iBAAiB;QAEf,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC,CAAC,cAA6B,EAAE,EAAE;YACrF,cAAc,CAAC,OAAO,CAAC,CAAC,cAA2B,EAAE,EAAE;gBAErD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,cAAc,CAAC,EAAE,EAAE,CAAC;YACpF,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,IAAI,CACjE,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAC9C,CAAC;QACJ,CAAC,CAAC;YACA,CAAC,KAAU,EAAE,EAAE;gBACb,IAAI,KAAK,CAAC,KAAK,IAAI,SAAS,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE;oBAC/C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;wBACpC,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,+BAA+B,CAAC,EAAE,kBAAkB,EAAE,OAAO;wBAC1F,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;YACP,CAAC,CAAC;IACN,CAAC;IAEO,iBAAiB,CAAC,KAAK;QAE7B,IAAI,WAAW,CAAC;QAChB,IAAI,KAAK,IAAI,KAAK,CAAC,cAAc,EAAE;YACjC,WAAW,GAAG,KAAK,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;YACjD,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAC3C,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CACjD,CAAC;SACH;aAAM;YACL,OAAO,IAAI,CAAC,cAAc,CAAC;SAC5B;IACH,CAAC;IAED,aAAa,CAAC,KAAK;QAEjB,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE;YACrB,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;SACjC;;YAEC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAGD,gBAAgB,CAAC,KAAU;QACzB,IAAI,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,UAAU,GAAG,QAAQ,CAAC;IAC3E,CAAC;IACD,mBAAmB,CAAC,KAAU;QAC5B,IAAI,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;IACxB,CAAC;IAGD,aAAa,CAAC,KAAK;QACjB,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE;YACrB,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;SACjC;;YAEC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,gBAAgB,CAAC,KAAU;QACzB,IAAI,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,UAAU,GAAG,QAAQ,CAAC;IAC3E,CAAC;IAED,mBAAmB,CAAC,KAAU;QAC5B,IAAI,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;IACxB,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QACd,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,mBAAmB;QACjB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;IACxC,CAAC;IAED,iBAAiB,CAAC,QAAQ,EAAE,IAAI;QAC9B,IAAI,QAAQ,IAAI,YAAY,EAAE;YAC5B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC;SACtC;aACI,IAAI,QAAQ,IAAI,gBAAgB,EAAE;YACrC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,KAAK,CAAC;SAC1C;aACI,IAAI,QAAQ,IAAI,WAAW,EAAE;YAChC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC;SACrC;aACI,IAAI,QAAQ,IAAI,kBAAkB,EAAE;YACvC,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,KAAK,CAAC;SAC5C;aACI,IAAI,QAAQ,IAAI,UAAU,EAAE;YAC/B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC;SACpC;aACI,IAAI,QAAQ,IAAI,cAAc,EAAE;YACnC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC;SACxC;aACI,IAAI,QAAQ,IAAI,SAAS,EAAE;YAC9B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC;SACnC;aACI,IAAI,QAAQ,IAAI,eAAe,EAAE;YACpC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,KAAK,CAAC;SACzC;IAGH,CAAC;IAED,cAAc,CAAC,iBAA0B;QAEvC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC;YACrD,IAAI,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAC1F,IAAI,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,cAAc,IAAI,IAAI,CAAC;YACzD,IAAI,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,cAAc,GAAG,IAAI,CAAC,sBAAsB,CAAC;QAClG,IAAI,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC;YACpD,IAAI,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC;QACxF,IAAI,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC;YAC3D,IAAI,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,gBAAgB,GAAG,IAAI,CAAC,wBAAwB,CAAC;QACtG,IAAI,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC;YACnD,IAAI,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC;QACtF,IAAI,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC;YACvD,IAAI,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC;QAC9F,IAAI,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC;YAClD,IAAI,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC;QACpF,IAAI,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,aAAa,IAAI,IAAI,CAAC;YACxD,IAAI,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,aAAa,GAAG,IAAI,CAAC,qBAAqB,CAAC;QAChG,IAAI,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC;YACrD,IAAI,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,UAAU,CAAC;QAC3G,IAAI,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC;YACrD,IAAI,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,UAAU,CAAC;QAC3G,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,eAAe,GAAG,iBAAiB,CAAC;QAEvF,IAAI,IAAI,CAAC,iBAAiB,CAAC,2BAA2B,IAAI,IAAI,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,UAAU,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;YACpJ,IAAI,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;QACnF,IAAI,IAAI,CAAC,iBAAiB,CAAC,2BAA2B,IAAI,IAAI,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,UAAU,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;YACpJ,IAAI,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;QACnF,IAAI,IAAI,CAAC,iBAAiB,CAAC,2BAA2B,IAAI,IAAI,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,YAAY,IAAI,IAAI,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,YAAY,IAAI,CAAC;YAC/L,IAAI,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,YAAY,CAAC,CAAC;QAC9J,IAAI,CAAC,sBAAsB,CAAC,uBAAuB,CAAC,IAAI,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,CAAC,SAAS,CAAC,CAAC,sBAAqC,EAAE,EAAE;YAC1J,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,8BAA8B,GAAG,sBAAsB,CAAC;YAC7D,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,8BAA8B,CAAC;YAChD,IAAI,CAAC,8BAA8B,CAAC,OAAO,CAAC,CAAC,GAAgB,EAAE,EAAE;gBAC/D,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACnD,GAAG,CAAC,QAAQ,GAAG,mCAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBACzD,GAAG,CAAC,0BAA0B,GAAG,GAAG,CAAC,0BAA0B,IAAI,mCAAM,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBAC/H,GAAG,CAAC,8BAA8B,GAAG,MAAM,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC3F,GAAG,CAAC,kBAAkB,GAAG,CAAC,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;gBACjE,GAAG,CAAC,kBAAkB,GAAG,CAAC,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;gBACjE,GAAG,CAAC,kBAAkB,GAAG,CAAC,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,EAAC,CAAC,IAAI,CAAC;gBAChE,GAAG,CAAC,mBAAmB,GAAE,CAAC,GAAG,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,EAAC,CAAC,IAAI,CAAC;YACnE,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAc,IAAI,CAAC,8BAA8B,CAAC,CAAC;YAC3F,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,8BAA8B,CAAC,MAAM,CAAC;YACpE,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAEnC,CAAC,EACC,CAAC,KAAU,EAAE,EAAE;YACb,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,KAAK,CAAC,KAAK,IAAI,SAAS,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE;gBAC/C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;oBACpC,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,oCAAoC,CAAC,EAAE,kBAAkB,EAAE,OAAO;oBAC/F,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QACL,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAGD,cAAc;QAEZ,IAAI,IAAI,CAAC,2BAA2B,GAAG,CAAC,EAAE;YACxC,IAAI,GAAG,GAAQ,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,IAAI,IAAI,CAAC,2BAA2B,CAAC,QAAQ,EAAE,CAAC,CAAC;YACvH,IAAI,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,sBAAsB,GAAG,GAAG,CAAC,KAAK,CAAC;SACvF;IAEH,CAAC;IAED,gBAAgB,CAAC,YAAoB;QACnC,IAAI,eAAe,GAAW,EAAE,CAAC;QACjC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,YAAY,EAAE;YAC3C,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;SACvD;QACD,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,KAAK;QAEH,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,CAAC;QACpC,IAAI,CAAC,UAAU,CAAC;QAChB,IAAI,CAAC,WAAW,CAAC;QACjB,8BAA8B;QAE9B,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAChF,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAE5D,IAAI,CAAC,8BAA8B,GAAG,EAAE,CAAC;QAEzC,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QAC9E,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACjC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,8BAA8B,CAAC,MAAM,CAAC;QAEpE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC/D,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACtE,CAAC;IAED,YAAY;QACV,2DAA2D;QAC3D,0BAA0B;QAC1B,4BAA4B;QAC5B,sCAAsC;QACtC,0BAA0B;QAC1B,gCAAgC;QAChC,gCAAgC;QAChC,+BAA+B;QAC/B,8BAA8B;QAC9B,4BAA4B;QAC5B,sCAAsC;QACtC,sCAAsC;QACtC,8CAA8C;QAC9C,wBAAwB;QACxB,iDAAiD;QACjD,0BAA0B;QAC1B,6CAA6C;QAC7C,sCAAsC;QACtC,wCAAwC;QACxC,4CAA4C;QAC5C,yCAAyC;QACzC,wCAAwC;QACxC,+CAA+C;QAC/C,OAAO;QACP,IAAI,eAAe,GAAC,EAAE;QACtB,IAAI,iBAAiB,GAAC,EAAE;QACxB,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC;YAC5C,IAAI,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;YACjD,iBAAiB,GAAC,EAAE;YACpB,KAAI,MAAM,GAAG,IAAI,mBAAmB,EAAC;gBAClC,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC;oBAC5C,IAAG,GAAG,KAAK,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,EAAC;wBACvC,IAAI,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,MAAM;wBACxC,iBAAiB,CAAC,GAAG,CAAC,GAAC,mBAAmB,CAAC,GAAG,CAAC;wBAChD,MAAK;qBACL;iBACF;aACH;YACD,eAAe,CAAC,IAAI,CAAC,iBAAiB,CAAC;SACxC;QACD,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,eAAe,EAAC,iBAAiB,CAAC;IAC3E,CAAC;;8FA75BU,uBAAuB;uGAAvB,uBAAuB;kEAkEvB,wEAAY;kEACZ,8DAAO;kEACP,iEAAkB;;;;;;;;;;;QCtGvB;QAAA,gFACI;QAAA;QAAA,yFACE;QAD2C,yKAAe,CAAC,IAAC,iHAAgB,CAAC,IAAjB;QAC5D;QAAA,6FACE;QAAA;QAAA,kFACI;QAAA;QAAA,2EAAU;QAAA,uEAAW;QAAA,4DAAW;QAAC,0GACrC;QAAA,4DAAkB;QACnB;QAAA,4DAA6B;QAE7B;QAAA,2EACC;QAAA;QAAA,0EACI;QAAA;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAY;QAAA,2EAAc;QAAA,4DAAY;QACtC;QAAA,uEAEA;QAAA;QAAA,2HAEI;QAEJ;QAAA,6FACI;QAAA;QAAA,mIAGI;;QAER;QAAA,4DAAmB;QACvB;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,sEAAU;QAAA,4DAAY;QACjC;QAAA,uEAEA;QAAA;QAAA,2HAGI;QAEJ;QAAA,8FACI;QAAA;QAAA,mIAGI;;QAER;QAAA,4DAAmB;QACvB;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,mEAAO;QAAA,4DAAY;QAC9B;QAAA,wEAEA;QAAA;QAAA,2HAEI;QAEJ;QAAA,8FACI;QAAA;QAAA,mIAGI;;QAER;QAAA,4DAAmB;QACvB;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACV;QAAA,4DAAM;QACN;QACA;QAAA,0EACI;QAAA;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,2EAAe;QAAA,4DAAY;QACtC;QAAA,wEAEA;QAAA;QAAA,2HAGI;QAEJ;QAAA,8FACI;QAAA;QAAA,mIAGI;;QAER;QAAA,4DAAmB;QACvB;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,sFACI;QAAA;QAAA,8EAAW;QAAA,mEAAM;QAAA,4DAAY;QAC7B;QAAA,yEAEA;QAAA;QAAA,6HAEI;QAEJ;QAAA,+FACI;QAAA;QAAA,qIAGI;;QAER;QAAA,4DAAmB;QACvB;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,sFACI;QAAA;QAAA,8EAAW;QAAA,uEAAU;QAAA,4DAAY;QACjC;QAAA,yEAEA;QAAA;QAAA,6HAGI;QAEJ;QAAA,+FACI;QAAA;QAAA,qIAGI;;QAER;QAAA,4DAAmB;QACvB;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACV;QAAA,4DAAM;QACN;QACA;QAAA,2EACI;QAAA;QAAA,2EACI;QAAA;QAAA,sFACI;QAAA;QAAA,8EAAW;QAAA,kEAAK;QAAA,4DAAY;QAC5B;QAAA,yEAEA;QAAA;QAAA,6HAEI;QAEJ;QAAA,+FACI;QAAA;QAAA,qIAGI;;QAER;QAAA,4DAAmB;QACvB;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,sFACI;QAAA;QAAA,8EAAW;QAAA,wEAAW;QAAA,4DAAY;QAClC;QAAA,yEAEA;QAAA;QAAA,6HAGI;QAEJ;QAAA,+FACI;QAAA;QAAA,qIAGI;;QAER;QAAA,4DAAmB;QACvB;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QACA;QAAA,8EAAW;QAAA,mFAAsB;QAAA,4DAAY;QAC7C;QAAA,mFAC2D;QAAvD,uNAAyC;QAAC,4DAAa;QAAA,yDAC3D;QACJ;QAAA,4DAAM;QACV;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,2EACI;QAAA;QAAA,sFACI;QAAA;QAAA,8EAAW;QAAA,qEAAQ;QAAA,4DAAY;QAC/B;QAAA,mFAEI;QADA,+KAAkB,yBAAqB;QACvC;QAAA,sIACI;QACR;QAAA,4DAAa;QACjB;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,sFACI;QAAA;QAAA,8EAAW;QAAA,qEAAQ;QAAA,4DAAY;QAC/B;QAAA,mFAEI;QADA,+KAAkB,yBAAqB;QACvC;QAAA,sIACI;QACR;QAAA,4DAAa;QACjB;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,4EACI;QAAA;QAAA,4EACI;QAAA;QAAA,+EACI;QADuB,iJAAS,WAAO,IAAC;QACxC;QAAA,6EAAU;QAAA,kEAAK;QAAA,4DAAW;QAAC,iGAC/B;QAAA,4DAAS;QACT;QAAA,+EACI;QADoC,iJAAS,sBAAkB,IAAC;QAChE,kIACJ;QAAA,4DAAS;QACb;QAAA,4DAAM;QACV;QAAA,4DAAM;QACV;QAAA,4DAAM;QACV;QAAA,4DAAO;QAEP;QAAA,4DAAsB;QACxB;QAAA,4DAAgB;QAI1B;QAAA,iFACI;QAAA;QAAA,wEACI;QAAA;QAAA,4EACI;QAAA;QAAA,2EACI;QAAA;QAAA,2EACI;QAAA;QAAA,sFACI;QAAA;QAAA,8EAAW;QAAA,yDAA2C;QAAA,4DAAY;QAClE;QAAA,mFAGI;QADA,+KAAmB,sBAAkB,IAAC;QACtC;QAAA,+EACI;QAAA;QAAA,yFACkE;QACtE;QAAA,4DAAa;QACb;QAAA,uFAAoE;QAA3C,qJAAS,wBAAoB,IAAC;QAAa,gEAAG;QAAA,4DAAa;QACpF;QAAA,sIACI;;QAER;QAAA,4DAAa;QACjB;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,4EACI;QAAA;QAAA,sEAAG;QAAA,2EAAc;QAAA,4DAAI;QACrB;QAAA,yEAAM;QAAA,yDAA+C;QAAA,4DAAO;QAChE;QAAA,4DAAM;QACV;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,4EAEA;QAAA;QAIA;QAAA,oHAEI;QAER;QAAA,4DAAM;QACN;QAAA,4DAAM;QACV;QAAA,4DAAM;QACN;QAAA,4EACI;QAAA;QAAA,kFACI;QAAA;QAAA,0IACI;QAIJ;QAAA,sHAAkD;QAElD;QAAA,sHAAwD;QACxD;QAAA,sHACI;QAER,4DAAQ;QACZ;QAAA,4DAAM;QACN;QAAA,4EACI;QAAA;QAAA,iFAAgE;QACpE;QAAA,4DAAM;QACV;QAAA,4DAAO;QACX;QAAA,4DAAM;QACV;QAAA,4DAAW;QACX;QAAA,oFAEI;QAAA;QAAA,0EAAmB;QAAA,wEAAW;QAAA,4DAAI;QACtC;QAAA,4DAAc;;;;;;;;;;QAnRmB,0DAAuB;QAAvB,oFAAuB;QAOnC,2DAAgC;QAAhC,6FAAgC;QAGb,0DAA+B;QAA/B,uGAA+B;QAGrB,0DAAyB;QAAzB,gFAAyB;QAChB,0DAA2C;QAA3C,yGAA2C;QAOlE,0DAAgD;QAAhD,8JAAgD;QAO5C,0DAA+B;QAA/B,uGAA+B;QAGjB,0DAAyB;QAAzB,gFAAyB;QACpB,0DAA+C;QAA/C,6GAA+C;QAQtE,0DAAgD;QAAhD,8JAAgD;QAO5C,0DAA+B;QAA/B,uGAA+B;QAGtB,0DAAyB;QAAzB,gFAAyB;QACf,0DAA0C;QAA1C,wGAA0C;QAOjE,0DAA6C;QAA7C,2JAA6C;QAUzC,2DAA+B;QAA/B,uGAA+B;QAGoB,0DAAyB;QAAzB,iFAAyB;QACzD,0DAAiD;QAAjD,+GAAiD;QAQxE,0DAAoD;QAApD,kKAAoD;QAOhD,0DAA+B;QAA/B,uGAA+B;QAGvB,0DAAyB;QAAzB,iFAAyB;QACd,0DAAyC;QAAzC,uGAAyC;QAOhE,0DAA4C;QAA5C,2JAA4C;QAOxC,0DAA+B;QAA/B,uGAA+B;QAGnB,0DAAyB;QAAzB,iFAAyB;QAClB,0DAA6C;QAA7C,2GAA6C;QAQpE,0DAAgD;QAAhD,+JAAgD;QAU5C,2DAA+B;QAA/B,uGAA+B;QAGvC,0DAAyB;QAAzB,iFAAyB;QACE,0DAAwC;QAAxC,sGAAwC;QAO/D,0DAA2C;QAA3C,0JAA2C;QAOvC,0DAA+B;QAA/B,uGAA+B;QAGlB,0DAAyB;QAAzB,iFAAyB;QACnB,0DAA8C;QAA9C,4GAA8C;QAQrE,0DAAiD;QAAjD,gKAAiD;QASmB,2DAAmB;QAAnB,4EAAmB;QACxC,0DAC3D;QAD2D,mIAC3D;QAKgB,0DAA+B;QAA/B,uGAA+B;QAI3B,0DAA+B;QAA/B,mFAA+B;QAMnC,0DAA+B;QAA/B,uGAA+B;QAI3B,0DAA+B;QAA/B,mFAA+B;QAyB7D,2DAAgC;QAAhC,6FAAgC;QAGV,0DAAmC;QAAnC,uGAAmC;QACpC,0DAA2C;QAA3C,qHAA2C;QAC1C,0DAAwD;QAAxD,qHAAwD;QAOR,0DAAW;QAAX,oEAAW;QACvD,0DAA4C;QAA5C,+JAA4C;QAStD,2DAA+C;QAA/C,sHAA+C;QAUtD,0DAA+C;QAA/C,+GAA+C;QAQb,0DAAyB;QAAzB,sFAAyB;QAChD,0DAAmC;QAAnC,wFAAmC;QAK9B,0DAA8B;QAA9B,4FAA8B;QAErC,0DAA2C;QAA3C,6FAA2C;QAO5C,0DAAgC;QAAhC,mJAAgC;QAKL,0DAAoB;QAApB,6EAAoB;;6FD/OjE,uBAAuB;cANnC,uDAAS;eAAC;gBACT,QAAQ,EAAE,qBAAqB;gBAC/B,WAAW,EAAE,kCAAkC;gBAC/C,SAAS,EAAE,CAAC,kCAAkC,CAAC;aAChD;6kBAoE0B,SAAS;kBAAjC,uDAAS;mBAAC,wEAAY;YACH,IAAI;kBAAvB,uDAAS;mBAAC,8DAAO;YACa,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;YACT,KAAK;kBAAxB,uDAAS;mBAAC,OAAO;YAEgB,WAAW;kBAA5C,uDAAS;mBAAC,aAAa;;;;;;;;;;;;;;AEnG1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAoI;AAC3E;AAC0C;AAE9B;AAMpB;AACY;AAI5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICGT,gFAA8H;IAA9C,waAA6C;IAAC,uDAA2B;IAAA,4DAAa;;;IAAtH,4FAA+B;IAA+C,0DAA2B;IAA3B,4FAA2B;;;;IAwBjI,wEAEI;IADA,+VAAS,gBAAqB,KAAK,cAAY,mBAAmB,GAAE,IAAC;IACrE;IAAA,qEAAiC;IACrC;IAAA,4DAAI;;;IAOhB,yEAA+E;IAAA,6GAC/E;IAAA,4DAAK;;;IACL,yEAAuC;IAAA,uDAA2B;IAAA,4DAAK;;;IAAhC,0DAA2B;IAA3B,4FAA2B;;;IAGlE,yEAA+E;IAAA,oHAC/E;IAAA,4DAAK;;;IACL,yEAAuC;IAAA,uDAAkC;IAAA,4DAAK;;;IAAvC,0DAAkC;IAAlC,mGAAkC;;;IAGzE,yEAA+E;IAAA,8GAC/E;IAAA,4DAAK;;;;IACL,yEAAuC;IAAA,wEAAwD;IAArD,4WAA8B;IAAuB,uDAAyB;IAAA,4DAAI;IAAA,4DAAK;;;IAAlC,0DAAyB;IAAzB,0FAAyB;;;IAE5H,oEAAuD;;;IAEvD,oEAA6D;;;IAC7D,yEACI;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAErD;IAHI,4DACI;;;;IAwBI,wEAEI;IADA,kWAAS,iBAAmB,KAAK,cAAY,2BAA2B,GAAE,IAAC;IAC3E;IAAA,qEAAiC;IACrC;IAAA,4DAAI;;;IAOR,yEAA+E;IAAA,6GAC/E;IAAA,4DAAK;;;IACL,yEAAuC;IAAA,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,wFAAuB;;;IAG9D,yEAA+E;IAAA,6GAC/E;IAAA,4DAAK;;;;IAEL,yEAAwG;IAAjE,0XAA0C;IAAuB,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,wFAAuB;;;IAG/H,yEAA+E;IAAA,iHAC/E;IAAA,4DAAK;;;IACL,yEAAuC;IAAA,uDAA2B;IAAA,4DAAK;;;IAAhC,0DAA2B;IAA3B,4FAA2B;;;IAG9D,yEAA+E;IAAA,2GAC/E;IAAA,4DAAK;;;IACL,yEAAuC;IAAA,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,uFAAsB;;;IAErE,oEAA0D;;;IAE1D,oEAAgE;;;IAChE,yEACI;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAErD;IAHI,4DACI;;;;IA6BA,wEAEI;IADA,gXAAS,iBAAmB,KAAK,cAAY,2BAA2B,GAAE,IAAC;IAC3E;IAAA,qEAAiC;IACrC;IAAA,4DAAI;;;IAOR,yEAA+E;IAAA,wGAC/E;IAAA,4DAAK;;;IACL,yEAAuC;IAAA,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,wFAAuB;;;IAG9D,yEAA+E;IAAA,wGAC/E;IAAA,4DAAK;;;;IAEL,yEAAwG;IAAjE,0YAA0C;IAAuB,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,wFAAuB;;;IAG/H,yEAA+E;IAAA,6GAC/E;IAAA,4DAAK;;;IACL,yEAAuC;IAAA,uDAA2B;IAAA,4DAAK;;;IAAhC,0DAA2B;IAA3B,4FAA2B;;;IAG9D,yEAA+E;IAAA,uGAC/E;IAAA,4DAAK;;;IACL,yEAAuC;IAAA,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,uFAAsB;;;IAErE,oEAA0D;;;IAE1D,oEAAgE;;;IAChE,yEACI;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAErD;IAHI,4DACI;;;;;IA9CxB;IAAA,yEACQ;IAAA;IAAA,yEAAqB;IAAA,0EAAe;IAAA,4DAAK;IAEzC;IAAA,4DAAM;IACd;IAAA,sEACQ;IAAA;IAAA,uEACI;IAAA;IAIY;IAAA,2EAEI;IAAA;IAAA,qIAEI;IAER;IAAA,4DAAM;IACd;IAEJ;IAAA,2EACI;IAAA;IAAA,iFACI;IAAA;IAAA,6EACI;IAAA;IAAA,uIAA+E;IAE/E;IAAA,uIAAuC;IAC3C;IAAA,qEAAe;IACf;IAAA,6EACI;IAAA;IAAA,uIAA+E;IAE/E;IACA;IAAA,uIAAwG;IAC5G;IAAA,qEAAe;IACf;IAAA,6EACI;IAAA;IAAA,uIAA+E;IAE/E;IAAA,uIAAuC;IAC3C;IAAA,qEAAe;IACf;IAAA,6EACQ;IAAA;IAAA,uIAA+E;IAE/E;IAAA,uIAAuC;IAC3C;IAAA,qEAAe;IACnB;IAAA,uIAAqD;IAErD;IAAA,uIAA2D;IAC3D;IAAA,uIACI;IAER,4DAAQ;IACZ;IAAA,4DAAM;IACN;IAAA,2EACI;IAAA;IAAA,oFAA+E;IACnF;IAAA,4DAAM;IACN;IAAA,2EACI;IAD4B,2UAAuB;IACnD;IAAA,8EACI;IAAA,+FAAK;IAAA,4DAAS;IACtB;IAAA,4DAAM;IACV;IAAA,4DAAO;IACX;IAAA,4DAAM;IACf;;;IA/CoC,2DAAqB;IAArB,wFAAqB;IAQQ,0DAAkC;IAAlC,mGAAkC;IAsBvD,2DAAiC;IAAjC,mGAAiC;IAExC,0DAA8C;IAA9C,oGAA8C;IAOnC,0DAAmC;IAAnC,kJAAmC;;AD9K/E,MAAM,0BAA0B;IAqCrC,YAAoB,uBAA8C,EAAS,GAAsB,EAAQ,MAAiB,EAAU,EAAe,EAAU,OAAiC,EACpL,OAA0B,EAAU,SAAsB,EAAU,OAAe;QADzE,4BAAuB,GAAvB,uBAAuB,CAAuB;QAAS,QAAG,GAAH,GAAG,CAAmB;QAAQ,WAAM,GAAN,MAAM,CAAW;QAAU,OAAE,GAAF,EAAE,CAAa;QAAU,YAAO,GAAP,OAAO,CAA0B;QACpL,YAAO,GAAP,OAAO,CAAmB;QAAU,cAAS,GAAT,SAAS,CAAa;QAAU,YAAO,GAAP,OAAO,CAAQ;QApC7F,oBAAe,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QAqBnD,gBAAW,GAAG,CAAC,aAAa,EAAE,oBAAoB,EAAE,cAAc,CAAC,CAAC;QACpE,mBAAc,GAAG,CAAC,aAAa,EAAE,aAAa,EAAE,kBAAkB,EAAE,QAAQ,CAAE;QAM9E,SAAI,GAAC,CAAC,CAAC;QAEP,WAAM,GAAG,IAAI,CAAC;IAMmF,CAAC;IAElG,QAAQ;QACN,sBAAsB;QACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,WAAW;QAC5F,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,cAAc,EAAE,CAAC;QAC9D,oDAAoD;QACrD,wDAAwD;QACvD,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QACd,6DAA6D;QAC7D,8DAA8D;QAC9D,mDAAmD;QACnD,oDAAoD;QACpD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YAClC,WAAW,EAAE,IAAI,0DAAW,EAAE;SAC/B,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,GAAsB,EAAC,EAAE;YAC3E,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;YACvB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAE;YACd,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,2CAA2C,EAAE,GAAG,EAAE;gBACpE,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACN,CAAC,CAAC,CAAC;QAAA,CAAC;IACL,CAAC;IACD,WAAW,CAAC,WAA8B;QAGxC,IAAG,WAAW,CAAC,aAAa,IAAI,CAAC,EACjC;YAEA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAEpB,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;YACnD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC1B;aACG;YACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kCAAkC,EAAE,GAAG,EAAE;gBAC3D,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;SACJ;IACH,CAAC;IACD,uBAAuB,CAAC,SAA0B;QAChD,IAAI,CAAC,uBAAuB,CAAC,4BAA4B,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC/E,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,mCAAmC,GAAE,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;QAC1F,CAAC,EAAE,GAAG,CAAC,CAAC;IACV,CAAC;IACD,mBAAmB,CAAC,MAAc;QAEhC,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,GAAwB,EAAC,EAAE;YAE1F,IAAI,CAAC,eAAe,GAAG,IAAI,0EAAkB,CAAC,GAAG,CAAC,CAAC;YAGnD,IAAI,CAAC,eAAe,CAAC,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC;YAC1D,IAAI,CAAC,eAAe,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACtC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;YACjB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAE1B,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAE;YACd,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gDAAgD,EAAE,GAAG,EAAE;gBACzE,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAAA,CAAC;IACF,CAAC;IACD,eAAe;QAEjB,6DAA6D;QAC7D,kEAAkE;QAClE,6CAA6C;QAC7C,gDAAgD;IAC9C,CAAC;IACD,kBAAkB,CAAC,aAAqB;QAEtC,IAAI,CAAC,OAAO,CAAC,2BAA2B,CAAC,aAAa,CAAC,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,GAAsB,EAAE,EAAE;YAChG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,eAAe,IAAE,IAAI,EAAE;gBAAC,CAAC,CAAC,eAAe,GAAE,mCAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;aAAC,EAAC,CAAC;YACxH,IAAI,CAAC,mBAAmB,GAAG,IAAI,0EAAkB,CAAC,GAAG,CAAC,CAAC;YACxD,sCAAsC;YACrC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;YACzB,IAAI,CAAC,mBAAmB,CAAC,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC;YAC7D,IAAI,CAAC,mBAAmB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YAC1C,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;YACtB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YACf,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oDAAoD,EAAE,GAAG,EAAE;gBAC7E,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAAA,CAAC;IACN,CAAC;IACD,KAAK;QAEH,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IACD,YAAY,CAAC,GAAG;QAEd,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;YAC9B,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAC;SAChB;QACC,IAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,IAAE,IAAI,CAAC,WAAW,CAAC,MAAM;YAC/E,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;IAE9B,CAAC;IACC,kBAAkB;QAEhB,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;YAC7B,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW;iBACrC,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SACzE;aAAM;YACL,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;SACzD;IACH,CAAC;IACF,UAAU;QACR,MAAM,YAAY,GAAG,IAAI,wEAAe,EAAE,CAAC;QAC3C,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACjE,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACjD,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,MAAM,EAAE,CAAC,CAAC;QACnG,CAAC,CAAC,CAAC;IACL,CAAC;IACD,WAAW;QACT,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;IAClC,CAAC;IACD,KAAK;QAEH,IAAI,CAAC,IAAI,GAAC,CAAC,CAAC;QAEb,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACnB,IAAI,CAAC,MAAM,GAAC,IAAI,CAAC;QACjB,IAAI,CAAC,GAAC,CAAC,CAAC;QACR,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE;YAGlD,KAAK,IAAI,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE;gBAC9D,IAAI,GAAG,IAAI,CAAC,EAAE;oBACZ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;oBACnB,MAAM;iBACP;gBAED,IAAI,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;oBAClE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC;iBACvC;qBACI;oBACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;oBAChC,MAAM;iBACP;gBACD,CAAC,EAAE,CAAC;aACL;SACF;QACF,IAAG,IAAI,CAAC,MAAM,IAAI,IAAI,EACtB;YACE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;SACpB;QACD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEvC,CAAC;;oGAhNU,0BAA0B;0GAA1B,0BAA0B;;;;;;;kEAgB1B,8DAAO;;;;;;;;;;;;;QC5CpB,yEAEI;QAAA;QAAA,gFACI;QAAA;QAAA,yFACE;QAD2C,4KAAe,CAAC,IAAC,oHAAgB,CAAC,IAAjB;QAC5D;QAAA,6FACE;QAAA;QAAA,kFACI;QAAA;QAAA,4EAAU;QAAA,uEAAW;QAAA,4DAAW;QAAC,mGACrC;QAAA,4DAAkB;QACnB;QAAA,4DAA6B;QAChC;QAAA,2EACI;QAAA;QAAA,uEACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,wEAAY;QAAA,4DAAY;QAEnC;QAAA,iFAEQ;QAAA;QAOA;QAAA,oFAAqE;QAA5C,uJAAS,wBAAoB,IAAC;QAAc,+DAAG;QAAA,4DAAa;QACzF;QAAA,sIAA8H;QAElI;QAAA,4DAAa;QACjB;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,6EACI;QADqC,mJAAS,WAAO,IAAC;QACtD,uFAAK;QAAA,4DAAS;QAClB;QAAA,8EACI;QAD+D,mJAAS,WAAO,IAAC;QAChF,uFAAK;QAAA,4DAAS;QACtB;QAAA,4DAAM;QACV;QAAA,4DAAO;QACJ;QAAA,4DAAsB;QACtB;QAAA,4DAAgB;QAEhB;QAAA,gFACK;QAAA;QAAA,uEACI;QAAA;QAAA,wEACQ;QAAA;QAIgB;QAAA,2EAEI;QAAA;QAAA,qHAEI;QAER;QAAA,4DAAM;QACd;QAEZ;QAAA,2EACI;QAAA;QAAA,iFACI;QAAA;QAAA,6EACI;QAAA;QAAA,uHAA+E;QAE/E;QAAA,uHAAuC;QAC3C;QAAA,qEAAe;QACf;QAAA,6EACI;QAAA;QAAA,uHAA+E;QAE/E;QAAA,uHAAuC;QAC3C;QAAA,qEAAe;QACf;QAAA,6EACI;QAAA;QAAA,uHAA+E;QAE/E;QAAA,uHAAuC;QAC3C;QAAA,qEAAe;QACf;QAAA,uHAAkD;QAElD;QAAA,uHAAwD;QACxD;QAAA,uHACI;QAER,4DAAQ;QACZ;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,oFAA+E;QACnF;QAAA,4DAAM;QAEV;QAAA,4DAAO;QACX;QAAA,4DAAM;QACV;QAAA,4DAAW;QACX;QAAA,iFACI;QAAA;QAAA,2EACI;QAAA;QAAA,2EAAqB;QAAA,4EAAe;QAAA,4DAAK;QAEzC;QAAA,4DAAM;QACd;QAAA,wEACQ;QAAA;QAAA,yEACI;QAAA;QAIY;QAAA,4EAEI;QAAA;QAAA,uHAEI;QAER;QAAA,4DAAM;QACd;QAEJ;QAAA,4EACI;QAAA;QAAA,kFACI;QAAA;QAAA,8EACI;QAAA;QAAA,yHAA+E;QAE/E;QAAA,yHAAuC;QAC3C;QAAA,qEAAe;QACf;QAAA,8EACI;QAAA;QAAA,yHAA+E;QAE/E;QACA;QAAA,yHAAwG;QAC5G;QAAA,qEAAe;QACf;QAAA,8EACI;QAAA;QAAA,yHAA+E;QAE/E;QAAA,yHAAuC;QAC3C;QAAA,qEAAe;QACf;QAAA,8EACQ;QAAA;QAAA,yHAA+E;QAE/E;QAAA,yHAAuC;QAC3C;QAAA,qEAAe;QACnB;QAAA,yHAAqD;QAErD;QAAA,yHAA2D;QAC3D;QAAA,yHACI;QAER,4DAAQ;QACZ;QAAA,4DAAM;QACN;QAAA,4EACI;QAAA;QAAA,qFAA+E;QACnF;QAAA,4DAAM;QACN;QAAA,4EACI;QAD4B,iJAAS,iBAAa,IAAC;QACnD;QAAA,+EACI;QAAA,oGAAK;QAAA,4DAAS;QACtB;QAAA,4DAAM;QACV;QAAA,4DAAO;QACX;QAAA,4DAAM;QACV;QAAA,4DAAW;QAEvB;QAAA,4DAAM;QACN;QAAA,wNACQ;QA4DR;;QAhN6B,0DAAuB;QAAvB,oFAAuB;QAMtC,2DAA4B;QAA5B,yFAA4B;QAEV,0DAAgC;QAAhC,sGAAgC;QAYoB,0DAAW;QAAX,oEAAW;QAC3D,0DAAmC;QAAnC,oFAAmC;QAwBpB,2DAAuB;QAAvB,sFAAuB;QAQL,0DAA8B;QAA9B,2FAA8B;QAgBhD,2DAA8B;QAA9B,4FAA8B;QAErC,0DAA2C;QAA3C,6FAA2C;QAOhC,0DAAmC;QAAnC,mJAAmC;QAmB/C,2DAAqB;QAArB,oFAAqB;QAQQ,0DAAkC;QAAlC,+FAAkC;QAsBvD,2DAAiC;QAAjC,+FAAiC;QAExC,0DAA8C;QAA9C,gGAA8C;QAOnC,0DAAmC;QAAnC,mJAAmC;;6FD/G7E,0BAA0B;cALtC,uDAAS;eAAC;gBACT,QAAQ,EAAE,wBAAwB;gBAClC,WAAW,EAAE,qCAAqC;gBAClD,SAAS,EAAE,CAAC,qCAAqC,CAAC;aACnD;+qBAI+B,eAAe;kBAA5C,uDAAS;mBAAC,iBAAiB;YACgB,mBAAmB;kBAA9D,uDAAS;mBAAC,YAAY,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;YAQC,iBAAiB;kBAA1D,uDAAS;mBAAC,UAAU,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;YACC,YAAY;kBAArD,uDAAS;mBAAC,UAAU,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;YACE,kBAAkB;kBAA3D,uDAAS;mBAAC,UAAU,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;YACE,aAAa;kBAAtD,uDAAS;mBAAC,UAAU,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;YACD,IAAI;kBAA1C,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;YAiBH,WAAW;kBAA5C,uDAAS;mBAAC,aAAa;;;;;;;;;;;;;;AE7D1B;AAAA;AAAA;AAAkD;;AAO3C,MAAM,oBAAoB;IAE/B,gBAAgB,CAAC;IAEjB,QAAQ;IACR,CAAC;;wFALU,oBAAoB;oGAApB,oBAAoB;QCPjC,oEAAG;QAAA,8EAAmB;QAAA,4DAAI;QAC1B;;6FDMa,oBAAoB;cALhC,uDAAS;eAAC;gBACT,QAAQ,EAAE,kBAAkB;gBAC5B,WAAW,EAAE,+BAA+B;gBAC5C,SAAS,EAAE,CAAC,+BAA+B,CAAC;aAC7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AEN4D;AAYC;AAI7B;AAC4B;AACF;AACE;AAK5B;;;;;;;;;;;;;;;;;;IChBL;IAAA,+EAAmC;IAAA,oEAAS;IAAA,4DAAW;IACvD,sHACJ;;;IAUI;IAAA,+EAAmC;IAAA,oEAAS;IAAA,4DAAW;IACvD,sHACJ;;;IAiBI,yEAAgF;IAAA,qGAChF;IAAA,4DAAK;;;IACL,yEAAuC;IAAA,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,wFAAuB;;;IAG9D,yEAAgF;IAAA,mGAChF;IAAA,4DAAK;;;IACL,yEAAuC;IAAA,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,0FAAyB;;;IAEpE,oEAA4D;;;IAC5D,oEAAkE;;;IAe9D,uEAA2C;IAAA,+GACvC;IAAA,yEAAS;IAAA,uDAAwB;IAAA,4DAAS;IAC9C;IAAA,4DAAO;;;IADM,0DAAwB;IAAxB,kGAAwB;;;IAerC,yEAAgF;IAAA,uGAChF;IAAA,4DAAK;;;IACL,yEAAuC;IAAA,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,yFAAwB;;;IAG/D,yEAAgF;IAAA,uGAChF;IAAA,4DAAK;;;IACL,yEAAuC;IAAA,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,yFAAwB;;;IAG/D,yEAAgF;IAAA,qGAChF;IAAA,4DAAK;;;IACL,yEAAuC;IAAA,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,wFAAuB;;;IAG9D,yEAAgF;IAAA,kEAAM;IAAA,4DAAK;;;IAC3F,yEAAuC;IAAA,uDAAiB;IAAA,4DAAK;;;IAAtB,0DAAiB;IAAjB,kFAAiB;;;IAGxD,yEAAgF;IAAA,oGAChF;IAAA,4DAAK;;;IACL,yEAAuC;IAAA,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,uFAAsB;;;IAG7D,yEAAgF;IAAA,kGAChF;IAAA,4DAAK;;;IACL,yEAAuC;IAAA,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,uFAAsB;;;IAG7D,yEAAgF;IAAA,oGAChF;IAAA,4DAAK;;;IACL,yEAAuC;IAAA,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,wFAAuB;;;IAG9D,yEAAgF;IAAA,wGAChF;IAAA,4DAAK;;;IACL,yEAAuC;IAAA,uDAA0B;IAAA,4DAAK;;;IAA/B,0DAA0B;IAA1B,2FAA0B;;;IAGjE,yEAAgF;IAAA,wGAChF;IAAA,4DAAK;;;IACL,yEAAuC;IAAA,uDAA6B;IAAA,4DAAK;;;IAAlC,0DAA6B;IAA7B,8FAA6B;;;IAGpE,yEAAgF;IAAA,uHAChF;IAAA,4DAAK;;;IACL,yEAAuC;IAAA,uDAAsC;IAAA,4DAAK;;;IAA3C,0DAAsC;IAAtC,uGAAsC;;;IAEjF,oEAA6D;;;IAC7D,oEAAmE;;;ADlGpF,MAAM,mBAAmB;IAmD9B,YAAoB,yBAAkD,EAClD,mBAAwC,EACzC,UAAsB,EACrB,OAA0B;QAH1B,8BAAyB,GAAzB,yBAAyB,CAAyB;QAClD,wBAAmB,GAAnB,mBAAmB,CAAqB;QACzC,eAAU,GAAV,UAAU,CAAY;QACrB,YAAO,GAAP,OAAO,CAAmB;QArD9C,cAAS,GAAG,KAAK,CAAC,CAAC,sCAAsC;QACzD,sBAAiB,GAA0B,EAAE,CAAC,CAAC,yCAAyC;QAChF,0BAAqB,GAA0B,EAAE,CAAC,CAAC,8BAA8B;QAEjF,8BAAyB,GAAa,EAAE,CAAC,CAAC,4BAA4B;QACtE,8BAAyB,GAAa,EAAE,CAAC,CAAC,6BAA6B;QAE/E,iBAAY,GAAyB,EAAE,CAAC,CAAC,oDAAoD;QAG7F,kCAAkC;QAClC,mBAAc,GAAG,EAAE,CAAC;QAEpB,eAAU,GAAG,+DAAa,CAAC;QAE3B,iBAAY,GAAa,EAAE,CAAC;QAC5B,uBAAkB,GAAG,KAAK,CAAC;QACnB,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QAKtD,qBAAgB,GAAa,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;QAC9D,sBAAiB,GAAa;YAC5B,cAAc;YACd,cAAc;YACd,aAAa;YACb,OAAO;YACP,YAAY;YACZ,YAAY;YACZ,aAAa;YACb,gBAAgB;YAChB,mBAAmB;YACnB,4BAA4B;SAC7B,CAAC;QAoBA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;QAChD,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE;YAC5D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IAbD,GAAG,CAAC,IAAS;QACX,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAaD,OAAO;QACL,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,yBAAyB,CAAC,0BAA0B,EAAE,CAAC,SAAS,CACnE,CAAC,QAA+B,EAAE,EAAE;YAClC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC;YAElC,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACvB,IAAI,CAAC,yBAAyB,CAAC,IAAI,CACjC,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAC9C,CAAC;gBACF,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YACzD,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,aAAkC,EAAE,EAAE;gBACpE,aAAa,CAAC,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC,OAAO,CAC3D,gBAAgB,EAChB,EAAE,CACH,CAAC;gBACF,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACjD,CAAC,CAAC,CAAC;YAEH,IACE,IAAI,CAAC,yBAAyB,CAAC,MAAM,GAAG,CAAC;gBACzC,CAAC,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAC3C;gBACA,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACxC;YAED,kBAAkB;YAClB,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;YAC5B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CACtD,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,aAAa,GAAG,QAAQ,CAAC,aAAa,CACtE,CAAC;YACF,IAAI,CAAC,uBAAuB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAC9E,2DAA2D;YAC3D,IAAI,CAAC,uBAAuB,CAAC,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC;YAE5D,eAAe;YACf,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACnC,CAAC,EACD,CAAC,KAAU,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CACzC,CAAC;IACJ,CAAC;IACD,QAAQ;QACN,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,CAAC,uBAAuB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC9E,2DAA2D;QAC3D,IAAI,CAAC,uBAAuB,CAAC,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC;IAC9D,CAAC;IACD,WAAW,CAAC,KAAY;QACtB,QAAQ,CAAC;QACT,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,WAAW,EAAE;gBACf,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;aACnE;iBAAM;gBACL,IAAI,CAAC,kBAAkB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACpE,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBACnD,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC;aACtD;SACF;aAAM;YACL,IAAI,CAAC,kBAAkB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACpE,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACnD,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC;SACtD;IACH,CAAC;IACD,WAAW,CAAC,WAAmB;QAC7B,uBAAuB;QACvB,IAAI,WAAW,KAAK,KAAK,EAAE;YACzB,IAAI,CAAC,yBAAyB,EAAE,CAAC;SAClC;aACI;YACH,IAAI,CAAC,yBAAyB,EAAE,CAAC;SAClC;IACH,CAAC;IAED,eAAe,CAAC,KAAU;QACxB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,iDAAiD;QACjD,MAAM,IAAI,GAAG,IAAI,CAAC,4BAA4B,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACzE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACnB,IAAI,CAAC,cAAc,GAAI,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAgB,CAAC,WAAW,EAAE,CAAC;SACtE;QACD,MAAM,iBAAiB,GAAwB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CACxE,CAAC,cAAc,EAAE,EAAE,CAAC,cAAc,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CACnG,CAAC;QACF,IAAI,CAAC,uBAAuB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC9E,2DAA2D;QAC3D,IAAI,CAAC,uBAAuB,CAAC,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAE5D,IAAI,CAAC,yBAAyB;aAC3B,iCAAiC,CAAC,iBAAiB,CAAC,SAAS,CAAC;aAC9D,SAAS,CAAC,CAAC,QAA8B,EAAE,EAAE;YAC5C,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBACvB,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;aAC9B;YACD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,GAAuB,EAAE,EAAE;gBACpD,GAAG,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;gBACvE,GAAG,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;gBACzE,GAAG,CAAC,0BAA0B,GAAG,GAAG,CAAC,0BAA0B,IAAI,mCAAM,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;YAChI,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;YAC9B,IAAI,CAAC,kBAAkB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACpE,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACnD,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC;QACvD,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IAGD,eAAe,CAAC,KAAU;QACxB,iDAAiD;QACjD,MAAM,IAAI,GAAG,IAAI,CAAC,+BAA+B,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC5E,IAAI,CAAC,cAAc,GAAI,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAgB,CAAC,WAAW,EAAE,CAAC;QACrE,MAAM,iBAAiB,GAAwB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CACxE,CAAC,cAAc,EAAE,EAAE,CAAC,cAAc,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CACnG,CAAC;QACF,IAAI,CAAC,uBAAuB,GAAG,IAAI,0EAAkB,CACnD,IAAI,CAAC,iBAAiB,CACvB,CAAC;QACF,2DAA2D;QAC3D,IAAI,CAAC,uBAAuB,CAAC,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAE5D,IAAI,CAAC,yBAAyB;aAC3B,iCAAiC,CAAC,iBAAiB,CAAC,SAAS,CAAC;aAC9D,SAAS,CAAC,CAAC,QAA8B,EAAE,EAAE;YAC5C,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBACvB,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;aAC9B;YACD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,GAAuB,EAAE,EAAE;gBACpD,GAAG,CAAC,UAAU,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;gBAClF,GAAG,CAAC,WAAW,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;YACtF,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,kBAAkB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACpE,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACnD,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC;QACvD,CAAC,CAAC,CAAC;IACP,CAAC;IAED,eAAe;QACb,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;IACD,eAAe;QACb,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;IACD,yBAAyB;QACvB,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,8BAA8B,CAAC,CAAC;QACvE,MAAM,GAAG,GAAG,MAAM,CAAC;QACnB,IAAI,CAAC,4BAA4B,GAAG,IAAI,8CAAK,CAAC,GAAG,EAAE;YACjD,IAAI,EAAE,KAAK;YACX,IAAI,EAAE;gBACJ,MAAM,EAAE,IAAI,CAAC,yBAAyB;gBACtC,QAAQ,EAAE;oBACR;wBACE,KAAK,EAAE,aAAa;wBACpB,eAAe,EAAE,IAAI,CAAC,UAAU;wBAChC,IAAI,EAAE,IAAI,CAAC,yBAAyB;qBACrC;iBACF;aACF;YACD,OAAO,EAAE;gBACP,UAAU,EAAE,IAAI;gBAChB,mBAAmB,EAAE,KAAK;gBAC1B,QAAQ,EAAE,CAAC;gBACX,MAAM,EAAE;oBACN,KAAK,EAAE;wBACL;4BACE,KAAK,EAAE;gCACL,QAAQ,EAAE,CAAC;gCACX,WAAW,EAAE,IAAI;6BAClB;yBACF;qBACF;iBACF;gBACD,MAAM,EAAE;oBACN,QAAQ,EAAE,QAAQ;iBACnB;aACF;SACF,CAAC,CAAC;IACL,CAAC;IAED,yBAAyB;QACvB,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC;QAC1E,MAAM,GAAG,GAAG,MAAM,CAAC;QACnB,IAAI,CAAC,+BAA+B,GAAG,IAAI,8CAAK,CAAC,GAAG,EAAE;YACpD,IAAI,EAAE,KAAK;YACX,IAAI,EAAE;gBACJ,MAAM,EAAE,IAAI,CAAC,yBAAyB;gBACtC,QAAQ,EAAE;oBACR;wBACE,eAAe,EAAE,IAAI,CAAC,UAAU;wBAChC,IAAI,EAAE,IAAI,CAAC,yBAAyB;qBACrC;iBACF;aACF;YACD,OAAO,EAAE;gBACP,MAAM,EAAE;oBACN,QAAQ,EAAE,QAAQ;iBACnB;gBACD,UAAU,EAAE,IAAI;gBAChB,mBAAmB,EAAE,KAAK;aAC3B;SACF,CAAC,CAAC;IACL,CAAC;IAED,WAAW,CAAC,CAAC;QACX,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,EAAE;YACjB,IAAI,CAAC,yBAAyB,EAAE,CAAC;SAClC;aACI,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,EAAE;YACtB,IAAI,CAAC,yBAAyB,EAAE,CAAC;SAClC;IAEH,CAAC;IAEK,aAAa;;YACjB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,2BAA2B,EAAE,CAAC,SAAS,EAAE,CAAC;YAChG,OAAO,QAAQ,CAAC;QAClB,CAAC;KAAA;IAEK,YAAY;;YAChB,IAAI,CAAC,oBAAoB,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YACvD,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,GAAgB,EAAE,EAAE;gBACrD,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACnD,GAAG,CAAC,QAAQ,GAAG,mCAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBACzD,GAAG,CAAC,0BAA0B,GAAG,GAAG,CAAC,0BAA0B,IAAI,mCAAM,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBAC/H,GAAG,CAAC,8BAA8B,GAAG,MAAM,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC3F,GAAG,CAAC,kBAAkB,GAAG,CAAC,GAAG,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;gBAClE,GAAG,CAAC,kBAAkB,GAAG,CAAC,GAAG,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;gBAClE,GAAG,CAAC,kBAAkB,GAAG,CAAC,GAAG,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;gBAClE,GAAG,CAAC,mBAAmB,GAAG,CAAC,GAAG,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;YACtE,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACpE,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACrD,EAAE,EAAE,CAAC,CAAC,YAAY;gBAClB,IAAI,EAAE,CAAC,CAAC,YAAY;gBACpB,WAAW,EAAE,CAAC,CAAC,eAAe;gBAC9B,KAAK,EAAE,CAAC,CAAC,SAAS;gBAClB,UAAU,EAAE,CAAC,CAAC,UAAU;gBACxB,UAAU,EAAE,CAAC,CAAC,UAAU;gBACxB,gBAAgB,EAAE,CAAC,CAAC,QAAQ;gBAC5B,OAAO,EAAE,CAAC,CAAC,WAAW;gBACtB,MAAM,EAAE,CAAC,CAAC,UAAU;gBACpB,QAAQ,EAAE,CAAC,CAAC,kBAAkB;gBAC9B,QAAQ,EAAE,CAAC,CAAC,kBAAkB;gBAC9B,iBAAiB,EAAE,CAAC,CAAC,oBAAoB;gBACzC,IAAI,EAAE,CAAC,CAAC,QAAQ;gBAChB,mBAAmB,EAAE,CAAC,CAAC,oBAAoB;gBAC3C,KAAK,EAAE,CAAC,CAAC,SAAS;gBAClB,iBAAiB,EAAE,CAAC,CAAC,kBAAkB;gBACvC,QAAQ,EAAE,CAAC,CAAC,kBAAkB;gBAC9B,kBAAkB,EAAE,CAAC,CAAC,eAAe;gBACrC,mBAAmB,EAAE,CAAC,CAAC,eAAe;gBACtC,YAAY,EAAE,CAAC,CAAC,mBAAmB;gBACnC,uBAAuB,EAAE,CAAC,CAAC,kBAAkB;gBAC7C,gCAAgC,EAAE,CAAC,CAAC,iBAAiB;gBACrD,gBAAgB,EAAE,CAAC,CAAC,iBAAiB;gBACrC,+BAA+B,EAAE,CAAC,CAAC,0BAA0B;aAC9D,CAAC,CAAC,CAAC;YACJ,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC;QAC/E,CAAC;KAAA;;sFAvUU,mBAAmB;mGAAnB,mBAAmB;;;;;wEA6CnB,wEAAY;;;;;;;;;QC5EzB,2EACI;QAAA;QAAA,mFACI;QAAA;QAAA,yEACI;QAAA;QAAA,yEAEI;QAAA;QAAA,mFACI;QADW,gLAAqB,uBAAmB,IAAC;QACpD;QAAA,2EACI;QAAA;QAAA,iIACI;QAIJ;QAAA,0EACI;QAAA;QAAA,gFACwD;QADC,kJAAS,2BAAuB,IAAC;QAC3C,4DAAS;QAC5D;QAAA,4DAAM;QAEV;QAAA,4DAAU;QACV;QAAA,2EACI;QAAA;QAAA,iIACI;QAGJ;QAAA,0EACI;QAAA;QAAA,gFAE0B;QADtB,kJAAS,2BAAuB,IAAC;QACpB,4DAAS;QAC9B;QAAA,4DAAM;QAEV;QAAA,4DAAU;QACd;QAAA,4DAAgB;QAIpB;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,2EACI;QAAA;QAAA,iFACI;QAAA;QAAA,6EACI;QAAA;QAAA,gHAAgF;QAEhF;QAAA,gHAAuC;QAC3C;QAAA,qEAAe;QACf;QAAA,6EACI;QAAA;QAAA,gHAAgF;QAEhF;QAAA,gHAAuC;QAC3C;QAAA,qEAAe;QACf;QAAA,gHAAuD;QACvD;QAAA,gHAA6D;QACjE;QAAA,4DAAQ;QACZ;QAAA,4DAAM;QACV;QAAA,4DAAM;QACV;QAAA,4DAAM;QACV;QAAA,4DAAmB;QACvB;QAAA,4DAAW;QAEX;QAAA,4EACI;QAAA;QAAA,oFACI;QAAA;QAAA,0EACI;QAAA;QAAA,2EACI;QAAA;QAAA,0EACI;QAAA;QAAA,2EACI;QAAA;QAAA,2EACI;QAAA;QAAA,oHAA2C;QAG/C;QAAA,4DAAM;QACV;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,2EACI;QAAA;QAAA,yEACI;QADD,uIAAS,kBAAc,IAAC;QACvB;QAAA,sEAAiC;QACrC;QAAA,4DAAI;QACR;QAAA,4DAAM;QACV;QAAA,4DAAM;QACV;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,iFACI;QAAA;QAAA,8EACI;QAAA;QAAA,kHAAgF;QAEhF;QAAA,kHAAuC;QAC3C;QAAA,qEAAe;QACf;QAAA,8EACI;QAAA;QAAA,kHAAgF;QAEhF;QAAA,kHAAuC;QAC3C;QAAA,qEAAe;QACf;QAAA,8EACI;QAAA;QAAA,kHAAgF;QAEhF;QAAA,kHAAuC;QAC3C;QAAA,qEAAe;QACf;QAAA,8EACI;QAAA;QAAA,kHAAgF;QAChF;QAAA,kHAAuC;QAC3C;QAAA,qEAAe;QACf;QAAA,8EACI;QAAA;QAAA,kHAAgF;QAEhF;QAAA,kHAAuC;QAC3C;QAAA,qEAAe;QACf;QAAA,8EACI;QAAA;QAAA,kHAAgF;QAEhF;QAAA,kHAAuC;QAC3C;QAAA,qEAAe;QACf;QAAA,8EACI;QAAA;QAAA,kHAAgF;QAEhF;QAAA,kHAAuC;QAC3C;QAAA,qEAAe;QACf;QAAA,8EACI;QAAA;QAAA,kHAAgF;QAEhF;QAAA,kHAAuC;QAC3C;QAAA,qEAAe;QACf;QAAA,8EACI;QAAA;QAAA,kHAAgF;QAEhF;QAAA,kHAAuC;QAC3C;QAAA,qEAAe;QACf;QAAA,8EACI;QAAA;QAAA,kHAAgF;QAEhF;QAAA,kHAAuC;QAC3C;QAAA,qEAAe;QACf;QAAA,kHAAwD;QACxD;QAAA,kHAA8D;QAClE;QAAA,4DAAQ;QACZ;QAAA,4DAAM;QACN;QAAA,4EACI;QAAA;QAAA,iFAAgE;QACpE;QAAA,4DAAM;QACV;QAAA,4DAAM;QACV;QAAA,4DAAM;QAEV;QAAA,4DAAmB;QACvB;QAAA,4DAAW;QACX;QAAA,oFAEI;QAAA;QAAA,0EAAmB;QAAA,wEAAW;QAAA,4DAAI;QACtC;QAAA,4DAAc;;QA1GwB,2DAAsC;QAAtC,mGAAsC;QAWjC,2DAAmC;QAAnC,iGAAmC;QAC1C,0DAAgD;QAAhD,kGAAgD;QAelD,2DAAoC;QAApC,+FAAoC;QAcjC,2DAAiC;QAAjC,8FAAiC;QAkD3B,2DAAoC;QAApC,kGAAoC;QAC3C,0DAAiD;QAAjD,mGAAiD;QAIlD,0DAAgC;QAAhC,kJAAgC;QAOT,0DAAoB;QAApB,6EAAoB;;6FD7GjE,mBAAmB;cAL/B,uDAAS;eAAC;gBACT,QAAQ,EAAE,gBAAgB;gBAC1B,WAAW,EAAE,6BAA6B;gBAC1C,SAAS,EAAE,CAAC,6BAA6B,CAAC;aAC3C;0ZAyC4C,4BAA4B;kBAAtE,uDAAS;mBAAC,8BAA8B;YACK,+BAA+B;kBAA5E,uDAAS;mBAAC,iCAAiC;YAEX,kBAAkB;kBAAlD,uDAAS;mBAAC,oBAAoB;YACA,gBAAgB;kBAA9C,uDAAS;mBAAC,kBAAkB;YACc,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AE5E3C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAyE;AAEF;AAGZ;AACV;AAQhB;AAE6B;;;;;;;;;;;;;;;;;ICRxD,wEAEE;IADA,8TAAwB;IACxB;IAAA,qEAAiC;IACrC;IAAA,4DAAI;;;IAYA,yEAAwF;IAAA,yEAAc;IAAA,4DAAK;;;IAC3G,yEAAwD;IAAA,uDAA0B;IAAA,4DAAK;;;IAA/B,0DAA0B;IAA1B,qGAA0B;;;IAIlF,yEAAwF;IAAA,yEAAc;IAAA,4DAAK;;;IAC3G,yEAAwD;IAAA,uDAA0B;IAAA,4DAAK;;;IAA/B,0DAA0B;IAA1B,qGAA0B;;;IAIpF,yEAAyF;IAAA,0EAAe;IAAA,4DAAK;;;IAC7G,yEAA0D;IAAA,uDAA8C;;IAAA,4DAAK;;;IAAnD,0DAA8C;IAA9C,oLAA8C;;;IAIxG,yEAA0F;IAAA,gFAAqB;IAAA,4DAAK;;;IACpH,yEAA0D;IAAA,uDAAoD;;IAAA,4DAAK;;;IAAzD,0DAAoD;IAApD,0LAAoD;;;IAI9G,yEAA0F;IAAA,4EAAiB;IAAA,4DAAK;;;IAChH,yEAA0D;IAAA,uDAAgD;;IAAA,4DAAK;;;IAArD,0DAAgD;IAAhD,sLAAgD;;;IAI1G,yEAAuF;IAAA,0EAAe;IAAA,4DAAK;;;IAC3G,yEAAoG;IAAA,uDAA2B;IAAA,4DAAK;;;IAAzE,6GAAuC;IAAE,0DAA2B;IAA3B,sGAA2B;;;IAG/H,yEAAyF;IAAA,4EAAiB;IAAA,4DAAK;;;IAC/G,yEAA0D;IAAA,uDAA4B;IAAA,4DAAK;;;IAAjC,0DAA4B;IAA5B,uGAA4B;;;IAGtF,yEAAwF;IAAA,uFAA4B;IAAA,4DAAK;;;IACzH,yEAA0D;IAAA,uDAAiC;IAAA,4DAAK;;;IAAtC,0DAAiC;IAAjC,4GAAiC;;;IAG3F,yEAA0F;IAAA,4EAAiB;IAAA,4DAAK;;;IAChH,yEAA0D;IAAA,uDAAgD;;IAAA,4DAAK;;;IAArD,0DAAgD;IAAhD,sLAAgD;;;IAGxG,yEAAyF;IAAA,6EAAkB;IAAA,4DAAK;;;IAChH,yEAA0D;IAAA,uDAA6B;IAAA,4DAAK;;;IAAlC,0DAA6B;IAA7B,wGAA6B;;;IAGvF,yEAAyF;IAAA,iFAAsB;IAAA,4DAAK;;;IACpH,yEAA0D;IAAA,uDAAgC;IAAA,4DAAK;;;IAArC,0DAAgC;IAAhC,2GAAgC;;;IAG1F,yEAAyF;IAAA,2EAAgB;IAAA,4DAAK;;;IAC9G,yEAA0D;IAAA,uDAAkC;IAAA,4DAAK;;;IAAvC,0DAAkC;IAAlC,6GAAkC;;;IAG5F,yEAAyF;IAAA,qEAAU;IAAA,4DAAK;;;IACxG,yEAA0D;IAAA,uDAA2C;IAAA,4DAAK;;;IAAhD,0DAA2C;IAA3C,sHAA2C;;;IAGrG,yEAAyF;IAAA,qEAAU;IAAA,4DAAK;;;IACxG,yEAAqG;IAAA,uDAA4B;IAAA,4DAAK;;;IAA3E,8GAAwC;IAAE,0DAA4B;IAA5B,uGAA4B;;;IAGjI,yEAAyF;IAAA,iEAAM;IAAA,4DAAK;;;IACpG,yEAA8F;IAAA,uDAAmB;IAAA,4DAAK;;;IAA9F,qGAA+B;IAAuC,0DAAmB;IAAnB,8FAAmB;;;IAGjH,yEAAyF;IAAA,kEAAO;IAAA,4DAAK;;;IACrG,yEAA0D;IAAA,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,iGAAsB;;;IAEpF,oEAA4D;;;IACxD,oEAAkE;;;IAClE,yEACI;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAChD;IAAA,4DAAK;;;ADtEP,MAAM,0BAA0B;IAQrC,YAAoB,wBAAkD,EAClD,SAAsB,EACvB,UAAsB,EACrB,mBAAuC,EACvC,OAA0B;QAJ1B,6BAAwB,GAAxB,wBAAwB,CAA0B;QAClD,cAAS,GAAT,SAAS,CAAa;QACvB,eAAU,GAAV,UAAU,CAAY;QACrB,wBAAmB,GAAnB,mBAAmB,CAAoB;QACvC,YAAO,GAAP,OAAO,CAAmB;QAX9C,kBAAa,GAAgC,EAAE,CAAC;QAExC,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QAItD,qBAAgB,GAAa,CAAC,eAAe,EAAC,eAAe,EAAC,eAAe,EAAC,qBAAqB,EAAE,SAAS,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,0BAA0B,EAAC,iBAAiB,EAAE,kBAAkB,EAAC,qBAAqB,EAAC,uBAAuB,EAAC,YAAY,EAAC,YAAY,EAAC,QAAQ,CAAC,CAAC;IAKzQ,CAAC;IAEnD,QAAQ;QACN,IAAI,CAAC,0BAA0B,EAAE,CAAC;IACpC,CAAC;IAEC,0BAA0B;QAC1B,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,wBAAwB,CAAC,oBAAoB,EAAE,CAAC,SAAS,CAC5D,CAAC,GAAgC,EAAE,EAAE;YACnC,IAAG,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE;gBAChC,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;gBACzB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,MAAiC,EAAE,EAAE;oBAC/D,MAAM,CAAC,QAAQ,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;oBACvD,MAAM,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3D,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC;gBACpG,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBACjC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;aACrB;iBACI;gBACH,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE;oBAC3C,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAC,CAAC,eAAe,CAAC;oBAC5B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;QACH,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;YACb,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE;gBAC5D,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAC,CAAC,aAAa,CAAC;gBAC1B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CACF,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE;YAC5D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,aAAa,CAAC,KAAU;QAC7B,IAAG,KAAK,CAAC,OAAO,EAChB;YACE,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC7D,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SAClC;aAEC;YACE,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC;YACpG,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SAClC;IACL,CAAC;IAED,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAC3D;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC7D,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SAClC;IACH,CAAC;IAED,YAAY;QACV,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACrD,gBAAgB,EAAE,CAAC,CAAC,aAAa;YACjC,gBAAgB,EAAE,CAAC,CAAC,aAAa;YACjC,iBAAiB,EAAG,IAAI,IAAI,CAAC,mCAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAC1E,uBAAuB,EAAE,CAAC,CAAC,CAAC,mBAAmB,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,mCAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5H,mBAAmB,EAAE,CAAC,CAAC,CAAC,eAAe,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,mCAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAChH,iBAAiB,EAAE,CAAC,CAAC,cAAc;YACnC,mBAAmB,EAAE,CAAC,CAAC,eAAe;YACtC,8BAA8B,EAAE,CAAC,CAAC,oBAAoB;YACtD,mBAAmB,EAAE,CAAC,CAAC,CAAC,eAAe,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,mCAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAChH,oBAAoB,EAAE,CAAC,CAAC,gBAAgB;YACxC,wBAAwB,EAAE,CAAC,CAAC,mBAAmB;YAC/C,kBAAkB,EAAE,CAAC,CAAC,qBAAqB;YAC3C,YAAY,EAAE,CAAC,CAAC,8BAA8B;YAC9C,YAAY,EAAE,CAAC,CAAC,eAAe;YAC/B,QAAQ,EAAE,CAAC,CAAC,MAAM;YAClB,SAAS,EAAE,CAAC,CAAC,SAAS;SACvB,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,eAAe,EAAE,oBAAoB,CAAC,CAAC;QAC9E,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;;oGA5GU,0BAA0B;0GAA1B,0BAA0B;wEAK1B,wEAAY;wEACZ,8DAAO;;;;;;QC/BpB,yEACE;QAAA;QAAA,yEACE;QAAA;QAAA,qFAAiE;QAAjC,gKAAU,yBAAqB,IAAC;QAAC,+EAAoB;QAAA,4DAAe;QAEtG;QAAA,4DAAM;QAEN;QAAA,yEACE;QAAA;QAAA,2EACE;QAAA;QAAA,oHAEE;QAEJ;QAAA,4DAAO;QAEP;QAAA,4DAAM;QACV;QAAA,4DAAM;QACN;QAAA,iEACA;QAAA;QAAA,4EACA;QAAA;QAAA,oFACE;QAAA;QAAA,0EACE;QAAA;QAAA,+EAEE;QAAA;QAAA,6EACE;QAAA;QAAA,uHAAwF;QACxF;QAAA,uHAAwD;QAC1D;QAAA,qEAAe;QAEjB;QAAA,6EACI;QAAA;QAAA,uHAAwF;QACxF;QAAA,uHAAwD;QAC1D;QAAA,qEAAe;QAEjB;QAAA,6EACE;QAAA;QAAA,uHAAyF;QACzF;QAAA,uHAA0D;QAC5D;QAAA,qEAAe;QAEf;QAAA,6EACE;QAAA;QAAA,uHAA0F;QAC1F;QAAA,uHAA0D;QAC5D;QAAA,qEAAe;QAEf;QAAA,6EACE;QAAA;QAAA,uHAA0F;QAC1F;QAAA,uHAA0D;QAC5D;QAAA,qEAAe;QAEf;QAAA,6EACE;QAAA;QAAA,uHAAuF;QACvF;QAAA,uHAAoG;QACtG;QAAA,qEAAe;QACf;QAAA,6EACE;QAAA;QAAA,uHAAyF;QACzF;QAAA,uHAA0D;QAC5D;QAAA,qEAAe;QACf;QAAA,6EACE;QAAA;QAAA,uHAAwF;QACxF;QAAA,uHAA0D;QAC5D;QAAA,qEAAe;QACf;QAAA,6EACE;QAAA;QAAA,uHAA0F;QAC1F;QAAA,uHAA0D;QAC5D;QAAA,qEAAe;QACf;QAAA,6EACI;QAAA;QAAA,uHAAyF;QACzF;QAAA,uHAA0D;QAC5D;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,yHAAyF;QACzF;QAAA,yHAA0D;QAC5D;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,yHAAyF;QACzF;QAAA,yHAA0D;QAC5D;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,yHAAyF;QACzF;QAAA,yHAA0D;QAC5D;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,yHAAyF;QACzF;QAAA,yHAAqG;QACvG;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,yHAAyF;QACzF;QAAA,yHAA8F;QAChG;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,yHAAyF;QACzF;QAAA,yHAA0D;QAC5D;QAAA,qEAAe;QACjB;QAAA,yHAAuD;QACnD;QAAA,yHAA6D;QAC7D;QAAA,yHACI;QAER;QAAA,4DAAQ;QACV;QAAA,4DAAM;QACN;QAAA,4EACE;QAAA;QAAA,iFAAgE;QACpE;QAAA,4DAAM;QACN;QAAA,oFAMI;QAAA;QAAA,0EAAmB;QAAA,wEAAW;QAAA,4DAAI;QACtC;QAAA,4DAAc;QACd;QAAA,4DAAmB;QACnB;QAAA,4DAAW;;QAtGF,2DAA8B;QAA9B,8FAA8B;QAYM,2DAAyB;QAAzB,sFAAyB;QAuE/C,4DAAmC;QAAnC,iGAAmC;QACtC,0DAAgD;QAAhD,kGAAgD;QAOjD,0DAAgC;QAAhC,kJAAgC;QAKlD,0DAAoB;QAApB,6EAAoB;;6FD/ER,0BAA0B;cALtC,uDAAS;eAAC;gBACT,QAAQ,EAAE,wBAAwB;gBAClC,WAAW,EAAE,qCAAqC;gBAClD,SAAS,EAAE,CAAC,qCAAqC,CAAC;aACnD;8fAM4C,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACH,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AE/BtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,MAAM,gBAAgB;CAa5B;AAEM,MAAM,sBAAsB;CAYlC;AAEM,MAAM,sBAAsB;CAIlC;AAEM,MAAM,0BAA0B;CAMtC;AAEM,MAAO,UAAU;CAGpB;;;;;;;;;;;;;AC9CJ;AAAA;AAAA;AAAA;AAAA;AAAO,MAAM,2BAA2B;CA2BvC;AAEM,MAAM,SAAS;CAGrB;AAEM,MAAM,yBAAyB;CAKrC;AAEM,MAAM,+BAA+B;CAG3C;;;;;;;;;;;;;AC3CD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,MAAM,UAAU;CAGtB;AACM,MAAM,2BAA6B,SAAQ,UAAU;CAe3D;AAEM,MAAM,uBAAyB,SAAQ,UAAU;CAIvD;AAEM,MAAM,kCAAoC,SAAQ,UAAU;CAKlE;AACM,MAAM,iBAAiB;CAM7B;AAEM,MAAM,iBAAmB,SAAQ,UAAU;CAIjD;;;;;;;;;;;;;AC9CD;AAAA;AAAA;AAAA;AAAA;AAAO,MAAM,iBAAiB;CAK7B;AACM,MAAM,eAAe;CAM3B;AAEM,MAAM,yBAAyB;CAUrC;AAEM,MAAM,cAAc;CAK1B;;;;;;;;;;;;;AC/BD;AAAA;AAAA;AAAoD;;AAG7C,MAAM,mBAAmB;IAC5B,SAAS,CAAC,KAAc;QACpB,OAAO,CAAE,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,IAAI,MAAM,CAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;IACvF,CAAC;IAAA,CAAC;;sFAHO,mBAAmB;wHAAnB,mBAAmB;6FAAnB,mBAAmB;cAD/B,kDAAI;eAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE;;;;;;;;;;;;;;ACFjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAyC;AACc;AAEmB;AACsB;AACwB;AAC/B;AACN;AACS;AACoC;AACN;AAClC;AACkB;AACT;AACkB;AACwC;AACW;AAC5D;AACQ;AACuB;AACL;AACN;AAC6C;;;AAC3K,MAAM,MAAM,GAAW;IACnB;QACI,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,sFAAgB;QACrC,QAAQ,EAAE;YACN,EAAE,IAAI,EAAC,gBAAgB,EAAE,SAAS,EAAE,6GAAuB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE;YACjG,EAAE,IAAI,EAAC,0BAA0B,EAAE,SAAS,EAAE,oIAA8B,EAAG,IAAI,EAAE,EAAE,KAAK,EAAE,4BAA4B,EAAE,EAAC;YAC7H,EAAE,IAAI,EAAC,qCAAqC,EAAE,SAAS,EAAE,oIAA8B,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAAC;YAC/H,EAAE,IAAI,EAAC,cAAc,EAAE,SAAS,EAAE,uGAAqB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE;YAC3F,EAAE,IAAI,EAAE,kBAAkB,EAAE,SAAS,EAAE,+FAAmB,EAAG,IAAI,EAAE,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAG;YACzG,EAAE,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,0GAAsB,EAAG,IAAI,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAG;YAEjG,EAAE,IAAI,EAAE,6BAA6B,EAAE,SAAS,EAAE,4IAAgC,EAAG,IAAI,EAAE,EAAE,KAAK,EAAE,4BAA4B,EAAE,EAAG;YACrI,EAAE,IAAI,EAAE,uBAAuB,EAAE,SAAS,EAAE,sIAA8B,EAAG,IAAI,EAAE,EAAE,KAAK,EAAE,0BAA0B,EAAE,EAAG;YAC3H,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,qGAAoB,EAAG,IAAI,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAG;YAC7F,EAAE,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,uHAA0B,EAAG,IAAI,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,EAAG;YAC1G,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,8GAAuB,EAAG,IAAI,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAG;YACpG,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,gIAA6B,EAAG,IAAI,EAAE,EAAE,KAAK,EAAE,6BAA6B,EAAE,EAAG;YACtH,EAAE,IAAI,EAAE,+BAA+B,EAAE,SAAS,EAAE,wKAAyC,EAAG,IAAI,EAAE,EAAE,KAAK,EAAE,0BAA0B,EAAE,EAAE;YAC7I,EAAE,IAAI,EAAE,kCAAkC,EAAE,SAAS,EAAE,mLAA4C,EAAG,IAAI,EAAE,EAAE,KAAK,EAAE,8BAA8B,EAAE,EAAE;YACvJ,EAAE,IAAI,EAAE,mBAAmB,EAAE,SAAS,EAAE,uHAA0B,EAAG,IAAI,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAAG;YAC7G,EAAE,IAAI,EAAE,kCAAkC,EAAE,SAAS,EAAE,mLAA4C,EAAG,IAAI,EAAE,EAAE,KAAK,EAAE,iDAAiD,EAAE,EAAE;YAC1K,EAAE,IAAI,EAAE,qBAAqB,EAAE,SAAS,EAAE,+HAA4B,EAAG,IAAI,EAAE,EAAE,KAAK,EAAE,uBAAuB,EAAE,EAAG;YACpH,EAAE,IAAI,EAAE,sBAAsB,EAAE,SAAS,EAAE,sJAAmC,EAAG,IAAI,EAAE,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAG;YAC7H,EAAE,IAAI,EAAE,2BAA2B,EAAE,SAAS,EAAE,iJAAkC,EAAG,IAAI,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAG;YAC5H,EAAE,IAAI,EAAE,yBAAyB,EAAE,SAAS,EAAE,2IAAgC,EAAG,IAAI,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAAG;YACzH,EAAE,IAAI,EAAE,+CAA+C,EAAE,SAAS,EAAE,wLAA6C,EAAG,IAAI,EAAE,EAAE,KAAK,EAAE,2CAA2C,EAAE,EAAE;SAErL;KACJ;CACJ,CAAC;AAMO,MAAM,oBAAoB;;mGAApB,oBAAoB;kKAApB,oBAAoB,kBAHtB,CAAC,4DAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAC9B,4DAAY;mIAEX,oBAAoB,uFAFrB,4DAAY;6FAEX,oBAAoB;cAJlC,sDAAQ;eAAC;gBACN,OAAO,EAAE,CAAC,4DAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACxC,OAAO,EAAE,CAAC,4DAAY,CAAC;aACxB;;;;;;;;;;;;;;ACzDH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAyC;AACM;AACmB;AACxB;AAEsB;AACQ;AACyB;AACuB;AACzE;AACS;AAC+C;AACpB;AACM;AAEK;AAClC;AACK;AACuB;AACwC;AACN;AAChB;AAC3D;AACkD;AACkB;AACwC;AACW;AAC5D;AACQ;AACuB;AACL;AACT;AAChE;AACT;AAC4E;AAC6C;;AAE3K,yEAAkB,CAAC,eAAe,CAAC;IACjC,8DAAa;CACd,CAAC,CAAC;AAuBI,MAAM,aAAa;;4FAAb,aAAa;oJAAb,aAAa,mBAHV,CAAC,wDAAQ,CAAC,YAdb;YACL,4DAAY;YACZ,4DAAY;YACZ,0DAAW;YACX,kEAAmB;YACnB,qEAAgB;YAChB,4EAAoB;YACpB,kHAAwB;YACxB,0EAAsB;YACtB,+EAAwB;YACxB,6DAAgB;YAChB,yEAAkB;SACnB;mIAKM,aAAa,mBArBP,sFAAgB,EAAC,6GAAuB,EAAC,oIAA8B,EAAE,gGAAmB,EAAE,2GAAsB;QAC/H,wGAAqB,EAAE,qGAAoB,EAAE,6IAAgC,EAAE,uIAA8B,EAAE,uHAA0B,EAAE,8GAAuB,EAAE,gIAA6B,EAAE,wKAAyC,EAAE,mLAA4C,EAAE,uHAA0B,EAAE,+HAA4B,EAAE,sJAAmC,EAAE,iJAAkC,EAAE,wIAA+B,EAAE,2IAAgC,EAAE,wLAA6C,aAI/gB,4DAAY;QACZ,4DAAY;QACZ,0DAAW;QACX,kEAAmB;QACnB,qEAAgB;QAChB,4EAAoB;QACpB,kHAAwB;QACxB,0EAAsB;QACtB,+EAAwB;QACxB,6DAAgB;QAChB,yEAAkB;6FAMb,aAAa;cAtBzB,sDAAQ;eAAC;gBACN,YAAY,EAAE,CAAC,sFAAgB,EAAC,6GAAuB,EAAC,oIAA8B,EAAE,gGAAmB,EAAE,2GAAsB;oBAC/H,wGAAqB,EAAE,qGAAoB,EAAE,6IAAgC,EAAE,uIAA8B,EAAE,uHAA0B,EAAE,8GAAuB,EAAE,gIAA6B,EAAE,wKAAyC,EAAE,mLAA4C,EAAE,uHAA0B,EAAE,+HAA4B,EAAE,sJAAmC,EAAE,iJAAkC,EAAE,wIAA+B,EAAE,2IAAgC,EAAE,wLAA6C;iBAChhB;gBAEH,OAAO,EAAE;oBACL,4DAAY;oBACZ,4DAAY;oBACZ,0DAAW;oBACX,kEAAmB;oBACnB,qEAAgB;oBAChB,4EAAoB;oBACpB,kHAAwB;oBACxB,0EAAsB;oBACtB,+EAAwB;oBACxB,6DAAgB;oBAChB,yEAAkB;iBACnB;gBACD,OAAO,EAAE,EAAE;gBACX,SAAS,EAAC,CAAC,wDAAQ,CAAC;aACrB;;;;;;;;;;;;;;AC5DL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AACwB;AACR;AAER;AAEwG;;;AAMpJ,MAAM,gCAAgC;IAO3C,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAL1C,cAAS,GAAG,qEAAW,CAAC,oBAAoB,CAAC;QAC7C,cAAS,GAAG,uDAAe,CAAC,OAAO,CAAC;QAC7B,mBAAc,GAAG,IAAI,oDAAe,CAA6B,IAAI,oGAA0B,EAAE,CAAC,CAAC;QACnG,6BAAwB,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;IAEvB,CAAC;IAExC,0BAA0B,CAAC,MAA8B;QAC9D,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,0BAA0B,CAAC;QACrE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAqB,GAAG,EAAE,MAAM,CAAC,CAAC;IAC/D,CAAC;IAEM,mCAAmC,CAAC,MAA8B;QACvE,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,mCAAmC,CAAC;QAC9E,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAqB,GAAG,EAAE,MAAM,CAAC,CAAC;IAC/D,CAAC;IAEM,yBAAyB,CAAC,MAA8B;QAC7D,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC;QACpE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAA2B,GAAG,EAAE,MAAM,CAAC,CAAC;IACrE,CAAC;IAEM,kCAAkC,CAAC,MAA8B;QACtE,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,kCAAkC,CAAC;QAC7E,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAA2B,GAAG,EAAE,MAAM,CAAC,CAAC;IACrE,CAAC;IAEM,aAAa,CAAC,UAAiB,EAAE,QAAgB,EAAE,SAAgB,EAAE,YAAqB;QAC/F,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,GAAG,GAAI,UAAU,GAAG,GAAG,GAAI,QAAQ,GAAG,GAAG,GAAI,SAAS,GAAG,gBAAgB,GAAG,YAAY,CAAC;QACnJ,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAgB,GAAG,CAAC,CAAC;IACjD,CAAC;IAEM,mCAAmC,CAAC,UAAiB,EAAE,QAAgB,EAAE,SAAgB,EAAE,YAAqB;QACrH,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,mCAAmC,GAAG,GAAG,GAAI,UAAU,GAAG,GAAG,GAAI,QAAQ,GAAG,GAAG,GAAI,SAAS,GAAG,gBAAgB,GAAG,YAAY,CAAC;QACzK,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAgB,GAAG,CAAC,CAAC;IACjD,CAAC;IAEM,WAAW,CAAC,UAAiB,EAAE,QAAgB;QACpD,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,GAAG,GAAI,UAAU,GAAG,GAAG,GAAI,QAAQ,CAAE;QAC7F,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAgB,GAAG,CAAC,CAAC;IACjD,CAAC;IAEM,iCAAiC,CAAC,UAAiB,EAAE,QAAgB;QAC1E,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,iCAAiC,GAAG,GAAG,GAAI,UAAU,GAAG,GAAG,GAAI,QAAQ,CAAE;QACnH,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAgB,GAAG,CAAC,CAAC;IACjD,CAAC;IAEM,oBAAoB;QACzB,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC;QAC/D,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAO,GAAG,CAAC,CAAC;IACxC,CAAC;IAGM,6BAA6B;QAClC,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,6BAA6B,CAAC;QACxE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAO,GAAG,CAAC,CAAC;IACxC,CAAC;IAEM,oBAAoB,CAAC,UAAiB;QAC3C,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,oBAAoB,GAAG,GAAG,GAAI,UAAU,CAAC;QACnF,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAU,GAAG,CAAC,CAAC;IAC3C,CAAC;IAEM,gCAAgC,CAAC,UAAiB;QACvD,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,gCAAgC,GAAG,GAAG,GAAI,UAAU,CAAC;QAC/F,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAU,GAAG,CAAC,CAAC;IAC3C,CAAC;IAEM,eAAe,CAAC,IAAW,EAAC,KAAY;QAE7C,IAAI,GAAG,GAAG,qEAAW,CAAC,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,GAAC,IAAI,GAAC,GAAG,GAAC,KAAK,CAAC;QAE3F,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAC,EAAE,OAAO,EAAE;gBACxC,cAAc,EAAE,kBAAkB;aACpC,EAAE,CAAC,CAAC;IAEN,CAAC;;gHA9EU,gCAAgC;mHAAhC,gCAAgC,WAAhC,gCAAgC,mBAF/B,MAAM;6FAEP,gCAAgC;cAH5C,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACXD;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AACwB;AACR;;;AAUlD,MAAM,0BAA0B;IAKrC,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAJ1C,cAAS,GAAG,qEAAW,CAAC,oBAAoB,CAAC;QAE7C,cAAS,GAAG,uDAAe,CAAC,OAAO,CAAC;IAEU,CAAC;IAExC,sBAAsB;QAC3B,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC;QACjE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAgC,GAAG,CAAC,CAAC;IACjE,CAAC;IAEM,0BAA0B,CAAC,MAAiC;QACjE,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC;QACjE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAgC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC1E,CAAC;IAEM,2BAA2B;QAChC,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,2BAA2B,CAAC;QACtE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAgB,GAAG,CAAC,CAAC;IACjD,CAAC;IAEM,2BAA2B,CAAC,MAAiC;QAClE,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,2BAA2B,CAAC;QACtE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAc,GAAG,EAAC,MAAM,CAAC,CAAC;IACvD,CAAC;IAEM,2BAA2B,CAAC,cAA8C;QAC/E,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC;QACjE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAgC,GAAG,EAAC,cAAc,CAAC,CAAC;IACjF,CAAC;;oGA9BU,0BAA0B;6GAA1B,0BAA0B,WAA1B,0BAA0B,mBAHzB,MAAM;6FAGP,0BAA0B;cAJxC,wDAAU;eAAC;gBACR,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACVH;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AAKgB;AACQ;;;AAQ5D,MAAM,mBAAmB;IAK5B,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QACtC,IAAI,CAAC,UAAU,GAAG,qEAAW,CAAC,kBAAkB,CAAC;QACjD,2CAA2C;QAC3C,IAAI,CAAC,UAAU,GAAG,uDAAe,CAAC,OAAO,CAAC;IAC9C,CAAC;IAEM,kBAAkB;QACrB,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC;QAClE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAoB,IAAI,CAAC,CAAC;IACxD,CAAC;IACM,sBAAsB,CAAC,QAAgB;QAC1C,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,sBAAsB,GAAG,QAAQ,CAAC;QAC/E,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAuB,IAAI,CAAC;IAC1D,CAAC;;sFAlBQ,mBAAmB;sGAAnB,mBAAmB,WAAnB,mBAAmB,mBAJhB,MAAM;6FAIT,mBAAmB;cAL/B,wDAAU;eAAC;gBACR,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACXH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AAKwB;AACR;AAC1C;;;AAIV,MAAM,oBAAoB;IAI7B,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAH1C,eAAU,GAAG,qEAAW,CAAC,SAAS,CAAC;QACnC,cAAS,GAAG,qEAAW,CAAC,kBAAkB,CAAC;QAC3C,cAAS,GAAG,uDAAe,CAAC,OAAO,CAAC;IACU,CAAC;IAGhD,eAAe;QACV,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC;QAC3D,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAEF,gBAAgB,CAAC,iBAAoC;QACtD,gEAAgE;QAC9D,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC;QAC3D,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;IACtD,CAAC;IACD,2BAA2B,CAAC,SAAS;QACnC,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,2BAA2B,GAAC,SAAS,CAAC,KAAK,GAAC,QAAQ,GAAC,SAAS,CAAC,IAAI,CAAC;QAC/G,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IACD,uBAAuB;QACrB,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC;QACnE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;;wFAxBU,oBAAoB;uGAApB,oBAAoB,WAApB,oBAAoB,mBAFnB,MAAM;6FAEP,oBAAoB;cAHhC,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACVD;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AAEwB;AACR;;;AAKpD,MAAM,qBAAqB;IAKhC,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QACtC,IAAI,CAAC,UAAU,GAAG,qEAAW,CAAC,gBAAgB,CAAC;QAC/C,IAAI,CAAC,UAAU,GAAG,uDAAe,CAAC,OAAO,CAAC;IAC9C,CAAC;IAEM,0BAA0B;QAC/B,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC;QACpE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;;0FAbU,qBAAqB;wGAArB,qBAAqB,WAArB,qBAAqB,mBAFpB,MAAM;6FAEP,qBAAqB;cAHjC,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACPD;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AACwB;AACR;;;AASlD,MAAM,eAAe;IAK1B,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAJ1C,cAAS,GAAG,qEAAW,CAAC,gBAAgB,CAAC;QAEzC,cAAS,GAAG,uDAAe,CAAC,OAAO,CAAC;IAEU,CAAC;IAExC,cAAc;QACnB,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC;QAClE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAoB,GAAG,CAAC,CAAC;IACrD,CAAC;;8EAVU,eAAe;kGAAf,eAAe,WAAf,eAAe,mBAHd,MAAM;6FAGP,eAAe;cAJ7B,wDAAU;eAAC;gBACR,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACTH;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AACwB;AACR;;;AAQpD,MAAM,6BAA6B;IAIxC,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAH1C,cAAS,GAAG,qEAAW,CAAC,kBAAkB,CAAC;QAC3C,cAAS,GAAG,uDAAe,CAAC,OAAO,CAAC;IAEU,CAAC;IACxC,yBAAyB;QAC9B,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC;QACpE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAgB,GAAG,CAAC,CAAC;IACjD,CAAC;;0GARU,6BAA6B;gHAA7B,6BAA6B,WAA7B,6BAA6B,mBAF5B,MAAM;6FAEP,6BAA6B;cAHzC,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACTD;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AACwB;AACR;;;AAQpD,MAAM,gCAAgC;IAI3C,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAH1C,cAAS,GAAG,qEAAW,CAAC,kBAAkB,CAAC;QAC3C,cAAS,GAAG,uDAAe,CAAC,OAAO,CAAC;IAEU,CAAC;IACxC,4BAA4B;QACjC,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,4BAA4B,CAAC;QACvE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAgB,GAAG,CAAC,CAAC;IACjD,CAAC;IACM,gCAAgC;QACrC,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,gCAAgC,CAAC;QAC3E,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAgB,GAAG,CAAC,CAAC;IACjD,CAAC;IACM,2BAA2B;QAChC,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,mCAAmC,CAAC;QAC9E,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAgB,GAAG,CAAC,CAAC;IACjD,CAAC;;gHAhBU,gCAAgC;mHAAhC,gCAAgC,WAAhC,gCAAgC,mBAF/B,MAAM;6FAEP,gCAAgC;cAH5C,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACTD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AAGwB;AACR;AAKS;;;;AAM7D,MAAM,qBAAqB;IAShC,YAAoB,UAAsB,EAAU,MAAc;QAA9C,eAAU,GAAV,UAAU,CAAY;QAAU,WAAM,GAAN,MAAM,CAAQ;QAPlE,eAAU,GAAG,qEAAW,CAAC,SAAS,CAAC;QACnC,cAAS,GAAG,qEAAW,CAAC,kBAAkB,CAAC;QAC3C,cAAS,GAAG,uDAAe,CAAC,OAAO,CAAC;QACpC,sBAAiB,GAAG,qEAAW,CAAC,gBAAgB,CAAC;QACjD,gBAAW,GAAW,SAAS,CAAC;QAChC,eAAU,GAAW,SAAS,CAAC;QAEwC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;QACvG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YAC9B,IAAI,KAAK,YAAY,6DAAa,EAAE;gBAClC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC;gBACnC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC;aAC7B;YAAA,CAAC;QAAA,CAAC,CAAC,CAAC;IACL,CAAC;IAEE,4BAA4B,CAAC,SAAiB;QACnD,IAAI,GAAG,GAAG,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,4BAA4B,GAAG,SAAS,CAAC;QAC3F,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAoB,GAAG,CAAC,CAAC;IACrD,CAAC;IAEM,iCAAiC,CAAC,cAAiC;QACxE,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,mCAAmC,CAAC;QAC/E,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAoB,GAAG,EAAE,cAAc,CAAC,CAAC;IACtE,CAAC;IAEM,4BAA4B,CAAC,cAAiC;QACnE,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,4BAA4B,CAAC;QACxE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAoB,GAAG,EAAE,cAAc,CAAC,CAAC;IACtE,CAAC;IAEM,uBAAuB,CAAC,cAA2C;QACxE,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC;QAC7D,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAgB,GAAG,EAAE,cAAc,CAAC,CAAC;IAClE,CAAC;IACM,cAAc;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;;0FAtCU,qBAAqB;wGAArB,qBAAqB,WAArB,qBAAqB,mBAFpB,MAAM;6FAEP,qBAAqB;cAHjC,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACZD;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AACwB;AACR;;;AASlD,MAAM,wBAAwB;IAMnC,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAL1C,cAAS,GAAG,qEAAW,CAAC,kBAAkB,CAAC;QAC3C,aAAQ,GAAG,qEAAW,CAAC,iBAAiB,CAAC;QACzC,cAAS,GAAG,uDAAe,CAAC,OAAO,CAAC;QACpC,UAAK,GAAG,uDAAe,CAAC,WAAW,CAAC;QACpC,YAAO,GAAG,uDAAe,CAAC,WAAW,CAAC;IACQ,CAAC;IAExC,yBAAyB,CAAC,MAAc;QAC7C,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC;QACpE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAsB,GAAG,GAAC,MAAM,CAAC,CAAC;IAC9D,CAAC;IAEM,4BAA4B,CAAC,aAAqB;QACvD,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,4BAA4B,GAAG,aAAa,CAAC;QACvF,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAyB,GAAG,CAAC,CAAC;IAC1D,CAAC;IACM,yBAAyB;QAC5B,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC;QAC/D,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAwB,GAAG,CAAC,CAAC;IACzD,CAAC;IACI,sBAAsB;QAC3B,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QAC5C,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAoB,GAAG,CAAC,CAAC;IACrD,CAAC;IAEM,2BAA2B,CAAC,aAAqB;QACtD,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,2BAA2B,GAAG,aAAa,CAAC;QACtF,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAoB,GAAG,CAAC,CAAC;IACrD,CAAC;;gGA7BU,wBAAwB;2GAAxB,wBAAwB,WAAxB,wBAAwB,mBAHvB,MAAM;6FAGP,wBAAwB;cAJtC,wDAAU;eAAC;gBACR,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACXH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AACwB;AACR;AAER;;;AAU5C,MAAM,uBAAuB;IAIlC,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAH1C,cAAS,GAAG,qEAAW,CAAC,kBAAkB,CAAC;QAC3C,cAAS,GAAG,uDAAe,CAAC,OAAO,CAAC;QACpC,uBAAkB,GAAG,IAAI,oDAAe,CAAyB,EAAE,CAAC,CAAC;IACvB,CAAC;IAExC,0BAA0B;QAC/B,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,0BAA0B,CAAC;QACrE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAwB,GAAG,CAAC,CAAC;IACzD,CAAC;IAEM,iCAAiC,CAAC,SAAiB;QACxD,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,iCAAiC,GAAG,SAAS,CAAC;QACxF,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAuB,GAAG,CAAC,CAAC;IACxD,CAAC;IAEM,2BAA2B;QAChC,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,2BAA2B,CAAC;QACtE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAgB,GAAG,CAAC,CAAC;IACjD,CAAC;;8FAnBU,uBAAuB;0GAAvB,uBAAuB,WAAvB,uBAAuB,mBAHtB,MAAM;6FAGP,uBAAuB;cAJnC,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACZD;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AACwB;AACR;;;AASlD,MAAM,wBAAwB;IAKnC,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAJ1C,cAAS,GAAG,qEAAW,CAAC,oBAAoB,CAAC;QAE7C,cAAS,GAAG,uDAAe,CAAC,OAAO,CAAC;IAEU,CAAC;IAExC,oBAAoB;QACzB,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC;QAC/D,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAA8B,GAAG,CAAC,CAAC;IAC/D,CAAC;;gGAVU,wBAAwB;2GAAxB,wBAAwB,WAAxB,wBAAwB,mBAHvB,MAAM;6FAGP,wBAAwB;cAJtC,wDAAU;eAAC;gBACR,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACTH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0D;AACuB;AACE;AAGrC;AACM;;;;;;;;;;AAW7C,MAAM,qBAAqB;IAMhC,YAA4C,IAA0B,EAC9D,cAA6B,EAC7B,SAAsB,EACtB,EAAe,EAChB,MAAiB,EAChB,SAA8C,EAC9C,OAAe;QANqB,SAAI,GAAJ,IAAI,CAAsB;QAC9D,mBAAc,GAAd,cAAc,CAAe;QAC7B,cAAS,GAAT,SAAS,CAAa;QACtB,OAAE,GAAF,EAAE,CAAa;QAChB,WAAM,GAAN,MAAM,CAAW;QAChB,cAAS,GAAT,SAAS,CAAqC;QAC9C,YAAO,GAAP,OAAO,CAAQ;QAPvB,qBAAgB,GAAG,2DAAW,CAAC,oBAAoB,CAAC;IAQpD,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,YAAY,GAAG,IAAI,wDAAS,CAAC;YAChC,OAAO,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAC,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;SACrD,CAAC,CAAC;IACL,CAAC;IACD,YAAY;QAEV,IAAI,CAAC,YAAY,GAAG,IAAI,4DAAM,EAAE,CAAC;QACjC,IAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAC1B;YACE,IAAI,CAAC,YAAY,CAAC,UAAU,GAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;YAClD,IAAI,CAAC,YAAY,CAAC,qBAAqB,GAAC,IAAI,CAAC;YAC7C,IAAI,CAAC,YAAY,CAAC,OAAO,GAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC;YAC1D,IAAI,CAAC,YAAY,CAAC,IAAI,GAAC,YAAY,CAAC;YAEvC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,GAAG,GAAE;gBACnE,IAAI,GAAG,EAAE;oBACP,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,MAAM,EAAE;wBACpC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;4BAChE,QAAQ,EAAE,IAAI;4BACV,UAAU,EAAC,CAAC,eAAe,CAAC;4BAChC,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;wBACH,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;qBAC9C;yBAAM;wBACL,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,uCAAuC,EACvC,GAAG,EACH;4BACE,UAAU,EAAC,CAAC,eAAe,CAAC;4BAE5B,QAAQ,EAAE,IAAI;4BACd,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CACF,CAAC;qBAEH;iBACF;YACH,CAAC,EACC,CAAC,KAAK,EAAE,EAAE;gBACR,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kCAAkC,EAAE,GAAG,EAAE;oBAC3D,QAAQ,EAAE,IAAI;oBACX,UAAU,EAAC,CAAC,aAAa,CAAC;oBAC7B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACL,CAAC,CACD;YACA,IAAI,CAAC,KAAK,EAAE,CAAC;SAEd;aAGG;YACF,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC;YACrC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,qDAAqD,EAAE,GAAG,EAAE;gBAC9E,QAAQ,EAAE,IAAI;gBACX,UAAU,EAAC,CAAC,aAAa,CAAC;gBAC7B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;SACJ;IACH,CAAC;IACD,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,gDAAgD;IAClD,CAAC;;0FAnFY,qBAAqB,kEAMZ,wEAAe;qGANxB,qBAAqB;QCjBlC,0EACI;QAAA;QAAA,wEAAqB;QAAA,sFAA2B;QAAA,4DAAK;QACrD;QAAA,qFACI;QAAA;QAAA,oFACI;QAAA;QAAA,4EAAW;QAAA,oEAAQ;QAAA,2EAA2B;QAAA,6DAAC;QAAA,4DAAO;QAAA,4DAAY;QAClE;QAAA,0EAA4F;QAChG;QAAA,4DAAiB;QACrB;QAAA,4DAAqB;QACrB;QAAA,yFACE;QAAA;QAAA,6EAAiF;QAA1B,8IAAS,kBAAc,IAAC;QAAE,kEAAM;QAAA,4DAAS;QAChG;QAAA,6EAA0C;QAAA,kEAAM;QAAA,4DAAS;QAC3D;QAAA,4DAAqB;QACzB;QAAA,4DAAO;;QAZD,uFAA0B;QAGR,0DAA+B;QAA/B,uGAA+B;;6FDc1C,qBAAqB;cALjC,uDAAS;eAAC;gBACT,QAAQ,EAAE,oBAAoB;gBAC9B,WAAW,EAAE,iCAAiC;gBAC9C,SAAS,EAAE,CAAC,iCAAiC,CAAC;aAC/C;;sBAOc,oDAAM;uBAAC,wEAAe;;;;;;;;;;;;;;AEvBrC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AAEZ;AACY;AAEmD;AAE/E;AAIqD;AAGe;;;;;;;;;;;;;;;;ICFjF,yEAAgF;IAAA,mEAAO;IAAA,4DAAK;;;IAE1F,uEAA4D;IAAA,uDAAsB;IAAA,4DAAO;;;IAA7B,0DAAsB;IAAtB,uFAAsB;;;;IAClF,wEAA4K;IAAjD,ycAAgD;IAAC,uDAAsB;IAAA,4DAAI;;;IAA1B,0DAAsB;IAAtB,uFAAsB;;;IAFpM,yEACE;IAAA;IAAA,0IAA4D;IAC5D;IAAA,qIAA4K;IAC9K;IAAA,4DAAK;;;IAFG,0DAAqD;IAArD,mHAAqD;IACS,0DAAsD;IAAtD,oHAAsD;;;IAK5H,yEAAgF;IAAA,0EAAc;IAAA,4DAAK;;;IACnG,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,oJACF;;;IAGA,yEAAgF;IAAA,0EAAc;IAAA,4DAAK;;;IACnG,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,iJACF;;;IAIA,yEAAgF;IAAA,sEAAU;IAAA,4DAAK;;;IAC/F,yEAAuC;IAAA,uDAAoB;IAAA,4DAAK;;;IAAzB,0DAAoB;IAApB,qFAAoB;;;IAI3D,yEAAgF;IAAA,mEAAO;IAAA,4DAAK;;;;IAC5F,yEACI;IAAA;IAAA,6EAAmI;IAAtC,iVAA2B,QAAQ,KAAE;IAAC,kEAAO;IAAA,4DAAS;IACvJ;IAAA,4DAAK;;;IADO,0DAAkC;IAAlC,iGAAkC;;;IAK9C,yEAAgF;IAAA,4EAAgB;IAAA,4DAAK;;;;IACvG,yEACE;IAAA;IAAA,6EAA8J;IAAA,2EAAU;IAAA,qEAAU;IAAA,4DAAW;IAAA,2EAAgB;IAAA,4DAAS;IACtN;IAAA,4DAAK;;;IADG,0DAAmF;IAAnF,4LAAmF;;;IAH7F,4EACE;IAAA;IAAA,gJAAgF;IAClF;IAAA,gJACE;IAEF;IAAA,qEAAe;;;IAEf,oEAA4D;;;IAC5D,oEAAiE;;;IAW7D,yEAAgF;IAAA,oEAAQ;IAAA,4DAAK;;;IAC7F,yEAAuC;IAAA,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,wFAAuB;;;IAI9D,yEAAgF;IAAA,mEAAO;IAAA,4DAAK;;;IAC5F,yEAAuC;IAAA,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,uFAAsB;;;IAI7D,yEAAgF;IAAA,4EAAgB;IAAA,4DAAK;;;IAEnG,sEACA;IAAA;IAAA,wEAAyH;IAAA,0EAAe;IAAA,4DAAI;IAC9I;IAAA,4DAAM;;;IADkC,0DAAkF;IAAlF,4LAAkF;;;IAE1H,sEACE;IAAA;IAAA,wEAA+C;IAAA,0EAAe;IAAA,4DAAI;IACpE;IAAA,4DAAM;;;IANN,yEACE;IAAA;IAAA,+IACA;IAEF;IAAA,+IACE;IAEF;IAAA,4DAAK;;;IANE,0DAA+E;IAA/E,qJAA+E;IAGjF,0DAA4E;IAA5E,kJAA4E;;;IAMnF,oEAAkE;;;IAClE,oEAAuE;;;IACvE,yEACE;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAC/C;IAAA,4DAAK;;;IAjCzB,sEACQ;IAAA;IAAA,0EACE;IAAA,wGACF;IAAA,4DAAM;IACJ;IAAA,yEACI;IAAA;IAAA,2EAEM;IAAA;IAAA,4EACE;IAAA;IAAA,yIAAgF;IAChF;IAAA,yIAAuC;IACzC;IAAA,qEAAe;IAEf;IAAA,4EACE;IAAA;IAAA,yIAAgF;IAChF;IAAA,yIAAuC;IACzC;IAAA,qEAAe;IAEf;IAAA,6EACE;IAAA;IAAA,yIAAgF;IAChF;IAAA,yIACE;IAOJ;IAAA,qEAAe;IAEf;IAAA,0IAA6D;IAC7D;IAAA,0IAAkE;IAClE;IAAA,0IACE;IAER;IAAA,4DAAQ;IACZ;IAAA,4DAAM;IAER;IAAA,4DAAM;;;IAhCiB,0DAA+B;IAA/B,gGAA+B;IAwBvB,2DAAyC;IAAzC,2GAAyC;IAChD,0DAAqD;IAArD,4GAAqD;;;IArFrF,2EACE;IAAA;IAAA,kFACE;IAAA;IAAA,iFAAgB;IAAA,iFAAsB;IAAA,4DAAiB;IACzD;IAAA,4DAAkB;IAChB;IAAA,mFACE;IAAA;IAGE;IAAA,0EACI;IAAA;IAAA,4EAEM;IAAA;IAAA,4EACE;IAAA;IAAA,kIAAgF;IAChF;IAAA,kIACE;IAGJ;IAAA,qEAAe;IAEf;IAAA,4EACE;IAAA;IAAA,kIAAgF;IAChF;IAAA,kIACE;IAEJ;IAAA,qEAAe;IACf;IAAA,4EACE;IAAA;IAAA,kIAAgF;IAChF;IAAA,kIACE;IAEJ;IAAA,qEAAe;IAEf;IAAA,4EACE;IAAA;IAAA,kIAAgF;IAChF;IAAA,kIAAuC;IACzC;IAAA,qEAAe;IAEf;IAAA,4EACE;IAAA;IAAA,kIAAgF;IAChF;IAAA,kIACI;IAEN;IAAA,qEAAe;IAEf;IAAA,uJACE;IAMF;IAAA,mIAAuD;IACvD;IAAA,mIAA4D;IAClE;IAAA,4DAAQ;IACZ;IAAA,4DAAM;IACd;IAAA,qIACQ;IAsCJ;IAAA,4DAAmB;IACvB;IAAA,4DAAW;;;IAtFkB,2DAAyB;IAAzB,yFAAyB;IAmCtB,2DAA0B;IAA1B,2FAA0B;IAOrB,0DAAmC;IAAnC,oGAAmC;IAC1C,0DAA+C;IAA/C,qGAA+C;IAGxE,0DAAuB;IAAvB,wFAAuB;;ADlCrB,MAAM,2BAA2B;IAsBtC,YACU,OAA0B,EAC1B,8BAA6D,EAC7D,cAA6B,EAC7B,mBAAwC,EACxC,SAAsB,EACvB,MAAiB;QALhB,YAAO,GAAP,OAAO,CAAmB;QAC1B,mCAA8B,GAA9B,8BAA8B,CAA+B;QAC7D,mBAAc,GAAd,cAAc,CAAe;QAC7B,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,cAAS,GAAT,SAAS,CAAa;QACvB,WAAM,GAAN,MAAM,CAAW;QA1B1B,yBAAoB,GAAG,KAAK,CAAC;QAC7B,uBAAkB,GAAG,KAAK,CAAC;QAC3B,oBAAe,GAAG,KAAK,CAAC;QAMxB,aAAQ,GAAG,KAAK,CAAC;QACjB,wBAAmB,GAAG,KAAK,CAAC;QAG5B,qBAAgB,GAAa,CAAC,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC9E,2BAAsB,GAAa,CAAC,SAAS,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IAa7C,CAAC;IAE/B,QAAQ;QACN,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,IAAI,IAAI,EAAE;YACrE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAC5B,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAC1D,CAAC,QAAQ,CAAC;YACX,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;YAC5B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CACrB,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAC1D,CAAC,UAAU,CAAC;SACd;QACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAC5B,cAAc,CAAC,iCAAiC,CAAC,CAClD,CAAC,YAAY,CAAC;QACf,IAAI,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC;QAC3E,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAC9B,IAAG,IAAI,CAAC,YAAY,KAAK,CAAC,CAAC,YAAY,EAAC;gBACtC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,cAAc;aACvC;QACH,CAAC,CAAC;QACF,IAAG,IAAI,CAAC,cAAc,KAAK,UAAU,EAAC;YACpC,IAAI,CAAC,SAAS,GAAG,mBAAmB,CAAC;SACtC;aACG;YACF,IAAI,CAAC,SAAS,GAAG,kBAAkB,CAAC;SACrC;QACD,IAAI,CAAC,uBAAuB,EAAE,CAAC;IACjC,CAAC;IAED,uBAAuB;QACrB,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,IAAI,CAAC,8BAA8B,CAAC,yBAAyB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,CAAC,IAAI,CACvH,CAAC,GAAU,EAAE,EAAE;gBACb,IAAI,GAAG,CAAC,MAAM,EAAE;oBACd,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;oBAEjC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBACd,CAAC,CAAC,QAAQ,GAAG,mCAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;wBACrD,IAAI,CAAC,CAAC,gBAAgB,KAAK,iBAAiB,EAAE;4BAC5C,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;yBACjC;wBACD,IAAI,CAAC,CAAC,gBAAgB,KAAK,gBAAgB,EAAE;4BAC3C,IAAI,CAAC,gBAAgB,GAAG,CAAC,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;yBAChF;wBACD,IAAG,CAAC,CAAC,gBAAgB,KAAK,IAAI,EAAC;4BAC7B,IAAI,CAAC,gBAAgB,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC;yBACzD;wBACD,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,SAAgC,EAAE,EAAE;4BACpG,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;gCAC1B,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;oCACvB,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,kBAAkB,IAAI,IAAI,CAAC,MAAM,KAAK,iBAAiB,CAAC,EAAE;wCAC7E,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;wCAC/B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;wCAChC,IAAG,CAAC,CAAC,gBAAgB,KAAK,gBAAgB,EAAC;4CACzC,IAAI,CAAC,gBAAgB,GAAG,CAAC,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAC;yCAClG;6CACI,IAAG,CAAC,CAAC,gBAAgB,KAAK,IAAI,EAAC;4CAClC,IAAI,CAAC,gBAAgB,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,gBAAgB,CAAC;yCAC3E;6CACG;4CACF,IAAI,CAAC,gBAAgB,GAAG,CAAC,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC;yCAC5F;qCACF;gCACH,CAAC,CAAC,CAAC;6BAEJ;iCACI,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;gCAC7B,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;oCACvB,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,kBAAkB,IAAI,IAAI,CAAC,MAAM,KAAK,iBAAiB,EAAE;wCACxG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;wCAC5B,IAAI,CAAC,gBAAgB,GAAG,IAAI,0EAAkB,CAAC,SAAS,CAAC,CAAC;wCAC1D,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;wCAC/B,IAAG,CAAC,CAAC,gBAAgB,KAAK,gBAAgB,EAAC;4CACzC,IAAI,CAAC,gBAAgB,GAAG,CAAC,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAC;yCAClF;6CACI,IAAG,CAAC,CAAC,gBAAgB,KAAK,IAAI,EAAC;4CAClC,IAAI,CAAC,gBAAgB,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,gBAAgB,CAAC;yCAC3E;6CACG;4CACF,IAAI,CAAC,gBAAgB,GAAG,CAAC,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC;yCAC5F;qCACF;oCACD,IAAI,CAAC,CAAC,aAAa,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE;wCACpD,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC;wCAC9B,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;wCAChC,IAAI,CAAC,gBAAgB,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;qCAE1D;gCACH,CAAC,CAAC,CAAC;6BAGJ;wBAEH,CAAC,CAAC,CAAC;oBAGL,CAAC,CAAC,CAAC;oBAIH,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,GAAG,CAAC,CAAC;oBAC9C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;oBACjC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;oBACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;iBACtB;qBACI;oBACH,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;oBACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;iBACtB;YACH,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;gBACf,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YAEvB,CAAC,CAAC,CAAC;SACN;IAIH,CAAC;IAED,iBAAiB,CAAC,UAAkB;QAClC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qHAAqB,EAAE;YACxD,MAAM,EAAE,OAAO;YACf,KAAK,EAAE,OAAO;YACd,YAAY,EAAE,IAAI;YAClB,IAAI,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;SAC5B,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,MAAM,CAAC,YAAY,EAAE;gBACvB,IAAI,CAAC,qBAAqB,GAAG,IAAI,2FAAiB,EAAE,CAAC;gBACrD,IAAI,CAAC,qBAAqB,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;gBACnD,IAAI,CAAC,qBAAqB,CAAC,OAAO,GAAG,kBAAkB;gBACvD,IAAI,CAAC,qBAAqB,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;gBAC9D,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACpB,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;oBACrF,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;oBACpB,IAAI,GAAG,EAAE;wBACP,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,+CAA+C,EAAE,GAAG,EAAE;4BACxE,QAAQ,EAAE,IAAI;4BACd,UAAU,EAAE,CAAC,eAAe,CAAC;4BAC7B,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;wBACH,IAAI,CAAC,uBAAuB,EAAE,CAAC;qBAChC;gBACH,CAAC,EACC,CAAC,KAAK,EAAE,EAAE;oBACR,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;oBACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,8BAA8B,EAAE,GAAG,EAAE;wBACvD,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,aAAa,CAAC;wBAC3B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;aACN;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,kBAAkB,CAAC,UAAkB;QACnC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gHAA2B,EAAE;YAC9D,KAAK,EAAE,OAAO;YACd,YAAY,EAAE,IAAI;YAClB,IAAI,EAAE,EAAE,KAAK,EAAE,UAAU,EAAC;SAC3B,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;QAC/B,CAAC,CAAC;IACJ,CAAC;;sGAtMU,2BAA2B;2GAA3B,2BAA2B;wEAkB3B,8DAAO;;;;;QCvCpB,kIACE;QA+FF;;QAhGU,0FAA4B;;6FDqBzB,2BAA2B;cALvC,uDAAS;eAAC;gBACT,QAAQ,EAAE,yBAAyB;gBACnC,WAAW,EAAE,sCAAsC;gBACnD,SAAS,EAAE,CAAC,sCAAsC,CAAC;aACpD;okBAmBuC,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AEvCtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AAIZ;AACY;AAE5B;;;;;;;;;;;;;;;;;;;;ICHrB,iFAAyC;IAAA,wEAAa;IAAA,4DAAiB;;;IAS3D,yEAAgF;IAAA,mEAAO;IAAA,4DAAK;;;IAC5F,yEAAuC;IAAA,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,yFAAwB;;;IAI/D,yEAAgF;IAAA,mGAChF;IAAA,4DAAK;;;IACL,yEAAuC;IAAA,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,yFAAwB;;;IAI/D,yEAAgF;IAAA,iGAChF;IAAA,4DAAK;;;IACL,yEAAuC;IAAA,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,wFAAuB;;;IAI9D,yEAAgF;IAAA,sEAAU;IAAA,4DAAK;;;IAC/F,yEAAuC;IAAA,uDAAoB;IAAA,4DAAK;;;IAAzB,0DAAoB;IAApB,qFAAoB;;;IAI3D,yEAAgF;IAAA,mEAAO;IAAA,4DAAK;;;IAC5F,yEAAuC;IAAA,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,uFAAsB;;;IAG7D,yEAEI;IAAA,8FAAK;IAAA,4DAAK;;;;IAEV,+EAC4D;IAApC,wcAAmC;IAAC,qEAAU;IAAA,4DAAW;;;IAFrF,yEACI;IAAA;IAAA,kJAC4D;IAChE;IAAA,4DAAK;;;;IAFS,0DAAqL;IAArL,mQAAqL;;;IAKnM,yEAEI;IAAA,gGAAO;IAAA,4DAAK;;;;IAEZ,6EAGI;IADgC,ocAAmC;IACnE,4IACJ;IAAA,4DAAS;;;IALb,yEACI;IAAA;IAAA,8IAGI;IAER;IAAA,4DAAK;;;;IAJG,0DAAsI;IAAtI,gNAAsI;;;IASlJ,oEAAuE;;;IACvE,oEAA4E;;;IAC5E,yEACI;IAAA;IAAA,yEAAiC;IAAA,qEAAU;IAAA,4DAAK;IACpD;IAAA,4DAAK;;;AD5ClB,MAAM,qCAAqC;IAmBhD,YACU,KAAa,EACb,SAAsB,EACvB,UAAsB,EACrB,OAA0B,EAC1B,mBAAwC,EACxC,kBAAqC,EACrC,8BAA6D,EAC7D,iBAAmC,EACpC,MAAiB;QARhB,UAAK,GAAL,KAAK,CAAQ;QACb,cAAS,GAAT,SAAS,CAAa;QACvB,eAAU,GAAV,UAAU,CAAY;QACrB,YAAO,GAAP,OAAO,CAAmB;QAC1B,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,uBAAkB,GAAlB,kBAAkB,CAAmB;QACrC,mCAA8B,GAA9B,8BAA8B,CAA+B;QAC7D,sBAAiB,GAAjB,iBAAiB,CAAkB;QACpC,WAAM,GAAN,MAAM,CAAW;QAvB1B,eAAU,GAAG;YACX,GAAG,EAAE,wBAAwB;SAC9B,CAAC;QAOF,gCAA2B,GAAG,CAAC,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC1H,aAAQ,GAAG,KAAK,CAAC;QACjB,cAAS,GAAG,KAAK,CAAC;QAchB,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,EAAE;YAC9D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CACxB,cAAc,CAAC,+BAA+B,CAC/C,CAAC,QAAQ,CAAC;QACX,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CACrB,cAAc,CAAC,+BAA+B,CAC/C,CAAC,UAAU,CAAC;QACb,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAED,WAAW,CAAC,KAAY;QACtB,eAAe;QACf,kEAAkE;QAClE,4EAA4E;QAC5E,WAAW;QACX,8FAA8F;QAC9F,IAAI;QACJ,gDAAgD;QAChD,wDAAwD;QACxD,IAAI;QACJ,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,CAAC,uBAAuB,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SACxE;aAAM;YACL,IAAI,CAAC,uBAAuB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC1E,IAAI,CAAC,uBAAuB,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC;YAC5D,IAAI,CAAC,uBAAuB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SAC/C;QACD,+DAA+D;QAC/D,iDAAiD;IACnD,CAAC;IAGD,oBAAoB;QAClB,IAAI,CAAC,8BAA8B,CAAC,yBAAyB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,GAAU,EAAE,EAAE;YAChI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACd,CAAC,CAAC,QAAQ,GAAG,mCAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACvD,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;YACzB,IAAI,CAAC,uBAAuB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC1E,IAAI,CAAC,uBAAuB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YAC9C,IAAI,CAAC,uBAAuB,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC;QAC9D,CAAC,CAAC,CAAC;IAEL,CAAC;IAED,WAAW;QACT,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC;IAE/D,CAAC;IAED,gBAAgB,CAAC,YAAiB;QAChC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,sBAAsB,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC;IAC1E,CAAC;;0HA3FU,qCAAqC;qHAArC,qCAAqC;;wEAUrC,8DAAO;;;;;;QC/BpB;QAAA,yEACI;QAAA;QAAA,8EACI;QAAA;QAAA,kFACI;QAAA;QAAA,uJAAyC;QAC7C;QAAA,4DAAkB;QAClB;QAAA,oFACI;QAAA;QAGA;QAAA,0EACI;QAAA;QAAA,4EACI;QAAA;QAAA,4EACI;QAAA;QAAA,iIAAgF;QAChF;QAAA,iIAAuC;QAC3C;QAAA,qEAAe;QAEf;QAAA,4EACI;QAAA;QAAA,iIAAgF;QAEhF;QAAA,iIAAuC;QAC3C;QAAA,qEAAe;QAEf;QAAA,4EACI;QAAA;QAAA,iIAAgF;QAEhF;QAAA,iIAAuC;QAC3C;QAAA,qEAAe;QAEf;QAAA,6EACI;QAAA;QAAA,iIAAgF;QAChF;QAAA,iIAAuC;QAC3C;QAAA,qEAAe;QAEf;QAAA,6EACI;QAAA;QAAA,iIAAgF;QAChF;QAAA,iIAAuC;QAC3C;QAAA,qEAAe;QACf;QAAA,6EACI;QAAA;QAAA,iIAEI;QACJ;QAAA,iIACI;QAGR;QAAA,qEAAe;QACf;QAAA,6EACI;QAAA;QAAA,iIAEI;QACJ;QAAA,iIACI;QAQR;QAAA,qEAAe;QAEf;QAAA,kIAAkE;QAClE;QAAA,kIAAuE;QACvE;QAAA,kIACI;QAER;QAAA,4DAAQ;QACZ;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,yFACA;QAAA;QAAA,4DAAgB;QACpB;QAAA,4DAAM;QACV;QAAA,4DAAmB;QACvB;QAAA,4DAAW;QACf;QAAA,4DAAM;;QAvEsB,0DAAuB;QAAvB,uFAAuB;QAOlB,0DAAsC;QAAtC,mGAAsC;QAmDhC,2DAA8C;QAA9C,4GAA8C;QACrD,0DAA0D;QAA1D,6GAA0D;QAO5C,0DAAgC;QAAhC,kJAAgC;;6FDhDjE,qCAAqC;cALjD,uDAAS;eAAC;gBACT,QAAQ,EAAE,qCAAqC;gBAC/C,WAAW,EAAE,kDAAkD;gBAC/D,SAAS,EAAE,CAAC,kDAAkD,CAAC;aAChE;w5BAUgD,aAAa;kBAA3D,uDAAS;mBAAC,eAAe,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;YACP,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AEhCtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAkD;;;;;;ICClD,iGAAqG;;ADM9F,MAAM,kCAAkC;IAI7C,gBAAgB,CAAC;IAEjB,QAAQ;QACN,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CACxB,cAAc,CAAC,iCAAiC,CAAC,CAClD,CAAC,QAAQ,CAAC;QACX,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CACrB,cAAc,CAAC,iCAAiC,CAAC,CAClD,CAAC,UAAU,CAAC;IACf,CAAC;;oHAbU,kCAAkC;kHAAlC,kCAAkC;QCP/C,mFAA+C;QAC/C;QAAA,8LAA+D;;QAA1B,0DAAyB;QAAzB,uFAAyB;;6FDMjD,kCAAkC;cAL9C,uDAAS;eAAC;gBACT,QAAQ,EAAE,kCAAkC;gBAC5C,WAAW,EAAE,+CAA+C;gBAC5D,SAAS,EAAE,CAAC,+CAA+C,CAAC;aAC7D;;;;;;;;;;;;;;AEND;AAAA;AAAA;AAAA;AAAA;AAAwD;AAC0B;;;;AAO3E,MAAM,qBAAqB;IAEhC,YAAmB,SAA8C,EAC/B,IAAS;QADxB,cAAS,GAAT,SAAS,CAAqC;QAC/B,SAAI,GAAJ,IAAI,CAAK;IAAI,CAAC;IAEhD,QAAQ;IACR,CAAC;;0FANU,qBAAqB,0MAGtB,wEAAe;qGAHd,qBAAqB;QCRlC,wEAAqB;QAAA,uDAAgB;QAAA,4DAAK;QAC1C;QAAA,wFACA;QAAA;QAAA,oEAAG;QAAA,uDAAgB;QAAA,4DAAI;QACvB;QAAA,4DAAqB;QACrB;QAAA,wFACI;QAAA;QAAA,6EAAsD;QAAA,kEAAM;QAAA,4DAAS;QACrE;QAAA,6EAAkE;QAAA,+DAAG;QAAA,4DAAS;QAChF;QAAA,4DAAqB;QAEvB;;QATqB,0DAAgB;QAAhB,iFAAgB;QAElC,0DAAgB;QAAhB,iFAAgB;QAGY,0DAA0B;QAA1B,mFAA0B;QACb,0DAAyB;QAAzB,kFAAyB;;6FDExD,qBAAqB;cALjC,uDAAS;eAAC;gBACT,QAAQ,EAAE,mBAAmB;gBAC7B,WAAW,EAAE,gCAAgC;gBAC7C,SAAS,EAAE,CAAC,gCAAgC,CAAC;aAC9C;;sBAII,oDAAM;uBAAC,wEAAe;;;;;;;;;;;;;;AEX3B;AAAA;AAAA;AAAA;AAAA;AAA0D;AACe;;;;AAOlE,MAAM,2BAA2B;IAEtC,YAAmB,SAAoD,EACrC,IAAS;QADxB,cAAS,GAAT,SAAS,CAA2C;QACrC,SAAI,GAAJ,IAAI,CAAK;IAAI,CAAC;IAEhD,QAAQ;IACR,CAAC;;sGANU,2BAA2B,0MAG5B,wEAAe;2GAHd,2BAA2B;QCRxC,wEAAqB;QAAA,uDAAgB;QAAA,4DAAK;QAC1C;QAAA,wFACA;QAAA;QAAA,oEAAG;QAAA,uDAAgB;QAAA,4DAAI;QACvB;QAAA,4DAAqB;QACrB;QAAA,wFACI;QAAA;QAAA,6EAAkE;QAAA,+DAAG;QAAA,4DAAS;QAC9E;QAAA,6EAAsD;QAAA,8DAAE;QAAA,4DAAS;QACnE;QAAA,4DAAqB;QAEvB;;QATqB,0DAAgB;QAAhB,iFAAgB;QAElC,0DAAgB;QAAhB,iFAAgB;QAGyB,0DAAyB;QAAzB,kFAAyB;QACtC,0DAA0B;QAA1B,mFAA0B;;6FDE5C,2BAA2B;cALvC,uDAAS;eAAC;gBACT,QAAQ,EAAE,yBAAyB;gBACnC,WAAW,EAAE,sCAAsC;gBACnD,SAAS,EAAE,CAAC,sCAAsC,CAAC;aACpD;;sBAII,oDAAM;uBAAC,wEAAe;;;;;;;;;;;;;;AEX3B;AAAA;AAAA;AAAkD;;AAO3C,MAAM,2BAA2B;IAEtC,gBAAgB,CAAC;IAEjB,QAAQ;IACR,CAAC;;sGALU,2BAA2B;2GAA3B,2BAA2B;6FAA3B,2BAA2B;cALvC,uDAAS;eAAC;gBACT,QAAQ,EAAE,yBAAyB;gBACnC,WAAW,EAAE,sCAAsC;gBACnD,SAAS,EAAE,CAAC,sCAAsC,CAAC;aACpD;;;;;;;;;;;;;;ACND;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwE;AAGqC;AACzC;AAGmB;AACnB;AACK;AACxC;AACwC;AACE;AACe;AAE5B;AAGH;AACE;AACX;AAK+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICXrE,yEAOE;IAAA,0GACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,oIACF;;;IAGA,yEAOE;IAAA,sGACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,2HACF;;;IAIA,yEAOE;IAAA,6FACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,2HACF;;;IAGA,yEAOE;IAAA,mGACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,6HACF;;;IAGA,yEACI;IAAA,mGACJ;IAAA,4DAAK;;;;IACL,yEACE;IAAA;IAAA,+EACG;IAD+B,6XAAoC;IACnE,+DAAI;IAAA,4DACN;IACH;IAAA,4DAAK;;;IAGL,yEACI;IAAA,kGACJ;IAAA,4DAAK;;;;IACL,yEACE;IAAA;IAAA,+EACG;IADoE,uZAAuC,UAAU,YAAI;IACzH,gEAAK;IAAA,4DACP;IACH;IAAA,4DAAK;;;IAIL,yEACI;IAAA,iGACJ;IAAA,4DAAK;;;;IACL,yEACE;IAAA;IAAA,+EACG;IADkE,oaAA6C;IAC/G,gEAAK;IAAA,4DACP;IACH;IAAA,4DAAK;;;IAGL,yEACE;IAAA,6FACF;IAAA,4DAAK;;;;IAEH,+EACG;IADyE,0bAA4B;IACrG,+DAAI;IAAA,4DACN;;;IAHH,yEACE;IAAA;IAAA,0IACG;IAEL;IAAA,4DAAK;;;IAH+B,0DAAyC;IAAzC,uGAAyC;;;IAM/E,oEAA4D;;;IAC5D,oEAAiE;;;;IA/GzE,2EACE;IAAA;IAAA,mFACE;IAAA;IAAA,yEACE;IAAA;IAAA,2EAQA;IAAA;IAAA,2EACI;IAAA;IAAA,yHAOE;IAEF;IAAA,yHACE;IAEJ;IAAA,qEAAe;IACf;IAAA,4EACE;IAAA;IAAA,yHAOE;IAEF;IAAA,yHACE;IAEJ;IAAA,qEAAe;IAEf;IAAA,6EACE;IAAA;IAAA,yHAOE;IAEF;IAAA,yHACE;IAEJ;IAAA,qEAAe;IACf;IAAA,6EACE;IAAA;IAAA,yHAOE;IAEF;IAAA,yHACE;IAEJ;IAAA,qEAAe;IACf;IAAA,6EACE;IAAA;IAAA,0HACI;IAEJ;IAAA,yHACE;IAIJ;IAAA,qEAAe;IACf;IAAA,6EACE;IAAA;IAAA,0HACI;IAEJ;IAAA,yHACE;IAIJ;IAAA,qEAAe;IAEf;IAAA,6EACE;IAAA;IAAA,0HACI;IAEJ;IAAA,yHACE;IAIJ;IAAA,qEAAe;IACf;IAAA,6EACE;IAAA;IAAA,0HACE;IAEF;IAAA,yHACE;IAIJ;IAAA,qEAAe;IAEf;IAAA,0HAAuD;IACvD;IAAA,0HAA4D;IAC9D;IAAA,4DAAQ;IACR;IACF;IAAA,4DAAM;IACN;IAAA,2EACE;IAAA;IAAA,gFAAgE;IAClE;IAAA,4DAAM;IAEP;IAAA,4DAAmB;IACtB;IAAA,4DAAW;;;IAlHH,0DAAyB;IAAzB,yFAAyB;IAwGN,2DAAmC;IAAnC,oGAAmC;IAC1C,0DAA+C;IAA/C,qGAA+C;IAK9C,0DAAgC;IAAhC,kJAAgC;;;IAW3C,yEACE;IAAA,0GACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,oIACF;;;IAGA,yEAAsD;IAAA,sFACtD;IAAA,4DAAK;;;;IACL,yEACE;IAAA;IAAA,wEAAuE;IAApE,gXAA8B;IAAsC,uDAAqB;IAAA,4DAAI;IAClG;IAAA,4DAAK;;;IADoE,0DAAqB;IAArB,oFAAqB;;;IAK9F,yEAAsD;IAAA,6EACtD;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,2HACF;;;IAGA,yEAAuD;IAAA,iFACvD;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,2HACF;;;IAGF,oEAA+D;;;IAC/D,oEAAoE;;;IApC5E,2EACE;IAAA;IAAA,mFACE;IAAA;IAAA,yEACE;IAAA;IAAA,4EACA;IAAA;IAAA,2EACI;IAAA;IAAA,0HACE;IAEF;IAAA,yHACE;IAEJ;IAAA,qEAAe;IACf;IAAA,4EACE;IAAA;IAAA,0HAAsD;IAEtD;IAAA,yHACE;IAEJ;IAAA,qEAAe;IAEf;IAAA,6EACE;IAAA;IAAA,0HAAsD;IAEtD;IAAA,yHACE;IAEJ;IAAA,qEAAe;IACf;IAAA,6EACE;IAAA;IAAA,0HAAuD;IAEvD;IAAA,yHACE;IAEJ;IAAA,qEAAe;IAEf;IAAA,0HAA0D;IAC1D;IAAA,0HAA+D;IACjE;IAAA,4DAAQ;IACR;IACF;IAAA,4DAAM;IACN;IAAA,2EACE;IAAA;IAAA,gFAAgE;IAClE;IAAA,4DAAM;IAER;IAAA,4DAAmB;IACrB;IAAA,4DAAW;;;IA1CY,0DAAyB;IAAzB,yFAAyB;IAgCrB,2DAAsC;IAAtC,uGAAsC;IAC7C,0DAAkD;IAAlD,wGAAkD;IAKjD,0DAAgC;IAAhC,kJAAgC;;;IAYnD,sEACE;IAAA;IACA;IAAA,2FAA+D;IACjE;IAAA,4DAAM;;;IACN,sEAEE;IAAA;IACA;IAAA,2FAA+D;IACjE;IAAA,4DAAM;;;IAGN,sEACE;IAAA;IAAA,+EAAuC;IACzC;IAAA,4DAAM;;;IAGN,sEACE;IAAA;IAAA,2FAA+D;IACjE;IAAA,4DAAM;;;IAGN,sEACE;IAAA;IAAA,2FAA+D;IACjE;IAAA,4DAAM;;;IAEN,sEACE;IAAA;IAAA,qFAAmD;IACrD;IAAA,4DAAM;;;IAEN,sEACE;IAAA;IACA;IAAA,qFAAmD;IACrD;IAAA,4DAAM;;;IAEN,sEACE;IAAA;IAAA,+EAAuC;IACzC;IAAA,4DAAM;;;IAEN,sEACE;IAAA;IAAA,qFAAmD;IACrD;IAAA,4DAAM;;;IAEN,sEACE;IAAA;IAAA,6FAAmE;IACrE;IAAA,4DAAM;;ADrLH,MAAM,kBAAkB;IAgE3B,QAAQ;IACR,0EAA0E;IAC1E,2BAA2B;IAC3B,sBAAsB;IACtB,2CAA2C;IAC3C,QAAQ;IACR,IAAI;IAEJ,iCAAiC;IACjC,mBAAmB;IACnB,sEAAsE;IACtE,sEAAsE;IACtE,eAAe;IACf,8EAA8E;IAC9E,QAAQ;IACR,0CAA0C;IAC1C,kDAAkD;IAClD,QAAQ;IACR,qDAAqD;IACrD,2CAA2C;IAC3C,MAAM;IAEN,YAAoB,OAAe,EAAS,EAAe,EAAU,QAAwB,EAC/E,iBAAoC,EAAU,OAAsB,EACpE,eAAmC,EACnC,oBAAyC,EACzC,mBAAuC,EAAU,iBAAmC,EACtF,SAAsB,EACvB,UAAsB,EACrB,OAA0B,EAC1B,MAAkB;QARV,YAAO,GAAP,OAAO,CAAQ;QAAS,OAAE,GAAF,EAAE,CAAa;QAAU,aAAQ,GAAR,QAAQ,CAAgB;QAC/E,sBAAiB,GAAjB,iBAAiB,CAAmB;QAAU,YAAO,GAAP,OAAO,CAAe;QACpE,oBAAe,GAAf,eAAe,CAAoB;QACnC,yBAAoB,GAApB,oBAAoB,CAAqB;QACzC,wBAAmB,GAAnB,mBAAmB,CAAoB;QAAU,sBAAiB,GAAjB,iBAAiB,CAAkB;QACtF,cAAS,GAAT,SAAS,CAAa;QACvB,eAAU,GAAV,UAAU,CAAY;QACrB,YAAO,GAAP,OAAO,CAAmB;QAC1B,WAAM,GAAN,MAAM,CAAY;QA5F9B,cAAS,GAAG,wDAAe,CAAC,iBAAiB,CAAC;QAK9C,0BAAqB,GAAY,KAAK,CAAC;QACvC,wBAAmB,GAAY,KAAK,CAAC;QACrC,iBAAY,GAAW,EAAE,CAAC;QACnB,aAAQ,GAAU,EAAE,CAAC;QACrB,gBAAW,GAAU,EAAE,CAAC;QACxB,iBAAY,GAAiB,EAAE,CAAC;QAEhC,WAAM,GAAmC,EAAE,CAAC;QAC5C,iBAAY,GAAmC,EAAE,CAAC;QAElD,wBAAmB,GAAU,EAAE,CAAC;QAChC,6BAAwB,GAAU,EAAE,CAAC;QACrC,2BAAsB,GAAU,EAAE,CAAC;QACnC,kBAAa,GAAU,EAAE,CAAC;QAC1B,YAAO,GAAU,EAAE,CAAC;QAE3B,kBAAa,GAAY,KAAK,CAAC;QAC/B,UAAK,GAAY,KAAK,CAAC;QAEvB,kBAAa,GAAG,YAAY,CAAC;QAC7B,aAAQ,GAAe,IAAI,mFAAU,EAAE,CAAC;QAExC,iBAAY,GAAY,KAAK,CAAC;QAC9B,eAAU,GAAW,MAAM,CAAC;QAE5B,aAAQ,GAAG,EAAE,CAAC;QAEd,sBAAiB,GAAY,KAAK,CAAC;QASnC,qBAAgB,GAAG,CAAC,CAAC;QACd,aAAQ,GAAa,EAAE,CAAC;QAI/B,iBAAY,GAAY,IAAI,CAAC;QAC7B,0BAAqB,GAAY,KAAK,CAAC;QACvC,uBAAkB,GAAiB,EAAE,CAAC;QAEtC,iBAAY,GAAa,EAAE,CAAC;QAE5B,qBAAgB,GAAa,CAAC,kBAAkB,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC9H,wBAAmB,GAAa,CAAC,kBAAkB,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAEtF,eAAU,GAAG,IAAI,2EAAkB,EAAE,CAAC;QAuClC,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,EAAE;YAC9D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;YACjC,uCAAuC;QACvC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC;QAC9D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;QAEhD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACxB,oBAAoB,EAAE,CAAC,IAAI,CAAC;YAC5B,UAAU,EAAE,CAAC,IAAI,CAAC;YAClB,WAAW,EAAE,CAAC,IAAI,CAAC;YACnB,SAAS,EAAE,CAAC,IAAI,CAAC;YACjB,WAAW,EAAE,CAAC,IAAI,CAAC;YACnB,kBAAkB,EAAE,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACjD,YAAY,EAAE,CAAC,IAAI,CAAC;SACvB,CAAC,CAAC;IACP,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACvF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,KAAK,CAAC;QACpF,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;YACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,QAAQ,CAAC;YACvF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC,CAAC,UAAU,CAAC;YAE3F,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;YAC9B,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;YAC5B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;YAC7B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC;YACtC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,oBAAoB,EAAE,CAAC;SAE/B;aACI;YACD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;SACrC;QAGD,UAAU,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACrC,CAAC,EAAG,GAAG,CAAC,CAAC;IACb,CAAC;IAGD,WAAW;IACX,kEAAkE;IAClE,qDAAqD;IACrD,4CAA4C;IAC5C,oDAAoD;IACpD,KAAK;IAEL,YAAY;QACR,IAAI,IAAI,CAAC,QAAQ,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE;YACrD,OAAO,KAAK,CAAC;SAChB;;YAEG,OAAO,IAAI,CAAC;IACpB,CAAC;IAED,QAAQ;QACJ,sFAAsF;QACtF,wBAAwB;QACxB,kBAAkB;QAClB,2EAA2E;QAC3E,MAAM;IACV,CAAC;IAED,oBAAoB;QAEhB,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,EAAE,CAAC,SAAS,CACnD,CAAC,GAAiB,EAAE,EAAE;YAClB,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;YAC5B,IAAI,UAAU,GAAiB,GAAG,CAAC;YACnC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;gBACxB,KAAK,EAAE,0BAA0B;gBACjC,KAAK,EAAE,IAAI;aACd,CAAC,CAAC;YACH,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBACzB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;oBACxB,KAAK,EAAE,OAAO,CAAC,IAAI;oBACnB,KAAK,EAAE,OAAO,CAAC,EAAE;iBACpB,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;YACX,IAAI,KAAK,CAAC,KAAK,IAAI,SAAS,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE;gBAC7C,eAAe;gBACf,iDAAiD;gBACjD,iCAAiC;gBACjC,IAAI,OAAO,CAAC;YACZ,0BAA0B;YAC9B,2BAA2B;YAC3B,yBAAyB;YACzB,uDAAuD;YACvD,MAAM;QACV,CAAC,CACJ,CAAC;IACN,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YAC7B,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;YACnC,IAAI,IAAI,CAAC,IAAI,IAAI,KAAK,EAAE;gBACpB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;gBAC9B,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;gBAC7B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,gBAAgB,EAAE,CAAC;aAC3B;YACD,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;gBACnB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;gBAC9B,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;gBAC5B,IAAI,CAAC,eAAe,EAAE,CAAC;aAC1B;YACD,IAAI,IAAI,CAAC,IAAI,IAAI,QAAQ,EAAE;gBACvB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;gBAC9B,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;gBAC1B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;gBAC7B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC/C,IAAI,CAAC,kBAAkB,EAAE,CAAC;aAC7B;YACD,IAAI,IAAI,CAAC,IAAI,IAAI,aAAa,EAAE;gBAC5B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;gBAC1B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;gBAC7B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;gBAC7B,IAAI,CAAC,qBAAqB,EAAE;aAC/B;YACD,IAAI,IAAI,CAAC,IAAI,IAAI,WAAW,EAAE;gBAC1B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;gBAC9B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;gBAC1B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;gBAC7B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC3B,IAAI,CAAC,qBAAqB,EAAE,CAAC;aAChC;YACD,IAAI,IAAI,CAAC,IAAI,IAAI,KAAK,EAAE;gBACpB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;gBAC9B,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;gBAC7B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,IAAI,CAAC,mBAAmB,EAAE,CAAC;aAC9B;YACD,IAAI,IAAI,CAAC,IAAI,IAAI,aAAa,EAAE;aAC/B;YACD,IAAI,IAAI,CAAC,IAAI,IAAI,iBAAiB,EAAE;aAEnC;YACD,yBAAyB;YACzB,wCAAwC;YACxC,oCAAoC;YACpC,sCAAsC;YACtC,IAAI;YACJ,wCAAwC;YACxC,qCAAqC;YACrC,uCAAuC;YACvC,IAAI;YACJ,2BAA2B;YAC3B,+BAA+B;YAC/B,kCAAkC;YAClC,IAAI;QACR,CAAC,CAAC,CAAC;QACH,sCAAsC;IAC1C,CAAC;IAED,gBAAgB;QACZ,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC,CAAC,GAAU,EAAE,EAAE;YAC/D,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;YACvB,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC;YAC/B,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACjC,CAAC,CAAC,CAAC;IACP,CAAC;IAED,eAAe;QACX,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,CAAC,GAAiB,EAAE,EAAE;YACrE,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QAC5B,CAAC,CAAC,CAAC;IACP,CAAC;IAED,kBAAkB;QACd,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,CAAC,SAAS,CAAC,CAAC,GAAU,EAAE,EAAE;YACjE,IAAI,CAAC,mBAAmB,GAAG,GAAG;QAClC,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;YACT,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oCAAoC,EAAE,GAAG,EAAE;gBAC3D,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACL,oEAAoE;YACpE,kJAAkJ;QACtJ,CAAC,CAAC,CAAC;IACP,CAAC;IACD,uBAAuB;QACnB,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,EAAE,CAAC,SAAS,CAAC,CAAC,GAAU,EAAE,EAAE;YACtE,IAAI,CAAC,wBAAwB,GAAG,GAAG;QACvC,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;YACT,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;gBAChE,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACL,yEAAyE;YACzE,wJAAwJ;QAE5J,CAAC,CAAC,CAAC;IACP,CAAC;IACD,qBAAqB;QACjB,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,CAAC,SAAS,CAAC,CAAC,GAAU,EAAE,EAAE;YACpE,IAAI,CAAC,sBAAsB,GAAG,GAAG;QACrC,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;YACT,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;gBAC9D,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACL,qJAAqJ;YAErJ,sEAAsE;QAC1E,CAAC,CAAC,CAAC;IACP,CAAC;IAED,eAAe;QACX,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACnC,CAAC;IAEH,mBAAmB;QACf,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,CAAC,SAAS,CAAC,CAAC,GAAU,EAAE,EAAE;YAClE,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;YACnB,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC;YAC3B,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC/C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACjC,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;YACT,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,qCAAqC,EAAE,GAAG,EAAE;gBAC5D,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACL,mJAAmJ;YACnJ,oEAAoE;QACxE,CAAC,CAAC,CAAC;IACP,CAAC;IAED,qBAAqB;QACjB,IAAI,CAAC,mBAAmB,CAAC,iCAAiC,EAAE,CAAC,SAAS,CAAC,CAAC,GAAmC,EAAE,EAAE;YAC3G,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC;gBACf,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;iBAClC;gBACD,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;gBAClC,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;gBACxB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,EAAgC,EAAE,EAAE;oBAC3D,EAAE,CAAC,aAAa,GAAG,mCAAM,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBACrE,CAAC,CAAC,CAAC;aACN;QACL,CAAC,EACG,CAAC,KAAK,EAAE,EAAE;YACN,IAAI,KAAK,CAAC,KAAK,IAAI,SAAS,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE;gBAC7C,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE;gBAC/E,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,wDAAwD,EAAE,GAAG,EAAE;gBACvF,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACD,oJAAoJ;YAEpJ,8EAA8E;QAClF,CAAC,CAAC,CAAC;IACX,CAAC;IAED,2BAA2B;QACvB,IAAI,CAAC,oBAAoB,CAAC,iCAAiC,EAAE,CAAC,SAAS,CAAC,CAAC,GAAmC,EAAE,EAAE;YAC5G,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE;gBACjB,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI;oBACrB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;;oBAE1B,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;gBACtB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAgC,EAAE,EAAE;oBACrD,IAAI,EAAE,CAAC,eAAe,IAAI,EAAE;wBACxB,EAAE,CAAC,mBAAmB,GAAG,aAAa,CAAC;yBACtC,IAAI,EAAE,CAAC,eAAe,IAAI,EAAE;wBAC7B,EAAE,CAAC,mBAAmB,GAAG,aAAa,CAAC;oBAC3C,EAAE,CAAC,aAAa,GAAG,mCAAM,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBACrE,CAAC,CAAC,CAAC;aACN;QACL,CAAC,EACG,CAAC,KAAK,EAAE,EAAE;YACN,IAAI,KAAK,CAAC,KAAK,IAAI,SAAS,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE;gBAC7C,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE;gBAC/E,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oCAAoC,EAAE,GAAG,EAAE;gBAC3D,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACT,oJAAoJ;YAEpJ,8EAA8E;QAClF,CAAC,CAAC,CAAC;IACX,CAAC;IACD,cAAc,CAAC,YAA0C;QACrD,cAAc,CAAC,4CAA4C,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC;QACnF,cAAc,CAAC,4CAA4C,CAAC,GAAG,YAAY,CAAC,eAAe,CAAC;QAC5F,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,yCAAyC,EAAE,YAAY,CAAC,mBAAmB,CAAC,CAAC,CAAC;IACzG,CAAC;IAED,iBAAiB,CAAC,YAAwB;QACtC,IAAI,CAAC,aAAa,GAAG,iBAAiB;QACtC,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;QAE3B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,IAAI,mFAAU,EAAE,CAAC;QACjC,IAAI,YAAY,CAAC,4BAA4B,EAAE;YAC3C,IAAI,CAAC,QAAQ,CAAC,4BAA4B,GAAG,YAAY,CAAC,4BAA4B,CAAC;SAC1F;QACD,IAAI,YAAY,CAAC,UAAU,EAAE;YACzB,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC;SACtD;QACD,IAAI,YAAY,CAAC,SAAS,EAAE;YACxB,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC;YACjD,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;SAChD;QACD,IAAI,YAAY,CAAC,YAAY,EAAE;YAC3B,IAAI,CAAC,QAAQ,CAAC,YAAY,GAAG,YAAY,CAAC,YAAY,CAAC;YACvD,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;SAC5C;QACD,IAAI,YAAY,CAAC,gBAAgB,EAAE;YAC/B,IAAI,CAAC,QAAQ,CAAC,gBAAgB,GAAG,YAAY,CAAC,gBAAgB,CAAC;SAClE;QACD,IAAI,YAAY,CAAC,YAAY,EAAE;YAC3B,IAAI,CAAC,QAAQ,CAAC,YAAY,GAAG,YAAY,CAAC,YAAY,CAAC;SAC1D;QACD,IAAI,YAAY,CAAC,kBAAkB,EAAE;YACjC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,GAAG,YAAY,CAAC,gBAAgB,CAAC;YAC/D,IAAI,CAAC,QAAQ,CAAC,kBAAkB,GAAG,YAAY,CAAC,kBAAkB,CAAC;SACtE;QACD,IAAI,YAAY,CAAC,QAAQ;YACrB,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC;QACnD,IAAI,YAAY,CAAC,UAAU;YACvB,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC;QACvD,IAAI,YAAY,CAAC,UAAU,EAAE;YACzB,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC;SACtD;QACD,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC;QACjD,uGAAuG;IAC3G,CAAC;IAED,SAAS;QACL,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAEpB,2CAA2C;QAC3C,yDAAyD;QACzD,kCAAkC;QAClC,iCAAiC;QACjC,iCAAiC;QACjC,iCAAiC;QACjC,sBAAsB;QACtB,+BAA+B;QAC/B,eAAe;QAEf,KAAK;IAET,CAAC;IACD,iBAAiB,CAAC,UAAsB;QACpC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,WAAW,GAAG,0BAA0B,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;YACpB,IAAI,UAAU,CAAC,SAAS,IAAI,EAAE;gBAAE,OAAO;YACvC,IAAI,UAAU,CAAC,OAAO,IAAI,CAAC;gBAAE,OAAO;SACvC;QAED,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,SAAS,CAC5D,CAAC,QAAiB,EAAE,EAAE;YAClB,IAAI,QAAQ,IAAI,IAAI,EAAE;gBAClB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oCAAoC,EAAE,GAAG,EAAE;oBAC3D,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACL,gIAAgI;gBAEhI,iFAAiF;gBACjF,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;gBAC1B,IAAI,CAAC,eAAe,EAAE,CAAC;aAC1B;iBAAM,IAAI,QAAQ,IAAI,KAAK,EAAE;gBAC1B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oCAAoC,EAAE,GAAG,EAAE;oBAC3D,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACL,yHAAyH;gBACzH,2EAA2E;aAC9E;iBAAM;gBACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oCAAoC,EAAE,GAAG,EAAE;oBAC3D,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACL,uHAAuH;gBACvH,0EAA0E;aAC7E;QACL,CAAC,EACD,KAAK,CAAC,EAAE;YACJ,IAAI,KAAK,CAAC,KAAK,IAAI,SAAS,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE;gBAC7C,IAAI,CAAC,OAAO;qBACP,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC;qBACzC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;YAC/B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,yBAAyB,EAAE,GAAG,EAAE;gBAChD,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACb,gHAAgH;YAEhH,mEAAmE;QACvE,CAAC,CACJ,CAAC;IACN,CAAC;IAED,qBAAqB;QACjB,IAAI,CAAC,eAAe,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,GAAU,EAAE,EAAE;YAChF,IAAI,CAAC,QAAQ,GAAG,GAAG;YACnB,MAAM,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC9C,MAAM,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,MAAM,GAAG,eAAe,CAAC,CAAC;QAClF,CAAC,CAAC,CAAC;IACP,CAAC;IACD,kBAAkB,CAAC,YAAiB;QAChC,IAAI,iBAAiB,GAAG,IAAI,yFAAgB,EAAE,CAAC;QAC/C,iBAAiB,CAAC,eAAe,GAAG,YAAY,CAAC;QACjD,iBAAiB,CAAC,MAAM,GAAG,cAAc,CAAC;QAC1C,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YACpE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,4BAA4B,EAAE,GAAG,EAAE;gBACnD,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YAEL,qDAAqD;YACrD,sHAAsH;YAEtH,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACjC,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;YACT,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,4BAA4B,EAAG,GAAG,EAAE;gBACpD,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACL,4DAA4D;YAC5D,0IAA0I;QAE9I,CAAC,CAAC,CAAC;IACP,CAAC;IAED,iBAAiB,CAAC,eAAoB;QAClC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;QAClC,IAAI,CAAC,gBAAgB,GAAG,IAAI,oFAAW,EAAE,CAAC;QAC1C,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;IAC5C,CAAC;IACD,kBAAkB;QACd,IAAI,IAAI,CAAC,YAAY,IAAI,EAAE;YACvB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;aAC/B;YACD,IAAI,iBAAiB,GAAG,IAAI,yFAAgB,EAAE,CAAC;YAC/C,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC;YAC1D,iBAAiB,CAAC,eAAe,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YACnE,iBAAiB,CAAC,MAAM,GAAG,oBAAoB,CAAC;YAChD,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;gBACrE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gDAAgD,EAAE,GAAG,EAAE;oBACvE,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACL,yEAAyE;gBACzE,0IAA0I;gBAE1I,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAC7B,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YAC3B,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;gBACT,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE;oBAC1D,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACL,iJAAiJ;gBAEjJ,kEAAkE;YACtE,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;SACtC;IACL,CAAC;IAED,cAAc,CAAC,OAAe,EAAE,MAAc;QAC1C,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YACtE,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC9B,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;YACT,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gCAAgC,EAAE,GAAG,EAAE;gBACvD,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACL,8IAA8I;YAE9I,+DAA+D;QACnE,CAAC,CAAC,CAAC;IACP,CAAC;IACD,mBAAmB,CAAC,OAAe,EAAE,MAAc;QAC/C,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YAC3E,IAAI,CAAC,QAAQ,EAAE,CAAC;QACpB,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;YACT,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,qCAAqC,EAAE,GAAG,EAAE;gBAC5D,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACL,mJAAmJ;YACnJ,qEAAqE;QACzE,CAAC,CAAC,CAAC;IACP,CAAC;IACD,iBAAiB,CAAC,OAAe,EAAE,MAAc;QAC7C,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YACzE,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACjC,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;YACT,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE;gBAC1D,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACL,iJAAiJ;YACjJ,mEAAmE;QACvE,CAAC,CAAC,CAAC;IACP,CAAC;IACD,WAAW,CAAC,EAAU;QAElB,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE,GAAG,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;QAEtH,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,IAAiB,EAAE,EAAE;YACnE,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE;gBACrB,IAAI,SAAS,GAAG,iBAAiB,CAAC;gBAClC,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;gBACjD,IAAI,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;gBACrB,IAAI,OAAO,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBAExC,IAAI,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;gBAC/C,YAAY,CAAC,IAAI,GAAG,OAAO,CAAC;gBAC5B,YAAY,CAAC,MAAM,GAAG,OAAO,CAAC;gBAE9B,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;gBACnD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;gBACxC,YAAY,CAAC,KAAK,EAAE,CAAC;aACxB;QACL,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;YACT,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;gBACtD,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACL,+IAA+I;QACnJ,CAAC,CAAC,CAAC;IACP,CAAC;IAED,eAAe,CAAC,EAAU,EAAE,MAAc,EAAE,MAAc;QACtD,uFAAuF;QACvF,wBAAwB;QACxB,0DAA0D;QAC1D,0BAA0B;QAC1B,uCAAuC;QACvC,mCAAmC;QACnC,YAAY;QACZ,+GAA+G;QAC/G,IAAI;QACJ,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,IAAI,OAAY,CAAC;QACjB,IAAI,MAAM,IAAI,UAAU,EAAE;YACtB,OAAO,GAAG,UAAU,CAAC;SACxB;aACI;YACD,OAAO,GAAG,UAAU,CAAC;SACxB;QACD,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1E,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,GAAG,OAAO,GAAG,eAAe,EAAE,GAAG,EAAE;gBACtE,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACL,yIAAyI;YACzI,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC5B,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;YACT,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uBAAuB,EAAE,GAAG,EAAE;gBAC9C,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACL,iKAAiK;QAErK,CAAC,CAAC,CAAC;IACP,CAAC;IACD,kBAAkB,CAAC,KAAa,EAAE,KAAa;QAC3C,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;QAClC,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6FAAqB,EAAE;YACtD,YAAY,EAAE,IAAI;YAClB,IAAI,EAAE,EAAE;SACT,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,uBAAuB;YACvB,IAAG,MAAM,EAAC;gBACV,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;aACvC;iBACG;gBACA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;gBACvB,OAAO;aACV;YACD,IAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,IAAE,EAAE,IAAI,IAAI,CAAC,YAAY,IAAE,IAAI,EAAE;gBAEnE,IAAI,CAAC,sBAAsB,EAAE,CAAC;aAEjC;iBAAK,IAAG,IAAI,CAAC,YAAY,IAAE,EAAE,IAAI,IAAI,CAAC,YAAY,IAAE,IAAI,EAAC;gBACtD,IAAI,CAAC,kBAAkB,EAAE,CAAC;aAE7B;QAEH,CAAC,CAAC,CAAC;IAET,CAAC;IACD,sBAAsB;QAClB,IAAI,IAAI,CAAC,YAAY,IAAI,EAAE;YACvB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;aAC/B;YACD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YACnE,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;SACtC;IACL,CAAC;IAED,WAAW,CAAC,KAAU;QAClB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,yCAAyC,GAAG,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC;IAC9F,CAAC;IAED,eAAe,CAAC,YAA0C;QACtD,cAAc,CAAC,4CAA4C,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC;QACnF,cAAc,CAAC,uBAAuB,CAAC,GAAG,YAAY,CAAC,WAAW,CAAC;QACnE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,0CAA0C,EAAE,YAAY,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC1G,CAAC;IACD,SAAS,CAAC,gBAAqB;QAC3B,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC;QACvC,IAAI,gBAAgB,GAAG,gBAAgB,CAAC,gBAAgB,CAAC;QACzD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,yCAAyC,GAAG,SAAS,GAAG,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC;IACnG,CAAC;IAED,WAAW,CAAC,KAAY;QACpB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAC3D;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,2EAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SAChE;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;YAC7B,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;SACvC;QACD,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACnC,CAAC;;oFAjxBM,kBAAkB;kGAAlB,kBAAkB;kEA4DhB,yEAAY;kEACZ,+DAAO;;;;;qFA/DP,CAAE,4FAAiB,EAAE,4EAAgB,EAAE,iFAAkB,EAAE,2EAAa,EAAE,mFAAmB,EAAE,+FAAkB,CAAC;QCtCjI,yEAEE;QAAA;QAAA,yHACE;QAyHF;QAAA,yHACE;QA+CJ;QAAA,4DAAM;QACN;QAAA,gEAEA;QAAA;QAAA,yEACE;QAAA;QACE;QAAA,gHACE;QAGF;QAAA,gHAEE;QAIF;QACA;QAAA,gHACE;QAGF;QACA;QAAA,gHACE;QAGF;QACA;QAAA,gHACE;QAGF;QAAA,gHACE;QAGF;QAAA,gHACE;QAIF;QAAA,gHACE;QAGF;QAAA,gHACE;QAGF;QAAA,gHACE;QAGJ;QACA;QAAA,kFAME;QAAA;QAAA,wEAAmB;QAAA,uEAAW;QAAA,4DAAI;QACtC;QAAA,4DAAc;QAEd;QAAA,4DAAM;;QAvOM,0DAA8B;QAA9B,6FAA8B;QA0H9B,0DAA0B;QAA1B,yFAA0B;QAqD7B,0DAAqC;QAArC,mGAAqC;QAIrC,0DAC4J;QAD5J,uTAC4J;QAM5J,0DAAyB;QAAzB,uFAAyB;QAKzB,0DAAqC;QAArC,mGAAqC;QAKrC,0DAAoC;QAApC,kGAAoC;QAIpC,0DAA+B;QAA/B,6FAA+B;QAI/B,0DAA+B;QAA/B,6FAA+B;QAK/B,0DAAyB;QAAzB,uFAAyB;QAIzB,0DAA+B;QAA/B,6FAA+B;QAI/B,0DAAuC;QAAvC,qGAAuC;QAQ/C,0DAAoB;QAApB,6EAAoB;;6FD3LR,kBAAkB;cAN9B,uDAAS;eAAC;gBACP,QAAQ,EAAE,eAAe;gBACzB,WAAW,EAAE,4BAA4B;gBACzC,SAAS,EAAE,CAAC,2BAA2B,CAAC;gBACxC,SAAS,EAAE,CAAE,4FAAiB,EAAE,4EAAgB,EAAE,iFAAkB,EAAE,2EAAa,EAAE,mFAAmB,EAAE,+FAAkB,CAAC;aAChI;8nCA6D4B,SAAS;kBAAjC,uDAAS;mBAAC,yEAAY;YACH,IAAI;kBAAvB,uDAAS;mBAAC,+DAAO;;;;;;;;;;;;;;AErGtB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AAK5B;AAC6B;AAIH;AACE;AACZ;AAQgC;;;;;;;;;;;;;;;;;;;;;ICRvE,yEAOE;IAAA,iGACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,2HACF;;;IAIA,yEAOE;IAAA,oGACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,2HACF;;;IAIA,yEAOE;IAAA,+FACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,gIACF;;;IAIA,yEAOE;IAAA,gGACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,0HACF;;;IAGA,yEAOE;IAAA,+FACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,+HACF;;;IAGA,yEAOE;IAAA,2FACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,4HACF;;;IAIA,yEACE;IAAA,yFACF;IAAA,4DAAK;;;;IACL,yEACE;IAAA;IAAA,+EACG;IADgE,yXAA8B;IAC9F,+DAAI;IAAA,4DACN;IACH;IAAA,4DAAK;;;;IAHO,0DAAgC;IAAhC,qGAAgC;;;IAO5C,yEACE;IAAA,yFACF;IAAA,4DAAK;;;;IACL,yEACE;IAAA;IAAA,+EACG;IAD+B,yXAA8B;IAC7D,qEAAU;IAAA,4DACZ;IACH;IAAA,4DAAK;;;IAGP,oEAA4D;;;IAC5D,oEAAiE;;;AD9FlE,MAAM,gCAAgC;IAoD3C,YACU,oBAAyC;IACjD,0CAA0C;IAClC,KAAa,EACb,yBAAiD,EACjD,SAAsB,EACvB,UAAsB,EACrB,OAA0B,EAC1B,8BAA6D,EAC9D,mBAAwC,EACvC,kBAAsC,EACvC,MAAiB;QAVhB,yBAAoB,GAApB,oBAAoB,CAAqB;QAEzC,UAAK,GAAL,KAAK,CAAQ;QACb,8BAAyB,GAAzB,yBAAyB,CAAwB;QACjD,cAAS,GAAT,SAAS,CAAa;QACvB,eAAU,GAAV,UAAU,CAAY;QACrB,YAAO,GAAP,OAAO,CAAmB;QAC1B,mCAA8B,GAA9B,8BAA8B,CAA+B;QAC9D,wBAAmB,GAAnB,mBAAmB,CAAqB;QACvC,uBAAkB,GAAlB,kBAAkB,CAAoB;QACvC,WAAM,GAAN,MAAM,CAAW;QA5D1B,cAAS,GAAW,aAAa,CAAC;QAIlC,iBAAY,GAAa,EAAE,CAAC;QAC5B,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QAE9C,eAAU,GAAG,IAAI,0EAAkB,EAAgB,CAAC;QACpD,kBAAa,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAC;QAM7D,SAAI,GAAG;YACL,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE;YAChD,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,iBAAiB,EAAE;YACnD,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,YAAY,EAAE;YACnD,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE;YAC9C,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,YAAY,EAAE;YAClD,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE;SAC5C,CAAC;QACF,qBAAgB,GAAa;YAC3B,aAAa;YACb,aAAa;YACb,kBAAkB;YAClB,YAAY;YACZ,iBAAiB;YACjB,cAAc;YACd,MAAM;YACN,MAAM;SACP,CAAC;QACF,qBAAgB,GAAa,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC3D,gCAA2B,GAAG,CAAC,cAAc,EAAC,cAAc,EAAC,aAAa,EAAC,UAAU,EAAC,YAAY,EAAC,QAAQ,CAAC,CAAC;QA6B3G,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,EAAE;YAC9D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IA7BD,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAC3D;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SAChE;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;YAC7B,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;SACvC;QACD,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACnC,CAAC;IAmBD,QAAQ;QACN,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,+BAA+B;QAC/B,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,yBAAyB,CAAC,WAAW,EAAE,CAAC,SAAS,CAChF,CAAC,IAAI,EAAE,EAAE;YACP,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,CAAC,CACF,CAAC;IACJ,CAAC;IAED,eAAe;QACb,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CACxB,cAAc,CAAC,iCAAiC,CAAC,CAClD,CAAC,QAAQ,CAAC;QACX,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CACrB,cAAc,CAAC,iCAAiC,CAAC,CAClD,CAAC,UAAU,CAAC;QAEb,yFAAyF;QACzF,IAAI,CAAC,oBAAoB;aACtB,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC;aAC1D,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,GAAmB,EAAE,EAAE;YACxC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC;YAC3B,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACjC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAE;YACd,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,sFAAsF;YACtF,oBAAoB;YACpB,iCAAiC;YACjC,6BAA6B;YAC7B,MAAM;QACT,CAAC,CAAC,CAAC;QAAA,CAAC;IACP,CAAC;IAED,gBAAgB,CAAC,IAAoB;QACnC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACjB,IAAI,CAAC,CAAC,eAAe,IAAI,IAAI,EAAE;gBAC7B,CAAC,CAAC,eAAe,GAAG,mCAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;aACpE;YACD,IAAI,CAAC,CAAC,aAAa,IAAI,IAAI,EAAE;gBAC3B,CAAC,CAAC,aAAa,GAAG,mCAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;aAChE;YACD,IAAI,CAAC,CAAC,gBAAgB,IAAI,IAAI,EAAE;gBAC9B,CAAC,CAAC,gBAAgB,GAAG,mCAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;aACtE;YACD,IAAI,CAAC,CAAC,cAAc,IAAI,IAAI,EAAE;gBAC5B,CAAC,CAAC,cAAc,GAAG,mCAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;aAClE;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED,WAAW,CAAC,aAA2B;QACrC,IAAI,CAAC,yBAAyB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAChD,IAAI,CAAC,yBAAyB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QACrE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,sBAAsB,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,WAAW,CAAC,aAA2B;QACrC,IAAG,aAAa,CAAC,YAAY,KAAG,6BAA6B,EAAC;YAC5D,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YACrE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,yBAAyB,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;SACnE;aAAK;YACJ,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YACrE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;SAC1D;IAEH,CAAC;IAED,WAAW,CAAC,aAA2B;QACrC,IAAG,aAAa,CAAC,YAAY,KAAG,sBAAsB;YACpD,OAAO,IAAI,CAAC,aAAa,CAAC;QAE5B,OAAO,EAAE,QAAQ,EAAC,SAAS,EAAE,CAAC;IAEhC,CAAC;IAED,WAAW;QACT,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC;IAC1C,CAAC;IAED,+BAA+B;IAC/B,yIAAyI;IACzI,kFAAkF;IAClF,+CAA+C;IAC/C,4FAA4F;IAC5F,mDAAmD;IACnD,cAAc;IACd,cAAc;IACd,oEAAoE;IACpE,oEAAoE;IACpE,uDAAuD;IACvD,QAAQ;IAER,IAAI;IAEJ,mBAAmB,CAAC,YAAkB;QACpC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,4BAA4B,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC;IAEhF,CAAC;IAED,iBAAiB,CAAC,YAAkB,EAAE,UAAmB;QACvD,IAAG,UAAU,IAAI,SAAS;YACxB,IAAI,CAAC,UAAU,CAAC,cAAc,EAAC,8CAA8C,EAAC,YAAY,EAAC,UAAU,CAAC,CAAC;;YAEvG,IAAI,CAAC,UAAU,CAAC,cAAc,EAAC,6CAA6C,EAAC,YAAY,EAAC,UAAU,CAAC,CAAC;IACxG,CAAC;IAGD,UAAU,CAAC,OAAO,EAAC,OAAO,EAAC,YAAY,EAAC,UAAU;QAChD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4FAAqB,EAAE;YACxD,KAAK,EAAE,OAAO;YACd,YAAY,EAAE,IAAI;YAClB,IAAI,EAAE,EAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAC;SAC3C,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACxC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;YAC7B,IAAG,IAAI,CAAC,cAAc,IAAE,IAAI,EAAC;gBAGtB,IAAI,UAAU,GAAG;oBACf,UAAU,EAAG,YAAY,CAAC,UAAU;oBACpC,UAAU,EAAG,UAAU;iBACxB;gBACD,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,GAAG,GAAE;oBACvE,IAAG,GAAG,EAAC;wBACL,IAAG,UAAU,CAAC,UAAU,IAAI,SAAS,EAAC;4BACtC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;gCACxD,QAAQ,EAAE,IAAI;gCACd,kBAAkB,EAAE,OAAO;gCAC3B,gBAAgB,EAAE,KAAK;6BACxB,CAAC,CAAC;yBACJ;6BACI,IAAG,UAAU,CAAC,UAAU,IAAI,QAAQ,EAAC;4BACxC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;gCACxD,QAAQ,EAAE,IAAI;gCACd,kBAAkB,EAAE,OAAO;gCAC3B,gBAAgB,EAAE,KAAK;6BACxB,CAAC,CAAC;yBAEJ;wBACC,+BAA+B;qBAChC;gBACH,CAAC,CAAC,CAAC;aAEN;QACH,CAAC,CAAC,CAAC;IACT,CAAC;;gHA/NQ,gCAAgC;gHAAhC,gCAAgC;wEAahC,wEAAY;;wEAEZ,8DAAO;;;;;;;QC3CpB,2EACE;QAAA;QAAA,mFACE;QAAA;QAAA,yEACE;QAAA;QAAA,2EAQE;QAAA;QAAA,2EACE;QAAA;QAAA,4HAOE;QAEF;QAAA,4HACE;QAEJ;QAAA,qEAAe;QAEf;QAAA,4EACE;QAAA;QAAA,4HAOE;QAEF;QAAA,4HACE;QAEJ;QAAA,qEAAe;QAEf;QAAA,4EACE;QAAA;QAAA,4HAOE;QAEF;QAAA,4HACE;QAEJ;QAAA,qEAAe;QAEf;QAAA,4EACE;QAAA;QAAA,4HAOE;QAEF;QAAA,4HACE;QAEJ;QAAA,qEAAe;QACf;QAAA,4EACE;QAAA;QAAA,4HAOE;QAEF;QAAA,4HACE;QAEJ;QAAA,qEAAe;QACf;QAAA,4EACE;QAAA;QAAA,4HAOE;QAEF;QAAA,4HACE;QAEJ;QAAA,qEAAe;QAEf;QAAA,6EACE;QAAA;QAAA,6HACE;QAEF;QAAA,4HACE;QAIJ;QAAA,qEAAe;QAEf;QAAA,6EACE;QAAA;QAAA,6HACE;QAEF;QAAA,4HACE;QAIJ;QAAA,qEAAe;QAEf;QAAA,6HAAuD;QACvD;QAAA,6HAA4D;QAC9D;QAAA,4DAAQ;QACV;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,gFAGiB;QACnB;QAAA,4DAAM;QACR;QAAA,4DAAmB;QACrB;QAAA,4DAAW;QACX;QACA;QAqDA;;QArLQ,0DAAyB;QAAzB,sFAAyB;QAmHN,2DAAmC;QAAnC,iGAAmC;QAC1C,0DAA+C;QAA/C,kGAA+C;QAK3D,0DAAgC;QAAhC,kJAAgC;;6FDnG3B,gCAAgC;cAN5C,uDAAS;eAAC;gBACT,QAAQ,EAAE,+BAA+B;gBACzC,WAAW,EAAE,4CAA4C;gBACzD,SAAS,EAAE,CAAC,4CAA4C,CAAC;aAE1D;8/BAc4C,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACK,aAAa;kBAA1D,uDAAS;mBAAC,eAAe,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACN,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AE3CtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0D;AACW;AACI;AAE3B;;;;;;;;;;;;;;;ICEhC,gFACE;IAAA,uDAAY;IAAA,4DAAa;;;IADqB,6EAAiB;IAC/D,0DAAY;IAAZ,uGAAY;;ADYrB,MAAM,wBAAwB;IAOnC,YAAoB,aAAgC,EAC1C,KAAa,EACb,SAAiD,EACjD,YAA2B,EAC3B,SAAsB,EACE,IAAS,EACjC,WAAwB;QANd,kBAAa,GAAb,aAAa,CAAmB;QAC1C,UAAK,GAAL,KAAK,CAAQ;QACb,cAAS,GAAT,SAAS,CAAwC;QACjD,iBAAY,GAAZ,YAAY,CAAe;QAC3B,cAAS,GAAT,SAAS,CAAa;QACE,SAAI,GAAJ,IAAI,CAAK;QACjC,gBAAW,GAAX,WAAW,CAAa;QAXlC,sBAAiB,GAAiB,EAAE,CAAC;QAIrC,qBAAgB,GAAG,2DAAW,CAAC,oBAAoB,CAAC;QAQhD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,eAAe,GAAG,IAAI,wDAAS,CAAC;YACnC,kBAAkB,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;YACvE,OAAO,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;SACnD,CAAC,CAAC;IACL,CAAC;IACD,kBAAkB;QAChB,IAAI,CAAC,aAAa,CAAC,oBAAoB,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YACxD,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;YAC5B,IAAI,CAAC,0BAA0B,GAAG,EAAE,CAAC;YACrC,IAAI,CAAC,0BAA0B,GAAG,GAAG,CAAC;YACtC,IAAI,CAAC,0BAA0B,GAAG,GAAG,CAAC;YACtC,iHAAiH;YACjH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACnC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;oBAC1B,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC;oBACrC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC;iBACpC,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM;QACJ,IAAI,GAAG,GAAG;YACR,wBAAwB,EAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,kBAAkB;YACtE,SAAS,EAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO;YAC5C,YAAY,EAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YACxC,iBAAiB,EAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;SACtC,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YAClE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,4BAA4B,EAAE,GAAG,EAAE;gBACrD,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,EACD,CAAC,KAAK,EAAC,EAAE;YACP,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;gBACpC,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,CAAC,aAAa,CAAC;gBAC3B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CAAC;QACF,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,2BAA2B,GAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAEjF,CAAC;IACD,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;;gGApEU,wBAAwB,6wBAYzB,wEAAe;wGAZd,wBAAwB;QCnBrC,0EACI;QAAA;QAAA,wEAAqB;QAAA,sEAAW;QAAA,4DAAK;QACrC;QAAA,qFACI;QAAA;QAAA,oFACI;QAAA;QAAA,4EAAW;QAAA,6EAAiB;QAAA,2EAA0B;QAAA,6DAAC;QAAA,4DAAO;QAAA,4DAAY;QAC1E;QAAA,iFACE;QAAA;QAAA,oIACE;QACJ;QAAA,4DAAa;QACjB;QAAA,4DAAiB;QACjB;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,mEAAO;QAAA,4DAAY;QAC9B;QAAA,0EAA4F;QAChG;QAAA,4DAAiB;QACrB;QAAA,4DAAqB;QACrB;QAAA,sFACE;QAAA;QAAA,6EAAoE;QAAnB,iJAAS,YAAQ,IAAC;QAAC,kEAAM;QAAA,4DAAS;QACnF;QAAA,6EAAoC;QAAA,kEAAM;QAAA,4DAAS;QACrD;QAAA,4DAAqB;QACzB;QAAA,4DAAO;;QAnBD,0FAA6B;QAGX,0DAA+B;QAA/B,uGAA+B;QAG7B,0DAAmC;QAAnC,0FAAmC;QAIrC,0DAA+B;QAA/B,uGAA+B;;6FDS1C,wBAAwB;cALpC,uDAAS;eAAC;gBACT,QAAQ,EAAE,uBAAuB;gBACjC,WAAW,EAAE,oCAAoC;gBACjD,SAAS,EAAE,CAAC,oCAAoC,CAAC;aAClD;;sBAaI,oDAAM;uBAAC,wEAAe;;;;;;;;;;;;;;AE/B3B;AAAA;AAAA;AAAkD;;AAO3C,MAAM,qBAAqB;IAEhC;IACA,CAAC;IAED,QAAQ;IACR,CAAC;;0FANU,qBAAqB;qGAArB,qBAAqB;QCNlC;;6FDMa,qBAAqB;cALjC,uDAAS;eAAC;gBACT,QAAQ,EAAE,mBAAmB;gBAC7B,WAAW,EAAE,gCAAgC;gBAC7C,SAAS,EAAE,CAAC,gCAAgC,CAAC;aAC9C;;;;;;;;;;;;;;AEND;AAAA;AAAA;AAAkD;;AAO3C,MAAM,qBAAqB;IAChC,gBAAgB,CAAC;IAEjB,QAAQ;IAER,CAAC;;0FALU,qBAAqB;qGAArB,qBAAqB;QCNlC;;6FDMa,qBAAqB;cALjC,uDAAS;eAAC;gBACT,QAAQ,EAAE,mBAAmB;gBAC7B,WAAW,EAAE,gCAAgC;gBAC7C,SAAS,EAAE,CAAC,gCAAgC,CAAC;aAC9C;;;;;;;;;;;;;;AEND;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsF;AACe;AAE7B;AACf;;;;;;;;;;;;AAqBlD,MAAM,yBAAyB;IA4BpC,YAAoB,kBAAqC,EAAS,SAAsB,EAC9E,sBAA8C,EAC/C,UAAsB;QAFX,uBAAkB,GAAlB,kBAAkB,CAAmB;QAAS,cAAS,GAAT,SAAS,CAAa;QAC9E,2BAAsB,GAAtB,sBAAsB,CAAwB;QAC/C,eAAU,GAAV,UAAU,CAAY;QA5B/B,qBAAgB,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QAEpD,uBAAkB,GAAyB,IAAI,kDAAa,CAAQ,CAAC,CAAC,CAAC;QAGvE,gBAAW,GAAG,EAAE,CAAC;QACT,eAAU,GAAG,IAAI,4CAAO,EAAQ,CAAC;QAKzC,sBAAiB,GAAY,KAAK,CAAC;QACnC,SAAI,GAAU,EAAE,CAAC;QACjB,kBAAa,GAAU,EAAE,CAAC;QAC1B,aAAQ,GAAW,CAAC,CAAC;QACrB,iBAAY,GAAa,EAAE,CAAC;QAI5B,iBAAY,GAAiB,EAAE,CAAC;QAW9B,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE;YAC5D,kCAAkC;QACpC,CAAC,CAAC;QACH,2CAA2C;QAC3C,mDAAmD;IACnD,CAAC;IAEF,QAAQ;QACN,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,sBAAsB,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACvF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5B,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAE,4CAA4C;IAGzE,CAAC;IAED,iBAAiB;QACf,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;YACtB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACpC,yDAAyD;YACzD,0CAA0C;SAC3C;IACH,CAAC;IACO,cAAc,CAAC,gBAAwB;QAC7C,IAAI,CAAC,sBAAsB;aACxB,qBAAqB,CAAC,gBAAgB,CAAC;aACvC,SAAS,CACR,CAAC,WAAyB,EAAE,EAAE;YAC5B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;YAC/B,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC,EACD,KAAK,CAAC,EAAE;YACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;gBAClE,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACH,4BAA4B;YAC5B,uBAAuB;YACvB,8BAA8B;YAC9B,sDAAsD;YACtD,MAAM;QACR,CAAC,CACF,CAAC;IACN,CAAC;IACC,WAAW;QACT,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;IAC7B,CAAC;IAGH,UAAU;QAER,IAAI,CAAC,iBAAiB,GAAG,IAAI,wDAAS,CAAC;YACrC,UAAU,EAAE,IAAI,0DAAW,CAAC,EAAE,CAAC;YAC/B,YAAY,EAAE,IAAI,0DAAW,CAAC,EAAE,CAAC;YACjC,UAAU,EAAE,IAAI,0DAAW,CAAC,EAAE,CAAC;YAC/B,aAAa,EAAE,IAAI,0DAAW,CAAC,EAAE,CAAC;YAClC,YAAY,EAAE,IAAI,0DAAW,CAAC,EAAE,CAAC;YACjC,SAAS,EAAE,IAAI,0DAAW,CAAC,EAAE,CAAC;YAC9B,YAAY,EAAE,IAAI,0DAAW,CAAC,EAAE,CAAC;YACjC,OAAO,EAAE,IAAI,0DAAW,CAAC,EAAE,CAAC;YAC5B,UAAU,EAAE,IAAI,0DAAW,CAAC,EAAE,CAAC;YAC/B,UAAU,EAAE,IAAI,0DAAW,CAAC,EAAE,CAAC;YAC/B,gBAAgB,EAAE,IAAI,0DAAW,CAAC,EAAE,CAAC;SAGtC,CAAC,CAAC;IACL,CAAC;IAED,YAAY;QACV,yCAAyC;QACvC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC;YAElC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW;YACxC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW;YACxC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ;YACnC,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,SAAS;YAC5C,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,aAAa;YACzC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,cAAc;YAC/C,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,cAAc;SAShD,CAAC,CAAC;QACL,IAAI;IACN,CAAC;IAED,UAAU,CAAC,SAAS;QAElB,IAAG,SAAS,IAAE,YAAY,EAAC;YAC3B,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SACzD;QACD,IAAG,SAAS,IAAE,gBAAgB,EAAC;YAC7B,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SAC/D;QACD,IAAG,SAAS,IAAE,WAAW,EAAC;YACxB,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SAC1D;QACD,IAAG,SAAS,IAAE,kBAAkB,EAAC;YAC/B,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SACjE;QACD,IAAG,SAAS,IAAE,UAAU,EAAC;YACvB,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SACzD;QACD,IAAG,SAAS,IAAE,cAAc,EAAC;YAC3B,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SAC7D;QACD,IAAG,SAAS,IAAE,SAAS,EAAC;YACtB,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SACxD;QACD,IAAG,SAAS,IAAE,eAAe,EAAC;YAC5B,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SAC9D;IACH,CAAC;IAMD,WAAW;QACT,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACtC,CAAC;IAED,KAAK;QAEH,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,CAAC;QACpC,IAAI,CAAC,UAAU,CAAC;QAGhB,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAE3D,4CAA4C;QAE5C,iFAAiF;QACjF,8CAA8C;QAC9C,oCAAoC;QACpC,uEAAuE;IAGzE,CAAC;;kGApLU,yBAAyB;yGAAzB,yBAAyB;kEA0BzB,iEAAkB;;;;;QCnD/B,8EACI;QAAA;QAAA,0EACQ;QAAA;QAAA,oEAAG;QAAA,2EAAgB;QAAA,4DAAI;QAE5B;QAAA,yEACK;QAAA;QAAA,yEACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAY;QAAA,yEAAY;QAAA,4DAAY;QACpC;QAAA,uEAGJ;QAAA;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAY;QAAA,2EAAc;QAAA,4DAAY;QACtC;QAAA,uEAGJ;QAAA;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,wEAAY;QAAA,4DAAY;QACnC;QAAA,uEAEJ;QAAA;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACV;QAAA,4DAAM;QACF;QAAA,0EACI;QAAA;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,uEAAW;QAAA,4DAAY;QAClC;QAAA,uEAEJ;QAAA;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,yEAAa;QAAA,4DAAY;QACpC;QAAA,uEAEJ;QAAA;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QAEV;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,mEAAO;QAAA,4DAAY;QAC9B;QAAA,wEAEJ;QAAA;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACV;QAAA,4DAAM;QAGd;QACQ;QAAA,0EACI;QAAA;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,sEAAU;QAAA,4DAAY;QACjC;QAAA,wEAEJ;QAAA;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,iEAAK;QAAA,4DAAY;QAC5B;QAAA,yEAEJ;QAAA;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,sFACI;QAAA;QAAA,8EAAW;QAAA,uEAAU;QAAA,4DAAY;QACjC;QAAA,yEAEJ;QAAA;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QACV;QAAA,4DAAM;QACd;QACI;QAAA,2EAEI;QAAA;QAAA,2EACI;QAAA;QAAA,sFACI;QAAA;QAAA,8EAAW;QAAA,uEAAU;QAAA,4DAAY;QACjC;QAAA,yEAEJ;QAAA;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QAEN;QAAA,2EACI;QAAA;QAAA,sFACI;QAAA;QAAA,8EAAW;QAAA,8EAAiB;QAAA,4DAAY;QACxC;QAAA,yEAEJ;QAAA;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QAEV;QAAA,4DAAM;QACN;QAAA,sEAAG;QAAA,wEAAW;QAAA,4DAAI;QAGtB;QAAA,2EACI;QAAA;QAAA,4EACE;QAAA;QAAA,+EACE;QADyB,mJAAS,WAAO,IAAC;QAC1C;QAAA,6EAAU;QAAA,kEAAK;QAAA,4DAAW;QAAA,0EAC5B;QAAA,4DAAS;QACT;QAAA,+EAAgE;QAAxB,mJAAS,iBAAa,IAAC;QAAC,mEAAM;QAAA,4DAAS;QAEjF;QAAA,4DAAM;QACR;QAAA,4DAAM;QACR;QAAA,4DAAO;QACP;QAAA,4DAAW;QACX;;QAhHU,0DAAgC;QAAhC,4FAAgC;QAKV,0DAA+B;QAA/B,uGAA+B;QAQ/B,2DAA+B;QAA/B,uGAA+B;QAQ/B,2DAA+B;QAA/B,uGAA+B;QAS3B,2DAA+B;QAA/B,uGAA+B;QAO/B,2DAA+B;QAA/B,uGAA+B;QAQnC,2DAA+B;QAA/B,uGAA+B;QAY/B,2DAA+B;QAA/B,uGAA+B;QAO/B,2DAA+B;QAA/B,uGAA+B;QAO/B,2DAA+B;QAA/B,uGAA+B;QAWnC,2DAA+B;QAA/B,uGAA+B;QAQ/B,2DAA+B;QAA/B,uGAA+B;;6FDlE9C,yBAAyB;cALrC,uDAAS;eAAC;gBACT,QAAQ,EAAE,uBAAuB;gBACjC,WAAW,EAAE,oCAAoC;gBACjD,SAAS,EAAE,CAAC,oCAAoC,CAAC;aAClD;waA2BgC,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;;;;;;;;;;;;;;AElD/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAgF;AACO;AAGtC;AACsB;AAEtC;AAC0B;AAEF;AAI2D;AAI1C;AAEO;AAEa;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICjB9E,6EACI;IAD0C,uTAAkB;IAC5D;IAAA,2EAAU;IAAA,qEAAU;IAAA,4DAAW;IAAA,+EACnC;IAAA,4DAAS;;;IAoBX,wEACI;IAAA;IAAA,0EAAwC;IAAA,kEAAO;IAAA,4DAAM;IACrD;IAAA,yEAAsB;IAAA,uDAA+B;IAAA,4DAAM;IAC/D;IAAA,qEAAe;;;IADW,0DAA+B;IAA/B,4GAA+B;;;IAEzD,wEACE;IAAA;IAAA,yEAAwC;IAAA,qEAAU;IAAA,4DAAM;IACxD;IAAA,yEAAsB;IAAA,uDAA8B;IAAA,4DAAM;IAC5D;IAAA,qEAAe;;;IADS,0DAA8B;IAA9B,2GAA8B;;;;IA8C1C,6EAEA;IAFkE,uTAAoB,cAAc,KAAE;IAEtG;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC1B;IAAA,4DAAS;;;IAFyB,+MAAmH;;;IAIrJ,iFACI;IAAA,uDACJ;IAAA,4DAAa;;;IAFgD,2EAAc;IACvE,0DACJ;IADI,gJACJ;;;IAEA,4EACE;IAAA,2IACF;IAAA,4DAAY;;;IACZ,4EACE;IAAA,iJACJ;IAAA,4DAAY;;;IAiBR,4EACE;IAAA,0IACJ;IAAA,4DAAY;;;IAUV,4EACE;IAAA,wIACJ;IAAA,4DAAY;;;IAoCsB,2EAAsH;IAAA,4DAAC;IAAA,4DAAO;;;IAG1I,6EAAoF;IAAA,uDAAwB;IAAA,4DAAa;;;IAArC,0DAAwB;IAAxB,mGAAwB;;;IAC5G,iFACI;IAAA,uDACJ;IAAA,4DAAa;;;IAFD,0FAA6B;IACrC,0DACJ;IADI,sMACJ;;;IAJF,wEACE;IAAA;IAAA,qMAAoF;IACpF;IAAA,sMACI;IAEN;IAAA,qEAAe;;;;IAJD,0DAAsE;IAAtE,8IAAsE;IACxC,0DAAiC;IAAjC,iGAAiC;;;IAK/E,4EACE;IAAA,oKACJ;IAAA,4DAAY;;;;IAZZ,qFACE;IAAA;IAAA,4EAAW;IAAA,gEAAK;IAAA,2KAAsH;IAAQ,4DAAY;IAC5J;IAAA,iFACI;IADqC,ufAA+C;IACpF;IAAA,2LACE;IAKJ;IAAA,4DAAa;IACb;IAAA,sLACE;IAEN;IAAA,4DAAiB;;;;;IAbqC,2GAA+B;IACvC,0DAA2F;IAA3F,mKAA2F;IAC9C,0DAAyG;IAAzG,kLAAyG;IAChL,0DAAuD;IAAvD,uGAAuD;IAO5D,0DAAsD;IAAtD,oHAAsD;;;IAKnD,2EAAsH;IAAA,4DAAC;IAAA,4DAAO;;;IAE9I,4EACE;IAAA,gKACJ;IAAA,4DAAY;;;;IALZ,qFACE;IAAA;IAAA,4EAAW;IAAA,gEAAK;IAAA,2KAAsH;IAAQ,4DAAY;IAC1J;IAAA,4EACA;IAD6F,ydAAgC;IAA7H,4DACA;IAAA;IAAA,oLACE;IAEJ;IAAA,4DAAiB;;;;IANmC,2GAA+B;IACvC,0DAA2F;IAA3F,mKAA2F;IACP,0DAA4B;IAA5B,6FAA4B;IAC/I,0DAAsD;IAAtD,oHAAsD;;;IAQ3C,2EAAsH;IAAA,4DAAC;IAAA,4DAAO;;;IAIpJ,4EACE;IAAA,sKACJ;IAAA,4DAAY;;;IAMU,2EAAwH;IAAA,4DAAC;IAAA,4DAAO;;;IAKpJ,uEAA0D;IAAA,gFAAqB;IAAA,4DAAO;;;IADvF,4EACC;IAAA;IAAA,sKAA0D;IAC9D;IAAA,4DAAY;;;IADF,0DAAmD;IAAnD,iHAAmD;;;IAMrC,2EAAsH;IAAA,4DAAC;IAAA,4DAAO;;;IAI/I,wEACG;IAAA;IAAA,iFACI;IAAA,uDACJ;IAAA,4DAAa;IACf;IAAA,qEAAe;;;IAHD,0DAA2B;IAA3B,wFAA2B;IACnC,0DACJ;IADI,qMACJ;;;IAGJ,4EACE;IAAA,sKACJ;IAAA,4DAAY;;;;IAUZ,6EACE;IAD+E,yhBAAwB;IACvG;IAAA,2EAAU;IAAA,8DAAG;IAAA,4DAAW;IAC5B;IAAA,4DAAS;;;IAFmG,4EAAe;;;;IAG3H,6EACI;IADiH,whBAAuB;IACxI;IAAA,2EAAU;IAAA,iEAAM;IAAA,4DAAW;IAC/B;IAAA,4DAAS;;;;;IAFoI,sFAAmB;;;;IA5EpK,qEACA;IAAA;IAAA,4EACE;IAAA;IAAA,qEACI;IAAA;IAAA,+KACE;IAaJ;IAAA,+KACE;IAOJ;IAAA,4DAAK;IACL;IAAA,sEACE;IAAA;IAAA,sFACE;IAAA;IAAA,6EAAW;IAAA,uEAAW;IAAA,4JAAsH;IAAQ,4DAAY;IAChK;IAAA,wEACA;IAAA;IAAA,wFAA2E;IAC3E;IAAA,uFAA4C;IAC5C;IAAA,qKACE;IAEN;IAAA,4DAAiB;IAEjB;IAAA,4DAAK;IACL;IAAA,sEACE;IAAA;IAAA,sFACE;IAAA;IAAA,6EAAW;IAAA,qEAAS;IAAA,4JAAwH;IAAQ,4DAAY;IAChK;IAAA,wEACD;IAAA;IAAA,wFAAyE;IACzE;IAAA,uFAA0C;IAC1C;IAAA,qKACC;IAEH;IAAA,4DAAiB;IAClB;IAAA,4DAAK;IACL;IAAA,sEACI;IAAA;IAAA,sFACE;IAAA;IAAA,6EAAW;IAAA,mEAAO;IAAA,4JAAsH;IAAQ,4DAAY;IAC5J;IACA;IAAA,kFAEC;IAFoC,uaAAyC;IAE7E;IAAA,4KACG;IAIJ;IAAA,4DAAa;IACb;IAAA,qKACE;IAEN;IAAA,4DAAiB;IACnB;IAAA,4DAAK;IACL;IAAA,sEACI;IAAA;IAAA,sFACE;IAAA;IAAA,6EAAW;IAAA,mEAAO;IAAA,4DAAY;IAC9B;IAAA,wEACJ;IAAA;IAAA,4DAAiB;IACnB;IAAA,4DAAK;IACL;IAAA,sEACI;IAAA;IAAA,gKACE;IAEJ;IAAA,gKACI;IAEN;IAAA,4DAAK;IACT;IAAA,qEAAe;IACjB;IAAA,4DAAK;;;;;;;;IAhFa,0DAAmB;IAAnB,gFAAmB;IAEX,0DAAmC;IAAnC,mGAAmC;IAcrC,0DAAmC;IAAnC,mGAAmC;IAUlC,0DAA+B;IAA/B,2GAA+B;IACE,0DAA2F;IAA3F,mKAA2F;IAC3H,0DAA2B;IAA3B,+EAA2B;IACV,0DAAiB;IAAjB,qEAAiB;IAEvC,0DAAqD;IAArD,mHAAqD;IAOjD,0DAA+B;IAA/B,2GAA+B;IACA,0DAA4F;IAA5F,mKAA4F;IAC1H,0DAAyB;IAAzB,+EAAyB;IACT,0DAAe;IAAf,qEAAe;IAErC,0DAAmF;IAAnF,uJAAmF;IAM5E,0DAA+B;IAA/B,2GAA+B;IACF,0DAA2F;IAA3F,mKAA2F;IAGtI,0DAA8K;IAA9K,yPAA8K;IAChK,0DAA2D;IAA3D,2GAA2D;IAM/D,0DAAkD;IAAlD,gHAAkD;IAM/C,0DAA+B;IAA/B,2GAA+B;IAEU,0DAAmD;IAAnD,kHAAmD;IAIpG,0DAA0C;IAA1C,kHAA0C;IAG5C,0DAA8E;IAA9E,0JAA8E;;;IAlFxG;IAAA,2EACE;IAAA;IAAA,0EACE;IAAA;IAAA,0EACE;IAAA;IAAA,0EACE;IAAA;IAAA,0EACI;IAAA;IAAA,6EACE;IAAA;IAAA,oJACA;IAiFN;IAAA,4DAAQ;IAEV;IAAA,4DAAM;IACV;IAAA,4DAAM;IACR;IAAA,4DAAM;IACN;IAAA,4DAAM;IACV;IAAA,4DAAO;IACL;;;;IA/FQ,0DAAoB;IAApB,qFAAoB;IAIb,0DAAmB;IAAnB,gFAAmB;IAEd,0DAAyK;IAAzK,oLAAyK;;;IAfjM,sFACI;IAAA;IAAA,6FACI;IAAA;IAAA,kFACI;IAAA,uDACJ;IAAA,4DAAkB;IACtB;IAAA,4DAA6B;IAE7B;IAAA,qJAEE;IAgGN;IAAA,4DAAsB;;;IAtGV,0DACJ;IADI,mJACJ;;;IAuGZ,2EACE;IAAA;IAAA,0EACA;IAAA;IAAA,yEACI;IAAA;IAAA,0EACI;IAAA;IAAA,4EAAW;IAAA,sFAA2B;IAAA,4DAAY;IACtD;IAAA,4DAAM;IACN;IAAA,2EACI;IAAA;IAAA,uFACI;IAAA;IAAA,wFAA+B;IAAA,+DAAG;IAAA,4DAAmB;IACrD;IAAA,wFAAgC;IAAA,8DAAE;IAAA,4DAAmB;IACzD;IAAA,4DAAkB;IAClB;IAAA,4DAAM;IACV;IAAA,0EACI;IAAA;IAAA,sFACI;IAAA;IAAA,6EAAW;IAAA,sFAA0B;IAAA,4DAAY;IACjD;IAAA,2EAC4F;IAChG;IAAA,4DAAiB;IACrB;IAAA,4DAAM;IACV;IAAA,4DAAM;IACR;IAAA,4DAAM;IACN;IAAA,4DAAO;;;IArBuB,qFAAqB;IAQnB,2DAAY;IAAZ,uEAAY;IACZ,0DAAa;IAAb,wEAAa;IAInB,0DAA+B;IAA/B,2GAA+B;;;IAY7D,sEAAkF;IAAA;IAAA,4DAAM;;;;IAGlF,6EAAqK;IAA7B,wUAAsB,IAAI,KAAE;IAAC,iEAAM;IAAA,4DAAS;;;;IACpL,6EAAqG;IAAzB,6UAAwB;IAAC,uDAAY;IAAA,4DAAS;;;IAArB,0DAAY;IAAZ,iFAAY;;;IAFnH;IAAA,0EACE;IAAA;IAAA,kIAAqK;IACrK;IAAA,kIAAqG;IACrG;IAAA,4DAAM;IACV;;;IAHY,0DAAkF;IAAlF,kKAAkF;IAClF,0DAAsB;IAAtB,wFAAsB;;ADlPnC,MAAM,eAAe;IAqD1B,YACU,QAAwB,EACxB,kBAAqC,EACrC,mBAAwC,EACxC,cAA6B,EAC7B,cAA6B,EAC7B,SAAsB,EACtB,EAAe,EAChB,MAAiB,EAChB,OAAe,EACf,EAAqB,EACrB,YAAiC,EACjC,OAA0B,EAC1B,QAA+B,EAChC,aAAyB;QAbxB,aAAQ,GAAR,QAAQ,CAAgB;QACxB,uBAAkB,GAAlB,kBAAkB,CAAmB;QACrC,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,mBAAc,GAAd,cAAc,CAAe;QAC7B,mBAAc,GAAd,cAAc,CAAe;QAC7B,cAAS,GAAT,SAAS,CAAa;QACtB,OAAE,GAAF,EAAE,CAAa;QAChB,WAAM,GAAN,MAAM,CAAW;QAChB,YAAO,GAAP,OAAO,CAAQ;QACf,OAAE,GAAF,EAAE,CAAmB;QACrB,iBAAY,GAAZ,YAAY,CAAqB;QACjC,YAAO,GAAP,OAAO,CAAmB;QAC1B,aAAQ,GAAR,QAAQ,CAAuB;QAChC,kBAAa,GAAb,aAAa,CAAY;QA/DlC,qBAAgB,GAAa,CAAC,MAAM,EAAC,WAAW,EAAC,SAAS,EAAC,QAAQ,EAAC,SAAS,EAAC,QAAQ,EAAE,CAAC;QACzF,aAAQ,GAAG,EAAE;QACb,qBAAgB,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QACpD,eAAU,GAAG,EAAE,CAAC;QAGhB,kBAAa,GAAkB,IAAI,uFAAa,EAAE,CAAC;QAInD,uBAAkB,GAAW,EAAE,CAAC;QAChC,oBAAe,GAAW,EAAE,CAAC;QAE7B,UAAK,GAAG,KAAK,CAAC;QACd,uBAAkB,GAAW,CAAC,CAAC;QAC/B,gBAAW,GAAW,IAAI,CAAC;QAC3B,gBAAW,GAAY,KAAK,CAAC;QAC7B,qBAAgB,GAAY,KAAK,CAAC;QAElC,mBAAc,GAAY,KAAK,CAAC;QAChC,oBAAe,GAAY,KAAK,CAAC;QACjC,kBAAa,GAAY,KAAK,CAAC;QAC/B,aAAQ,GAAG,QAAQ,CAAC;QACpB,aAAQ,GAAG,IAAI,CAAC;QAGhB,sBAAiB,GAAY,KAAK,CAAC;QACnC,mBAAc,GAAiB,EAAE,CAAC;QAElC,kBAAa,GAAY,KAAK,CAAC;QAE/B,4BAAuB,GAAG,EAAE,CAAC;QAK7B,gBAAW,GAAG,IAAI,GAAG,EAAE,CAAC;QACxB,kBAAa,GAAG,IAAI,GAAG,EAAE,CAAC;QAC1B,YAAO,GAAW,KAAK,CAAC;QAGxB,yBAAoB,GAAK,IAAI,CAAC;QAE9B,gBAAW,GAAG,KAAK,CAAC;QAGpB,sBAAiB,GAAE,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,CAAC;QACnE,sBAAiB,GAAC,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,YAAY,EAAE,aAAa,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC;IAiBjH,CAAC;IAEJ,QAAQ;QACN,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;YAClC,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CACxB,cAAc,CAAC,+BAA+B,CAC/C,CAAC,QAAQ,CAAC;QACX,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC;QACnD,IAAI,IAAI,CAAC,WAAW,IAAI,UAAU,EAAE;YAClC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;SAC5B;QACD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;YACxC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;YAC7B,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QACF,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,YAAY,EAAE,CAAC;QACrB,4BAA4B;IAC9B,CAAC;IAED,qBAAqB;QACnB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,mBAAmB;aACrB,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC;aAC9B,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YACtB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,GAAG,EAAE;gBACP,IAAI,CAAC,aAAa,GAAG,IAAI,uFAAa,EAAE,CAAC;gBACzC,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;gBACzB,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,eAAe,CAAC;gBACzC,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,QAAQ,CAAC;gBAClC,GAAG,CAAC,UAAU,GAAG,mCAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBAC7D,GAAG,CAAC,QAAQ,GAAG,mCAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBACzD,IAAI,IAAI,CAAC,aAAa,CAAC,YAAY,IAAI,CAAC;oBAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBAClE,IAAI,CAAC,gBAAgB,EAAE,CAAC;aACzB;QACH,CAAC,CAAC,CAAC;IACP,CAAC;IAED,YAAY;QACV,IAAI,CAAC,MAAM,GAAG,IAAI,wDAAS,CAAC;YAC1B,YAAY,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAC,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACzD,MAAM,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAC7B,SAAS,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACvD,OAAO,EAAE,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACrD,oBAAoB,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAC3C,2BAA2B,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAClD,YAAY,EAAE,IAAI,wDAAS,CAAC,CAAC,IAAI,CAAC,yBAAyB,EAAE,CAAC,CAAC;SAChE,CAAC,CAAC;IACL,CAAC;IAED,yBAAyB;QACvB,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACnB,cAAc,EAAE,IAAI,0DAAW,CAAC,EAAE,CAAC;YACnC,sBAAsB,EAAE,IAAI,wDAAS,CAAC,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;SACtE,CAAC,CAAC;IACL,CAAC;IAED,qBAAqB;QACnB,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACnB,SAAS,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAChC,OAAO,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAC9B,MAAM,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAC7B,OAAO,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAC9B,UAAU,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YACjC,mBAAmB,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC;YAC1C,OAAO,EAAC,IAAI;YACZ,2BAA2B,EAAC,IAAI;YAChC,aAAa,EAAE,IAAI,0DAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC;SACvD,CAAC,CAAC;IACL,CAAC;IAED,kBAAkB,CAAC,SAAS;QAE5B,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;QAC9B,IAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,KAAK,KAAG,IAAI,IAAI,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,KAAK,KAAG,SAAS,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,EAAC;YACxJ,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,aAAa,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACnE,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,sBAAsB,EAAE,CAAC;YACzD,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YACjE,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,sBAAsB,EAAE,CAAC;YACvD,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;YAChE,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC3C,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,sBAAsB,EAAE,CAAC;YACtD,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC;SACrE;aAAI;YACH,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC/C,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC7C,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC5C,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,eAAe,EAAE,CAAC;YAClD,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,sBAAsB,EAAE,CAAC;YACzD,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,eAAe,EAAE,CAAC;YAChD,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,sBAAsB,EAAE,CAAC;YACvD,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,eAAe,EAAE,CAAC;YAC/C,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,sBAAsB,EAAE,CAAC;SAEvD;IAEH,CAAC;IACC,gBAAgB;QACd,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAG,IAAI,CAAC,aAAa,CAAC,YAAY,IAAE,CAAC,EACrC;YACA,IAAI,CAAC,kBAAkB;iBACpB,4BAA4B,CAAC,IAAI,CAAC,SAAS,CAAC;iBAC5C,SAAS,CAAC,CAAC,iBAAgC,EAAE,EAAE;gBAC9C,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACpB,iBAAiB,CAAC,OAAO,CAAC,CAAC,iBAA8B,EAAE,EAAE;oBAC3D,IAAG,iBAAiB,CAAC,EAAE,IAAI,IAAI,CAAC,KAAK,EAAC;wBACpC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;4BACvB,KAAK,EAAE,iBAAiB,CAAC,IAAI;4BAC7B,KAAK,EAAE,iBAAiB,CAAC,EAAE;yBAC5B,CAAC,CAAC;qBACJ;gBACH,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,UAAU,EAAE,CAAC;gBAClB,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,YAAY,CAAC,IAAI,CACzE,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAC9C,CAAC;YACJ,CAAC,CAAC;gBACF,CAAC,KAAU,EAAE,EAAE;oBACb,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;oBACpB,IAAI,KAAK,CAAC,KAAK,IAAI,SAAS,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE;wBAC/C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;4BAEpC,QAAQ,EAAE,IAAI;4BACd,UAAU,EAAE,CAAC,8BAA8B,CAAC;4BAC5C,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;gBACP,CAAC,CAAC;SACH;aACG;YACF,IAAI,CAAC,QAAQ;iBACZ,yBAAyB,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC;iBAC1D,SAAS,CAAC,CAAC,iBAAgC,EAAE,EAAE;gBAC9C,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACpB,iBAAiB,CAAC,OAAO,CAAC,CAAC,iBAA8B,EAAE,EAAE;oBAC3D,IAAG,iBAAiB,CAAC,EAAE,IAAI,IAAI,CAAC,KAAK,EAAC;wBACpC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;4BACvB,KAAK,EAAE,iBAAiB,CAAC,IAAI;4BAC7B,KAAK,EAAE,iBAAiB,CAAC,EAAE;yBAC5B,CAAC,CAAC;qBACJ;gBACH,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,IAAI,CAAC,UAAU,EAAE,CAAC;gBAClB,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,YAAY,CAAC,IAAI,CACzE,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAC9C,CAAC;YACJ,CAAC,CAAC;gBACF,CAAC,KAAU,EAAE,EAAE;oBACb,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;oBACpB,IAAI,KAAK,CAAC,KAAK,IAAI,SAAS,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE;wBAC/C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;4BAEpC,QAAQ,EAAE,IAAI;4BACd,UAAU,EAAE,CAAC,8BAA8B,CAAC;4BAC5C,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;gBACP,CAAC,CAAC;SAEH;IAEH,CAAC;IAEO,iBAAiB;QAEvB,IAAI,CAAC,QAAQ,CAAC,6BAA6B,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC;aAC3E,SAAS,CAAC,CAAC,QAAqB,EAAE,EAAE;YACnC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;gBACvB,KAAK,EAAE,QAAQ,CAAC,IAAI;gBAChB,KAAK,EAAE,QAAQ,CAAC,EAAE;aACvB,CAAC,CAAC;YACH,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,YAAY,CAAC,IAAI,CACzE,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAC9C,CAAC;QACR,CAAC,CAAC;YACF,CAAC,KAAU,EAAE,EAAE;gBACb,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACpB,IAAI,KAAK,CAAC,KAAK,IAAI,SAAS,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE;oBAC/C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;wBAEpC,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,8BAA8B,CAAC;wBAC5C,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;YACP,CAAC,CAAC;IACA,CAAC;IAEO,iBAAiB,CAAC,KAAK;QAC7B,IAAI,WAAW,CAAC;QAChB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,WAAW,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;SACnC;aAAM,IAAI,KAAK,KAAK,IAAI,EAAE;YACzB,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC;SAC3B;aAAM;YACL,OAAO,IAAI,CAAC,cAAc,CAAC;SAC5B;QAED,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAC3C,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CACjD,CAAC;IACJ,CAAC;IAED,UAAU;QACR,MAAM,eAAe,GAA2B,EAAC,UAAU,EAAC,IAAI,EAAC,WAAW,EAAC,QAAQ,EAAC;QACtF,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC,SAAS,CAAC,CAAC,GAAe,EAAE,EAAE;YAC7D,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,YAAY,GAAG,IAAI,KAAK,EAAY,CAAC;YAC1C,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;YAExB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,YAAsB,EAAE,KAAK,EAAE,EAAE;gBAC1D,IAAG,YAAY,CAAC,YAAY,KAAK,QAAQ,EAAC;oBACxC,YAAY,CAAC,yBAAyB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;iBAC9D;gBACD,IAAI,YAAY,CAAC,YAAY,IAAI,QAAQ;oBAAE,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;gBACpE,YAAY,CAAC,yBAAyB,CAAC,OAAO,CAC5C,CAAC,QAAmC,EAAE,EAAE;oBACtC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;oBACjD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;gBACpE,CAAC,CACF,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,OAAO,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACxC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAc,CAAC;gBACzD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE,CAAC,CAAC;aAC5C;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,SAAS;QACP,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,MAAM,GAAG,IAAI,4DAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,cAAc;aAChB,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC;aACrC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;YACjB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,GAAG,EAAE;gBACP,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;gBAElB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,iBAAiB,EAAE;oBAC3C,IAAI,IAAI,CAAC,cAAc,EAAE;wBACvB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;wBAC5B,IAAI,CAAC,QAAQ,GAAG,sBAAsB,CAAC;qBACxC;iBACF;gBAEA,IAAG,IAAI,CAAC,QAAQ,IAAI,yCAAyC,EAAC;oBAC5D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;iBACvB;gBAEF,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,OAAO,CACxC,CAAC,QAA8B,EAAE,EAAE;oBACjC,IAAI,QAAQ,CAAC,UAAU,IAAG,CAAC,EAAE;wBAC3B,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;qBAC1B;;wBAAM,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;oBACrD,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,CAAC,UAAU,CAAC,CAC3D,CAAC,CACF,CAAC,GAAG,CAAC,wBAAwB,CAAc,CAAC;oBAC7C,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE;wBAC1B,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,kBAAkB,EAAE;4BAC5C,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;gCACvB,SAAS,EAAE,QAAQ,CAAC,SAAS;gCAC7B,OAAO,EAAE,QAAQ,CAAC,OAAO;gCACzB,MAAM,EAAE,IAAI,CAAC,QAAQ,KAAK,WAAW,EAAC,CAAC,IAAI,CAAC,CAAC,SAAQ,CAAC,MAAM;gCAC5D,OAAO,EAAE,QAAQ,CAAC,OAAO;gCACzB,UAAU,EAAE,QAAQ,CAAC,UAAU;gCAC/B,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB;gCACjD,OAAO,EAAC,KAAK;gCACb,aAAa,EAAE,IAAI,CAAC,QAAQ,KAAK,WAAW,EAAC,CAAC,IAAI,CAAC,iBAAiB,EAAC,KAAI,CAAC,iBAAiB;6BAC5F,CAAC,CAAC;yBACJ;6BACI,IAAG,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,iBAAiB,IAAI,IAAI,CAAC,QAAQ,IAAE,WAAW,EAAC;4BAC5E,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;gCACvB,SAAS,EAAE,QAAQ,CAAC,SAAS;gCAC7B,OAAO,EAAE,QAAQ,CAAC,OAAO;gCACzB,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAC,CAAC,QAAQ,CAAC,MAAM;gCACxD,OAAO,EAAE,QAAQ,CAAC,OAAO;gCACzB,UAAU,EAAE,QAAQ,CAAC,UAAU;gCAC/B,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB;gCACjD,OAAO,EAAC,KAAK;gCACb,aAAa,EAAE,IAAI,CAAC,iBAAiB;6BACtC,CAAC,CAAC;yBACJ;6BACI,IAAG,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,iBAAiB,IAAI,IAAI,CAAC,QAAQ,IAAE,WAAW,EAAC;4BAC5E,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;gCACvB,SAAS,EAAE,QAAQ,CAAC,SAAS;gCAC7B,OAAO,EAAE,QAAQ,CAAC,OAAO;gCACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;gCACvB,OAAO,EAAE,QAAQ,CAAC,OAAO;gCACzB,UAAU,EAAE,QAAQ,CAAC,UAAU;gCAC/B,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB;gCACjD,OAAO,EAAC,KAAK;gCACb,aAAa,EAAE,CAAC,QAAQ,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAC,KAAI,CAAC,iBAAiB;6BACxF,CAAC,CAAC;yBACJ;6BACI,IAAG,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,iBAAiB,EAAC;4BAC9C,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;gCACvB,SAAS,EAAE,QAAQ,CAAC,SAAS;gCAC7B,OAAO,EAAE,QAAQ,CAAC,OAAO;gCACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;gCACvB,OAAO,EAAE,QAAQ,CAAC,OAAO;gCACzB,UAAU,EAAE,QAAQ,CAAC,UAAU;gCAC/B,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB;gCACjD,OAAO,EAAC,KAAK;gCACb,aAAa,EAAE,IAAI,CAAC,iBAAiB;6BACtC,CAAC,CAAC;yBACJ;6BACG;4BACF,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;gCACvB,SAAS,EAAE,QAAQ,CAAC,SAAS;gCAC7B,OAAO,EAAE,QAAQ,CAAC,OAAO;gCACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;gCACvB,OAAO,EAAE,QAAQ,CAAC,OAAO;gCACzB,UAAU,EAAE,QAAQ,CAAC,UAAU;gCAC/B,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB;gCACjD,OAAO,EAAC,KAAK;gCACb,aAAa,EAAE,IAAI,CAAC,iBAAiB;6BACtC,CAAC,CAAC;yBACJ;wBACD,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC,aAAa,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;wBAC1E,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC,sBAAsB,EAAE,CAAC;wBAChE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;wBACxE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,sBAAsB,EAAE,CAAC;wBAC9D,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;wBACvE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,sBAAsB,EAAE,CAAC;wBACjE,iBAAiB;qBACd;yBAAM;wBACL,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;wBACrC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,kBAAkB,EAAE;4BAC5C,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC;gCACxC,SAAS,EAAE,QAAQ,CAAC,SAAS;gCAC7B,OAAO,EAAE,QAAQ,CAAC,OAAO;gCACzB,MAAM,EAAE,IAAI,CAAC,QAAQ,KAAK,WAAW,EAAC,CAAC,IAAI,CAAC,CAAC,SAAQ,CAAC,MAAM;gCAC5D,OAAO,EAAE,QAAQ,CAAC,OAAO;gCACzB,UAAU,EAAE,QAAQ,CAAC,UAAU;gCAC/B,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB;gCACjD,OAAO,EAAC,KAAK;gCACb,aAAa,EAAE,IAAI,CAAC,QAAQ,KAAK,WAAW,EAAC,CAAC,IAAI,CAAC,iBAAiB,EAAC,KAAI,CAAC,iBAAiB;6BAC5F,CAAC,CAAC;yBACJ;6BACI,IAAG,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,iBAAiB,IAAI,IAAI,CAAC,QAAQ,IAAE,WAAW,EAAC;4BAC5E,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC;gCACxC,SAAS,EAAE,QAAQ,CAAC,SAAS;gCAC7B,OAAO,EAAE,QAAQ,CAAC,OAAO;gCACzB,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAC,CAAC,QAAQ,CAAC,MAAM;gCACxD,OAAO,EAAE,QAAQ,CAAC,OAAO;gCACzB,UAAU,EAAE,QAAQ,CAAC,UAAU;gCAC/B,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB;gCACjD,OAAO,EAAC,KAAK;gCACb,aAAa,EAAE,IAAI,CAAC,iBAAiB;6BACtC,CAAC,CAAC;yBACJ;6BACI,IAAG,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,iBAAiB,IAAI,IAAI,CAAC,QAAQ,IAAE,WAAW,EAAC;4BAC5E,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC;gCACxC,SAAS,EAAE,QAAQ,CAAC,SAAS;gCAC7B,OAAO,EAAE,QAAQ,CAAC,OAAO;gCACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;gCACvB,OAAO,EAAE,QAAQ,CAAC,OAAO;gCACzB,UAAU,EAAE,QAAQ,CAAC,UAAU;gCAC/B,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB;gCACjD,OAAO,EAAC,KAAK;gCACb,aAAa,EAAE,CAAC,QAAQ,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAC,KAAI,CAAC,iBAAiB;6BACxF,CAAC,CAAC;yBACJ;6BACI,IAAG,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,iBAAiB,EAAC;4BAC9C,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC;gCACxC,SAAS,EAAE,QAAQ,CAAC,SAAS;gCAC7B,OAAO,EAAE,QAAQ,CAAC,OAAO;gCACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;gCACvB,OAAO,EAAE,QAAQ,CAAC,OAAO;gCACzB,UAAU,EAAE,QAAQ,CAAC,UAAU;gCAC/B,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB;gCACjD,OAAO,EAAC,KAAK;gCACb,aAAa,EAAE,IAAI,CAAC,iBAAiB;6BACtC,CAAC,CAAC;yBACJ;6BACG;4BACF,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC;gCACxC,SAAS,EAAE,QAAQ,CAAC,SAAS;gCAC7B,OAAO,EAAE,QAAQ,CAAC,OAAO;gCACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;gCACvB,OAAO,EAAE,QAAQ,CAAC,OAAO;gCACzB,UAAU,EAAE,QAAQ,CAAC,UAAU;gCAC/B,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB;gCACjD,OAAO,EAAC,KAAK;6BAEd,CAAC,CAAC;yBACJ;wBACN,kBAAkB;wBAClB,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC,aAAa,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;wBAC5F,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC,sBAAsB,EAAE,CAAC;wBACjF,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;wBACzF,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,sBAAsB,EAAE,CAAC;wBAC/E,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC;wBACxF,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,sBAAsB,EAAE,CAAC;qBACzE;gBACH,CAAC,CACF,CAAC;gBACF,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;oBAChC,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;wBACxC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC;qBACjC;gBACH,CAAC,CAAC,CAAC;gBACH,IAAI,GAAG,GAAC,EAAC,KAAK,EAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,EAAC;gBACtE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;oBACrB,YAAY,EAAE,GAAG;oBACjB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;oBAC1B,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;oBAChC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;iBAC7B,CAAC,CAAC;gBACH,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,kBAAkB,EAAE;oBAC5C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;iBAC9B;gBACD,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,iBAAiB,EAAE;oBAC5C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;iBAC3B;gBACD,IAAI,IAAI,CAAC,QAAQ,KAAK,WAAW,EAAE;oBAC3B,MAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;wBACrG,MAAO,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;4BACvF,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,KAAK,KAAK,IAAI,EAAE;gCAC9C,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,QAAQ,CAAC,IAAI,CAAC;6BACvD;wBACH,CAAC,CAAC;wBACF,IAAI,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,MAAM,KAAK,CAAC,EAAE;4BACxD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;yBAC1B;oBACH,CAAC,CAAC,CAAC;oBACH,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAC;wBACjD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBAC9C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;qBAC9C;iBACF;aACF;QACT,CAAC,CAAC;IACF,CAAC;IACC,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAc,CAAC;IACtD,CAAC;IACD,WAAW,CAAC,IAAI,EAAE,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,wBAAwB,CAAC,CAAC,UAAU,CAAC,CAAC;IAC7H,CAAC;IAED,SAAS,CAAC,iBAAiB,EAAE,cAAc;QACzC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,CAAC,UAAU,CAAC,CAC7D,iBAAiB,CAClB,CAAC,GAAG,CAAC,wBAAwB,CAAc,CAAC;QAC7C,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;QAGvC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,QAAQ,CAAC,iBAAiB,EAAE,aAAa;QACvC,IAAI,CAAC,UAAU,CACb,cAAc,EACd,yBAAyB,EACzB,iBAAiB,EACjB,aAAa,CACd,CAAC;IACJ,CAAC;IAED,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,aAAa;QAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4FAAqB,EAAE;YACxD,KAAK,EAAE,OAAO;YACd,YAAY,EAAE,IAAI;YAClB,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE;SAC7C,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;YAC3C,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;YAC7B,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE;gBAC/B,IAAI,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,iBAAiB,CAAC;qBAC/D,sBAAsB,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC;gBACpD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACpB,IAAI,CAAC,cAAc;qBAChB,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC;qBACrC,SAAS,EAAE;qBACX,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;oBACZ,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;oBACpB,IAAI,GAAG,EAAE;wBACP,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;wBAClB,KAAK,IAAI,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,sBAAsB,EAAE;4BACvD,IAAI,QAAQ,CAAC,UAAU,IAAI,UAAU,EAAE;gCACrC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;gCAC9B,MAAM;6BACP;yBACF;wBACD,IAAI,IAAI,CAAC,iBAAiB,EAAE;4BAC1B,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;4BACpB,IAAI,CAAC,cAAc;iCAChB,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC;iCACrD,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;gCACtB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gCACpB,IAAI,GAAG,EAAE;oCACP,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,gCAAgC,EAChC,GAAG,EACH;wCACE,QAAQ,EAAE,IAAI;wCACd,UAAU,EAAC,CAAC,eAAe,CAAC;wCAC5B,kBAAkB,EAAE,OAAO;wCAC3B,gBAAgB,EAAE,KAAK;qCACxB,CACF,CAAC;iCACH;4BACH,CAAC,CAAC,CAAC;yBACN;6BAAM;4BACL,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gCAAgC,EAAE,GAAG,EAAE;gCACzD,QAAQ,EAAE,IAAI;gCACd,UAAU,EAAE,CAAC,eAAe,CAAC;gCAC7B,kBAAkB,EAAE,OAAO;gCAC3B,gBAAgB,EAAE,KAAK;6BACxB,CAAC,CAAC;yBACJ;wBACD,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;qBAChC;gBACH,CAAC,CAAC,CAAC;gBAEL,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,CAAC,UAAU,CAAC,CAChE,iBAAiB,CAClB,CAAC,GAAG,CAAC,wBAAwB,CAAc,CAAC;gBAC7C,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;gBAC/B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;gBACnB,2BAA2B;aAC5B;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,UAAU,CAAC,SAAS;QAClB,IAAI,SAAS,IAAI,cAAc,EAAE;YAC/B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SAClD;IACH,CAAC;IAED,IAAI;QACF,IAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,GAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAC;YAC/E,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,8CAA8C,EAC9C,EAAE,EACF;gBACE,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CACF,CAAC;YACF,OAAO;SACR;QACD,IAAI,CAAC,YAAY,GAAG,IAAI,4DAAM,EAAE,CAAC;QACjC,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,MAAM,CAAC;QAChC,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,aAAa,CAAC,IAAQ;QACpB,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,YAAY,CAAC,SAAiB,KAAK;QACjC,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC;QAC/B,IAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,GAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAC;YAC/E,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,8CAA8C,EAC9C,EAAE,EACF;gBACE,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CACF,CAAC;YACF,OAAO;SACR;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4FAAqB,EAAE;YACxD,KAAK,EAAE,OAAO;YACd,YAAY,EAAC,IAAI;YACjB,IAAI,EAAE;gBACJ,OAAO,EAAE,cAAc;gBACvB,OAAO,EAAE,kCAAkC;aAC5C;SACF,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;YAC3C,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;YAC7B,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE;gBAC/B,IAAI,CAAC,MAAM,EAAE,CAAC;aACf;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,YAAY,GAAG,IAAI,4DAAM,EAAE,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAE,kBAAkB,IAAK,IAAI,CAAC,QAAQ,IAAE,WAAW,CAAC;YAAE,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,UAAU,CAAC;aAClI,IAAI,IAAI,CAAC,QAAQ,IAAI,WAAW;YACnC,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,iBAAiB,CAAC;aACxC,IAAG,IAAI,CAAC,gBAAgB;YAC3B,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,UAAU;aAChC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,iBAAiB,CAAC,IAAI,IAAI,CAAC,QAAQ,IAAE,WAAW;YACnF,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,YAAY,CAAC;QAExC,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IACD,SAAS,CAAC,IAAS;QACjB,OAAO,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9C,CAAC;IACD,aAAa;QACX,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,uBAAuB,GAAC,EAAE,CAAC;QAChC,IAAI,CAAC,YAAY,CAAC,sBAAsB,GAAC,EAAE,CAAC;QAC5C,IAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,YAAY,EAAC;YAChE,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,uBAAuB,EACvB,EAAE,EACF;gBACE,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CACF,CAAC;YACF,OAAO;SACR;aACG;YACF,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACnB,MAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBAC1F,OAAO,CAAC,aAAa,EAAE,CAAC;gBAClB,MAAO,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;oBACvF,IAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,KAAK,IAAI,IAAI,EAAC;wBAE1C,IAAI,SAAS,GAAE,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC;wBACzD,IAAI,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC;wBACtD,IAAI,aAAa,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;wBAC1D,IAAI,WAAW,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;wBAEtD,IAAG,CAAC,CAAC,CAAC,SAAS,IAAE,aAAa,IAAE,SAAS,IAAE,WAAW,CAAC;4BACvD,CAAC,OAAO,IAAE,SAAS,IAAE,OAAO,IAAE,WAAW,CAAC,CAAC,EAAC;4BAC1C,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,aAAa,EAAE,CAAC;4BAC3C,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,aAAa,EAAE,CAAC;4BACzC,IAAG,SAAS,GAAG,aAAa,IAAI,SAAS,GAAG,WAAW,EAAC;gCACvD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,EAAC,WAAW,EAAE,IAAI,EAAC,CAAC,CAAC;6BAC1D;4BACD,IAAG,OAAO,GAAE,SAAS,IAAI,OAAO,GAAG,WAAW,EAAC;gCAC9C,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,EAAC,WAAW,EAAE,IAAI,EAAC,CAAC,CAAC;6BACxD;4BACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;yBACzB;qBAEH;gBACH,CAAC,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,IAAG,IAAI,CAAC,WAAW,EAAC;gBAClB,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,4CAA4C,EAC5C,GAAG,EACH;oBACE,UAAU,EAAC,CAAC,aAAa,CAAC;oBAC1B,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CACF,CAAC;gBACF,OAAO;aACR;iBACG;gBACF,IAAI,CAAC,wBAAwB,EAAE,CAAC;aACjC;SACF;IACH,CAAC;IAED,wBAAwB;QACtB,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;YACrB,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;YAC1C,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC7C,IAAI,CAAC,YAAY,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;YACjE,IAAI,CAAC,YAAY,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC;YACtE,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;YACpD,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;YAC1D,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;YACtD,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB;gBACxC,IAAI,CAAC,YAAY,CAAC,oBAAoB,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC;YAClF,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B;gBAC/C,IAAI,CAAC,YAAY,CAAC,4BAA4B,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC;YAEjG,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC;gBAClD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC;qBAC7C,sBAAsB,CAAC,CAAC,CAAC,CAAC,mBAAmB;gBAChD,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC;qBAC9C,sBAAsB,CAAC,CAAC,CAAC,CAAC,UAAU;gBAEvC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAC5B,IAAI,CAAC,WAAW,CACjB,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;YAE9C,IAAI,CAAC,GAAG,CAAC,CAAC;YAEV,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE;gBAChD,IAAI,CAAC,GAAG,CAAC,CAAC;gBACV,OACE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,MAAM,EACnE;oBACA,IACE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC;yBACxD,UAAU,EACb;wBACA,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAC/B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAC5D,CAAC;qBACH;oBACD,CAAC,EAAE,CAAC;iBACL;gBACD,CAAC,EAAE,CAAC;aACL;YACD,IAAI,CAAC,YAAY,CAAC,sBAAsB,GAAG,IAAI,CAAC,uBAAuB,CAAC;YACxE,MAAM,MAAM,GAAQ,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,CAAC,UAAU,CAAC,CAAC;YACxE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACtC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC3D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBACrF,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;qBAC3F;iBACF;aACF;YAED,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;gBACrE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACpB,IAAI,GAAG,EAAE;oBACP,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,MAAM,EAAE;wBACpC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,qCAAqC,EAAE,GAAG,EAAE;4BAC9D,QAAQ,EAAE,IAAI;4BACd,UAAU,EAAE,CAAC,eAAe,CAAC;4BAC7B,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;qBACJ;yBAAM;wBACL,IAAI,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,IAAI,IAAI,EAAE;4BACtC,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,yCAAyC,EACzC,GAAG,EACH;gCACE,UAAU,EAAE,CAAC,eAAe,CAAC;gCAE7B,QAAQ,EAAE,IAAI;gCACd,kBAAkB,EAAE,OAAO;gCAC3B,gBAAgB,EAAE,KAAK;6BACxB,CACF,CAAC;4BACF,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;yBAC9C;6BACI;4BACH,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,GAAG,CAAC,SAAS,CAAC,EACd,GAAG,EACH;gCACE,UAAU,EAAE,CAAC,aAAa,CAAC;gCAE3B,QAAQ,EAAE,IAAI;gCACd,kBAAkB,EAAE,OAAO;gCAC3B,gBAAgB,EAAE,KAAK;6BACxB,CACF,CAAC;yBACH;qBACF;iBACF;YACH,CAAC,CAAC;gBACA,CAAC,KAAK,EAAE,EAAE;oBACR,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;oBACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kCAAkC,EAAE,GAAG,EAAE;wBAC3D,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,aAAa,CAAC;wBAC3B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;gBACL,CAAC,CAAC;SACL;aAAM;YACL,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC/B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;gBAChE,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,CAAC,aAAa,CAAC;gBAC3B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;SACJ;IACH,CAAC;IACD,MAAM;QACJ,IAAI,IAAI,CAAC,QAAQ,IAAI,yCAAyC,EAAK;YACjE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,wCAAwC,CAAC,CAAC;SAClE;aACG;YAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;SAAC;IACpD,CAAC;IAED,YAAY,CAAC,eAAe;QAC1B,eAAe,CAAC,QAAQ,CAAC,6BAA6B,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;IACzE,CAAC;IAED,YAAY;QACV,IAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,EAAC;YAC1E,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,wGAAwB,EAAE;gBAClE,KAAK,EAAE,OAAO;gBACd,YAAY,EAAE,IAAI;aACnB,CAAC,CAAC;SACJ;IACH,CAAC;;8EAt3BU,eAAe;+FAAf,eAAe;wEACf,8DAAO;kEACP,gEAAQ;;;;;qFAJR,CAAC,4GAAqB,CAAC;QCnCpC,yEACE;QAAA;QAAA,8EACI;QAAA;QAAA,yEACE;QAAA;QAAA,yEACE;QAAA,kGACF;QAAA,4DAAM;QACN;QAAA,yEACM;QAAA;QAAA,mHACI;QAEV;QAAA,4DAAM;QACR;QAAA,4DAAM;QACN;QAAA,qEAAuB;QACvB;QAAA,oFACE;QAAA;QAAA,0EACA;QAAA;QAAA,0EACA;QAAA;QAAA,0EACA;QAAA;QAAA,0EAAwC;QAAA,wEAAY;QAAA,4DAAM;QAC1D;QAAA,0EAAsB;QAAA,wDAAgC;QAAA,4DAAM;QAC9D;QAAA,4DAAM;QACN;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,0EACE;QAAA;QAAA,0EAAwC;QAAA,0EAAc;QAAA,4DAAM;QAC5D;QAAA,0EAAsB;QAAA,wDAAgC;QAAA,4DAAM;QAC9D;QAAA,4DAAM;QACN;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,0EACE;QAAA;QAAA,+HACI;QAGJ;QAAA,+HACE;QAGJ;QAAA,4DAAM;QACN;QAAA,4DAAM;QACZ;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,0EACA;QAAA;QAAA,0EACE;QAAA;QAAA,0EAAwC;QAAA,uEAAW;QAAA,4DAAM;QACzD;QAAA,0EAAsB;QAAA,wDAA+B;QAAA,4DAAM;QAC7D;QAAA,4DAAM;QACN;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,0EACE;QAAA;QAAA,0EAAwC;QAAA,2EAAe;QAAA,4DAAM;QAC7D;QAAA,0EAAsB;QAAA,wDAAkC;QAAA,4DAAM;QAChE;QAAA,4DAAM;QACN;QAAA,4DAAM;QACV;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,0EACA;QAAA;QAAA,0EACE;QAAA;QAAA,0EAAwC;QAAA,2EAAe;QAAA,4DAAM;QAC7D;QAAA,0EAAsB;QAAA,wDAAoD;;QAAA,4DAAM;QAClF;QAAA,4DAAM;QACN;QAAA,4DAAM;QACN;QAAA,0EACE;QAAA;QAAA,2EACE;QAAA;QAAA,2EAAwC;QAAA,sEAAS;QAAA,4DAAM;QACvD;QAAA,2EAAsB;QAAA,yDAAkD;;QAAA,4DAAM;QAChF;QAAA,4DAAM;QACN;QAAA,4DAAM;QACV;QAAA,4DAAM;QACN;QAAA,4DAAmB;QACnB;QAAA,4DAAW;QAGb;QAAA,gFACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EACQ;QAAA;QAAA,2EACG;QAAA;QAAA,4EACC;QAAA;QAAA,uFACE;QAAA;QAAA,8EAAY;QAAA,8EAAgB;QAAA,6EAA0B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QAC3E;QAAA,yEAEC;QAAA;QAAA,sHAEA;QAEA;QAAA,6FACA;QAAA;QAAA,8HACI;;QAEJ;QAAA,4DAAmB;QACnB;QAAA,2HACE;QAEF;QAAA,2HACE;QAEN;QAAA,4DAAiB;QACpB;QAAA,4DAAM;QACN;QAAA,4EACC;QAAA;QAAA,uFACC;QAAA;QAAA,8EAAY;QAAA,mEAAK;QAAA,4DAAY;QAC7B;QAAA,yEACD;QAAA;QAAA,4DAAiB;QAClB;QAAA,4DAAM;QACL;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,4EACI;QAAA;QAAA,uFACA;QAAA;QAAA,8EAAW;QAAA,0EAAa;QAAA,6EAA0B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QACtE;QAAA,8EACA;QADgN,kJAAc,kBAAc,IAAC;QAA7O,4DACA;QAAA;QAAA,yFAA6E;QAC7E;QAAA,wFAA8C;QAC9C;QAAA,2HACE;QAEF;QAAA,4DAAiB;QAErB;QAAA,4DAAM;QACN;QAAA,4EACI;QAAA;QAAA,uFACA;QAAA;QAAA,8EAAW;QAAA,wEAAW;QAAA,6EAA0B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QACpE;QAAA,8EACA;QADsQ,kJAAc,kBAAc,IAAC;QAAnS,4DACA;QAAA;QAAA,yFAA2E;QAC3E;QAAA,wFAA4C;QAC5C;QAAA,2HACE;QAEF;QAAA,4DAAiB;QAErB;QAAA,4DAAM;QACV;QAAA,4DAAM;QACd;QAAA,4DAAO;QACX;QAAA,4DAAmB;QACvB;QAAA,4DAAW;QAEX;QAAA,gFACI;QAAA;QAAA,qFACI;QAAA;QAAA,4EACI;QAAA;QAAA,2EACE;QAAA,0IACF;QAAA,4DAAM;QACR;QAAA,4DAAM;QACR;QAAA,sFACI;QAAA;QAAA,iJACI;QAyGR;QAAA,4DAAgB;QAChB;QAAA,mHACE;QAqBF;QAAA,kEAER;QAAA;QAAA,2EACI;QAAA;QAAA,gHAAkF;QAClF;QAAA,4MACI;QAKR;QAAA,4DAAM;QACF;QAAA,4DAAmB;QACvB;QAAA,4DAAW;QACX;QAAA,4DAAM;;;;;;QAtRmC,2DAAgB;QAAhB,8EAAgB;QAW7B,2DAAgC;QAAhC,0GAAgC;QAM9B,2DAAgC;QAAhC,0GAAgC;QAKtC,0DAAmB;QAAnB,iFAAmB;QAInB,0DAAoB;QAApB,kFAAoB;QAWhB,2DAA+B;QAA/B,yGAA+B;QAM7B,2DAAkC;QAAlC,4GAAkC;QAQpC,2DAAoD;QAApD,4NAAoD;QAMlD,2DAAkD;QAAlD,2NAAkD;QAUlE,2DAAqB;QAArB,iFAAqB;QAGC,0DAA+B;QAA/B,uGAA+B;QAEjB,0DAAgG;QAAhG,yKAAgG;QAE7F,0DAAiC;QAAjC,+FAAiC;QAI9C,0DAAyB;QAAzB,sFAAyB;QAC/B,0DAAgD;QAAhD,+JAAgD;QAIjD,0DAAwD;QAAxD,qHAAwD;QAGxD,0DAA2D;QAA3D,yHAA2D;QAM5D,0DAA+B;QAA/B,uGAA+B;QAEoB,0DAA4B;QAA5B,yFAA4B;QAMvE,0DAA+B;QAA/B,uGAA+B;QAE/B,0DAA6B;QAA7B,8EAA6B;QACZ,0DAAmB;QAAnB,oEAAmB;QAEzC,0DAAoD;QAApD,kHAAoD;QAO/C,0DAA+B;QAA/B,uGAA+B;QAE/B,0DAA2B;QAA3B,+EAA2B;QACV,0DAAiB;QAAjB,qEAAiB;QAEvC,0DAAmD;QAAnD,gHAAmD;QAmBrD,2DAA+C;QAA/C,qFAA+C;QA2GlE,0DAAuB;QAAvB,qFAAuB;QAyB5B,0DAA2E;QAA3E,2HAA2E;;6FD9OzE,eAAe;cAN3B,uDAAS;eAAC;gBACT,QAAQ,EAAE,aAAa;gBACvB,WAAW,EAAE,0BAA0B;gBACvC,SAAS,EAAE,CAAC,0BAA0B,CAAC;gBACvC,SAAS,EAAE,CAAC,4GAAqB,CAAC;aACnC;8tCAEuC,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACf,KAAK;kBAAzB,uDAAS;mBAAC,gEAAQ;;;;;;;;;;;;;;AEvCrB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAkD;;;;;AAO3C,MAAM,wBAAwB;IAEnC,gBAAgB,CAAC;IAEjB,QAAQ;IACR,CAAC;;gGALU,wBAAwB;wGAAxB,wBAAwB;QCPrC,wEAAqB;QAAA,kEACrB;QAAA,4DAAK;QAEL;QAAA,qFACI;QAAA;QAAA,8EAA8B;QAAA,wEAAa;QAAA,4DAAW;QAAA,iEAAM;QAAA,uEAAM;QAAA,qJAA0F;QAAA,4DAAO;QACvK;QAAA,4DAAqB;QAErB;QAAA,yFACI;QAAA;QAAA,6EAA2D;QAAA,iEAAK;QAAA,4DAAS;QAC3E;QAAA,4DAAqB;QACvB;;6FDHa,wBAAwB;cALpC,uDAAS;eAAC;gBACT,QAAQ,EAAE,uBAAuB;gBACjC,WAAW,EAAE,oCAAoC;gBACjD,SAAS,EAAE,CAAC,oCAAoC,CAAC;aAClD;;;;;;;;;;;;;;AEND;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AAEA;AACF;AACV;AACE;AAClB;AAK6B;;;;;;;;;;;;;;ICL9C,yEAAgF;IAAA,0EAAc;IAAA,4DAAK;;;IACnG,yEAAwC;IAAA,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,oGAAyB;;;IAIjE,yEAAgF;IAAA,0EAAc;IAAA,4DAAK;;;IACnG,yEAAwC;IAAA,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,oGAAyB;;;IAIjE,yEAAgF;IAAA,wEAAY;IAAA,4DAAK;;;IACjG,yEAAwC;IAAA,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,mGAAwB;;;IAIhE,yEAAgF;IAAA,sEAAU;IAAA,4DAAK;;;IAC/F,yEAAwC;IAAA,uDAAqB;IAAA,4DAAK;;;IAA1B,0DAAqB;IAArB,gGAAqB;;;IAK7D,yEAAgF;IAAA,mEAAO;IAAA,4DAAK;;;IAC5F,yEAAwC;IAAA,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,kGAAuB;;;IAI/D,yEAAgF;IAAA,mEAAO;IAAA,4DAAK;;;;IAC5F,yEACI;IAAA;IAAA,wEAAyH;IAAA,0EAAe;IAAA,4DAAI;IAChJ;IAAA,4DAAK;;;IADqC,0DAAkF;IAAlF,4LAAkF;;;IAG9H,oEAA4D;;;IAC5D,oEAAkE;;;IAClE,yEACE;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAC/C;IAAA,4DAAK;;;ADpBZ,MAAM,wBAAwB;IAqBnC,YACS,UAAsB,EACrB,qBAAuC,EACvC,oBAAmD,EACnD,KAAa,EACb,OAA0B,EAC1B,QAAqB;QALtB,eAAU,GAAV,UAAU,CAAY;QACrB,0BAAqB,GAArB,qBAAqB,CAAkB;QACvC,yBAAoB,GAApB,oBAAoB,CAA+B;QACnD,UAAK,GAAL,KAAK,CAAQ;QACb,YAAO,GAAP,OAAO,CAAmB;QAC1B,aAAQ,GAAR,QAAQ,CAAa;QAtB/B,cAAS,GAAW,aAAa,CAAC;QAClC,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QAC9C,eAAU,GAAG,IAAI,0EAAkB,EAAE,CAAC;QACtC,aAAQ,GAAY,KAAK,CAAC;QAC1B,cAAS,GAAY,KAAK,CAAC;QAC3B,kBAAa,GAAY,CAAC,CAAC;QAM3B,qBAAgB,GAAa;YAC3B,YAAY,EAAE,cAAc,EAAE,aAAa;YAC1C,UAAU,EAAE,QAAQ,EAAE,QAAQ;SAChC,CAAC;QAUE,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,EAAE;QAChE,CAAC,CAAC,CAAC;IACJ,CAAC;IAEH,QAAQ;QACN,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAEpB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC3B,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAEtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CACtB,cAAc,CAAC,iCAAiC,CAAC,CACpD,CAAC,QAAQ,CAAC;QACX,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CACxB,cAAc,CAAC,iCAAiC,CAAC,CACpD,CAAC,UAAU,CAAC;QAGb,QAAQ,IAAI,CAAC,QAAQ,EAAE;YAErB,KAAK,CAAC,0CAA0C,CAAC,CAAC,CAAC;gBACjD,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;gBACvB,MAAM;aACP;YACD,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;gBACtB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;gBACvB,MAAM;aACP;YACD,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;gBACvB,MAAM;aACP;YACD,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;gBACxB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;gBACvB,MAAM;aACP;YAED,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;gBACZ,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;gBACvB,MAAM;aACP;YAED,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;gBACjC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;gBACvB,MAAM;aACP;SAEF;QAED,IAAI,CAAC,oBAAoB;aACpB,yBAAyB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,oBAAmB;aAC5F,SAAS,EAAE,CAAC,IAAI,CAAE,CAAC,GAAU,EAAE,EAAE;YAChC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YAErB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC3B,GAAG,CAAC,OAAO,CAAE,IAAI,CAAC,EAAE;YAGpB,CAAC,CAAC,CAAC;YACH,OAAO,GAAG,CAAC;QACb,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAE;YACP,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,GAAG,CAAC,CAAC;YAC9C,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACjC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QAG7B,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YACb,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACzB,CAAC,CAAC,CAAC;IACX,CAAC;IACC,gBAAgB,CAAC,IAAqB;QACpC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACf,IAAI,CAAC,CAAC,QAAQ,IAAI,IAAI,EAAE;gBACtB,CAAC,CAAC,QAAQ,GAAG,mCAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;aACtD;QAEH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IAEtB,CAAC;;gGApHU,wBAAwB;wGAAxB,wBAAwB;kEAYxB,iEAAkB;wEAClB,wEAAY;wEACZ,8DAAO;;;;;;;QCnCpB,8EACI;QAAA;QAAA,mFACE;QAAA;QAAA,qEAAK;QAAA,mEAAO;QAAA,4DAAK;QACf;QAAA,yEACI;QAAA;QAAA,2EACE;QAAA;QAAA,4EACE;QAAA;QAAA,oHAAgF;QAChF;QAAA,oHAAwC;QAC1C;QAAA,qEAAe;QAEf;QAAA,4EACE;QAAA;QAAA,oHAAgF;QAChF;QAAA,oHAAwC;QAC1C;QAAA,qEAAe;QAEf;QAAA,4EACE;QAAA;QAAA,oHAAgF;QAChF;QAAA,oHAAwC;QAC1C;QAAA,qEAAe;QAEf;QAAA,4EACE;QAAA;QAAA,oHAAgF;QAChF;QAAA,oHAAwC;QAE1C;QAAA,qEAAe;QAEf;QAAA,4EACE;QAAA;QAAA,oHAAgF;QAChF;QAAA,oHAAwC;QAE1C;QAAA,qEAAe;QACf;QAAA,6EACE;QAAA;QAAA,oHAAgF;QAChF;QAAA,oHACI;QAEN;QAAA,qEAAe;QACf;QAAA,qHAAuD;QACvD;QAAA,qHAA6D;QAC7D;QAAA,qHACE;QAEJ;QAAA,4DAAQ;QACV;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,gFAAgE;QAClE;QAAA,4DAAM;QACZ;QAAA,4DAAmB;QACvB;QAAA,4DAAW;QACX;;QAjDU,iFAAoB;QAID,0DAAyB;QAAzB,sFAAyB;QAiCrB,2DAAmC;QAAnC,iGAAmC;QAC1C,0DAAgD;QAAhD,kGAAgD;QAO/C,0DAAgC;QAAhC,kJAAgC;;6FDxB9C,wBAAwB;cALpC,uDAAS;eAAC;gBACT,QAAQ,EAAE,sBAAsB;gBAChC,WAAW,EAAE,mCAAmC;gBAChD,SAAS,EAAE,CAAC,mCAAmC,CAAC;aACjD;yjBAagC,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;YACc,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACH,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AEnCtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AACZ;AACY;AAE5B;AAOgD;;;;;;;;;;;;;;;;;;;ICC7D,yEAAgF;IAAA,mEAAO;IAAA,4DAAK;;;IAC5F,yEAAuC;IAAA,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,yFAAwB;;;IAI/D,yEAAgF;IAAA,0EAAc;IAAA,4DAAK;;;IACnG,yEAAuC;IAAA,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,yFAAwB;;;IAI/D,yEAAgF;IAAA,wEAAY;IAAA,4DAAK;;;IACjG,yEAAuC;IAAA,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,wFAAuB;;;IAI9D,yEAAgF;IAAA,sEAAU;IAAA,4DAAK;;;IAC/F,yEAAuC;IAAA,uDAAoB;IAAA,4DAAK;;;IAAzB,0DAAoB;IAApB,qFAAoB;;;IAI3D,yEAAgF;IAAA,mEAAO;IAAA,4DAAK;;;IAC5F,yEAAuC;IAAA,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,uFAAsB;;;IAI7D,yEAAgF;IAAA,mEAAO;IAAA,4DAAK;;;;IAE1F,+EAA+J;IAAvC,scAAsC;IAAC,qEAAU;IAAA,4DAAW;;;;IACpL,6EAAyH;IAApC,+bAAmC;IAAC,yEAAc;IAAA,4DAAS;;;;IAChJ,+EAA8I;IAAjD,icAAoC,SAAS,KAAE;IAAE,gEAAK;IAAA,4DAAW;;;;IAC9J,+EAA2I;IAA/C,icAAoC,QAAQ,KAAE;IAAC,gEAAK;IAAA,4DAAW;;;IAC3J,+EAAsH;IAAA,+DAAI;IAAA,4DAAW;;;IAA7E,kGAAqC;;;IAL/F,yEACE;IAAA;IAAA,6IAA+J;IAC/J;IAAA,yIAAyH;IACzH;IAAA,6IAA8I;IAC9I;IAAA,6IAA2I;IAC3I;IAAA,+IAAsH;IACxH;IAAA,4DAAK;;;IALO,0DAAqF;IAArF,2JAAqF;IACvF,0DAA4C;IAA5C,4GAA4C;IAC1C,0DAA6C;IAA7C,6GAA6C;IAC7C,0DAA6C;IAA7C,6GAA6C;IAC7C,0DAA6C;IAA7C,6GAA6C;;;IAI3D,oEAAuE;;;IACvE,oEAA4E;;;AD7BvF,MAAM,gCAAgC;IAc3C,YACU,8BAA6D,EAC7D,KAAa,EACb,OAA0B,EAC1B,kBAAsC,EACtC,SAAsB,EACtB,mBAAyC,EAC1C,MAAiB;QANhB,mCAA8B,GAA9B,8BAA8B,CAA+B;QAC7D,UAAK,GAAL,KAAK,CAAQ;QACb,YAAO,GAAP,OAAO,CAAmB;QAC1B,uBAAkB,GAAlB,kBAAkB,CAAoB;QACtC,cAAS,GAAT,SAAS,CAAa;QACtB,wBAAmB,GAAnB,mBAAmB,CAAsB;QAC1C,WAAM,GAAN,MAAM,CAAW;QAjB1B,cAAS,GAAW,kBAAkB,CAAC;QACvC,aAAQ,GAAY,KAAK,CAAC;QAO1B,gCAA2B,GAAG,CAAC,cAAc,EAAC,cAAc,EAAC,aAAa,EAAC,UAAU,EAAC,YAAY,EAAC,QAAQ,CAAC,CAAC;IAUzG,CAAC;IAEL,QAAQ;QACN,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAEpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CACxB,cAAc,CAAC,iCAAiC,CAAC,CAClD,CAAC,QAAQ,CAAC;QACX,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CACrB,cAAc,CAAC,iCAAiC,CAAC,CAClD,CAAC,UAAU,CAAC;QAEb,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAE9B,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,8BAA8B,CAAC,yBAAyB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,GAAU,EAAE,EAAE;YAC9H,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBAAG,CAAC,CAAC,QAAQ,GAAG,mCAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBACxE,IAAG,CAAC,CAAC,UAAU,IAAI,iBAAiB,EAAC;oBACnC,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,GAAO,EAAC,EAAE;wBAC7E,CAAC,CAAC,cAAc,GAAG,GAAG,CAAC,cAAc,CAAC;oBACxC,CAAC,CAAC,CAAC;iBACJ;YAAC,CAAC,CAAC,CAAC;YACL,UAAU,CAAC,GAAE,EAAE;gBAAC,IAAI,CAAC,uBAAuB,GAAG,IAAI,0EAAkB,CAAC,GAAG,CAAC,CAAC;gBAC3E,IAAI,CAAC,uBAAuB,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC;gBAC5D,IAAI,CAAC,uBAAuB,CAAC,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC;gBAC3D,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,CAAC,EAAE,IAAI,CAAC,CAAC;QACb,CAAC,CAAC;YACA,KAAK,CAAC,EAAE;gBACN,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACvB,CAAC,CAAC;IACJ,CAAC;IAGH,mBAAmB,CAAC,YAAkB;QACpC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,4BAA4B,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC;IAEhF,CAAC;IAED,gBAAgB,CAAC,YAAkB;QACjC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,+BAA+B,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC;IACnF,CAAC;IAED,iBAAiB,CAAC,YAAkB,EAAE,UAAmB;QACvD,IAAG,UAAU,IAAI,SAAS;YACxB,IAAI,CAAC,UAAU,CAAC,cAAc,EAAC,8CAA8C,EAAC,YAAY,EAAC,UAAU,CAAC,CAAC;;YAEvG,IAAI,CAAC,UAAU,CAAC,cAAc,EAAC,6CAA6C,EAAC,YAAY,EAAC,UAAU,CAAC,CAAC;IACxG,CAAC;IAGD,UAAU,CAAC,OAAO,EAAC,OAAO,EAAC,YAAY,EAAC,UAAU;QAChD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4FAAqB,EAAE;YACxD,KAAK,EAAE,OAAO;YACd,YAAY,EAAE,IAAI;YAClB,IAAI,EAAE,EAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAC;SAC3C,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACxC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;YAC7B,IAAG,IAAI,CAAC,cAAc,IAAE,IAAI,EAAC;gBAGtB,IAAI,UAAU,GAAG;oBACf,UAAU,EAAG,YAAY,CAAC,UAAU;oBACpC,UAAU,EAAG,UAAU;iBACxB;gBACD,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,GAAG,GAAE;oBACvE,IAAG,GAAG,EAAC;wBACL,IAAG,UAAU,CAAC,UAAU,IAAI,SAAS,EAAC;4BACtC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;gCACxD,QAAQ,EAAE,IAAI;gCACd,kBAAkB,EAAE,OAAO;gCAC3B,gBAAgB,EAAE,KAAK;6BACxB,CAAC,CAAC;yBACJ;6BACI,IAAG,UAAU,CAAC,UAAU,IAAI,QAAQ,EAAC;4BACxC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;gCACxD,QAAQ,EAAE,IAAI;gCACd,kBAAkB,EAAE,OAAO;gCAC3B,gBAAgB,EAAE,KAAK;6BACxB,CAAC,CAAC;yBAEJ;wBACC,IAAI,CAAC,oBAAoB,EAAE,CAAC;qBAC7B;gBACH,CAAC,CAAC,CAAC;aAEN;QACH,CAAC,CAAC,CAAC;IACT,CAAC;;gHApHQ,gCAAgC;gHAAhC,gCAAgC;wEAShC,8DAAO;;;;;;;QC3BpB;QAAA,8EACE;QAAA;QAAA,kFACE;QAAA;QAAA,iFAAgB;QAAA,iFAAsB;QAAA,4DAAiB;QACzD;QAAA,4DAAkB;QAChB;QAAA,mFACE;QAAA;QAGE;QAAA,0EACI;QAAA;QAAA,4EACI;QAAA;QAAA,4EACI;QAAA;QAAA,4HAAgF;QAChF;QAAA,4HAAuC;QACzC;QAAA,qEAAe;QAEjB;QAAA,4EACI;QAAA;QAAA,4HAAgF;QAChF;QAAA,4HAAuC;QAC3C;QAAA,qEAAe;QAEf;QAAA,4EACI;QAAA;QAAA,4HAAgF;QAChF;QAAA,4HAAuC;QACzC;QAAA,qEAAe;QAEf;QAAA,4EACE;QAAA;QAAA,4HAAgF;QAChF;QAAA,4HAAuC;QACzC;QAAA,qEAAe;QAEf;QAAA,4EACE;QAAA;QAAA,4HAAgF;QAChF;QAAA,4HAAuC;QACzC;QAAA,qEAAe;QAEf;QAAA,6EACE;QAAA;QAAA,4HAAgF;QAChF;QAAA,6HACE;QAMJ;QAAA,qEAAe;QAEf;QAAA,6HAAkE;QAClE;QAAA,6HAAuE;QAC7E;QAAA,4DAAQ;QACZ;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,yFAEA;QAAA;QAAA,4DAAgB;QAClB;QAAA,4DAAM;QACV;QAAA,4DAAmB;QACrB;QAAA,4DAAW;;QAxDU,0DAAgF;QAAhF,iJAAgF;QAS1E,2DAAsC;QAAtC,mGAAsC;QAqC9B,2DAA8C;QAA9C,4GAA8C;QACrD,0DAA0D;QAA1D,6GAA0D;QAIhD,0DAAgC;QAAhC,kJAAgC;;6FDjC3D,gCAAgC;cAL5C,uDAAS;eAAC;gBACT,QAAQ,EAAE,+BAA+B;gBACzC,WAAW,EAAE,4CAA4C;gBACzD,SAAS,EAAE,CAAC,4CAA4C,CAAC;aAC1D;2pBAUuC,iBAAiB;kBAAtD,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACU,aAAa;kBAA1D,uDAAS;mBAAC,eAAe,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AE7B9C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AAG5B;AAE6B;AAID;AACZ;AAOgC;;;;;;;;;;;;;;;;;;;;;ICCvE,yEAOE;IAAA,iGACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,2HACF;;;IAIA,yEAOE;IAAA,oGACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,2HACF;;;IAIA,yEAOE;IAAA,+FACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,gIACF;;;IAIA,yEAOE;IAAA,gGACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,0HACF;;;IAGA,yEAOE;IAAA,+FACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,+HACF;;;IAGA,yEAOE;IAAA,2FACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,4HACF;;;IAIA,yEACE;IAAA,yFACF;IAAA,4DAAK;;;;IACL,yEACE;IAAA;IAAA,+EACG;IAD+B,yXAA8B;IAC7D,qEAAU;IAAA,4DACZ;IACH;IAAA,4DAAK;;;IAGP,oEAA6D;;;IAC7D,oEAAkE;;;IAClE,yEACE;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAC/C;IAAA,4DAAK;;;AD9FN,MAAM,gCAAgC;IAwC3C,YACU,oBAAyC,EACzC,KAAa,EACb,yBAAiD,EACjD,SAAsB,EACvB,UAAsB,EACrB,OAA0B,EAC1B,mBAAwC,EACxC,kBAAqC,EACrC,8BAA6D,EAC9D,MAAiB;QAThB,yBAAoB,GAApB,oBAAoB,CAAqB;QACzC,UAAK,GAAL,KAAK,CAAQ;QACb,8BAAyB,GAAzB,yBAAyB,CAAwB;QACjD,cAAS,GAAT,SAAS,CAAa;QACvB,eAAU,GAAV,UAAU,CAAY;QACrB,YAAO,GAAP,OAAO,CAAmB;QAC1B,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,uBAAkB,GAAlB,kBAAkB,CAAmB;QACrC,mCAA8B,GAA9B,8BAA8B,CAA+B;QAC9D,WAAM,GAAN,MAAM,CAAW;QA9C1B,cAAS,GAAW,aAAa,CAAC;QAGlC,iBAAY,GAAa,EAAE,CAAC;QAC5B,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QAC9C,eAAU,GAAG,IAAI,0EAAkB,EAAgB,CAAC;QAOpD,SAAI,GAAG;YACL,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE;YAChD,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,iBAAiB,EAAE;YACnD,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,YAAY,EAAE;YACnD,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE;YAC9C,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,YAAY,EAAE;YAClD,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE;SAC5C,CAAC;QACF,sBAAiB,GAAa;YAC5B,aAAa;YACb,aAAa;YACb,kBAAkB;YAClB,YAAY;YACZ,iBAAiB;YACjB,cAAc;YACd,MAAM;SACP,CAAC;QAGF,gCAA2B,GAAG,CAAC,cAAc,EAAC,cAAc,EAAC,aAAa,EAAC,UAAU,EAAC,YAAY,EAAC,QAAQ,CAAC,CAAC;QAC7G,aAAQ,GAAY,KAAK,CAAC;QAC1B,cAAS,GAAY,KAAK,CAAC;QAezB,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,EAAE;YAC9D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,+BAA+B;QAC/B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CACxB,cAAc,CAAC,iCAAiC,CAAC,CAClD,CAAC,QAAQ,CAAC;QACX,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CACrB,cAAc,CAAC,iCAAiC,CAAC,CAClD,CAAC,UAAU,CAAC;IACf,CAAC;IAED,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAC3D;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SAChE;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;YAC7B,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;SACvC;QACD,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,uBAAuB,CAAC;QACzD,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACnC,CAAC;IAGD,eAAe;QACb,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CACxB,cAAc,CAAC,iCAAiC,CAAC,CAClD,CAAC,QAAQ,CAAC;QACX,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CACrB,cAAc,CAAC,iCAAiC,CAAC,CAClD,CAAC,UAAU,CAAC;QACb,yFAAyF;QACzF,IAAI,CAAC,oBAAoB;aACtB,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC;aAC1D,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,GAAmB,EAAE,EAAE;YACxC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC;YAC3B,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,uBAAuB,CAAC;YACzD,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACjC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAE;YACd,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,sFAAsF;YACtF,oBAAoB;YACpB,iCAAiC;YACjC,6BAA6B;YAC7B,MAAM;QACT,CAAC,CAAC,CAAC;IACN,CAAC;IAED,gBAAgB,CAAC,IAAoB;QACnC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACf,IAAI,CAAC,CAAC,eAAe,IAAI,IAAI,EAAE;gBAC7B,CAAC,CAAC,eAAe,GAAG,mCAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;aACpE;YACD,IAAI,CAAC,CAAC,aAAa,IAAI,IAAI,EAAE;gBAC3B,CAAC,CAAC,aAAa,GAAG,mCAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;aAChE;YACD,IAAI,CAAC,CAAC,gBAAgB,IAAI,IAAI,EAAE;gBAC9B,CAAC,CAAC,gBAAgB,GAAG,mCAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;aACtE;YACD,IAAI,CAAC,CAAC,cAAc,IAAI,IAAI,EAAE;gBAC5B,CAAC,CAAC,cAAc,GAAG,mCAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;aAClE;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED,WAAW,CAAC,aAA2B;QACpC,IAAI,CAAC,YAAY,GAAE,aAAa,CAAC,YAAY,CAAC;QAC/C,IAAG,IAAI,CAAC,YAAY,IAAI,kBAAkB,IAAI,IAAI,CAAC,YAAY,KAAK,6BAA6B,EAAC;YAChG,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YACrE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,0BAA0B,GAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;SAEnE;aACG;YAEH,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YACrE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;SACzD;IAIF,CAAC;IAED,+BAA+B;IAC/B,yIAAyI;IACzI,kFAAkF;IAClF,+CAA+C;IAC/C,4FAA4F;IAC5F,mDAAmD;IACnD,cAAc;IACd,cAAc;IACd,oEAAoE;IACpE,uDAAuD;IACvD,qEAAqE;IACrE,QAAQ;IAER,IAAI;IACJ,iBAAiB,CAAC,YAAkB,EAAE,UAAmB;QACvD,IAAG,UAAU,IAAI,SAAS;YACxB,IAAI,CAAC,UAAU,CAAC,cAAc,EAAC,8CAA8C,EAAC,YAAY,EAAC,UAAU,CAAC,CAAC;;YAEvG,IAAI,CAAC,UAAU,CAAC,cAAc,EAAC,6CAA6C,EAAC,YAAY,EAAC,UAAU,CAAC,CAAC;IAC1G,CAAC;IACD,UAAU,CAAC,OAAO,EAAC,OAAO,EAAC,YAAY,EAAC,UAAU;QAChD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4FAAqB,EAAE;YACxD,KAAK,EAAE,OAAO;YACd,YAAY,EAAE,IAAI;YAClB,IAAI,EAAE,EAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAC;SAC3C,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACxC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;YAC7B,IAAG,IAAI,CAAC,cAAc,IAAE,IAAI,EAAC;gBAGtB,IAAI,UAAU,GAAG;oBACf,UAAU,EAAG,YAAY,CAAC,UAAU;oBACpC,UAAU,EAAG,UAAU;iBACxB;gBACD,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,GAAG,GAAE;oBACvE,IAAG,GAAG,EAAC;wBACL,IAAG,UAAU,CAAC,UAAU,IAAI,SAAS,EAAC;4BACtC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;gCACxD,QAAQ,EAAE,IAAI;gCACd,kBAAkB,EAAE,OAAO;gCAC3B,gBAAgB,EAAE,KAAK;6BACxB,CAAC,CAAC;yBACJ;6BACI,IAAG,UAAU,CAAC,UAAU,IAAI,QAAQ,EAAC;4BACxC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;gCACxD,QAAQ,EAAE,IAAI;gCACd,kBAAkB,EAAE,OAAO;gCAC3B,gBAAgB,EAAE,KAAK;6BACxB,CAAC,CAAC;yBAEJ;wBACC,+BAA+B;qBAChC;gBACH,CAAC,CAAC,CAAC;aAEN;QACH,CAAC,CAAC,CAAC;IACT,CAAC;IACD,mBAAmB,CAAC,YAAkB;QACpC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,4BAA4B,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC;IAEhF,CAAC;IACD,WAAW;QACT,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC;IAEhE,CAAC;;gHApNW,gCAAgC;gHAAhC,gCAAgC;;;wEAahC,8DAAO;;;;;;;QCtCpB;QAAA,wGAAyF;QAEzF;QAAA,2EACE;QAAA;QAAA,kFACE;QAAA;QAAA,iFAAgB;QAAA,mEAAQ;QAAA,4DAAiB;QAC3C;QAAA,4DAAkB;QAClB;QAAA,oFACE;QAAA;QAAA,0EACE;QAAA;QAAA,4EAQE;QAAA;QAAA,4EACE;QAAA;QAAA,4HAOE;QAEF;QAAA,4HACE;QAEJ;QAAA,qEAAe;QAEf;QAAA,4EACE;QAAA;QAAA,4HAOE;QAEF;QAAA,4HACE;QAEJ;QAAA,qEAAe;QAEf;QAAA,4EACE;QAAA;QAAA,4HAOE;QAEF;QAAA,4HACE;QAEJ;QAAA,qEAAe;QAEf;QAAA,4EACE;QAAA;QAAA,4HAOE;QAEF;QAAA,4HACE;QAEJ;QAAA,qEAAe;QACf;QAAA,4EACE;QAAA;QAAA,4HAOE;QAEF;QAAA,4HACE;QAEJ;QAAA,qEAAe;QACf;QAAA,4EACE;QAAA;QAAA,4HAOE;QAEF;QAAA,4HACE;QAEJ;QAAA,qEAAe;QAEf;QAAA,6EACE;QAAA;QAAA,6HACE;QAEF;QAAA,4HACE;QAIJ;QAAA,qEAAe;QAEf;QAAA,6HAAwD;QACxD;QAAA,6HAA6D;QAC7D;QAAA,6HACE;QAEJ;QAAA,4DAAQ;QACV;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,oFAGiB;QACnB;QAAA,4DAAM;QACR;QAAA,4DAAmB;QACrB;QAAA,4DAAW;QAGX;;QAzHQ,2DAAyB;QAAzB,sFAAyB;QAwGN,2DAAoC;QAApC,kGAAoC;QAC3C,0DAAgD;QAAhD,mGAAgD;QAQ5D,0DAAgC;QAAhC,kJAAgC;;6FDnG3B,gCAAgC;cAL5C,uDAAS;eAAC;gBACT,QAAQ,EAAE,+BAA+B;gBACzC,WAAW,EAAE,4CAA4C;gBACzD,SAAS,EAAE,CAAC,4CAA4C,CAAC;aAC1D;6/BAY0D,uBAAuB;kBAA/E,uDAAS;mBAAC,yBAAyB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;YACR,aAAa;kBAA3D,uDAAS;mBAAC,eAAe,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;YACP,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AEvCtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsF;AAEf;AACvE,wEAAwE;AACxE,8EAA8E;AACU;AAC1B;AAC7B;AACwB;AACzD,+DAA+D;AACd;AACU;AACY;;;;;;;;;;;;;;;IC6CnD,yEAAgF;IAAA,wEAAY;IAAA,4DAAK;;;IACjG,yEAAuC;IAAA,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,mGAAyB;;;IAIhE,yEAAgF;IAAA,0EAAc;IAAA,4DAAK;;;IACnG,yEAAuC;IAAA,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,mGAAyB;;;IAGhE,yEAAgF;IAAA,sEAAU;IAAA,4DAAK;;;IAC/F,yEAAuC;IAAA,uDAAqB;IAAA,4DAAK;;;IAA1B,0DAAqB;IAArB,+FAAqB;;;IAI5D,yEAAgF;IAAA,mEAAO;IAAA,4DAAK;;;IAC5F,yEAAuC;IAAA,uDAAmB;IAAA,4DAAK;;;IAAxB,0DAAmB;IAAnB,6FAAmB;;;IAI1D,yEAAgF;IAAA,iFAAqB;IAAA,4DAAK;;;IAC1G,yEAAuC;IAAA,uDAA4B;IAAA,4DAAK;;;IAAjC,0DAA4B;IAA5B,sGAA4B;;;IAErE,oEAA4D;;;IAC5D,oEAAkE;;;IAClE,yEACE;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAC/C;IAAA,4DAAK;;;ADxDhB,MAAM,mBAAmB;IAgC9B,YACS,UAAsB,EAErB,oBAAmD,EAEnD,QAAqB;QAJtB,eAAU,GAAV,UAAU,CAAY;QAErB,yBAAoB,GAApB,oBAAoB,CAA+B;QAEnD,aAAQ,GAAR,QAAQ,CAAa;QAjC/B,cAAS,GAAW,wBAAwB,CAAC;QAC7C,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QAC9C,eAAU,GAAG,IAAI,0EAAkB,EAAE,CAAC;QAEtC,cAAS,GAAY,KAAK,CAAC;QAC3B,wBAAmB,GAAY,KAAK,CAAC;QAErC,iBAAY,GAAW,EAAE,CAAC;QAC1B,uBAAkB,GAAkC,OAAO,CAAC;QAC5D,qBAAgB,GAAgC,KAAK,CAAC;QAC/C,iBAAY,GAAY,KAAK,CAAC;QACtC,iBAAY,GAAiB,EAAE,CAAC;QAGhC,qBAAgB,GAAG,wDAAW,CAAC,oBAAoB,CAAC;QASnD,qBAAgB,GAAa;YAC3B,YAAY,EAAE,cAAc,EAAE,QAAQ;YACtC,iBAAiB,EAAE,UAAU;SAC9B,CAAC;QA4HJ,gBAAW,GAAG;YACZ,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,CAAC;YACpC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACjE,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;YACjC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,UAAU,GAAG,IAAI,mEAAU,EAAE,CAAC;QACrC,CAAC;QAvHK,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,EAAE;QAChE,CAAC,CAAC,CAAC;IACJ,CAAC;IAEH,QAAQ;QACN,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC3B,CAAC;IAKD,gBAAgB;QAEd,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CACtB,cAAc,CAAC,iCAAiC,CAAC,CACpD,CAAC,QAAQ,CAAC;QACX,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CACxB,cAAc,CAAC,iCAAiC,CAAC,CACpD,CAAC,UAAU,CAAC;QACb,IAAI,CAAC,oBAAoB;aACpB,yBAAyB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,oBAAmB;aAC5F,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,GAAiB,EAAE,EAAE;YAEpC,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACrC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;QAEjB,CAAC,CAAC,CAAC;IACX,CAAC;IAEC,KAAK;QACH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,KAAK,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,KAAK,EAAE,EAAE;YAChG,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,OAAO;SACR;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,IAAI,EAAE;YACpE,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE;gBAC5D,IAAI,CAAC,YAAY,GAAG,qCAAqC,CAAC;gBAC3D,sGAAsG;gBACrG,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,qCAAqC,EAAE,GAAG,EAAE;oBAC7D,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;oBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;iBAC1C,CAAC,CAAC;gBAED,OAAO,KAAK,CAAC;aAChB;YACD,IAAI,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE;gBAC1D,IAAI,CAAC,YAAY,GAAG,mCAAmC,CAAC;gBACzD,sGAAsG;gBACrG,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE;oBAC3D,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;oBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;iBAC1C,CAAC,CAAC;gBACD,OAAO,KAAK,CAAC;aAChB;YACD,IAAI,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;gBACxE,IAAI,CAAC,YAAY,GAAG,uCAAuC,CAAC;gBAC7D,sGAAsG;gBACrG,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;oBAC/D,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;oBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;iBAC1C,CAAC,CAAC;gBACD,OAAO,KAAK,CAAC;aAChB;YAED,IAAI,CAAC,UAAU,GAAG,IAAI,mEAAU,EAAE,CAAC;YACnC,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;YACrE,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;YACjE,0FAA0F;YAC1F,4FAA4F;YAC5F,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YAC3B,+GAA+G;YAC3G,sBAAsB;YACtB,+BAA+B;YAC/B,qCAAqC;YACrC,wDAAwD;YACxD,wEAAwE;YACxE,oEAAoE;YACpE,QAAQ;YACR,4BAA4B;YAC5B,+EAA+E;YAC/E,6DAA6D;YAC7D,mDAAmD;YACnD,wDAAwD;YACxD,+DAA+D;YAC/D,2DAA2D;YAC3D,gCAAgC;YAChC,IAAI;YACR,YAAY;YACZ,gCAAgC;YAChC,QAAQ;YACR,OAAO;YACP,sBAAsB;YACtB,8BAA8B;YAC9B,8BAA8B;YAC9B,8DAA8D;YAC9D,wBAAwB;YACxB,qDAAqD;YACrD,iDAAiD;YACjD,QAAQ;YACR,MAAM;SACP;IAEL,CAAC;;sFAzJY,mBAAmB;mGAAnB,mBAAmB;kEAuBnB,iEAAkB;wEAClB,wEAAY;wEACZ,8DAAO;;;;;;;QCpDpB,2EACI;QAAA;QAAA,mFACI;QAAA;QAAA,4DAAmB;QACnB;QAAA,sEAEA;QAAA;QAAA,0EACI;QAAA;QAAA,yEACI;QAAA;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,qEAAS;QAAA,4DAAY;QAChC;QAAA,uEACA;QAAA;QAAA,uFAAsE;QACtE;QAAA,sFAAuC;QAE3C;QAAA,4DAAiB;QAGjB;QASJ;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,qEAAS;QAAA,4DAAY;QAChC;QAAA,uEACA;QAAA;QAAA,uFAAoE;QACpE;QAAA,sFAAqC;QAEzC;QAAA,4DAAiB;QACrB;QAAA,4DAAM;QAEV;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,8EACI;QAAA;QAAA,8EACI;QADkC,4IAAS,iBAAa,IAAC;QACzD,2FAAK;QAAA,4DAAS;QAClB;QAAA,8EACI;QADkD,4IAAS,WAAO,IAAC;QACnE,2FAAK;QAAA,4DAAS;QACtB;QAAA,4DAAU;QAEd;QAAA,4DAAM;QACN;QAAA,4DAAO;QACX;QAAA,4DAAM;QACN;QAAA,iEACR;QAAA;QAAA,4DAAW;QACX;QAAA,4EACI;QAAA;QAAA,uEACI;QAAA;QAAA,2EACI;QAAA;QAAA,2EACI;QAAA;QAAA,6EACE;QAAA;QAAA,6EACE;QAAA;QAAA,gHAAgF;QAChF;QAAA,gHAAuC;QACzC;QAAA,qEAAe;QAEf;QAAA,6EACE;QAAA;QAAA,gHAAgF;QAChF;QAAA,gHAAuC;QACzC;QAAA,qEAAe;QACf;QAAA,6EACE;QAAA;QAAA,gHAAgF;QAChF;QAAA,gHAAuC;QACzC;QAAA,qEAAe;QAEf;QAAA,6EACE;QAAA;QAAA,gHAAgF;QAChF;QAAA,gHAAuC;QACzC;QAAA,qEAAe;QAEf;QAAA,8EACE;QAAA;QAAA,kHAAgF;QAChF;QAAA,kHAAuC;QACzC;QAAA,qEAAe;QACf;QAAA,kHAAuD;QACvD;QAAA,kHAA6D;QAC7D;QAAA,kHACE;QAEJ;QAAA,4DAAQ;QACV;QAAA,4DAAM;QACN;QAAA,4EACE;QAAA;QAAA,iFAAgE;QAClE;QAAA,4DAAM;QACZ;QAAA,4DAAO;QACX;QAAA,4DAAM;QACV;QAAA,4DAAW;QACX;;;;QAvFe,0DAAuB;QAAvB,oFAAuB;QAGF,0DAA+B;QAA/B,uGAA+B;QAEK,0DAAsB;QAAtB,8EAAsB;QACrC,0DAAY;QAAZ,oEAAY;QAiBjC,2DAA+B;QAA/B,uGAA+B;QAEK,0DAAoB;QAApB,8EAAoB;QACnC,0DAAU;QAAV,oEAAU;QAsBrD,2DAAuB;QAAvB,oFAAuB;QAEJ,0DAAyB;QAAzB,sFAAyB;QAwBrB,2DAAmC;QAAnC,iGAAmC;QAC1C,0DAAgD;QAAhD,kGAAgD;QAO/C,0DAAgC;QAAhC,mJAAgC;;6FD5DlD,mBAAmB;cAL/B,uDAAS;eAAC;gBACT,QAAQ,EAAE,iBAAiB;gBAC3B,WAAW,EAAE,8BAA8B;gBAC3C,SAAS,EAAE,CAAC,8BAA8B,CAAC;aAC5C;uUAwBgC,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;YACc,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACH,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AEpDtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2E;AACF;AAEL;;;;;;;;;;ICStC,4EACZ;IAAA,4HACF;IAAA,4DAAY;;ADHrB,MAAM,qBAAqB;IAM9B,YACY,SAA8C,EACtB,IAAS;QADjC,cAAS,GAAT,SAAS,CAAqC;QACtB,SAAI,GAAJ,IAAI,CAAK;QAEzC,IAAI,CAAC,UAAU,GAAG,IAAI,wDAAS,CAAC;YAC5B,cAAc,EAAG,IAAI,0DAAW,CAAC,IAAI,CAAC,YAAY,EAAC,yDAAU,CAAC,QAAQ,CAAC;SACxE,CAAC;IAGR,CAAC;IAED,QAAQ;IAER,CAAC;IACD,SAAS;QACD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAEH,IAAI;QACA,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAC;YACxB,OAAO;SACV;aACG;YACJ,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;SAC3C;IACL,CAAC;IAED,KAAK;QACD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;;0FAnCQ,qBAAqB,0MAQlB,wEAAe;qGARlB,qBAAqB;QCVlC;QAAA,wEAAgD;QAAA,wEAAa;QAAA,4DAAK;QAGlE;QAAA,qFAEI;QAAA;QAAA,0EACI;QAAA;QAAA,yEACI;QAAA;QAAA,qFACI;QAAA;QAAA,6EAAW;QAAA,yEAAa;QAAA,2EAA2B;QAAA,8DAAC;QAAA,4DAAO;QAAA,4DAAY;QACvE;QAAA,0EAAqF;QAEvE;QAAA,+HACZ;QAEJ;QAAA,4DAAiB;QAEvB;QAAA,4DAAM;QACN;QAAA,0EACI;QAAA;QAAA,0EACE;QAAA;QAAA,6EACE;QADuC,8IAAS,eAAW,IAAC;QAC5D;QAAA,4EAAU;QAAA,iEAAK;QAAA,4DAAW;QAAA,kFAC5B;QAAA,4DAAS;QACT;QAAA,6EAAuE;QAAjB,8IAAS,UAAM,IAAC;QAAC,kEAAM;QAAA,4DAAS;QAExF;QAAA,4DAAM;QACR;QAAA,4DAAM;QACV;QAAA,4DAAO;QAEb;QAAA,4DAAqB;QAIrB;;QA3BU,0DAAwB;QAAxB,qFAAwB;QAMO,2DAA2D;QAA3D,yHAA2D;;6FDDvF,qBAAqB;cALjC,uDAAS;eAAC;gBACP,QAAQ,EAAE,eAAe;gBACzB,WAAW,EAAE,gCAAgC;gBAC7C,SAAS,EAAE,CAAC,+BAA+B,CAAC;aAC/C;;sBASQ,oDAAM;uBAAC,wEAAe;;;;;;;;;;;;;;AEnB/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AACC;AAGD;AACZ;;;;;;;;;;;;;;ICIzC,yEACE;IAAA,8FACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,wHACF;;;IAGA,yEAAsD;IAAA,kFACtD;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,wHACF;;;IAIA,yEAAsD;IAAA,4EACtD;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,uHACF;;;IAGA,yEACE;IAAA,qFACF;IAAA,4DAAK;;;;IACL,yEACE;IAAA;IAAA,+EAAgE;IAA9B,0XAA6B;IAAC,qEAAU;IAAA,4DAAW;IACvF;IAAA,4DAAK;;;IAGT,oEAA4D;;;IAC5D,oEAAkE;;;IAClE,yEACE;IAAA;IAAA,yEAAiC;IAAA,iFAAsB;IAAA,4DAAK;IAC9D;IAAA,4DAAK;;;AD3BF,MAAM,kCAAkC;IAgB7C,YACU,KAAa,EACb,SAAsB,EACvB,UAAsB,EACrB,OAA0B,EAC1B,YAA2B;QAJ3B,UAAK,GAAL,KAAK,CAAQ;QACb,cAAS,GAAT,SAAS,CAAa;QACvB,eAAU,GAAV,UAAU,CAAY;QACrB,YAAO,GAAP,OAAO,CAAmB;QAC1B,iBAAY,GAAZ,YAAY,CAAe;QAjBrC,cAAS,GAAW,aAAa,CAAC;QAElC,iBAAY,GAAa,EAAE,CAAC;QAC5B,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QAI9C,gBAAW,GAAG,IAAI,0EAAkB,EAAa,CAAC;QAGlD,qBAAgB,GAAa,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QASlE,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,EAAE;YAC7D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CACxB,cAAc,CAAC,iCAAiC,CAAC,CAClD,CAAC,QAAQ,CAAC;QACX,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CACrB,cAAc,CAAC,iCAAiC,CAAC,CAClD,CAAC,UAAU,CAAC;QAEb,IAAI,CAAC,0BAA0B,EAAE,CAAC;IAEpC,CAAC;IAED,0BAA0B;QACxB,IAAI,CAAC,YAAY,CAAC,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,GAAgB,EAAE,EAAE;YACtF,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;YACzB,IAAI,CAAC,WAAW,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC9D,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,sBAAsB,CAAC;YACzD,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YAClC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC,EACD,CAAC,KAAK,EAAC,EAAE;YACP,IAAG,KAAK,CAAC,KAAK,IAAI,wBAAwB,EAC1C;gBACE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;oBACtC,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACF;QACH,CAAC,CAAC,CAAC;IAEL,CAAC;IAED,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAC5D;aAAM;YACL,IAAI,CAAC,WAAW,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SAClE;QACD,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE;YAC9B,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;SACxC;QACD,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,sBAAsB,CAAC;QACzD,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACpC,CAAC;IACD,UAAU,CAAC,OAAO;QAChB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,2BAA2B,GAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;IACxE,CAAC;;oHA9EU,kCAAkC;kHAAlC,kCAAkC;;wEAUlC,8DAAO;;;;;;QC1BpB;QAAA,2EACE;QAAA;QAAA,kFACE;QAAA;QAAA,iFAAgB;QAAA,iEAAM;QAAA,4DAAiB;QACzC;QAAA,4DAAkB;QAClB;QAAA,mFACE;QAAA;QAAA,4EAEE;QAAA;QAAA,4EACE;QAAA;QAAA,8HACE;QAEF;QAAA,8HACE;QAEJ;QAAA,qEAAe;QACf;QAAA,4EACE;QAAA;QAAA,8HAAsD;QAEtD;QAAA,8HACE;QAEJ;QAAA,qEAAe;QAEf;QAAA,4EACE;QAAA;QAAA,8HAAsD;QAEtD;QAAA,8HACE;QAEJ;QAAA,qEAAe;QACf;QAAA,4EACE;QAAA;QAAA,8HACE;QAEF;QAAA,8HACE;QAEJ;QAAA,qEAAe;QAEjB;QAAA,8HAAuD;QACvD;QAAA,8HAA6D;QAC7D;QAAA,+HACE;QAEJ;QAAA,4DAAQ;QACR;QAAA,2EACE;QAAA;QAAA,yFAEA;QAAA;QAAA,4DAAgB;QAClB;QAAA,4DAAM;QACN;QAAA,4DAAmB;QACrB;QAAA,4DAAW;QACX;;QA/CqB,2DAA0B;QAA1B,uFAA0B;QAkCxB,2DAAmC;QAAnC,iGAAmC;QAC1C,0DAAgD;QAAhD,kGAAgD;QAMrB,0DAAgC;QAAhC,kJAAgC;;6FD9B9D,kCAAkC;cAL9C,uDAAS;eAAC;gBACT,QAAQ,EAAE,iCAAiC;gBAC3C,WAAW,EAAE,8CAA8C;gBAC3D,SAAS,EAAE,CAAC,8CAA8C,CAAC;aAC5D;udAUyD,sBAAsB;kBAA7E,uDAAS;mBAAC,wBAAwB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;YAChB,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AE3BtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AAE5B;AAE6B;AAGH;AACE;AACZ;AAIG;;;;;;;;;;;;;;ICExC,yEAOE;IAAA,qGACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,+HACF;;;IAIA,yEAOE;IAAA,wGACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,+HACF;;;IAIA,yEAOE;IAAA,mGACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,oIACF;;;IAIA,yEAOE;IAAA,oGACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,8HACF;;;IAiBA,yEAOE;IAAA,+FACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,gIACF;;;IAIA,yEACE;IAAA,6FACF;IAAA,4DAAK;;;;IACL,yEACE;IAAA;IAAA,6EACE;IADsC,yXAAgC;IACtE,iGACF;IAAA,4DAAS;IACX;IAAA,4DAAK;;;IAGP,oEAA4D;;;IAC5D,oEAAiE;;;IACjE,yEACE;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAC/C;IAAA,4DAAK;;;ADjGR,MAAM,gCAAgC;IAsC3C,YACU,oBAAyC,EACzC,KAAa,EACb,yBAAiD,EACjD,SAAsB,EACvB,UAAsB,EACrB,OAA0B,EAC1B,QAAqB;QANrB,yBAAoB,GAApB,oBAAoB,CAAqB;QACzC,UAAK,GAAL,KAAK,CAAQ;QACb,8BAAyB,GAAzB,yBAAyB,CAAwB;QACjD,cAAS,GAAT,SAAS,CAAa;QACvB,eAAU,GAAV,UAAU,CAAY;QACrB,YAAO,GAAP,OAAO,CAAmB;QAC1B,aAAQ,GAAR,QAAQ,CAAa;QA1C/B,cAAS,GAAW,aAAa,CAAC;QAGlC,iBAAY,GAAa,EAAE,CAAC;QAC5B,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QAC9C,eAAU,GAAG,IAAI,0EAAkB,EAAgB,CAAC;QACpD,aAAQ,GAAY,KAAK,CAAC;QAE1B,gDAAgD;QAChD,cAAS,GAAY,KAAK,CAAC;QAC3B,kBAAa,GAAY,CAAC,CAAC;QAM3B,SAAI,GAAG;YACL,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE;YAChD,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,iBAAiB,EAAE;YACnD,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,YAAY,EAAE;YACnD,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE;YAC9C,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,YAAY,EAAE;YAClD,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE;SAC5C,CAAC;QACF,qBAAgB,GAAa;YAC3B,aAAa;YACb,aAAa;YACb,kBAAkB;YAClB,YAAY;YACZ,qBAAqB;YACrB,cAAc;YACd,QAAQ;SACT,CAAC;QAYA,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,EAAE;YAC9D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAC3D;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SAChE;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;YAC7B,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;SACvC;QACD,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACnC,CAAC;IAGD,eAAe;QACb,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CACxB,cAAc,CAAC,iCAAiC,CAAC,CAClD,CAAC,QAAQ,CAAC;QACX,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CACrB,cAAc,CAAC,iCAAiC,CAAC,CAClD,CAAC,UAAU,CAAC;QACb,IAAI,CAAC,oBAAoB;aACtB,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,oBAAmB;aAC7E,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,GAAmB,EAAE,EAAE;YACxC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC;YAC3B,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACnC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAE;YACd,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,sFAAsF;YACtF,oBAAoB;YACpB,iCAAiC;YACjC,6BAA6B;YAC7B,MAAM;QACR,CAAC,CAAC,CAAC;IACP,CAAC;IAED,gBAAgB,CAAC,IAAoB;QACnC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACf,IAAI,CAAC,CAAC,eAAe,IAAI,IAAI,EAAE;gBAC7B,CAAC,CAAC,eAAe,GAAG,mCAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;aACpE;YACD,IAAI,CAAC,CAAC,aAAa,IAAI,IAAI,EAAE;gBAC3B,CAAC,CAAC,aAAa,GAAG,mCAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;aAChE;YACD,IAAI,CAAC,CAAC,gBAAgB,IAAI,IAAI,EAAE;gBAC9B,CAAC,CAAC,gBAAgB,GAAG,mCAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;aACtE;YACD,IAAI,CAAC,CAAC,cAAc,IAAI,IAAI,EAAE;gBAC5B,CAAC,CAAC,cAAc,GAAG,mCAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;aAClE;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,aAAa,CAAC,aAA2B;QACvC,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QACrE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC7C,CAAC;;gHAxHU,gCAAgC;gHAAhC,gCAAgC;kEAehC,iEAAkB;wEAClB,wEAAY;wEACZ,8DAAO;;;;;;;QCrCpB,8EACE;QAAA;QAAA,kFACE;QAAA;QAAA,iFAAgB;QAAA,mEAAQ;QAAA,4DAAiB;QAC3C;QAAA,4DAAkB;QAChB;QAAA,mFACE;QAAA;QAAA,0EACE;QAAA;QAAA,4EAQE;QAAA;QAAA,4EACE;QAAA;QAAA,4HAOE;QAEF;QAAA,4HACE;QAEJ;QAAA,qEAAe;QAEf;QAAA,4EACE;QAAA;QAAA,4HAOE;QAEF;QAAA,4HACE;QAEJ;QAAA,qEAAe;QAEf;QAAA,4EACE;QAAA;QAAA,4HAOE;QAEF;QAAA,4HACE;QAEJ;QAAA,qEAAe;QAEf;QAAA,4EACE;QAAA;QAAA,4HAOE;QAEF;QAAA,4HACE;QAEJ;QAAA,qEAAe;QACf;QAcA;QAAA,4EACE;QAAA;QAAA,4HAOE;QAEF;QAAA,4HACE;QAEJ;QAAA,qEAAe;QAEf;QAAA,6EACE;QAAA;QAAA,6HACE;QAEF;QAAA,4HACE;QAIJ;QAAA,qEAAe;QAEf;QAAA,6HAAuD;QACvD;QAAA,6HAA4D;QAC5D;QAAA,6HACE;QAEJ;QAAA,4DAAQ;QACV;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,gFAGiB;QACnB;QAAA,4DAAM;QACR;QAAA,4DAAmB;QACrB;QAAA,4DAAW;QAEb;;QAjIU,sHAAqD;QASrD,2DAAyB;QAAzB,sFAAyB;QAwGN,2DAAmC;QAAnC,iGAAmC;QAC1C,0DAA+C;QAA/C,kGAA+C;QAQ3D,0DAAgC;QAAhC,kJAAgC;;6FDtG7B,gCAAgC;cAL5C,uDAAS;eAAC;gBACT,QAAQ,EAAE,+BAA+B;gBACzC,WAAW,EAAE,4CAA4C;gBACzD,SAAS,EAAE,CAAC,4CAA4C,CAAC;aAC1D;ypBAgBgC,kBAAkB;kBAAhD,uDAAS;mBAAC,iEAAkB;YACc,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACH,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AErCtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AACF;AAEV;AACY;AAKoB;AACW;;;;;;;;;;;;;;ICFhF,yEACA;IAAA,iGACA;IAAA,4DAAK;;;IACL,yEACA;IAAA,uDACA;IAAA,4DAAK;;;IADL,0DACA;IADA,2HACA;;;IAIF,yEACA;IAAA,0FACA;IAAA,4DAAK;;;IACL,yEACA;IAAA,uDACA;IAAA,4DAAK;;;IADL,0DACA;IADA,qHACA;;;IAIE,yEAAsD;IAAA,oFACtD;IAAA,4DAAK;;;IACL,yEACA;IAAA,uDACA;IAAA,4DAAK;;;IADL,0DACA;IADA,iIACA;;;IAIF,yEAAsD;IAAA,gFACtD;IAAA,4DAAK;;;IACL,yEACA;IAAA,uDACA;IAAA,4DAAK;;;IADL,0DACA;IADA,sIACA;;;IAIE,yEAAsD;IAAA,6FACtD;IAAA,4DAAK;;;IACL,yEACA;IAAA,uDACA;IAAA,4DAAK;;;IADL,0DACA;IADA,4HACA;;;IAIA,yEAAsD;IAAA,kFACtD;IAAA,4DAAK;;;IACL,yEACA;IAAA,uDACA;IAAA,4DAAK;;;IADL,0DACA;IADA,0HACA;;;IAGF,yEAAuC;IAAA,oEAAQ;IAAA,4DAAK;;;IACpD,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IAF4B,sGAAgC;IAC/D,0DACF;IADE,uHACF;;;IAGA,yEAAuC;IAAA,iEAAK;IAAA,4DAAK;;;;IACjD,yEACE;IAAA;IAAA,+EAAgE;IAAtD,+WAA4B;IAA0B,+DAAI;IAAA,4DAAW;IACjF;IAAA,4DAAK;;;IAGT,oEAA4D;;;IAC5D,oEAAkE;;;AD7CjE,MAAM,wBAAwB;IAkBnC,YAAoB,YAA0B,EACpC,KAAa,EACb,QAAwB,EACzB,MAAiB,EAChB,SAAsB;QAJZ,iBAAY,GAAZ,YAAY,CAAc;QACpC,UAAK,GAAL,KAAK,CAAQ;QACb,aAAQ,GAAR,QAAQ,CAAgB;QACzB,WAAM,GAAN,MAAM,CAAW;QAChB,cAAS,GAAT,SAAS,CAAa;QAnBhC,qBAAgB,GAAa;YAC3B,WAAW;YACX,SAAS;YACT,aAAa;YACb,WAAW;YACX,YAAY;YACZ,UAAU;YACV,SAAS;YACT,MAAM;SACP,CAAC;QACF,eAAU,GAAG,IAAI,0EAAkB,EAAa,CAAC;QAU/C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IACD,oBAAoB;QAClB,IAAI,CAAC,YAAY,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,GAAiB,EAAE,EAAE;YAChF,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;YAClB,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACtD,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACnC,CAAC,CAAC,CAAC;IACL,CAAC;IACD,SAAS,CAAC,QAAQ;QAChB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uGAAwB,EAAE;YAC3D,KAAK,EAAE,OAAO;YACd,IAAI,EAAE;gBACJ,SAAS,EAAC,QAAQ;aACnB;YACD,YAAY,EAAE,IAAI;SACnB,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4FAAqB,EAAE;YACxD,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,EAAC,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,mCAAmC,EAAC;YAC7E,YAAY,EAAE,IAAI;SACnB,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAG,MAAM,IAAE,IAAI,EAAC;gBACd,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;oBACxD,IAAG,GAAG,IAAI,gDAAgD,EAAC;wBACzD,IAAI,CAAC,YAAY,CAAC,yBAAyB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;4BACnE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,6BAA6B,EAAE,GAAG,EAAE;gCACtD,QAAQ,EAAE,IAAI;gCACd,kBAAkB,EAAE,OAAO;gCAC3B,gBAAgB,EAAE,KAAK;6BACxB,CAAC,CAAC;4BACH,UAAU,CAAC,GAAG,EAAE;gCACd,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;4BAC7C,CAAC,EAAE,IAAI,CAAC,CAAC;wBACX,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;4BACR,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;gCACpC,QAAQ,EAAE,IAAI;gCACd,kBAAkB,EAAE,OAAO;gCAC3B,gBAAgB,EAAE,KAAK;6BACxB,CAAC,CAAC;wBACL,CAAC,CAAC;qBACH;yBACI;wBACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE;4BAC3C,QAAQ,EAAE,IAAI;4BACd,UAAU,EAAE,CAAC,aAAa,CAAC;4BAC3B,kBAAkB,EAAE,OAAO;4BAC3B,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;qBACJ;gBACH,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;oBACR,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;wBACpC,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC,aAAa,CAAC;wBAC3B,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;gBACL,CAAC,CAAC;aACH;QACH,CAAC,CAAC,CAAC;IACL,CAAC;;gGAnGU,wBAAwB;wGAAxB,wBAAwB;wEAexB,wEAAY;wEACZ,8DAAO;;;;;;QCzCnB;QAAA,2EACG;QAAA;QAAA,mFACI;QAAA;QAAA,yEACI;QAAA;QAAA,4EAA4D;QAApB,gJAAS,aAAS,IAAC;QAAC,kEAAO;QAAA,4DAAS;QAChF;QAAA,4DAAM;QACR;QAAA,4EAEE;QAAA;QAAA,4EACI;QAAA;QAAA,oHACA;QAEA;QAAA,oHACA;QAEJ;QAAA,qEAAe;QAEf;QAAA,4EACE;QAAA;QAAA,oHACA;QAEA;QAAA,oHACA;QAEJ;QAAA,qEAAe;QAEb;QAAA,4EACI;QAAA;QAAA,oHAAsD;QAEtD;QAAA,oHACA;QAEJ;QAAA,qEAAe;QAEf;QAAA,4EACE;QAAA;QAAA,oHAAsD;QAEtD;QAAA,oHACA;QAEJ;QAAA,qEAAe;QAEb;QAAA,4EACI;QAAA;QAAA,oHAAsD;QAEtD;QAAA,oHACA;QAEJ;QAAA,qEAAe;QAEf;QAAA,6EACI;QAAA;QAAA,oHAAsD;QAEtD;QAAA,oHACA;QAEJ;QAAA,qEAAe;QACf;QAAA,6EACE;QAAA;QAAA,qHAAuC;QACvC;QAAA,qHACE;QAEJ;QAAA,qEAAe;QACf;QAAA,6EACE;QAAA;QAAA,qHAAuC;QACvC;QAAA,oHACE;QAEJ;QAAA,qEAAe;QAEjB;QAAA,qHAAuD;QACvD;QAAA,qHAA6D;QAC/D;QAAA,4DAAQ;QACR;QAAA,2EACE;QAAA;QAAA,qFAEA;QAAA;QAAA,4DAAgB;QAClB;QAAA,4DAAM;QACN;QAAA,4DAAmB;QACrB;QAAA,4DAAW;QAET;;QA3EmB,2DAAyB;QAAzB,sFAAyB;QAgEvB,2DAAmC;QAAnC,iGAAmC;QAC1C,0DAAgD;QAAhD,kGAAgD;QAG7C,0DAAgC;QAAhC,kJAAgC;;6FDhDxC,wBAAwB;cALpC,uDAAS;eAAC;gBACT,QAAQ,EAAE,sBAAsB;gBAChC,WAAW,EAAE,mCAAmC;gBAChD,SAAS,EAAE,CAAC,mCAAmC,CAAC;aACjD;8aAgB4C,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACH,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AExCtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AAE5B;AAE6B;AAGH;AACE;AACZ;AAMgC;;;;;;;;;;;;;;;;;;;;;;;ICCrE,yEAOE;IAAA,qGACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,+HACF;;;IAIA,yEAOE;IAAA,wGACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,+HACF;;;IAIA,yEAOE;IAAA,mGACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,oIACF;;;IAIA,yEAOE;IAAA,oGACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,8HACF;;;IAiBA,yEAOE;IAAA,+FACF;IAAA,4DAAK;;;IACL,yEACE;IAAA,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,gIACF;;;IAIA,yEACE;IAAA,6FACF;IAAA,4DAAK;;;;IACL,yEACI;IAAA;IAAA,6EAAuE;IAA/B,iXAA8B;IAAC,+DAAI;IAAA,4DAAS;IACtF;IAAA,4DAAK;;;IAGT,oEAA4D;;;IAC5D,oEAAiE;;;IACjE,yEACE;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAC/C;IAAA,4DAAK;;;IAoBK,yEAAgF;IAAA,0EAAc;IAAA,4DAAK;;;IACnG,yEAAuC;IAAA,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,yFAAwB;;;IAI/D,yEAAgF;IAAA,0EAAc;IAAA,4DAAK;;;IACnG,yEAAuC;IAAA,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,yFAAwB;;;IAI/D,yEAAgF;IAAA,wEAAY;IAAA,4DAAK;;;IACjG,yEAAuC;IAAA,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,wFAAuB;;;IAI9D,yEAAgF;IAAA,sEAAU;IAAA,4DAAK;;;IAC/F,yEAAuC;IAAA,uDAAoB;IAAA,4DAAK;;;IAAzB,0DAAoB;IAApB,qFAAoB;;;IAI3D,yEAAgF;IAAA,kEAAM;IAAA,4DAAK;;;IAC3F,yEAAuC;IAAA,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,uFAAsB;;;IAI7D,yEAAgF;IAAA,4EAAgB;IAAA,4DAAK;;;;IAGnG,uEACE;IAAA;IAAA,0EAEF;IAFO,4bAA0C;IAA/C,4DAEF;IAAA;IAAA,4DAAO;;;;IALT,yEACE;IAAA;IAAA,6EAA6J;IAAA,2EAAU;IAAA,qEAAU;IAAA,4DAAW;IAAA,2EAAgB;IAAA,4DAAS;IACrN;IAAA,gIACE;IAGJ;IAAA,4DAAK;;;IALK,0DAAkF;IAAlF,4LAAkF;IACpF,0DAAkE;IAAlE,wIAAkE;;;IAO1E,yEAAgF;IAAA,gEAAI;IAAA,4DAAK;;;;IAEvF,+EACO;IADiF,gcAAqC;IACtH,qEAAU;IAAA,4DAAW;;;IAF9B,yEACE;IAAA;IAAA,wIACO;IACT;IAAA,4DAAK;;;IAFO,0DAAqD;IAArD,mHAAqD;;;IAMjE,yEAAgF;IAAA,mEAAO;IAAA,4DAAK;;;IAE1F,6EACqJ;IAAA,2EAAU;IAAA,qEAAU;IAAA,4DAAW;IAAA,2EAAgB;IAAA,4DAAS;;;IAA7M,4LAAkF;;;;IAClF,uEACE;IAAA;IAAA,0EAEF;IAFO,4bAA0C;IAA/C,4DAEF;IAAA;IAAA,4DAAO;;;;IACP,6EAEU;IADgC,4bAAqC;IACrE,2HACV;IAAA,4DAAS;;;IACT,6EACE;IAAA,uDACF;IAAA,4DAAS;;;IAFiB,0EAAiB;IACzC,0DACF;IADE,qJACF;;;IAbF,yEACE;IAAA;IAAA,oIACqJ;IACrJ;IAAA,gIACE;IAGF;IAAA,oIAEU;IAEV;IAAA,oIACE;IAEJ;IAAA,4DAAK;;;;IAbK,0DAAyL;IAAzL,uQAAyL;IAE3L,0DAAyP;IAAzP,mVAAyP;IAIrO,0DAA0F;IAA1F,8JAA0F;IAIxE,0DAA4C;IAA5C,0GAA4C;;;IAM5F,oEAA0D;;;IAClE,oEAAgE;;;IAChE,yEACE;IAAA;IAAA,yEAAiC;IAAA,kEAAO;IAAA,4DAAK;IAC/C;IAAA,4DAAK;;;ADlLR,MAAM,0BAA0B;IAmCrC,YAAoB,OAAe,EAAU,oBAAyC,EAC3E,yBAAiD,EAClD,MAAgB,EAChB,UAAsB,EAAU,OAA0B,EACzD,SAAsB,EAAU,mBAAyC,EACzE,8BAA8D;QALrD,YAAO,GAAP,OAAO,CAAQ;QAAU,yBAAoB,GAApB,oBAAoB,CAAqB;QAC3E,8BAAyB,GAAzB,yBAAyB,CAAwB;QAClD,WAAM,GAAN,MAAM,CAAU;QAChB,eAAU,GAAV,UAAU,CAAY;QAAU,YAAO,GAAP,OAAO,CAAmB;QACzD,cAAS,GAAT,SAAS,CAAa;QAAU,wBAAmB,GAAnB,mBAAmB,CAAsB;QACzE,mCAA8B,GAA9B,8BAA8B,CAAgC;QAvCzE,cAAS,GAAG,uDAAe,CAAC,iBAAiB,CAAC;QAC9C,aAAQ,GAAY,KAAK,CAAC;QAM1B,eAAU,GAAG,IAAI,0EAAkB,EAAgB,CAAC;QAQpD,mBAAc,GAAG,CAAC,cAAc,EAAC,cAAc,EAAC,aAAa,EAAC,UAAU,EAAC,YAAY,EAAC,gBAAgB,CAAC,CAAC;QAUxG,qBAAgB,GAAa;YAC3B,aAAa;YACb,aAAa;YACb,kBAAkB;YAClB,YAAY;YACZ,qBAAqB;YACrB,cAAc;YACd,MAAM;SACP,CAAC;QAOE,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,EAAE;YAChE,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IAAC,CAAC;IAEP,QAAQ;QACN,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CACxB,cAAc,CAAC,iCAAiC,CAAC,CAClD,CAAC,QAAQ,CAAC;QACX,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAC7B,cAAc,CAAC,iCAAiC,CAAC,CAClD,CAAC,UAAU,CAAC;QACb,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAC5B,cAAc,CAAC,iCAAiC,CAAC,CAClD,CAAC,YAAY,CAAC;QACf,IAAI,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC;QAC3E,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAC9B,IAAG,IAAI,CAAC,YAAY,KAAK,CAAC,CAAC,YAAY,EAAC;gBACtC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,cAAc;aACvC;QACH,CAAC,CAAC;QACF,IAAG,IAAI,CAAC,cAAc,KAAK,UAAU,EAAC;YACpC,IAAI,CAAC,SAAS,GAAG,mBAAmB,CAAC;YACrC,IAAI,CAAC,eAAe,EAAE,CAAC;SACxB;aACG;YACF,IAAI,CAAC,SAAS,GAAG,kBAAkB,CAAC;YACpC,IAAI,CAAC,cAAc,GAAG,CAAC,cAAc,EAAC,cAAc,EAAC,aAAa,EAAC,UAAU,EAAC,YAAY,EAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;SAC9G;QACD,8BAA8B;QAC9B,IAAI,CAAC,oBAAoB,EAAE;IAC7B,CAAC;IAED,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAC3D;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SAChE;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;YAC7B,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;SACvC;QACD,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACnC,CAAC;IAGD,eAAe;QACb,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CACxB,cAAc,CAAC,iCAAiC,CAAC,CAClD,CAAC,QAAQ,CAAC;QAEX,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CACrB,cAAc,CAAC,iCAAiC,CAAC,CAClD,CAAC,UAAU,CAAC;QACb,IAAI,CAAC,oBAAoB;aACtB,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC;aAC1D,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,GAAmB,EAAE,EAAE;YACxC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC;YAC3B,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACnC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAE;YACd,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,sFAAsF;YACtF,oBAAoB;YACpB,iCAAiC;YACjC,6BAA6B;YAC7B,MAAM;QACT,CAAC,CAAC,CAAC;QAAA,CAAC;IACP,CAAC;IAED,gBAAgB,CAAC,IAAoB;QACnC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACf,IAAI,CAAC,CAAC,eAAe,IAAI,IAAI,EAAE;gBAC7B,CAAC,CAAC,eAAe,GAAG,mCAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;aACpE;YACD,IAAI,CAAC,CAAC,aAAa,IAAI,IAAI,EAAE;gBAC3B,CAAC,CAAC,aAAa,GAAG,mCAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;aAChE;YACD,IAAI,CAAC,CAAC,gBAAgB,IAAI,IAAI,EAAE;gBAC9B,CAAC,CAAC,gBAAgB,GAAG,mCAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;aACtE;YACD,IAAI,CAAC,CAAC,cAAc,IAAI,IAAI,EAAE;gBAC5B,CAAC,CAAC,cAAc,GAAG,mCAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;aAClE;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,WAAW,CAAC,aAA2B;QACrC,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QACrE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,wBAAwB,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IACrE,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,2CAA2C;QAC3C,IAAI,CAAC,8BAA8B,CAAC,yBAAyB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,GAAU,EAAE,EAAE;YAC7I,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,GAAG,mCAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5E,IAAI,CAAC,WAAW,GAAG,IAAI,0EAAkB,CAAC,GAAG,CAAC,CAAC;YAC/C,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YAClC,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC;YAChD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YACD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,sFAAsF;YACtF,oBAAoB;YACpB,iCAAiC;YACjC,6BAA6B;YAC7B,MAAM;QACV,CAAC,CAAC,CAAC;IAEjB,CAAC;IAGD,mBAAmB,CAAC,YAAkB;QACpC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,iBAAiB,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,YAAY,CAAC,aAAa;QACzB,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8FAAqB,EAAE;YACrD,KAAK,EAAC,OAAO;YACb,YAAY,EAAE,IAAI;YAClB,IAAI,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE;SACpC,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC9B,CAAC,CAAC;IAGJ,CAAC;IAED,kBAAkB,CAAC,YAAY;QAC7B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,8BAA8B,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC;IACpF,CAAC;;oGAtLU,0BAA0B;0GAA1B,0BAA0B;wEAqB1B,wEAAY;;wEAEZ,8DAAO;;;;;;;QC/CpB,wGAAyF;QAEzF;QAAA,8EACE;QAAA;QAAA,kFACE;QAAA;QAAA,iFAAgB;QAAA,mEAAQ;QAAA,4DAAiB;QAC3C;QAAA,4DAAkB;QAChB;QAAA,oFACE;QAAA;QAAA,0EACE;QAAA;QAAA,4EAQE;QAAA;QAAA,4EACE;QAAA;QAAA,sHAOE;QAEF;QAAA,sHACE;QAEJ;QAAA,qEAAe;QAEf;QAAA,4EACE;QAAA;QAAA,sHAOE;QAEF;QAAA,sHACE;QAEJ;QAAA,qEAAe;QAEf;QAAA,4EACE;QAAA;QAAA,sHAOE;QAEF;QAAA,sHACE;QAEJ;QAAA,qEAAe;QAEf;QAAA,4EACE;QAAA;QAAA,sHAOE;QAEF;QAAA,sHACE;QAEJ;QAAA,qEAAe;QACf;QAcA;QAAA,4EACE;QAAA;QAAA,sHAOE;QAEF;QAAA,sHACE;QAEJ;QAAA,qEAAe;QAEf;QAAA,6EACE;QAAA;QAAA,uHACE;QAEF;QAAA,sHACI;QAEN;QAAA,qEAAe;QAEf;QAAA,uHAAuD;QACvD;QAAA,uHAA4D;QAC5D;QAAA,uHACE;QAEJ;QAAA,4DAAQ;QACV;QAAA,4DAAM;QACN;QAAA,2EACE;QAAA;QAAA,gFAGiB;QACnB;QAAA,4DAAM;QACR;QAAA,4DAAmB;QACrB;QAAA,4DAAW;QACX;QAAA,+EACE;QAAA;QAAA,mFACE;QAAA;QAAA,kFAAgB;QAAA,0FAChB;QAAA,4DAAiB;QACnB;QAAA,4DAAkB;QAClB;QAAA,oFACI;QAAA;QAAA,0EACI;QAAA;QAAA,6EACI;QAAA;QAAA,6EACI;QAAA;QAAA,uHAAgF;QAChF;QAAA,sHAAuC;QACzC;QAAA,qEAAe;QAEjB;QAAA,6EACI;QAAA;QAAA,uHAAgF;QAChF;QAAA,sHAAuC;QAC3C;QAAA,qEAAe;QAEf;QAAA,8EACI;QAAA;QAAA,yHAAgF;QAChF;QAAA,wHAAuC;QACzC;QAAA,qEAAe;QAEf;QAAA,8EACE;QAAA;QAAA,yHAAgF;QAChF;QAAA,wHAAuC;QACzC;QAAA,qEAAe;QAEf;QAAA,8EACE;QAAA;QAAA,yHAAgF;QAChF;QAAA,wHAAuC;QACzC;QAAA,qEAAe;QAEf;QAAA,8EACE;QAAA;QAAA,yHAAgF;QAChF;QAAA,wHACE;QAMJ;QAAA,qEAAe;QACf;QAAA,8EACE;QAAA;QAAA,yHAAgF;QAChF;QAAA,wHACE;QAGJ;QAAA,qEAAe;QAEf;QAAA,8EACE;QAAA;QAAA,yHAAgF;QAChF;QAAA,yHACE;QAcJ;QAAA,qEAAe;QAEf;QAAA,yHAAqD;QAC7D;QAAA,yHAA2D;QAC3D;QAAA,yHACE;QAEA;QAAA,4DAAQ;QACZ;QAAA,4DAAM;QACN;QAAA,4EACE;QAAA;QAAA,qFAGe;QACjB;QAAA,4DAAM;QACV;QAAA,4DAAmB;QACvB;QAAA,4DAAW;QAEX;QAAA,+FAAmE;QAEjE;;QAtNQ,0DAAwD;QAAxD,yHAAwD;QASxD,2DAAyB;QAAzB,sFAAyB;QAsGN,2DAAmC;QAAnC,iGAAmC;QAC1C,0DAA+C;QAA/C,kGAA+C;QAQ3D,0DAAgC;QAAhC,mJAAgC;QAM9B,0DAAwD;QAAxD,yHAAwD;QAOvC,2DAA0B;QAA1B,uFAA0B;QA+DlB,2DAAiC;QAAjC,+FAAiC;QAChD,0DAA8C;QAA9C,gGAA8C;QAQ1D,0DAAgC;QAAhC,mJAAgC;;6FDvL7B,0BAA0B;cALtC,uDAAS;eAAC;gBACT,QAAQ,EAAE,yBAAyB;gBACnC,WAAW,EAAE,sCAAsC;gBACnD,SAAS,EAAE,CAAC,sCAAsC,CAAC;aACpD;q4BAsB4C,SAAS;kBAAnD,uDAAS;mBAAC,wEAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACM,aAAa;kBAA3D,uDAAS;mBAAC,eAAe,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;YACP,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AE9CtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAoE;AAInB;AACY;AAE5B;AAOgD;AAGsC;AAClB;;;;;;;;;;;;;;;;;;;;;ICT7E,yEAAgF;IAAA,mEAAO;IAAA,4DAAK;;;IAC5F,yEAAuC;IAAA,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,yFAAwB;;;IAI/D,yEAAgF;IAAA,mGAChF;IAAA,4DAAK;;;IACL,yEAAuC;IAAA,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,yFAAwB;;;IAI/D,yEAAgF;IAAA,iGAChF;IAAA,4DAAK;;;IACL,yEAAuC;IAAA,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,wFAAuB;;;IAI9D,yEAAgF;IAAA,sEAAU;IAAA,4DAAK;;;IAC/F,yEAAuC;IAAA,uDAAoB;IAAA,4DAAK;;;IAAzB,0DAAoB;IAApB,qFAAoB;;;IAI3D,yEAAgF;IAAA,mEAAO;IAAA,4DAAK;;;IAExF,uEAAuG;IAAA,uDAAsB;IAAA,4DAAO;;;IAA7B,0DAAsB;IAAtB,uFAAsB;;;;IAC7H,wEAA8L;IAAjD,2bAAgD;IAAC,uDAAsB;IAAA,4DAAI;;;IAA1B,0DAAsB;IAAtB,uFAAsB;;;IAFxN,yEACI;IAAA;IAAA,8HAAuG;IACvG;IAAA,wHAA8L;IAClM;IAAA,4DAAK;;;;IAFK,0DAAgG;IAAhG,4KAAgG;IACpC,0DAA0E;IAA1E,iJAA0E;;;IAIhJ,yEAA+G;IAAA,0EAAc;IAAA,4DAAK;;;IAA9H,gGAA8B;;;IAI1B,+EAAkG;IAAA,gEAAK;IAAA,4DAAW;;;IAArD,4GAAoC;;;IAHzG,yEACI;IAAA;IAAA,0EACI;IAAA;IAAA,uEAAM;IAAA,uDAA4B;IAAA,4DAAO;IACzC;IAAA,sIAAkG;IACtG;IAAA,4DAAM;IACV;IAAA,4DAAK;;;;IALD,gGAA8B;IAEpB,0DAA4B;IAA5B,6FAA4B;IACxB,0DAAkD;IAAlD,kHAAkD;;;IAKpE,yEAEI;IAAA,8FAAK;IAAA,4DAAK;;;;IAEV,+EAC8D;IAAtC,8bAAqC;IAAC,qEAAU;IAAA,4DAAW;;;;IACnF,+EAC8B;IADsJ,+bAAsC;IAC5L,qEAAU;IAAA,4DAAW;;;;IACnD,+EACC;IADuH,8bAAqC;IAC5J,qEAAU;IAAA,4DAAW;;;;IACtB,+EACC;IADsH,6bAAoC;IAC1J,qEAAU;IAAA,4DAAW;;;;IACtB,+EACC;IAD+N,6bAAmC;IAClQ,qEAAU;IAAA,4DAAW;;;IAV1B,yEACI;IAAA;IAAA,sIAC8D;IAC9D;IAAA,sIAC8B;IAC9B;IAAA,sIACC;IACD;IAAA,sIACC;IACD;IAAA,wIACC;IACL;IAAA,4DAAK;;;;IAVS,0DAAyH;IAAzH,mMAAyH;IAEzH,0DAAiJ;IAAjJ,6NAAiJ;IAEjJ,0DAAqF;IAArF,6JAAqF;IAErF,0DAAoF;IAApF,4JAAoF;IAEpF,0DAA6L;IAA7L,4QAA6L;;;IAM3M,yEAEI;IAAA,gGAAO;IAAA,4DAAK;;;;IAGZ,6EAEI;IADgC,0bAAqC;IACrE,iIACJ;IAAA,4DAAS;;;;IACT,6EAEI;IADgC,0bAAqC;IACrE,iIACJ;IAAA,4DAAS;;IAHD,0EAAiB;;;;IAIzB,6EAEI;IADgC,wbAAmC;IACnE,4IACJ;IAAA,4DAAS;;;;IACT,6EAEI;IADgB,0bAAqC;IACrD,6IACJ;IAAA,4DAAS;;;;IAET,6EAII;IADgB,0bAAoC;IACpD,yIACJ;IAAA,4DAAS;;;;IACT,+EAEI;IADqC,2bAAmC,SAAS,EAAE,iBAAiB,KAAE;IACtG,kGAAK;IAAA,4DAAW;;;;IACpB,+EACwG;IAAjE,2bAAmC,QAAQ,EAAE,iBAAiB,KAAE;IAAC,8FACxG;IAAA,4DAAW;;;IACX,+EAE4B;IAAA,gEAAK;IAAA,4DAAW;;;IADxC,kGAAqC;;;;IAEzC,6EAEI;IADgC,wbAAkC;IAClE,yIACJ;IAAA,4DAAS;;;;IACT,6EAEI;IADgC,qbAA+B;IAC/D,wIACJ;IAAA,4DAAS;;;;IACT,+EAEI;IADH,icAAsC;IACnC,gIACJ;IAAA,4DAAW;;;;IACX,+EAEI;IADA,mcAAsC;IACtC,+HACJ;IAAA,4DAAW;;;IAjDf,yEAEI;IAAA;IAAA,kIAEI;IAEJ;IAAA,kIAEI;IAEJ;IAAA,kIAEI;IAEJ;IAAA,kIAEI;IAGJ;IAAA,oIAII;IAEJ;IAAA,wIAEI;IACJ;IAAA,wIACwG;IAExG;IAAA,wIAE4B;IAC5B;IAAA,oIAEI;IAEJ;IAAA,oIAEI;IAEJ;IAAA,wIAEI;IAEJ;IAAA,wIAEI;IAER;IAAA,4DAAK;;;;IAhDO,0DAAyF;IAAzF,6JAAyF;IAIvE,0DAAwF;IAAxF,4JAAwF;IAI1G,0DAA6I;IAA7I,yNAA6I;IAI7I,0DAA8F;IAA9F,sKAA8F;IAMlG,0DAAmG;IAAnG,2KAAmG;IAKjE,0DAAwE;IAAxE,gJAAwE;IAGzE,0DAAwE;IAAxE,gJAAwE;IAGnG,0DAAwE;IAAxE,gJAAwE;IAG1E,0DAAmH;IAAnH,iMAAmH;IAInH,0DAAuE;IAAvE,+IAAuE;IAIA,0DAAyE;IAAzE,gJAAyE;IAIhG,0DAAgM;IAAhM,gSAAgM;;;IAShQ,oEAAuE;;;IACvE,oEAA4E;;;IAC5E,yEACI;IAAA;IAAA,yEAAiC;IAAA,qEAAU;IAAA,4DAAK;IACpD;IAAA,4DAAK;;;ADtGlB,MAAM,yBAAyB;IAgCpC,YACU,KAAa,EACb,SAAsB,EACvB,UAAsB,EACrB,mBAAwC,EACxC,kBAAqC,EACrC,8BAA6D,EAC7D,iBAAmC,EACpC,MAAiB,EAChB,OAA0B;QAR1B,UAAK,GAAL,KAAK,CAAQ;QACb,cAAS,GAAT,SAAS,CAAa;QACvB,eAAU,GAAV,UAAU,CAAY;QACrB,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,uBAAkB,GAAlB,kBAAkB,CAAmB;QACrC,mCAA8B,GAA9B,8BAA8B,CAA+B;QAC7D,sBAAiB,GAAjB,iBAAiB,CAAkB;QACpC,WAAM,GAAN,MAAM,CAAW;QAChB,YAAO,GAAP,OAAO,CAAmB;QApCpC,kBAAa,GACX;YACE,iBAAiB,EAAE,aAAa;YAC/B,GAAG,EAAE,6BAA6B;YAClC,GAAG,EAAE,cAAc;YACpB,eAAe,EAAE,aAAa;YAC9B,iBAAiB,EAAE,aAAa;YAChC,YAAY,EAAE,aAAa;YAC3B,0BAA0B,EAAE,aAAa;YACzC,0CAA0C,EAAE,aAAa;YACzD,WAAW,EAAE,oBAAoB;YACjC,4BAA4B;SAC7B,CAAC;QAOJ,gCAA2B,GAAG,CAAC,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC1I,aAAQ,GAAG,KAAK,CAAC;QACjB,cAAS,GAAG,KAAK,CAAC;QAElB,WAAM,GAAQ,mCAAM,CAAC;QAenB,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,EAAE;YAC9D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,GAAG,mCAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC7D,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CACxB,cAAc,CAAC,+BAA+B,CAC/C,CAAC,QAAQ,CAAC;QACX,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CACrB,cAAc,CAAC,+BAA+B,CAC/C,CAAC,UAAU,CAAC;QACb,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnD,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAED,WAAW,CAAC,KAAY;QACtB,IAAI,KAAK,EAAE;YACT,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC7D,IAAI,CAAC,uBAAuB,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SACxE;aAAM;YACL,IAAI,CAAC,uBAAuB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC1E,IAAI,CAAC,uBAAuB,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC;YAC5D,IAAI,CAAC,uBAAuB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SAC/C;IACH,CAAC;IAGD,oBAAoB;QAClB,IAAI,CAAC,8BAA8B,CAAC,yBAAyB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,GAAU,EAAE,EAAE;YAClI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACZ,CAAC,CAAC,QAAQ,GAAG,mCAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBACrD,IAAI,CAAC,CAAC,gBAAgB,KAAK,iBAAiB,EAAE;oBAC5C,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,QAAa,EAAE,EAAE;wBACpF,CAAC,CAAC,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC;oBAC7C,CAAC,CAAC,CAAC;iBACJ;gBACD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACtB,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;YACzB,IAAI,CAAC,uBAAuB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC1E,IAAI,CAAC,uBAAuB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YAC9C,IAAI,CAAC,uBAAuB,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC;QAC9D,CAAC,CAAC,CAAC;IAEL,CAAC;IACD,iBAAiB,CAAC,YAAiB,EAAE,UAAkB,EAAE,OAAe;QACtE,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oIAAqB,EAAE;YACxD,MAAM,EAAE,OAAO;YACf,KAAK,EAAE,OAAO;YACd,YAAY,EAAE,IAAI;YAClB,IAAI,EAAE,EAAE,KAAK,EAAE,UAAU,EAAC;SAC3B,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;YAC7B,IAAI,IAAI,CAAC,cAAc,EAAE;gBAGvB,MAAM,UAAU,GAAG;oBACjB,UAAU,EAAE,YAAY,CAAC,UAAU;oBACnC,UAAU;oBACV,OAAO;oBACP,YAAY,EAAE,MAAM,CAAC,YAAY;iBAClC,CAAC;gBACF,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACpB,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;oBACxE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;oBACpB,IAAI,GAAG,EAAE;wBACP,IAAI,UAAU,CAAC,UAAU,KAAK,SAAS,EAAE;4BACvC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;gCACxD,QAAQ,EAAE,IAAI;gCACd,kBAAkB,EAAE,OAAO;gCAC3B,gBAAgB,EAAE,KAAK;6BACxB,CAAC,CAAC;yBACJ;6BACI,IAAI,UAAU,CAAC,UAAU,KAAK,QAAQ,EAAE;4BAC3C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;gCACxD,QAAQ,EAAE,IAAI;gCACd,kBAAkB,EAAE,OAAO;gCAC3B,gBAAgB,EAAE,KAAK;6BACxB,CAAC,CAAC;yBAEJ;wBACD,IAAI,CAAC,oBAAoB,EAAE,CAAC;qBAC7B;gBACH,CAAC,CAAC,CAAC;aAEJ;QACH,CAAC,CAAC,CAAC;QACH,+BAA+B;QAC/B,+GAA+G;QAC/G,OAAO;QACP,8GAA8G;IAChH,CAAC;IACD,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU;QACnD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4FAAqB,EAAE;YACxD,KAAK,EAAE,OAAO;YACd,YAAY,EAAE,IAAI;YAClB,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE;SAC7C,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;YAC7B,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,EAAE;gBAChC,MAAM,UAAU,GAAG;oBACjB,UAAU,EAAE,YAAY,CAAC,UAAU;oBACnC,UAAU;iBACX,CAAC;gBACF,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACpB,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;oBACxE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;oBACpB,IAAI,GAAG,EAAE;wBACP,IAAI,UAAU,CAAC,UAAU,KAAK,SAAS,EAAE;4BACvC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;gCACxD,QAAQ,EAAE,IAAI;gCACd,kBAAkB,EAAE,OAAO;gCAC3B,gBAAgB,EAAE,KAAK;6BACxB,CAAC,CAAC;yBACJ;6BACI,IAAI,UAAU,CAAC,UAAU,KAAK,QAAQ,EAAE;4BAC3C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;gCACxD,QAAQ,EAAE,IAAI;gCACd,kBAAkB,EAAE,OAAO;gCAC3B,gBAAgB,EAAE,KAAK;6BACxB,CAAC,CAAC;yBAEJ;wBACD,IAAI,CAAC,oBAAoB,EAAE,CAAC;qBAC7B;gBACH,CAAC,CAAC,CAAC;aAEJ;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,mBAAmB,CAAC,YAAiB;QACnC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,4BAA4B,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC;IAEhF,CAAC;IACD,WAAW;QACT,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC;IAE/D,CAAC;IAED,gBAAgB,CAAC,YAAiB;QAChC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,sBAAsB,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED,eAAe,CAAC,YAAiB;QAC/B,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,+BAA+B,GAAG,YAAY,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;IAExH,CAAC;IACD,iBAAiB,CAAC,YAAiB;QACjC,2EAA2E;QAE3E,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,8BAA8B,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC;IAClF,CAAC;IAED,MAAM,CAAC,YAAiB;QACtB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,+BAA+B,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC;IAEnF,CAAC;IAED,kBAAkB,CAAC,YAAiB;QAClC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAClB,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE;aAC9F,IAAI,CAAC,GAAG,EAAE;YACT,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,wBAAwB,EAAE,GAAG,EAAE;gBACjD,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,CAAC,eAAe,CAAC;gBAC7B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACH,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC9B,CAAC,CAAC,CAAC,KAAK,CACV,KAAK,CAAC,EAAE;YACN,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAChB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,8BAA8B,EAAE,GAAG,EAAE;gBACvD,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,CAAC,aAAa,CAAC;gBAC3B,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACP,IAAI;IACN,CAAC;IACD,kBAAkB,CAAC,YAAY;QAC7B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,8BAA8B,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC;IAClF,CAAC;IACD,kBAAkB,CAAC,UAAkB;QACnC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gHAA2B,EAAE;YAC9D,KAAK,EAAE,OAAO;YACd,sBAAsB;YACtB,IAAI,EAAE,EAAE,KAAK,EAAE,UAAU,EAAC;SAC3B,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;QAC/B,CAAC,CAAC;IACJ,CAAC;IACD,YAAY,CAAC,OAAO;QAClB,IAAI,CAAC,kBAAkB,CAAC,0BAA0B,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YACrF,IAAG,GAAG,CAAC,cAAc,CAAC,KAAK,IAAI,EAAC;gBAC9B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,4BAA4B,EAAE,GAAG,EAAE;oBACrD,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,eAAe,CAAC;oBAC7B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;iBACG;gBACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;oBACxD,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,aAAa,CAAC;oBAC3B,kBAAkB,EAAE,OAAO;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;QACH,CAAC,CAAC;IAEJ,CAAC;;kGAxQU,yBAAyB;yGAAzB,yBAAyB;;wEAoBzB,8DAAO;;;;;;QC7CpB;QAAA,yEACI;QAAA;QAAA,8EACI;QAAA;QAAA,kFACI;QAAA;QAAA,iFAAgB;QAAA,iFAAsB;QAAA,4DAAiB;QAC3D;QAAA,4DAAkB;QAClB;QAAA,oFACI;QAAA;QAAA,0EACI;QAAA;QAAA,4EACI;QAAA;QAAA,4EACI;QAAA;QAAA,qHAAgF;QAChF;QAAA,qHAAuC;QAC3C;QAAA,qEAAe;QAEf;QAAA,4EACI;QAAA;QAAA,qHAAgF;QAEhF;QAAA,qHAAuC;QAC3C;QAAA,qEAAe;QAEf;QAAA,4EACI;QAAA;QAAA,qHAAgF;QAEhF;QAAA,qHAAuC;QAC3C;QAAA,qEAAe;QAEf;QAAA,4EACI;QAAA;QAAA,qHAAgF;QAChF;QAAA,qHAAuC;QAC3C;QAAA,qEAAe;QAEf;QAAA,6EACI;QAAA;QAAA,qHAAgF;QAChF;QAAA,qHACI;QAGR;QAAA,qEAAe;QACf;QAAA,6EACI;QAAA;QAAA,sHAA+G;QAC/G;QAAA,uHACI;QAKR;QAAA,qEAAe;QACf;QAAA,6EACI;QAAA;QAAA,qHAEI;QACJ;QAAA,sHACI;QAWR;QAAA,qEAAe;QAEf;QAAA,6EACI;QAAA;QAAA,qHAEI;QACJ;QAAA,uHAEI;QAmDR;QAAA,qEAAe;QAEf;QAAA,sHAAkE;QAClE;QAAA,sHAAuE;QACvE;QAAA,sHACI;QAER;QAAA,4DAAQ;QACZ;QAAA,4DAAM;QACN;QAAA,2EACI;QAAA;QAAA,yFACA;QAAA;QAAA,4DAAgB;QACpB;QAAA,4DAAM;QACV;QAAA,4DAAmB;QACvB;QAAA,4DAAW;QACf;QAAA,4DAAM;QACN;;QAlIiC,2DAAsC;QAAtC,mGAAsC;QAoHhC,2DAA8C;QAA9C,4GAA8C;QACrD,0DAA0D;QAA1D,6GAA0D;QAO5C,0DAAgC;QAAhC,kJAAgC;;6FD1GjE,yBAAyB;cALrC,uDAAS;eAAC;gBACT,QAAQ,EAAE,uBAAuB;gBACjC,WAAW,EAAE,oCAAoC;gBACjD,SAAS,EAAE,CAAC,oCAAoC,CAAC;aAClD;+1BAoBgD,aAAa;kBAA3D,uDAAS;mBAAC,eAAe,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;YACP,IAAI;kBAAzC,uDAAS;mBAAC,8DAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;;;;;;;AE9CtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0D;AACC;;;;;;;;ICEnD,wEAAsF;IAAA,qEAAU;IAAA,4DAAI;;;;IAUhG,wEACI;IAAA;IAAA,yEACI;IAAA;IAAA,yEAAsB;IAAA,uDAAuB;IAAA,4DAAK;IAClD;IAAA,yEACI;IAAA,uDAA2B;IAAA,4DAAK;IACxC;IAAA,4DAAK;IACT;IAAA,4DAAQ;;;;IAJsB,0DAAuB;IAAvB,wFAAuB;IACzC,0DAAgE;IAAhE,wLAAgE;IAChE,0DAA2B;IAA3B,+HAA2B;;;IAb3C,4EACI;IAAA;IAAA,yEACI;IAAA;IAAA,qEACI;IAAA;IAAA,2EAAmB;IAAA,qEAAU;IAAA,4DAAO;IACxC;IAAA,4DAAK;IACL;IAAA,sEACI;IAAA;IAAA,4EAAmB;IAAA,kEAAM;IAAA,4DAAO;IACpC;IAAA,4DAAK;IACT;IAAA,4DAAK;IACL;IAAA,6IACI;IAMR;IAAA,4DAAQ;;;IAPG,2DAAyD;IAAzD,gHAAyD;;;IAQpE,yEACI;IAAA;IAAA,uEAAyB;IAAA,uEAAY;IAAA,4DAAI;IACzC;IAAA,2EAAiC;IAAA,0EAAe;IAAA,4DAAO;IAC3D;IAAA,4DAAM;;;IAGF,2EAAoG;IAAA,2FACzF;IAAA,4DAAO;;;IAClB,2EAC0G;IAAA,uDAAqD;IAAA,4DAAO;;;IAA5D,0DAAqD;IAArD,yHAAqD;;;IAI/J,2EAC8E;IAAA,0EAAe;IAAA,4DAAO;;;IACpG,2EACwH;IAAA,uDAA4D;IAAA,4DAAO;;;IAAnE,0DAA4D;IAA5D,gIAA4D;;;IAnC5L,sEACI;IAAA;IAAA,yHAAsF;IACtF;IAAA,kIACI;IAgBJ;IAAA,6HACI;IAGJ;IAAA,yEACI;IAAA;IAAA,wEAAyB;IAAA,qEAAS;IAAA,4DAAI;IACtC;IAAA,kIAAoG;IAEpG;IAAA,kIAC0G;IAC9G;IAAA,4DAAM;IACN;IAAA,2EACI;IAAA;IAAA,wEAAyB;IAAA,4EAAgB;IAAA,4DAAI;IAC7C;IAAA,kIAC8E;IAC9E;IAAA,kIACwH;IAC5H;IAAA,4DAAM;IAEV;IAAA,4DAAM;;;IArCC,0DAAqE;IAArE,6IAAqE;IACjE,0DAAqE;IAArE,6IAAqE;IAiBvE,0DAAsE;IAAtE,8IAAsE;IAMtC,0DAAkE;IAAlE,0IAAkE;IAG/F,0DAAqG;IAArG,oLAAqG;IAKrG,0DAAyE;IAAzE,iJAAyE;IAEzE,0DAAmH;IAAnH,kMAAmH;;;IAI/H,sEACI;IAAA;IAAA,uEAAM;IAAA,uDAAwD;IAAA,4DAAO;IACzE;IAAA,4DAAM;;;IADI,0DAAwD;IAAxD,gIAAwD;;ADjC/D,MAAM,2BAA2B;IAKtC,YAAoB,WAA+B,EACjB,IAAS;QADvB,gBAAW,GAAX,WAAW,CAAoB;QACjB,SAAI,GAAJ,IAAI,CAAK;IAAI,CAAC;IAEhD,QAAQ;QACN,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CACrB,cAAc,CAAC,+BAA+B,CAC/C,CAAC,UAAU,CAAC;QACb,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,KAAK,CACnC,cAAc,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAC9C;QACD,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,WAAW,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YACxE,IAAI,CAAC,aAAa,GAAE,GAAG;YACvB,IAAG,IAAI,CAAC,aAAa,CAAC,yBAAyB,CAAC,KAAK,uBAAuB,EAAC;gBAC3E,IAAG,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,EAAC;oBAC3C,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAC,CAAC,EAAE,EAAE;wBAC3D,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;4BACnC,IAAG,CAAC,CAAC,YAAY,KAAK,IAAI,CAAC,YAAY;gCACvC,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,cAAc;wBACnF,CAAC,CAAC;oBACJ,CAAC,CAAC;iBACH;aACF;QACH,CAAC,CAAC;IACJ,CAAC;IAED,QAAQ,CAAC,MAAM;QACb,IAAG,MAAM,KAAK,8BAA8B,EAAC;YAC3C,OAAO,QAAQ;SAChB;aACI,IAAG,MAAM,KAAK,6BAA6B,EAAC;YAC/C,OAAO,OAAO;SACf;aACG;YACF,OAAO,OAAO;SACf;IACH,CAAC;;sGA5CU,2BAA2B,oPAM5B,wEAAe;2GANd,2BAA2B;QCTxC,wEAAqB;QAAA,iEAAM;QAAA,4DAAK;QAChC;QAAA,wFACI;QAAA;QAAA,wHACI;QAsCJ;QAAA,uHACI;QAGR;QAAA,4DAAqB;QACrB;QAAA,yFACI;QAAA;QAAA,6EAAkE;QAAA,iEAAK;QAAA,4DAAS;QACpF;QAAA,4DAAqB;;QA9CZ,0DAA6F;QAA7F,+JAA6F;QAuC7F,0DAA4F;QAA5F,8JAA4F;QAMzD,0DAAyB;QAAzB,kFAAyB;;6FDtCxD,2BAA2B;cALvC,uDAAS;eAAC;gBACT,QAAQ,EAAE,0BAA0B;gBACpC,WAAW,EAAE,uCAAuC;gBACpD,SAAS,EAAE,CAAC,uCAAuC,CAAC;aACrD;;sBAOI,oDAAM;uBAAC,wEAAe;;;;;;;;;;;;;;AEb3B;AAAA;AAAA,IAAI,cAAwB,CAAC;AACtB,MAAM,WAAW,GAAG,CAAC,QAAmB,EAAY,EAAE;IACzD,IAAI,QAAQ,EAAE;QACV,cAAc,GAAG,QAAQ,CAAC;KAC7B;IAED,OAAO,cAAc,CAAC;AAC1B,CAAC,CAAC;;;;;;;;;;;;;ACTF;AAAA;AAAA;AAAA;AAAO,MAAM,MAAM;CAiBlB;AAEM,MAAM,mBAAmB;CAgB/B;AAEM,MAAM,oBAAoB;CAShC;;;;;;;;;;;;;AC9CD;AAAA;AAAA;AAAO,MAAM,UAAU;CAUpB;AAGM,MAAM,UAAU;CAGxB;;;;;;;;;;;;;ACfD;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AACgB;AACD;;;AAKnD,MAAM,6BAA6B;IAMxC,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAJ1C,eAAU,GAAG,uDAAe,CAAC,WAAW,CAAC;QACzC,mBAAc,GAAG,uDAAe,CAAC,gCAAgC;QAI/D,IAAI,CAAC,qBAAqB,GAAG,wEAAW,CAAC,oBAAoB,CAAC;IAC/D,CAAC;IAED,yBAAyB,CAAC,QAAgB,EAAE,KAAa,EAAE,SAAiB;QAC3E,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAC7B,cAAc,CAAC,UAAU,CAC1B,CAAC,YAAY,CAAC;QACf,MAAM,IAAI,GAAG,IAAI,CAAC,qBAAqB,GAAE,IAAI,CAAC,UAAU,CAAC,yBAAyB,GAAG,QAAQ,GAAG,GAAG,GAAG,KAAK,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,YAAY,CAAC;QACnJ,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAQ,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,4BAA4B,CAAC,QAAQ,EAAC,MAAM;QACzC,MAAM,MAAM,GAAG,EAAC,UAAU,EAAC,QAAQ,EAAC,QAAQ,EAAC,MAAM,EAAC,CAAC;QACrD,MAAM,IAAI,GAAG,IAAI,CAAC,qBAAqB,GAAE,IAAI,CAAC,cAAc,CAAC,4BAA4B;QACzF,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAQ,IAAI,EAAC,MAAM,CAAC,CAAC;IACnD,CAAC;IACD,MAAM,CAAC,MAAM;QACZ,MAAM,IAAI,GAAG,IAAI,CAAC,qBAAqB,GAAE,IAAI,CAAC,cAAc,CAAC,MAAM;QACnE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAQ,IAAI,EAAC,MAAM,CAAC,CAAC;IACnD,CAAC;;0GA1BW,6BAA6B;gHAA7B,6BAA6B,WAA7B,6BAA6B,mBAF5B,MAAM;6FAEP,6BAA6B;cAHzC,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACPD;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AAEgB;AACQ;;;AAEnE,uDAAuD;AAKhD,MAAM,gBAAgB;IAS3B,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QACxC,IAAI,SAAS,GAAQ,IAAI,CAAC,KAAK,CAC7B,cAAc,CAAC,iCAAiC,CAAC,CAClD,CAAC;QACF,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,qEAAW,CAAC,SAAS,CAAC;QACxC,IAAI,CAAC,kBAAkB,GAAG,qEAAW,CAAC,oBAAoB,CAAC;QAC3D,IAAI,CAAC,UAAU,GAAG,uDAAe,CAAC,SAAS,CAAC;IAC9C,CAAC;IAED,6BAA6B;QAC3B,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;QAC3B,QAAQ,IAAI,CAAC,SAAS,EAAE;YACtB,KAAK,KAAK,CAAC,CAAC;gBACV,IAAI,IAAI,+DAA+D,CAAC;gBACxE,MAAM;aACP;YACD,KAAK,IAAI,CAAC,CAAC;gBACT,IAAI,IAAI,+DAA+D,CAAC;gBACxE,MAAM;aACP;YACD,KAAK,QAAQ,CAAC,CAAC;gBACb,IAAI,IAAI,wCAAwC,CAAC;gBACjD,MAAM;aACP;YACD,KAAK,aAAa,CAAC,CAAC;gBAClB,IAAI,IAAI,+CAA+C,CAAC;gBACxD,MAAM;aACP;YACD,KAAK,WAAW,CAAC,CAAC;gBAChB,IAAI,IAAI,6CAA6C,CAAC;gBACtD,MAAM;aACP;YACD,KAAK,KAAK,CAAC,CAAC;gBACV,IAAI;oBACF,kEAAkE,CAAC;gBACrE,MAAM;aACP;YACD,KAAK,aAAa,CAAC,CAAC;gBAClB,IAAI,IAAI,6CAA6C,CAAC;gBACtD,MAAM;aACP;YACD,KAAK,iBAAiB,CAAC,CAAC;gBACtB,IAAI,IAAI,+CAA+C,CAAC;gBACxD,MAAM;aACP;YACD,OAAO,CAAC,CAAC;gBACP,IAAI,IAAI,sCAAsC,GAAG,IAAI,CAAC,SAAS,CAAC;gBAChE,MAAM;aACP;SACF;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,gBAAgB;QACd,IAAI,IAAI,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC;QACxE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,eAAe;QACb,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,4BAA4B,CAAC;QAC1D,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAEM,mBAAmB,CAAC,UAAsB;QAC/C,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,gCAAgC,CAAC;QAC9D,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAChD,CAAC;IAED,8BAA8B;QAC5B,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,4CAA4C,CAAC;QAC1E,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,uBAAuB;QACrB,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,6CAA6C,CAAC;QAE3E,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,kBAAkB;QAChB,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,sCAAsC,CAAC;QACpE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IACD,qBAAqB;QACnB,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,2CAA2C,CAAC;QACzE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IACD,mBAAmB;QACjB,IAAI,IAAI,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC;QAAA,CAAC;QAE1E,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IACD,gBAAgB,CAAC,QAAgB;QAC/B,IAAI,IAAI,GACN,IAAI,CAAC,UAAU,GAAG,sCAAsC,GAAG,QAAQ,CAAC;QAEtE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IACD,cAAc,CAAC,OAAe,EAAE,MAAc;QAC5C,IAAI,IAAI,GACN,IAAI,CAAC,UAAU;YACf,wDAAwD;YACxD,OAAO;YACP,UAAU;YACV,MAAM,CAAC;QACT,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IACD,mBAAmB,CAAC,OAAe,EAAE,MAAc;QACjD,IAAI,IAAI,GACN,IAAI,CAAC,UAAU;YACf,6DAA6D;YAC7D,OAAO;YACP,UAAU;YACV,MAAM,CAAC;QACT,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IACD,iBAAiB,CAAC,OAAe,EAAE,MAAc;QAC/C,IAAI,IAAI,GACN,IAAI,CAAC,UAAU;YACf,2DAA2D;YAC3D,OAAO;YACP,UAAU;YACV,MAAM,CAAC;QACT,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IACD,WAAW,CAAC,EAAU;QACpB,IAAI,IAAI,GAAG,IAAI,CAAC,kBAAkB,GAAG,mCAAmC,GAAG,EAAE,CAAC;QAC9E,MAAM,WAAW,GAAG;YAClB,YAAY,EAAE,aAAuB;SACtC,CAAC;QACF,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAc,IAAI,EAAE,WAAW,CAAC,CAAC;IAC7D,CAAC;IAED,eAAe,CAAC,KAAa,EAAE,OAAe,EAAE,MAAc;QAC5D,IAAI,IAAI,GACN,IAAI,CAAC,kBAAkB,GAAG,uDAAe,CAAC,UAAU,CAAC,eAAe,CAAC;QACvE,IAAI,OAAO,GAAG;YACZ,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,MAAM;SAChB,CAAC;QACF,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAEM,uBAAuB,CAAC,KAAa;QAC1C,IAAI,GAAG,GAAG,IAAI,CAAC,kBAAkB,GAAG,oBAAoB,GAAG,KAAK,CAAC;QACjE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;;gFA9JU,gBAAgB;mGAAhB,gBAAgB,WAAhB,gBAAgB,mBAFf,MAAM;6FAEP,gBAAgB;cAH5B,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACTD;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AAEgB;AACQ;;;AAO5D,MAAM,mBAAmB;IAK9B,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QACxC,IAAI,CAAC,UAAU,GAAG,qEAAW,CAAC,SAAS,CAAC;QACxC,IAAI,CAAC,oBAAoB,GAAG,qEAAW,CAAC,gBAAgB,CAAC;QACzD,IAAI,CAAC,UAAU,GAAG,uDAAe,CAAC,YAAY,CAAC;QAC/C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAC3B,cAAc,CAAC,iCAAiC,CAAC,CAClD,CAAC,UAAU,CAAC;IACf,CAAC;IAED,eAAe,CAAC,QAAgB,EAAE,KAAa,EAAE,SAAiB;QAChE,MAAM,IAAI,GACR,IAAI,CAAC,oBAAoB;YACzB,IAAI,CAAC,UAAU,CAAC,cAAc;YAC9B,QAAQ;YACR,cAAc;YACd,KAAK;YACL,aAAa;YACb,SAAS,CAAC;QACZ,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAmB,IAAI,CAAC,CAAC;IACrD,CAAC;IAEM,eAAe;QACpB,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;QAC5D,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,mBAAmB,CAAC,SAAiB,EAAE,MAAc,EAAE,UAAkB;QACvE,IAAI,IAAI,GACN,IAAI,CAAC,oBAAoB;YACzB,IAAI,CAAC,UAAU,CAAC,mBAAmB;YACnC,SAAS;YACT,GAAG;YACH,MAAM;YACN,GAAG;YACH,UAAU,CAAC;QACb,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAEM,iCAAiC;QACtC,IAAI,GAAG,GACL,IAAI,CAAC,UAAU;YACf,IAAI,CAAC,UAAU,CAAC,iCAAiC;YACjD,IAAI,CAAC,WAAW,CAAC;QACnB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IACM,4BAA4B,CAAC,IAAY;QAC9C,IAAI,GAAG,GACL,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,4BAA4B,GAAG,IAAI,CAAC;QACxE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IACM,qBAAqB,CAAC,mBAA2B,EAAE,MAAc;QACtE,IAAI,GAAG,GACL,IAAI,CAAC,UAAU;YACf,IAAI,CAAC,UAAU,CAAC,qBAAqB;YACrC,mBAAmB;YACnB,UAAU;YACV,MAAM,CAAC;QACT,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IACM,eAAe,CACpB,iBAAuD;QAEvD,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC;QACtE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;IACvD,CAAC;IAEM,uBAAuB,CAC5B,wBAA8D;QAE9D,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC;QACrE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,wBAAwB,CAAC,CAAC;IAC9D,CAAC;;sFA5EU,mBAAmB;sGAAnB,mBAAmB,WAAnB,mBAAmB,mBAFlB,MAAM;6FAEP,mBAAmB;cAH/B,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACTD;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AAEgB;AACQ;;;AAM5D,MAAM,kBAAkB;IAK7B,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QACxC,IAAI,CAAC,UAAU,GAAG,qEAAW,CAAC,SAAS,CAAC;QACxC,IAAI,CAAC,UAAU,GAAG,uDAAe,CAAC,WAAW,CAAC;QAC9C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAC3B,cAAc,CAAC,iCAAiC,CAAC,CAClD,CAAC,UAAU,CAAC;IACf,CAAC;IACM,iCAAiC;QACtC,IAAI,GAAG,GACL,IAAI,CAAC,UAAU;YACf,IAAI,CAAC,UAAU,CAAC,iCAAiC;YACjD,IAAI,CAAC,WAAW,CAAC;QACnB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAEM,4BAA4B,CACjC,wBAA8D;QAE9D,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,4BAA4B,CAAC;QAC1E,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,wBAAwB,CAAC,CAAC;IAC9D,CAAC;IAEM,6BAA6B,CAClC,wBAA8D;QAE9D,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,6BAA6B,CAAC;QAE3E,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,wBAAwB,CAAC,CAAC;IAC9D,CAAC;;oFAjCU,kBAAkB;qGAAlB,kBAAkB,WAAlB,kBAAkB,mBAFjB,MAAM;6FAEP,kBAAkB;cAH9B,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACPD;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AACwB;AACR;;;AASpD,MAAM,aAAa;IAMxB,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAF1C,eAAU,GAAG,uDAAe,CAAC,cAAc;QAG3C,IAAI,CAAC,kBAAkB,GAAG,qEAAW,CAAC,iBAAiB,CAAC;QACxD,IAAI,CAAC,qBAAqB,GAAG,qEAAW,CAAC,oBAAoB,CAAC;IAE9D,CAAC;IAED,UAAU;QACR,IAAI,IAAI,GAAG,IAAI,CAAC,kBAAkB,GAAG,uDAAe,CAAC,QAAQ,CAAC,2BAA2B,CAAC;QAC1F,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAa,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,SAAS,CAAC,KAAK,EAAC,SAAS;QACvB,IAAI,IAAI,GAAG,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,GAAG,cAAc,GAAG,KAAK,GAAC,aAAa,GAAE,SAAS,CAAC;QACzH,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAS,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,sBAAsB,CAAC,KAAK;QAC1B,IAAI,IAAI,GAAG,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,GAAG,cAAc,GAAG,KAAK,CAAC;QACjG,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAwB,IAAI,CAAC,CAAC;IAC1D,CAAC;IAED,aAAa,CAAC,aAAa;QACzB,IAAI,IAAI,GAAG,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAC/D,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAC,aAAa,CAAC,CAAC;IAClD,CAAC;IAED,aAAa,CAAC,KAAK,EAAC,SAAS,EAAC,UAAU;QACtC,IAAI,IAAI,GAAG,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,GAAG,cAAc,GAAE,KAAK,GAAE,aAAa,GAAG,SAAS,GAAG,cAAc,GAAE,UAAU,CAAC;QACvJ,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;;0EAnCU,aAAa;gGAAb,aAAa,WAAb,aAAa,mBAFZ,MAAM;6FAEP,aAAa;cAHzB,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACXD;AAAA;AAAA;AAAA;AAA2C;AACQ;;AAG5C,MAAM,UAAU;IAIrB;QAHQ,gBAAW,GAA4B,IAAI,oDAAe,CAAS,IAAI,CAAC,CAAC;QAC1E,iBAAY,GAAuB,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;IAE1D,CAAC;IAEjB,cAAc,CAAC,WAAmB;QAChC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACrC,CAAC;;oEARU,UAAU;6FAAV,UAAU,WAAV,UAAU;6FAAV,UAAU;cADtB,wDAAU;;;;;;;;;;;;;;ACHX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAyC;AACc;AAEyB;AAC3B;AACoD;AACR;AACxB;AAC6D;;;AAEtI,MAAM,MAAM,GAAW;IACrB;QACE,IAAI,EAAE,EAAE;QACR,SAAS,EAAE,iEAAe;QAC1B,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,WAAW;gBACjB,SAAS,EAAE,4FAAkB;gBAC7B,IAAI,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE;aAC7B;YACD;gBACE,IAAI,EAAE,UAAU;gBAChB,SAAS,EAAE,wHAA0B;gBACrC,IAAI,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE;aACrC;YACD;gBACE,IAAI,EAAE,sBAAsB;gBAC5B,SAAS,EAAE,gHAAwB;gBACnC,IAAI,EAAE,EAAE,KAAK,EAAE,2BAA2B,EAAE;aAC7C;YACD,EAAE,IAAI,EAAE,mCAAmC,EAAC,SAAS,EAAE,qFAAe,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,sCAAsC,EAAE,EAAE;YACjI,EAAE,IAAI,EAAE,oCAAoC,EAAC,SAAS,EAAE,qFAAe,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,sCAAsC,EAAE,EAAE;YAClI,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAC,kJAAkC,EAAC;SACtE;KACF;CACF,CAAC;AAMK,MAAM,mBAAmB;;kGAAnB,mBAAmB;gKAAnB,mBAAmB,kBAHrB,CAAC,4DAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAC9B,4DAAY;mIAEX,mBAAmB,uFAFpB,4DAAY;6FAEX,mBAAmB;cAJ/B,sDAAQ;eAAC;gBACR,OAAO,EAAE,CAAC,4DAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACxC,OAAO,EAAE,CAAC,4DAAY,CAAC;aACxB;;;;;;;;;;;;;;ACxCD;AAAA;AAAA;AAAA;AAAA;AAA0C;;;;AAOhC,MAAO,eAAe;;8EAAf,eAAe;+FAAf,eAAe;QCPhC,2EAA+B;QAE/B;QAAA,iFAMI;QAAA;QAAA,uEAAmB;QAAA,sEAAW;QAAA,4DAAI;QACtC;QAAA,4DAAc;;QAJb,0DAAoB;QAApB,6EAAoB;;6FDEJ,eAAe;cAL/B,uDAAS;eAAC;gBACP,QAAQ,EAAE,YAAY;gBACtB,WAAW,EAAE,yBAAyB;aAErC;;;;;;;;;;;;;;AENL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAyC;AACM;AACmB;AACV;AACxD,8CAA8C;AACO;AACS;AACf;AAC+E;AACvB;AACvB;AAC8C;AACnC;AACA;AACiB;AACnB;AACqC;AAC9H,iHAAiH;AAClE;AAC6D;AACN;AACO;AAClB;AACA;AAClB;AAC2B;AAC0B;AACzC;AACkB;AACA;AAC+B;AACS;AAClC;AACA;AACE;AACpB;AACf;AACiB;AACqC;AAC5B;AACnC;;AAiC5D,MAAM,YAAY;;2FAAZ,YAAY;kJAAZ,YAAY,kBAhBd;YACP,4DAAY;YACZ,4DAAY;YACZ,0DAAW;YACX,kEAAmB;YACnB,qEAAgB;YAChB,cAAc;YACd,0EAAmB;YACnB,kHAAwB;YACxB,6DAAgB;YAChB,yGAAiC;YACjC,2FAA2B;YAC3B,+EAAgB;SACjB,EACS,qGAAsB;mIAErB,YAAY,mBA9BR,wGAAqB;QAClC,iEAAe,EAAE,0IAAgC;QACjD,4FAAkB,EAAC,2IAAgC;QACnD,wGAAqB,EAAE,yHAA0B;QACjD,2IAAgC,EAAE,wHAAwB;QAC1D,mHAAwB,EAAE,0HAA2B;QACrD,wGAAqB,EAAE,wGAAqB;QAC5C,sFAAe,EAAE,iHAAwB;QACzC,2IAAgC,EAAE,kGAAmB;QACrD,oHAAyB,EAAE,oHAAyB;QACpD,mJAAkC,EAAE,4JAAqC;QACzE,0HAA2B,EAAE,0HAA2B,EAAE,4HAA2B;QACrF,0GAAqB,EAAE,iJAAkC,EAAE,mHAAwB,aAGnF,4DAAY;QACZ,4DAAY;QACZ,0DAAW;QACX,kEAAmB;QACnB,qEAAgB;QAChB,cAAc;QACd,0EAAmB;QACnB,kHAAwB;QACxB,6DAAgB;QAChB,yGAAiC;QACjC,2FAA2B;QAC3B,+EAAgB,aAER,qGAAsB;6FAErB,YAAY;cA/BxB,sDAAQ;eAAC;gBACR,YAAY,EAAE,CAAC,wGAAqB;oBAClC,iEAAe,EAAE,0IAAgC;oBACjD,4FAAkB,EAAC,2IAAgC;oBACnD,wGAAqB,EAAE,yHAA0B;oBACjD,2IAAgC,EAAE,wHAAwB;oBAC1D,mHAAwB,EAAE,0HAA2B;oBACrD,wGAAqB,EAAE,wGAAqB;oBAC5C,sFAAe,EAAE,iHAAwB;oBACzC,2IAAgC,EAAE,kGAAmB;oBACrD,oHAAyB,EAAE,oHAAyB;oBACpD,mJAAkC,EAAE,4JAAqC;oBACzE,0HAA2B,EAAE,0HAA2B,EAAE,4HAA2B;oBACrF,0GAAqB,EAAE,iJAAkC,EAAE,mHAAwB,CAAC;gBAEtF,OAAO,EAAE;oBACP,4DAAY;oBACZ,4DAAY;oBACZ,0DAAW;oBACX,kEAAmB;oBACnB,qEAAgB;oBAChB,cAAc;oBACd,0EAAmB;oBACnB,kHAAwB;oBACxB,6DAAgB;oBAChB,yGAAiC;oBACjC,2FAA2B;oBAC3B,+EAAgB;iBACjB;gBACD,OAAO,EAAE,CAAC,qGAAsB,CAAC;aAClC;;;;;;;;;;;;;;ACxED;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAY,WAGX;AAHD,WAAY,WAAW;IACnB,+DAAiB;IACjB,yDAAc;AAClB,CAAC,EAHW,WAAW,KAAX,WAAW,QAGtB;AAED,IAAY,gBAMX;AAND,WAAY,gBAAgB;IACxB,2DAAU;IACV,+DAAY;IACZ,uEAAgB;IAChB,yDAAS;IACT,+DAAY;AAChB,CAAC,EANW,gBAAgB,KAAhB,gBAAgB,QAM3B;AAED,IAAY,aAQX;AARD,WAAY,aAAa;IACrB,mDAAS;IACT,iFAAwB;IACxB,+FAA+B;IAC/B,qFAA0B;IAC1B,mFAAyB;IACzB,yDAAY;IACZ,mDAAS;AACb,CAAC,EARW,aAAa,KAAb,aAAa,QAQxB;AACD,IAAY,cAOX;AAPD,WAAY,cAAc;IACtB,qDAAS;IACT,2GAAoC;IACpC,mFAAwB;IACxB,2DAAY;IACZ,2FAA4B;IAC5B,yGAAmC;AACvC,CAAC,EAPW,cAAc,KAAd,cAAc,QAOzB;AACD,IAAY,WAGX;AAHD,WAAY,WAAW;IACnB,0DAAe;IACf,4DAAgB;AACpB,CAAC,EAHW,WAAW,KAAX,WAAW,QAGtB;AAED,IAAY,cAEX;AAFD,WAAY,cAAc;IACtB,mEAAY;AAChB,CAAC,EAFW,cAAc,KAAd,cAAc,QAEzB;AAED,IAAY,KASX;AATD,WAAY,KAAK;IACb,+BAAG;IACH,+BAAG;IACH,qCAAM;IACN,+CAAW;IACX,qCAAM;IACN,iCAAI;IACJ,qDAAc;IACd,6BAAE;AACN,CAAC,EATW,KAAK,KAAL,KAAK,QAShB;AAED,IAAY,cAGX;AAHD,WAAY,cAAc;IACtB,2DAAY;IACZ,iEAAe;AACnB,CAAC,EAHW,cAAc,KAAd,cAAc,QAGzB;AAED,IAAY,WAEX;AAFD,WAAY,WAAW;IACnB,yDAAc;AAClB,CAAC,EAFW,WAAW,KAAX,WAAW,QAEtB;AACD,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC1B,6DAAS;IACT,uEAAc;IACd,+DAAU;IACV,2DAAQ;AACZ,CAAC,EALW,kBAAkB,KAAlB,kBAAkB,QAK7B;AACD,IAAY,cAOX;AAPD,WAAY,cAAc;IACtB,6EAAqB;IACrB,qEAAiB;IACjB,uDAAU;IACV,iDAAO;IACP,iDAAO;IACP,iDAAO;AACX,CAAC,EAPW,cAAc,KAAd,cAAc,QAOzB;AACD,IAAY,MAaX;AAbD,WAAY,MAAM;IACd,yCAAW;IACX,2CAAY;IACZ,qCAAS;IACT,qCAAS;IACT,iCAAO;IACP,mCAAQ;IACR,mCAAQ;IACR,uCAAU;IACV,6CAAa;IACb,0CAAY;IACZ,4CAAa;IACb,4CAAa;AACjB,CAAC,EAbW,MAAM,KAAN,MAAM,QAajB;AAED,IAAY,eAQX;AARD,WAAY,eAAe;IACvB,qFAAwB;IACxB,6DAAY;IACZ,qEAAgB;IAChB,+DAAa;IACb,6DAAY;IACZ,+DAAa;IACb,yEAAkB;AACtB,CAAC,EARW,eAAe,KAAf,eAAe,QAQ1B;;;;;;;;;;;;;AC/FD;AAAA;AAAA;AAAA;AAAA;AAA8E;;;AAMvE,MAAM,gCAAgC;IAQ3C,YAAoB,IAAgB,EAAU,SAAsB;QAAhD,SAAI,GAAJ,IAAI,CAAY;QAAU,cAAS,GAAT,SAAS,CAAa;QAPpE,mCAAmC;QAC3B,UAAK,GAAW,qCAAqC,CAAC;QAE9D,wFAAwF;QACxF,uBAAkB,GAAkC,OAAO,CAAC;QAC5D,qBAAgB,GAAgC,KAAK,CAAC;IAGtD,CAAC;IAED,4JAA4J;IAC5J,4JAA4J;IACzH,UAAU,CAAC,KAAU;QACtD,qBAAqB;QACrB,IAAI,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QAE3C,4EAA4E;QAC5E,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC3C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACpD,kEAAkE;YAClE,4JAA4J;YAE5J,IAAI;YACJ,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,6EAA6E,EAC7E,GAAG,EACH;gBACE,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CACF,CAAC;YACF,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;SAC7D;aAEI,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;YAC3B,IAAI,KAAK,CAAC,QAAQ,EAAE;gBAClB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE;oBACzH,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,6EAA6E,EAC7E,GAAG,EACH;wBACE,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CACF,CAAC;oBACF,KAAK,CAAC,cAAc,EAAE,CAAC;oBACvB,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;iBAC3B;aACF;SACF;IAEH,CAAC;;gHAvDU,gCAAgC;gHAAhC,gCAAgC;8JAAhC,sBAAkB;;6FAAlB,gCAAgC;cAH5C,uDAAS;eAAC;gBACT,QAAQ,EAAE,8BAA8B;aACzC;2LAcoC,UAAU;kBAA5C,0DAAY;mBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;;AAiD5B,MAAM,sCAAsC;;qHAAtC,sCAAsC;sMAAtC,sCAAsC;mIAAtC,sCAAsC,mBA9DtC,gCAAgC,aAAhC,gCAAgC;6FA8DhC,sCAAsC;cAJlD,sDAAQ;eAAC;gBACR,YAAY,EAAE,CAAC,gCAAgC,CAAC;gBAChD,OAAO,EAAE,CAAC,gCAAgC,CAAC;aAC5C;;;;;;;;;;;;;;ACnED;AAAA;AAAA;AAAA;AAAA;AAAuE;AACI;;AAapE,MAAM,qBAAqB;IAQhC;IACC,CAAC;IAEF,QAAQ,CAAC,OAAwB;QAC/B,IAAI,OAAO,CAAC,KAAK,EAAC;YAChB,MAAM,SAAS,GAAQ,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;YAC9F,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,KAAK,EAAE,IAAI,SAAS,KAAK,IAAI,CAAC,EAAG;gBAC9H,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;aAC/B;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;;0FAnBU,qBAAqB;qGAArB,qBAAqB,2SARrB;YACT;gBACE,OAAO,EAAE,4DAAa;gBACtB,WAAW,EAAE,gEAAU,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC;gBACpD,KAAK,EAAE,IAAI;aACZ;SACF;6FAEU,qBAAqB;cAXjC,uDAAS;eAAC;gBACT,QAAQ,EACN,8FAA8F;gBAChG,SAAS,EAAE;oBACT;wBACE,OAAO,EAAE,4DAAa;wBACtB,WAAW,EAAE,gEAAU,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC;wBACpD,KAAK,EAAE,IAAI;qBACZ;iBACF;aACF;sCAIU,UAAU;kBAAlB,mDAAK;YACG,UAAU;kBAAlB,mDAAK;;AAuBD,MAAM,2BAA2B;;0GAA3B,2BAA2B;gLAA3B,2BAA2B;mIAA3B,2BAA2B,mBA3B3B,qBAAqB,aAArB,qBAAqB;6FA2BrB,2BAA2B;cALvC,sDAAQ;eAAC;gBACR,YAAY,EAAE,CAAE,qBAAqB,CAAE;gBACvC,OAAO,EAAE,CAAE,qBAAqB,CAAE;aACnC;;;;;;;;;;;;;;ACrCD;AAAA;AAAA;AAAgG;AAEzF,MAAM,cAAc,GAAW;IACpC;QACE,IAAI,EAAE,YAAY;QAClB,YAAY,EAAE,GAAG,EAAE,CACjB,yKAAiD,CAAC,IAAI,CACpD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAC1B;KACJ;IACD;QACE,IAAI,EAAE,OAAO;QACb,YAAY,EAAE,GAAG,EAAE,CACjB,qJAAuC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;KACrE;IACD;QACE,IAAI,EAAE,kBAAkB;QAC1B,YAAY,EAAE,GAAG,EAAE,CAClB,2LAA0D,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC;KAAC;IAC3F;QACE,IAAI,EAAE,eAAe;QACrB,YAAY,EAAE,GAAG,EAAE,CACjB,qLAAuD,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC;KAC3F;IACD;QACE,IAAI,EAAE,SAAS;QACf,YAAY,EAAE,GAAG,EAAE,CACjB,yMAAiE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,sBAAsB,CAAC;KAC1G;IACD;QACE,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,GAAG,EAAE,CACjB,yJAAyC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;KACxE;IACD;QACE,IAAI,EAAE,KAAK;QACX,YAAY,EAAE,GAAG,EAAE,CACjB,6IAAmC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;KAC/D;IACD;QACE,IAAI,EAAE,SAAS;QACf,YAAY,EAAE,GAAG,EAAE,CACjB,6JAA2C,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC;KAC3E;IACC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,2GAAkB,EAAE;CACvD,CAAC;;;;;;;;;;;;;AC/CF;AAAA;AAAA;AAAA;AAAA;AAA8E;;;AAMvE,MAAM,kCAAkC;IAQ7C,YAAoB,IAAgB,EAAU,SAAsB;QAAhD,SAAI,GAAJ,IAAI,CAAY;QAAU,cAAS,GAAT,SAAS,CAAa;QAPpE,mCAAmC;QAC3B,UAAK,GAAW,qBAAqB,CAAC;QAE9C,wFAAwF;QACxF,uBAAkB,GAAkC,OAAO,CAAC;QAC5D,qBAAgB,GAAgC,KAAK,CAAC;IAGtD,CAAC;IAED,4JAA4J;IACzH,UAAU,CAAC,KAAU;QACtD,qBAAqB;QACrB,IAAI,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QAE3C,4EAA4E;QAC5E,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC3C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACpD,kEAAkE;YAClE,4JAA4J;YAE5J,IAAI;YACJ,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,6EAA6E,EAC7E,GAAG,EACH;gBACE,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CACF,CAAC;YACF,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;SAC7D;aAEI,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;YAC3B,IAAI,KAAK,CAAC,QAAQ,EAAE;gBAClB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE;oBACzH,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,6EAA6E,EAC7E,GAAG,EACH;wBACE,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,OAAO;wBAC3B,gBAAgB,EAAE,KAAK;qBACxB,CACF,CAAC;oBACF,KAAK,CAAC,cAAc,EAAE,CAAC;oBACvB,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;iBAC3B;aACF;SACF;IAEH,CAAC;;oHAtDU,kCAAkC;kHAAlC,kCAAkC;gKAAlC,sBAAkB;;6FAAlB,kCAAkC;cAH9C,uDAAS;eAAC;gBACT,QAAQ,EAAE,gCAAgC;aAC3C;2LAaoC,UAAU;kBAA5C,0DAAY;mBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;;AAmD5B,MAAM,wCAAwC;;uHAAxC,wCAAwC;0MAAxC,wCAAwC;mIAAxC,wCAAwC,mBA/DxC,kCAAkC,aAAlC,kCAAkC;6FA+DlC,wCAAwC;cALpD,sDAAQ;eAAC;gBACR,YAAY,EAAE,CAAC,kCAAkC,CAAC;gBAClD,OAAO,EAAE,CAAC,kCAAkC,CAAC;aAC9C;;;;;;;;;;;;;;ACnED;AAAA;AAAA;AAAA;AAAA;AAA8E;;;AAMvE,MAAM,oBAAoB;IAQ/B,YAAoB,IAAgB,EAAU,SAAsB;QAAhD,SAAI,GAAJ,IAAI,CAAY;QAAU,cAAS,GAAT,SAAS,CAAa;QAPpE,mCAAmC;QAC3B,UAAK,GAAW,mBAAmB,CAAC;QAE5C,wFAAwF;QACxF,uBAAkB,GAAkC,OAAO,CAAC;QAC5D,qBAAgB,GAAgC,KAAK,CAAC;IAGtD,CAAC;IAED,4JAA4J;IACtH,UAAU,CAAC,KAAU;QACzD,qBAAqB;QACrB,IAAI,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QAC3C,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QAE3C,4EAA4E;QAC5E,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YAC/B,kEAAkE;YAClE,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,8DAA8D,EAC9D,GAAG,EACH;gBACE,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CACF,CAAC;YACF,KAAK,CAAC,cAAc,EAAE,CAAC;SACxB;IAEH,CAAC;;wFAhCU,oBAAoB;oGAApB,oBAAoB;wJAApB,sBAAkB;;6FAAlB,oBAAoB;cAHhC,uDAAS;eAAC;gBACT,QAAQ,EAAE,kBAAkB;aAC7B;2LAauC,UAAU;kBAA/C,0DAAY;mBAAC,UAAU,EAAE,CAAC,QAAQ,CAAC;;AA4B/B,MAAM,0BAA0B;;yGAA1B,0BAA0B;8KAA1B,0BAA0B;mIAA1B,0BAA0B,mBAxC1B,oBAAoB,aAApB,oBAAoB;6FAwCpB,0BAA0B;cALtC,sDAAQ;eAAC;gBACR,YAAY,EAAE,CAAC,oBAAoB,CAAC;gBACpC,OAAO,EAAE,CAAC,oBAAoB,CAAC;aAChC;;;;;;;;;;;;;;AC5CD;AAAA;AAAA,gFAAgF;AAChF,0EAA0E;AAC1E,gEAAgE;AAEzD,MAAM,WAAW,GAAG;IACzB,UAAU,EAAE,IAAI;IAChB,4BAA4B,EAAC,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAClD,mBAAmB,EAAC,IAAI;IACxB,mBAAmB;IACnB,SAAS,EAAE,EAAE;IACb,oBAAoB,EAAG;QACrB,WAAW,EAAE,IAAI;QACjB,WAAW,EAAE,IAAI;KAClB;IAED,iBAAiB,EAAE,kDAAkD;IACrE,oBAAoB,EAAE,wDAAwD;IAC9E,gBAAgB,EAAE,sDAAsD;IACxE,eAAe,EAAE,iDAAiD;IAClE,kBAAkB,EAAE,oDAAoD;IAGtE,mBAAmB;IACnB,GAAG,EAAE,gDAAgD;IACrD,OAAO,EAAE,oDAAoD,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE;IACrF,SAAS,EAAG,sCAAsC;IAClD,SAAS,EAAG,kFAAkF;CACjG,CAAC;AAEF;;;;;;GAMG;AACH,mEAAmE;;;;;;;;;;;;;ACpCnE;AAAA;AAAA;AAAA;AAAA;AAA+C;AAIU;;;AAEzD,IAAI,qEAAW,CAAC,UAAU,EAAE;IAC1B,oEAAc,EAAE,CAAC;CAClB;AAED,2EAAwB,gBAAgB,CAAC,2DAAW,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC;KAC/E,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;;;;;;;;;;;;;ACXpC;AAAA;AAAA,uCAAuC;AACvC,YAAY;AACZ,cAAc;AACd,UAAU;AACV,aAAa;AAEN,MAAM,WAAW,GAAG;IACzB,oBAAoB,EAAE,SAAS;CAChC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;ACRF,e;;;;;;;;;;;ACAA,e;;;;;;;;;;;ACAA,e","file":"main-es2015.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./$$_lazy_route_resource lazy recursive\";","var map = {\n\t\"./af\": \"./node_modules/moment/locale/af.js\",\n\t\"./af.js\": \"./node_modules/moment/locale/af.js\",\n\t\"./ar\": \"./node_modules/moment/locale/ar.js\",\n\t\"./ar-dz\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-dz.js\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-kw\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-kw.js\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-ly\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ly.js\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ma\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-ma.js\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-sa\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-sa.js\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-tn\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar-tn.js\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar.js\": \"./node_modules/moment/locale/ar.js\",\n\t\"./az\": \"./node_modules/moment/locale/az.js\",\n\t\"./az.js\": \"./node_modules/moment/locale/az.js\",\n\t\"./be\": \"./node_modules/moment/locale/be.js\",\n\t\"./be.js\": \"./node_modules/moment/locale/be.js\",\n\t\"./bg\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bg.js\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bm\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bm.js\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bn\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bn-bd\": \"./node_modules/moment/locale/bn-bd.js\",\n\t\"./bn-bd.js\": \"./node_modules/moment/locale/bn-bd.js\",\n\t\"./bn.js\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bo\": \"./node_modules/moment/locale/bo.js\",\n\t\"./bo.js\": \"./node_modules/moment/locale/bo.js\",\n\t\"./br\": \"./node_modules/moment/locale/br.js\",\n\t\"./br.js\": \"./node_modules/moment/locale/br.js\",\n\t\"./bs\": \"./node_modules/moment/locale/bs.js\",\n\t\"./bs.js\": \"./node_modules/moment/locale/bs.js\",\n\t\"./ca\": \"./node_modules/moment/locale/ca.js\",\n\t\"./ca.js\": \"./node_modules/moment/locale/ca.js\",\n\t\"./cs\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cs.js\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cv\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cv.js\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cy\": \"./node_modules/moment/locale/cy.js\",\n\t\"./cy.js\": \"./node_modules/moment/locale/cy.js\",\n\t\"./da\": \"./node_modules/moment/locale/da.js\",\n\t\"./da.js\": \"./node_modules/moment/locale/da.js\",\n\t\"./de\": \"./node_modules/moment/locale/de.js\",\n\t\"./de-at\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-at.js\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-ch\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de-ch.js\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de.js\": \"./node_modules/moment/locale/de.js\",\n\t\"./dv\": \"./node_modules/moment/locale/dv.js\",\n\t\"./dv.js\": \"./node_modules/moment/locale/dv.js\",\n\t\"./el\": \"./node_modules/moment/locale/el.js\",\n\t\"./el.js\": \"./node_modules/moment/locale/el.js\",\n\t\"./en-au\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-au.js\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-ca\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-ca.js\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-gb\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-gb.js\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-ie\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-ie.js\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-il\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-il.js\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-in\": \"./node_modules/moment/locale/en-in.js\",\n\t\"./en-in.js\": \"./node_modules/moment/locale/en-in.js\",\n\t\"./en-nz\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-nz.js\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-sg\": \"./node_modules/moment/locale/en-sg.js\",\n\t\"./en-sg.js\": \"./node_modules/moment/locale/en-sg.js\",\n\t\"./eo\": \"./node_modules/moment/locale/eo.js\",\n\t\"./eo.js\": \"./node_modules/moment/locale/eo.js\",\n\t\"./es\": \"./node_modules/moment/locale/es.js\",\n\t\"./es-do\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-do.js\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-mx\": \"./node_modules/moment/locale/es-mx.js\",\n\t\"./es-mx.js\": \"./node_modules/moment/locale/es-mx.js\",\n\t\"./es-us\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es-us.js\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es.js\": \"./node_modules/moment/locale/es.js\",\n\t\"./et\": \"./node_modules/moment/locale/et.js\",\n\t\"./et.js\": \"./node_modules/moment/locale/et.js\",\n\t\"./eu\": \"./node_modules/moment/locale/eu.js\",\n\t\"./eu.js\": \"./node_modules/moment/locale/eu.js\",\n\t\"./fa\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fa.js\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fi\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fi.js\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fil\": \"./node_modules/moment/locale/fil.js\",\n\t\"./fil.js\": \"./node_modules/moment/locale/fil.js\",\n\t\"./fo\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fo.js\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fr\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fr-ca\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ca.js\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ch\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr-ch.js\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr.js\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fy\": \"./node_modules/moment/locale/fy.js\",\n\t\"./fy.js\": \"./node_modules/moment/locale/fy.js\",\n\t\"./ga\": \"./node_modules/moment/locale/ga.js\",\n\t\"./ga.js\": \"./node_modules/moment/locale/ga.js\",\n\t\"./gd\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gd.js\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gl\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gl.js\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gom-deva\": \"./node_modules/moment/locale/gom-deva.js\",\n\t\"./gom-deva.js\": \"./node_modules/moment/locale/gom-deva.js\",\n\t\"./gom-latn\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gom-latn.js\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gu\": \"./node_modules/moment/locale/gu.js\",\n\t\"./gu.js\": \"./node_modules/moment/locale/gu.js\",\n\t\"./he\": \"./node_modules/moment/locale/he.js\",\n\t\"./he.js\": \"./node_modules/moment/locale/he.js\",\n\t\"./hi\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hi.js\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hr\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hr.js\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hu\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hu.js\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hy-am\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./hy-am.js\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./id\": \"./node_modules/moment/locale/id.js\",\n\t\"./id.js\": \"./node_modules/moment/locale/id.js\",\n\t\"./is\": \"./node_modules/moment/locale/is.js\",\n\t\"./is.js\": \"./node_modules/moment/locale/is.js\",\n\t\"./it\": \"./node_modules/moment/locale/it.js\",\n\t\"./it-ch\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it-ch.js\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it.js\": \"./node_modules/moment/locale/it.js\",\n\t\"./ja\": \"./node_modules/moment/locale/ja.js\",\n\t\"./ja.js\": \"./node_modules/moment/locale/ja.js\",\n\t\"./jv\": \"./node_modules/moment/locale/jv.js\",\n\t\"./jv.js\": \"./node_modules/moment/locale/jv.js\",\n\t\"./ka\": \"./node_modules/moment/locale/ka.js\",\n\t\"./ka.js\": \"./node_modules/moment/locale/ka.js\",\n\t\"./kk\": \"./node_modules/moment/locale/kk.js\",\n\t\"./kk.js\": \"./node_modules/moment/locale/kk.js\",\n\t\"./km\": \"./node_modules/moment/locale/km.js\",\n\t\"./km.js\": \"./node_modules/moment/locale/km.js\",\n\t\"./kn\": \"./node_modules/moment/locale/kn.js\",\n\t\"./kn.js\": \"./node_modules/moment/locale/kn.js\",\n\t\"./ko\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ko.js\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ku\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ku.js\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ky\": \"./node_modules/moment/locale/ky.js\",\n\t\"./ky.js\": \"./node_modules/moment/locale/ky.js\",\n\t\"./lb\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lb.js\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lo\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lo.js\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lt\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lt.js\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lv\": \"./node_modules/moment/locale/lv.js\",\n\t\"./lv.js\": \"./node_modules/moment/locale/lv.js\",\n\t\"./me\": \"./node_modules/moment/locale/me.js\",\n\t\"./me.js\": \"./node_modules/moment/locale/me.js\",\n\t\"./mi\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mi.js\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mk\": \"./node_modules/moment/locale/mk.js\",\n\t\"./mk.js\": \"./node_modules/moment/locale/mk.js\",\n\t\"./ml\": \"./node_modules/moment/locale/ml.js\",\n\t\"./ml.js\": \"./node_modules/moment/locale/ml.js\",\n\t\"./mn\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mn.js\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mr\": \"./node_modules/moment/locale/mr.js\",\n\t\"./mr.js\": \"./node_modules/moment/locale/mr.js\",\n\t\"./ms\": \"./node_modules/moment/locale/ms.js\",\n\t\"./ms-my\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms-my.js\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms.js\": \"./node_modules/moment/locale/ms.js\",\n\t\"./mt\": \"./node_modules/moment/locale/mt.js\",\n\t\"./mt.js\": \"./node_modules/moment/locale/mt.js\",\n\t\"./my\": \"./node_modules/moment/locale/my.js\",\n\t\"./my.js\": \"./node_modules/moment/locale/my.js\",\n\t\"./nb\": \"./node_modules/moment/locale/nb.js\",\n\t\"./nb.js\": \"./node_modules/moment/locale/nb.js\",\n\t\"./ne\": \"./node_modules/moment/locale/ne.js\",\n\t\"./ne.js\": \"./node_modules/moment/locale/ne.js\",\n\t\"./nl\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nl-be\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl-be.js\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl.js\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nn\": \"./node_modules/moment/locale/nn.js\",\n\t\"./nn.js\": \"./node_modules/moment/locale/nn.js\",\n\t\"./oc-lnc\": \"./node_modules/moment/locale/oc-lnc.js\",\n\t\"./oc-lnc.js\": \"./node_modules/moment/locale/oc-lnc.js\",\n\t\"./pa-in\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pa-in.js\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pl\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pl.js\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pt\": \"./node_modules/moment/locale/pt.js\",\n\t\"./pt-br\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt-br.js\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt.js\": \"./node_modules/moment/locale/pt.js\",\n\t\"./ro\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ro.js\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ru\": \"./node_modules/moment/locale/ru.js\",\n\t\"./ru.js\": \"./node_modules/moment/locale/ru.js\",\n\t\"./sd\": \"./node_modules/moment/locale/sd.js\",\n\t\"./sd.js\": \"./node_modules/moment/locale/sd.js\",\n\t\"./se\": \"./node_modules/moment/locale/se.js\",\n\t\"./se.js\": \"./node_modules/moment/locale/se.js\",\n\t\"./si\": \"./node_modules/moment/locale/si.js\",\n\t\"./si.js\": \"./node_modules/moment/locale/si.js\",\n\t\"./sk\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sk.js\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sl\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sl.js\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sq\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sq.js\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sr\": \"./node_modules/moment/locale/sr.js\",\n\t\"./sr-cyrl\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr-cyrl.js\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr.js\": \"./node_modules/moment/locale/sr.js\",\n\t\"./ss\": \"./node_modules/moment/locale/ss.js\",\n\t\"./ss.js\": \"./node_modules/moment/locale/ss.js\",\n\t\"./sv\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sv.js\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sw\": \"./node_modules/moment/locale/sw.js\",\n\t\"./sw.js\": \"./node_modules/moment/locale/sw.js\",\n\t\"./ta\": \"./node_modules/moment/locale/ta.js\",\n\t\"./ta.js\": \"./node_modules/moment/locale/ta.js\",\n\t\"./te\": \"./node_modules/moment/locale/te.js\",\n\t\"./te.js\": \"./node_modules/moment/locale/te.js\",\n\t\"./tet\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tet.js\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tg\": \"./node_modules/moment/locale/tg.js\",\n\t\"./tg.js\": \"./node_modules/moment/locale/tg.js\",\n\t\"./th\": \"./node_modules/moment/locale/th.js\",\n\t\"./th.js\": \"./node_modules/moment/locale/th.js\",\n\t\"./tk\": \"./node_modules/moment/locale/tk.js\",\n\t\"./tk.js\": \"./node_modules/moment/locale/tk.js\",\n\t\"./tl-ph\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tl-ph.js\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tlh\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tlh.js\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tr\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tr.js\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tzl\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzl.js\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzm\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./tzm-latn\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm-latn.js\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm.js\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./ug-cn\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./ug-cn.js\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./uk\": \"./node_modules/moment/locale/uk.js\",\n\t\"./uk.js\": \"./node_modules/moment/locale/uk.js\",\n\t\"./ur\": \"./node_modules/moment/locale/ur.js\",\n\t\"./ur.js\": \"./node_modules/moment/locale/ur.js\",\n\t\"./uz\": \"./node_modules/moment/locale/uz.js\",\n\t\"./uz-latn\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz-latn.js\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz.js\": \"./node_modules/moment/locale/uz.js\",\n\t\"./vi\": \"./node_modules/moment/locale/vi.js\",\n\t\"./vi.js\": \"./node_modules/moment/locale/vi.js\",\n\t\"./x-pseudo\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./x-pseudo.js\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./yo\": \"./node_modules/moment/locale/yo.js\",\n\t\"./yo.js\": \"./node_modules/moment/locale/yo.js\",\n\t\"./zh-cn\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-cn.js\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-hk\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-hk.js\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-mo\": \"./node_modules/moment/locale/zh-mo.js\",\n\t\"./zh-mo.js\": \"./node_modules/moment/locale/zh-mo.js\",\n\t\"./zh-tw\": \"./node_modules/moment/locale/zh-tw.js\",\n\t\"./zh-tw.js\": \"./node_modules/moment/locale/zh-tw.js\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./node_modules/moment/locale sync recursive ^\\\\.\\\\/.*$\";","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { LoginComponent } from './modules/auth/components/login/login.component';\r\nimport { MasterLayoutComponent } from './modules/master-layout/components/master-layout/master-layout.component';\r\nimport { DEFAULT_ROUTES } from './routes/default-layout-routes';\r\nimport { Page404Component } from './modules/master-layout/components/page404/page404.component';\r\nimport { RolesComponent } from './modules/admin/components/roles/roles.component';\r\nimport { ChooseRoleComponent } from './modules/master-layout/components/choose-role/choose-role.component';\r\nimport { AuthCallbackComponent } from './modules/auth/components/auth-callback/auth-callback.component';\r\n\r\n\r\nconst routes: Routes = [\r\n { path: '', component: LoginComponent },\r\n { path: '', component: MasterLayoutComponent, children: DEFAULT_ROUTES },\r\n { path: 'roles', component: ChooseRoleComponent },\r\n { path: 'login', component: LoginComponent },\r\n \r\n {path: 'auth-callback', component: AuthCallbackComponent},\r\n { path: '', redirectTo: 'login', pathMatch:'full'},\r\n { path: '**', component: Page404Component },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class AppRoutingModule {}\r\n","import { Component, HostBinding, OnInit } from '@angular/core';\r\nimport { OverlayContainer } from '@angular/cdk/overlay';\r\nimport { ThemechangerService } from './core/services/themechanger.service';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\nimport { PageTitleService } from './core/services/page-title.service';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { NavService } from './modules/master-layout/services/nav.service';\r\nimport { filter } from 'rxjs/operators';\r\nimport { UrlService } from './modules/shared/services/url.service';\r\nimport { OidcSecurityService } from 'angular-auth-oidc-client';\r\nimport { Observable } from 'rxjs/internal/Observable';\r\nimport { AuthService } from 'src/app/core/services/auth.service';\r\nimport { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent } from '@angular/common/http';\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 implements OnInit {\r\n userData$: Observable;\r\n constructor(private authService: AuthService, private urlService: UrlService, public oidcSecurityService: OidcSecurityService, public navService: NavService, public router: Router, public overlayContainer: OverlayContainer, private themechangeservice: ThemechangerService, public pageTitleService: PageTitleService, titleService: Title) {\r\n this.themechangeservice.currentTheme.subscribe(theme => {\r\n this.onSetTheme(theme)\r\n })\r\n this.router.events.subscribe((ev) => {\r\n if (ev instanceof NavigationEnd) {\r\n let title = this.getTitle(router.routerState, router.routerState.root).join('-');\r\n titleService.setTitle(title);\r\n this.pageTitleService.changePageTitle(title);\r\n\r\n this.navService.changeSearchBoxData('');\r\n }\r\n });\r\n\r\n }\r\n\r\n previousUrl: string = null;\r\n currentUrl: string = null;\r\n ngOnInit() {\r\n this.router.events.pipe(\r\n filter((event) => event instanceof NavigationEnd)\r\n ).subscribe((event: NavigationEnd) => {\r\n this.previousUrl = this.currentUrl;\r\n this.currentUrl = event.url;\r\n this.urlService.setPreviousUrl(this.previousUrl);\r\n });\r\n }\r\n\r\n name = 'Angular 7';\r\n @HostBinding('class') componentCssClass;\r\n title = 'hrms';\r\n themeChanger: boolean = false;\r\n\r\n onSetTheme(theme) {\r\n\r\n if (theme == true) {\r\n this.overlayContainer.getContainerElement().classList.add('dark-theme');\r\n this.componentCssClass = 'dark-theme';\r\n } else {\r\n this.overlayContainer.getContainerElement().classList.add('theme-alternate');\r\n this.componentCssClass = 'theme-alternate';\r\n }\r\n\r\n }\r\n\r\n\r\n getTitle(state, parent) {\r\n\r\n var data = [];\r\n if (parent && parent.snapshot.data && parent.snapshot.data.title) {\r\n data.push(parent.snapshot.data.title);\r\n }\r\n\r\n if (state && parent) {\r\n data.push(... this.getTitle(state, state.firstChild(parent)));\r\n }\r\n return data;\r\n }\r\n\r\n}\r\n","\r\n\r\n\r\n
\r\n\r\n ","import { BrowserModule } from '@angular/platform-browser';\r\nimport { NgModule, APP_INITIALIZER } from '@angular/core';\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { AppComponent } from './app.component';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { AllAngularMaterialModule } from './modules/plugins/all-angular-material/all-angular-material.module';\r\nimport { AuthenticationModule } from './modules/auth/authentication.module';\r\nimport { NavService } from './modules/master-layout/services/nav.service';\r\nimport { MasterLayoutModule } from './modules/master-layout/master-layout.module';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { AdminModule } from './modules/admin/admin.module';\r\nimport { KraModule } from './modules/kra/kra.module';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\r\nimport {\r\n HttpClientModule,\r\n HTTP_INTERCEPTORS,\r\n HttpInterceptor,\r\n HttpRequest,\r\n HttpHandler,\r\n HttpEvent,\r\n} from '@angular/common/http';\r\nimport { HttpConfigInterceptor } from '../app/modules/master-layout/httpInterceptor';\r\nimport { OAuthHelper } from './core/services/OAuthHelper.service';\r\nimport { AngularEditorModule } from '@kolkov/angular-editor';\r\nimport { SharedModule } from './modules/shared/shared.module';\r\nimport { ProjectLifeCycleModule } from './modules/project-life-cycle/project-life-cycle.module';\r\nimport { TalentManagModule } from './modules/TalentMangment/talentmanagment.module';\r\nimport { AssociateexitModule} from './modules/AssociateExit/associateexit.module';\r\nimport { DialogCBRComponent } from './modules/TalentMangment/Components/dialog-cbr/dialog-cbr.component';\r\nimport { ReportsModule } from './modules/reports/reports.module';\r\nimport { UrlService } from './modules/shared/services/url.service';\r\nimport {\r\n AuthModule,\r\n LogLevel,\r\n OidcConfigService,\r\n} from 'angular-auth-oidc-client';\r\nimport { Observable } from 'rxjs/internal/Observable';\r\nimport { ValidationsDirective, ValidationsDirectiveModule } from './validations.directive';\r\nimport { GradesValidationsDirective } from './grades-validations.directive';\r\nimport { PracticeAreaValidationsDirective } from './practice-area-validations.directive';\r\nimport { EmptySpacesValidationsDirective } from './empty-spaces-validations.directive';\r\nimport { ValidationImpSpecialCharsDirective } from './validation-imp-special-chars.directive';\r\nimport { ConfirmationDialogComponent } from './confirmation-dialog/confirmation-dialog.component';\r\nimport { MatTableExporterModule } from 'mat-table-exporter';\r\nimport { MsalModule,MsalBroadcastService, MsalGuard, MsalRedirectComponent, MsalService } from '@azure/msal-angular';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [AppComponent, ConfirmationDialogComponent],\r\n imports: [\r\n BrowserModule,\r\n // RouterModule,\r\n AppRoutingModule,\r\n BrowserAnimationsModule,\r\n HttpClientModule,\r\n BrowserAnimationsModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n\r\n AllAngularMaterialModule,\r\n MasterLayoutModule,\r\n FlexLayoutModule,\r\n AdminModule,\r\n KraModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n AngularEditorModule,\r\n SharedModule,\r\n TalentManagModule,\r\n AssociateexitModule,\r\n ProjectLifeCycleModule,\r\n ReportsModule,\r\n AuthenticationModule,\r\n AuthModule.forRoot(),\r\n MatTableExporterModule\r\n ],\r\n exports: [RouterModule],\r\n providers: [NavService, OAuthHelper, UrlService,\r\n \r\n { provide: HTTP_INTERCEPTORS, useClass: HttpConfigInterceptor, multi: true }, \r\n \r\n\r\n ],\r\n\r\n entryComponents: [DialogCBRComponent],\r\n\r\n bootstrap: [AppComponent],\r\n})\r\nexport class AppModule {}\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-confirmation-dialog',\r\n templateUrl: './confirmation-dialog.component.html',\r\n styleUrls: ['./confirmation-dialog.component.scss']\r\n})\r\nexport class ConfirmationDialogComponent {\r\n\r\n message: string = 'Are you sure?';\r\n confirmButtonText = 'Yes';\r\n cancelButtonText = 'Cancel';\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) private data: any,\r\n private dialogRef: MatDialogRef\r\n ) {\r\n if (data) {\r\n this.message = data.message || this.message;\r\n if (data.buttonText) {\r\n this.confirmButtonText = data.buttonText.ok || this.confirmButtonText;\r\n this.cancelButtonText = data.buttonText.cancel || this.cancelButtonText;\r\n }\r\n }\r\n }\r\n\r\n onConfirmClick(): void {\r\n this.dialogRef.close(true);\r\n }\r\n\r\n}\r\n","
\r\n \r\n
{{ message }}
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n","import { AngularEditorConfig } from '@kolkov/angular-editor';\r\n\r\n\r\nexport const editorConfig: AngularEditorConfig = {\r\n editable: true,\r\n spellcheck: true,\r\n height: '0',\r\n minHeight: '140',\r\n maxHeight: 'auto',\r\n width: 'auto',\r\n minWidth: '0',\r\n translate: 'yes',\r\n enableToolbar: true,\r\n showToolbar: true,\r\n placeholder: 'Enter text here...',\r\n defaultParagraphSeparator: '',\r\n defaultFontName: '',\r\n defaultFontSize: '',\r\n fonts: [\r\n { class: 'arial', name: 'Arial' },\r\n { class: 'times-new-roman', name: 'Times New Roman' },\r\n { class: 'calibri', name: 'Calibri' },\r\n { class: 'comic-sans-ms', name: 'Comic Sans MS' }\r\n ],\r\n customClasses: [\r\n {\r\n name: 'quote',\r\n class: 'quote',\r\n },\r\n {\r\n name: 'redText',\r\n class: 'redText'\r\n },\r\n {\r\n name: 'titleText',\r\n class: 'titleText',\r\n tag: 'h1',\r\n },\r\n ],\r\n uploadUrl: 'v1/image',\r\n uploadWithCredentials: false,\r\n sanitize: true,\r\n toolbarPosition: 'top',\r\n toolbarHiddenButtons: [\r\n [],\r\n [\r\n ]\r\n ]\r\n};\r\n\r\n // toolbarHiddenButtons: [\r\n // ['undo',\r\n // 'redo',\r\n // 'bold',\r\n // 'italic',\r\n // 'underline',\r\n // 'strikeThrough',\r\n // 'subscript',\r\n // 'superscript',\r\n // 'justifyLeft',\r\n // 'justifyCenter',\r\n // 'justifyRight',\r\n // 'justifyFull',\r\n // 'indent',\r\n // 'outdent',\r\n // 'insertUnorderedList',\r\n // 'insertOrderedList',\r\n // 'heading',\r\n // 'fontName'],\r\n // [\r\n // 'fontSize',\r\n // 'textColor',\r\n // 'backgroundColor',\r\n // 'customClasses',\r\n // 'link',\r\n // 'unlink',\r\n // 'insertImage',\r\n // 'insertVideo',\r\n // 'insertHorizontalRule',\r\n // 'removeFormat',\r\n // 'toggleEditorMode'\r\n // ]\r\n // ]","export const AllColorCodes = [\r\n '#E94235',\r\n '#FABB05',\r\n '#34A853',\r\n '#4285F4',\r\n '#EE5A24',\r\n '#0652DD',\r\n '#009432',\r\n '#9980FA',\r\n '#833471',\r\n '#EA2027',\r\n '#006266',\r\n '#1B1464',\r\n '#5758BB',\r\n '#6F1E51',\r\n '#ED4C67',\r\n '#C4E538',\r\n '#12CBC4',\r\n '#FFC312',\r\n '#0000FF',\r\n '#8A2BE2',\r\n '#A52A2A',\r\n '#DEB887',\r\n '#5F9EA0',\r\n '#7FFF00',\r\n '#D2691E',\r\n '#FF7F50',\r\n '#6495ED',\r\n '#FFF8DC',\r\n '#DC143C',\r\n '#00FFFF',\r\n '#00008B',\r\n '#008B8B',\r\n '#B8860B',\r\n '#A9A9A9',\r\n '#A9A9A9',\r\n '#006400',\r\n '#BDB76B',\r\n '#8B008B',\r\n '#556B2F',\r\n '#FF8C00',\r\n '#9932CC',\r\n '#8B0000',\r\n '#E9967A',\r\n '#8FBC8F',\r\n '#483D8B',\r\n '#2F4F4F',\r\n '#2F4F4F',\r\n '#00CED1',\r\n '#9400D3',\r\n '#FF1493',\r\n '#00BFFF',\r\n '#696969',\r\n '#696969',\r\n '#1E90FF',\r\n '#B22222',\r\n '#FFFAF0',\r\n '#228B22',\r\n '#FF00FF',\r\n '#DCDCDC',\r\n '#F8F8FF',\r\n '#FFD700',\r\n '#DAA520',\r\n '#808080',\r\n '#808080',\r\n '#008000',\r\n '#ADFF2F',\r\n '#F0FFF0',\r\n '#FF69B4',\r\n '#CD5C5C',\r\n '#4B0082',\r\n '#FFFFF0',\r\n '#F0E68C',\r\n '#E6E6FA',\r\n '#FFF0F5',\r\n '#7CFC00',\r\n '#FFFACD',\r\n '#ADD8E6',\r\n '#F08080',\r\n '#E0FFFF',\r\n '#FAFAD2',\r\n '#D3D3D3',\r\n '#D3D3D3',\r\n '#90EE90',\r\n '#FFB6C1',\r\n '#FFA07A',\r\n '#20B2AA',\r\n '#87CEFA',\r\n '#778899',\r\n '#778899',\r\n '#B0C4DE',\r\n '#FFFFE0',\r\n '#00FF00',\r\n '#32CD32',\r\n '#FAF0E6',\r\n '#FF00FF',\r\n '#800000',\r\n '#66CDAA',\r\n '#0000CD',\r\n '#BA55D3',\r\n '#9370DB',\r\n '#3CB371',\r\n '#7B68EE',\r\n '#00FA9A',\r\n '#48D1CC',\r\n '#C71585',\r\n '#191970',\r\n '#F5FFFA',\r\n '#FFE4E1',\r\n '#FFE4B5',\r\n '#FFDEAD',\r\n '#000080',\r\n '#FDF5E6',\r\n '#808000',\r\n '#6B8E23',\r\n '#FFA500',\r\n '#FF4500',\r\n '#DA70D6',\r\n '#EEE8AA',\r\n '#98FB98',\r\n '#AFEEEE',\r\n '#DB7093',\r\n '#FFEFD5',\r\n '#FFDAB9',\r\n '#CD853F',\r\n '#FFC0CB',\r\n '#DDA0DD',\r\n '#B0E0E6',\r\n '#800080',\r\n '#663399',\r\n '#FF0000',\r\n '#BC8F8F',\r\n '#4169E1',\r\n '#8B4513',\r\n '#FA8072',\r\n '#F4A460',\r\n '#2E8B57',\r\n '#FFF5EE',\r\n '#A0522D',\r\n '#C0C0C0',\r\n '#87CEEB',\r\n '#6A5ACD',\r\n '#708090',\r\n '#708090',\r\n '#FFFAFA',\r\n '#00FF7F',\r\n '#4682B4',\r\n '#D2B48C',\r\n '#008080',\r\n '#D8BFD8',\r\n '#FF6347',\r\n '#40E0D0',\r\n '#EE82EE',\r\n '#F5DEB3',\r\n '#FFFFFF',\r\n '#F5F5F5',\r\n '#FFFF00',\r\n '#9ACD32',\r\n];\r\n","export const API = {\r\n 'Menu': {\r\n 'GetMenuDetails': '/Menu/GetMenuDetails/'\r\n },\r\n 'Role': {\r\n 'GetUserDetailsByUserName': '/UserRole/GetUserDetailsByUserName/',\r\n 'GetLoggedInUserEmail':'/User/GetUserEmail'\r\n },\r\n\r\n\r\n 'logError': '/ErrorLog/LogError',\r\n \r\n 'PagingConfigValue': {\r\n 'PageSize': 10,\r\n 'PageDropDown': [\r\n 10,\r\n 15,\r\n 20\r\n ]\r\n },\r\n 'ProjectClosure':{\r\n 'SubmitForClosureApproval': '/ProjectClosure/SubmitForClosureApproval',\r\n 'reject':'/ProjectClosure/RejectClosure',\r\n 'ApproveOrRejectClosureByDH': '/ProjectClosure/ApproveOrRejectClosureByDH'\r\n },\r\n 'Activity':{\r\n 'Create': '/Activity/Create',\r\n 'GetAll': '/Activity/GetAll',\r\n 'ID': '/Activity/',\r\n 'GetClosureActivitiesByDepartment': '/Activity/GetClosureActivitiesByDepartment?departmentId=',\r\n 'GetExitActivitiesByDepartment': '/Activity/GetExitActivitiesByDepartment',\r\n 'GetActivitiesForDropdown': '/Activity/GetActivitiesForDropdown',\r\n 'Update': '/Activity/Update',\r\n 'GetTransitionPlanActivities': '/Activity/GetTransitionPlanActivities',\r\n 'getActivitiesByProjectIdAndDepartmentId': '/ProjectClosureActivity/GetActivitiesByProjectIdAndDepartmentId?projectId=',\r\n 'CreateActivityChecklist': '/ProjectClosureActivity/CreateActivityChecklist',\r\n 'UpdateActivityChecklist': '/ProjectClosureActivity/UpdateActivityChecklist',\r\n 'GetActivitiesByProjectIdForPM': '/ProjectClosureActivity/GetActivitiesByProjectIdForPM?projectId='\r\n },\r\n 'Roles': {\r\n 'list': '/Role/GetRoles',\r\n 'createRole': '/FunctionalRole/Create',\r\n 'updateRole': '/FunctionalRole/Update',\r\n 'createRoleSkills': '/Role/AddSkillsToRole',\r\n 'updateRoleskills': '/Role/UpdateRoleSkills',\r\n 'getRolebyID': '/Role/GetRoleByRoleID?roleID=',\r\n 'getRoleSuffixAndPrefix': '/FunctionalRole/GetSGRoleSuffixAndPrefix?departmentId=',\r\n 'GetRoleDetailsByDepartmentID': '/FunctionalRole/GetByDepartmentID?departmentId=',\r\n 'GetLoggedInUserRoles': '/KRA/GetLoggedInUserRoles?employeeID=',\r\n 'GetRolesAndDepartments': '/FunctionalRole/GetRolesAndDepartments'\r\n },\r\n 'WorkStation': { \r\n 'GetWorkStationListByBayId': '/WorkStation/GetWorkStationListByBayId?BayIds=',\r\n 'GetWorkStationDataCount': '/WorkStation/WorkStationReportCount?bayId=',\r\n 'GetWorkStationDetailByWorkStationCode':'/WorkStation/GetWorkStationDetailByWorkStationCode?workstationCode=',\r\n 'DeskAllocation':'/WorkStation/EmployeeDeskAllocation?employeeId=',\r\n 'ReleaseDesk':'/WorkStation/ReleaseDesk?employeeId=',\r\n 'GetBaysList': '/Bay/GetBaysList',\r\n 'create': '/Bay/CreateWorkStation'\r\n },\r\n 'notificationemail': {\r\n 'GetNotificationType': '/SystemNotification/GetNotificationType',\r\n 'save': '/SystemNotification/SaveNotificationConfig',\r\n 'list': '/SystemNotification/GetNotificationConfiguration?notificationType=',\r\n 'GetAllEmailIds': '/SystemNotification/GetAllEmailIds',\r\n },\r\n 'NotificationConfiguration': {\r\n 'GetNotificationCofigurationByNotificationType': '/NotificationConfiguration/GetByNotificationTypeAndCategory?notificationTypeID=',\r\n 'SaveNotificationCofiguration': '/NotificationConfiguration/Create',\r\n 'UpdateNotificationCofiguration': '/NotificationConfiguration/Update',\r\n 'FromEmail': 'it@senecaglobal.com',\r\n 'GetNotificationType':  '/NotificationType/GetAll'\r\n },\r\n 'NotificationType': {\r\n 'GetNotificationType': '/NotificationType/GetAll',\r\n 'AddNotificationType': '/NotificationType/Create',\r\n 'UpdateNotificationType': '/NotificationType/Update',\r\n 'DeleteNotificationType': '/NotificationType/Delete?notificationTypeId='\r\n },\r\n 'common': {\r\n 'getGetBusinessValues': '/Employee/GetBusinessValues/',\r\n 'logError': '/ErrorLog/LogError'\r\n },\r\n 'EmployeeStatus': {\r\n 'GetUsers': '/MapAssociateId/GetUnMappedUsers',\r\n 'GetNames': '/Employee/GetEmployeeNames',\r\n 'UpdateEmployeeStatus': '/EmployeeStatus/UpdateEmployeeStatus/',\r\n 'GetResignStatus': '/EmployeeStatus/GetEmployeeResignStatus',\r\n 'MapAssociateId': '/MapAssociateId/MapAssociateId',\r\n 'GetAssociatesByDepartment' : '/Employee/GetAssociatesByDepartmentId',\r\n 'GetDepartmentHeadByDepartment' : '/Employee/GetDepartmentHeadByDepartmentId/'\r\n },\r\n 'AssignMenusRole': {\r\n 'getSourceMenuRoles': '/Menu/GetSourceMenuRoles/',\r\n 'getTargetMenuRoles': '/Menu/GetTargetMenuRoles/',\r\n 'addTargetMenuRoles': '/Menu/AddTargetMenuRoles'\r\n },\r\n 'Masterdata': {\r\n 'getDepartmentsList': '/UserDepartment/GetUserDepartmentDetails',\r\n 'getDepartments': '/Department/GetAll',\r\n 'getRoles': '/UserRole/GetRoles',\r\n 'getRolesByDepartmentID': '/Role/GetRolesByDepartmentID?DepartmentId=',\r\n \"getUserDepartmentDetailsByEmployeeID\": \"/Department/GetUserDepartmentDetailsByEmployeeID\",\r\n 'getRolesByProjectId': '/ProjectRoleAssignment/GetRolesByProjectId?projectId=',\r\n 'getCompetencyAreas': '/CompetencyArea/GetCompetencyAreaDetails',\r\n 'getSkillGroupsByCompetenctArea': '/SkillGroup/GetSkillGroupByCompetencyAreaID?competencyAreaID=',\r\n 'getSkillsBySkillGroup': '/Skill/GetBySkillGroupId?skillGroupIds=',\r\n 'getProficiencyLevels': '/ProficiencyLevel/GetAll',\r\n 'getProjectList': '/Project/GetProjectsForAllocation',\r\n 'getManagersAndCompetencyLeads': '/Employee/GetManagersAndLeads',\r\n 'getDomains': '/Domain/GetAll',\r\n 'getFinancialYears': '/FinancialYear/GetAll',\r\n 'getEmployeeNameByEmployeeId': '/MasterData/GetEmployeeNameByEmployeeId?employeeID=',\r\n 'getAllEmailIDs': '/NotificationConfiguration/GetEmployeeWorkEmails',\r\n 'getEmployeesAndManagers': '/Project/GetEmployees?searchString=',\r\n 'getAllLeadsManagers': '/Project/GetAllLeadsManagers?searchString=',\r\n 'getAllAssociateList': '/Appreciation/GetAssociateNamesList',\r\n 'getMasterSkillList': '/AssociateSkills/GetSkillsData',\r\n 'getPractiseAreas': '/PracticeArea/GetAll',\r\n 'getGradesDetails': '/UserGrade/GetGradesDetails',\r\n 'getClientList': '/Client/GetAll',\r\n 'getDesignationList': '/Designation/GetAll',\r\n 'getAllocationPercentages': '/AllocationPercentage/GetAll',\r\n 'getProgramManagers': '/MasterData/GetProgramManagers',\r\n 'getProjectTypes': '/ProjectType/GetAll',\r\n 'getRoleCategory': '/KRA/GetRoleCategory',\r\n 'getKRAOperators': '/KRA/GetOperators',\r\n 'getKRAMeasurementType': '/KRA/GetKRAMeasurementType',\r\n 'getKRATargetPeriods': '/KRA/GetTargetPeriods',\r\n 'getKRAScales': '/KRA/GetKRAScales',\r\n 'getKRAScaleValues': '/KRA/GetKRAScaleValues',\r\n 'getDepartmentByDepartmentTypeId': '/MasterData/GetDepartmentByDepartmentTypeId?departmentTypeId=',\r\n 'getDepartmentTypes': '/MasterData/GetDepartmentTypes',\r\n 'getDesignationByString': '/Designation/GetBySearchString/',\r\n 'getGradeByDesignation': '/Grade/GetGradeByDesignation/',\r\n 'GetCategories': '/CategoryMaster/GetAll',\r\n 'getAllDepartments': '/UserDepartment/GetDepartmentDetails',\r\n 'getKRARoles':'/KRARole/GetKRARoles',\r\n 'GetAssociateProjectsForRelease':'/Project/GetAssociateProjectsForRelease/'\r\n },\r\n 'DropDownLists': {\r\n 'GetAssociates': '/Employee/GetAssociatesForDropdown',\r\n 'GetAssociatesByProject': '/Employee/GetAssociatesByProjectId/',\r\n 'GetProjects': '/Project/GetProjectsForDropdown',\r\n 'GetGrades': '/Grade/GetGradesForDropdown',\r\n 'GetClients': '/Client/GetClientsForDropdown',\r\n 'GetProgramManagers': '/ProjectManager/GetProgramManagersForDropdown',\r\n 'GetDesignations': '/Designation/GetDesignationsForDropdown',\r\n 'GetPercentages': '/AllocationPercentage/GetAllocationPercentageForDropdown',\r\n 'GetTechnologies': '/PracticeArea/GetTechnologyForDropdown',\r\n 'GetExitReasons':'/Reason/GetReasonsForDropdown',\r\n 'GetExitTypes':'/ExitType/GetExitTypesForDropdown',\r\n 'GetListAssociatesByRoles':'/Employee/GetListAssociatesByRoles/',\r\n },\r\n 'Technology': {\r\n 'list': '/PracticeArea/GetAll',\r\n 'activelist': '/PracticeArea/GetAll?isActive=true'\r\n },\r\n\r\n \r\n 'KraDetailsForDepartmentHead': {\r\n \"getDepartmentsByEmployeeId\": \"/KRA/GetDepartmentsByDepartmentHeadID?employeeID=\",\r\n \"getKraRolesForDH\": \"/KRA/GetKRARolesForDH?financialYearID=\",\r\n \"sendBackToHRHead\": \"/KRA/SendBackForHRHeadReview\",\r\n \"createKraByDH\": \"/KRA/CreateKRAByDepartmentHead\",\r\n \"updateKraByDH\": \"/KRA/UpdateKRARoleMetricByDepartmentHead\",\r\n \"getKraWorkFlowPendingWithEmployee\": \"/KRA/GetKRAWorkFlowPendingWithEmployeeID?financialYearID=\"\r\n },\r\n\r\n 'CompetencyArea': {\r\n 'list': '/CompetencyArea/GetAll',\r\n 'create': '/CompetencyArea/Create',\r\n 'update': '/CompetencyArea/Update',\r\n\r\n },\r\n 'Grades': {\r\n 'list': '/Grade/GetAll',\r\n 'create': '/Grade/Create/',\r\n 'update': '/Grade/Update/',\r\n\r\n },\r\n 'ApplicableRoleType': {\r\n 'getApplicableRoleType': '/ApplicableRoleType/GetAll?FinancialYearId=',\r\n 'addKRAApplicableRoleType': '/ApplicableRoleType/Create',\r\n 'delete': \"/ApplicableRoleType/Delete?applicableRoleTypeId=\",\r\n 'update': '/ApplicableRoleType/Update',\r\n 'updateRoleTypeStatus': '/ApplicableRoleType/updateRoleTypeStatus',\r\n 'getDepartments':'/GradeRoleType/GetDepartments',\r\n 'getGradesByDepartment':'/GradeRoleType/GetGradesByDepartment',\r\n 'getRoleTypesByGrade':'/GradeRoleType/GetRoleTypesByGrade',\r\n 'getById':'/GradeRoleType/getById?',\r\n 'getRoleTypesByDeptAndFY':'/RoleType/GetRoleTypesForDropdown?financialYearId=',\r\n 'getGradesBySelectedRoleType': '/GradeRoleType/GetGradesByDepartment?financialYearId='\r\n },\r\n\r\n 'ProjectType': {\r\n 'list': '/ProjectType/GetAll',\r\n 'create': '/ProjectType/Create',\r\n 'update': '/ProjectType/Update',\r\n },\r\n 'ProficiencyLevel': {\r\n 'list': '/ProficiencyLevel/GetAll',\r\n 'create': '/ProficiencyLevel/Create',\r\n 'update': '/ProficiencyLevel/Update',\r\n },\r\n 'ClientBillingRole': {\r\n 'list': '/ClientBillingRoles/GetClientBillingRoles',\r\n 'create': '/ClientBillingRoles/Create',\r\n 'update': '/ClientBillingRoles/Update',\r\n 'delete': '/ClientBillingRoles/Delete/',\r\n 'getClientBillingRolesByProjectId': '/ClientBillingRoles/GetAllByProjectId?projectId=',\r\n 'CloseClientBillingRole' : '/ClientBillingRoles/Close/',\r\n 'GetEmployeesByClientBillingRoleId': '/ClientBillingRole/GetEmployeesByClientBillingRoleId?projectId=',\r\n },\r\n 'Designation': {\r\n 'list': '/Designation/GetAll',\r\n 'create': '/Designation/Create',\r\n 'update': '/Designation/Update'\r\n\r\n },\r\n 'Department': {\r\n 'list': '/Department/GetAll',\r\n 'create': '/Department/Create',\r\n 'update': '/Department/Update',\r\n 'oldlist': '/UserDepartment/GetDepartmentDetails',\r\n 'GetRoleDetailsByDepartmentID': '/FunctionalRole/GetByDepartmentID?departmentId=',\r\n 'GetDepartmentById': '/MasterData/GetDepartmentByDepartmentTypeId?departmentTypeId=' \r\n },\r\n 'DepartmentType' : {\r\n 'list': '/DepartmentType/GetAll',\r\n 'create': '/DepartmentType/Create',\r\n 'update': '/DepartmentType/Update',\r\n },\r\n 'UserNames': {\r\n 'list': '/User/GetUsers',\r\n 'getById': '/UserRole/GetUserRolesbyUserID/',\r\n 'getRoleByDept': '/RoleMaster/GetRoleMasterDetails?departmentId=',\r\n 'update': '/UserRole/UpdateUserRole',\r\n 'create': '/UserRole/AssignRole',\r\n 'GetUsersBySearchString': '/User/GetUsersBySearchString/'\r\n },\r\n \r\n \"KRA\": {\r\n \"getFinancialYears\": \"/MasterData/GetFinancialYearList\",\r\n \"getKRAGroupsByYear\": \"/KRA/GetKRAGroups?financialYearId=\",\r\n \"getKRAGroupsByFinancialYear\": \"/KRA/GetKRAGroupsByFinancial?financialYearId=\",\r\n \"createKRAGroup\": \"/KRA/CreateKRAGroup\",\r\n \"createKRADefinition\": \"/KRA/CreateKRADefinition\",\r\n \"getKRADefinitionsById\": \"/KRA/GetKRADefinitionById?kraGroupId=\",\r\n \"updateKRADefinition\": \"/KRA/UpdateKRADefinition\",\r\n \"deleteKRADefinition\": \"/KRA/DeleteKRADefinition\",\r\n \"deleteKRAMetricByKRADefinitionId\": \"/KRA/DeleteKRAMetricByKRADefinitionId\",\r\n \"sendForDepartmentApproval\": \"/KRA/SubmitKRAForApproval\",\r\n \"approveKRA\": \"/KRA/ApproveKRA\",\r\n \"SendBackForHRMReview\": \"/KRA/SendBackForHRMReview\",\r\n \"SendBacktoDepartmentHead\": \"/KRA/SendBacktoDepartmentHead\",\r\n \"SendtoHRHeadReview\": \"/KRA/SendtoHRHeadReview\",\r\n \"getKRAComments\": \"/KRA/GetKRAComments?financialYearId=\",\r\n \"getRoles\": \"/Role/GetRoleSuffixAndPrefix\",\r\n \"getRolebyID\": \"/Role/GetRoleByRoleID?roleID=\",\r\n \"CloneKras\": \"/KRA/CloneKRAs\",\r\n \"getCurrentFinancialYear\": \"/MasterData/GetCurrentFinancialYear\",\r\n \"createKRAForRole\": \"/KRARole/CreateKRAForRole\",\r\n \"deleteKraRoleByYearIdAndRoleId\": \"/KRA/DeleteKRARoleByFinancialYearAndRoleId?roleID=\",\r\n \"submitKraForHRHeadReview\": \"/KRA/SubmitKRAForHRHeadReview\",\r\n \"getKRARolesByDepartmentID \" : \"/KRA/GetKRARolesByDepartmentID?departmentID=\",\r\n \"getKraRolesByDepartmentId\": \"/KRA/GetKRARolesForReview?financialYearID=\",\r\n \"getKraAspects\": \"/KRAAspects/GetKRAAspect?departmentId=\",\r\n \"getRoleName\": \"/KRARole/GetRoleName?roleId=\",\r\n \"getDepartmentName\": \"/KRARole/GetDepartmentName?departmentId=\",\r\n \"getFinancialYear\": \"/KRARole/GetFinancialYear?financialYearId=\",\r\n \"cloneYearwise\": \"/KRA/CloneKRATemplateForFinancialYear\",\r\n \"getKRAGroupList\": \"/Role/GetKRATitleByDepartmentID?departmentID=\",\r\n \"addKRAComments\": \"/KRA/AddKRAComments\",\r\n \"deleteKRAGroup\": \"/KRA/DeleteKRAGroup\",\r\n \"GenerateKRAPdf\":\"/KRA/GenerateKRAPdf\",\r\n 'getEmployeeRoleTypes':\"/Employee/GetEmployeeRoleTypes\", \r\n 'downloadKRA':\"/Employee/DownloadKRA\", \r\n },\r\n\r\n 'FinancialYears': {\r\n \"GetFinancialYearList\": \"/FinancialYear/GetFinancialYears\",\r\n \"GetCurrentFinancialYear\": \"/FinancialYear/GetCurrentFinancialYearByMonth\",\r\n \"CreateFinancialYear\": \"/FinancialYear/CreateFinancialYear\",\r\n \"UpdateFinancialYear\": \"/FinancialYear/UpdateFinancialYear\",\r\n },\r\n\r\n 'FinancialYear' : {\r\n \"getFinancialYears\": \"/FinancialYear/GetAll\",\r\n },\r\n\r\n \"CustomKras\": {\r\n \"getProjectsByProgramManagerId\": \"/CustomKRAs/GetProjectsByProjectManagerID?projectManagerID=\",\r\n \"getEmployeesByProjectId\": \"/CustomKRAs/GetEmployeesByProjectID?projectID=\",\r\n \"getEmployeesByDepartment\": \"/CustomKRAs/GetEmployeesForDepartment?employeeID=\",\r\n \"saveCustomKras\": \"/CustomKRAs/SaveCustomKRAs\",\r\n \"editCustomKras\": \"/CustomKRAs/EditCustomKRAs\",\r\n \"deleteCustomKra\": \"/CustomKRAs/DeleteCustomKRA?customKRAID=\",\r\n \"getOrganizationAndCustomKrasOfEmployee\": \"/CustomKRAs/GetOrganizationAndCustomKRAsForPMDH?employeeID=\",\r\n },\r\n \r\n 'KraAspect': { \r\n 'getDepartmentsList': '/Department/GetUserDepartmentDetails',\r\n 'getKraAspects': '/KRAAspects/GetKRAAspect/',\r\n 'creatKraAspect': '/KRAAspects/Create',\r\n 'updateKraAspect': '/KRAAspects/Update',\r\n 'deleteKRAAspect' : '/KRAASpects/Delete',\r\n\r\n },\r\n \"MeasurementType\": {\r\n \"getMeasurementType\": \"/MeasurementType/GetAll\",\r\n \"deleteMeasurementType\": \"/MeasurementType/Delete?MeasurementTypeId=\",\r\n \"createMeasurementType\": \"/MeasurementType/Create\",\r\n \"updateMeasurementType\": \"/MeasurementType/Update\"\r\n },\r\n \"AspectMaster\": {\r\n \"GetAspects\": \"/Aspect/GetAll\",\r\n \"CreateAspect\": \"/Aspect/Create\",\r\n \"UpdateAspect\": \"/Aspect/Update\",\r\n \"DeleteAspect\": \"/Aspect/Delete/\"\r\n },\r\n \"ScaleMaster\": {\r\n \"getKRAScale\": \"/Scale/GetAll\",\r\n \"getKRADescriptionDetails\":\"/Scale/GetScaleDetailsById/\",\r\n \"createKRAScale\": \"/Scale/Create\",\r\n \"updateKRAScale\": \"/Scale/Update\",\r\n \"deleteKRAScale\": \"/Scale/Delete?ScaleID=\"\r\n },\r\n 'DefineKRA': {\r\n \"createDefinition\": \"/Definition/Create\",\r\n \"updateKRA\": \"/Definition/Update\",\r\n \"importKRA\": \"/Definition/ImportKRA\",\r\n \"getDefinitionDetails\": \"/Definition/GetDefinitionDetails?Id=\",\r\n \"getDefinitionsById\": \"/Definition/GetDefinitions?financialYearId=\",\r\n \"deleteKRA\": \"/Definition/Delete/\",\r\n \"deleteKRAByHOD\": \"/Definition/DeleteByHOD?defintionDetailId=\",\r\n \"deleteKRAByHODHardDelete\": \"/Definition/DeleteKRA?definitionDetailId=\",\r\n \"setPreviousMetricValues\": \"/Definition/SetPreviousMetricValues?defintionDetailId=\",\r\n \"setPreviousTargetValues\": \"/Definition/SetPreviousTargetValues?defintionDetailId=\",\r\n \"acceptTargetValue\": \"/Definition/AcceptTargetValue?defintionTransactionId=\",\r\n \"acceptMetricValue\": \"/Definition/AcceptMetricValue?defintionTransactionId=\",\r\n \"rejectTargetValue\": \"/Definition/RejectTargetValue?defintionTransactionId=\",\r\n \"rejectMetricValue\": \"/Definition/RejectMetricValue?defintionTransactionId=\",\r\n \"acceptDeletedKRAByHOD\": \"/Definition/AcceptDeletedKRAByHOD?defintionTransactionId=\",\r\n \"rejectDeletedKRAByHOD\": \"/Definition/RejectDeletedKRAByHOD?defintionTransactionId=\",\r\n \"acceptAddedKRAByHOD\": \"/Definition/AcceptAddedKRAByHOD?defintionTransactionId=\",\r\n \"rejectAddedKRAByHOD\": \"/Definition/RejectAddedKRAByHOD?defintionTransactionId=\",\r\n \"addKRAAgain\": \"/Definition/AddKRAAgain?defintionDetailId=\",\r\n \"updateKRAStatus\": \"/KRA/UpdateKRAStatus?financialYearId=\",\r\n },\r\n 'KRAStatus': { \r\n \"getHRKRAStatuses\": \"/KRAWorkFlow/GetOperationHeadStatus\",\r\n \"getHODKRAStatuses\": \"/KRAStatus/GetKRAStatus\",\r\n \"getCEOKRAStatuses\": \"/KRAStatus/GetKRAStatusByFinancialYearIdForCEO\",\r\n \"updateKRAStatusToSendToHOD\": \"/KRAWorkFlow/SendTOHod\",\r\n \"sendToCEO\": \"/KRAStatus/SendToCEO\",\r\n \"sendToHR\": \"/KRAStatus/UpdateRoleTypeStatus\",\r\n \"editByHR\": \"/KRAStatus/EditByHR\",\r\n \"ceoAccept\": \"/KRAStatus/UpdateRoleTypeStatusForCEO\", \r\n },\r\n\r\n 'KRAWorkFlow': {\r\n \"GetHODDefinitionsAsync\": \"/KRAWorkFlow/GetHODDefinitions\",\r\n \"HODDelete\":\"/KRAWorkFlow/HODDelete\",\r\n \"HODAdd\":\"/KRAWorkFlow/HODAdd\",\r\n \"HODUpdate\":\"/KRAWorkFlow/HODUpdate\",\r\n \"ApprovedbyHOD\":\"/KRAWorkFlow/ApprovedbyHOD\",\r\n \"SentToOpHead\":\"/KRAWorkFlow/SentToOpHead\",\r\n \"EditedByHOD\":\"/KRAWorkFlow/EditedByHOD\",\r\n \"GetOperationHeadDefinitions\":\"/KRAWorkFlow/GetOperationHeadDefinitions\",\r\n \"AcceptedByOperationHead\":\"/KRAWorkFlow/AcceptedByOperationHead\",\r\n \"RejectedByOperationHead\":\"/KRAWorkFlow/RejectedByOperationHead\",\r\n \"getCEOKRAStatuses\": \"/KRAWorkFlow/GetKRAStatusByFinancialYearIdForCEO\",\r\n \"approvedByCEO\": \"/KRAWorkFlow/ApprovedByCEO\",\r\n \"SendToCEO\":\"/KRAWorkFlow/SendToCEO\"\r\n },\r\n\r\n 'KRAComment': {\r\n \"createComment\": \"/Comment/Create\",\r\n \"getComment\": \"/Comment/GetAll?financialYearId=\",\r\n },\r\n \"AssociateKras\": {\r\n \"GetAssociateKRAs\": \"/KRA/GetViewKRAByEmployee?employeeID=\",\r\n \"getEmployeesByProjectID\": \"/MasterData/GetEmployeesForViewKraInformation?departmentId=\",\r\n \"GenerateKRAPdfForAllAssociates\" : \"/AssociateKRAMapping/GenerateKRAPdfForAllAssociates?overideExisting=\",\r\n },\r\n \"MapAssociateRole\": {\r\n \"getEmployeesByProjectID\": \"/MasterData/GetEmployeesByDepartmentAndProjectID?departmentId=\",\r\n \"getRolesOfDeliveryDepartment\": \"/MasterData/GetKRARolesForProjectDeliveryDepartment\",\r\n \"mapRole\": \"/AssociateKRAMapping/UpdateAssociateRole\",\r\n \"getRolesbyDepartmentId\": \"/Role/GetRolesByDepartmentID?DepartmentId=\",\r\n \"getKraRolesByDepartmentId\" : \"/Role/GetKRARolesByDepartmentID?departmentID=\",\r\n \"getEmployeesByKraRoleIdAndFinancialYearId\" : \"/KRARole/GetEmployeesByKRARole?KRARoleId=\"\r\n },\r\n\r\n 'Clients': {\r\n 'list': '/Client/GetAll',\r\n 'create': '/Client/Create',\r\n 'update': '/Client/Update'\r\n },\r\n\r\n 'PracticeArea': {\r\n 'list': '/PracticeArea/GetAll',\r\n 'create': '/PracticeArea/Create',\r\n 'update': '/PracticeArea/Update'\r\n },\r\n 'CategoryMaster': {\r\n 'list': '/CategoryMaster/GetAll',\r\n 'create': '/CategoryMaster/Create',\r\n 'update': '/CategoryMaster/Update',\r\n 'getParentCategoies': '/CategoryMaster/GetParentCategoies'\r\n },\r\n 'Domain': {\r\n 'list': '/Domain/GetAll',\r\n 'create': '/Domain/Create',\r\n 'update': '/Domain/Update',\r\n },\r\n 'KeyFunction':{\r\n 'list': '/KeyFunction/GetAll',\r\n 'create': '/KeyFunction/Create',\r\n 'update': '/KeyFunction/Update',\r\n },\r\n 'SkillGroup': {\r\n 'list': '/SkillGroup/GetAll',\r\n 'create': '/SkillGroup/Create/',\r\n 'update': '/SkillGroup/Update/',\r\n 'getSkillGroupsByCompetenctArea': '/SkillGroup/GetByCompetencyAreaId/'\r\n },\r\n\r\n 'Skills': {\r\n 'list': '/Skill/GetAll',\r\n 'create': '/Skill/Create/',\r\n 'update': '/Skill/Update/',\r\n 'getSkillsBySkillGroup': '/Skill/GetskillsBySkillGroupId?SkillGroupId=',\r\n 'GetSkillsBySearchString': '/Skill/GetSkillsBySearchString?skillsearchstring='\r\n \r\n },\r\n 'Seniority':{\r\n 'list': '/Seniority/GetAll',\r\n 'create': '/Seniority/Create/',\r\n 'update': '/Seniority/Update/'\r\n },\r\n 'Speciality':{\r\n 'list': '/Speciality/GetAll',\r\n 'create': '/Speciality/Create/',\r\n 'update': '/Speciality/Update/'\r\n },\r\n\r\n 'projects': {\r\n 'getProjectbyID': '/Project/GetByProjectId/',\r\n 'getProjectTypes': '/ProjectType/GetAll', // Org - ProjectController\r\n 'getEmpList': '/Employee/GetEmpList',// Emp - GetAll\r\n 'getClients': '/Client/GetAll', //Org - Clients\r\n 'getStatusDetails': '/Status/GetStatusMasterDetails',//Org\r\n 'addProject': '/Project/Create', //Create\r\n 'updateProject': '/Project/Update', //Update\r\n 'getProgrammangers': '/Employee/GetProgramManagersList',//Employee\r\n 'getProjectList': '/Project/GetProjectsList?userRole=',//Project\r\n 'getManagers': '/UserRole/GetProgramManagers?userRole=',// Org\r\n 'deleteProject': '/Project/DeleteProject?projectId=',//Project\r\n 'submitForApproval' : '/Project/SubmitForApproval/',//ProjectController\r\n 'approveOrRejectByDH' : '/Project/ApproveOrRejectByDH/',//ProjectController\r\n 'GetProjectsStatuses' : '/status/GetProjectStatuses',// Org\r\n 'canCloseProject' :'/Project/HasActiveClientBillingRoles',//ProjectController\r\n 'closeProject' : '/ProjectClosure/ProjectClosureInitiation',//ProjectController\r\n 'createprojectclosurereport':'/ProjectClosureReport/Create',\r\n 'updateprojectclosurereport':'/ProjectClosureReport/Update',\r\n 'getclosurereportbyprojectid' : '/ProjectClosureReport/GetClosureReportByProjectId/',\r\n 'savefiles' : '/ProjectClosureReport/Save' ,\r\n 'download':'/ProjectClosureReport/Download?',\r\n 'delete':'/ProjectClosureReport/Delete/',\r\n \r\n },\r\n 'sow': {\r\n 'getSOWDetailsById': '/SOW/GetAllByProjectId?projectId=',\r\n 'createSOW': '/SOW/Create',\r\n 'createAddendum':'/Addendum/Create',\r\n 'GetAddendumsBySOWId': '/Addendum/GetAllBySOWIdAndProjectId?sowId=',\r\n 'GetSowDetails': '/SOW/GetByIdAndProjectId?id=',\r\n 'delete': '/SOW/Delete',\r\n 'deleteAddendum':'/Addendum/Delete',\r\n 'GetAddendumDetailsById': '/Addendum/GetByIdAndProjectId?id=',\r\n 'updateSOWDetails' : '/SOW/Update',\r\n 'UpdateAddendumDetails' : '/Addendum/Update'\r\n },\r\n 'SkillSearch': {\r\n 'getEmployeeDetailsBySkill': '/SkillSearch/getEmployeeDetailsBySkill/',\r\n 'GetAllSkillDetails': '/SkillSearch/GetAllSkillDetails?empID=',\r\n 'GetActiveSkillsForDropdown': '/Skill/GetActiveSkillsForDropdown',\r\n 'GetSkillsBySearchString': '/Report/GetSkillsBySearchString?searchString=',\r\n 'GetProjectDetailByEmployeeId' : '/SkillSearch/GetProjectDetailByEmployeeId?employeeId='\r\n },\r\n 'AssociateJoining': {\r\n 'getJoinedAssociates': '/Employee/GetJoinedEmployees'\r\n },\r\n 'AssociateInformation': {\r\n 'getInfoAssociates': '/Employee/GetEmployeeInfo',\r\n 'getInfoAssociatesbyPage': '/Employee/GetEmployeeOnPagination?searchString=',\r\n 'getEmployeeCount': '/Employee/GetEmployeeCount?searchString=',\r\n 'prospectiveToHrms':'/ProspectiveDetailsSync/ReadRepository'\r\n },\r\n 'Dashboard':{\r\n \"getPendingProfiles\":'/Employee/GetPendingProfiles',\r\n \"getRejectedProfiles\":'/Employee/GetRejectedProfiles'\r\n },\r\n 'personal':{\r\n 'getBusinessValues': '/Employee/GetBusinessValues/',\r\n 'getHRAdvisors': '/UserRole/GetHRAAdvisors',\r\n 'getEmpTypes': '/Employee/GetEmpTypes',\r\n 'getTechnologies': '/PracticeArea/GetAll',\r\n 'getByPAId': '/ProspectiveAssociate/GetbyId/',\r\n 'getByEmpId': '/EmployeePersonalDetails/GetPersonalDetailsByID/',\r\n 'save': '/EmployeePersonalDetails/AddPersonalDetails',\r\n 'update': '/EmployeePersonalDetails/UpdatePersonalDetails',\r\n },\r\n 'PAssociate': {\r\n 'list': '/ProspectiveAssociate/GetProspectiveAssociates',\r\n 'create': '/ProspectiveAssociate/Create',\r\n 'update': '/ProspectiveAssociate/Update',\r\n 'get': '/ProspectiveAssociate/GetbyId/',\r\n 'deletePA': '/ProspectiveAssociate/DeletePADetailsByID?empID=',\r\n 'profileApproval':'/ProspectiveAssociate/UpdateEmployeeProfileStatus'\r\n },\r\n 'associates': {\r\n 'getAssociateDetails': '/AssociatePersonalDetail/GetAssociateDetails',\r\n 'getAssociateDetailsByEmpID': '/AssociatePersonalDetail/GetAssociateDetailsByEmpID?empID=',\r\n 'create': '/ProspectiveAssociate/AddPADetails',\r\n 'update': '',\r\n 'get': '',\r\n 'getJoinedAssociates': '/ProspectiveAssociate/GetJoinedAssociates'\r\n },\r\n 'upload': {\r\n 'GetPAstatus': '/Employee/GetStatusbyId/',\r\n 'save': '/EmployeeFiles/Save',\r\n 'list': '/EmployeeFiles/GetByEmployeeId/',\r\n 'delete': '/EmployeeFiles/Delete/',\r\n 'submitForApproval': '/ProspectiveAssociate/UpdateEmployeeStatusToPending',\r\n },\r\n 'associateprojects': { \r\n 'get': '/EmployeeProject/GetByEmployeeId/',\r\n 'update': '/EmployeeProject/Create'\r\n },\r\n 'ProjectRoleAllocation': {\r\n 'AssignProjectRole': '/ProjectRoleAssignment/AssignProjectRole',\r\n 'GetRoleNotifications': '/ProjectRoleAssignment/GetRoleNotifications?employeeId=',\r\n 'ApproveRole': '/ProjectRoleAssignment/RoleApproval',\r\n 'GetAssignedRoles': '/ProjectRoleAssignment/GetAssignedRoles?projectId=',\r\n 'RejectRole': '/ProjectRoleAssignment/RoleRejection',\r\n 'GetProjectManagerOrLeadId': '/ProjectRoleAssignment/GetProjectManagerOrLeadId?employeeId=',\r\n 'GetRolesByProjectId': '/ProjectRoleAssignment/GetRolesByProjectId?projectId=',\r\n 'GetRoleDataById': '/ProjectRoleAssignment/GetRoleMasterDetailByRoleId?roleId='\r\n },\r\n 'deliveryHead': {\r\n 'getPendingRequisitionsForApproval': '/Dashboard/GetPendingRequisitionsForApproval?EmployeeId=',\r\n 'getRolePositionDetailsByTRID': '/Dashboard/GetRolesAndPositionsByRequisitionId?talentRequisitionId=',\r\n 'getTrRoleEmployeeList': '/Dashboard/GetTaggedEmployeeByTRAndRoleId?talentRequisitionId=',\r\n 'getApproverList': '/Dashboard/GetFinanceHeadList',\r\n 'ApproveTalentRequisition': '/Dashboard/ApproveTalentRequisition',\r\n 'rejectTalentRequisition': '/TalentRequisition/RejectTalentRequisitionByDeliveryHead',\r\n 'getProjectList': '/Project/GetProjectsList?userRole=',\r\n 'ApproveOrRejectByDH' : '/Project/ApproveOrRejectByDH/'\r\n },\r\n 'FinanceHead': {\r\n 'getPendingRequisitionsForApproval': '/Dashboard/GetRequisitionsForApprovalForFinance?employeeId=',\r\n 'requisitionApprovalByFinance': '/Dashboard/ApproveTalentRequisitionByFinance',\r\n 'requisitionRejectionByFinance': '/TalentRequisition/RejectTalentRequisitionByFinance'\r\n },\r\n 'associateSkills': {\r\n 'getCompetencyAreas': '/AssociateSkills/GetCompetencyArea',\r\n 'getPracticeAreas': '/PracticeArea/GetPracticeAreas',\r\n 'getProficiencyLevels': '/AssociateSkills/GetProficiencyLevel', \r\n 'DeleteAssociateSkills': '/AssociateSkills/DeleteAssociateSkill?id=',\r\n 'getSkillsByCompetenctArea': '/AssociateSkills/GetSkills?competenctAreaID=',\r\n 'getSkillsByCompetenctAreaAndSkillGroup': '/AssociateSkills/GetSkillsByID?skillGroupID=',\r\n 'SubmitAssociateSkills': '/AssociateSkills/SubmitAssociateSkills',\r\n\r\n 'getSkillsById': '/EmployeeSkill/GetByEmployeeId/',\r\n 'SaveAssociateSkills': '/EmployeeSkill/Create',\r\n 'UpdateAssociateSkills': '/EmployeeSkill/Update',\r\n 'getSkillsList': '/Skill/GetAll',\r\n 'deleteSkill':'/EmployeeSkill/DeleteSkill/'\r\n },\r\n 'Reports': {\r\n 'GetEmployeeDetailsBySkill': '/Reports/GetEmployeeDetailsBySkill',\r\n 'GetProjectsList': '/Dashboard/GetProjectsList',\r\n 'GetFinanceReport': '/Reports/GetFinanceReports',\r\n 'getFinanceReportToFreez': '/Reports/GetFinanceReportToFreez',\r\n 'getRmgReportDataByMonthYear': '/Reports/GetRmgReportDataByMonthYear?month=',\r\n 'GetUtilizationReportsByMonth': '/Reports/GetUtilizationReportsByMonth',\r\n 'GetResourceReportByProjectId': '/Reports/GetResourceByProject/',\r\n 'GetResourceReports': '/Reports/GetUtilizationReports',\r\n 'GetUtilizationReportsByTechnologyId': '/Reports/GetUtilizationReportsByTechnology',\r\n 'GetTalentpoolResourceCount': '/Reports/GetTalentPoolReportCount',\r\n 'GetEmployeesByTalentPoolProjectID': '/Reports/GetTalentPoolReport?projectID=',\r\n 'GetProjectsListByTypeId': '/Project/GetProjectsListByTypeId?projectTypeId=',\r\n 'GetEmpList': '/Project/GetEmpList',\r\n 'GetRolesList': '/Project/GetRolesList',\r\n 'GetGradesDetails': '/UserGrade/GetGradesDetails',\r\n 'GetCustomers': '/Project/GetCustomers',\r\n 'GetDepartmentHeads': '/UserDepartment/GetDepartmentHeads',\r\n 'GetManagers': '/Project/GetManagers',\r\n 'getProjectTypes': '/ProjectType/GetAll',\r\n 'GetActiveSkillsData': '/Dashboard/GetActiveSkillsData',\r\n 'SaveReportData': '/Dashboard/SaveReportData',\r\n 'ImportAssociateUtilizeReport': '/AssociateUtilization/ImportAssociateUtilizeReport',\r\n 'UploadRMGReport': '/AssociateUtilization/ImportAssociateUtilizeReport',\r\n 'GetDomainCountReport': '/Reports/GetDomainReportCount',\r\n 'getEmployeesByDomainId': '/Reports/GetDomainReport?domainID=',\r\n 'getEmployeesBySkill': '/Reports/SkillReport?competencyID=', \r\n 'GetEmployeesBySkill': '/Reports/GetAssociateSkillsReport',\r\n 'GetSkillsBySearchString': '/AssociateSkills/GetSkillsBySearchString?searchString=',\r\n 'GetProjectHistoryByEmployee': '/Reports/GetProjectHistoryByEmployee?employeeID=',\r\n 'GetServiceTypeReportCount': '/Reports/GetServiceTypeReportCount?filter=',\r\n 'GetServiceTypeReportEmployee': '/Reports/GetServiceTypeReportEmployee?serviceTypeId=',\r\n 'GetServiceTypeReportProject': '/Reports/GetServiceTypeReportProject?serviceTypeId=',\r\n 'GetAllProjectsForReport': '/Report/GetAllProjects',\r\n 'GetProjectDetailsReport':'/Reports/GetProjectDetailsReport',\r\n 'GetCriticalResourceReport':'/Reports/GetCriticalResourceReport',\r\n 'GetNonCriticalResourceReport':'/Reports/GetNonCriticalResourceReport',\r\n 'GetUtilizationReport':'/Report/GetUtilizationReport',\r\n 'GetTalentPoolResourceReport':'/Reports/GetTalentPoolResourceReport',\r\n 'GetAssociateExitReport':'/Report/GetAssociateExitReport',\r\n 'GetAssociateExitChartReport': '/Report/GetAssociateExitChartReport',\r\n 'GetAssociateExitReportTypes': '/Report/GetAssociateExitReportTypes',\r\n 'GetAttendanceSummaryReport': '/AttendanceReport/GetAttendanceSummaryReport',\r\n 'GetAttendanceDetailReport': '/AttendanceReport/GetAttendanceDetailReport',\r\n 'GetBiometricAttendanceSummaryReport': '/BioMetricAttendance/GetAttendanceSummaryReport',\r\n 'GetBiometricAttendanceDetailReport': '/BioMetricAttendance/GetAttendanceDetailReport',\r\n 'GetAssociates': '/AttendanceReport/GetAssociatesReportingToManager',\r\n 'GetProjects': '/AttendanceReport/GetProjectsByManager',\r\n 'GetAttendanceMaxDate': '/AttendanceReport/GetAttendanceMaxDate',\r\n 'GetAssociatesForFutureAllocation':'/Reports/GetAssociatesForFutureAllocation',\r\n 'IsDeliveryDepartment': '/AttendanceReport/IsDeliveryDepartment',\r\n 'GetNonCriticalResourceBillingReport':'/Reports/GetNonCriticalResourceBillingReport',\r\n 'IsDeliveryDepartmentforBiometric': '/BioMetricAttendance/IsDeliveryDepartment',\r\n 'GetBiometricAttendanceMaxDate': '/BioMetricAttendance/GetAttendanceMaxDate',\r\n 'GetProjectsForBiometricAttendance': '/BioMetricAttendance/GetProjectsByManager',\r\n 'GetAssociatesForBiometricAttendance': '/BioMetricAttendance/GetAssociatesReportingToManager',\r\n 'GetMusterReport':'/BioMetricAttendance/GetAttendanceMuster/'\r\n },\r\n\r\n 'professional': {\r\n 'getProfessionalDetails': '/EmployeeProfession/GetByEmployeeId/',\r\n 'getSkillGroupCertificate': '/SkillGroup/GetByCompetencyAreaCode/Certification',\r\n 'addCertificationDetails': '/EmployeeProfession/CreateCertificate',\r\n 'addMembershipDetails': '/EmployeeProfession/CreateMembership',\r\n 'updateCertificationDetails': '/EmployeeProfession/UpdateCertificate',\r\n 'updateMembershipDetails': '/EmployeeProfession/UpdateMembership',\r\n 'deleteMembershipDetails': '/EmployeeProfession/Delete/'\r\n },\r\n\r\n 'education': {\r\n 'list': '/EmployeeEducation/GetById/',\r\n 'save': '/EmployeeEducation/Save/'\r\n },\r\n\r\n 'employment': {\r\n 'GetEmploymentDetails': '/EmployeeEmployment/GetPrevEmploymentDetailsById/',\r\n 'GetProfReferenceDetails': '/EmployeeEmployment/GetProfReferencesById/',\r\n 'SaveEmployementDetails': '/EmployeeEmployment/Save'\r\n },\r\n 'TagAssociate': {\r\n 'GetTagListDetailsByManagerId': '/TagAssociate/GetTagListDetailsByManagerId?managerId=',\r\n 'GetTagListNamesByManagerId': '/TagAssociate/GetTagListNamesByManagerId?managerId=',\r\n 'CreateTagList': '/TagAssociate/CreateTagList/',\r\n 'UpdateTagList': '/TagAssociate/UpdateTagAssociateList/',\r\n 'DeleteTagAssociate': '/TagAssociate/DeleteTagAssociate?tagAssociateId=',\r\n 'DeleteTagList': '/TagAssociate/DeleteTagList?tagListName='\r\n },\r\n 'AssignReportingManager': {\r\n 'GetManagersByProjectId': '/ProjectManager/GetReportingDetailsByProjectId/',\r\n 'GetProgramManagerList': '/Project/GetManagerList',\r\n 'GetReportingManagersList': '/Project/GetAssociates',\r\n 'AssignReportingManager': '/ProjectManager/SaveManagersToProject',\r\n 'UpdateReportingManagerToAssociate': '/ProjectManager/UpdateReportingManagerToAssociate/',\r\n 'getManagerName': '/ProjectManager/GetManagerandLeadByProjectIDandEmpId/',\r\n 'getManagersAndLeads': '/Project/GetManagersAndLeads',\r\n 'getAllocatedAssociates': '/AssociateAllocation/GetAllocatedAssociates',\r\n 'getEmployeesAndManagers': '/Employee/GetEmployeeBySearchString/',\r\n 'getProjectDetails': '/Project/GetProjectsByEmpId/',\r\n 'getAllLeadsManagers': '/ProjectManager/GetLeadsManagersBySearchString/',\r\n },\r\n 'ResourceRelease': {\r\n 'getTalentPools': '/Project/GetTalentPools',\r\n 'getAssociates': '/Project/GetAssociates',\r\n 'getProjectDetails': '/Project/GetProjectDetails?employeeId=',\r\n 'releaseAssociate': '/Project/ReleaseAssociate',\r\n 'getAssociateTalentPool': '/Project/GetEmpTalentPool/',\r\n 'GetAllocationPercentages': '/Common/GetAllocationPercentages',\r\n 'GetEmployeesByProjectID': '/Project/GetEmployeesByProjectID?projectID=',\r\n },\r\n 'family': {\r\n 'list': '/EmployeeFamilyDetails/GetFamilyDetailsById/',\r\n 'save': '/EmployeeFamilyDetails/UpdateFamilyDetails'\r\n },\r\n 'EmployeeType': {\r\n 'list': '/Employee/GetEmpTypes'\r\n },\r\n 'HRAdvisor': {\r\n 'list': '/UserRole/GetHRAAdvisors',\r\n 'activelist': '/UserRole/GetHRAAdvisors?isActive=true'\r\n },\r\n\r\n \r\n 'TemporaryAllocationRelease': {\r\n 'GetEmployeesAllocations': '/AssociateAllocation/GetEmployeesForAllocations',\r\n 'TemporaryReleaseAssociate': '/AssociateAllocation/TemporaryReleaseAssociate',\r\n 'GetAssociatesToRelease': '/AssociateAllocation/GetAssociatesToRelease/',\r\n 'GetAssociatesForAllocation': '/AssociateAllocation/GetAssociatesForAllocation'\r\n },\r\n 'AssociateAllocation': {\r\n 'GetApprovedTalentRequisitionList': '/Allocation/GetApprovedTalentRequisitionList',\r\n 'GetTalentRequisitionById': '/Allocation/GetTalentRequisitionById?tRId=',\r\n 'GetRequiredSkillsDetails': '/Allocation/GetRequiredSkillsDetails?requisitionRoleDetailId=',\r\n 'ResourceAllocate': '/AssociateAllocation/Create',\r\n 'GetReportingManager': '/Allocation/GetReportingManager',\r\n 'forceClose': '/Allocation/CloseTalentRequisition?tRId=',\r\n 'GetMatchingProfiles': '/Allocation/GetMatchingProfiles?requisitionRoleId=',\r\n 'GetMatchingskillsforAssociate': '/Allocation/GetMatchingskillsforAssociate?requisitionRoleId=',\r\n 'CheckPrimaryRoleofAssociate': '/Allocation/CheckPrimaryRoleofAssociate?associateID=',\r\n 'SetPrimaryRoleofAssociate': '/Allocation/SetPrimaryRoleofAssociate',\r\n 'GetClientBillingRoles': '/ClientBillingRole/GetClientBillingRoles?isActive=true',\r\n 'GetClientBillingRolesByProjectId': '/ClientBillingRoles/GetAllByProjectId?projectId=',\r\n 'GetInternalBillingRoles': '/InternalBillingRole/GetInternalBillingRoles?isActive=true',\r\n 'GetTaggedEmployeesByTalentRequisitionId': '/Allocation/GetTaggedEmployeesByTalentRequisitionId?talentRequisitionId=',\r\n 'GetEmpAllocationHistory': '/AssociateAllocation/GetEmpAllocationHistory/',\r\n 'GetTaggedEmployeesForTalentRequisition': '/Allocation/GetTaggedEmployeesForTalentRequisition',\r\n 'GetEmployeePrimaryAllocationProject': '/AssociateAllocation/GetEmployeePrimaryAllocationProject/',\r\n 'getProjectsForAllocation': '/Project/GetProjectsForAllocation',\r\n 'GetAllocationDetailsByAllocationId': '/Allocation/GetAllocationDetailsByAllocationId?AllocationId=',\r\n 'GetExecutionProjectsList': '/Allocation/GetExecutionProjectsList?userRole=',\r\n 'getRolesByDepartmentID': '/AssociateAllocation/GetRolesByDepartmentId/',\r\n 'GetCurrentAllocationByEmpIdAndProjectId': '/AssociateAllocation/GetCurrentAllocationByEmpIdAndProjectId?employeeId=',\r\n 'UpdateAssociateAllocation' : '/AssociateAllocation/UpdateAssociateAllocation',\r\n 'GetEmployeeAllocationsByName': '/Employee/GetEmployeeDetailsByNameString/',\r\n 'AddAssociateFutureProject': '/AssociateAllocation/AddAssociateFutureProject',\r\n 'GetAssociateFutureProjectByEmpId': '/AssociateAllocation/GetAssociateFutureProjectByEmpId/',\r\n 'DiactivateAssociateFutureProjectByEmpId': '/AssociateAllocation/DiactivateAssociateFutureProjectByEmpId/',\r\n 'GetAllAllocationByEmployeeId': '/AssociateAllocation/GetAllAllocationByEmployeeId/'\r\n },\r\n\r\n 'ADROrganisationDevelopment':{\r\n 'get' :'/ADROrganisationalDevelopment/GetADROrganisationDevelopment?financialYearId=',\r\n 'create': '/ADROrganisationalDevelopment/CreateADROrganisationDevelopment',\r\n 'update' :'/ADROrganisationalDevelopment/UpdateADROrganisationDevelopment?financialYearId=',\r\n \"getCurrentFinancialYear\": \"/MasterData/GetCurrentFinancialYear\"\r\n },\r\n\r\n 'ADROrganisationValue':{\r\n 'get' :'/ADROrganisationValue/GetADROrganisationValues?financialYearId=',\r\n 'create': '/ADROrganisationValue/CreateADROrganisationValue',\r\n 'update' :'/ADROrganisationValue/UpdateADROrganisationValue?financialYearId=',\r\n \"getCurrentFinancialYear\": \"/MasterData/GetCurrentFinancialYear\",\r\n },\r\n\r\n 'ADROrganisationDevelopmentEntry':{\r\n 'get' :'/ADR/GetADROrganisationDevelopmentDetail?EmployeeID=',\r\n \"getCurrentFinancialYear\": \"/MasterData/GetCurrentFinancialYear\"\r\n },\r\n \r\n 'ADRConfiguration':{\r\n 'get' :'/ADRConfiguration/GetADRConfiguration',\r\n 'create': '/ADRConfiguration/CreateADRConfiguration',\r\n 'update' :'/ADRConfiguration/UpdateADRConfiguration'\r\n },\r\n\r\n 'ADRSections' : {\r\n 'get' :'/ADR/GetADRSection',\r\n 'create': '/ADR/CreateADRSection',\r\n 'update' :'/ADR/UpdateADRSection',\r\n 'getADRMeasurementAreas' : '/ADR/GetCurrentYearADRMeasurementAreas'\r\n },\r\n\r\n \"AssociateDevelopmentReview\": {\r\n \"GetADRCycleList\": \"/MasterData/GetADRCycle\",\r\n \"UpdateADRCycle\": \"/ADR/SetADRCycleActive\"\r\n },\r\n \r\n \"ADRAssociateAppreciation\": {\r\n \"GetSentAppreciationsList\": \"/Appreciation/GetAppreciationHistory?empID=\",\r\n \"GetReceiveAppreciationsList\": \"/Appreciation/GetMyAppreciation?empID=\",\r\n \"GetADRCycleList\": \"/MasterData/GetADRCycle\",\r\n \"GetAppreciationTypeList\": \"/Appreciation/GetAppreciationTypeList\",\r\n \"GetFinancialYearList\": \"/MasterData/GetFinancialYearList\",\r\n \"SendAnAppreciation\": \"/Appreciation/CreateAppreciation\",\r\n \"UpdateAnAppreciation\": \"/Appreciation/UpdateAnAppreciation\",\r\n \"DeleteAnAppreciation\": \"/Appreciation/DeleteAnAppreciation\",\r\n \"GetSourceOfOriginList\": \"/Appreciation/GetSourceOfOriginName\"\r\n },\r\n \"ADRKra\": {\r\n \"GetAssociateADRDetail\": \"/ADR/GetAssociateADRDetail?employeeID=\",\r\n \"UpdateAssociateADRDetail\": \"/ADR/UpdateAssociateADRDetail\",\r\n \"CreateAssociateADRDetail\": \"/ADR/CreateAssociateADRDetail\",\r\n },\r\n \"RoleType\": {\r\n \"Get\": \"/RoleType/GetAll\",\r\n \"Create\": \"/GradeRoleType/Create\",\r\n \"Update\": \"/GradeRoleType/Update\",\r\n \"Delete\": \"/GradeRoleType/Delete\",\r\n \"getRoleTypesByGrade\": \"/RoleType/GetRoleTypesByGradeId/\",\r\n \"GetGradesByDepartment\": \"/GradeRoleType/GetGradesByDepartment?financialYearId=\",\r\n \"GetRoleTypesForDropdown\": \"/RoleType/GetRoleTypesForDropdown?financialYearId=\",\r\n },\r\n \"ServiceType\":{\r\n \"GetServiceTypeForDropdown\": \"/ServiceType/GetServiceTypeForDropdown\",\r\n \"GetAll\": \"/ServiceType/GetAll\",\r\n \"Create\": \"/ServiceType/Create\",\r\n \"Update\": \"/ServiceType/Update\",\r\n\r\n },\r\n \"EmployeeSkillWorkFlow\":{\r\n \"Create\": \"/EmployeeSkillWorkFlow/Create/\",\r\n \"updateEmpSkillDetailsByRM\": \"/EmployeeSkillWorkFlow/UpdateEmpSkillDetails/\",\r\n \"SkillStatusApprovedByRM\": \"/EmployeeSkillWorkFlow/SkillStatusApprovedByRM/\",\r\n \"getSkillSubmittedEmps\": \"/EmployeeSkillWorkFlow/GetSkillSubmittedByEmployee/\",\r\n \"getAllSubmittedSkillsByEmpid\": \"/EmployeeSkillWorkFlow/GetSubmittedSkillsByEmpid/\",\r\n \"UpdateEmpSkillProficienyByRM\": \"/EmployeeSkillWorkFlow/UpdateEmpSkillProficienyByRM\",\r\n \"GetEmployeeSkillHistory\": \"/EmployeeSkillWorkFlow/GetEmployeeSkillHistory/\"\r\n },\r\n\r\n \"AssociateResignation\": {\r\n 'GetAssociatesById': '/AssociateResignation/GetAssociatesById?resignEmployeeId=',\r\n 'CreateAssociateResignation': '/AssociateResignation/CreateAssociateResignation',\r\n 'CalculateNoticePeriod': '/AssociateResignation/CalculateNoticePeriod?resignationDate=',\r\n 'RevokeResignation': '/AssociateResignation/RevokeResignationByID?empID=',\r\n },\r\n\r\n 'AssociateLongLeave': {\r\n 'CreateAssociateLongLeave': '/AssociateLongLeave/CreateAssociateLongLeave',\r\n 'CalculateMaternityPeriod': '/AssociateLongLeave/CalculateMaternityPeriod?longLeaveStartDate=',\r\n 'RejoinAssociate': '/AssociateLongLeave/ReJoinAssociateByID?empID=',\r\n },\r\n\r\n \"Resignation\": {\r\n \"Reason\": \"/Reason/GetVoluntaryExitReasons\",\r\n \"Create\": \"/AssociateExit/Create\",\r\n \"GetExitDetailsById\": \"/AssociateExit/GetByEmployeeId\",\r\n \"GetAll\": \"/AssociateExit/GetAll\",\r\n \"GetAssociateExitDashbaord\" : \"/AssociateExit/GetAssociatesForExitDashboard/\",\r\n \"PMApproval\": \"/AssociateExit/Approve\",\r\n \"Revoke\": \"/AssociateExit/RevokeExit\",\r\n \"WithdrawRequest\": \"/AssociateExit/RequestForWithdrawResignation?employeeId=\",\r\n \"ApproveOrRejectRevoke\":\"/AssociateExit/ApproveOrRejectRevoke\",\r\n \"ReviewByPM\": \"/AssociateExit/ReviewByPM\",\r\n \"GetResignationSubStatus\": \"/AssociateExit/GetResignationSubStatus/\",\r\n \"ReviewReminderNotification\":\"/AssociateExit/ReviewReminderNotification/\"\r\n },\r\n\r\n \"TransitionPlan\":{\r\n \"GetForTeamLead\": \"/TransitionPlan/GetTransitionPlanByAssociateIdandProjectId/\",\r\n \"GetForAssociate\": \"/TransitionPlan/GetTransitionPlanByAssociateId\",\r\n \"Update\": \"/TransitionPlan/UpdateTransitionPlan/\",\r\n \t\"DeleteActivity\": \"/TransitionPlan/DeleteTransitionActivity\"\r\n },\r\n 'AssociateExitActivity':{\r\n 'GetActivitiesByEmployeeIdAndDepartmentId':'/AssociateExitActivity/GetActivitiesByEmployeeIdAndDepartmentId',\r\n 'updateActivityChecklist':'/AssociateExitActivity/UpdateActivityChecklist',\r\n 'GetActivitiesByemployeeIdForHRA' : \"/AssociateExitActivity/GetActivitiesByemployeeIdForHRA\",\r\n \"ExitClearance\":\"/AssociateExit/ExitClearance\",\r\n \"GetClearanceRemarks\":\"/AssociateExit/GetClearanceRemarks\",\r\n \"CreateActivityChecklist\":\"/AssociateExitActivity/CreateActivityChecklist\",\r\n\r\n },\r\n \"AssociateExitInterview\":{\r\n \"CreateExitFeedback\": \"/AssociateExitInterview/CreateExitFeedback\",\r\n \"GetExitInterview\": \"/AssociateExitInterview/GetExitInterview\"\r\n },\r\n \"AssociateExitAnalysis\":{\r\n \"CreateExitAnalysis\": \"/AssociateExitAnalysis/CreateExitAnalysis\", \r\n \"GetAssociateExitAnalysis\": \"/AssociateExitAnalysis/GetAssociateExitAnalysis\",\r\n \"GetExitEmployeeReport\":\"/Report/ExitEmployeeReport\"\r\n },\r\n 'AssociateExit':{\r\n 'Create': '/AssociateExit/Create',\r\n 'GetAll': '/AssociateExit/GetAll',\r\n 'GetByEmployeeId': '/AssociateExit/GetByEmployeeId/',\r\n 'Approve': '/AssociateExit/Approve',\r\n 'getExitDashboards': '/AssociateExit/GetByEmployeeId/'\r\n },\r\n 'WelcomeEmail':{\r\n 'WelcomeEmail':'/WelcomeEmail/GetWelcomeEmployeeInfo',\r\n 'SendWelcomeEmail':'/WelcomeEmail/SendWelcomeEmail'\r\n },\r\n 'AssociateExitInterviewReviewInfo': {\r\n 'AssociateExitInterviewReview': '/AssociateExitInterviewReview/GetAll',\r\n 'Create': '/AssociateExitInterviewReview/Create'\r\n },\r\n 'AssociateAbscond':{\r\n 'GetAssociateByLead':'/AssociateAbscond/GetAssociateByLead/',\r\n 'CreateAbscond':'/AssociateAbscond/CreateAbscond',\r\n 'GetAssociatesAbscondDashboard':\"/AssociateAbscond/GetAssociatesAbscondDashboard/\",\r\n 'AcknowledgeAbscond':'/AssociateAbscond/AcknowledgeAbscond',\r\n 'ConfirmAbscond':'/AssociateAbscond/ConfirmAbscond',\r\n 'GetAbscondDetailByAssociateId':'/AssociateAbscond/GetAbscondDetailByAssociateId/',\r\n 'AbscondClearance':'/AssociateAbscond/AbscondClearance',\r\n 'GetAbscondSubStatus': '/AssociateAbscond/GetAbscondSubStatus/'\r\n },\r\n 'ChangeRmForNonDelivery' : {\r\n 'GetAssociateRMDetailsByDepartmentId':'/Employee/GetAssociateRMDetailsByDepartmentId/',\r\n 'GetNonDeleveryAssociates':'/Employee/GetServiceDepartmentAssociates',\r\n 'UpdateAssociateRMDetails' : '/Employee/UpdateServiceDepartmentAssociateRM',\r\n 'GetAllDepartment' : '/Department/GetAll?isActive=true'\r\n },\r\n\r\n 'ParkingBookingSlot' : {\r\n 'BookParkingSlot' : '/BookParkingSlot/Create',\r\n 'GetSlotDetails' : '/BookParkingSlot/GetSlotDetails/',\r\n 'GetSlotDetailsByEmailID' : '/BookParkingSlot/GetSlotDetailsByEmailID/',\r\n 'ReleaseParkingSlot': '/BookParkingSlot/ReleaseSlot?email=',\r\n 'GetParkingSlotReport': '/Report/GetParkingSlotReport'\r\n },\r\n\r\n 'wfhAttendance' : {\r\n 'GetloginStatus' : '/WorkFromHomeAttendance/GetloginStatus/',\r\n 'SaveAttendanceDetails' : '/WorkFromHomeAttendance/SaveAttendanceDetais',\r\n 'GetAttendanceDetails' : '/WorkFromHomeAttendance/GetAttendanceDetais/'\r\n },\r\n\r\n 'attendanceRegularization' : {\r\n 'GetNotPunchInDate' : '/AttendanceRegularization/GetNotPunchInDates',\r\n 'SaveAttendanceRegularizationDetails' : '/AttendanceRegularization/SaveAttendanceRegularizationDetails',\r\n 'GetAllAssociateSubmittedAttendanceRegularization' : '/AttendanceRegularization/GetAllAssociateSubmittedAttendanceRegularization/',\r\n 'GetAssociateSubmittedAttendanceRegularization' : '/AttendanceRegularization/GetAssociateSubmittedAttendanceRegularization/',\r\n 'ApproveOrRejectAttendanceRegularizationDetails' : '/AttendanceRegularization/ApproveOrRejectAttendanceRegularizationDetails'\r\n },\r\n\r\n 'uploadLeaveData' : {\r\n 'UploadLeaveData' : '/AssociateLeave/UploadLeaveData',\r\n 'GetTemplateFile' : '/AssociateLeave/GetTemplateFile' \r\n }\r\n};\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from '../../../environments/environment';\r\n//import {environment} from '../../../environments/environment.qa'\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { User } from '../../modules/auth/models/user.model';\r\nimport { Router } from '@angular/router';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport {\r\n OidcClientNotification,\r\n OidcSecurityService,\r\n PublicConfiguration,\r\n} from 'angular-auth-oidc-client';\r\n\r\n@Injectable()\r\nexport class OAuthHelper {\r\n private _accessToken = '';\r\n private image;\r\n\r\n setAccessToken(_accessToken: any): any {\r\n this._accessToken = _accessToken;\r\n sessionStorage['token'] = this._accessToken;\r\n }\r\n\r\n public getImage() {\r\n return this.image;\r\n }\r\n public setImage(image: Blob) {\r\n this.image = image;\r\n }\r\n public loginData = new User();\r\n env = environment;\r\n constructor(\r\n private http: HttpClient,\r\n private route: Router,\r\n public oidcSecurityService: OidcSecurityService\r\n ) {}\r\n\r\n logout() {\r\n window.location.replace(window.location.origin);\r\n }\r\n\r\n public GetUserProfile() {\r\n return this.http.get('https://graph.microsoft.com/v1.0/me', {\r\n headers: new HttpHeaders({\r\n Authorization: 'Bearer ' + this._accessToken,\r\n }),\r\n });\r\n }\r\n\r\n public GetUserdetails(res) {\r\n const url = environment.ServerUrl + '/UserLogin';\r\n sessionStorage['mail'] = res.mail;\r\n sessionStorage['token'] = null;\r\n const data =\r\n 'grant_type=password&username=' + res.mail + '&password=' + 'gfhks';\r\n let x = this.http.post(url, data);\r\n return x;\r\n }\r\n\r\n // public getUserPhoto() {\r\n // sessionStorage['token'] = this._accessToken;\r\n // return this.http.get(this.env.Image, { responseType: 'blob' });\r\n // }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { environment } from 'src/environments/environment';\r\nimport * as servicePath from 'src/app/core/service-paths';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class AuthService {\r\n Url = environment.Url;\r\n private resourceURL=servicePath.API.Role;\r\n\r\n constructor(private http: HttpClient) {\r\n \r\n }\r\n\r\n getAcesstoken(tokenRequestObj){\r\n return this.http.post( this.Url,tokenRequestObj)\r\n\r\n }\r\n\r\n loggedIn() {\r\n return !!sessionStorage[\"token\"]\r\n }\r\n\r\n //to set the generated token into session storage\r\n setAccessToken(_accessToken: any): any {\r\n sessionStorage[\"token\"] = _accessToken;\r\n }\r\n\r\n\r\n public GetLoggedInUserEmail()\r\n {\r\n let url = environment.AdminMicroService + this.resourceURL.GetLoggedInUserEmail;\r\n return this.http.get(url,{responseType:\"text\"});\r\n\r\n }\r\n\r\n}\r\n\r\n\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as environmentInformation from '../../../environments/environment';\r\nimport * as servicePath from '../service-paths';\r\nimport {ErrorLogDetails} from '../../modules/master-layout/models/errorLog.model'\r\n// import { KRAStatusCodes } from '../shared/utility/enums';\r\nimport { KRAStatusCodes } from '../../modules/master-layout/utility/enums';\r\nimport { FormControl } from '@angular/forms';\r\n\r\ndeclare var $: any;\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CommonService {\r\n private _resources: any;\r\n private _serverURL: string;\r\n private EmployeeMicroService = environmentInformation.environment.EmployeeMicroService;\r\n errorlogDetails: ErrorLogDetails;\r\n constructor( private _http: HttpClient) {\r\n this._serverURL = environmentInformation.environment.ServerUrl;\r\n \r\n this._resources = servicePath.API.common;\r\n\r\n }\r\n public GetBusinessValues(valueKey: string) {\r\n var url = this.EmployeeMicroService+ this._resources.getGetBusinessValues + valueKey;\r\n return this._http.get(url)\r\n }\r\n\r\n onlyNumbers(event: any) {\r\n var keys = {\r\n 'escape': 27, 'backspace': 8, 'tab': 9, 'enter': 13, 'period': 46,\r\n '0': 48, '1': 49, '2': 50, '3': 51, '4': 52, '5': 53, '6': 54, '7': 55, '8': 56, '9': 57\r\n };\r\n for (var index in keys) {\r\n if (!keys.hasOwnProperty(index)) continue;\r\n if (event.charCode == keys[index] || event.keyCode == keys[index]) {\r\n return; //default event\r\n }\r\n }\r\n event.preventDefault();\r\n };\r\n\r\n public LogError(fileName: string, errorMessage: string) {\r\n this.errorlogDetails = new ErrorLogDetails();\r\n this.errorlogDetails.FileName = fileName;\r\n this.errorlogDetails.ErrorMessage = errorMessage;\r\n let url = this._serverURL + this._resources.logError;\r\n return this._http.post(url, this.errorlogDetails)\r\n \r\n // new Promise((resolve, reject) => {\r\n // .map(res => res.json())\r\n // .subscribe((lData) => {\r\n // resolve(lData);\r\n // }, error => reject(error));\r\n // });\r\n }\r\n\r\n unAllowednames_usingCustom( control : FormControl) : { [s:string]: boolean} {\r\n if(control.value != null && control.value != \"\")\r\n {\r\n let s : string = control.value;\r\n let atleastOneAlpha = s.trim();\r\n if(atleastOneAlpha != \"\")\r\n return null;\r\n else\r\n return {'unAllowed' :true};\r\n }\r\n else\r\n return null;\r\n }\r\n\r\n public getStatusCode(statusId: number) {\r\n let status: string;\r\n switch (statusId) {\r\n case KRAStatusCodes.Approved:\r\n status = \"Approved\";\r\n break;\r\n case KRAStatusCodes.Draft:\r\n status = \"Drafted\";\r\n break;\r\n case KRAStatusCodes.SendBackForHRMReview:\r\n status = \"Sent Back For HRA/HRM Review\";\r\n break;\r\n case KRAStatusCodes.SubmittedForDepartmentHeadReview:\r\n status = \"Submitted For Department Head Review\";\r\n break;\r\n // case KRAStatusCodes.SendBackForHRHeadReview:\r\n // status = \"Sent Back For HR Head Review\";\r\n // break;\r\n // case StatusCodes.KraSubmittedForHRHeadReview:\r\n // status = \"Submitted For HR Head Review\";\r\n // break;\r\n case KRAStatusCodes.SendBackForHRMReview:\r\n status = \"Sent Back For HRM Review\";\r\n break;\r\n // case StatusCodes.KraSubmittedForMDApproval:\r\n // status = \"Submitted For MD Approval\";\r\n // break;\r\n default:\r\n status = \"Not available\";\r\n break;\r\n }\r\n return status;\r\n }\r\n\r\n public htmlEncode(stringToEncode: string): string {\r\n return $('
').text(stringToEncode).html();\r\n }\r\n\r\n public htmlDecode(stringToDecode: any): string {\r\n return $('
').html(stringToDecode).text();\r\n }\r\n public omit_special_char(event: any) {\r\n let k: any;\r\n k = event.charCode; \r\n return (\r\n (k > 64 && k < 91) ||\r\n (k > 96 && k < 123) ||\r\n k == 8 ||\r\n k == 32 ||\r\n (k >= 48 && k <= 57)\r\n );\r\n }\r\n\r\n public IsValidDate(fromDate: any, toDate: any): boolean {\r\n if (Date.parse(fromDate) <= Date.parse(toDate)) return true;\r\n return false;\r\n };\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport * as FileSaver from 'file-saver';\r\nimport { type } from 'os';\r\nimport * as XLSX from 'xlsx';\r\nconst EXCEL_TYPE='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; charset=UTF-8';\r\nconst EXCEL_EXT = '.xlsx'\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FileExporterService {\r\n\r\n constructor() { }\r\n\r\n exportToExcel(json:any[],excelFileName: string): void{\r\n const workSheet : XLSX.WorkSheet = XLSX.utils.json_to_sheet(json, { cellDates: true, dateNF: 'MM/DD/YYYY' })\r\n const workBook: XLSX.WorkBook = {Sheets:{'data':workSheet},\r\n SheetNames:['data']};\r\n const excelBuffer:any = XLSX.write(workBook, {bookType:'xlsx',type:'array'})\r\n this.saveAsExcel(excelBuffer,excelFileName)\r\n }\r\n\r\n private saveAsExcel(buffer:any, fileName : string): void{\r\n const data : Blob = new Blob([buffer],{type:EXCEL_TYPE})\r\n FileSaver.saveAs(data,fileName)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\n// import { Response } from '@angular/http';\r\nimport 'rxjs/add/operator/map';\r\nimport { GenericType, GenericModel } from '../../modules/master-layout/models/dropdowntype.model';\r\nimport { Grade } from '../../modules/admin/models/grade.model';\r\nimport { DepartmentDetails } from '../../modules/master-layout/models/role.model';\r\nimport { RequisitionRoleSkills } from '../../modules/master-layout/models/talentrequisitiondata.model';\r\nimport { ProjectDetails } from '../../modules/master-layout/models/projects.model';\r\nimport { PracticeArea } from '../../modules/master-layout/models/associate-skills.model';\r\nimport { Designation } from '../../modules/admin/models/designation.model';\r\nimport { Client } from '../../modules/admin/models/client.model';\r\nimport { PercentageDropDown } from '../../modules/master-layout/models/associateallocation.model';\r\nimport { environment } from '../../../environments/environment';\r\nimport * as servicePath from '../service-paths';\r\n\r\nimport { KRAScaleData } from '../../modules/master-layout/models/krascaleData.model';\r\nimport { ProjectTypeData } from '../../modules/admin/models/projecttype.model';\r\nimport { KraRoleData } from '../../modules/master-layout/models/kraRoleData.model';\r\nimport { Roletype } from '../../modules/admin/models/roletype.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MasterDataService {\r\n private _serverURL: string;\r\n private _adminMicroService: string;\r\n private _employeeMicroService: string;\r\n private _resources: any;\r\n private _kraMicroService: string;\r\n private _projectMicroService: string;\r\n constructor(private _http: HttpClient) {\r\n this._projectMicroService = environment.ProjMicroService;\r\n this._serverURL = environment.ServerUrl;\r\n this._adminMicroService = environment.AdminMicroService;\r\n this._employeeMicroService = environment.EmployeeMicroService;\r\n this._resources = servicePath.API.Masterdata;\r\n this._kraMicroService = environment.KRAMicroService;\r\n }\r\n\r\n GetDepartmentsMasterData(): Observable {\r\n var url = this._adminMicroService + servicePath.API.Department.list;\r\n return this._http.get(url);\r\n }\r\n\r\n GetDepartments(): Observable {\r\n var url = this._adminMicroService + this._resources.getDepartments;\r\n return this._http.get(url);\r\n }\r\n\r\n GetAllDepartments(): Observable {\r\n var url = this._serverURL + this._resources.getAllDepartments;\r\n return this._http.get(url);\r\n }\r\n\r\n GetRoles(): Observable {\r\n var url = this._adminMicroService + this._resources.getRoles;\r\n return this._http.get(url);\r\n }\r\n\r\n GetRolesByDepartmentId(departmentId: number): Observable> {\r\n let url =\r\n this._serverURL + this._resources.getRolesByDepartmentID + departmentId;\r\n return this._http.get(url);\r\n }\r\n\r\npublic GetUserDepartmentDetailsByEmployeeID(employeeId: number): Observable> {\r\n let url = this._adminMicroService + servicePath.API.Masterdata.getUserDepartmentDetailsByEmployeeID + \"/\"+ employeeId; \r\n return this._http.get>(url);\r\n }\r\n\r\n GetRolesByProjectId(ProjectId: number): any {\r\n var url = this._serverURL + this._resources.getRolesByProjectId + ProjectId;\r\n return this._http.get(url);\r\n }\r\n\r\n GetCompetencyAreas(): any {\r\n var url = this._serverURL + this._resources.getCompetencyAreas;\r\n return this._http.get(url);\r\n }\r\n\r\n GetSkillGroupsByCompetenctArea(competencyAreaID: number): any {\r\n var url =\r\n this._serverURL +\r\n this._resources.getSkillGroupsByCompetenctArea +\r\n competencyAreaID;\r\n return this._http.get(url);\r\n }\r\n\r\n GetSkillsBySkillGroups(SkillGroupID: number): any {\r\n let url =\r\n this._adminMicroService +\r\n this._resources.getSkillsBySkillGroup +\r\n SkillGroupID;\r\n return this._http.get(url);\r\n }\r\n\r\n GetProficiencyLevels(): any {\r\n let url = this._adminMicroService + servicePath.API.ProficiencyLevel.list;\r\n return this._http.get(url);\r\n }\r\n\r\n GetProjectsList() {\r\n let _url = this._projectMicroService + servicePath.API.DropDownLists.GetProjects;\r\n return this._http.get(_url)\r\n}\r\n\r\n GetDomains(): any {\r\n let _url = this._adminMicroService + this._resources.getDomains;\r\n return this._http.get(_url);\r\n }\r\n\r\n GetManagersAndCompetencyLeads(): Observable {\r\n let _url =\r\n this._employeeMicroService +\r\n this._resources.getManagersAndCompetencyLeads;\r\n return this._http.get(_url);\r\n }\r\n\r\n GetFinancialYears(): Observable> {\r\n let url = this._adminMicroService + this._resources.getFinancialYears;\r\n return this._http.get(url);\r\n }\r\n\r\n GetEmailIDsByString(): Observable {\r\n let url =\r\n this._adminMicroService + this._resources.getAllEmailIDs\r\n return this._http.get(url);\r\n }\r\n\r\n GetEmployeeNameByEmployeeId(employeeId: number): Observable {\r\n let url =\r\n this._serverURL +\r\n this._resources.getEmployeeNameByEmployeeId +\r\n employeeId;\r\n return this._http.get(url);\r\n }\r\n\r\n GetEmployeesAndManagers(suggestionString: string) {\r\n let url =\r\n this._serverURL +\r\n this._resources.getEmployeesAndManagers +\r\n suggestionString;\r\n return this._http.get(url);\r\n }\r\n\r\n GetAllLeadsManagers(suggestionString: string) {\r\n let url =\r\n this._serverURL + this._resources.getAllLeadsManagers + suggestionString;\r\n return this._http.get(url);\r\n }\r\n\r\n GetAllAssociateList(): Observable {\r\n let _url = this._employeeMicroService + servicePath.API.DropDownLists.GetAssociates;\r\n return this._http.get(_url);\r\n }\r\n \r\n GetAllAssociateListByProject(projectId:number): Observable {\r\n let _url = this._employeeMicroService + servicePath.API.DropDownLists.GetAssociatesByProject+projectId;\r\n return this._http.get(_url);\r\n }\r\n\r\n GetMasterSkillList(): Observable {\r\n var url = this._serverURL + this._resources.getMasterSkillList;\r\n return this._http.get(url);\r\n }\r\n\r\n GetPractiseAreas(): Observable {\r\n var url = this._adminMicroService + servicePath.API.DropDownLists.GetTechnologies;\r\n return this._http.get(url);\r\n }\r\n\r\n GetGradesDetails(): Observable {\r\n let _url = this._adminMicroService + servicePath.API.DropDownLists.GetGrades;\r\n return this._http.get(_url);\r\n }\r\n\r\n GetGradesMasterData(): Observable {\r\n let _url = this._adminMicroService + servicePath.API.Grades.list;\r\n return this._http.get(_url);\r\n }\r\n\r\n GetClientList(): Observable {\r\n let _url = this._adminMicroService + servicePath.API.DropDownLists.GetClients;\r\n return this._http.get(_url);\r\n }\r\n\r\n GetDesignationList(): Observable {\r\n let _url = this._adminMicroService + this._resources.GetDesignationList;\r\n return this._http.get(_url);\r\n }\r\n\r\n GetDesignationListForDropDown(): Observable {\r\n let _url = this._adminMicroService + servicePath.API.DropDownLists.GetDesignations;\r\n return this._http.get(_url);\r\n }\r\n\r\n GetAllocationPercentages(): Observable {\r\n var url = this._projectMicroService + servicePath.API.DropDownLists.GetPercentages;\r\n return this._http.get(url);\r\n }\r\n\r\n GetProgramManagers(): Observable {\r\n var url = this._projectMicroService + servicePath.API.DropDownLists.GetProgramManagers;\r\n return this._http.get(url);\r\n }\r\n\r\n GetProjectTypes(): Observable {\r\n let url = this._adminMicroService + this._resources.getProjectTypes;\r\n return this._http.get(url);\r\n }\r\n\r\n // GetProjectTypes(): Observable {\r\n // let _url = this._serverURL + this._resources.getProjectTypes;\r\n // return this._http.get(_url );\r\n // }\r\n\r\n GetRoleCategories(): Observable {\r\n var url = this._serverURL + this._resources.getRoleCategory;\r\n return this._http.get(url);\r\n }\r\n GetKRAOperators(): Observable {\r\n var url = this._kraMicroService + this._resources.getKRAOperators;\r\n return this._http.get(url);\r\n }\r\n GetKRAMeasurementType(): Observable {\r\n var url = this._serverURL + this._resources.getKRAMeasurementType;\r\n return this._http.get(url);\r\n }\r\n GetKRATargetPeriods(): Observable {\r\n var url = this._kraMicroService + this._resources.getKRATargetPeriods;\r\n return this._http.get(url);\r\n }\r\n getKRAScales(): Observable {\r\n var url = this._serverURL + this._resources.getKRAScales;\r\n return this._http.get(url);\r\n }\r\n getKRAScaleValues(): Observable {\r\n var url = this._serverURL + this._resources.getKRAScaleValues;\r\n return this._http.get(url);\r\n }\r\n\r\n GetKraRoles(): Observable {\r\n var url = this._serverURL + this._resources.getKRARoles;\r\n return this._http.get(url);\r\n }\r\n\r\n GetDepartmentByDepartmentTypeId(\r\n departmentTypeId: number\r\n ): Observable> {\r\n let url =\r\n this._serverURL +\r\n this._resources.getDepartmentByDepartmentTypeId +\r\n departmentTypeId;\r\n return this._http.get(url);\r\n }\r\n\r\n GetDepartmentTypes(): Observable {\r\n var url = this._serverURL + this._resources.getDepartmentTypes;\r\n return this._http.get(url);\r\n }\r\n\r\n GetDesignationByString(\r\n suggestionString: string\r\n ): Observable> {\r\n let url =\r\n this._adminMicroService +\r\n this._resources.getDesignationByString +\r\n suggestionString;\r\n return this._http.get(url);\r\n }\r\n\r\n GetCategories() {\r\n var url = this._adminMicroService + this._resources.GetCategories;\r\n return this._http.get(url);\r\n }\r\n\r\n getGradeByDesignation(designationId: number): Observable {\r\n let url =\r\n this._adminMicroService +\r\n this._resources.getGradeByDesignation +\r\n designationId;\r\n return this._http.get(url);\r\n }\r\n\r\n GetRoleTypesByGrade(gradeId: number) {\r\n let url =\r\n this._kraMicroService +\r\n servicePath.API.RoleType.getRoleTypesByGrade +\r\n gradeId;\r\n return this._http.get(url);\r\n }\r\n\r\n GetFinancialYearMasterData() {\r\n let url =\r\n this._kraMicroService + servicePath.API.FinancialYear.getFinancialYears;\r\n return this._http.get(url);\r\n }\r\n\r\n GetExitReasons(): Observable {\r\n var url = this._adminMicroService + servicePath.API.DropDownLists.GetExitReasons\r\n return this._http.get(url);\r\n }\r\n GetExitTypes(): Observable {\r\n var url = this._adminMicroService + servicePath.API.DropDownLists.GetExitTypes\r\n return this._http.get(url);\r\n }\r\n GetListAssociatesByRoles(role:string) {\r\n let _url = this._employeeMicroService + servicePath.API.DropDownLists.GetListAssociatesByRoles+role;\r\n return this._http.get(_url);\r\n }\r\n\r\n\r\n}\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as environmentInformation from '../../../environments/environment';\r\nimport * as servicePath from '../service-paths';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MenuService {\r\n _serverURL: string;\r\n _serverURLs: string;\r\n _roleInstance: any;\r\n _menuInstance: any;\r\n\r\n constructor(private _http: HttpClient) {\r\n this._serverURL = environmentInformation.environment.ServerUrl;\r\n this._serverURLs = environmentInformation.environment.AdminMicroService;\r\n this._menuInstance = servicePath.API.Menu;\r\n this._roleInstance= servicePath.API.Role;\r\n }\r\n\r\n getMenuDetails(roleName: string) {\r\n let _url = this._serverURL + this._menuInstance.GetMenuDetails + roleName;\r\n return this._http.get(_url);\r\n }\r\n GetUserDetailsByUserName(userName: string) {\r\n let _url = this._serverURLs + this._roleInstance.GetUserDetailsByUserName + userName;\r\n return this._http.get(_url);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class PageTitleService {\r\n private pageTitle = new BehaviorSubject('default message');\r\n currentPageTitle = this.pageTitle.asObservable();\r\n\r\n constructor() {}\r\n\r\n changePageTitle(pagTitleData: string) {\r\n this.pageTitle.next(pagTitleData);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ThemechangerService {\r\n\r\n \r\n private darkThemeVrbl = new BehaviorSubject(false);\r\n currentTheme = this.darkThemeVrbl.asObservable();\r\n\r\n constructor() { }\r\n\r\n darkTheme(theme: boolean) {\r\n this.darkThemeVrbl.next(theme)\r\n }\r\n\r\n}\r\n","import { Directive, Input, NgModule, forwardRef } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, Validator } from '@angular/forms';\r\n\r\n@Directive({\r\n selector:\r\n '[appDropDownSuggestion][ngModel],[appDropDownSuggestion][formControl],[appDropDownSuggestion][formControlName]',\r\n providers: [\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => DropDownSuggestionDirective),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class DropDownSuggestionDirective implements Validator {\r\n\r\n @Input() InputValue: any;\r\n @Input() SearchList: any;\r\n valuesFound: any;\r\n\r\n\r\n constructor() {\r\n }\r\n\r\n validate(ctrl: AbstractControl): { [key: string]: boolean } | null {\r\n var i, filteredlist = [];\r\n this.valuesFound = [];\r\n if(this.SearchList){\r\n for(i=0; i\r\n option.toLowerCase().includes((this.InputValue).toLowerCase())\r\n );\r\n return (this.valuesFound.length == 0) ? { 'invalidValue': true } : null\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n\r\n}\r\n@NgModule({\r\n declarations: [DropDownSuggestionDirective],\r\n exports: [DropDownSuggestionDirective]\r\n})\r\n\r\nexport class DropDownSuggestionDirectiveModule { }\r\n","import { Directive, ElementRef, HostListener, NgModule } from '@angular/core';\r\nimport { MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition, MatSnackBar } from '@angular/material/snack-bar';\r\n\r\n@Directive({\r\n selector: '[appEmptySpacesValidations]'\r\n})\r\nexport class EmptySpacesValidationsDirective {\r\n\r\n //giving snackbar horizontal and vertical positions for showing the messages to the user\r\n horizontalPosition: MatSnackBarHorizontalPosition = \"right\";\r\n verticalPosition: MatSnackBarVerticalPosition = \"top\";\r\n\r\n constructor(private _ele: ElementRef, private _snackBar: MatSnackBar,) {\r\n }\r\n\r\n // Used on keypress because it will allow the user to use shift and capitalize the alphabets where as its not enabling this feature in the keyup and keydown\r\n @HostListener('keyup', ['$event']) onKeyPress(event: any) {\r\n // stringfy the event\r\n var val = String(event.target.value || \"\");\r\n\r\n //if the input by the user is not following the regex or giving empty spaces\r\n var valueEvent = event.target.value.toString();\r\n if (valueEvent.charCodeAt(0) == 32) {\r\n this._snackBar.open(\r\n 'No Empty spaces allowed',\r\n 'x',\r\n {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n event.preventDefault();\r\n event.target.value = valueEvent.substring(1);\r\n }\r\n\r\n }\r\n}\r\n\r\n@NgModule({\r\n declarations: [EmptySpacesValidationsDirective],\r\n exports: [EmptySpacesValidationsDirective]\r\n})\r\n\r\nexport class EmptySpacesValidationsDirectiveModule { }\r\n","import { Directive, ElementRef, HostListener, NgModule } from '@angular/core';\r\nimport { MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition, MatSnackBar } from '@angular/material/snack-bar';\r\n\r\n@Directive({\r\n selector: '[appGradesValidations]'\r\n})\r\nexport class GradesValidationsDirective {\r\n //Regex for following alphanumerics\r\n private regex: RegExp = /^(?:[A-Za-z0-9 -]+)([A-Za-z0-9]*)$/;\r\n\r\n //giving snackbar horizontal and vertical positions for showing the messages to the user\r\n horizontalPosition: MatSnackBarHorizontalPosition = \"right\";\r\n verticalPosition: MatSnackBarVerticalPosition = \"top\";\r\n\r\n constructor(private _ele: ElementRef, private _snackBar: MatSnackBar,) {\r\n }\r\n\r\n // Used on keypress because it will allow the user to use shift and capitalize the alphabets where as its not enabling this feature in the keyup and keydown\r\n // Used on keypress because it will allow the user to use shift and capitalize the alphabets where as its not enabling this feature in the keyup and keydown\r\n @HostListener('keyup', ['$event']) onKeyPress(event: any) {\r\n // stringfy the event\r\n var val = String(event.target.value || \"\");\r\n\r\n //if the input by the user is not following the regex or giving empty spaces\r\n var valStr = event.target.value.toString();\r\n if (!this.regex.test(event.key) && valStr.length > 1) {\r\n // when the user is giving special characters in between the input\r\n // if(valStr.charCodeAt(0) == 16 && ((valStr.charCodeAt(0) < 47 && valStr.charCodeAt(0) > 122) ||(valStr.charCodeAt(0) < 65 && valStr.charCodeAt(0) > 90))){\r\n\r\n // }\r\n this._snackBar.open(\r\n 'Begin with Alphanumerics. Special Characters except _ and & are not allowed',\r\n 'x',\r\n {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n event.preventDefault();\r\n event.target.value = valStr.substring(0, valStr.length - 1);\r\n }\r\n\r\n else if (valStr.length == 1) {\r\n if (event.shiftKey || valStr.charCodeAt(0) == 45) {\r\n if ((valStr.charCodeAt(0) < 47 || valStr.charCodeAt(0) > 122) || (valStr.charCodeAt(0) < 65 || valStr.charCodeAt(0) > 90) || valStr.charCodeAt(0) == 45) {\r\n this._snackBar.open(\r\n 'Begin with Alphanumerics. Special Characters except - are not allowed',\r\n 'x',\r\n {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n event.preventDefault();\r\n event.target.value = null;\r\n }\r\n }\r\n }\r\n\r\n }\r\n\r\n}\r\n\r\n@NgModule({\r\n declarations: [GradesValidationsDirective],\r\n exports: [GradesValidationsDirective]\r\n})\r\n\r\nexport class GradesValidationsDirectiveModule { }\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { Router } from '@angular/router';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { AbscondService } from '../../Services/abscond.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ViewAbscondDetailedStatusComponent } from '../view-abscond-detailed-status/view-abscond-detailed-status.component';\r\n\r\n@Component({\r\n selector: 'app-abscond-dashboard',\r\n templateUrl: './abscond-dashboard.component.html',\r\n styleUrls: ['./abscond-dashboard.component.scss']\r\n})\r\nexport class AbscondDashboardComponent implements OnInit {\r\n EmpId: number;\r\n roleName: string;\r\n DeptId: number;\r\n associateList= [];\r\n dialogResponse: boolean;\r\n @ViewChild('Paginator', { static: false }) Paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n displayColumns = ['EmployeeCode', 'EmployeeName', 'StatusCode', 'Acknowledge', 'Activity', 'Clearance'];\r\n dataSourceData: MatTableDataSource;\r\n constructor(private route: Router, private abscondService: AbscondService,\r\n private _snackBar: MatSnackBar, private spinner: NgxSpinnerService,\r\n public dialog: MatDialog) { }\r\n\r\n ngOnInit(): void {\r\n this.roleName = JSON.parse(\r\n sessionStorage.AssociatePortal_UserInformation\r\n ).roleName;\r\n this.EmpId = JSON.parse(\r\n sessionStorage.AssociatePortal_UserInformation\r\n ).employeeId;\r\n this.DeptId = JSON.parse(\r\n sessionStorage.Department\r\n ).DepartmentId;\r\n this.GetAssociateExitList();\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSourceData.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSourceData = new MatTableDataSource(this.associateList);\r\n this.dataSourceData.paginator = this.Paginator;\r\n this.dataSourceData.sort = this.sort;\r\n }\r\n }\r\n\r\n GetAssociateExitList(): void {\r\n this.abscondService.GetAssociatesAbscondDashboard(this.roleName, this.EmpId, this.DeptId).subscribe((res: any[]) => {\r\n this.associateList = res['Items']\r\n this.dataSourceData = new MatTableDataSource(this.associateList);\r\n this.dataSourceData.sort = this.sort;\r\n this.dataSourceData.paginator = this.Paginator;\r\n });\r\n\r\n }\r\n abscond(element){\r\n this.route.navigate(['/associateexit/abscond-details/'+ element.AssociateId]);\r\n }\r\n\r\n getExitChecklist(selectedData: any) {\r\n this.route.navigate(['/associateexit/abscond/' + selectedData.AssociateId]);\r\n }\r\n\r\n onList(selectedData: any) {\r\n this.route.navigate(['/associateexit/abscond-deptchecklist/' + selectedData.AssociateId]);\r\n\r\n }\r\n\r\n Associateexitform(selectedData: any) {\r\n // this.route.navigate([\"/associateexit/view/\" + selectedData.EmployeeId]);\r\n\r\n this.route.navigate(['/associateexit/exitfeedback/' + selectedData.EmployeeId]);\r\n }\r\n\r\n ViewDetailedStatus(EmployeeId: number) {\r\n const dialogRef = this.dialog.open(ViewAbscondDetailedStatusComponent, {\r\n width: '500px',\r\n // disableClose: true,\r\n data: { value: EmployeeId}\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.dialogResponse = result;\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 \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 \r\n \r\n \r\n \r\n
Emp Id {{element.AssociateCode}} Employee Name\r\n {{element.AssociateName}} Status \r\n {{element.StatusDesc}}\r\n {{element.StatusDesc}}\r\n {{element.StatusDesc}}\r\n \r\n Acknowledge \r\n \r\n check\r\n \r\n \r\n check\r\n \r\n visibility\r\n visibility\r\n \r\n Activity \r\n \r\n visibility\r\n visibility\r\n \r\n Clearance \r\n \r\n
No Records
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { Observable } from 'rxjs';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { AbscondService } from '../../Services/abscond.service';\r\nimport { CreateAbscond } from '../../Models/abscond.model'\r\nimport { startWith, map } from 'rxjs/operators';\r\nimport * as moment from 'moment';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\ninterface SelectItem {\r\n value: number;\r\n label: string;\r\n}\r\n@Component({\r\n selector: 'app-abscond-details',\r\n templateUrl: './abscond-details.component.html',\r\n styleUrls: ['./abscond-details.component.scss']\r\n})\r\nexport class AbscondDetailsComponent implements OnInit {\r\n abscondForm: FormGroup;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n associatesList: SelectItem[] = [];\r\n filteredAssociates: Observable;\r\n leadId: number;\r\n deptId: number;\r\n currentDate = new Date();\r\n roleName: string;\r\n associateId: number;\r\n AbscondDetails: CreateAbscond = new CreateAbscond();\r\n Abscondobj = [];\r\n disablefields = false;\r\n disableforHRM = false;\r\n disablebuttons = false;\r\n constructor(private actRoute: ActivatedRoute, private abscondService: AbscondService, private _snackBar: MatSnackBar,\r\n private spinner: NgxSpinnerService, private _router: Router) { }\r\n\r\n ngOnInit(): void {\r\n this.actRoute.params.subscribe(params => {\r\n this.associateId = params.id;\r\n });\r\n this.roleName = JSON.parse(\r\n sessionStorage.AssociatePortal_UserInformation\r\n ).roleName;\r\n this.leadId = JSON.parse(\r\n sessionStorage.AssociatePortal_UserInformation\r\n ).employeeId;\r\n this.deptId = JSON.parse(\r\n sessionStorage.AssociatePortal_UserInformation\r\n ).departmentId;\r\n this.AbscondForm();\r\n this.getAssociateList();\r\n this.getAbscondDetailsById();\r\n }\r\n getAbscondDetailsById() {\r\n this.abscondService.GetAbscondDetailByAssociateId(this.associateId).subscribe(res => {\r\n this.Abscondobj = res['Item']\r\n if (this.Abscondobj) {\r\n this.abscondForm.controls['associateId'].setValue({\r\n label: this.Abscondobj['AssociateName'],\r\n value: this.Abscondobj['AssociateId']\r\n })\r\n this.abscondForm.controls['absentFromDate'].setValue(this.Abscondobj['AbsentFromDate'])\r\n this.abscondForm.controls['absentToDate'].setValue(this.Abscondobj['AbsentToDate'])\r\n this.abscondForm.controls['remarksByTL'].setValue(this.Abscondobj['RemarksByTL'])\r\n this.abscondForm.controls['remarksByHRA'].setValue(this.Abscondobj['RemarksByHRA'])\r\n this.abscondForm.controls['remarksByHRM'].setValue(this.Abscondobj['RemarksByHRM'])\r\n this.abscondForm.controls['isAbscond'].setValue(this.Abscondobj['IsAbscond'])\r\n this.disablefields = true;\r\n if (this.roleName === 'HRM') {\r\n this.disableforHRM = true;\r\n }\r\n if(this.Abscondobj['StatusId'] === 43){\r\n this.abscondForm.disable();\r\n }\r\n if(this.Abscondobj['StatusId'] === 43 || this.Abscondobj['StatusId'] === 40 ){\r\n this.disablebuttons = true;\r\n }\r\n if((this.Abscondobj['StatusId'] === 40 || this.Abscondobj['StatusId'] === 34) && this.roleName === 'HRA'){\r\n this.abscondForm.disable();\r\n this.disablebuttons = true;\r\n }\r\n }\r\n })\r\n }\r\n\r\n displayFn(user: any) {\r\n return user && user.label ? user.label : '';\r\n }\r\n\r\n AbscondForm() {\r\n this.abscondForm = new FormGroup({\r\n associateId: new FormControl(null),\r\n absentFromDate: new FormControl(null),\r\n absentToDate: new FormControl(null),\r\n remarksByTL: new FormControl(null, Validators.required),\r\n remarksByHRA: new FormControl(null),\r\n remarksByHRM: new FormControl(null),\r\n isAbscond: new FormControl(false, [])\r\n });\r\n if (this.roleName === 'HRA') {\r\n this.abscondForm.controls['remarksByHRA'].setValidators(Validators.required);\r\n this.abscondForm.controls['remarksByHRA'].updateValueAndValidity();\r\n }\r\n if (this.roleName === 'HRM') {\r\n this.abscondForm.controls['remarksByHRM'].setValidators(Validators.required);\r\n this.abscondForm.controls['remarksByHRM'].updateValueAndValidity();\r\n }\r\n }\r\n\r\n getAssociateList(): void {\r\n this.spinner.show();\r\n this.abscondService\r\n .GetAssociateByLead(this.leadId, this.deptId)\r\n .subscribe(associateResponse => {\r\n this.spinner.hide();\r\n associateResponse['Items'].forEach(res => {\r\n this.associatesList.push({\r\n label: res.AssociateName,\r\n value: res.AssociateId,\r\n });\r\n });\r\n this.filteredAssociates = this.abscondForm.get('associateId').valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterAssociates(value))\r\n );\r\n }),\r\n (error: any) => {\r\n this.spinner.hide();\r\n if (error._body != undefined && error._body != '')\r\n this._snackBar.open(error.error, 'x', {\r\n\r\n duration: 1000,\r\n panelClass: ['Failed to get Associate List'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n };\r\n }\r\n\r\n private _filterAssociates(value) {\r\n let filterValue;\r\n if (typeof value === 'string') {\r\n filterValue = value.toLowerCase();\r\n } else if (value !== null) {\r\n filterValue = value.label;\r\n } else {\r\n return this.associatesList;\r\n }\r\n\r\n return this.associatesList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n }\r\n Submit() {\r\n this.AbscondDetails.associateId = this.abscondForm.value.associateId.value;\r\n this.AbscondDetails.absentFromDate = this.abscondForm.value.absentFromDate;\r\n this.AbscondDetails.absentToDate = this.abscondForm.value.absentToDate;\r\n this.AbscondDetails.remarksByTL = this.abscondForm.value.remarksByTL;\r\n this.AbscondDetails.remarksByHRA = this.abscondForm.value.remarksByHRA;\r\n this.AbscondDetails.remarksByHRM = this.abscondForm.value.remarksByHRM\r\n this.AbscondDetails.isAbscond = this.abscondForm.value.isAbscond;\r\n if (this.roleName === 'HRA') {\r\n this.acknowledgeByHRA()\r\n }\r\n if (this.roleName === 'HRM') {\r\n this.ConfirmAbscond()\r\n }\r\n\r\n }\r\n acknowledgeByHRA() {\r\n if (this.abscondForm.value.remarksByHRA) {\r\n this.abscondService.AcknowledgeAbscond(this.AbscondDetails).subscribe(res => {\r\n if (res && res['IsSuccessful'] == true) {\r\n this._snackBar.open('Abscond Acknowledged Successfully.', 'x', {\r\n duration: 2000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this._router.navigate(['associateexit/abscond-dashboard']);\r\n }\r\n else {\r\n this._snackBar.open(res['Message'], 'x', {\r\n duration: 2000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open('Error occured while submitting!.', 'x', {\r\n duration: 2000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n })\r\n }\r\n else {\r\n return;\r\n }\r\n\r\n }\r\n ConfirmAbscond() {\r\n if (this.abscondForm.value.remarksByHRM) {\r\n this.abscondService.ConfirmAbscond(this.AbscondDetails).subscribe(res => {\r\n if (res && res['IsSuccessful'] == true) {\r\n if(this.AbscondDetails.isAbscond === true){\r\n this._snackBar.open('Abscond Confirmed Successfully.', 'x', {\r\n duration: 2000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n else{\r\n this._snackBar.open('Abscond Disproved Successfully.', 'x', {\r\n duration: 2000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n this._router.navigate(['associateexit/abscond-dashboard']);\r\n }\r\n else {\r\n this._snackBar.open(res['Message'], 'x', {\r\n duration: 2000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open('Error occured while submitting!.', 'x', {\r\n duration: 2000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n })\r\n }\r\n else {\r\n return;\r\n }\r\n\r\n }\r\n clear() {\r\n if (this.roleName === 'HRA') {\r\n this.abscondForm.controls['remarksByHRA'].setValue(null);\r\n }\r\n if (this.roleName === 'HRM') {\r\n this.abscondForm.controls['remarksByHRM'].setValue(null);\r\n }\r\n }\r\n onBack(){\r\n this._router.navigate(['associateexit/abscond-dashboard'])\r\n }\r\n AbscondClearance(){\r\n this.AbscondDetails.associateId = this.abscondForm.value.associateId.value;\r\n this.AbscondDetails.absentFromDate = this.abscondForm.value.absentFromDate;\r\n this.AbscondDetails.absentToDate = this.abscondForm.value.absentToDate;\r\n this.AbscondDetails.remarksByTL = this.abscondForm.value.remarksByTL;\r\n this.AbscondDetails.remarksByHRA = this.abscondForm.value.remarksByHRA;\r\n this.AbscondDetails.remarksByHRM = this.abscondForm.value.remarksByHRM\r\n this.AbscondDetails.isAbscond = this.abscondForm.value.isAbscond;\r\n this.abscondService.AbscondClearance(this.AbscondDetails).subscribe(res => {\r\n if(res && res['IsSuccessful'] == true){\r\n this._snackBar.open('Clearance given Successfully', 'x', {\r\n duration: 2000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this._router.navigate(['associateexit/abscond-dashboard']);\r\n }\r\n else{\r\n this._snackBar.open(res['Message'], 'x', {\r\n duration: 2000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n },\r\n (error) => {\r\n this._snackBar.open('Error occured while submitting!', 'x', {\r\n duration: 2000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n })\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n Associate Abscond Details\r\n
\r\n
\r\n \r\n
\r\n

\r\n
\r\n
\r\n
\r\n \r\n Employee *\r\n \r\n \r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Absent From Date*\r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n \r\n Absent To Date*\r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n Remarks By Team Lead*\r\n \r\n \r\n Remarks Required.\r\n \r\n \r\n
\r\n
\r\n \r\n Remarks By HRA*\r\n \r\n \r\n Remarks is Required.\r\n \r\n \r\n
\r\n
\r\n \r\n Remarks By HRM*\r\n \r\n \r\n Remarks is Required.\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n  Is Abscond\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n  Is Abscond\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { Observable } from 'rxjs';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { AbscondService } from '../../Services/abscond.service';\r\nimport { CreateAbscond } from '../../Models/abscond.model'\r\nimport { startWith, map } from 'rxjs/operators';\r\nimport * as moment from 'moment';\r\n\r\ninterface SelectItem {\r\n value: number;\r\n label: string;\r\n}\r\n@Component({\r\n selector: 'app-abscond',\r\n templateUrl: './abscond.component.html',\r\n styleUrls: ['./abscond.component.scss']\r\n})\r\nexport class AbscondComponent implements OnInit {\r\n abscondForm: FormGroup;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n associates : any;\r\n associatesList: SelectItem[] = [];\r\n filteredAssociates: Observable;\r\n leadId: number;\r\n deptId: number;\r\n currentDate = new Date();\r\n roleName: string;\r\n createAbscond: CreateAbscond = new CreateAbscond();\r\n constructor(private abscondService: AbscondService, private _snackBar: MatSnackBar,\r\n private spinner: NgxSpinnerService) { }\r\n\r\n ngOnInit(): void {\r\n this.roleName = JSON.parse(\r\n sessionStorage.AssociatePortal_UserInformation\r\n ).roleName;\r\n this.leadId = JSON.parse(\r\n sessionStorage.AssociatePortal_UserInformation\r\n ).employeeId;\r\n this.deptId = JSON.parse(\r\n sessionStorage.AssociatePortal_UserInformation\r\n ).departmentId;\r\n this.AbscondForm();\r\n this.getAssociateList();\r\n }\r\n displayFn(user: any) {\r\n return user && user.label ? user.label : '';\r\n }\r\n clearField(fieldName, event) {\r\n if (fieldName == 'associateId') {\r\n event.stopPropagation();\r\n this.abscondForm.controls.associateId.setValue('');\r\n }\r\n }\r\n AbscondForm() {\r\n this.abscondForm = new FormGroup({\r\n associateId: new FormControl(null, Validators.required),\r\n absentFromDate: new FormControl(null, Validators.required),\r\n absentToDate: new FormControl(null, Validators.required),\r\n remarksByTL: new FormControl(null, Validators.required)\r\n });\r\n }\r\n\r\n getAssociateList(): void {\r\n this.spinner.show();\r\n this.abscondService\r\n .GetAssociateByLead(this.leadId, this.deptId)\r\n .subscribe(associateResponse => {\r\n this.spinner.hide();\r\n this.associates = associateResponse['Items'];\r\n associateResponse['Items'].forEach(res => {\r\n this.associatesList.push({\r\n label: res.AssociateName,\r\n value: res.AssociateId,\r\n });\r\n });\r\n this.filteredAssociates = this.abscondForm.get('associateId').valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterAssociates(value))\r\n );\r\n }),\r\n (error: any) => {\r\n this.spinner.hide();\r\n if (error._body != undefined && error._body != '')\r\n this._snackBar.open(error.error, 'x', {\r\n\r\n duration: 1000,\r\n panelClass: ['Failed to get Associate List'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n };\r\n }\r\n\r\n private _filterAssociates(value) {\r\n let filterValue;\r\n if (typeof value === 'string') {\r\n filterValue = value.toLowerCase();\r\n } else if (value !== null) {\r\n filterValue = value.label;\r\n } else {\r\n return this.associatesList;\r\n }\r\n\r\n return this.associatesList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n }\r\n GetSelectedAssociate(value){\r\n let obj =this.associates.find(ele => ele.AssociateId == value);\r\n if(obj.AssociateExitFlag){\r\n this._snackBar.open('Already Associate raised resignation!', 'x', {\r\n duration: 2000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.abscondForm.reset();\r\n this.abscondForm.controls.associateId.setValue('');\r\n }\r\n\r\n }\r\n CreateAbscondRequest() {\r\n this.abscondForm.markAllAsTouched();\r\n if (this.abscondForm.valid) {\r\n this.createAbscond.associateId = this.abscondForm.value.associateId.value;\r\n this.createAbscond.absentFromDate = moment(this.abscondForm.value.absentFromDate).format('YYYY-MM-DD')\r\n this.createAbscond.absentToDate = moment(this.abscondForm.value.absentToDate).format('YYYY-MM-DD')\r\n this.createAbscond.remarksByTL = this.abscondForm.value.remarksByTL;\r\n this.createAbscond.tlId = this.leadId;\r\n this.abscondService.CreateAbscond(this.createAbscond).subscribe(res => {\r\n if (res && res['IsSuccessful'] == true) {\r\n this._snackBar.open('Marked as Abscond Successfully.', 'x', {\r\n duration: 2000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.clear();\r\n }\r\n else {\r\n this._snackBar.open(res['Message'], 'x', {\r\n duration: 2000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open('Error occured while submitting!.', 'x', {\r\n duration: 2000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n })\r\n }\r\n else{\r\n return;\r\n }\r\n }\r\n clear() {\r\n this.abscondForm.reset();\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n \r\n Employee *\r\n \r\n \r\n \r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n Employee is required\r\n \r\n \r\n Select Employee from given options\r\n \r\n \r\n
\r\n
\r\n \r\n Absent From Date*\r\n \r\n \r\n \r\n \r\n Absent From Date is required.\r\n \r\n \r\n\r\n
\r\n
\r\n \r\n Absent To Date*\r\n \r\n \r\n \r\n \r\n Absent To Date is required.\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n Remarks By Team Lead*\r\n \r\n \r\n Remarks is Required.\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 { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { from, Subscription } from 'rxjs';\r\nimport { ProjectsData } from 'src/app/modules/master-layout/models/projects.model';\r\nimport { Associate } from '../../../onboarding/models/associate.model';\r\nimport { ActivityData, ActivityDataByDepartment, ActivityDetails, ActivityList } from '../../Models/activitymodel';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { FormControl, FormGroup, Validators, FormBuilder, FormArray } from '@angular/forms';\r\nimport { ChecklistService } from '../../Services/checklist.service';\r\nimport { AssociateExit } from '../../Models/associateExit.model';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\n\r\n@Component({\r\n selector: 'app-activitylist',\r\n templateUrl: './activitylist.component.html',\r\n styleUrls: ['./activitylist.component.scss']\r\n})\r\nexport class ActivitylistComponent implements OnInit {\r\n\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n serviceDeptID: number;\r\n checklist: Map = new Map();\r\n displayedColumns: string[];\r\n empId: number;\r\n projectState: string;\r\n associateStateSubscription: Subscription;\r\n fullName: string;\r\n roleName: string;\r\n AssociateResignation: AssociateExit;\r\n programManagerName: string = '';\r\n designationName: string = '';\r\n exitDate: Date;\r\n checklistForm: FormGroup;\r\n projectId: number;\r\n EmployeeId: number;\r\n departmentId: number;\r\n employeeIdSubscription: Subscription;\r\n projectData: ProjectsData;\r\n associateData: Associate;\r\n activityData: ActivityData;\r\n dashboard: string;\r\n hideBack: boolean = false;\r\n showback: boolean = true;\r\n pageload: boolean = false;\r\n UserRole: string;\r\n mangerForm: FormGroup;\r\n activityType: Map = new Map();\r\n prevActivity: string;\r\n disableform = false;\r\n IsRequired: Map = new Map();\r\n currentPath: string;\r\n\r\n constructor(\r\n private checklistService: ChecklistService,\r\n private router: Router,\r\n public dialog: MatDialog,\r\n public fb: FormBuilder,\r\n private actRoute: ActivatedRoute,\r\n private _snackBar: MatSnackBar,\r\n private spinner: NgxSpinnerService\r\n\r\n ) {\r\n\r\n }\r\n\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort;\r\n\r\n ngOnInit(): void {\r\n // this.createForm();\r\n this.spinner.show();\r\n this.actRoute.url.subscribe(url => { this.currentPath = url[0].path; });\r\n this.EmployeeId = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).EmployeeId;\r\n this.fullName = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).fullName;\r\n this.roleName = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).roleName;\r\n\r\n if (sessionStorage.getItem(\"AssociatePortal_UserInformation\") != null) {\r\n const currentRole = JSON.parse(\r\n sessionStorage.getItem(\"AssociatePortal_UserInformation\")\r\n ).roleName;\r\n this.UserRole = currentRole;\r\n this.empId = JSON.parse(\r\n sessionStorage.getItem(\"AssociatePortal_UserInformation\")\r\n ).employeeId;\r\n }\r\n if(sessionStorage.getItem(\"Department\") != null){\r\n this.serviceDeptID = JSON.parse(sessionStorage.getItem(\"Department\")).DepartmentId\r\n }\r\n this.actRoute.params.subscribe(params => {\r\n\r\n this.empId = params[\"id\"];\r\n });\r\n\r\n this.actRoute.params.subscribe(params => { this.dashboard = params[\"id\"]; });\r\n this.employeeIdSubscription = this.checklistService.GetEmployeeId().subscribe(data => {\r\n this.EmployeeId = data;\r\n });\r\n this.checklistForm = new FormGroup({\r\n\r\n });\r\n\r\n\r\n this.GetExitActivitiesByDepartment(this.serviceDeptID); //using promises to handle the data\r\n // this.GetActivitiesByEmployeeIdAndDepartmentId(this.serviceDeptID); //using promises to handle the data\r\n\r\n\r\n }\r\n\r\n GetExitActivitiesByDepartment(departmentId: number){\r\n\r\n this.checklistService.GetExitActivitiesByDepartment(this.empId,departmentId)\r\n .toPromise().then((activitylist: ActivityList[])=>{\r\n this.spinner.hide();\r\n for(let i=0;i{\r\n this.getActivitiesByEmployeeIdAndDepartmentId(this.empId);\r\n });\r\n }).catch(\r\n error=>{\r\n this.spinner.hide();\r\n this._snackBar.open(\"Error while getting the exit activities by department\", 'x', {\r\n panelClass:['error-alert'],\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n })\r\n });\r\n }\r\n\r\n\r\n async getActivitiesByEmployeeIdAndDepartmentId(EmployeeId: number) {\r\n this.spinner.show();\r\n await this.checklistService.getActivitiesByEmployeeIdAndDepartmentId(EmployeeId, this.serviceDeptID).toPromise()\r\n .then((activitydata: ActivityDataByDepartment) => {\r\n this.spinner.hide();\r\n this.activityData.Remarks = activitydata.Remarks;\r\n for(let i=0;i{\r\n this.spinner.hide();\r\n this._snackBar.open(\"Error while Getting Activity Checklist\", 'x', {\r\n panelClass:['error-alert'],\r\n\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n\r\n populateFormControl(status: string){\r\n for(let i=0;i{\r\n this.spinner.hide();\r\n this._snackBar.open(\"Successfully saved\", 'x', {\r\n panelClass:['success-alert'],\r\n\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }).catch(error=>{\r\n this.spinner.hide();\r\n this._snackBar.open(\"Error while saving!\", 'x', {\r\n panelClass:['error-alert'],\r\n\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n\r\n clearValidators(){\r\n Object.keys(this.checklistForm.controls).forEach(key => {\r\n this.checklistForm.get(key).clearValidators();\r\n this.checklistForm.get(key).updateValueAndValidity();\r\n });\r\n }\r\n\r\n UpdateActivityChecklist(){\r\n\r\n this.activityData.Remarks = this.checklistForm.get('Remarks').value;\r\n for(let i=0;i{\r\n this.spinner.hide();\r\n this._snackBar.open(\"Activities Submitted Successfully\", 'x', {\r\n panelClass:['success-alert'],\r\n\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }).afterDismissed().subscribe(res=>{\r\n this.onBack();\r\n });\r\n }).catch(error=>{\r\n this.spinner.hide();\r\n this._snackBar.open(\"Error while submitting!\", 'x', {\r\n panelClass:['error-alert'],\r\n\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n\r\n canShowTitle(element: any, index: number) {\r\n\r\n let activity_details = this.activityType;\r\n if(index==0)\r\n {\r\n this.prevActivity = this.activityType.get(element.ActivityId);\r\n return true;\r\n\r\n }\r\n\r\n if (this.activityType.get(element.ActivityId) !== this.prevActivity) {\r\n this.prevActivity = this.activityType.get(element.ActivityId);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n\r\n Create() {\r\n\r\n let actDetails: ActivityDetails[] = [];\r\n for (let id of this.checklist.keys()) {\r\n actDetails.push({\r\n ActivityId: id,\r\n Value: \"no\",\r\n ActivityValue:\"no\",\r\n Remarks: \"\",\r\n value_bool: false,\r\n createdBy: this.fullName,\r\n modifiedBy: \"\",\r\n ActivityType: \"\",\r\n Description: \"\",\r\n });\r\n }\r\n this.activityData = {\r\n EmployeeId: this.empId,\r\n DepartmentId: this.serviceDeptID,\r\n Remarks: \"\",\r\n type: \"create\",\r\n ActivityDetails: actDetails\r\n }\r\n return Promise.resolve();\r\n\r\n }\r\n\r\n onBack() {\r\n if(this.currentPath === 'abscond'){\r\n this.router.navigate(['associateexit/abscond-dashboard'])\r\n }\r\n else{\r\n this.router.navigate(['shared/exit-actions']);\r\n }\r\n this.showback = false;\r\n }\r\n}\r\n","
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n

Activities

\r\n
\r\n
\r\n
\r\n \r\n

{{activityType.get(element.ActivityId)}}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{ checklist.get(element.ActivityId) }} *\r\n \r\n \r\n
\r\n
\r\n \r\n Comments\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n Remarks\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 { Component, OnInit, ViewChild, Input, Inject } from '@angular/core';\r\nimport { FormBuilder, FormControl, Validators, FormGroup, FormGroupDirective } from '@angular/forms';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { AssociateAllocation, PercentageDropDown, RoleDetails } from '../../../master-layout/models/associateallocation.model';\r\nimport * as moment from 'moment';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { AssociateExit } from '../../Models/associateExit.model';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { AssociateAllocationService } from 'src/app/modules/TalentMangment/services/associate-allocation.service';\r\nimport { TemporaryAllocationReleaseService } from 'src/app/modules/TalentMangment/services/temporary-allocation-release.service';\r\nimport { DropDownType } from 'src/app/modules/master-layout/models/dropdowntype.model';\r\nimport { ResourceRelease } from 'src/app/modules/TalentMangment/models/resourcerelease.model';\r\nimport { ExitAnalysisService } from '../../Services/exit-analysis.service';\r\nimport { MasterDataService } from 'src/app/core/services/masterdata.service';\r\nimport { ChecklistService } from '../../Services/checklist.service';\r\nimport { EmployeeData } from '../../../admin/models/employee.model';\r\nimport { EmployeeStatusService } from '../../../admin/services/employeestatus.service';\r\nimport { UploadService } from './../../../onboarding/services/upload.service';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { environment } from '../../../../../environments/environment';\r\n\r\n interface SelectItem {\r\n value : number;\r\n label : string;\r\n }\r\n\r\n\r\n@Component({\r\n selector: 'app-associate-abscond-form',\r\n templateUrl: './associate-abscond-form.component.html',\r\n styleUrls: ['./associate-abscond-form.component.scss'],\r\n providers: [EmployeeStatusService]\r\n})\r\nexport class AssociateAbscondFormComponent implements OnInit {\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n abscondForm: FormGroup;\r\n employeesList: DropDownType[] = [];\r\n employeeId: number;\r\n associatesList = [];\r\n roleName: string=\"\";\r\n employeeDetails: AssociateExit;\r\n EmployeeId: number;\r\n //formSubmitted : boolean = false;\r\n seletedemp: any;\r\n exittype:any;\r\n releaseResource: ResourceRelease;\r\n PMScreen: boolean = false;\r\n //abs:boolean=false;\r\n //sep:boolean=false;\r\n UserRole : string;\r\n aExitType:string;\r\n separationForm: FormGroup;\r\n currentPath: string;\r\n themeAppearence = themeconfig.formfieldappearances;\r\n exitReasonsList= [];\r\n showEvidence: boolean = false;\r\n formsubmitted:boolean = false;\r\n _empData: EmployeeData;\r\n _usersList = [];\r\n exitreasonlist =[];\r\n lastWorkingDate: Date;\r\n terminationForm: FormGroup;\r\n EmpName: string;\r\n disableAssociateName: boolean = false;\r\n openform: boolean = false;\r\n dashboard: string = \"HRMDashbaord\";\r\n @Input() max: any;\r\n selectedEmpdata=[]\r\n today = new Date(); \r\n AssociateExit : AssociateExit = new AssociateExit();\r\n previous:string;\r\n uploaddetails: any;\r\n id: number;\r\n filedata: any;\r\n PAstatus: any;\r\n selectedEmp:any;\r\n causeCategory: any;\r\n uploaddata: any[] = [];\r\n private _resources = servicePath.API.upload;\r\n private _serverURL = environment.EmployeeMicroService;\r\n private selectedUploadDetails: any;\r\n \r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild('messageToaster') messageToaster: any;\r\n @ViewChild('fileUpload') fileUpload: any;\r\n @ViewChild('uploadDialog') uploadDialog: any;\r\n @ViewChild('fileInput') fileInputVariable: any;\r\n @ViewChild('fileName') fileNameVariable: any;\r\n index: number;\r\n selectedFile: String = \"\";\r\n documentDesc: any = { file: \"\" };\r\n displayedColumns: string[] = [\r\n 'Sno','DocumentName','Delete'\r\n ];\r\n fileGroup: FormGroup;\r\n constructor(\r\n private _service: TemporaryAllocationReleaseService,\r\n private associateservice :ExitAnalysisService,\r\n private _router: Router,\r\n private snackBar: MatSnackBar,\r\n private actRoute: ActivatedRoute,\r\n private _servicess: EmployeeStatusService,\r\n private _snackBar: MatSnackBar,\r\n private fb: FormBuilder,\r\n private checklist: ChecklistService,\r\n private _masterDataService: MasterDataService,\r\n ) \r\n {\r\n this.today.setDate(this.today.getDate());\r\n }\r\n ngOnInit(): void {\r\n this.releaseResource = new ResourceRelease();\r\n this.actRoute.url.subscribe(url => { this.currentPath = url[0][\"path\"]; });\r\n console.log(this.currentPath);\r\n this.employeeId = JSON.parse(sessionStorage['AssociatePortal_UserInformation']).employeeId;\r\n this.roleName = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).roleName;\r\n if (sessionStorage.getItem(\"AssociatePortal_UserInformation\") != null) {\r\n const currentRole = JSON.parse(\r\n sessionStorage.getItem(\"AssociatePortal_UserInformation\")\r\n ).roleName;\r\n this.UserRole = currentRole;\r\n }\r\n this.getExitReasonsList();\r\n \r\n this.actRoute.params.subscribe(params => { this.id = params['id']; });\r\n this.fileGroup = new FormGroup(\r\n {\r\n SelectedFileShow: new FormControl(null),\r\n uploadselect: new FormControl(null)\r\n });\r\n \r\n this.clearValues();\r\n \r\n this.actRoute.data.subscribe((data)=>{\r\n this.aExitType = data['title']\r\n if(this.aExitType === 'SBH'){\r\n this.createSeparationForm();\r\n }\r\n if(this.aExitType === 'Abscond'){\r\n this.AbscondForm();\r\n }\r\n if(this.aExitType === 'Termination'){\r\n this.TerminationForm();\r\n }\r\n }) \r\n \r\n if (this.UserRole == 'HRA') {\r\n this.PMScreen = true;\r\n }\r\n //this.getEmployees();\r\n this.getUsersList();\r\n this.AbscondForm();\r\n\r\n }\r\n\r\n\r\n AbscondForm() {\r\n this.abscondForm = new FormGroup({\r\n email: new FormControl(null),\r\n abscondedFromDate: new FormControl(null),\r\n abscondedToDate: new FormControl(null),\r\n\r\n });\r\n }\r\n\r\n createSeparationForm(){\r\n this.separationForm = new FormGroup({\r\n exitDate : new FormControl(null, [Validators.required]),\r\n reasonDetail : new FormControl(null, [Validators.required]),\r\n });\r\n }\r\n TerminationForm(){\r\n this.terminationForm = new FormGroup({\r\n EmpName: new FormControl(null),\r\n causeCategory: new FormControl(null),\r\n lastWorkingDate: new FormControl(null),\r\n CauseDetails: new FormControl(null),\r\n });}\r\n /* private getEmployees(): void {\r\n this._service.GetAssociatesToRelease(this.employeeId, this.roleName).subscribe((res: any) => {\r\n this.associatesList = []\r\n this.associatesList.push({ label: '', value: null });\r\n if (res.length > 0) {\r\n res.forEach((element: any) => {\r\n if (this.associatesList.findIndex(x => x.label == element.EmpName) === -1)\r\n this.associatesList.push({ label: element.EmpName, value: element.EmployeeId });\r\n });\r\n }\r\n\r\n },\r\n (error: any) => {\r\n this.snackBar.open('Failed to Get Employees!.', 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.Clear();\r\n }\r\n );\r\n}*/\r\ngetUsersList() {\r\n this._servicess.GetAssociateNames().subscribe((res: AssociateExit[]) => {\r\n let dataList: any[] = res;\r\n this._usersList = [];\r\n this._usersList.push({ label: '', value: null });\r\n dataList.forEach(e => {\r\n this._usersList.push({ label: e.EmpName, value: e.EmpId });\r\n });\r\n if (this.employeeId > 0) {\r\n console.log(this.employeeId);\r\n }\r\n },\r\n (error: any) => {\r\n this.snackBar.open('Failed to Get Employees!.', 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.Clear();\r\n }\r\n);\r\n}\r\n\r\n\r\nsubmit() {\r\n console.log(this.seletedemp);\r\n let isValid = true;\r\n if(isValid === true){\r\n let SubmitData = {\r\n \"EmployeeId\": this.seletedemp,\r\n\r\n }\r\n this.employeeDetails = new AssociateExit();\r\n this.employeeDetails.email = this.abscondForm.value.email;\r\n this.employeeDetails.EmployeeId = this.seletedemp;\r\n this.employeeDetails.email = this.abscondForm.value.email;\r\n this.employeeDetails.abscondedFromDate = this.abscondForm.value.abscondedFromDate;\r\n this.employeeDetails.abscondedToDate = this.abscondForm.value.abscondedToDate;\r\n this.employeeDetails.ExitTypeId = 2 /* Abscond*/\r\n this.associateservice.CreateAssociateAbscond(this.employeeDetails).toPromise()\r\n .then(() => {\r\n \r\n this.snackBar.open(\" Submitted Successfully\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }).afterDismissed().subscribe(res => {\r\n // this.onBack();\r\n this.Clear();\r\n\r\n });\r\n \r\n }).catch(error => {\r\n this.snackBar.open(\"Error while submit!\", 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n}\r\n\r\nsubmitSBH(){ // separation by hr\r\n // this.employeeDetails = new AssociateExit();\r\n let postObj = {}\r\n postObj['EmployeeId'] = this.seletedemp;\r\n postObj['ExitTypeId'] = 3;\r\n postObj['ReasonDetail'] = this.separationForm.value.reasonDetail;\r\n console.log(postObj,'----------------')\r\n this.associateservice.CreateAssociateAbscond(postObj).toPromise()\r\n .then(() => {\r\n \r\n this.snackBar.open(\" Submitted Successfully\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }).afterDismissed().subscribe(res => {\r\n // this.onBack();\r\n this.Clear();\r\n\r\n });\r\n \r\n }).catch(error => {\r\n this.snackBar.open(\"Error while submit!\", 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n}\r\nClear() {\r\n this.abscondForm;\r\n this.seletedemp;\r\n}\r\n\r\n \r\n \r\n \r\n getExitReasonsList(){\r\n this._masterDataService.GetExitReasons().subscribe((data:any[]) => {\r\n console.log(data);\r\n this.exitreasonlist.push({label: 'Select Category', value:null})\r\n data.forEach(e=>{this.exitreasonlist.push({label:e.Name, value: e.Id})})\r\n console.log(this.exitreasonlist);\r\n });\r\n }\r\n \r\n \r\n clearValues = function () {\r\n setTimeout(() => \r\n this.formGroupDirective.resetForm(), 0)\r\n \r\n }\r\n\r\n \r\n \r\n onSubmit() {\r\n this.formsubmitted=true;\r\n if(this.terminationForm.valid){\r\n console.log(this.selectedEmp);\r\n //let isValid = true;\r\n //if(isValid === true){\r\n let SubmitData = {\r\n \"EmployeeId\": this.selectedEmp,\r\n \"ReasonId\": this.causeCategory\r\n }\r\n this.AssociateExit.EmployeeId =this.selectedEmp;\r\n this.AssociateExit.ExitDate = this.terminationForm.value.lastWorkingDate;\r\n this.AssociateExit.ReasonId = this.causeCategory;\r\n this.AssociateExit.CauseDetails = this.terminationForm.value.CauseDetails;\r\n this.AssociateExit.ExitType = 'termination';\r\n\r\n this.checklist.SubmitTermination(this.AssociateExit).subscribe(res => {\r\n if (res) {\r\n this._snackBar.open('Termination Submitted successfully.', 'x', {\r\n duration: 1000,\r\n panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this._router.navigate([\"/shared/dashboard\"]);\r\n }\r\n else if(Error){\r\n this._snackBar.open('Associate Already Exists', 'x', {\r\n duration: 1000,\r\n panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n }),\r\n error => {\r\n this._snackBar.open('Unable to submit Termination', 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\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 Employee Name\r\n\r\n \r\n \r\n \r\n {{user.label}}\r\n \r\n\r\n \r\n
\r\n
\r\n \r\n Period of absence from\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Period of absence to\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Personal E-mail\r\n\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Cause Details\r\n \r\n\r\n \r\n
\r\n
\r\n \r\n Evidence\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 Employee Name\r\n \r\n \r\n \r\n \r\n {{user.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Exit date\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Reason Details\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 Associate Name\r\n \r\n \r\n {{user.label}}\r\n \r\n \r\n \r\n \r\n Assosiate Name Required\r\n \r\n \r\n
\r\n\r\n \r\n
\r\n \r\n Cause Category\r\n \r\n {{aspect.label}}\r\n \r\n \r\n \r\n \r\n Cause Category Required\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Last Working Date\r\n \r\n \r\n \r\n \r\n \r\n \r\n Last Working Date Required.\r\n \r\n \r\n \r\n Cause Details\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, ViewChildren, QueryList, ViewChild } from '@angular/core';\r\nimport { Validators, FormGroup, FormBuilder, FormGroupDirective} from '@angular/forms';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { AnalysisData, AnalysisFilterData, ReportsFilterData } from '../../Models/analysis.model'\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport * as moment from 'moment';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { MatSnackBar, MatSnackBarVerticalPosition, MatSnackBarHorizontalPosition } from '@angular/material/snack-bar';\r\nimport { ExitAnalysisService } from '../../Services/exit-analysis.service';\r\nimport { AssociateExitCauseFormComponent } from '../associate-exit-cause-form/associate-exit-cause-form.component';\r\nimport { ViewAnalysisFormComponent } from '../view-analysis-form/view-analysis-form.component';\r\nimport { TableUtil } from \"../../Services/exportUtil\";\r\n\r\n@Component({\r\n selector: 'app-associate-exit-analysis',\r\n templateUrl: './associate-exit-analysis.component.html',\r\n styleUrls: ['./associate-exit-analysis.component.scss']\r\n})\r\nexport class AssociateExitAnalysisComponent implements OnInit {\r\n themeAppearence = themeconfig.formfieldappearances;\r\n step = 0;\r\n dataSource: MatTableDataSource;\r\n searchData: AnalysisFilterData;\r\n analysisData: AnalysisData[];\r\n searchFormSubmitted: boolean = false;\r\n displayCause: boolean = false;\r\n displaySelectProject: boolean = false;\r\n showGrid: boolean = false;\r\n actionexport = true;\r\n errorSummary: string = '';\r\n reportsFilterData: ReportsFilterData;\r\n totalRecordsCount: number;\r\n FromDate: Date;\r\n ToDate: Date;\r\n fromDate: string;\r\n toDate: string;\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n private resources = servicePath.API.PagingConfigValue;\r\n filterDisplay: boolean = false;\r\n isLoading: boolean = false;\r\n showHideDetails: boolean = false;\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'right';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n myForm: FormGroup;\r\n\r\n @ViewChildren(MatPaginator) paginator = new QueryList();\r\n @ViewChildren(MatSort) sort = new QueryList();\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n\r\n\r\n displayedColumns: string[] = [\r\n 'EmployeeCode', 'EmployeeName', 'ExitDate', 'ExitType',\r\n 'ExitReasonDetail', 'SummaryOfExitFeedback', 'RootCause', 'ActionItem',\r\n 'TagretDate', 'ActualDate', 'Responsibility', 'Remarks', 'Status', 'Action'\r\n ];\r\n\r\n constructor(private causeService: ExitAnalysisService,\r\n public dialog: MatDialog,\r\n private fb: FormBuilder,\r\n public navService: NavService,\r\n private snackBar: MatSnackBar) {\r\n this.searchData = new AnalysisFilterData();\r\n this.reportsFilterData = new ReportsFilterData();\r\n\r\n this.PageSize = this.resources.PageSize;\r\n this.PageDropDown = this.resources.PageDropDown;\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n this.myForm = this.fb.group({\r\n FromDate: ['', [Validators.required]],\r\n ToDate: [ '', [Validators.required]],\r\n });\r\n\r\n }\r\n show_hide_details() {\r\n this.showHideDetails = !this.showHideDetails;\r\n }\r\n ngAfterViewInit() { this.dataSource.sort = this.sort.toArray()[0]; }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n if (filterValue) {\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n else {\r\n this.dataSource = new MatTableDataSource(this.analysisData);\r\n this.dataSource.paginator = this.paginator.toArray()[0];\r\n this.dataSource.sort = this.sort.toArray()[0];\r\n }\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.analysisData);\r\n this.dataSource.paginator = this.paginator.toArray()[0];\r\n this.dataSource.sort = this.sort.toArray()[0];\r\n }\r\n }\r\n\r\n\r\n submitReport() {\r\n this.isLoading = true;\r\n this.step = 1;\r\n this.searchFormSubmitted = true;\r\n if (this.myForm.controls.FromDate.value === '' || this.myForm.controls.ToDate.value === '' || this.myForm.controls.FromDate.value === null || this.myForm.controls.ToDate.value === null) {\r\n this.isLoading = false;\r\n return;\r\n }\r\n\r\n if (this.searchData.FromDate != null && this.searchData.ToDate != null) {\r\n this.errorSummary = '';\r\n if (moment(this.searchData.FromDate).isSameOrAfter(new Date())) {\r\n this.errorSummary = 'From date should be less than today';\r\n this.isLoading = false;\r\n this.snackBar.open('From date should be less than today', 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n\r\n return false;\r\n }\r\n if (moment(this.searchData.ToDate).isSameOrAfter(new Date())) {\r\n this.errorSummary = 'To date should be less than today';\r\n this.isLoading = false;\r\n this.snackBar.open('To date should be less than today', 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n return false;\r\n }\r\n if (moment(this.searchData.FromDate).isSameOrAfter(this.searchData.ToDate)) {\r\n this.errorSummary = 'From Date should be less than To Date';\r\n this.isLoading = false;\r\n this.snackBar.open('From Date should be less than To Date', 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n return false;\r\n }\r\n this.reportsFilterData = new ReportsFilterData();\r\n this.reportsFilterData.causeFilterData = new AnalysisFilterData();\r\n this.reportsFilterData.causeFilterData.FromDate = moment(this.searchData.FromDate).toDate();\r\n this.reportsFilterData.causeFilterData.ToDate = moment(this.searchData.ToDate).toDate();\r\n let from_date = this.reportsFilterData.causeFilterData.FromDate.getFullYear() + \"/\" + (this.reportsFilterData.causeFilterData.FromDate.getMonth() + 1) + \"/\" + this.reportsFilterData.causeFilterData.FromDate.getDate();\r\n let to_date = this.reportsFilterData.causeFilterData.ToDate.getFullYear() + \"/\" + (this.reportsFilterData.causeFilterData.ToDate.getMonth() + 1) + \"/\" + this.reportsFilterData.causeFilterData.ToDate.getDate();\r\n this.causeService.getAssociateExitAnalysis(from_date, to_date).subscribe((res: AnalysisData[]) => {\r\n\r\n if (res) {\r\n this.analysisData = res;\r\n this.isLoading = false;\r\n this.showGrid = true;\r\n this.dataSource = new MatTableDataSource(this.analysisData);\r\n this.dataSource.paginator = this.paginator.toArray()[0];\r\n this.dataSource.sort = this.sort.toArray()[0];\r\n this.totalRecordsCount = this.analysisData.length;\r\n this.FromDate = moment(this.searchData.FromDate).toDate();\r\n this.ToDate = moment(this.searchData.ToDate).toDate();\r\n this.filterDisplay = false;\r\n }\r\n else {\r\n this.isLoading = false;\r\n }\r\n },\r\n\r\n );\r\n }\r\n }\r\n\r\n onEdit(selectedData: any): void {\r\n selectedData = selectedData;\r\n let originaldata = this.dataSource;\r\n\r\n let dialogRef = this.dialog.open(AssociateExitCauseFormComponent, {\r\n width: '60vw', height: '30vw',\r\n disableClose: true,\r\n data: { element: selectedData }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.submitReport();\r\n });\r\n }\r\n\r\n\r\n onView(selectedData: any): void {\r\n selectedData = selectedData;\r\n let originaldata = this.dataSource;\r\n\r\n let dialogRef = this.dialog.open(ViewAnalysisFormComponent, {\r\n width: '60vw', height: '25vw',\r\n disableClose: true,\r\n data: { element: selectedData }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n });\r\n }\r\n\r\n clear() {\r\n this.formGroupDirective.resetForm();\r\n this.searchFormSubmitted = false;\r\n this.errorSummary = '';\r\n this.searchData = new AnalysisFilterData();\r\n this.showGrid = false;\r\n }\r\n\r\n exporter() {\r\n TableUtil.exportTableToExcel(\"ExampleMaterialTable\");\r\n this.actionexport = false;\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n filter_list Filter all Resigned Associates based on their Last Working Day\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n From Date *\r\n \r\n \r\n \r\n From Date is required\r\n \r\n
\r\n
\r\n
\r\n \r\n To Date *\r\n \r\n \r\n \r\n \r\n To Date is required\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 \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 \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 \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 \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 \r\n \r\n
Employee Code {{element.EmployeeCode}} Employee Name {{element.EmployeeName}} Exit Type {{element.ExitType}} Last Working Day {{element.ExitDate | date: 'mediumDate'}} Exit Cause {{element.ExitReasonDetail}} FeedBack Root Cause {{element.RootCause}} Action Item {{element.ActionItem}} Tagret Date {{element.TagretDate | date: 'mediumDate'}} Actual Date {{element.ActualDate | date: 'mediumDate'}} Responsibility {{element.Responsibility }} Remarks {{element.Remarks}} Status {{element.Status}} Action \r\n \r\n edit\r\n visibility\r\n \r\n
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
","import { AssociateExit } from '../../Models/associateExit.model';\r\nimport { MasterDataService } from 'src/app/core/services/masterdata.service';\r\nimport { ChecklistService } from '../../Services/checklist.service';\r\nimport { EmployeeData } from '../../../admin/models/employee.model';\r\nimport { EmployeeStatusService } from '../../../admin/services/employeestatus.service';\r\n\r\nimport { Component, OnInit, ViewChild, Input} from '@angular/core';\r\nimport { Validators, FormControl, FormGroup, FormBuilder, FormGroupDirective } from '@angular/forms';\r\nimport {MatDatepickerModule} from '@angular/material/datepicker';\r\nimport * as moment from 'moment';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport {MatSnackBar} from '@angular/material/snack-bar';\r\nimport { DropDownType } from 'src/app/modules/master-layout/models/dropdowntype.model';\r\nimport { ResourceRelease } from 'src/app/modules/TalentMangment/models/resourcerelease.model';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTable, MatTableDataSource } from '@angular/material/table';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { Observable } from 'rxjs-compat';\r\nimport { MatSort } from '@angular/material/sort';\r\n \r\ninterface SelectItem {\r\n value : number;\r\n label : string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-associate-exit-by-hr',\r\n templateUrl: './associate-exit-by-hr.component.html',\r\n styleUrls: ['./associate-exit-by-hr.component.scss'],\r\n providers: [EmployeeStatusService]\r\n})\r\nexport class AssociateExitByHrComponent implements OnInit {\r\n\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n themeAppearence = themeconfig.formfieldappearances;\r\n exitReasonsList= [];\r\n exitTypesList= [];\r\n filteredExitReasons: Observable;\r\n filteredExitTypes: Observable;\r\n showAllocationHistoryGrid: boolean = false;\r\n showAbscond: boolean = false;\r\n showSeparation: boolean = false;\r\n showTermination: boolean = false;\r\n dateofjoining: Date\r\n requisitionlist: AssociateExit\r\n allocationhistory: AssociateExit[]= []\r\n userform: FormGroup;\r\n response: any;\r\n submitted = false;\r\n _empData: EmployeeData;\r\n _usersList = [];\r\n exitreasonlist =[];\r\n exittypelist =[];\r\n formSubmitted = false;\r\n _status = [];\r\n lastDate: Date;\r\n enableDate: boolean = false;\r\n abscondForm: FormGroup;\r\n employeesList: DropDownType[] = [];\r\n employeeId: number;\r\n associatesList = [];\r\n roleName: string=\"\";\r\n releaseResource: ResourceRelease;\r\n PMScreen: boolean = false;\r\n UserRole : string;\r\n disableAssociateName: boolean = false;\r\n openform: boolean = false;\r\n @Input() max: any;\r\n selectedEmpdata=[]\r\n today = new Date(); \r\n ae:any\r\n\r\n dataSource: MatTableDataSource;\r\n\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n \r\n\r\n\r\n displayedColumns = ['DateOfJoin', 'Designation','ReportingManager'];\r\n\r\n constructor(private _service: EmployeeStatusService,private _snackBar: MatSnackBar, \r\n private fb: FormBuilder, private checklist: ChecklistService, private _masterDataService: MasterDataService) {\r\n\r\n this.today.setDate(this.today.getDate());\r\n}\r\n ngOnInit() {\r\n\r\n this._empData = new EmployeeData();\r\n this.getUsersList();\r\n \r\n this.userform = this.fb.group({\r\n \r\n 'EmpId': [null, [Validators.required]],\r\n });\r\n \r\n this.abscondForm = this.fb.group({\r\n 'ExitType': [null, [Validators.required]],\r\n 'ExitReason': [null, [Validators.required]],\r\n 'IsActive': ['', [Validators.required]],\r\n 'LastWorkingDate': ['', [Validators.required]],\r\n 'tagretDate': [null, [Validators.required]],\r\n 'associateRemarks': [null, [Validators.required]],\r\n });\r\n this.clearValues();\r\n this.getExitTypesList();\r\n this.getExitReasonsList();\r\n \r\n }\r\n\r\n \r\n\r\ngetUsersList() {\r\n this._service.GetAssociateNames().subscribe((res: AssociateExit[]) => {\r\n let dataList: any[] = res;\r\n this._usersList = [];\r\n this._usersList.push({ label: 'Select Associate', value: null });\r\n dataList.forEach(e => {\r\n this._usersList.push({ label: e.EmpName, value: e.EmpId });\r\n });\r\n if (this.employeeId > 0) {\r\n this.disableAssociateName = true;\r\n this.userform.controls['EmpId'].setValue(this.employeeId);\r\n \r\n this.getCurrentUserDetails(this.employeeId);\r\n }\r\n });\r\n}\r\n\r\npublic getCurrentUserDetails(employeeId: number){\r\n if(employeeId>0)\r\n {\r\n this.checklist.GetByEmployeeId(employeeId).subscribe((data: any[]) => {\r\n console.log(data);\r\n\r\n this.showAllocationHistoryGrid = true;\r\n\r\n\r\n\r\n \r\n this.selectedEmpdata.push(data);\r\n \r\n console.log(this.selectedEmpdata) \r\n this.dataSource = new MatTableDataSource(this.selectedEmpdata);\r\n console.log(this.dataSource)\r\n \r\n }\r\n );\r\n}\r\n}\r\n\r\n\r\ngetExitReasonsList(){\r\n this._masterDataService.GetExitReasons().subscribe((exitReasonsResponse:any[]) => {\r\n let reasonlist: any[] = exitReasonsResponse;\r\n this.exitReasonsList.push({label: 'Select Category', value:null})\r\n reasonlist.forEach((exitReasonsResponse) => {\r\n this.exitReasonsList.push({ label: exitReasonsResponse.Name, value: exitReasonsResponse.Id });\r\n });\r\n \r\n }),\r\n (error: any) => {\r\n if (error._body != undefined && error._body != \"\")\r\n this._snackBar.open(error.error, 'x', {duration: 1000, panelClass:['Failed to get Cause Category'],horizontalPosition: 'right',\r\n verticalPosition: 'top' });\r\n };\r\n}\r\n\r\n\r\ngetExitTypesList(){\r\n this._masterDataService.GetExitTypes().subscribe((exitTypesResponse:any[]) => {\r\n let typelist: any[] = exitTypesResponse;\r\n this.exitTypesList.push({label: 'Select Type', value:null})\r\n typelist.forEach((exitTypesResponse) => {\r\n this.exitTypesList.push({ label: exitTypesResponse.Name , value: exitTypesResponse.Id });\r\n });\r\n }),\r\n (error: any) => {\r\n if (error._body != undefined && error._body != \"\")\r\n this._snackBar.open(error.error, 'x', {duration: 1000, panelClass:['Failed to get Exit Types'],horizontalPosition: 'right',\r\n verticalPosition: 'top' });\r\n };\r\n}\r\n\r\nonStatusChange(isActive: boolean) {\r\n if (isActive == false)\r\n this.enableDate = true;\r\n else\r\n this.enableDate = false;\r\n}\r\n\r\nupdateEmployeeStatus() {\r\n this.userform.value.LastWorkingDate = moment(this.userform.value.LastWorkingDate).format('YYYY-MM-DD');\r\n this._service.UpdateEmployeeStatus(this.userform.value).subscribe((data) => {\r\n if(data != null){\r\n \r\n this._snackBar.open('Associate status updated successfully.', 'x', {\r\n duration: 1000,\r\n panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n this.getUsersList();\r\n this.clearValues();\r\n this.enableDate = false;\r\n \r\n }, (error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n });\r\n}\r\n\r\nonClick(){\r\n this.openform = true;\r\n}\r\n\r\nclearValues = function () {\r\n \r\n this.abscondForm.reset();\r\n \r\n}\r\n\r\nonSubmit() {\r\n}\r\n}\r\n","\r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n Associate Name\r\n \r\n \r\n \r\n {{user.label}}\r\n \r\n \r\n \r\n \r\n Assosiate Name Required\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 \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
Date of Joining {{element.DateOfJoin}}Designation{{element.Designation}}Reporting Manager{{element.ReportingManager}}
\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 Type of Exit\r\n \r\n {{aspect.label}}\r\n \r\n \r\n \r\n \r\n Exit Type Required\r\n \r\n \r\n
\r\n
\r\n \r\n Cause Category\r\n \r\n {{aspect.label}}\r\n \r\n \r\n \r\n \r\n Cause Category Required\r\n \r\n \r\n
\r\n
\r\n \r\n Separation Date\r\n \r\n \r\n \r\n \r\n \r\n Separation Date Required.\r\n \r\n \r\n
\r\n
\r\n \r\n Last Working Date\r\n \r\n \r\n \r\n \r\n \r\n \r\n Last Working Date Required.\r\n \r\n \r\n \r\n Cause Details\r\n \r\n \r\n
\r\n
\r\n \r\n Period of absence from\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Period of absence to\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Personal E-mail\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Evidence\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 { Component, OnInit, Inject, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormGroup, FormGroupDirective } from '@angular/forms';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { CauseForm } from '../../Models/causeanalysis.model';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { ExitAnalysisService } from '../../Services/exit-analysis.service';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-associate-exit-cause-form',\r\n templateUrl: './associate-exit-cause-form.component.html',\r\n styleUrls: ['./associate-exit-cause-form.component.scss']\r\n})\r\nexport class AssociateExitCauseFormComponent implements OnInit {\r\n themeAppearence = themeconfig.formfieldappearances;\r\n rootcauseform: FormGroup;\r\n causeForm: CauseForm;\r\n element: any;\r\n isView: true;\r\n editMode: false;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private formBuilder: FormBuilder,\r\n private _snackBar: MatSnackBar,\r\n private _router: Router,\r\n private causeservice: ExitAnalysisService,\r\n\r\n ) {\r\n if (data.element) {\r\n this.element = this.data.element;\r\n \r\n }\r\n this.isView = this.data.isView;\r\n\r\n }\r\n ngOnInit(): void {\r\n\r\n this.rootcauseform = this.formBuilder.group({\r\n rootCause: [((this.element && this.element.RootCause) ? this.element.RootCause : \"\")],\r\n actionItem: [((this.element && this.element.ActionItem) ? this.element.ActionItem : \"\")],\r\n tagretDate: [((this.element && this.element.TagretDate) ? this.element.TagretDate : \"\")],\r\n actualDate: [((this.element && this.element.ActualDate) ? this.element.ActualDate : \"\")],\r\n responsibility: [((this.element && this.element.Responsibility) ? this.element.Responsibility : \"\")],\r\n remarks: [((this.element && this.element.Remarks) ? this.element.Remarks : \"\")],\r\n \r\n });\r\n }\r\n saveCauseForm() {\r\n this.causeForm = new CauseForm();\r\n \r\n this.causeForm.submitType = \"save\";\r\n this.update(this.causeForm);\r\n \r\n }\r\n submit(){\r\n this.causeForm = new CauseForm();\r\n \r\n this.causeForm.submitType = \"submit\";\r\n this.submitData(this.causeForm);\r\n \r\n \r\n }\r\n update(causeForm: any)\r\n {\r\n causeForm.employeeId = this.element.EmployeeId;\r\n causeForm.rootCause = this.rootcauseform.value.rootCause;\r\n causeForm.actionItem = this.rootcauseform.value.actionItem;\r\n causeForm.responsibility = this.rootcauseform.value.responsibility;\r\n causeForm.tagretDate = this.rootcauseform.value.tagretDate;\r\n causeForm.actualDate = this.rootcauseform.value.actualDate;\r\n causeForm.remarks = this.rootcauseform.value.remarks;\r\n\r\n this.causeservice.CreateExitAnalysis(causeForm).toPromise()\r\n .then(() => {\r\n if (this.causeForm.submitType = \"save\"){\r\n this._snackBar.open(\"Save Successfully\", 'x', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() => \r\n this.formGroupDirective.resetForm(), 0)\r\n }\r\n \r\n }).catch(error => {\r\n this._snackBar.open(\"Error while save!\", 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n \r\n\r\n }\r\n\r\n submitData(causeForm: any)\r\n {\r\n causeForm.employeeId = this.element.EmployeeId;\r\n causeForm.rootCause = this.rootcauseform.value.rootCause;\r\n causeForm.actionItem = this.rootcauseform.value.actionItem;\r\n causeForm.responsibility = this.rootcauseform.value.responsibility;\r\n causeForm.tagretDate = this.rootcauseform.value.tagretDate;\r\n causeForm.actualDate = this.rootcauseform.value.actualDate;\r\n causeForm.remarks = this.rootcauseform.value.remarks;\r\n\r\n this.causeservice.CreateExitAnalysis(causeForm).toPromise()\r\n .then(() => {\r\n if (this.causeForm.submitType = \"submit\"){\r\n this._snackBar.open(\"submit Successfully\", 'x', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() => \r\n this.formGroupDirective.resetForm(), 0)\r\n }\r\n \r\n }).catch(error => {\r\n this._snackBar.open(\"Error while submit!\", 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n\r\n\r\n}\r\n\r\n}\r\n\r\n","

Analysis Form

\r\n
\r\n
\r\n
\r\n
\r\n \r\n Root Cause\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n Action Item\r\n \r\n \r\n
\r\n
\r\n \r\n Target Date\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Actual Date\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Responsibility\r\n \r\n \r\n
\r\n
\r\n \r\n Remarks\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 { ExitAnalysisService } from './../../Services/exit-analysis.service';\r\nimport { Component, OnInit, QueryList, ViewChild, ViewChildren } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, FormGroupDirective, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { Observable, ReplaySubject, Subject, Subscription } from 'rxjs';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { MasterDataService } from '../../../../core/services/masterdata.service';\r\nimport { DropDownType, GenericType } from '../../../master-layout/models/dropdowntype.model';\r\n// import { ReportsData } from '../../models/reportsdata.model';\r\n// import { ReportsFilterData, UtilizationReportFilterData } from '../../models/reportsfilter.model';\r\nimport { ProjectsData } from '../../../master-layout/models/projects.model';\r\nimport * as moment from \"moment\";\r\n// import { ResourceReportService } from '../../services/resource-report.service';\r\nimport { NavService } from '../../../master-layout/services/nav.service';\r\nimport { ProjectCreationService } from '../../../project-life-cycle/services/project-creation.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { ResignastionService } from '../../Services/resignastion.service';\r\nimport { FeedBackDetails } from '../../Models/associateExit.model';\r\nimport {editorConfig} from '../../../../core/angularEditorConfiguratioan';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ConfirmationDialogComponent } from 'src/app/modules/shared/components/confirmation-dialog/confirmation-dialog.component';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\ninterface SelectItem {\r\n value: number;\r\n label: string;\r\n}\r\n\r\n// interface Reason {\r\n// value: string;\r\n// viewValue: string;\r\n// }\r\n\r\n@Component({\r\n selector: 'app-associate-exit-feedback-form',\r\n templateUrl: './associate-exit-feedback-form.component.html',\r\n styleUrls: ['./associate-exit-feedback-form.component.scss']\r\n})\r\nexport class AssociateExitFeedbackFormComponent implements OnInit {\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n projectId: number;\r\n filteredBanksMulti: ReplaySubject = new ReplaySubject(1);\r\n filteredcols: any[];\r\n displaycolsfields: any[];\r\n displaycols = [];\r\n private _onDestroy = new Subject();\r\n\r\n projectData: ProjectsData;\r\n\r\n editorConfig = editorConfig;\r\n\r\n\r\n afterSearchFilter: boolean = false;\r\n cols: any[] = [];\r\n columnOptions: any[] = [];\r\n PageSize: number = 5;\r\n PageDropDown: number[] = [];\r\n // private resources = servicePath.API.PagingConfigValue;\r\n componentName: string;\r\n selectDisabled =true;\r\n EmployeeId: number;\r\n feedbackdetails: FeedBackDetails;\r\n reasonList: SelectItem[] = [];\r\n showback: boolean = false;\r\n reasonId: number;\r\n reasonDetail: string;\r\n projectsList: SelectItem[] = [];\r\n exitFeedbackForm: FormGroup;\r\n projectIdSubscription: Subscription;\r\n disable:boolean = false;\r\n previous:string;\r\n dialogResponse: boolean;\r\n disableform = false;\r\n formsubmitted = false;\r\n disableSubmit = false;\r\n\r\n\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n\r\n constructor(private _masterDataService: MasterDataService, private _snackBar: MatSnackBar,\r\n private projectCreationService: ProjectCreationService,\r\n private actRoute: ActivatedRoute,\r\n private _formBuilder: FormBuilder,\r\n private _resignationService: ResignastionService,\r\n private router: Router,\r\n private exitanalysis: ExitAnalysisService,\r\n private spinner: NgxSpinnerService,\r\n public dialog: MatDialog,\r\n\r\n public navService: NavService) {\r\n this._resignationService.getResigReasonDtls().subscribe(data => {\r\n this.reasonId = data.ReasonId;\r\n this.exitFeedbackForm.get('reasonId').setValue(this.reasonId);\r\n \r\n this.reasonDetail = data.ReasonDetail;\r\n this.exitFeedbackForm.get('reasonDetail').setValue(this.reasonDetail);\r\n this.exitFeedbackForm.get('reasonId').updateValueAndValidity();\r\n this.exitFeedbackForm.get('reasonDetail').updateValueAndValidity();\r\n\r\n });\r\n\r\n\r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n // this.applyFilter(responseData);\r\n })\r\n // this.PageSize = this.resources.PageSize;\r\n // this.PageDropDown = this.resources.PageDropDown;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.previous = this.exitanalysis.getPreviousUrl();\r\n\r\n this.actRoute.params.subscribe(params => {\r\n this.EmployeeId = params[\"id\"];\r\n });\r\n this.createexitFeedbackForm();\r\n this.getReason();\r\n editorConfig.editable = true;\r\n\r\n this._resignationService.getResignationReason().subscribe((res: any) => {\r\n if (res) {\r\n this.feedbackdetails = new FeedBackDetails();\r\n this.feedbackdetails.reasonDetail = res.ReasonDetail;\r\n this.feedbackdetails.reasonId = res.ReasonId;\r\n }\r\n });\r\n\r\n \r\n }\r\n createexitFeedbackForm() {\r\n this.exitFeedbackForm = new FormGroup({\r\n alternateAddress: new FormControl(null, Validators.required),\r\n alternateEmail: new FormControl(null, [Validators.required, Validators.email, Validators.pattern(/^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/)]),\r\n alternateMobileNo: new FormControl(null, [Validators.required, Validators.pattern('[1-9]{1}[0-9]{9}')]),\r\n remarks: new FormControl(null, [Validators.required]),\r\n reasonId: new FormControl({value: (this.reasonId)? this.reasonId : null, disabled : true}),\r\n reasonDetail: new FormControl({value: (this.reasonDetail)? this.reasonDetail : null, disabled : true}),\r\n notify: new FormControl(false)\r\n\r\n });\r\n this.getExitInterviewDetails();\r\n }\r\n getReason(): void {\r\n this.spinner.show();\r\n this._resignationService.getResignationReason().subscribe((res: GenericType[]) => {\r\n this.spinner.hide();\r\n this.reasonList = [];\r\n this.reasonList.push({ label: '', value: null });\r\n res.forEach((res: GenericType) => {\r\n this.reasonList.push({ label: res.Name, value: res.Id });\r\n })\r\n })\r\n\r\n }\r\n onlyForNumbers(event: any) {\r\n var keys = {\r\n escape: 27,\r\n backspace: 8,\r\n tab: 9,\r\n enter: 13,\r\n \"0\": 48,\r\n \"1\": 49,\r\n \"2\": 50,\r\n \"3\": 51,\r\n \"4\": 52,\r\n \"5\": 53,\r\n \"6\": 54,\r\n \"7\": 55,\r\n \"8\": 56,\r\n \"9\": 57,\r\n };\r\n for (var index in keys) {\r\n if (!keys.hasOwnProperty(index)) continue;\r\n if (event.charCode == keys[index] || event.keyCode == keys[index]) {\r\n return; //default event\r\n }\r\n }\r\n event.preventDefault();\r\n }\r\n\r\n getExitInterviewDetails(){\r\n this.spinner.show();\r\n this._resignationService.getExitInterview(this.EmployeeId).subscribe((res:any)=>{\r\n this.spinner.hide();\r\n if(res){\r\n this.exitFeedbackForm.patchValue({\r\n alternateAddress: res.AlternateAddress,\r\n alternateEmail: res.AlternateEmail,\r\n alternateMobileNo: res.AlternateMobileNo,\r\n remarks: res.Remarks,\r\n });\r\n this.exitFeedbackForm.disable();\r\n editorConfig.editable = false;\r\n this.disableform = true;\r\n\r\n }\r\n })\r\n if(this.previous == '/associateexit/associateexitinformation'){\r\n this.exitFeedbackForm.disable();\r\n this.exitFeedbackForm.controls.remarks.disable()\r\n this.disable=true;\r\n }\r\n\r\n }\r\n\r\n\r\n submitFeedBack() {\r\n this.formsubmitted = true;\r\n if (this.exitFeedbackForm.valid) {\r\n this.disableSubmit = true;\r\n this.feedbackdetails = new FeedBackDetails();\r\n this.feedbackdetails.employeeId = this.EmployeeId;\r\n this.feedbackdetails.alternateMobileNo = this.exitFeedbackForm.value.alternateMobileNo;\r\n this.feedbackdetails.alternateAddress = this.exitFeedbackForm.value.alternateAddress;\r\n this.feedbackdetails.alternateEmail = this.exitFeedbackForm.value.alternateEmail;\r\n this.feedbackdetails.reasonId = this.exitFeedbackForm.value.reasonId;\r\n this.feedbackdetails.reasonDetail = this.exitFeedbackForm.value.reasonDetail;\r\n this.feedbackdetails.remarks = this.exitFeedbackForm.value.remarks;\r\n this.feedbackdetails.IsNotified = this.exitFeedbackForm.value.notify;\r\n if (this.feedbackdetails.IsNotified) {\r\n const dialogRef = this.dialog.open(ConfirmationDialogComponent, {\r\n width: '300px',\r\n disableClose: true,\r\n data: { heading: 'Confirmation', message: 'Are you sure to share the feedback?' }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.dialogResponse = result;\r\n if (this.dialogResponse === true) {\r\n this.submitFeedbackData();\r\n }\r\n else{\r\n this.disableSubmit = false;\r\n return;\r\n }\r\n })\r\n }\r\n else{\r\n this.submitFeedbackData();\r\n }\r\n }\r\n else {\r\n this.disableSubmit = false;\r\n return;\r\n }\r\n }\r\n\r\n submitFeedbackData() {\r\n this.spinner.show();\r\n this._resignationService.CreateExitFeedback(this.feedbackdetails).toPromise()\r\n .then(() => {\r\n this.spinner.hide();\r\n this._snackBar.open(\"Exit feedback Submitted Successfully\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }).afterDismissed().subscribe(res => {\r\n this.onBack();\r\n });\r\n }).catch(error => {\r\n this.spinner.hide();\r\n this._snackBar.open(\"Error while submit!\", 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.disableSubmit = false;\r\n });\r\n }\r\n onBack() {\r\n this.router.navigate(['shared/exit-actions']);\r\n this.showback = false;\r\n }\r\n\r\n clear() {\r\n this.exitFeedbackForm.reset({\r\n reasonId: this.exitFeedbackForm.get('reasonId').value,\r\n reasonDetail: this.exitFeedbackForm.get('reasonDetail').value,\r\n });\r\n setTimeout(() => this.formGroupDirective.resetForm({\r\n reasonId: this.exitFeedbackForm.get('reasonId').value,\r\n reasonDetail: this.exitFeedbackForm.get('reasonDetail').value,\r\n }), 0);\r\n this.formsubmitted = false;\r\n this.disableSubmit = false;\r\n }\r\n\r\n\r\n}","\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n Reason for Leaving Company\r\n \r\n {{reason.label}}\r\n \r\n \r\n
\r\n
\r\n \r\n Resignation Reason Details\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Address For Future Correspondence\r\n *\r\n \r\n \r\n \r\n Address Required\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n Email\r\n *\r\n \r\n \r\n \r\n Email Required\r\n \r\n \r\n Enter valid Email \r\n \r\n \r\n
\r\n
\r\n \r\n Mobile Number\r\n *\r\n \r\n \r\n \r\n Mobile Number Required\r\n \r\n \r\n Enter valid Mobile Number \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Exit Interview Feedback Required\r\n \r\n
\r\n\r\n\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n  Notify\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { AssociateDetailReviewData,AssociateDetailData } from '../../Models/analysis.model';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { AssociateExitDashboardService } from 'src/app/modules/shared/services/associate-exit-dashboard.service';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { AngularEditorConfig } from '@kolkov/angular-editor';\r\n\r\n@Component({\r\n selector: 'app-associate-exit-feedback-modal',\r\n templateUrl: './associate-exit-feedback-modal.component.html',\r\n styleUrls: ['./associate-exit-feedback-modal.component.scss']\r\n})\r\nexport class AssociateExitFeedbackModalComponent implements OnInit {\r\n associateName : string;\r\n feedbackdetailsdata:AssociateDetailReviewData;\r\n isEditClickedValue:boolean=false;\r\n curatedFeedbackData=new AssociateDetailData();\r\n myForm: FormGroup;\r\n disableform = false;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n editorConfig1 : AngularEditorConfig \r\n = {\r\n editable: false,\r\n spellcheck: true,\r\n height: '0',\r\n minHeight: '140',\r\n maxHeight: 'auto',\r\n width: 'auto',\r\n minWidth: '0',\r\n translate: 'yes',\r\n enableToolbar: true,\r\n showToolbar: false,\r\n placeholder: 'Enter text here...',\r\n defaultParagraphSeparator: '',\r\n defaultFontName: '',\r\n defaultFontSize: '',\r\n fonts: [\r\n { class: 'arial', name: 'Arial' },\r\n { class: 'times-new-roman', name: 'Times New Roman' },\r\n { class: 'calibri', name: 'Calibri' },\r\n { class: 'comic-sans-ms', name: 'Comic Sans MS' }\r\n ],\r\n customClasses: [\r\n {\r\n name: 'quote',\r\n class: 'quote',\r\n },\r\n {\r\n name: 'redText',\r\n class: 'redText'\r\n },\r\n {\r\n name: 'titleText',\r\n class: 'titleText',\r\n tag: 'h1',\r\n },\r\n ],\r\n uploadUrl: 'v1/image',\r\n uploadWithCredentials: false,\r\n sanitize: true,\r\n toolbarPosition: 'top',\r\n toolbarHiddenButtons: [\r\n [],\r\n [\r\n ]\r\n ]\r\n };\r\n\r\n editorConfig2 : AngularEditorConfig \r\n = {\r\n editable: true,\r\n spellcheck: true,\r\n height: '0',\r\n minHeight: '140',\r\n maxHeight: 'auto',\r\n width: 'auto',\r\n minWidth: '0',\r\n translate: 'yes',\r\n enableToolbar: true,\r\n showToolbar: true,\r\n placeholder: 'Enter text here...',\r\n defaultParagraphSeparator: '',\r\n defaultFontName: '',\r\n defaultFontSize: '',\r\n fonts: [\r\n { class: 'arial', name: 'Arial' },\r\n { class: 'times-new-roman', name: 'Times New Roman' },\r\n { class: 'calibri', name: 'Calibri' },\r\n { class: 'comic-sans-ms', name: 'Comic Sans MS' }\r\n ],\r\n customClasses: [\r\n {\r\n name: 'quote',\r\n class: 'quote',\r\n },\r\n {\r\n name: 'redText',\r\n class: 'redText'\r\n },\r\n {\r\n name: 'titleText',\r\n class: 'titleText',\r\n tag: 'h1',\r\n },\r\n ],\r\n uploadUrl: 'v1/image',\r\n uploadWithCredentials: false,\r\n sanitize: true,\r\n toolbarPosition: 'top',\r\n toolbarHiddenButtons: [\r\n [],\r\n [\r\n ]\r\n ]\r\n };\r\n \r\n \r\n constructor(public dialog: MatDialog,\r\n private fb: FormBuilder,\r\n private associateExitDashboardService:AssociateExitDashboardService,\r\n private _snackBar: MatSnackBar,\r\n private spinner: NgxSpinnerService,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n \r\n this.feedbackdetailsdata = this.data.element;\r\n this.myForm = this.fb.group({\r\n Feedback: [''],\r\n Hidefeedback:[''],\r\n AssociateFeedback:['']\r\n });\r\n this.myForm.controls['Hidefeedback'].setValue(this.feedbackdetailsdata.ShowInitialRemarks);\r\n this.myForm.controls['Feedback'].setValue(this.feedbackdetailsdata.FinalRemarks);\r\n this.myForm.controls['AssociateFeedback'].setValue(this.feedbackdetailsdata.InitialRemarks);\r\n this.associateName = this.feedbackdetailsdata.AssociateName;\r\n }\r\n close(){\r\n this.dialog.closeAll()\r\n }\r\n\r\n updateSelection(e){\r\n this.myForm.controls['Hidefeedback'].setValue(e.checked);\r\n }\r\n\r\n isEditClicked(){\r\n this.isEditClickedValue = !this.isEditClickedValue;\r\n }\r\n\r\n copyAssociateFeedback()\r\n {\r\n this.myForm.controls['Feedback'].setValue(this.feedbackdetailsdata.InitialRemarks);\r\n }\r\n\r\n submitReport(){ \r\n this.spinner.show(); \r\n this.curatedFeedbackData.associateExitInterviewId = this.feedbackdetailsdata.AssociateExitInterviewId;\r\n this.curatedFeedbackData.associateExitInterviewReviewId = 0;\r\n this.curatedFeedbackData.finalRemarks = this.myForm.controls['Feedback'].value;\r\n this.curatedFeedbackData.showInitialRemarks = this.myForm.controls['Hidefeedback'].value;\r\n console.log(this.curatedFeedbackData);\r\n this.associateExitDashboardService.create(this.curatedFeedbackData).subscribe(res=>{\r\n this.spinner.hide(); \r\n this.close();\r\n },\r\n (error=>{\r\n this.spinner.hide(); \r\n this._snackBar.open(error.error.text, 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n })\r\n )\r\n this.spinner.hide();\r\n }\r\n\r\n}\r\n","
\r\n
\r\n Associate [{{associateName}}] Feedback\r\n
\r\n
\r\n
\r\n
\r\n close\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n edit_note\r\n \r\n Edit Feedback \r\n \r\n file_copy \r\n Copy Associate Feedback \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 Show Associate Feedback\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n

Loading ...

\r\n
\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatSnackBar, MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition } from '@angular/material/snack-bar';\r\nimport * as servicePath from '../../../../core/service-paths';\r\n\r\nimport * as moment from 'moment';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { NavService } from '../../../master-layout/services/nav.service';\r\nimport { MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\nimport { Associate } from 'src/app/modules/onboarding/models/associate.model';\r\nimport { AssociateInformationService } from 'src/app/modules/onboarding/services/associateInformation.service';\r\nimport { SendEmailComponent } from 'src/app/modules/onboarding/components/send-email/send-email.component';\r\nimport { AssociateExitFeedbackModalComponent } from '../associate-exit-feedback-modal/associate-exit-feedback-modal.component';\r\nimport { Validators, FormGroup, FormBuilder, FormGroupDirective} from '@angular/forms';\r\nimport { AnalysisData, AnalysisFilterData, AssociateDetailReviewData, ReportsFilterData } from '../../Models/analysis.model';\r\nimport { AssociateExitDashboardService } from 'src/app/modules/shared/services/associate-exit-dashboard.service';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\n\r\n\r\n@Component({\r\n selector: 'app-associate-exit-feedback',\r\n templateUrl: './associate-exit-feedback.component.html',\r\n styleUrls: ['./associate-exit-feedback.component.scss']\r\n})\r\nexport class AssociateExitFeedbackComponent implements OnInit {\r\n step=0;\r\n associateInfo: any;\r\n private subType: string = \"list\";\r\n associateInfoList : AssociateDetailReviewData[];\r\n selectedRow : Associate;\r\n searchData: AnalysisFilterData;\r\n private resources = servicePath.API.PagingConfigValue;\r\n displayedColumns: string[] = [\r\n 'AssociateName',\r\n 'InitialRemarks',\r\n 'FinalRemarks',\r\n 'ShowInitialRemarks',\r\n 'Actions'\r\n ];\r\n dataSource: MatTableDataSource;\r\n roleName: String;\r\n myForm: FormGroup;\r\n associate\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n isLoading: boolean;\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'right';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n themeAppearence = themeconfig.formfieldappearances;\r\n\r\n\r\n constructor(private _associateinfoService : AssociateInformationService,private _router: Router,private _snackBar: MatSnackBar, public navService: NavService, private spinner: NgxSpinnerService,\r\n private fb: FormBuilder,\r\n public dialog: MatDialog,\r\n private snackBar: MatSnackBar,\r\n private associateExitDashboardService:AssociateExitDashboardService) { \r\n this.associateInfo = [];\r\n this.searchData = new AnalysisFilterData();\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n \r\n \r\n ngOnInit(): void {\r\n this.roleName = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).roleName;\r\n // this.getAssociateInformationList();\r\n this.myForm = this.fb.group({\r\n FromDate: ['', [Validators.required]],\r\n ToDate: [ '', [Validators.required]],\r\n });\r\n }\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n if (filterValue){\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n else{\r\n this.dataSource = new MatTableDataSource(this.associateInfoList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.dataSource.sortingDataAccessor = (data: any, sortHeaderId: string): string => {\r\n if (typeof data[sortHeaderId] === 'string') {\r\n return data[sortHeaderId].toLocaleLowerCase();\r\n }\r\n \r\n return data[sortHeaderId];\r\n };\r\n }\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.associateInfoList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.dataSource.sortingDataAccessor = (data: any, sortHeaderId: string): string => {\r\n if (typeof data[sortHeaderId] === 'string') {\r\n return data[sortHeaderId].toLocaleLowerCase();\r\n }\r\n \r\n return data[sortHeaderId];\r\n };\r\n }\r\n }\r\n \r\n \r\n editAssociatejoining(selectedData: any) {\r\n let currentID = selectedData.EmpId;\r\n selectedData.associateType = selectedData.EmpId != 0 ? \"edit\" : \"new\";\r\n this._router.navigate(['/associates/prospectivetoassociate/' + selectedData.associateType + '/' + currentID + '/' + this.subType]);\r\n }\r\n\r\n submitReport() {\r\n if(this.myForm.valid){\r\n this.step = 1;\r\n }\r\n this.isLoading = true;\r\n if (this.myForm.controls.FromDate.value === '' || this.myForm.controls.ToDate.value === '' || this.myForm.controls.FromDate.value === null || this.myForm.controls.ToDate.value === null) {\r\n this.isLoading = false;\r\n return;\r\n }\r\n \r\n if (this.searchData.FromDate != null && this.searchData.ToDate != null) {\r\n if (moment(this.searchData.FromDate).isAfter(new Date())) {\r\n this.isLoading = false;\r\n this.snackBar.open('From date should be less than today', 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n \r\n return false;\r\n }\r\n if (moment(this.searchData.ToDate).isAfter(new Date())) {\r\n this.isLoading = false;\r\n this.snackBar.open('To date should be less than today', 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n return false;\r\n }\r\n if (moment(this.searchData.FromDate).isAfter(this.searchData.ToDate)) {\r\n this.isLoading = false;\r\n this.snackBar.open('From Date should be less than To Date', 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n return false;\r\n }\r\n this.associateInfoList= [];\r\n let from_date = moment(this.searchData.FromDate).format('YYYY-MM-DD');\r\n let to_date = moment(this.searchData.ToDate).format('YYYY-MM-DD');\r\n this.spinner.show();\r\n this.associateExitDashboardService.associateExitInterviewReview(from_date, to_date).subscribe((res: AssociateDetailReviewData[]) => {\r\n \r\n if(res != null && res.length > 0) { \r\n this.isLoading = false;\r\n this.associateInfoList=res;\r\n this.associateInfoList.forEach((record: AssociateDetailReviewData) => { \r\n record.ShowInitialRemarksStr = (record.ShowInitialRemarks == true) ? 'Yes' : 'No'; \r\n });\r\n this.dataSource = new MatTableDataSource(this.associateInfoList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.spinner.hide();\r\n this.dataSource.sortingDataAccessor = (data: any, sortHeaderId: string): string => {\r\n if (typeof data[sortHeaderId] === 'string') {\r\n return data[sortHeaderId].toLocaleLowerCase();\r\n }\r\n \r\n return data[sortHeaderId];\r\n }; \r\n }\r\n else { \r\n this.spinner.hide(); \r\n this.isLoading = false; \r\n this.dataSource = new MatTableDataSource(this.associateInfoList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort; \r\n this._snackBar.open('No records found', 'x', {\r\n duration: 1000,\r\n panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n } \r\n \r\n },\r\n \r\n );\r\n }\r\n }\r\n\r\n sendMail(currentAssociate:Associate){\r\n let dialogRef = this.dialog.open(AssociateExitFeedbackModalComponent, {\r\n width: '70vw', height: 'auto',\r\n disableClose: true,\r\n data: { element: currentAssociate }\r\n }); \r\n dialogRef.afterClosed().subscribe(result => {\r\n this.submitReport() \r\n });\r\n }\r\n\r\n clear() {\r\n this.myForm.reset();\r\n this.associateInfoList=[];\r\n this.dataSource = new MatTableDataSource(this.associateInfoList); \r\n // this.formGroupDirective.resetForm();\r\n // this.searchFormSubmitted = false;\r\n // this.errorSummary = '';\r\n // this.searchData = new AnalysisFilterData();\r\n // this.showGrid = false;\r\n }\r\n\r\n}\r\n","\r\n\r\n \r\n \r\n \r\n filter_list Filter Associate Exit Feedback Review\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n From Date *\r\n \r\n \r\n \r\n From Date is required\r\n \r\n
\r\n
\r\n \r\n \r\n To Date *\r\n \r\n \r\n \r\n \r\n To Date is required\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 \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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Associate Name\r\n \r\n {{ element.AssociateName }}\r\n \r\n Associate Feedback\r\n \r\n {{ element.InitialRemarksNoHtml }}\r\n Curated Feedback {{asstJoin.FinalRemarksNoHtml}} Show Associate Feedback {{asstJoin.ShowInitialRemarksStr}} \r\n \r\n \r\n Action\r\n \r\n \r\n messageView\r\n \r\n
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n

Loading ...

\r\n\r\n","import { ExitAnalysisService } from '../../Services/exit-analysis.service';\r\nimport { AssociateExit } from '../../Models/associateExit.model';\r\n//import { Associate } from './../../../onboarding/models/associate.model';\r\nimport { Component, OnInit , ViewChild} from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { NavService } from '../../../master-layout/services/nav.service';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport {MatDialog} from '@angular/material/dialog';\r\nimport { FormGroupDirective} from '@angular/forms';\r\nimport {AssociateProjectsComponent} from '../associate-projects/associate-projects.component'\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport * as moment from 'moment';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\n\r\n @Component({\r\n selector: 'app-associate-exit-information',\r\n templateUrl: './associate-exit-information.component.html',\r\n styleUrls: ['./associate-exit-information.component.scss']\r\n })\r\n\r\n export class AssociateExitInformationComponent implements OnInit {\r\n\r\n EmployeeId: number;\r\n roleName: string;\r\n ExitReasonId: number;\r\n\r\n dataSourceAssociateExit: MatTableDataSource;\r\n @ViewChild(MatSort, { static: true }) sortAssociateExit: MatSort;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n displayedColumns: string[] = [\r\n 'EmpCode',\r\n 'EmpName',\r\n 'ExitDate',\r\n 'ExFeedInt',\r\n 'ExClr',\r\n 'Kt'\r\n ];\r\n \r\n\r\n constructor(private _associateExitDashboardService: ExitAnalysisService,public navService: NavService,private _router: Router,public dialog: MatDialog,private _snackBar: MatSnackBar) {\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n //this.applyFilter(responseData);\r\n });\r\n }\r\n ngOnInit():void {this.roleName = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).roleName;\r\n this.EmployeeId = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).employeeId;\r\n //this.ExitReasonId = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).exitReasonId;\r\n \r\n this.GetAssociateExitList();\r\n}\r\n/*applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSourceAssociateExit.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSourceAssociateExit = new MatTableDataSource(this.dataSourceAssociateExit.data);\r\n }\r\n if (this.dataSourceAssociateExit.paginator) {\r\n this.dataSourceAssociateExit.paginator.firstPage();\r\n }\r\n this.dataSourceAssociateExit.paginator = this.paginator;\r\n this.dataSourceAssociateExit.sort = this.sort;\r\n}*/\r\nGetAssociateExitList():void{\r\n this._associateExitDashboardService.GetAssociateExitAnalysis().subscribe((res: any[]) => {\r\n res.forEach(e => { e.ExitDate = moment(e.ExitDate).format(\"MM/DD/YYYY\"); });\r\n this.dataSourceAssociateExit = new MatTableDataSource(res);\r\n this.dataSourceAssociateExit.sort = this.sort;\r\n });\r\n \r\n}\r\n\r\n\r\n onFeedback(selectedData: any) {\r\n this._router.navigate(['/associateexit/exitfeedback/'+ selectedData.EmployeeId]);\r\n }\r\n onClearence(selectedData: any) {\r\n this._router.navigate(['/associateexit/deptchecklist/' + selectedData.EmployeeId]);\r\n }\r\n // onKnowledge(selectedData: any) {\r\n // this._router.navigate(['/shared/KtForm/Associate/'+selectedData.EmployeeId+'/'+ 88]);\r\n // }\r\n openDialog(selectedData) {\r\n\r\n this._associateExitDashboardService.GetAssociateTransitionPlan(selectedData.EmployeeId).subscribe((data:any[])=>{\r\n if(!data.length){\r\n this._snackBar.open(\"Data not found\", 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }).afterDismissed().subscribe(res => {\r\n // this.onBack();\r\n });\r\n }\r\n else if(data.length > 1){\r\n let projects=[];\r\n data.forEach((data)=>{\r\n projects.push({'projectId':data.ProjectId,'projectName':data.ProjectName,'EmpCode':selectedData.EmployeeId})\r\n })\r\n this._associateExitDashboardService.SetAssociateProjects(projects)\r\n const dialogRef = this.dialog.open(AssociateProjectsComponent);\r\n dialogRef.afterClosed().subscribe(result => {\r\n console.log(`Dialog result: ${result}`);\r\n });\r\n }else{\r\n this._router.navigate(['/shared/KtForm/Associate/'+selectedData.EmployeeId+'/'+data[0].ProjectId]);\r\n }\r\n \r\n \r\n })\r\n \r\n }\r\n goto(){\r\n this._router.navigate(['/associateexit/associateexitbyhr']);\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 \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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
Employee Id {{AssocExit.EmployeeCode}} Employee Name {{AssocExit.EmployeeName}} Exit Date {{AssocExit.ExitDate}} Exit Feedback Interview \r\n visibility\r\n Exit Clearance \r\n visibility\r\n Knowledge Transfer \r\n \r\n visibility\r\n
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-associate-exit',\r\n templateUrl: './associate-exit.component.html',\r\n styleUrls: ['./associate-exit.component.scss']\r\n})\r\nexport class AssociateExitComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n \r\n
\r\n\r\n

Loading ...

\r\n","import { Component, OnInit, ViewChild, TemplateRef } from '@angular/core';\r\nimport { FormControl, FormGroup, FormGroupDirective, Validators } from '@angular/forms';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatDialogConfig } from '@angular/material/dialog';\r\nimport {AssociateResignationData} from '../../Models/associate-resignation.model'\r\nimport {AssociateLongLeaveData} from '../../Models/associate-longleave.model'\r\nimport { BooleanToStringPipe } from '../../../onboarding/pipes/BooleanToStringPipe';\r\nimport { GenericModel } from '../../../master-layout/models/dropdowntype.model';\r\nimport { AssignReportingManagerService } from '../../../project-life-cycle/services/assign-reporting-manager.service';\r\nimport { Router } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\nimport * as moment from 'moment';\r\nimport { AssociateResignationService } from '../../Services/associate-resignation.service';\r\nimport { AssociateLongleaveService } from '../../Services/associate-longleave.service';\r\nimport { EmployeeData } from '../../../admin/models/employee.model';\r\nimport { Observable } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-associate-longleave',\r\n templateUrl: './associate-longleave.component.html',\r\n styleUrls: ['./associate-longleave.component.scss'],\r\n providers: [BooleanToStringPipe]\r\n})\r\nexport class AssociateLongleaveComponent implements OnInit {\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n searchAssociate : FormGroup;\r\n longLeaveForm : FormGroup;\r\n dialogForm : FormGroup;\r\n longLeaveData: AssociateLongLeaveData;\r\n employeeId: number;\r\n roleName: string;\r\n SelectedItem : any = null;\r\n tentativeJoinDate : any;\r\n RejoinedDate : any;\r\n formSubmitted = false;\r\n searchFormSubmitted = false;\r\n dialogFormSubmitted = false;\r\n associatesData : AssociateResignationData[] = [];\r\n resData : AssociateResignationData = null;\r\n deletedisplay: boolean = false;\r\n isValidDate:any;\r\n minDate : any;\r\n maxDateValue: Date;\r\n deleteID: number;\r\n isMaternityCheck:boolean = false;\r\n employeeList: any[] = [];\r\n allAssociatesList: any[];\r\n isVisible:boolean = false;\r\n isDisable:boolean = false;\r\n empData: EmployeeData;\r\n filteredOptionsName: Observable;\r\n dataSource: MatTableDataSource;\r\n\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild('AssociateRejoinDialog') associateRejoinDialog: TemplateRef;\r\n\r\n displayedColumns: string[] = ['radioButton','EmployeeName', 'ProjectName', 'ProgramManagerName', 'ReportingManagerName','IsBillable', 'IsCritical', 'Rejoin'];\r\n private AssociateRejoinDialogRef: MatDialogRef>;\r\n constructor(public dialog: MatDialog,\r\n private service: AssignReportingManagerService,\r\n private _snackBar: MatSnackBar, \r\n private associateResignationService: AssociateResignationService, \r\n private yesNoPipe: BooleanToStringPipe,\r\n private associateLongLeaveService : AssociateLongleaveService) {\r\n this.longLeaveData = new AssociateLongLeaveData(); \r\n }\r\n\r\n ngOnInit(): void {\r\n this.deletedisplay = false;\r\n this.isVisible = false;\r\n this.isMaternityCheck = false;\r\n this.deleteID = -1;\r\n this.getAllAssociatesList();\r\n this.searchAssociate = new FormGroup({\r\n AssociateName: new FormControl(null,[Validators.required]),\r\n Maternity : new FormControl(false)\r\n });\r\n\r\n this.dialogForm = new FormGroup({\r\n RejoinedDate : new FormControl(null,[Validators.required]),\r\n reason: new FormControl(null, )\r\n });\r\n\r\n this.longLeaveForm = new FormGroup({\r\n LongLeaveStartDate : new FormControl(null,[Validators.required]),\r\n TentativeJoinDate : new FormControl(null,[Validators.required]),\r\n Reason : new FormControl(null, )\r\n });\r\n this.employeeId = JSON.parse(sessionStorage['AssociatePortal_UserInformation']).employeeId;\r\n this.roleName = JSON.parse(sessionStorage['AssociatePortal_UserInformation']).roleName;\r\n \r\n if(this.associatesData.length > 0){\r\n this.isVisible = true;\r\n }\r\n\r\n this.filteredOptionsName = this.searchAssociate.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterName(value))\r\n );\r\n\r\n this.maxDateValue = new Date();\r\n }\r\n\r\n radioChangeHandler(associateData : any){\r\n this.SelectedItem = associateData;\r\n }\r\n\r\n resetForm(): void {\r\n this.searchAssociate.reset();\r\n this.longLeaveForm.reset();\r\n this.dialogForm.reset();\r\n setTimeout(() => this.formGroupDirective.resetForm(), 0);\r\n this.isMaternityCheck = false;\r\n this.formSubmitted = false;\r\n this.searchFormSubmitted= false;\r\n this.dialogFormSubmitted= false;\r\n }\r\n\r\n private _filterName(value): any {\r\n let filterValue;\r\n if (typeof value.AssociateName === 'number') {\r\n return this.employeeList;\r\n }\r\n if (value && value.AssociateName) {\r\n if (typeof value.AssociateName === 'string') {\r\n filterValue = value.AssociateName.toLowerCase();\r\n }\r\n else {\r\n if (value.AssociateName !== null) {\r\n filterValue = value.AssociateName.label.toLowerCase();\r\n }\r\n }\r\n return this.employeeList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.employeeList;\r\n }\r\n }\r\n\r\n displayFn(user: any) {\r\n return user && user.label ? user.label : '';\r\n }\r\n\r\n clearField() {\r\n this.searchAssociate.controls.AssociateName.setValue('');\r\n }\r\n\r\n clearInput(evt: any, fieldName): void {\r\n if(fieldName=='LongLeaveStartDate'){\r\n if(!this.isDisable){\r\n evt.stopPropagation();\r\n this.longLeaveForm.get('LongLeaveStartDate').reset();\r\n } \r\n }\r\n if(fieldName=='TentativeJoinDate'){\r\n evt.stopPropagation();\r\n this.longLeaveForm.get('TentativeJoinDate').reset();\r\n }\r\n if(fieldName == 'RejoinedDate'){\r\n evt.stopPropagation();\r\n this.dialogForm.get('RejoinedDate').reset();\r\n }\r\n }\r\n\r\n public IsMaternityCheck(event: any) { \r\n this.associatesData = [];\r\n this.longLeaveData.LongLeaveStartDate = \"\";\r\n this.longLeaveData.Reason = \"\";\r\n this.tentativeJoinDate = \"\";\r\n this.SelectedItem = null;\r\n this.isVisible = false; \r\n if (event.checked) { \r\n this.isMaternityCheck = true;\r\n this.longLeaveData.IsMaternity = true;\r\n this.getAllAssociatesList();\r\n }\r\n else {\r\n this.isMaternityCheck = false;\r\n this.longLeaveData.IsMaternity = false;\r\n this.getAllAssociatesList();\r\n }\r\n }\r\n\r\n getAllAssociatesList() {\r\n this.service.GetAllAssociatesList().subscribe((resp: GenericModel[]) => {\r\n this.allAssociatesList = [];\r\n this.employeeList = [];\r\n this.allAssociatesList = resp;\r\n this.allAssociatesList.forEach(element => {\r\n if(this.isMaternityCheck == true) {\r\n if(element.Gender != null && element.Gender.toLowerCase() != 'male') {\r\n this.employeeList.push({ label: element.EmpName, value: element.EmpCode });\r\n }\r\n }\r\n else {\r\n this.employeeList.push({ label: element.EmpName, value: element.EmpCode });\r\n }\r\n });\r\n this.searchAssociate.controls[\"AssociateName\"].reset();\r\n });\r\n }\r\n\r\n cancel(): void {\r\n this.searchAssociate.reset();\r\n this.searchFormSubmitted= false;\r\n setTimeout(() => this.formGroupDirective.resetForm(), 0)\r\n this.isVisible = false;\r\n this.resetForm();\r\n this.Clear();\r\n }\r\n\r\n\r\n CalculateMaternityPeriod(maternityStartDate : string) : void {\r\n if(this.isMaternityCheck == true) {\r\n if(maternityStartDate != null){\r\n this.associateLongLeaveService.CalculateMaternityPeriod(moment(maternityStartDate).format('YYYY-MM-DD')).subscribe(\r\n (res) => {\r\n if(res != null){\r\n this.tentativeJoinDate = res;\r\n } \r\n },\r\n (error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n }\r\n }\r\n\r\n getAssociatesById(longLeaveEmployeeId : number): void {\r\n this.SelectedItem = null;\r\n this.searchFormSubmitted = true;\r\n if(this.searchAssociate.valid == true){\r\n this.associateResignationService.GetAssociatesById(longLeaveEmployeeId, this.employeeId).subscribe(\r\n (res: AssociateResignationData) => {\r\n if(res != null){\r\n this.isVisible = true;\r\n this.associatesData = [];\r\n this.resData = res; \r\n this.resData.IsBillable = this.yesNoPipe.transform(JSON.parse(res.IsBillable));\r\n this.resData.IsCritical = this.yesNoPipe.transform(JSON.parse(res.IsCritical));\r\n this.associatesData.push(this.resData);\r\n this.dataSource = new MatTableDataSource(this.associatesData);\r\n if(this.resData.IsLongLeave == true){\r\n this.isDisable = true;\r\n this.longLeaveData.EmployeeId = this.resData.EmployeeId;\r\n this.longLeaveData.LongLeaveStartDate = this.resData.LongLeaveStartDate;\r\n this.tentativeJoinDate = this.resData.TentativeJoinDate;\r\n this.longLeaveData.IsLongLeave = true;\r\n if(this.resData.Reason != null)\r\n {\r\n this.longLeaveData.Reason = this.resData.Reason;\r\n } \r\n }\r\n else {\r\n this.isDisable = false;\r\n this.longLeaveData.IsLongLeave = null;\r\n this.longLeaveData.LongLeaveStartDate = \"\";\r\n this.tentativeJoinDate = \"\";\r\n this.longLeaveData.Reason = \"\";\r\n this.formSubmitted = false;\r\n }\r\n }\r\n else {\r\n this.associatesData = [];\r\n this.isVisible = false;\r\n this._snackBar.open('No records found', 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n },\r\n (error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n ); \r\n }\r\n }\r\n\r\n onCreate() : void {\r\n this.formSubmitted = true;\r\n if(this.SelectedItem == null && this.longLeaveData.IsLongLeave == null) {\r\n this._snackBar.open('Please select Associate', '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n if(this.longLeaveForm.valid == true){\r\n if(this.longLeaveData.LongLeaveStartDate != null && this.tentativeJoinDate != null) \r\n {\r\n this.isValidDate = this.validateDates(this.longLeaveData.LongLeaveStartDate, this.tentativeJoinDate); \r\n }\r\n \r\n if(this.isValidDate)\r\n {\r\n if(this.longLeaveForm.value.TentativeJoinDate != null){\r\n this.longLeaveData.TentativeJoinDate = this.longLeaveForm.value.TentativeJoinDate;\r\n }\r\n if(this.longLeaveData.IsLongLeave == null) {\r\n this.longLeaveData.EmployeeId = this.SelectedItem.EmployeeId;\r\n }\r\n this.associateLongLeaveService.CreateAssociateLongLeave(this.longLeaveData).subscribe((res)=>{\r\n if(res ==true){\r\n this._snackBar.open('Associate Long Leave saved successfully', '', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.resetForm();\r\n this.Clear();\r\n this.getAllAssociatesList();\r\n }\r\n else{\r\n this.Clear();\r\n this._snackBar.open('Associate Long Leave cannot be saved', 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n },\r\n error=>{\r\n this.resetForm();\r\n this.Clear();\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n }\r\n }\r\n\r\n validateDates(resigDate: string, lastWDate: string){\r\n this.isValidDate = true;\r\n var startDate = new Date(resigDate);\r\n var endDate = new Date(lastWDate); \r\n if((startDate != null && endDate !=null) && (endDate) <= (startDate)){\r\n this._snackBar.open('Tentative Join Date should be greater than Long Leave Start date.', '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.isValidDate = false;\r\n }\r\n return this.isValidDate;\r\n }\r\n\r\n rejoin(event: any) {\r\n this.RejoinedDate = moment(new Date()).format(\"YYYY-MM-DD\");\r\n this.minDate = new Date(this.longLeaveData.LongLeaveStartDate);\r\n this.dialogForm.controls[\"reason\"].reset();\r\n this.deleteID = event.EmployeeId;\r\n this.deletedisplay = true;\r\n this.openDialog();\r\n }\r\n\r\n \r\n rejoinAssociate(Reason : string, RejoinDate : string) { \r\n RejoinDate = moment(RejoinDate).format(\"DD-MM-YYYY\");\r\n this.dialogFormSubmitted = true;\r\n if(this.dialogForm.valid == true){\r\n this.associateLongLeaveService.RejoinAssociate(this.deleteID, Reason, RejoinDate).subscribe((res) => {\r\n if(res == true) {\r\n this._snackBar.open('Associate Rejoined successfully.', '', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.deletedisplay = false;\r\n this.resetForm();\r\n this.Clear();\r\n this.closeDialog(); \r\n this.getAllAssociatesList(); \r\n }\r\n },(error) => {\r\n this.deletedisplay = false;\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n}\r\n\r\nopenDialog(): void {\r\n const dialogConfig = new MatDialogConfig();\r\n this.AssociateRejoinDialogRef = this.dialog.open(this.associateRejoinDialog, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n });\r\n this.AssociateRejoinDialogRef.afterClosed().subscribe(result => {\r\n });\r\n}\r\n\r\ncloseDialog() {\r\n this.AssociateRejoinDialogRef.close();\r\n}\r\n\r\nClear() {\r\n this.SelectedItem = null;\r\n this.longLeaveData.LongLeaveStartDate = \"\";\r\n this.tentativeJoinDate = \"\";\r\n this.longLeaveData.Reason = \"\";\r\n this.longLeaveData.IsMaternity = false;\r\n this.associatesData = [];\r\n this.isVisible = false;\r\n}\r\n\r\ncancelRejoin() {\r\n this.deletedisplay = false;\r\n this.closeDialog();\r\n}\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n Maternity\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n Associate Name *\r\n \r\n \r\n \r\n No matching value found\r\n \r\n {{ option.label }}\r\n \r\n \r\n \r\n Select Associate from given options\r\n \r\n \r\n Select Associate\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 \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 \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
Select\r\n \r\n \r\n EmployeeName {{element.EmployeeName}} ProjectName {{element.ProjectName}} ProgramManagerName {{element.ProgramManagerName}} ReportingManagerName {{element.ReportingManagerName}} IsBillable {{element.IsBillable}} IsCritical {{element.IsCritical}} Rejoin\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 Long Leave Start Date*\r\n \r\n \r\n close\r\n \r\n \r\n \r\n \r\n Long Leave Start Date Required.\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n Tentative Join Date*\r\n \r\n \r\n close\r\n \r\n \r\n \r\n \r\n Tentative Join Date is Required.\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Reason\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
\r\n

Are you sure, you want to Rejoin Associate?

\r\n
\r\n
\r\n \r\n Rejoin Date*\r\n \r\n \r\n close\r\n \r\n \r\n \r\n \r\n Rejoin Date is Required.\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Notes : \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 { Component, OnInit } from '@angular/core';\r\nimport { ExitAnalysisService } from '../../Services/exit-analysis.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\n\r\n\r\n@Component({\r\n selector: 'app-associate-projects',\r\n templateUrl: './associate-projects.component.html',\r\n styleUrls: ['./associate-projects.component.scss']\r\n})\r\nexport class AssociateProjectsComponent implements OnInit {\r\n\r\n constructor(private _associateExitDashboardService: ExitAnalysisService,private _router: Router) { }\r\n projects = []\r\n ngOnInit(): void {\r\n this.getProjects()\r\n }\r\n getProjects(){\r\n this.projects = this._associateExitDashboardService.GetAssociateProjects()\r\n }\r\n goToKtPlan(selectedProject){\r\n this._router.navigate(['/shared/KtForm/Associate/'+selectedProject.EmpCode+'/'+ selectedProject.projectId]);\r\n }\r\n\r\n}\r\n","

Select Associate Project

\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n\r\n \r\n \r\n","import { Component, OnInit, ViewChild, TemplateRef } from '@angular/core';\r\nimport { FormControl, FormGroup, FormGroupDirective, Validators } from '@angular/forms';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatDialogConfig } from '@angular/material/dialog';\r\nimport {AssociateResignationData} from '../../Models/associate-resignation.model'\r\nimport { BooleanToStringPipe } from '../../../onboarding/pipes/BooleanToStringPipe';\r\nimport { GenericType } from '../../../master-layout/models/dropdowntype.model';\r\nimport { AssignReportingManagerService } from '../../../project-life-cycle/services/assign-reporting-manager.service';\r\nimport { Router } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\nimport { EmployeeData } from '../../../admin/models/employee.model';\r\nimport * as moment from 'moment';\r\nimport { AssociateResignationService } from '../../Services/associate-resignation.service';\r\nimport { Observable } from 'rxjs';\r\nimport { DatePipe } from '@angular/common';\r\nimport { map, startWith } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-associate-resignation',\r\n templateUrl: './associate-resignation.component.html',\r\n styleUrls: ['./associate-resignation.component.scss'],\r\n providers: [BooleanToStringPipe, DatePipe]\r\n \r\n})\r\nexport class AssociateResignationComponent implements OnInit {\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n searchAssociate : FormGroup;\r\n resignationForm : FormGroup;\r\n dialogForm : FormGroup;\r\n resignationData: AssociateResignationData;\r\n employeeId: number;\r\n roleName: string;\r\n SelectedItem : any = null;\r\n LastWorkingDate : any;\r\n formSubmitted = false;\r\n searchFormSubmitted = false;\r\n dialogFormSubmitted = false;\r\n isValidDate:any;\r\n associatesData : AssociateResignationData[] = [];\r\n resData : AssociateResignationData = null;\r\n deletedisplay: boolean = false;\r\n RevokedDate : any;\r\n minDate : any;\r\n maxDateValue: Date;\r\n deleteID: number;\r\n employeeList: any[] = [];\r\n allAssociatesList: any[];\r\n isVisible:boolean = false;\r\n isDisable:boolean = false;\r\n empData: EmployeeData;\r\n filteredOptionsName: Observable;\r\n dataSource: MatTableDataSource;\r\n\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild('ResignationRevokeDialog') resignationRevokeDialog: TemplateRef;\r\n\r\n displayedColumns: string[] = ['radioButton','EmployeeName', 'ProjectName', 'ProgramManagerName', 'ReportingManagerName','IsBillable', 'IsCritical', 'Revoke'];\r\n private ResignationRevokeDialogRef: MatDialogRef>;\r\n\r\n constructor(public dialog: MatDialog,private datePipe: DatePipe,private service: AssignReportingManagerService,private _snackBar: MatSnackBar, private associateResignationService: AssociateResignationService, private yesNoPipe: BooleanToStringPipe) {\r\n this.resignationData = new AssociateResignationData(); \r\n }\r\n\r\n ngOnInit(): void {\r\n this.deletedisplay = false;\r\n this.isVisible = false;\r\n this.deleteID = -1;\r\n\r\n let userRole = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).roleName;\r\n this.employeeId = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).employeeId;\r\n this.getAllAssociatesList();\r\n\r\n this.searchAssociate = new FormGroup({\r\n AssociateName: new FormControl(null,Validators.required)\r\n });\r\n\r\n this.resignationForm = new FormGroup({\r\n ResignationDate : new FormControl(null,[Validators.required]),\r\n LastWorkingDate : new FormControl(null,[Validators.required]),\r\n ReasonDescription : new FormControl(null, )\r\n });\r\n\r\n this.dialogForm = new FormGroup({\r\n RevokedDate : new FormControl(null,[Validators.required]),\r\n reason: new FormControl(null, [Validators.required])\r\n });\r\n\r\n if(this.associatesData.length > 0){\r\n this.isVisible = true;\r\n }\r\n\r\n this.filteredOptionsName = this.searchAssociate.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterName(value))\r\n );\r\n\r\n this.maxDateValue = new Date();\r\n }\r\n\r\n radioChangeHandler(associateData : any){\r\n this.SelectedItem = associateData;\r\n }\r\n\r\n resetForm(): void {\r\n this.searchAssociate.reset();\r\n this.resignationForm.reset();\r\n this.dialogForm.reset();\r\n setTimeout(() => this.formGroupDirective.resetForm(), 0);\r\n this.formSubmitted = false;\r\n this.searchFormSubmitted= false;\r\n this.dialogFormSubmitted= false;\r\n }\r\n\r\n private _filterName(value): any {\r\n let filterValue;\r\n if (typeof value.AssociateName === 'number') {\r\n return this.employeeList;\r\n }\r\n if (value && value.AssociateName) {\r\n if (typeof value.AssociateName === 'string') {\r\n filterValue = value.AssociateName.toLowerCase();\r\n }\r\n else {\r\n if (value.AssociateName !== null) {\r\n filterValue = value.AssociateName.label.toLowerCase();\r\n }\r\n }\r\n return this.employeeList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.employeeList;\r\n }\r\n }\r\n\r\n displayFn(user: any) {\r\n return user && user.label ? user.label : '';\r\n }\r\n\r\n clearField() {\r\n this.searchAssociate.controls.AssociateName.setValue('');\r\n }\r\n\r\n clearInput(evt: any, fieldName): void {\r\n if(fieldName=='ResignationDate'){\r\n if(!this.isDisable){\r\n evt.stopPropagation();\r\n this.resignationForm.get('ResignationDate').reset();\r\n }\r\n }\r\n if(fieldName=='LastWorkingDate'){\r\n evt.stopPropagation();\r\n this.resignationForm.get('LastWorkingDate').reset();\r\n }\r\n if(fieldName == 'RevokedDate'){\r\n evt.stopPropagation();\r\n this.dialogForm.get('RevokedDate').reset();\r\n }\r\n }\r\n\r\n getAllAssociatesList() {\r\n this.service.GetAllAssociatesList().subscribe((resp: GenericType[]) => {\r\n this.allAssociatesList = [];\r\n this.allAssociatesList = resp;\r\n this.allAssociatesList.forEach(element => {\r\n if (this.employeeList.findIndex(x => x.label == element.EmpName) == -1)\r\n this.employeeList.push({ label: element.EmpName, value: element.EmpCode });\r\n });\r\n \r\n });\r\n }\r\n\r\n cancel(): void {\r\n this.searchAssociate.reset();\r\n this.searchFormSubmitted= false;\r\n setTimeout(() => this.formGroupDirective.resetForm(), 0)\r\n this.isVisible = false;\r\n this.resetForm();\r\n this.Clear();\r\n }\r\n\r\n CalculateLastWorkingDate(resignationDate:string) : void {\r\n if(resignationDate != null){\r\n this.associateResignationService.CalculateNoticePeriod(moment(resignationDate).format('YYYY-MM-DD')).subscribe(\r\n (res: any) => {\r\n if(res != null){\r\n this.LastWorkingDate = res;\r\n } \r\n },\r\n (error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n }\r\n\r\n getAssociatesById(resignEmployeeId : number): void {\r\n this.SelectedItem = null;\r\n this.searchFormSubmitted = true;\r\n if(this.searchAssociate.valid == true){\r\n this.associateResignationService.GetAssociatesById(resignEmployeeId, this.employeeId).subscribe(\r\n (res: AssociateResignationData) => {\r\n if(res != null){\r\n this.isVisible = true;\r\n this.associatesData = [];\r\n this.resData = res; \r\n this.resData.IsBillable = this.yesNoPipe.transform(JSON.parse(res.IsBillable));\r\n this.resData.IsCritical = this.yesNoPipe.transform(JSON.parse(res.IsCritical));\r\n this.associatesData.push(this.resData);\r\n this.dataSource = new MatTableDataSource(this.associatesData);\r\n if(this.resData.IsResigned == true){\r\n this.isDisable = true;\r\n this.resignationData.EmployeeId = this.resData.EmployeeId;\r\n this.resignationData.ResignationDate = this.resData.ResignationDate;\r\n this.LastWorkingDate = this.resData.LastWorkingDate;\r\n this.resignationData.IsResigned = true;\r\n if(this.resData.ReasonDescription != null)\r\n {\r\n this.resignationData.ReasonDescription = this.resData.ReasonDescription;\r\n } \r\n }\r\n else {\r\n this.isDisable = false;\r\n this.resignationData.IsResigned = null;\r\n this.resignationData.ResignationDate = \"\";\r\n this.LastWorkingDate = \"\";\r\n this.resignationData.ReasonDescription = \"\";\r\n this.formSubmitted = false;\r\n }\r\n }\r\n else {\r\n this.associatesData = [];\r\n this.isVisible = false;\r\n this._snackBar.open('No records found', 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n },\r\n (error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n \r\n }\r\n }\r\n\r\n onCreate() : void {\r\n this.formSubmitted = true;\r\n if(this.SelectedItem == null && this.resignationData.IsResigned == null) {\r\n this._snackBar.open('Please select Associate', '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n if(this.resignationForm.valid == true){\r\n if(this.resignationData.ResignationDate != null && this.LastWorkingDate != null) \r\n {\r\n this.isValidDate = this.validateDates(this.resignationData.ResignationDate, this.LastWorkingDate); \r\n }\r\n \r\n if(this.isValidDate)\r\n {\r\n if(this.resignationForm.value.LastWorkingDate != null){\r\n this.resignationData.LastWorkingDate = this.resignationForm.value.LastWorkingDate;\r\n }\r\n if(this.resignationData.IsResigned == null) {\r\n this.resignationData.EmployeeId = this.SelectedItem.EmployeeId;\r\n }\r\n this.associateResignationService.CreateAssociateResignation(this.resignationData).subscribe((res)=>{\r\n if(res ==true){\r\n this._snackBar.open('Associate Resignation saved successfully', '', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.resetForm();\r\n this.Clear();\r\n }\r\n else{\r\n this.Clear();\r\n this._snackBar.open('Associate Resignation cannot be saved', 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n },\r\n error=>{\r\n this.resetForm();\r\n this.Clear();\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n }\r\n }\r\n\r\n validateDates(resigDate: string, lastWDate: string){\r\n this.isValidDate = true;\r\n var startDate = new Date(resigDate);\r\n var endDate = new Date(this.datePipe.transform(lastWDate, 'yyyy-MM-dd')); \r\n if((startDate != null && endDate !=null) && (endDate) < (startDate)){\r\n this._snackBar.open('Last Working date should be greater or equal to Resignation date.', '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.isValidDate = false;\r\n }\r\n return this.isValidDate;\r\n }\r\n\r\n revokeResignation(event: any) {\r\n this.RevokedDate = moment(new Date()).format(\"YYYY-MM-DD\");\r\n this.minDate = new Date(this.resignationData.ResignationDate);\r\n this.dialogForm.controls[\"reason\"].reset();\r\n this.deleteID = event.EmployeeId;\r\n this.deletedisplay = true;\r\n this.openDialog();\r\n }\r\n\r\n revokeAssociateResignation(ReasonDescription : string, RevokeDate : string) {\r\n this.dialogFormSubmitted = true;\r\n if(this.dialogForm.valid == true){\r\n this.associateResignationService.RevokeResignation(this.deleteID, ReasonDescription, RevokeDate).subscribe((res) => {\r\n if(res == true) {\r\n this._snackBar.open('Associate Resignation Revoked successfully.', '', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.deletedisplay = false;\r\n this.resetForm();\r\n this.Clear();\r\n this.closeDialog();\r\n }\r\n }, (error) => {\r\n this.deletedisplay = false;\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n}\r\n\r\nopenDialog(): void {\r\n const dialogConfig = new MatDialogConfig();\r\n this.ResignationRevokeDialogRef = this.dialog.open(this.resignationRevokeDialog, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n });\r\n this.ResignationRevokeDialogRef.afterClosed().subscribe(result => {\r\n });\r\n}\r\n\r\ncloseDialog() {\r\n this.ResignationRevokeDialogRef.close();\r\n}\r\n\r\n Clear() {\r\n this.SelectedItem = null;\r\n this.resignationData.ResignationDate = \"\";\r\n this.LastWorkingDate = \"\";\r\n this.resignationData.ReasonDescription = \"\";\r\n this.associatesData = [];\r\n this.isVisible = false;\r\n }\r\n\r\n cancelRevoke() {\r\n this.deletedisplay = false;\r\n this.closeDialog();\r\n}\r\n\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n \r\n Associate Name *\r\n \r\n \r\n \r\n No matching value found\r\n \r\n {{ option.label }}\r\n \r\n \r\n \r\n Select Associate from given options\r\n \r\n \r\n Select Associate\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 \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 \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
Select\r\n \r\n \r\n EmployeeName {{element.EmployeeName}} ProjectName {{element.ProjectName}} ProgramManagerName {{element.ProgramManagerName}} ReportingManagerName {{element.ReportingManagerName}} IsBillable {{element.IsBillable}} IsCritical {{element.IsCritical}} Revoke\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 Resignation Date*\r\n \r\n \r\n close\r\n \r\n \r\n \r\n \r\n Resignation Date Required.\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n Last Working Date*\r\n \r\n \r\n close\r\n \r\n \r\n \r\n \r\n Last Working Date is Required.\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Reason Description\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
\r\n

Are you sure, you want to revoke Resignation?

\r\n
\r\n
\r\n \r\n Revoke Date*\r\n \r\n \r\n close\r\n \r\n \r\n \r\n \r\n Revoke Date is Required.\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Reason for revoke *\r\n \r\n \r\n Reason is required\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 { Router } from '@angular/router';\r\nimport { AssociateExit } from '../../Models/associateExit.model';\r\n import { MasterDataService } from 'src/app/core/services/masterdata.service';\r\n import { ChecklistService } from '../../Services/checklist.service';\r\n import { EmployeeData } from '../../../admin/models/employee.model';\r\n import { EmployeeStatusService } from '../../../admin/services/employeestatus.service';\r\n \r\n import { Component, OnInit, ViewChild, Input} from '@angular/core';\r\n import { Validators, FormControl, FormGroup, FormBuilder, FormGroupDirective } from '@angular/forms';\r\n import {MatDatepickerModule} from '@angular/material/datepicker';\r\n import * as moment from 'moment';\r\n import { themeconfig } from 'src/themeconfig';\r\n import {MatSnackBar} from '@angular/material/snack-bar';\r\n import { DropDownType } from 'src/app/modules/master-layout/models/dropdowntype.model';\r\n import { ResourceRelease } from 'src/app/modules/TalentMangment/models/resourcerelease.model';\r\n import { MatPaginator } from '@angular/material/paginator';\r\n import { MatTable, MatTableDataSource } from '@angular/material/table';\r\n import { map, startWith } from 'rxjs/operators';\r\n import { Observable } from 'rxjs-compat';\r\n import { MatSort } from '@angular/material/sort';\r\n \r\n interface SelectItem {\r\n value : number;\r\n label : string;\r\n }\r\n\r\n@Component({\r\n selector: 'app-associate-termination-form',\r\n templateUrl: './associate-termination-form.component.html',\r\n styleUrls: ['./associate-termination-form.component.scss'],\r\n providers: [EmployeeStatusService]\r\n})\r\nexport class AssociateTerminationFormComponent implements OnInit {\r\n \r\n themeConfigInput = themeconfig.formfieldappearances;\r\n themeAppearence = themeconfig.formfieldappearances;\r\n exitReasonsList= [];\r\n exitTypesList= [];\r\n filteredExitReasons: Observable;\r\n filteredExitTypes: Observable;\r\n showAllocationHistoryGrid: boolean = false;\r\n showAbscond: boolean = false;\r\n showSeparation: boolean = false;\r\n showTermination: boolean = false;\r\n dateofjoining: Date\r\n requisitionlist: AssociateExit\r\n allocationhistory: AssociateExit[]= []\r\n userform: FormGroup;\r\n response: any;\r\n submitted = false;\r\n _empData: EmployeeData;\r\n _usersList = [];\r\n exitreasonlist =[];\r\n exittypelist =[];\r\n formSubmitted = false;\r\n _status = [];\r\n lastDate: Date;\r\n enableDate: boolean = false;\r\n terminationForm: FormGroup;\r\n employeesList: DropDownType[] = [];\r\n employeeId: number;\r\n associatesList = [];\r\n roleName: string=\"\";\r\n releaseResource: ResourceRelease;\r\n PMScreen: boolean = false;\r\n UserRole : string;\r\n disableAssociateName: boolean = false;\r\n openform: boolean = false;\r\n @Input() max: any;\r\n selectedEmpdata=[]\r\n today = new Date(); \r\n ae:any\r\n \r\n dataSource: MatTableDataSource;\r\n \r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n \r\n \r\n \r\n displayedColumns = ['DateOfJoin', 'Designation','ReportingManager'];\r\n \r\n constructor(private _service: EmployeeStatusService,private _snackBar: MatSnackBar, private _router:Router,\r\n private fb: FormBuilder, private checklist: ChecklistService, private _masterDataService: MasterDataService) {\r\n \r\n this.today.setDate(this.today.getDate());\r\n }\r\n ngOnInit() {\r\n \r\n this._empData = new EmployeeData();\r\n this.getUsersList();\r\n \r\n this.userform = this.fb.group({\r\n \r\n 'EmpId': [null, [Validators.required]],\r\n });\r\n \r\n this.terminationForm = this.fb.group({\r\n 'ExitType': [null, [Validators.required]],\r\n 'ExitReason': [null, [Validators.required]],\r\n 'IsActive': [null, [Validators.required]],\r\n 'LastWorkingDate': [null, [Validators.required]],\r\n 'tagretDate': [null, [Validators.required]],\r\n 'associateRemarks': [null, [Validators.required]],\r\n });\r\n this.clearValues();\r\n \r\n \r\n }\r\n \r\n \r\n \r\n getUsersList() {\r\n this._service.GetAssociateNames().subscribe((res: AssociateExit[]) => {\r\n let dataList: any[] = res;\r\n this._usersList = [];\r\n this._usersList.push({ label: 'Select Associate', value: null });\r\n dataList.forEach(e => {\r\n this._usersList.push({ label: e.EmpName, value: e.EmpId });\r\n });\r\n if (this.employeeId > 0) {\r\n this.disableAssociateName = true;\r\n this.userform.controls['EmpId'].setValue(this.employeeId);\r\n \r\n this.getCurrentUserDetails(this.employeeId);\r\n }\r\n });\r\n }\r\n \r\n public getCurrentUserDetails(employeeId: number){\r\n if(employeeId>0)\r\n {\r\n this.checklist.GetByEmployeeId(employeeId).subscribe((data: any) => {\r\n console.log(data.DateOfJoin = moment(data.DateOfJoin).format(\"MM/DD/YYYY\"));\r\n \r\n this.showAllocationHistoryGrid = true;\r\n \r\n \r\n \r\n \r\n this.selectedEmpdata.push(data);\r\n \r\n this.dataSource = new MatTableDataSource(this.selectedEmpdata);\r\n \r\n }\r\n );\r\n }\r\n else{\r\n this.showAllocationHistoryGrid = false;\r\n }\r\n }\r\n \r\n \r\n getExitReasonsList(){\r\n this._masterDataService.GetExitReasons().subscribe((data:any[]) => {\r\n console.log(data);\r\n this.exitreasonlist.push({label: 'Select Category', value:null})\r\n data.forEach(e=>{this.exitreasonlist.push({label:e.Name, value: e.Id})})\r\n console.log(this.exitreasonlist);\r\n });\r\n }\r\n \r\n onStatusChange(isActive: boolean) {\r\n if (isActive == false)\r\n this.enableDate = true;\r\n else\r\n this.enableDate = false;\r\n }\r\n \r\n \r\n clearValues = function () {\r\n\r\n this.showAllocationHistoryGrid = false;\r\n this.terminationForm.reset();\r\n this.userform.reset();\r\n \r\n }\r\n goto(){\r\n this._router.navigate(['/associateexit/uploadevidence']);\r\n }\r\n \r\n onSubmit() {\r\n }\r\n }\r\n ","\r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n Associate Name\r\n \r\n \r\n {{user.label}}\r\n \r\n \r\n \r\n \r\n Assosiate Name Required\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 \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
Date of Joining {{element.DateOfJoin}}Designation{{element.Designation}}Reporting Manager{{element.ReportingManager}}
\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 Cause Category\r\n \r\n {{aspect.label}}\r\n \r\n \r\n \r\n \r\n Cause Category Required\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Last Working Date\r\n \r\n \r\n \r\n \r\n \r\n \r\n Last Working Date Required.\r\n \r\n \r\n \r\n Cause Details\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 { ExitAnalysisService } from './../../Services/exit-analysis.service';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { ProjectsData } from '../../../master-layout/models/projects.model';\r\nimport * as servicePath from \"../../../../core/service-paths\";\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport * as moment from \"moment\";\r\nimport { Subscription } from 'rxjs';\r\nimport {MatSnackBar} from '@angular/material/snack-bar';\r\nimport * as fileSaver from 'file-saver';\r\nimport 'rxjs/Rx' ;\r\nimport{ ChecklistService} from '../../Services/checklist.service';\r\nimport { ActivityData, ActivityDetails, ActivityList } from '../../Models/activitymodel';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { AssociateExit } from '../../Models/associateExit.model';\r\nimport { ResignastionService } from '../../Services/resignastion.service';\r\nimport { MasterDataService } from 'src/app/core/services/masterdata.service';\r\nimport { Associate } from 'src/app/modules/onboarding/models/associate.model';\r\nimport { FormGroup, FormControl, FormArray } from '@angular/forms';\r\nimport { CommonDialogComponent } from 'src/app/modules/shared/components/common-dialog/common-dialog.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\n\r\ninterface SelectItem {\r\n value: number;\r\n label: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-clearenceform',\r\n templateUrl: './clearenceform.component.html',\r\n styleUrls: ['./clearenceform.component.scss']\r\n})\r\nexport class ClearenceformComponent implements OnInit {\r\n\r\n tlfilled:boolean=false;\r\n tlnotfilled:boolean=false;\r\n projectId: number;\r\n actualExitDate: any;\r\n FileType:string;\r\n PageSize: number = 0;\r\n PageDropDown: number[] = [];\r\n resources = servicePath.API.PagingConfigValue;\r\n projectStateSubscription: Subscription;\r\n projectState: string;\r\n associateState: string;\r\n\r\n btnLabel : string = \"Deactivate\";\r\n showButton : boolean = true;\r\n\r\n selectedTabSubscription: Subscription;\r\n // clientBillingRoleData = [];\r\n // SOWData: SOW[] = [];\r\n dashboard: string;\r\n isDrafted: boolean = false;\r\n employeeIdSubscription: Subscription;\r\n canApprove: boolean;\r\n EmpId: number;\r\n hideBack: boolean = false;\r\n showback: boolean = false;\r\n activityData = [];\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n checklist: Map = new Map();\r\n activityType: Map = new Map();\r\n IsRequired: Map = new Map();\r\n roleName: string=\"\";\r\n pageload: boolean = false;\r\n associateData:AssociateExit;\r\n employeeId:number;\r\n activities = []; \r\n clearenceForm: FormGroup;\r\n panelOpenState = false;\r\n serviceDeptID: number;\r\ndepartmentId: number;\r\n projectData: ProjectsData;\r\n reasonId: number;\r\n reasonDetail: string;\r\n rehireEligibility: boolean;\r\n rehireEligibilityDetail: string;\r\n impactOnClientDelivery: boolean;\r\n impactOnClientDeliveryDetail: string;\r\n selectDisabled = true;\r\n reasonList: any;\r\n prevActivity: string;\r\n previous: string;\r\n disable=false;\r\n dialogResponse: boolean;\r\n currentDate = moment(new Date()).format(\"MM/DD/YYYY\");\r\n UpdateExitDateRequired = false;\r\n constructor(\r\n private actRoute: ActivatedRoute, private router: Router,\r\n private _snackBar: MatSnackBar,\r\n public dialog: MatDialog,\r\n private checklistService: ChecklistService,\r\n private resignationservice:ResignastionService,\r\n private exitanalysis: ExitAnalysisService,\r\n private spinner: NgxSpinnerService\r\n ) {\r\n this.actualExitDate = this.router.getCurrentNavigation().extras.state\r\n this.resignationservice.getResigReasonDtls().subscribe(data => { \r\n this.reasonId = data.ReasonId;\r\n this.clearenceForm.get('reasonId').setValue(this.reasonId);\r\n this.reasonDetail = data.ReasonDetail;\r\n this.clearenceForm.get('reasonDetail').setValue(this.reasonDetail);\r\n\r\n \r\n \r\n \r\n this.rehireEligibility = data.RehireEligibility;\r\n this.impactOnClientDelivery = data.ImpactOnClientDelivery\r\n // this.clearenceForm.get('rehireEligibility').setValue(true);\r\n this.clearenceForm.patchValue({rehireEligibility:this.rehireEligibility})\r\n this.clearenceForm.patchValue({impactOnClientDelivery: this.impactOnClientDelivery})\r\n this.rehireEligibilityDetail = data.RehireEligibilityDetail;\r\n this.impactOnClientDeliveryDetail = data.ImpactOnClientDeliveryDetail\r\n this.clearenceForm.get('rehireEligibilityDetail').setValue(this.rehireEligibilityDetail);\r\n this.clearenceForm.get('impactOnClientDeliveryDetail').setValue(this.impactOnClientDeliveryDetail);\r\n \r\n \r\n this.clearenceForm.get('reasonId').updateValueAndValidity();\r\n this.clearenceForm.get('reasonDetail').updateValueAndValidity();\r\n \r\n this.clearenceForm.get('rehireEligibility').updateValueAndValidity();\r\n this.clearenceForm.get('rehireEligibilityDetail').updateValueAndValidity();\r\n this.clearenceForm.get('impactOnClientDelivery').updateValueAndValidity();\r\n this.clearenceForm.get('impactOnClientDeliveryDetail').updateValueAndValidity();\r\n \r\n });//this.projectData = new ProjectsData();\r\n }\r\n\r\n ngOnInit(): void {\r\n // this.EmpId = parseInt(JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).employeeId);\r\n // this.actRoute.params.subscribe(params => { this.dashboard = params[\"id\"]; });\r\n // this.roleName = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).roleName;\r\n this.previous = this.exitanalysis.getPreviousUrl();\r\n this.roleName = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).roleName;\r\n\r\n if(this.roleName ==\"Operations Head\"){\r\n this.btnLabel = \"Approve\";\r\n }\r\n else if(this.roleName ==\"HRM\"){\r\n this.btnLabel = \"Deactivate\";\r\n }\r\n else if (this.roleName == \"HRA\"){\r\n this.showButton = false;\r\n }\r\n\r\n this.actRoute.params.subscribe(params => {\r\n this.employeeId = params[\"id\"];\r\n });\r\n\r\n \r\n this.getActivitiesByHRA();\r\n \r\n\r\n this.createForm();\r\n this.resignationservice.getResignationReason().subscribe(data=>{\r\n this.reasonList = data;\r\n // this.reasonList = data\r\n })\r\n\r\n this.getRemarks();\r\n\r\n }\r\n \r\n\r\n \r\n createForm() {\r\n\r\n this.clearenceForm = new FormGroup({\r\n reasonId: new FormControl({value: (this.reasonId)? this.reasonId : null, disabled : true}),\r\n reasonDetail: new FormControl({value: (this.reasonDetail)? this.reasonDetail : null,disabled : true}),\r\n rehireEligibility: new FormControl({value : null, disabled : true}),\r\n rehireEligibilityDetail: new FormControl({value: (this.rehireEligibilityDetail)? this.rehireEligibilityDetail : null,disabled : true}),\r\n remarksByHRM : new FormControl({value : null,disabled : this.roleName=='HRA' || this.roleName=='Operations Head'}),\r\n remarksByOpsHead : new FormControl({value : null,disabled : this.roleName=='HRA'}),\r\n remarksByHRA : new FormControl(null),\r\n impactOnClientDelivery : new FormControl({value : null, disabled : true}),\r\n impactOnClientDeliveryDetail : new FormControl({value: (this.impactOnClientDeliveryDetail)? this.impactOnClientDeliveryDetail : null,disabled : true}),\r\n });\r\n }\r\n \r\n\r\n getClosureActivityByDepartment(departmentId: number){\r\n \r\n this.spinner.show();\r\n this.checklistService.GetExitActivitiesByDepartment(this.employeeId,departmentId)\r\n .toPromise().then((activitylist: ActivityList[])=>{\r\n this.spinner.hide();\r\n for(let i=0;i{\r\n this.spinner.hide();\r\n this._snackBar.open(\"Error while getting the Exit Activities by Department\", 'x', {\r\n duration: 2000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n })\r\n });\r\n }\r\n \r\n getActivitiesByHRA(){\r\n this.spinner.show();\r\n this.checklistService.getActivitiesByHRA(this.employeeId).toPromise()\r\n .then((response: ActivityData[])=>{\r\n this.spinner.hide();\r\n this.activityData= response;\r\n let departmentIDs = this.activityData.map((ad)=>{ return ad['DepartmentId']})\r\n\r\n for(let i=0;i{\r\n this.spinner.hide();\r\n \r\n });\r\n }\r\n canShowTitle(element: any, index: number) {\r\n \r\n let activity_details = this.activityType;\r\n if(index==0)\r\n {\r\n this.prevActivity = this.activityType.get(element.ActivityId);\r\n return true;\r\n \r\n }\r\n \r\n if (this.activityType.get(element.ActivityId) !== this.prevActivity) {\r\n this.prevActivity = this.activityType.get(element.ActivityId);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n SubmitForAssociateExit() {\r\n //Validation\r\n if (this.actualExitDate === this.currentDate) {\r\n this.HRMSubmit();\r\n }\r\n else {\r\n /* popup will be shown when last working date is not current date */\r\n const dialogRef = this.dialog.open(CommonDialogComponent, {\r\n width: '300px',\r\n disableClose: true,\r\n data: {\r\n heading: 'Confirmation',\r\n message: 'The last working date is not matched. Do you want to proceed?',\r\n },\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n this.dialogResponse = result;\r\n this.UpdateExitDateRequired = true;\r\n if (this.dialogResponse == true) {\r\n /* If accepting confirmation means last working is updated with current day*/\r\n this.HRMSubmit();\r\n }\r\n });\r\n }\r\n }\r\n\r\n HRMSubmit(){\r\n let SubmitData = {\r\n \"employeeId\": this.employeeId,\r\n \"userRole\": this.roleName,\r\n \"remarksByHRA\": this.clearenceForm.value.remarksByHRA,\r\n \"remarksByHRM\": this.clearenceForm.value.remarksByHRM,\r\n \"remarksByOperationsHead\": this.clearenceForm.value.remarksByOpsHead,\r\n \"UpdateExitDateRequired\": this.UpdateExitDateRequired,\r\n }\r\n this.associateData = new AssociateExit();\r\n this.associateData.ReasonId = this.clearenceForm.value.reasonId;\r\n this.associateData.ReasonDetail = this.clearenceForm.value.reasonDetail;\r\n this.associateData.RehireEligibility = this.clearenceForm.value.rehireEligibility;\r\n this.associateData.RehireEligibilityDetail = this.clearenceForm.value.rehireEligibilityDetail;\r\n this.associateData.ImpactOnClientDelivery = this.clearenceForm.value.impactOnClientDelivery;\r\n this.associateData.ImpactOnClientDeliveryDetail = this.clearenceForm.value.impactOnClientDeliveryDetail;\r\n this.spinner.show();\r\n this.checklistService.ExitClearance(SubmitData).toPromise()\r\n .then(() => {\r\n this.spinner.hide();\r\n this._snackBar.open(\"Deactivated Successfully\", 'x', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }).afterDismissed().subscribe(res => {\r\n this.onBack();\r\n });\r\n }).catch(error => {\r\n this.spinner.hide();\r\n this._snackBar.open(\"Error while approving!\", 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n onBack() {\r\n this.router.navigate(['shared/exit-actions']);\r\n // this.showback = false;\r\n }\r\n\r\n getRemarks(){\r\n this.spinner.show();\r\n this.checklistService.GetExitClearanceRemarks(this.employeeId).toPromise().then((res:any)=>{\r\n this.spinner.hide();\r\n if(res){\r\n this.clearenceForm.patchValue({\r\n remarksByHRM : (res.RemarksByHRM) ? res.RemarksByHRM : \"\",\r\n remarksByHRA : (res.RemarksByHRA) ? res.RemarksByHRA : \"\",\r\n remarksByOpsHead : (res.RemarksByOperationsHead) ? res.RemarksByOperationsHead : \"\"\r\n });\r\n }\r\n });\r\n if(this.previous == '/associateexit/associateexitinformation'){\r\n this.clearenceForm.disable()\r\n this.disable = true\r\n }\r\n }\r\n}","\r\n\r\n\r\n

Departments Activity List

\r\n\r\n
\r\n \r\n \r\n \r\n Department-{{department.DepartmentName}}\r\n \r\n \r\n \r\n check_circle\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n

{{activityType.get(element.ActivityId)}}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{ checklist.get(element.ActivityId) }} *\r\n \r\n \r\n
\r\n
\r\n \r\n Comments\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n Remarks\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n This activity is yet to be submitted...\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 Reason for Leaving Company\r\n \r\n {{reason.Name}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Client Impact*\r\n
\r\n
\r\n \r\n Yes\r\n No\r\n \r\n
\r\n
\r\n Eligible for Rehire*\r\n \r\n
\r\n
\r\n \r\n Yes\r\n No\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Client Impact Details\r\n \r\n \r\n
\r\n
\r\n \r\n Reason for Rehire\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

Remarks

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n By HR Manager\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n By HRA\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 { Component, OnInit } from '@angular/core';\r\nimport { ProjectsData } from '../../../master-layout/models/projects.model';\r\nimport * as servicePath from \"../../../../core/service-paths\";\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport * as moment from \"moment\";\r\nimport { Subscription } from 'rxjs';\r\nimport {MatSnackBar} from '@angular/material/snack-bar';\r\nimport * as fileSaver from 'file-saver';\r\nimport 'rxjs/Rx' ;\r\nimport{ ChecklistService} from '../../Services/checklist.service';\r\nimport { ActivityData, ActivityDetails, ActivityList } from '../../Models/activitymodel';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { AssociateExit } from '../../Models/associateExit.model';\r\nimport { ResignastionService } from '../../Services/resignastion.service';\r\nimport { MasterDataService } from 'src/app/core/services/masterdata.service';\r\nimport { Associate } from 'src/app/modules/onboarding/models/associate.model';\r\nimport { FormGroup, FormControl } from '@angular/forms';\r\n\r\ninterface ExitType {\r\n value : string;\r\n viewValue : string;\r\n}\r\n\r\ninterface Reason {\r\n value: string;\r\n viewValue: string;\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'app-departments-checklist',\r\n templateUrl: './departments-checklist.component.html',\r\n styleUrls: ['./departments-checklist.component.scss']\r\n})\r\nexport class DepartmentsChecklistComponent implements OnInit {\r\n tlfilled:boolean=false;\r\n tlnotfilled:boolean=false;\r\n\r\n projectId: number;\r\n FileType:string;\r\n PageSize: number = 0;\r\n PageDropDown: number[] = [];\r\n resources = servicePath.API.PagingConfigValue;\r\n projectStateSubscription: Subscription;\r\n projectState: string;\r\n associateState: string;\r\n\r\n selectedTabSubscription: Subscription;\r\n clientBillingRoleData = [];\r\n // SOWData: SOW[] = [];\r\n dashboard: string;\r\n isDrafted: boolean = false;\r\n employeeIdSubscription: Subscription;\r\n canApprove: boolean;\r\n EmpId: number;\r\n hideBack: boolean = false;\r\n showback: boolean = false;\r\n activityData = [];\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n checklist: Map = new Map();\r\n roleName: string=\"\";\r\n pageload: boolean = false;\r\n associateData:Associate;\r\n EmployeeId:number;\r\n activities = []; \r\n clearenceForm: FormGroup;\r\n panelOpenState = false;\r\n\r\n projectData: ProjectsData;\r\n\r\n\r\n constructor(\r\n private actRoute: ActivatedRoute, private router: Router,\r\n private _snackBar: MatSnackBar,\r\n private checklistService: ChecklistService,\r\n private resignationservice:ResignastionService,\r\n ) {//this.projectData = new ProjectsData();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.createForm();\r\n\r\n\r\n\r\n this.activities = \r\n [{ id: 1, naming: ' HRA ',data:'No Data'}, \r\n { id: 2, naming: 'Delivery Head' ,data:'No Data'}, \r\n { id: 3, naming: 'Admin Service' , data:'No Data'}, \r\n { id: 4, naming: 'Quality and Security Service' ,data:'No Data'}, \r\n { id: 6, naming: 'Finance Service' , data:'No Data'}, \r\n ]; \r\n\r\n\r\n this.EmpId = parseInt(JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).employeeId);\r\n this.actRoute.params.subscribe(params => { this.dashboard = params[\"id\"]; });\r\n this.roleName = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).roleName;\r\n let winpath = window.location.pathname.split(\";\")[0].split(\"/\").reverse()[0];\r\n this.showback = true;\r\n // if(winpath === 'PMDashboard' || window.location.pathname === '/project/view/DHDashboard' || window.location.pathname === '/project/view/projectDashboard' || window.location.pathname === '/project/viewteamlead/TLDashboard' ){\r\n // this.showback = true;\r\n // }\r\n\r\n this.employeeIdSubscription = this.checklistService.GetEmployeeId().subscribe(data => {\r\n this.EmployeeId = data;\r\n });\r\n\r\n \r\n this.getExitDetailsById(); //to get the project state. The code above doesn't work\r\n this.selectedTabSubscription = this.checklistService.GetSelectedTab().subscribe(data => {\r\n if (data == 3)\r\n this.hideBack = true;\r\n });\r\n \r\n for(let i=2;i<=5;i++){\r\n this.getClosureActivityByDepartment(i);\r\n }\r\n }\r\n\r\n\r\n expandPanel(matExpansionPanel, event): void {\r\n event.stopPropagation(); // Preventing event bubbling\r\n \r\n if (!this._isExpansionIndicator(event.target)) {\r\n matExpansionPanel.close(); // Here's the magic\r\n }\r\n }\r\n \r\n private _isExpansionIndicator(target: EventTarget): boolean {\r\n const expansionIndicatorClass = 'mat-expansion-indicator';\r\n\r\n return (target['classList'] && target['classList'].contains(expansionIndicatorClass) );\r\n }\r\n \r\n createForm(){\r\n\r\n this.clearenceForm = new FormGroup({\r\n \r\n reasonleaving: new FormControl(''),\r\n exittype : new FormControl(''),\r\n \r\n hrsignature: new FormControl(''),\r\n });\r\n }\r\n reason: Reason[] = [\r\n {value: 'r-0', viewValue: 'Lack of overseas opportunity'},\r\n {value: 'r-1', viewValue: 'Lack of challenging work/New technology'},\r\n {value: 'r-2', viewValue: 'Leadership/team behavioral issues'}\r\n ];\r\n\r\n exittype: ExitType[] = [ \r\n {value: 'r-0', viewValue: 'Resignation'},\r\n {value: 'r-1', viewValue: 'Discharge'},\r\n {value: 'r-2', viewValue: 'Retirement'}\r\n ];\r\n\r\n getClosureActivityByDepartment(departmentId: number){\r\n this.checklistService.GetClosureActivitiesByDepartment(departmentId)\r\n .toPromise().then((activitylist: ActivityList[])=>{\r\n for(let i=0;i{\r\n this._snackBar.open(\"Error while getting the closure activities by department\", 'x', {\r\n panelClass:['error-alert'],\r\n\r\n duration: 2000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n })\r\n });\r\n }\r\n\r\n onBack(){\r\n this.showback = false;\r\n this.router.navigate(['shared/exit-actions']);\r\n }\r\n\r\n getExitDetailsById() {\r\n if (this.EmpId > 0) {\r\n this.GetExitDetailsById(this.EmpId);\r\n }\r\n }\r\n private GetExitDetailsById(empId : number): void {\r\n this.resignationservice\r\n .getExitDetailsById(empId)\r\n .toPromise().then(\r\n (associateData: Associate) => {\r\n this.associateData = associateData;\r\n this.associateState=this.associateData.associateState;\r\n this.pageload = true;\r\n }).catch(\r\n error => {\r\n this._snackBar.open(\"Error while getting the project details\", 'x', {\r\n panelClass:['error-alert'],\r\n\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n}\r\n","

departments-checklist works!

\r\n","import { Component, OnInit , ViewChild} from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { FormGroupDirective} from '@angular/forms';\r\nimport * as moment from 'moment';\r\nimport { NavService } from '../../../master-layout/services/nav.service';\r\nimport { ChecklistService } from '../../Services/checklist.service';\r\nimport { AssociateExit } from '../../Models/associateExit.model';\r\nimport { ActivityList } from '../../Models/activitymodel';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { AssociateExitDashboardService } from 'src/app/modules/shared/services/associate-exit-dashboard.service';\r\n@Component({\r\n selector: 'app-ktplan-dashboard',\r\n templateUrl: './ktplan-dashboard.component.html',\r\n styleUrls: ['./ktplan-dashboard.component.scss']\r\n})\r\nexport class KTPlanDashboardComponent implements OnInit {\r\n associateList : AssociateExit[]; \r\n activitytype: ActivityList;\r\n EmployeeId: number;\r\n roleName: string;\r\n dashboard: string = \"SMDashboard\";\r\n resources = servicePath.API.PagingConfigValue;\r\n dataSource = new MatTableDataSource();\r\n pageload: boolean = false;\r\n isLoading: boolean = false;\r\n serviceDeptId : number = 0;\r\n \r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n \r\n displayedColumns: string[] = [\r\n 'employeeId', 'employeeName', 'designation',\r\n 'exitDate', 'status', 'Action'\r\n ];\r\n\r\n constructor(\r\n public navService: NavService,\r\n private servicemanagerservice: ChecklistService,\r\n private associateexitservice: AssociateExitDashboardService,\r\n private route: Router,\r\n private spinner: NgxSpinnerService,\r\n private snackBar: MatSnackBar,\r\n){\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.spinner.show();\r\n \r\n this.getExitDashboard();\r\n }\r\n\r\n getExitDashboard() {\r\n this.isLoading = true;\r\n\r\n this.roleName = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).roleName;\r\n this.EmployeeId = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).employeeId;\r\n\r\n \r\n switch (this.roleName) {\r\n \r\n case (\"Quality and Information Security Manager\"): {\r\n this.serviceDeptId = 5;\r\n break;\r\n }\r\n case (\"Admin Manager\"): {\r\n this.serviceDeptId = 2;\r\n break;\r\n }\r\n case (\"IT Manager\"): {\r\n this.serviceDeptId = 3;\r\n break;\r\n }\r\n case (\"Finance Manager\"): {\r\n this.serviceDeptId = 4;\r\n break;\r\n }\r\n\r\n case (\"HRM\"): {\r\n this.serviceDeptId = 6;\r\n break;\r\n }\r\n \r\n case (\"Training Department Head\"): {\r\n this.serviceDeptId = 7;\r\n break;\r\n }\r\n\r\n }\r\n\r\n this.associateexitservice\r\n .getAssociateExitDashbaord(this.roleName, this.EmployeeId, this.dashboard)//'Service Manager'\r\n .toPromise().then( (res: any[]) => {\r\n this.isLoading = false;\r\n \r\n this.ModifyDateFormat(res);\r\n res.forEach( item =>{ \r\n \r\n \r\n });\r\n return res;\r\n }).then(res=>{\r\n this.dataSource = new MatTableDataSource(res);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.spinner.hide();\r\n this.pageload = true;\r\n \r\n \r\n }).catch(error => {\r\n this.spinner.hide();\r\n this.pageload = true;\r\n });\r\n}\r\n ModifyDateFormat(data: AssociateExit[]): void {\r\n data.forEach(e => {\r\n if (e.ExitDate != null) {\r\n e.ExitDate = moment(e.ExitDate).format(\"MM/DD/YYYY\");\r\n }\r\n \r\n });\r\n this.associateList = data;\r\n this.pageload = true;\r\n this.spinner.hide();\r\n\r\n }\r\n}\r\n","\r\n \r\n

KT Plan

\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 \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
Employee Code {{element.EmployeeCode}} Employee Name {{element.EmployeeName}} Designation {{element.Designation}} Exit Date {{element.ExitDate}} status {{element.StatusDesc}} Action \r\n Transition Plan\r\n
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport * as moment from 'moment';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { AssociateExit } from '../../Models/associateExit.model';\r\nimport { PmApprovalService } from '../../Services/pm-approval.service';\r\nimport { ResignastionService } from '../../Services/resignastion.service';\r\n\r\n@Component({\r\n selector: 'app-pm-approval',\r\n templateUrl: './pm-approval.component.html',\r\n styleUrls: ['./pm-approval.component.scss']\r\n})\r\nexport class PmApprovalComponent implements OnInit {\r\n\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n PMApprovalform: FormGroup;\r\n AssociateExit: AssociateExit;\r\n employeeId: number;\r\n resignationApproved = false;\r\n btnLabel = 'Accept';\r\n UserRole: string;\r\n showClientImpact = true;\r\n sendText: boolean;\r\n changedLWD: any;\r\n updateLWD = false;\r\n constructor(private actRoute: ActivatedRoute,\r\n private _PmApprovalService: PmApprovalService,\r\n private _snackBar: MatSnackBar,\r\n private _router: Router,\r\n private spinner: NgxSpinnerService,\r\n private _resignationService: ResignastionService) { }\r\n\r\n ngOnInit(): void {\r\n this.actRoute.params.subscribe(params => {\r\n this.employeeId = params.id;\r\n });\r\n\r\n if (sessionStorage.getItem('AssociatePortal_UserInformation') != null) {\r\n const currentRole = JSON.parse(\r\n sessionStorage.getItem('AssociatePortal_UserInformation')\r\n ).roleName;\r\n this.UserRole = currentRole;\r\n }\r\n\r\n if (this.UserRole === 'Operations Head') {\r\n this.showClientImpact = false;\r\n }\r\n\r\n\r\n this.createPMApprovalForm();\r\n this.getPMApprovalData();\r\n\r\n }\r\n\r\n LastWorkingDateChange(LWD: any) {\r\n this.changedLWD = LWD;\r\n }\r\n\r\n createPMApprovalForm() {\r\n this.PMApprovalform = new FormGroup({\r\n impactOnClientDelivery: new FormControl(null),\r\n impactOnClientDeliveryDetail: new FormControl(null),\r\n rehireEligibility: new FormControl(null),\r\n rehireEligibilityDetail: new FormControl(null),\r\n resignationRecommendation: new FormControl(null),\r\n });\r\n\r\n }\r\n\r\n getPMApprovalData() {\r\n this.spinner.show();\r\n this._resignationService.getExitDetailsById(this.employeeId).subscribe((res: any) => {\r\n this.spinner.hide();\r\n this.AssociateExit = new AssociateExit();\r\n this.AssociateExit = res;\r\n this.changedLWD = this.AssociateExit.ExitDate;\r\n\r\n if (this.UserRole === 'HRM') {\r\n\r\n this.PMApprovalform.patchValue({\r\n impactOnClientDelivery: this.AssociateExit.ImpactOnClientDelivery,\r\n impactOnClientDeliveryDetail: this.AssociateExit.ImpactOnClientDeliveryDetail,\r\n rehireEligibility: this.AssociateExit.RehireEligibility,\r\n rehireEligibilityDetail: this.AssociateExit.RehireEligibilityDetail,\r\n resignationRecommendation: this.AssociateExit.ResignationRecommendation,\r\n });\r\n\r\n this.PMApprovalform.controls.impactOnClientDelivery.disable();\r\n this.PMApprovalform.controls.impactOnClientDeliveryDetail.disable();\r\n this.PMApprovalform.controls.rehireEligibilityDetail.disable();\r\n this.PMApprovalform.controls.rehireEligibility.disable();\r\n if (this.AssociateExit.Status === 'ResignationReviewed') {\r\n this.btnLabel = 'Accept';\r\n }\r\n else {\r\n this.btnLabel = 'Update';\r\n }\r\n this.resignationApproved = true;\r\n\r\n\r\n }\r\n else {\r\n this.PMApprovalform.disable();\r\n }\r\n });\r\n\r\n }\r\n\r\n approveResignation() {\r\n if(this.AssociateExit.ExitDate){ \r\n if (this.btnLabel === 'Accept') {\r\n this.AssociateExit.ExitDate = this.changedLWD;\r\n this.AssociateExit.SubmitType = 'Approve';\r\n this.AssociateExit.ImpactOnClientDelivery = this.PMApprovalform.value.impactOnClientDelivery;\r\n this.AssociateExit.ImpactOnClientDeliveryDetail = this.PMApprovalform.value.impactOnClientDeliveryDetail;\r\n this.AssociateExit.RehireEligibility = this.PMApprovalform.value.rehireEligibility;\r\n this.AssociateExit.RehireEligibilityDetail = this.PMApprovalform.value.rehireEligibilityDetail;\r\n this.AssociateExit.ResignationRecommendation = this.PMApprovalform.value.resignationRecommendation;\r\n\r\n\r\n this.spinner.show();\r\n this._PmApprovalService.submitPMApproval(this.AssociateExit).subscribe(res => {\r\n this.spinner.hide();\r\n if (res) {\r\n this._snackBar.open('Resignation Accepted successfully.', 'x', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this._router.navigate(['/shared/exit-actions']);\r\n }\r\n },\r\n error => {\r\n this.spinner.hide();\r\n this._snackBar.open('Unable to accept resignation', 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n else {\r\n if (moment(this.changedLWD).format('YYYY-MM-DD') === moment(this.AssociateExit.ExitDate).format('YYYY-MM-DD')) {\r\n this._snackBar.open('No changes to update', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n else {\r\n this.AssociateExit.ExitDate = moment(this.changedLWD).format('YYYY-MM-DD');\r\n this.spinner.show();\r\n this.updateLWD = false;\r\n this._PmApprovalService.submitPMApproval(this.AssociateExit).subscribe(res => {\r\n this.spinner.hide();\r\n if (res && res['IsSuccessful']) {\r\n if(res['Message']){\r\n this._snackBar.open(res['Message'], 'x', {\r\n duration: 5000,\r\n panelClass: ['warning-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.updateLWD = true;\r\n }\r\n else{\r\n this._snackBar.open('Last Working Date Updated successfully.', 'x', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this._router.navigate(['/shared/exit-actions']);\r\n }\r\n }\r\n }, error => {\r\n this.spinner.hide();\r\n this._snackBar.open('Unable to update Last Working Date', 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n\r\n }\r\n }\r\n }\r\n\r\n withdrawRequest() {\r\n this.PMApprovalform.controls.resignationRecommendation.setValidators(Validators.required);\r\n this.PMApprovalform.controls.resignationRecommendation.updateValueAndValidity();\r\n if (this.PMApprovalform.value.resignationRecommendation) {\r\n this._PmApprovalService.withdrawRequest(this.AssociateExit.EmployeeId, this.PMApprovalform.value.resignationRecommendation).\r\n subscribe(res => {\r\n if (res) {\r\n this._snackBar.open('Resignation Withdrawl Request Sent.', 'x', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this._router.navigate(['/shared/exit-actions']);\r\n }\r\n },\r\n (error) => {\r\n this._snackBar.open('Unable to Send Request.', 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n }\r\n\r\n reject() {\r\n\r\n }\r\n\r\n}\r\n","\r\n\r\n
\r\n \r\n
\r\n
\r\n Client Impact*\r\n
\r\n
\r\n \r\n Yes\r\n No\r\n \r\n
\r\n
\r\n Eligible for Rehire*\r\n \r\n
\r\n
\r\n \r\n Yes\r\n No\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Client Impact Details\r\n \r\n \r\n
\r\n
\r\n \r\n Reason for Rehire\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 { Component, OnInit } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { CommonDialogComponent } from 'src/app/modules/shared/components/common-dialog/common-dialog.component';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { AssociateExit, AssociateExitPMRequest } from '../../Models/associateExit.model';\r\nimport { PmApprovalService } from '../../Services/pm-approval.service';\r\nimport { ResignastionService } from '../../Services/resignastion.service';\r\n\r\n@Component({\r\n selector: 'app-pm-submission',\r\n templateUrl: './pm-submission.component.html',\r\n styleUrls: ['./pm-submission.component.scss']\r\n})\r\nexport class PMSubmissionComponent implements OnInit {\r\n\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n PMApprovalform: FormGroup;\r\n AssociateExit: AssociateExit;\r\n employeeId: number;\r\n resignationApproved = false;\r\n btnLabel = 'Submit';\r\n UserRole: string;\r\n showClientImpact = true;\r\n sendText = false;\r\n PMApprovalObj: AssociateExitPMRequest;\r\n currentloggedInUser: number;\r\n\r\n constructor(private actRoute: ActivatedRoute,\r\n private _PmApprovalService: PmApprovalService,\r\n private _snackBar: MatSnackBar,\r\n private _router: Router,\r\n private dialog: MatDialog,\r\n private spinner: NgxSpinnerService,\r\n private _resignationService: ResignastionService) { }\r\n\r\n ngOnInit(): void {\r\n this.actRoute.params.subscribe(params => {\r\n this.employeeId = params.id;\r\n });\r\n\r\n if (sessionStorage.getItem('AssociatePortal_UserInformation') != null) {\r\n const currentRole = JSON.parse(\r\n sessionStorage.getItem('AssociatePortal_UserInformation')\r\n ).roleName;\r\n this.UserRole = currentRole;\r\n this.currentloggedInUser = JSON.parse(\r\n sessionStorage.getItem('AssociatePortal_UserInformation')\r\n ).employeeId;\r\n }\r\n\r\n if (this.UserRole === 'Operations Head') {\r\n this.showClientImpact = false;\r\n }\r\n\r\n\r\n this.createPMApprovalForm();\r\n this.getExitDetailsById();\r\n\r\n }\r\n getExitDetailsById() {\r\n this.spinner.show();\r\n this._resignationService.getExitDetailsById(this.employeeId).subscribe((res: any) => {\r\n this.spinner.hide();\r\n this.AssociateExit = new AssociateExit();\r\n this.AssociateExit = res;\r\n if (this.AssociateExit.Status !== 'ResignationSubmitted') {\r\n\r\n this.PMApprovalform.patchValue({\r\n impactOnClientDelivery: this.AssociateExit.ImpactOnClientDelivery,\r\n impactOnClientDeliveryDetail: this.AssociateExit.ImpactOnClientDeliveryDetail,\r\n rehireEligibility: this.AssociateExit.RehireEligibility,\r\n rehireEligibilityDetail: this.AssociateExit.RehireEligibilityDetail,\r\n resignationRecommendation: this.AssociateExit.ResignationRecommendation,\r\n });\r\n\r\n this.PMApprovalform.disable();\r\n }\r\n });\r\n }\r\n LastWorkingDateChange(LWD: any) {\r\n this.AssociateExit.ExitDate = LWD;\r\n }\r\n\r\n createPMApprovalForm() {\r\n this.PMApprovalform = new FormGroup({\r\n impactOnClientDelivery: new FormControl(false, [Validators.required]),\r\n impactOnClientDeliveryDetail: new FormControl(null),\r\n rehireEligibility: new FormControl(false, [Validators.required]),\r\n rehireEligibilityDetail: new FormControl(null),\r\n });\r\n\r\n }\r\n\r\n Submit() {\r\n if (this.PMApprovalform.valid) {\r\n const dialogRef = this.dialog.open(CommonDialogComponent, {\r\n width: '300px',\r\n disableClose: true,\r\n data: {\r\n heading: 'Confirmation',\r\n message: 'Are you sure, You want to Submit?',\r\n },\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result === true) {\r\n this.PMApprovalObj = {\r\n AssociateExitId: this.AssociateExit.AssociateExitId,\r\n EmployeeId: this.AssociateExit.EmployeeId,\r\n ExitTypeId: this.AssociateExit.ExitTypeId,\r\n RehireEligibility: this.PMApprovalform.value.rehireEligibility,\r\n RehireEligibilityDetail: this.PMApprovalform.value.rehireEligibilityDetail,\r\n ImpactOnClientDelivery: this.PMApprovalform.value.impactOnClientDelivery,\r\n ImpactOnClientDeliveryDetail: this.PMApprovalform.value.impactOnClientDeliveryDetail,\r\n ProgramManagerId: this.currentloggedInUser\r\n };\r\n this.spinner.show();\r\n this._PmApprovalService.ReviewByPM(this.PMApprovalObj).subscribe(res => {\r\n const IsSuccessful = 'IsSuccessful';\r\n this.spinner.hide();\r\n if (res[IsSuccessful]) {\r\n this._snackBar.open('Submitted Details Successfully.', 'x', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n if(this.UserRole == 'Team Lead'){\r\n this._router.navigate(['/shared/dashboard']);\r\n }\r\n else{\r\n this._router.navigate(['/shared/exit-actions']);\r\n }\r\n }\r\n else {\r\n this._snackBar.open('Unable to submit details', 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n },\r\n (error) => {\r\n this.spinner.hide();\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\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 Client Impact*\r\n
\r\n
\r\n \r\n Yes\r\n No\r\n \r\n
\r\n
\r\n Eligible for Rehire*\r\n \r\n
\r\n
\r\n \r\n Yes\r\n No\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Client Impact Details\r\n \r\n \r\n
\r\n
\r\n \r\n Reason for Rehire\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 { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, FormGroupDirective, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport * as moment from 'moment';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { MasterDataService } from '../../../../core/services/masterdata.service';\r\nimport { GenericType } from '../../../master-layout/models/dropdowntype.model';\r\nimport { Associate } from '../../../onboarding/models/associate.model';\r\nimport { AssociateExit } from '../../Models/associateExit.model';\r\nimport { ResignastionService } from '../../Services/resignastion.service';\r\n\r\ninterface SelectItem {\r\n value: number;\r\n label: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-resignation',\r\n templateUrl: './resignation.component.html',\r\n styleUrls: ['./resignation.component.scss']\r\n})\r\nexport class ResignationComponent implements OnInit, OnChanges {\r\n\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n resignationForm: FormGroup;\r\n reasonList: SelectItem[] = [];\r\n HRAList: SelectItem[] = [];\r\n empId: number;\r\n exitDate: Date = new Date();\r\n disableInput = false;\r\n disableExitDate: boolean;\r\n AssociateDetails: Associate;\r\n AssociateExit: AssociateExit = new AssociateExit();\r\n UserRole: string;\r\n programManagerName = '';\r\n designationName = '';\r\n btnLabel = 'Submit';\r\n showback = false;\r\n deliverydept = false;\r\n currentPath: string;\r\n formSubmitted = false;\r\n minDate = new Date();\r\n deptListScreen = false;\r\n minLWD = new Date();\r\n\r\n @Input() flag: boolean;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n\r\n @Output() lastWorkingDateEvent = new EventEmitter();\r\n @Output() HraSelectionEvent = new EventEmitter();\r\n myFilter = (d: Date): boolean => {\r\n const day = d.getDay();\r\n // Prevent Saturday and Sunday from being selected.\r\n return day !== 0 && day !== 6;\r\n }\r\n\r\n constructor(\r\n private _resignationService: ResignastionService,\r\n private _router: Router,\r\n private _snackBar: MatSnackBar,\r\n private _masterDataService: MasterDataService,\r\n private spinner: NgxSpinnerService,\r\n private actRoute: ActivatedRoute) { }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.flag = changes.flag.currentValue;\r\n if(this.flag){\r\n this.getAssociateExitDetails();\r\n }\r\n }\r\n ngOnInit(): void {\r\n if (sessionStorage.getItem('AssociatePortal_UserInformation') != null) {\r\n const currentRole = JSON.parse(\r\n sessionStorage.getItem('AssociatePortal_UserInformation')\r\n ).roleName;\r\n this.UserRole = currentRole;\r\n this.empId = JSON.parse(\r\n sessionStorage.getItem('AssociatePortal_UserInformation')\r\n ).employeeId;\r\n }\r\n this.actRoute.url.subscribe(url => { this.currentPath = url[0].path; });\r\n if (this.UserRole === 'HRM' || this.UserRole === 'Program Manager' || this.UserRole === 'Team Lead') {\r\n this.showback = true;\r\n this.actRoute.params.subscribe(params => {\r\n this.empId = params.id;\r\n });\r\n }\r\n if (this.currentPath === 'deptchecklist') {\r\n this.showback = true;\r\n this.actRoute.params.subscribe(params => {\r\n this.empId = params.id;\r\n });\r\n }\r\n this.getAssociateExitDetails();\r\n this.createResignationForm();\r\n this.getReason();\r\n }\r\n \r\n getAssociateExitDetails() {\r\n this._resignationService.getExitDetailsById(this.empId).subscribe((res: any) => {\r\n if (res) {\r\n this.AssociateExit = new AssociateExit();\r\n this.AssociateExit = res;\r\n res.DateOfJoin = moment(res.DateOfJoin).format('MM/DD/YYYY');\r\n if (this.AssociateExit.DepartmentId === 1){\r\n this.deliverydept = true;\r\n }\r\n\r\n if (res.AssociateExitId) {\r\n\r\n this.resignationForm.patchValue({\r\n resignationDate: moment(this.AssociateExit.ResignationDate).format('YYYY-MM-DD'),\r\n exitDate: moment(this.AssociateExit.ExitDate).format('YYYY-MM-DD'),\r\n reasonId: this.AssociateExit.ReasonId,\r\n reasonDetail: this.AssociateExit.ReasonDetail,\r\n associateRemarks: this.AssociateExit.AssociateRemarks,\r\n });\r\n\r\n this.minLWD = new Date(res.ResignationDate);\r\n \r\n if (this.UserRole === 'HRM' || this.UserRole === 'Team Lead') {\r\n this.resignationForm.controls.resignationDate.disable();\r\n this.resignationForm.controls.reasonId.disable();\r\n this.resignationForm.controls.reasonDetail.disable();\r\n this.resignationForm.controls.associateRemarks.disable();\r\n if (res.Status === 'RevokeRequested' || this.currentPath === 'PMSubmission') {\r\n this.resignationForm.controls.exitDate.disable();\r\n }\r\n }\r\n else {\r\n this.resignationForm.disable();\r\n }\r\n this.btnLabel = 'Submit';\r\n this.disableInput = true;\r\n\r\n }\r\n\r\n else {\r\n this.disableExitDate = true;\r\n if(this.AssociateExit.NoticePeriodInDays){\r\n var date = new Date(this.exitDate.setDate(this.exitDate.getDate() + this.AssociateExit.NoticePeriodInDays))\r\n if (date.getDay() == 6) {\r\n var changeddate = date.setDate(date.getDate()-1)\r\n }\r\n else if( date.getDay() == 0) {\r\n changeddate = date.setDate(date.getDate()-2)\r\n }\r\n else {\r\n changeddate = date.setDate(date.getDate())\r\n }\r\n this.resignationForm.patchValue({\r\n resignationDate: moment(new Date()).format('YYYY-MM-DD'),\r\n exitDate: moment(changeddate).format('YYYY-MM-DD')\r\n });\r\n }\r\n else{\r\n this._snackBar.open('Error While getting Notice Period Days', 'x', {\r\n duration: 5000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n createResignationForm() {\r\n this.resignationForm = new FormGroup({\r\n resignationDate: new FormControl(null, [Validators.required]),\r\n exitDate: new FormControl(null, [Validators.required]),\r\n reasonId: new FormControl(null, [Validators.required]),\r\n reasonDetail: new FormControl(null, [Validators.required]),\r\n associateRemarks: new FormControl(null),\r\n });\r\n\r\n }\r\n\r\n getReason(): void {\r\n this._resignationService.getResignationReason().subscribe((res: GenericType[]) => {\r\n this.reasonList = [];\r\n this.reasonList.push({ label: '', value: null });\r\n res.forEach((e: GenericType) => {\r\n this.reasonList.push({ label: e.Name, value: e.Id });\r\n });\r\n });\r\n\r\n }\r\n\r\n clear() {\r\n setTimeout(() =>\r\n this.formGroupDirective.resetForm({\r\n resignationDate: this.resignationForm.get('resignationDate').value,\r\n exitDate: this.resignationForm.get('exitDate').value\r\n }), 0);\r\n }\r\n\r\n submitResignation() {\r\n this.formSubmitted = true;\r\n if (this.resignationForm.valid) {\r\n this.AssociateExit.ResignationDate = this.resignationForm.value.resignationDate;\r\n this.AssociateExit.ExitDate = this.resignationForm.value.exitDate;\r\n this.AssociateExit.CalculatedExitDate = this.resignationForm.value.exitDate;\r\n this.AssociateExit.ReasonId = this.resignationForm.value.reasonId;\r\n this.AssociateExit.ReasonDetail = this.resignationForm.value.reasonDetail;\r\n this.AssociateExit.AssociateRemarks = this.resignationForm.value.associateRemarks;\r\n this.AssociateExit.ExitTypeId = 1;\r\n this.spinner.show();\r\n this._resignationService.submitResignation(this.AssociateExit).subscribe(res => {\r\n if (res) {\r\n this.spinner.hide();\r\n this._snackBar.open('Resignation Submitted successfully.', 'x', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this._router.navigate(['/shared/dashboard']);\r\n }\r\n },\r\n error => {\r\n this.spinner.hide();\r\n this._snackBar.open('Unable to submit resignation', 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n\r\n onBack() {\r\n if(this.UserRole === 'Team Lead'){\r\n this._router.navigate(['/shared/dashboard']);\r\n }\r\n else{\r\n this._router.navigate(['/shared/exit-actions']);\r\n }\r\n }\r\n\r\n setLWD(newLWD: Date) {\r\n this.lastWorkingDateEvent.emit(newLWD);\r\n }\r\n setHra(hra: any) {\r\n this.HraSelectionEvent.emit(hra);\r\n }\r\n\r\n}\r\n","\r\n
\r\n
\r\n Associate Details\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Associate Id
\r\n
: {{AssociateExit.EmployeeCode}}
\r\n
\r\n
\r\n
\r\n
\r\n
Associate Name
\r\n
: {{AssociateExit.EmployeeName}}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
Project
\r\n
: {{AssociateExit.ProjectName}}
\r\n
\r\n \r\n
Department
\r\n
: {{AssociateExit.Department}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Designation
\r\n
: {{AssociateExit.Designation}}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
Program Manager
\r\n
: {{AssociateExit.ProgramManager}}
\r\n
\r\n \r\n
Program/Reporting Manager
\r\n
: {{AssociateExit.ProgramManager}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Tenure
\r\n
: {{AssociateExit?.Tenure}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Date of Joining
\r\n
: {{AssociateExit?.DateOfJoin| date: 'mediumDate'}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
Resignation Date
\r\n
: {{AssociateExit?.ResignationDate| date: 'mediumDate'}}
\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 Resignation Date*\r\n \r\n \r\n \r\n \r\n Resignation Date Required.\r\n \r\n \r\n
\r\n
\r\n \r\n Last Working Date*\r\n \r\n \r\n \r\n \r\n \r\n Exit Date Required.\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Reason *\r\n \r\n {{reason.label}}\r\n \r\n \r\n Reason Required.\r\n \r\n \r\n
\r\n
\r\n \r\n Resignation Reason Details*\r\n \r\n \r\n Reason Details Required.\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Any Additional Remarks\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 { Component, Inject, OnInit } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\n\r\n@Component({\r\n selector: 'app-revoke-dialog',\r\n templateUrl: './revoke-dialog.component.html',\r\n styleUrls: ['./revoke-dialog.component.scss']\r\n})\r\nexport class RevokeDialogComponent implements OnInit {\r\n\r\n revokeResignation: FormGroup;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n submitType:string;\r\n \r\n\r\n constructor(private dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) { }\r\n\r\n\r\n\r\n ngOnInit(): void {\r\n this.submitType = this.data.value;\r\n this.revokeResignation = new FormGroup({\r\n RevokeReason: new FormControl(null, [Validators.required]),\r\n });\r\n\r\n }\r\n\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n save() : void {\r\n if(this.revokeResignation.valid)\r\n this.dialogRef.close(this.revokeResignation.value);\r\n \r\n }\r\n}\r\n","

Revoke Resignation

\r\n

Accept Revoke

\r\n

Reject Revoke

\r\n \r\n
\r\n
\r\n
\r\n \r\n Reason for revoking*\r\n Reason for accepting revoke*\r\n Reason for rejecting revoke*\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 { Component, OnInit, Inject } from '@angular/core';\r\nimport { AbscondService } from '../../Services/abscond.service';\r\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-view-abscond-detailed-status',\r\n templateUrl: './view-abscond-detailed-status.component.html',\r\n styleUrls: ['./view-abscond-detailed-status.component.scss']\r\n})\r\nexport class ViewAbscondDetailedStatusComponent implements OnInit {\r\n\r\n EmpId: number;\r\n statusDetails: any;\r\n rolesAndDepartments: any;\r\n constructor(private abscondService:AbscondService,\r\n @Inject(MAT_DIALOG_DATA) public data: any) { }\r\n\r\n ngOnInit(): void {\r\n this.EmpId = JSON.parse(\r\n sessionStorage.AssociatePortal_UserInformation\r\n ).employeeId;\r\n this.rolesAndDepartments = JSON.parse(\r\n sessionStorage.getItem('RolesAndDepartments')\r\n )\r\n this.getStatusDetails();\r\n }\r\n \r\n getStatusDetails(){\r\n this.abscondService.GetAbscondSubStatus(this.data.value).subscribe(res => {\r\n this.statusDetails =res\r\n if(this.statusDetails['AssociateExitStatusCode'] === 'AbscondConfirmed'){\r\n if(this.statusDetails['ActivitiesSubStatus']){\r\n this.statusDetails['ActivitiesSubStatus'].forEach((dept,i) => {\r\n this.rolesAndDepartments.forEach(e => {\r\n if(e.DepartmentId === dept.DepartmentId)\r\n this.statusDetails['ActivitiesSubStatus'][i]['DepartmentName'] = e.DepartmentCode\r\n })\r\n })\r\n }\r\n }\r\n })\r\n }\r\n\r\n getColor(status){\r\n if(status === 'DepartmentActivityInProgress'){\r\n return 'orange'\r\n }\r\n else if(status === 'DepartmentActivityCompleted'){\r\n return 'green'\r\n }\r\n else{\r\n return 'white'\r\n }\r\n }\r\n}\r\n","

Status

\r\n\r\n
\r\n Activities\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 Department\r\n \r\n Status\r\n
{{item.DepartmentName}}\r\n {{item.ActivityStatusDesc}}
\r\n
\r\n Activities: \r\n Not Yet Started\r\n
\r\n
\r\n\r\n
\r\n\r\n \r\n","import { Component, OnInit, ViewChild, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Router } from '@angular/router';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { FormControl, FormGroup, FormBuilder, FormGroupDirective } from '@angular/forms';\r\nimport { ExitAnalysisService } from '../../Services/exit-analysis.service';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { CauseForm } from '../../Models/causeanalysis.model';\r\n\r\n@Component({\r\n selector: 'app-view-analysis-form',\r\n templateUrl: './view-analysis-form.component.html',\r\n styleUrls: ['./view-analysis-form.component.scss']\r\n})\r\nexport class ViewAnalysisFormComponent implements OnInit {\r\n themeAppearence = themeconfig.formfieldappearances;\r\n rootcauseform: FormGroup;\r\n causeForm: CauseForm;\r\n element: any;\r\n isView: true;\r\n editMode: false;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private formBuilder: FormBuilder,\r\n private _snackBar: MatSnackBar,\r\n private _router: Router,\r\n private causeservice: ExitAnalysisService,\r\n\r\n ) {\r\n if (data.element) {\r\n this.element = this.data.element;\r\n\r\n }\r\n this.isView = this.data.isView;\r\n\r\n }\r\n ngOnInit(): void {\r\n\r\n this.rootcauseform = this.formBuilder.group({\r\n rootCause: [((this.element && this.element.RootCause) ? this.element.RootCause : \"\")],\r\n actionItem: [((this.element && this.element.ActionItem) ? this.element.ActionItem : \"\")],\r\n tagretDate: [((this.element && this.element.TagretDate) ? this.element.TagretDate : \"\")],\r\n actualDate: [((this.element && this.element.ActualDate) ? this.element.ActualDate : \"\")],\r\n responsibility: [((this.element && this.element.Responsibility) ? this.element.Responsibility : \"\")],\r\n remarks: [((this.element && this.element.Remarks) ? this.element.Remarks : \"\")],\r\n\r\n });\r\n }\r\n saveCauseForm() {\r\n this.causeForm = new CauseForm();\r\n\r\n this.causeForm.submitType = \"save\";\r\n this.update(this.causeForm);\r\n\r\n }\r\n\r\n update(causeForm: any) {\r\n causeForm.employeeId = this.element.EmployeeId;\r\n causeForm.rootCause = this.rootcauseform.value.rootCause.disable();\r\n causeForm.actionItem = this.rootcauseform.value.actionItem.disable();\r\n causeForm.responsibility = this.rootcauseform.value.responsibility.disable();\r\n causeForm.tagretDate = this.rootcauseform.value.tagretDate.disable();\r\n causeForm.actualDate = this.rootcauseform.value.actualDate.disable();\r\n causeForm.remarks = this.rootcauseform.value.remarks.disable();\r\n\r\n this.causeservice.CreateExitAnalysis(causeForm).toPromise()\r\n .then(() => {\r\n if (this.causeForm.submitType = \"save\") {\r\n this._snackBar.open(\"Save Successfully\", 'x', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() =>\r\n this.formGroupDirective.resetForm(), 0)\r\n }\r\n\r\n }).catch(error => {\r\n this._snackBar.open(\"Error while save!\", 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n\r\n }\r\n}","

View Analysis Form

\r\n
\r\n
\r\n
\r\n
\r\n \r\n Root Cause\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n Action Item\r\n \r\n \r\n
\r\n
\r\n \r\n Target Date\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Actual Date\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Responsibility\r\n \r\n \r\n
\r\n
\r\n \r\n Remarks\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 { ExitAnalysisService } from '../../Services/exit-analysis.service';\r\nimport { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { from, Subscription } from 'rxjs';\r\nimport { ProjectsData } from 'src/app/modules/master-layout/models/projects.model';\r\nimport { Associate } from '../../../onboarding/models/associate.model';\r\nimport { ActivityData, ActivityDetails, ActivityList } from '../../Models/activitymodel';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { FormControl, FormGroup, Validators, FormBuilder, FormArray } from '@angular/forms';\r\nimport { AssociateExit } from '../../Models/associateExit.model';\r\nimport { ResignastionService } from '../../Services/resignastion.service';\r\nimport { MasterDataService } from 'src/app/core/services/masterdata.service';\r\n\r\n@Component({\r\n selector: 'app-view-associate-exit-details',\r\n templateUrl: './view-associate-exit-details.component.html',\r\n styleUrls: ['./view-associate-exit-details.component.scss']\r\n})\r\nexport class ViewAssociateExitDetailsComponent implements OnInit {\r\n\r\n\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n currentPath: string;\r\n employeeId: number;\r\n serviceDeptID: number;\r\n empId: number;\r\n AssociateExit: AssociateExit;\r\n dashboard: string;\r\n hideBack = false;\r\n showback = true;\r\n UserRole: string;\r\n showProject = false;\r\n previous: string;\r\n constructor(\r\n private _router: Router,\r\n public dialog: MatDialog,\r\n public fb: FormBuilder,\r\n private actRoute: ActivatedRoute,\r\n private _resignationService: ResignastionService,\r\n private exitanalysis: ExitAnalysisService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.previous = this.exitanalysis.getPreviousUrl();\r\n this.actRoute.url.subscribe(url => { this.currentPath = url[0].path; });\r\n this.actRoute.params.subscribe(params => {\r\n this.empId = params.id;\r\n });\r\n if (sessionStorage.getItem('AssociatePortal_UserInformation') != null) {\r\n const currentRole = JSON.parse(\r\n sessionStorage.getItem('AssociatePortal_UserInformation')\r\n ).roleName;\r\n this.UserRole = currentRole;\r\n this.employeeId = JSON.parse(\r\n sessionStorage.getItem('AssociatePortal_UserInformation')\r\n ).employeeId;\r\n }\r\n\r\n this._resignationService.getExitDetailsById(this.empId).subscribe((res: any) => {\r\n\r\n this.AssociateExit = new AssociateExit();\r\n this.AssociateExit = res;\r\n const resignationDetails = {\r\n ReasonId: this.AssociateExit.ReasonId,\r\n ReasonDetail: this.AssociateExit.ReasonDetail,\r\n RehireEligibility: this.AssociateExit.RehireEligibility,\r\n RehireEligibilityDetail: this.AssociateExit.RehireEligibilityDetail,\r\n ImpactOnClientDelivery: this.AssociateExit.ImpactOnClientDelivery,\r\n ImpactOnClientDeliveryDetail: this.AssociateExit.ImpactOnClientDeliveryDetail\r\n };\r\n this._resignationService.setResigReasonDtls(resignationDetails);\r\n if (this.AssociateExit.DepartmentId === 1){\r\n this.showProject = true;\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n onBack() {\r\n if (this.previous === '/associateexit/associateexitinformation') {\r\n this._router.navigate(['associateexit/associateexitinformation']);\r\n }\r\n else if(this.currentPath === 'abscond' || this.currentPath === 'abscond-deptchecklist'){\r\n this._router.navigate(['associateexit/abscond-dashboard'])\r\n }\r\n else {\r\n this._router.navigate(['shared/exit-actions']);\r\n }\r\n\r\n }\r\n}\r\n","\r\n
\r\n
\r\n Associate Details\r\n
\r\n
\r\n \r\n
\r\n

\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Associate Id
\r\n
: {{AssociateExit?.EmployeeCode}}
\r\n
\r\n
\r\n
\r\n
\r\n
Associate Name
\r\n
: {{AssociateExit?.EmployeeName }}
\r\n
\r\n
\r\n
\r\n
\r\n
Designation
\r\n
: {{AssociateExit?.Designation}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
Program Manager
\r\n
: {{ AssociateExit?.ProgramManager}}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
Project
\r\n
: {{AssociateExit?.ProjectName}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Department
\r\n
: {{AssociateExit?.Department}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
Date of Joining
\r\n
: {{AssociateExit?.DateOfJoin |date: 'mediumDate' }}
\r\n
\r\n
\r\n
\r\n
\r\n
Resignation Date
\r\n
: {{AssociateExit?.ResignationDate | date: 'mediumDate' }}
\r\n
\r\n
\r\n
\r\n
\r\n
Date of Exit
\r\n
: {{AssociateExit?.ExitDate | date: 'mediumDate' }}
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
","export class CreateAbscond{\r\n associateId: number;\r\n absentFromDate: string;\r\n absentToDate: string;\r\n tlId: number;\r\n remarksByTL: string;\r\n remarksByHRA: string;\r\n remarksByHRM: string;\r\n isAbscond: boolean;\r\n}","export class AnalysisData {\r\n public EmployeeCode: string;\r\n public EmployeeName: string;\r\n AssociateExitId: number;\r\n public ExitDate: string;\r\n ExitTypeId: number;\r\n public ExitType: string;\r\n ExitReasonId: number;\r\n public ExitReasonDetail: string;\r\n public ExitCauseDetails: string;\r\n public SummaryOfExitFeedback: string;\r\n public RootCause: string;\r\n public ActionItem: string;\r\n public Responsibility: string;\r\n public TargetDate: string;\r\n public ActualDate: string;\r\n public Remarks: string;\r\n FromDate: string;\r\n ToDate: string;\r\n StatusId: number;\r\n Status: string;\r\n EmployeeId: number;\r\n}\r\n\r\nexport class AnalysisFilterData {\r\n public FromDate: Date;\r\n public ToDate: Date;\r\n}\r\nexport class ReportsFilterData {\r\n public causeFilterData: AnalysisFilterData;\r\n public reportsData: Array;\r\n public TotalCount: number;\r\n}\r\nexport class AssociateDetailReviewData {\r\n public AssociateExitInterviewId:number;\r\n public AssociateExitId:number;\r\n public AssociateName:string;\r\n public InitialRemarks:string;\r\n public FinalRemarks:string;\r\n public InitialRemarksNoHtml:string;\r\n public FinalRemarksNoHtml:string;\r\n public ShowInitialRemarks:boolean;\r\n public ShowInitialRemarksStr:string;\r\n}\r\n\r\nexport class AssociateDetailData {\r\n public associateExitInterviewReviewId:number;\r\n public associateExitInterviewId:number;\r\n public finalRemarks:string;\r\n public showInitialRemarks:boolean;\r\n}\r\n","export class AssociateLongLeaveData {\r\n EmployeeId : number;\r\n ProgramManagerName : string;\r\n ReportingManagerName : string;\r\n ProjectName : string;\r\n LongLeaveStartDate : string;\r\n IsBillable: string;\r\n Reason: string;\r\n IsCritical : string;\r\n EmployeeName : string;\r\n TentativeJoinDate : string;\r\n IsLongLeave : boolean;\r\n IsMaternity : boolean;\r\n}","export class AssociateResignationData {\r\n EmployeeId : number;\r\n ReasonDescription: string;\r\n ProgramManagerName : string;\r\n ReportingManagerName : string;\r\n ProjectName : string;\r\n ResignationDate : string;\r\n IsBillable: string;\r\n IsCritical : string;\r\n EmployeeName : string;\r\n LastWorkingDate : string;\r\n Gender : string;\r\n IsResigned : boolean;\r\n IsLongLeave : boolean;\r\n LongLeaveStartDate : string;\r\n Reason: string;\r\n TentativeJoinDate : string;\r\n}\r\n","export class AssociateExit {\r\n public AssociateExitId: number;\r\n public SubmitType : string;\r\n public ExitTypeId: number;\r\n public ExitType: string;\r\n public ProjectId: number;\r\n public ProjectName: string;\r\n public EmployeeId: number;\r\n public ReasonId: number;\r\n public ReasonDetail: string;\r\n public ExitDate: string;\r\n public ResignationRecommendation: string;\r\n public RehireEligibility: boolean;\r\n public RehireEligibilityDetail: string;\r\n public TransitionRequired: boolean;\r\n public ImpactOnClientDelivery: boolean;\r\n public ImpactOnClientDeliveryDetail: string;\r\n public LegalExit: boolean;\r\n public Status: string;\r\n public ResignationDate: string;\r\n public AssociateRemarks: string;\r\n public CalculatedExitDate : string;\r\n public EmployeeCode: string;\r\n public EmployeeName: string;\r\n public DateOfJoin: string;\r\n public Gender: string;\r\n public Designation: string;\r\n public Grade: string;\r\n public Department: string;\r\n public Technology: string;\r\n public ReportingManagerId: number;\r\n public ProgramManagerId: number;\r\n public ReportingManager: string;\r\n public Experience: number;\r\n public Tenure: number;\r\n public DepartmentId: number;\r\n public ProgramManager: string;\r\n public CauseCategory: string;\r\n public CauseDetails: string;\r\n public email: string;\r\n public abscondedFromDate: string;\r\n public abscondedToDate: string;\r\n public StatusDesc : string;\r\n public RevokeStatusCode : string;\r\n public RevokeStatusDesc : string;\r\n public NoticePeriodInDays : number;\r\n public AssociateAllocationId:number;\r\n}\r\n\r\nexport class Activity {\r\n ActivityTypeId : number;\r\n ActivityType : string;\r\n\tTransitionActivityDetails : TransitionActivityDetails[]\r\n} \r\n\r\nexport class TransitionActivityDetails {\r\n\tActivityId : number\r\n Description : string\r\n}\r\n\r\nexport class RevokeResignation {\r\n EmployeeId : number;\r\n RevokeReason : string;\r\n Comment : string;\r\n}\r\n\r\nexport class FeedBackDetails{\r\n \r\n associateExitInterviewId: number;\r\n employeeId: number;\r\n associateExitId: number;\r\n reasonId: number;\r\n reasonDetail: string;\r\n alternateMobileNo: string;\r\n alternateEmail: string;\r\n alternateAddress:string;\r\n shareEmploymentInfo: true;\r\n includeInExAssociateGroup: true;\r\n remarks: string;\r\n systemInfo: string;\r\n createdBy: string;\r\n modifiedBy:string;\r\n IsNotified: boolean;\r\n\r\n}\r\n\r\n\r\nexport class DashboardData {\r\n EmployeeId : number;\r\n EmployeeCode : string;\r\n EmployeeName : string;\r\n Designation : string; \r\n ExitDate : string; \r\n StatusCode : string;\r\n ActivitiesInProgress : boolean;\r\n}\r\n\r\nexport class AssociateExitPMRequest\r\n {\r\n public AssociateExitId : number;\r\n public EmployeeId : number; \r\n public ExitTypeId : number;\r\n public RehireEligibility : boolean;\r\n public RehireEligibilityDetail : string; \r\n public ImpactOnClientDelivery : boolean;\r\n public ImpactOnClientDeliveryDetail : string;\r\n public ProgramManagerId : number;\r\n }","export class CauseForm{\r\n \r\n employeeId: number;\r\n submitType: string;\r\n associateExitId: number;\r\n rootCause: string;\r\n actionItem: string;\r\n responsibility: string;\r\n tagretDate: string;\r\n actualDate: string;\r\n remarks: string;\r\n systemInfo: string;\r\n createdBy: string;\r\n modifiedBy:string;\r\n \r\n }","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { environment } from 'src/environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AbscondService {\r\n private _employeeMicroService : string;\r\n _resources = servicePath.API.AssociateAbscond;\r\n constructor(private httpClient: HttpClient) { \r\n this._employeeMicroService = environment.EmployeeMicroService;\r\n }\r\n \r\n GetAssociateByLead(leadId, DeptId){\r\n let _url = this._employeeMicroService+ this._resources.GetAssociateByLead+leadId+\"/\"+DeptId;\r\n return this.httpClient.get(_url);\r\n }\r\n\r\n CreateAbscond(params){\r\n let _url = this._employeeMicroService+ this._resources.CreateAbscond;\r\n return this.httpClient.post(_url, params)\r\n }\r\n\r\n GetAssociatesAbscondDashboard(Role, EmpId, RoleDeptId){\r\n let _url = this._employeeMicroService+ this._resources.GetAssociatesAbscondDashboard + Role + '/' + EmpId + '/' + RoleDeptId;\r\n return this.httpClient.get(_url)\r\n }\r\n\r\n AcknowledgeAbscond(params){\r\n let _url = this._employeeMicroService + this._resources.AcknowledgeAbscond;\r\n return this.httpClient.post(_url, params)\r\n }\r\n\r\n ConfirmAbscond(params){\r\n let _url = this._employeeMicroService + this._resources.ConfirmAbscond;\r\n return this.httpClient.post(_url, params)\r\n }\r\n GetAbscondDetailByAssociateId(associateId){\r\n let _url = this._employeeMicroService + this._resources.GetAbscondDetailByAssociateId+associateId;\r\n return this.httpClient.get(_url)\r\n }\r\n\r\n AbscondClearance(params){\r\n let _url = this._employeeMicroService + this._resources.AbscondClearance;\r\n return this.httpClient.post(_url, params)\r\n }\r\n \r\n GetAbscondSubStatus(associateId: number){\r\n let _url = this._employeeMicroService + this._resources.GetAbscondSubStatus+associateId;\r\n return this.httpClient.get(_url)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { AssociateLongLeaveData } from '../Models/associate-longleave.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AssociateLongleaveService {\r\n private resources: any;\r\n private _serverURL: string;\r\n private _employeeMicroService: string;\r\n\r\n constructor(private httpClient: HttpClient) {\r\n this._serverURL = environment.ServerUrl;\r\n this.resources = servicePath.API.AssociateLongLeave;\r\n this._employeeMicroService = environment.EmployeeMicroService;\r\n }\r\n public CreateAssociateLongLeave(associateResignationData: AssociateLongLeaveData){\r\n let _url= this._employeeMicroService + this.resources.CreateAssociateLongLeave;\r\n return this.httpClient.post(_url, associateResignationData);\r\n }\r\n\r\n public CalculateMaternityPeriod(maternityStartDate: string){\r\n let _url = this._employeeMicroService + this.resources.CalculateMaternityPeriod + maternityStartDate;\r\n return this.httpClient.get(_url,{responseType: 'text'});\r\n }\r\n\r\n public RejoinAssociate(empID:number, reason:string, rejoinedDate: string) {\r\n var url=this._employeeMicroService+this.resources.RejoinAssociate+empID+\"&reason=\"+reason+\"&rejoinedDate=\"+rejoinedDate; \r\n return this.httpClient.get(url);\r\n}\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { AssociateResignationData } from '../Models/associate-resignation.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AssociateResignationService {\r\n private _resources: any;\r\n// private _serverURL: string;\r\n private _employeeMicroService: string;\r\n\r\n \r\n\r\n constructor(private httpClient: HttpClient) {\r\n // this._serverURL = environment.ServerUrl;\r\n this._resources = servicePath.API.AssociateResignation;\r\n this._employeeMicroService = environment.EmployeeMicroService;\r\n }\r\n\r\n public GetAssociatesById(resignEmployeeId: number, employeeID: number) {\r\n let _url = this._employeeMicroService + this._resources.GetAssociatesById + resignEmployeeId + \"&employeeID=\"+employeeID;\r\n return this.httpClient.get(_url);\r\n }\r\n\r\n public CreateAssociateResignation(associateResignationData: AssociateResignationData){\r\n let _url= this._employeeMicroService + this._resources.CreateAssociateResignation;\r\n return this.httpClient.post(_url, associateResignationData);\r\n }\r\n\r\n public CalculateNoticePeriod(resignationDate: string){\r\n let _url = this._employeeMicroService + this._resources.CalculateNoticePeriod + resignationDate;\r\n return this.httpClient.get(_url,{responseType: 'text'});\r\n }\r\n\r\n public RevokeResignation(empID:number,reason:string, revokedDate: string) {\r\n var url=this._employeeMicroService+this._resources.RevokeResignation+empID+\"&reason=\"+reason+\"&revokedDate=\"+revokedDate; \r\n return this.httpClient.get(url);\r\n}\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { AssociateData } from '../Models/associatedata';\r\nimport { ActivityData } from '../Models/activitymodel';\r\nimport { AssociateExit } from '../Models/associateExit.model';\r\n\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ChecklistService {\r\n\r\n\r\n serviceUrl = environment.ServerUrl;\r\n private _associateExit_adminMicroService = environment.AdminMicroService;\r\n employeeMicroService =environment.EmployeeMicroService\r\n projectMicroService = environment.ProjMicroService;\r\n resources = servicePath.API.AssociateExit;\r\n _resource = servicePath.API.Activity;\r\n resource = servicePath.API.projects;\r\n _resources = servicePath.API.AssociateExitActivity;\r\n\r\n selectedTab = new BehaviorSubject(0);\r\n Associatestate = new BehaviorSubject(null);\r\n EditMode = new BehaviorSubject(false);\r\n EmployeeId = new BehaviorSubject(0);\r\n ProjectId = new BehaviorSubject(0);\r\n associateList = new BehaviorSubject([]);\r\n\r\n\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n\r\n\r\n\r\n\r\n public GetAssociate(){\r\n return this.Associatestate.asObservable();\r\n }\r\n \r\n public GetEmployeeId() {\r\n \r\n return this.EmployeeId.asObservable();\r\n }\r\n\r\n public GetSelectedTab() {\r\n return this.selectedTab.asObservable();\r\n }\r\n // getAssociatesList(userRole: string, empId: number, dashboard: string) {\r\n // const _url =\r\n // this.projectMicroService +\r\n // this._resources.GetAll +\r\n // userRole +\r\n // '&employeeId=' +\r\n // empId +\r\n // '&dashboard=' +\r\n // dashboard;\r\n // return this.httpClient.get(_url);\r\n // }\r\n\r\n public getAssociates(){\r\n return this.httpClient.get(this.employeeMicroService + this.resources.GetAll)\r\n }\r\n\r\n\r\n\r\n public SetProjectId(EmployeeId: number) {\r\n this.EmployeeId.next(EmployeeId);\r\n }\r\n\r\n public GetByEmployeeId(EmployeeId: number) {\r\n const url = this.employeeMicroService + this.resources.GetByEmployeeId + EmployeeId;\r\n return this.httpClient.get(url);\r\n // getEmployeesByProjectID\r\n // \"getEmployeesByProjectID\": \"/MasterData/GetEmployeesByDepartmentAndProjectID?departmentId=\",\r\n\r\n }\r\n public GetProjectDetailsbyID(ProjectId: number) {\r\n const url = this.projectMicroService + this.resource.getProjectbyID + ProjectId;\r\n return this.httpClient.get(url);\r\n }\r\n GetClosureActivitiesByDepartment(departmentId: number){\r\n const url = this._associateExit_adminMicroService+this._resource.GetClosureActivitiesByDepartment+departmentId;\r\n return this.httpClient.get(url);\r\n }\r\n \r\n GetExitActivitiesByDepartment(EmployeeId: number, departmentId){\r\n const url = this._associateExit_adminMicroService+this._resource.GetExitActivitiesByDepartment + '?departmentId=' +departmentId;\r\n return this.httpClient.get(url);\r\n }\r\n getExitDashboard(userRole: string, empId: number, dashboard : string) {\r\n const url =\r\n this.employeeMicroService + \r\n this.resources.getExitDashboards +\r\n userRole.replace(/ /g, '') + \"/\" + \r\n // '&employeeId=' +\r\n empId + \"/\" +\r\n // '&dashboard=' +\r\n dashboard;\r\n return this.httpClient.get(url);\r\n}\r\n\r\n Create(activityData: ActivityData){\r\n const url = this._associateExit_adminMicroService+this._resource.Create;\r\n return this.httpClient.post(url,activityData);\r\n }\r\n\r\n updateActivityChecklist(activityData: ActivityData){\r\n const url = this.employeeMicroService+this._resources.updateActivityChecklist;\r\n return this.httpClient.post(url,activityData, {responseType: 'text'});\r\n }\r\n\r\n getActivitiesByHRA(EmployeeId: number){\r\n const url = this.employeeMicroService +this._resources.GetActivitiesByemployeeIdForHRA + '?employeeId=' +EmployeeId;\r\n return this.httpClient.get(url);\r\n }\r\n getActivitiesByEmployeeIdAndDepartmentId(EmployeeId: number,DepartmentId : number){\r\n const url = this.employeeMicroService +this._resources.GetActivitiesByEmployeeIdAndDepartmentId + '?employeeId=' +EmployeeId + '&departmentId='+DepartmentId;\r\n return this.httpClient.get(url);\r\n }\r\n ExitClearance(SubmitData){\r\n const url = this.employeeMicroService +this._resources.ExitClearance ;\r\n return this.httpClient.post(url,SubmitData);\r\n }\r\n\r\n GetExitClearanceRemarks(employeeId){\r\n const url = this.employeeMicroService + this._resources.GetClearanceRemarks + '/' + employeeId;\r\n return this.httpClient.get(url);\r\n }\r\n\r\n CreateActivityChecklist(empId, hraId){\r\n const url = this.employeeMicroService +this._resources.CreateActivityChecklist + '/' + empId +'/'+ hraId;\r\n return this.httpClient.get(url);\r\n }\r\n\r\n SubmitTermination(NewTermination){\r\n const url = this.employeeMicroService +this.resources.Create;\r\n return this.httpClient.get(url,NewTermination);\r\n\r\n }\r\n\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { NavigationEnd,RouterEvent, Router } from '@angular/router';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ExitAnalysisService {\r\n serviceUrl = environment.ServerUrl;\r\nassociateMicroService =environment.EmployeeMicroService\r\n _resource = servicePath.API.Activity;\r\n _resources = servicePath.API.AssociateExitAnalysis;\r\n resource = servicePath.API.AssociateExit;\r\n _associateTransitionPlan = servicePath.API.TransitionPlan\r\n projects=[]\r\n previousUrl: string = undefined;\r\n currentUrl: string = undefined;\r\n\r\n constructor(private httpClient: HttpClient, private router: Router) { this.currentUrl = this.router.url;\r\n router.events.subscribe(event => {\r\n if (event instanceof NavigationEnd) { \r\n this.previousUrl = this.currentUrl;\r\n this.currentUrl = event.url;\r\n };\r\n }); }\r\n\r\n GetAssociateExitAnalysis() {\r\n let _url = this.associateMicroService + this._resources.GetAssociateExitAnalysis;\r\n return this.httpClient.get(_url);\r\n }\r\n\r\n GetAssociateExitReport() {\r\n let _url = this.associateMicroService + this._resources.GetExitEmployeeReport;\r\n return this.httpClient.get(_url);\r\n }\r\n\r\n getAssociateExitAnalysis(fromDate: string,toDate : string) {\r\n let _url = this.associateMicroService + this._resources.GetAssociateExitAnalysis + '?fromDate=' + fromDate + '&toDate='+ toDate;\r\n return this.httpClient.get(_url);\r\n }\r\n\r\n\r\n public CreateExitAnalysis(causeForm){\r\n let _url = this.associateMicroService + this._resources.CreateExitAnalysis;\r\n return this.httpClient.post(_url,causeForm);\r\n }\r\n\r\n public GetAssociateTransitionPlan(EmpId){\r\n let _url = this.associateMicroService + this._associateTransitionPlan.GetForAssociate+'?employeeId='+EmpId\r\n return this.httpClient.get(_url);\r\n }\r\n\r\n public SetAssociateProjects(projects){\r\n this.projects = projects\r\n }\r\n public GetAssociateProjects(){\r\n return this.projects\r\n }\r\n public getPreviousUrl(){\r\n return this.previousUrl;\r\n }\r\n public CreateAssociateAbscond(SubmitData){\r\n let _url = this.associateMicroService + this.resource.Create;\r\n return this.httpClient.post(_url,SubmitData);\r\n }\r\n}\r\n","import * as XLSX from \"xlsx\";\r\n\r\nconst getFileName = (name: string) => {\r\n let timeSpan = new Date().toISOString();\r\n let sheetName = name || \"Associate Exit Analysis Report\";\r\n let fileName = `${sheetName}-${timeSpan}`;\r\n return {\r\n sheetName,\r\n fileName\r\n };\r\n};\r\nexport class TableUtil {\r\n static exportTableToExcel(tableId: string, name?: string) {\r\n let { sheetName, fileName } = getFileName(name);\r\n let targetTableElm = document.getElementById(tableId);\r\n let wb = XLSX.utils.table_to_book(targetTableElm, {\r\n sheet: sheetName\r\n });\r\n XLSX.writeFile(wb, `${fileName}.xlsx`);\r\n }\r\n static exportArrayToExcel(arr: any[], name?: string) {\r\n let { sheetName, fileName } = getFileName(name);\r\n\r\n var wb = XLSX.utils.book_new();\r\n var ws = XLSX.utils.json_to_sheet(arr);\r\n XLSX.utils.book_append_sheet(wb, ws, sheetName);\r\n XLSX.writeFile(wb, `${fileName}.xlsx`);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { environment } from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PmApprovalService {\r\n\r\n private _employeeMicroService : string;\r\n _resources = servicePath.API.Resignation;\r\n\r\n constructor(private httpClient: HttpClient) {\r\n this._employeeMicroService = environment.EmployeeMicroService;\r\n }\r\n\r\n public submitPMApproval(AssociateApprovalDetails){\r\n let _url = this._employeeMicroService + this._resources.PMApproval;\r\n return this.httpClient.post(_url,AssociateApprovalDetails);\r\n }\r\n\r\n public withdrawRequest(employeeId, resignationRecommendation){\r\n let _url = this._employeeMicroService + this._resources.WithdrawRequest + employeeId + '&resignationRecommendation='+resignationRecommendation;\r\n return this.httpClient.get(_url);\r\n }\r\n\r\n public ApproveOrRejectRevoke(submittedData){\r\n \r\n let _url = this._employeeMicroService + this._resources.ApproveOrRejectRevoke;\r\n return this.httpClient.post(_url,submittedData);\r\n }\r\n\r\n public ReviewByPM(AcceptByPMDetails){\r\n let _url = this._employeeMicroService + this._resources.ReviewByPM;\r\n return this.httpClient.post(_url,AcceptByPMDetails);\r\n }\r\n\r\n public ReviewReminderNotification(EmpId){\r\n let _url = this._employeeMicroService + this._resources.ReviewReminderNotification + EmpId;\r\n return this.httpClient.get(_url);\r\n }\r\n\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, BehaviorSubject, Subject } from 'rxjs';\r\nimport { runInThisContext } from 'vm';\r\nimport { environment } from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { GenericType } from '../../master-layout/models/dropdowntype.model';\r\nimport { Associate } from '../../onboarding/models/associate.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ResignastionService {\r\n\r\n private _adminMicroService : string;\r\n private _employeeMicroService : string;\r\n _resources = servicePath.API.Resignation;\r\n resource = servicePath.API.AssociateExitInterview;\r\n\r\n private resigReasonDtls = new Subject();\r\n\r\n\r\n constructor(private httpClient: HttpClient) {\r\n this._adminMicroService = environment.AdminMicroService;\r\n this._employeeMicroService = environment.EmployeeMicroService;\r\n }\r\n\r\n public getResignationReason() {\r\n let _url = this._adminMicroService + this._resources.Reason;\r\n return this.httpClient.get(_url);\r\n }\r\n\r\n public getEmpDetails(empId: number){\r\n let _url = this._employeeMicroService + \"/Employee/GetById/\" + empId;\r\n return this.httpClient.get(_url);\r\n }\r\n\r\n public submitResignation(newAssociateResignation){\r\n let _url = this._employeeMicroService + this._resources.Create;\r\n return this.httpClient.post(_url,newAssociateResignation);\r\n }\r\n\r\n public getExitDetailsById(empId : number){\r\n let userRole = JSON.parse(\r\n sessionStorage.AssociatePortal_UserInformation\r\n ).roleName;\r\n let isDecryptReq = environment.IsDecryptionRequired[userRole]? environment.IsDecryptionRequired[userRole]: false;\r\n let _url = this._employeeMicroService + this._resources.GetExitDetailsById + '/' + empId + '?isDecryptReq='+isDecryptReq;\r\n return this.httpClient.get(_url);\r\n }\r\n\r\n public getAllAssociateExit(){\r\n let _url = this._employeeMicroService + this._resources.GetAll;\r\n return this.httpClient.get(_url);\r\n }\r\n\r\n public revokeResignation(revokeResignationData){\r\n let _url = this._employeeMicroService + this._resources.Revoke;\r\n return this.httpClient.post(_url,revokeResignationData);\r\n }\r\n public CreateExitFeedback(exitFeedback){\r\n let _url = this._employeeMicroService + this.resource.CreateExitFeedback;\r\n return this.httpClient.post(_url,exitFeedback);\r\n }\r\n\r\n public getExitInterview(employeeId){\r\n let _url = this._employeeMicroService + this.resource.GetExitInterview + '/' + employeeId;\r\n return this.httpClient.get(_url);\r\n }\r\n\r\n setResigReasonDtls(resig_reason_dtls: any){\r\n this.resigReasonDtls.next(resig_reason_dtls);\r\n }\r\n getResigReasonDtls(){\r\n return this.resigReasonDtls;\r\n }\r\n\r\n public GetResignationSubStatus(employeeId){\r\n let _url = this._employeeMicroService + this._resources.GetResignationSubStatus + employeeId;\r\n return this.httpClient.get(_url);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { AssociateExitComponent } from './Components/associate-exit/associate-exit.component';\r\nimport { AssociateResignationComponent } from './Components/associate-resignation/associate-resignation.component';\r\nimport { AssociateLongleaveComponent } from './Components/associate-longleave/associate-longleave.component';\r\nimport { AssociateAbscondFormComponent } from './Components/associate-abscond-form/associate-abscond-form.component';\r\nimport { KTPlanDashboardComponent } from './Components/ktplan-dashboard/ktplan-dashboard.component';\r\nimport { AssociateExitAnalysisComponent } from './Components/associate-exit-analysis/associate-exit-analysis.component';\r\nimport { AssociateExitInformationComponent } from './Components/associate-exit-information/associate-exit-information.component';\r\nimport { PmApprovalComponent } from './Components/pm-approval/pm-approval.component';\r\nimport { ClearenceformComponent } from './Components/clearenceform/clearenceform.component';\r\nimport { AssociateExitFeedbackFormComponent } from './Components/associate-exit-feedback-form/associate-exit-feedback-form.component';\r\nimport { ResignationComponent } from './Components/resignation/resignation.component';\r\nimport { ActivitylistComponent } from './Components/activitylist/activitylist.component';\r\nimport { AssociateExitByHrComponent } from './Components/associate-exit-by-hr/associate-exit-by-hr.component';\r\nimport { PMSubmissionComponent } from './Components/pm-submission/pm-submission.component';\r\nimport { AssociateExitFeedbackComponent } from './Components/associate-exit-feedback/associate-exit-feedback.component';\r\nimport { AbscondComponent } from './Components/abscond/abscond.component';\r\nimport { AbscondDashboardComponent } from './Components/abscond-dashboard/abscond-dashboard.component';\r\nimport { AbscondDetailsComponent } from './Components/abscond-details/abscond-details.component';\r\n\r\nconst routes: Routes = [\r\n\r\n {\r\n path: '', component: AssociateExitComponent, children: [\r\n { path: \"resignation-legacy\", component: AssociateResignationComponent, data: { title: 'Associate Resignation' } },\r\n { path: \"longleave\", component: AssociateLongleaveComponent, data: { title: 'Associate Long Leave' } },\r\n { path: 'resignation', component: ResignationComponent, data: { title: 'Resignation' }} ,\r\n { path: 'view/:id', component: ActivitylistComponent, data: { title: 'Associate Exit Checklist' }} ,\r\n { path: 'abscond/:id', component: ActivitylistComponent, data: { title: 'Associate Abscond Checklist' }} ,\r\n { path: 'exitfeedback/:id', component: AssociateExitFeedbackFormComponent, data: { title: 'Associate Exit Feedback' }} ,\r\n { path: 'deptchecklist/:id', component: ClearenceformComponent, data: { title: 'Associate Clearance ' } } ,\r\n { path: 'abscond-deptchecklist/:id', component: ClearenceformComponent, data: { title: 'Associate Department Checklist ' } } ,\r\n { path: 'pmApproval/:id', component: PmApprovalComponent, data: {title: 'Resignation Approval Screen'}},\r\n { path: 'PMSubmission/:id', component: PMSubmissionComponent, data: {title: 'Resignation Review'}},\r\n { path: 'reasonanalasis', component: AssociateExitAnalysisComponent, data: {title: 'Associate Exit Analysis'}},\r\n { path: 'associateexitinformation', component: AssociateExitInformationComponent, data: {title: 'Associate Exit Information'}},\r\n { path: \"associateexitanalysis\", component: AssociateExitAnalysisComponent, data: {title: 'Associate Exit Analysis'}},\r\n { path: \"ktplan\", component: KTPlanDashboardComponent, data: {title: 'Associate Exit Analysis'}},\r\n { path: \"abscond-request\", component: AbscondComponent, data: {title: 'Associate Abscond Form'}},\r\n { path: \"abscond-dashboard\", component: AbscondDashboardComponent, data: {title: 'Associate Abscond Requests'}},\r\n { path: \"abscond-details/:id\", component: AbscondDetailsComponent},\r\n { path: \"seperationbyhr\", component: AssociateAbscondFormComponent, data: {title: 'SBH'}},\r\n { path: \"abscondform\", component: AssociateAbscondFormComponent, data: {title: 'Abscond'}},\r\n { path: \"termination\", component: AssociateAbscondFormComponent, data: {title: 'Termination'}},\r\n { path: \"associateexitbyhr\", component:AssociateExitByHrComponent, data: {title: 'Associate Exit By HR'}},\r\n { path: \"associateexitfeedback\", component:AssociateExitFeedbackComponent, data: {title: 'Associate Exit Feedback Review'}},\r\n ]\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class AssociateExitRoutingModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { AllAngularMaterialModule } from '../plugins/all-angular-material/all-angular-material.module';\r\nimport { AssociateResignationComponent } from './Components/associate-resignation/associate-resignation.component';\r\nimport { AssociateLongleaveComponent } from './Components/associate-longleave/associate-longleave.component';\r\nimport { AssociateExitComponent } from './Components/associate-exit/associate-exit.component';\r\nimport {AssociateExitRoutingModule} from './associateexit-routing.module';\r\nimport { RequirematchDirectiveModule } from '../../../../src/app/requirematch.directive'\r\nimport { NgxSpinnerModule } from 'ngx-spinner';\r\nimport { ActivitylistComponent } from './Components/activitylist/activitylist.component';\r\nimport { AssociateAbscondFormComponent } from './Components/associate-abscond-form/associate-abscond-form.component';\r\nimport { AssociateExitAnalysisComponent } from './Components/associate-exit-analysis/associate-exit-analysis.component';\r\nimport { AssociateExitByHrComponent } from './Components/associate-exit-by-hr/associate-exit-by-hr.component';\r\nimport { AssociateExitCauseFormComponent } from './Components/associate-exit-cause-form/associate-exit-cause-form.component';\r\nimport { AssociateExitFeedbackFormComponent } from './Components/associate-exit-feedback-form/associate-exit-feedback-form.component';\r\nimport { AssociateExitInformationComponent } from './Components/associate-exit-information/associate-exit-information.component';\r\nimport { AssociateProjectsComponent } from './Components/associate-projects/associate-projects.component';\r\nimport { AssociateTerminationFormComponent } from './Components/associate-termination-form/associate-termination-form.component';\r\nimport { ClearenceformComponent } from './Components/clearenceform/clearenceform.component';\r\nimport { DepartmentsChecklistComponent } from './Components/departments-checklist/departments-checklist.component';\r\nimport { KTPlanDashboardComponent } from './Components/ktplan-dashboard/ktplan-dashboard.component';\r\nimport { PmApprovalComponent } from './Components/pm-approval/pm-approval.component';\r\nimport { ResignationComponent } from './Components/resignation/resignation.component';\r\nimport { RevokeDialogComponent } from './Components/revoke-dialog/revoke-dialog.component';\r\nimport { ViewAnalysisFormComponent } from './Components/view-analysis-form/view-analysis-form.component';\r\nimport { ViewAssociateExitDetailsComponent } from './Components/view-associate-exit-details/view-associate-exit-details.component';\r\nimport { AngularEditorModule } from '@kolkov/angular-editor';\r\nimport { PMSubmissionComponent } from './Components/pm-submission/pm-submission.component';\r\nimport { AssociateExitFeedbackComponent } from './Components/associate-exit-feedback/associate-exit-feedback.component';\r\nimport { AssociateExitFeedbackModalComponent } from './Components/associate-exit-feedback-modal/associate-exit-feedback-modal.component';\r\nimport { AbscondComponent } from './Components/abscond/abscond.component';\r\nimport { AbscondDashboardComponent } from './Components/abscond-dashboard/abscond-dashboard.component';\r\nimport { AbscondDetailsComponent } from './Components/abscond-details/abscond-details.component';\r\nimport { ViewAbscondDetailedStatusComponent } from './Components/view-abscond-detailed-status/view-abscond-detailed-status.component';\r\n\r\n@NgModule({\r\n declarations: [AssociateResignationComponent, AssociateLongleaveComponent, AssociateExitComponent, ActivitylistComponent, AssociateAbscondFormComponent, AssociateExitAnalysisComponent, AssociateExitByHrComponent, AssociateExitCauseFormComponent, AssociateExitFeedbackFormComponent, AssociateExitInformationComponent, AssociateProjectsComponent, AssociateTerminationFormComponent, ClearenceformComponent, DepartmentsChecklistComponent, KTPlanDashboardComponent, PmApprovalComponent, ResignationComponent, RevokeDialogComponent, ViewAnalysisFormComponent, ViewAssociateExitDetailsComponent, PMSubmissionComponent, AssociateExitFeedbackComponent, AssociateExitFeedbackModalComponent, AbscondComponent, AbscondDashboardComponent, AbscondDetailsComponent, ViewAbscondDetailedStatusComponent],\r\n imports: [\r\n CommonModule,\r\n AssociateExitRoutingModule,\r\n AllAngularMaterialModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n RequirematchDirectiveModule,\r\n NgxSpinnerModule,\r\n AngularEditorModule\r\n ]\r\n})\r\nexport class AssociateexitModule { }\r\n","import { Component, OnInit, ViewChild, Input } from '@angular/core';\r\nimport { FormBuilder, FormControl, Validators, FormGroup, FormGroupDirective } from '@angular/forms';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { AssociateAllocation} from '../../../master-layout/models/associateallocation.model';\r\nimport * as moment from 'moment';\r\nimport { DropDownType, GenericType } from '../../../master-layout/models/dropdowntype.model';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { TemporaryAllocationReleaseService } from '../../services/temporary-allocation-release.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { Observable } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport {AllocationChangesService } from '../../services/allocation-changes.service';\r\nimport { AssignReportingManagerService } from '../../../project-life-cycle/services/assign-reporting-manager.service';\r\nimport { ConfirmDialogComponent } from '../../../project-life-cycle/components/confirm-dialog/confirm-dialog.component';\r\n@Component({\r\n selector: 'app-allocation-changes',\r\n templateUrl: './allocation-changes.component.html',\r\n styleUrls: ['./allocation-changes.component.scss']\r\n})\r\nexport class AllocationChangesComponent implements OnInit {\r\n isDisabled = true;\r\n EffectiveDate:string;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n formsubmitted: boolean;\r\n requisitionList: AssociateAllocation;\r\n componentName: string;\r\n allocationForm: FormGroup;\r\n allocationHistory: AssociateAllocation;\r\n projectsList = [];\r\n associatesList = [];\r\n showAllocationHistoryGrid: boolean = false;\r\n disableBilling: boolean;\r\n minDate: Date;\r\n maxDate: Date;\r\n invalidDates: boolean = false;\r\n empid: number;\r\n PageSize: number;\r\n disableddlProject = false;\r\n PageDropDown: number[] = [];\r\n employeeId: any;\r\n roleName: any;\r\n filteredOptionsName: Observable;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n constructor(private _formBuilder: FormBuilder,\r\n private _service: AllocationChangesService,\r\n private actRoute: ActivatedRoute,\r\n private snackBar: MatSnackBar,\r\n private dialog: MatDialog,\r\n private router: Router,\r\n private _tempAllocationRelease: TemporaryAllocationReleaseService,\r\n private _assignManagerservice: AssignReportingManagerService) { \r\n this.componentName = this.actRoute.routeConfig.component.name;\r\n this.requisitionList = new AssociateAllocation();\r\n }\r\n\r\n ngOnInit() {\r\n \r\n this.employeeId = JSON.parse(sessionStorage['AssociatePortal_UserInformation']).employeeId;\r\n this.roleName = JSON.parse(sessionStorage['AssociatePortal_UserInformation']).roleName;\r\n this.getEmployeesList();\r\n this.allocationForm = new FormGroup({\r\n ProjectId: new FormControl(null,[Validators.required]),\r\n EmployeeId: new FormControl(null,[Validators.required]),\r\n EffectiveDate: new FormControl(null,[Validators.required]),\r\n isCritical : new FormControl(false)\r\n });\r\n this.maxDate = new Date();\r\n this.filteredOptionsName = this.allocationForm.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterName(value))\r\n );\r\n }\r\n\r\n private getEmployeesList(): void {\r\n this._tempAllocationRelease.GetAssociatesToRelease(this.employeeId, this.roleName).subscribe((res: any) => {\r\n this.associatesList = []\r\n //this.associatesList.push({ label: '', value: null });\r\n if (res.length > 0) {\r\n res.forEach((element: any) => {\r\n if (this.associatesList.findIndex(x => x.label == element.EmpName) === -1)\r\n this.associatesList.push({ label: element.EmpName, value: element.EmployeeId });\r\n });\r\n }\r\n },(error: any) => {\r\n this.snackBar.open('Failed to Get Employees!.', 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n } \r\n );\r\n }\r\n\r\n getProjectsByEmployeeId(employeeId: number): void {\r\n this.allocationForm.reset({\r\n EmployeeId : this.allocationForm.get('EmployeeId').value\r\n });\r\n this.showAllocationHistoryGrid = false;\r\n this._assignManagerservice.GetProjects(employeeId).subscribe((res: any) => {\r\n this.projectsList = [];\r\n if (res.length > 0) {\r\n res.forEach((element: any) => {\r\n if (this.projectsList.findIndex(x => x.label == element.ProjectName) == -1) {\r\n this.projectsList.push({ label: element.ProjectName, value: element.ProjectId })\r\n };\r\n });\r\n if (this.projectsList.length == 1) {\r\n this.requisitionList.ProjectId = this.projectsList[0].value;\r\n this.allocationForm.controls['ProjectId'].setValue(this.projectsList[0].value);\r\n this.disableddlProject = true;\r\n this.GetCurrentAllocation(employeeId,this.requisitionList.ProjectId);\r\n }\r\n else this.disableddlProject = false;\r\n }\r\n},\r\n (error: any) => {\r\n this.snackBar.open('Failed to Get projects by employee!.', 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n); \r\n} \r\n\r\n GetCurrentAllocation(employeeId: number, projectId: number): void {\r\n this._service.GetCurrentAllocationByEmpIdAndProjectId(employeeId, projectId).subscribe((data: AssociateAllocation) => {\r\n if (data != null) {\r\n this.allocationHistory = data;\r\n this.minDate = new Date(data.EffectiveDate);\r\n this.showAllocationHistoryGrid = true;\r\n this.requisitionList.AssociateName = data.AssociateName;\r\n if(data.isCritical == true){\r\n this.allocationForm.controls['isCritical'].setValue(true);\r\n }\r\n }\r\n else\r\n this.showAllocationHistoryGrid = false;\r\n });\r\n }\r\n\r\n checkValue(event){\r\n console.log(event.checked);\r\n if(!event.checked){\r\n this.OpenConfirmation();\r\n }\r\n else {\r\n this.requisitionList.isCritical = true;\r\n }\r\n }\r\n\r\n OpenConfirmation() {\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent,{\r\n disableClose: true,\r\n hasBackdrop: true,\r\n data:{\r\n message: 'Do you want to change from critical to non-critical?',\r\n }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if(result){\r\n this.allocationForm.controls['isCritical'].setValue(false);\r\n this.requisitionList.isCritical = false;\r\n }\r\n else{this.allocationForm.controls['isCritical'].setValue(true);}\r\n });\r\n }\r\n\r\n public Cancel() {\r\n this.allocationForm.reset();\r\n this.formsubmitted = false; \r\n this.showAllocationHistoryGrid = false;\r\n this.allocationHistory = null;\r\n setTimeout(() => this.formGroupDirective.resetForm(), 0);\r\n this.requisitionList = new AssociateAllocation();\r\n }\r\n\r\n public UpdateAssociateAllocation(requisitionList: AssociateAllocation) {\r\n this.formsubmitted = true;\r\n this.requisitionList.EmployeeId = this.allocationForm.value.EmployeeId.value;\r\n this.requisitionList.isCritical = requisitionList.IsCritical;\r\n this.requisitionList.EffectiveDate = moment(requisitionList.EffectiveDate).format('YYYY-MM-DD');\r\n this._service.UpdateAssociateAllocation(this.requisitionList).subscribe((data: any) => {\r\n if (data.IsSuccessful == true) {\r\n this.snackBar.open('Associate allocation are updated successfully! ', '', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.Cancel();\r\n }\r\n else if (data.IsSuccessful == false) {\r\n this.snackBar.open('Unable to update allocation changes', '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.Cancel();\r\n }\r\n }, (error) => {\r\n this.snackBar.open('Failed to update allocation changes.', 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.Cancel();\r\n })\r\n }\r\n\r\n displayFn(user: any) {\r\n return user && user.label ? user.label : '';\r\n }\r\n\r\n clearField() {\r\n this.allocationForm.controls.EmployeeId.setValue('');\r\n }\r\n\r\n clearInput(evt: any, fieldName): void {\r\n if(fieldName=='EffectiveDate'){\r\n evt.stopPropagation();\r\n this.allocationForm.get('EffectiveDate').reset();\r\n }\r\n }\r\n\r\n \r\n private _filterName(value): any {\r\n let filterValue;\r\n //this.Cancel();\r\n if (value && value.EmployeeId) {\r\n filterValue = value.EmployeeId;\r\n return this.associatesList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue.toString().toLowerCase())\r\n );\r\n } else {\r\n return this.associatesList;\r\n }\r\n }\r\n\r\n}\r\n","\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n Associate Name *\r\n \r\n \r\n \r\n No matching value found\r\n \r\n {{ option.label }}\r\n \r\n \r\n \r\n Select Associate from given options\r\n \r\n \r\n Select Associate\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Project Name\r\n *\r\n \r\n \r\n \r\n {{project.label}}\r\n \r\n \r\n\r\n \r\n \r\n Select Project Name\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Effective Date:\r\n *\r\n \r\n \r\n \r\n close\r\n \r\n \r\n \r\n \r\n Enter Effective Date\r\n \r\n \r\n
\r\n \r\n
\r\n Critical\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 {{requisitionList.AssociateName}}'s - Current Allocation
\r\n
\r\n \r\n \r\n \r\n \r\n Project Name\r\n \r\n \r\n Effective From\r\n \r\n \r\n Utilization (%)\r\n \r\n \r\n Billable\r\n \r\n \r\n Critical\r\n \r\n \r\n Primary\r\n \r\n \r\n \r\n \r\n {{allocationHistory.Project}}\r\n {{allocationHistory.EffectiveDate | date:\"MM/dd/yyyy\"}}\r\n {{allocationHistory.AllocationPercentage}}\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 { Component, OnInit, ViewChild } from '@angular/core';\r\nimport * as moment from 'moment';\r\nimport { ResourceReleaseService } from '../../services/resource-release.service';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { ResourceRelease } from '../../models/resourcerelease.model';\r\nimport { TemporaryAllocationReleaseService } from '../../services/temporary-allocation-release.service';\r\nimport { AssociateAllocationService } from '../../services/associate-allocation.service';\r\nimport { MasterDataService } from 'src/app/modules/master-layout/services/masterdata.service';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport {FormControl, FormGroup, FormBuilder, Validators, FormGroupDirective } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { Observable } from 'rxjs';\r\nimport { map, startWith } from \"rxjs/operators\";\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\n\r\n@Component({\r\n selector: 'app-associate-release',\r\n templateUrl: './associate-release.component.html',\r\n styleUrls: ['./associate-release.component.scss']\r\n})\r\nexport class AssociateReleaseComponent implements OnInit {\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n releaseResource: ResourceRelease;\r\n releaseFormSubmitted = false;\r\n firstDate: Date;\r\n lastDate: Date;\r\n IsValidDate: boolean;\r\n releaseForm: FormGroup;\r\n invalid: boolean;\r\n projectsList = [];\r\n releaseToProjectsList = [];\r\n talentpoolsList= [];\r\n associatesList = [];\r\n associatesProjectsList: any[] = [];\r\n projectDetails: ResourceRelease[] = [];\r\n componentName: string;\r\n hideTrainingProject = true;\r\n employeeId: any;\r\n roleName: any;\r\n isEligiblePrimary = false;\r\n disableddlProject = false;\r\n disableddlReleaseTo = false;\r\n remainingProjects : any = [];\r\n isPrimaryProject: boolean = false;\r\n primaryProjectId: any;\r\n //NotifyAll = true;\r\n ddlPrimaryProjectId: any;\r\n filteredEmployee : Observable;\r\n \r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n \r\n \r\n constructor(private _service: ResourceReleaseService,\r\n private masterDataService: MasterDataService,\r\n private formBuilder: FormBuilder,\r\n private _tempAllocationReleaseService: TemporaryAllocationReleaseService,\r\n private actRoute: ActivatedRoute,\r\n private snackBar: MatSnackBar,\r\n private spinner: NgxSpinnerService,\r\n private _allocateService: AssociateAllocationService) {\r\n this.componentName = this.actRoute.routeConfig.component.name;\r\n }\r\n \r\n \r\n ngOnInit() {\r\n this.spinner.show();\r\n this.employeeId = JSON.parse(sessionStorage['AssociatePortal_UserInformation']).employeeId;\r\n this.roleName = JSON.parse(sessionStorage['AssociatePortal_UserInformation']).roleName;\r\n \r\n this.isEligiblePrimary= false;\r\n\r\n this.releaseForm = new FormGroup({\r\n employeeId: new FormControl(null, [Validators.required]),\r\n ProjectId: new FormControl(null, [Validators.required]),\r\n releaseDate: new FormControl('', [Validators.required]),\r\n talentpool: new FormControl(null, ),\r\n NotifyAll:new FormControl(false),\r\n EffectiveDate: new FormControl(null, ),\r\n PrimaryProjectId: new FormControl(null, ),\r\n TalentRequisitionId: new FormControl(null, ),\r\n releaseProjectId: new FormControl(null, ),\r\n remainingProjects: new FormControl(null, ),\r\n reportingManagerId: new FormControl(null, ),\r\n ProjectName : new FormControl(null, ),\r\n\r\n });\r\n this.getDates();\r\n this.getEmployees();\r\n }\r\n displayFn(user: any) {\r\n return user && user.label ? user.label : '';\r\n }\r\n\r\n private getEmployees(): void {\r\n this._tempAllocationReleaseService.GetAssociatesToRelease(this.employeeId, this.roleName).subscribe((res: any) => {\r\n this.spinner.hide();\r\n this.associatesList = []\r\n // this.associatesList.push({ label: '', value: null });\r\n this.projectsList = [];\r\n this.projectsList.push({ label: '', value: null });\r\n if (res.length > 0) {\r\n res.forEach((element: any) => {\r\n if (this.associatesList.findIndex(x => x.label == element.EmpName) === -1)\r\n this.associatesList.push({ label: element.EmpName, value: element.EmployeeId });\r\n });\r\n this.filteredEmployee = this.releaseForm.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterEmployee(value.employeeId))\r\n );\r\n }\r\n if (res.length > 0) {\r\n this.associatesProjectsList = [];\r\n res.forEach((element: any) => {\r\n this.associatesProjectsList.push(element);\r\n });\r\n }\r\n \r\n },\r\n (error: any) => {\r\n this.snackBar.open('Failed to Get Employees!.', 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.Clear();\r\n }\r\n );\r\n }\r\n \r\n getProjectList(employeeId): void {\r\n this.projectDetails = [];\r\n this.spinner.show();\r\n this.masterDataService.GetAssociateProjectsForRelease(employeeId).subscribe((projectResponse: any[]) => {\r\n this.spinner.hide()\r\n this.projectDetails = projectResponse;\r\n this.talentpoolsList = [];\r\n this.talentpoolsList.push({ label: '', value: null });\r\n this.projectDetails.forEach((element: any) => {\r\n if (element.ProjectName.indexOf(\"Talent Pool\") != -1 && this.talentpoolsList.findIndex(x => x.label == element.ProjectName) == -1)\r\n this.talentpoolsList.push({ label: element.ProjectName, value: element.ProjectId });\r\n });\r\n this.getProjectsByEmployeeId(employeeId);\r\n },\r\n (error: any) => {\r\n this.spinner.hide()\r\n this.snackBar.open('Failed to Get Employees!.', 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.Clear();\r\n });\r\n }\r\n \r\n getProjectsByEmployeeId(employeeId: any): void {\r\n this.primaryProjectId = this.getPrimaryProjectId(employeeId);\r\n let list = this.projectDetails\r\n if (employeeId != null && employeeId != undefined) {\r\n this.releaseForm.controls['releaseDate'].setValue(null);\r\n this.releaseForm.controls['ProjectId'].setValue(null);\r\n this.projectsList = [];\r\n this.projectsList.push({ label: '', value: null });\r\n if (list && list.length > 0) {\r\n list.forEach((element: ResourceRelease) => {\r\n if (this.projectsList.findIndex(x => x.label == element.ProjectName) == -1) {\r\n this.projectsList.push({ label: element.ProjectName, value: element.ProjectId })\r\n };\r\n if (element.ProjectName.indexOf(\"Training\") == -1) {\r\n this.hideTrainingProject = false;\r\n this.releaseForm.controls['ProjectId'].setValue(element.ProjectId);\r\n this.releaseForm.controls['ProjectName'].setValue(element.ProjectName);\r\n this.releaseForm.controls['releaseProjectId'].setValue(null);\r\n }\r\n else {\r\n this.releaseForm.controls['ProjectId'].setValue(element.ProjectId);\r\n this.hideTrainingProject = true;\r\n } \r\n });\r\n if (list.length == 1) {\r\n this.releaseForm.controls['ProjectId'].setValue(this.projectsList[1].value);\r\n this.disableddlProject = true;\r\n this.getAndfillProjectData(employeeId);\r\n this.getAssociatepoolProject(employeeId, this.projectsList[1].value, this.roleName);\r\n }\r\n else {\r\n this.disableddlProject = false;\r\n this.releaseForm.controls['ProjectId'].setValue(this.projectsList[0].value);\r\n this.getAssociatepoolProject(employeeId, this.projectsList[1].value, this.roleName);\r\n } \r\n }\r\n }\r\n }\r\n \r\n getAndfillProjectData(employeeId: number): void {\r\n if (employeeId != null && employeeId != undefined) {\r\n let list = this.projectDetails;\r\n if (list && list.length > 0) {\r\n var selectedProjectId= this.releaseForm.controls[\"ProjectId\"].value;\r\n var selectedProjectEffectiveDate=\"\";\r\n list.forEach(item=>\r\n {\r\n if(item.ProjectId ==selectedProjectId)\r\n {\r\n selectedProjectEffectiveDate=item.EffectiveDate;\r\n }\r\n\r\n }); \r\n this.releaseForm.controls['EffectiveDate'].setValue(selectedProjectEffectiveDate);\r\n }\r\n if (this.hideTrainingProject == false) {\r\n let projectManager = this.projectDetails.filter((project: ResourceRelease) => {\r\n return project.ProjectId == this.releaseForm.value.releaseProjectId;\r\n });\r\n if (projectManager && projectManager.length > 0)\r\n this.releaseForm.controls['reportingManagerId'].setValue(projectManager[0].reportingManagerId);\r\n }\r\n }\r\n this.loadRemainingProjects(this.releaseForm.value.ProjectId);\r\n this.isPrimary();\r\n }\r\n \r\n private release(releaseResource: ResourceRelease): void {\r\n if (releaseResource != null && releaseResource != undefined) {\r\n if (releaseResource.NotifyAll != true) releaseResource.NotifyAll = false;\r\n releaseResource.TalentRequisitionId = 1;\r\n this.spinner.show();\r\n this._tempAllocationReleaseService.TemporaryReleaseAssociate(releaseResource).subscribe((data: any) => {\r\n if (data.IsSuccessful == true) {\r\n this.snackBar.open('Associate released from the project successfully!', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.releaseFormSubmitted = false;\r\n this.Clear();\r\n }\r\n else if(data.Message!=null && data.Message.includes(\"Invalid release date please verify the last working day\"))\r\n {\r\n this.snackBar.open('Invalid release date, Please verify the last working day.', 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.spinner.hide();\r\n } \r\n else{\r\n this.snackBar.open('Failed to release associate from project.', 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.Clear();\r\n return;\r\n }\r\n }, (error) => {\r\n this.snackBar.open('Failed to release associate from project.', 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.Clear();\r\n });\r\n }\r\n }\r\n \r\n private getAssociatepoolProject(EmployeeId: number, projectId: number, roleName: string) {\r\n if (EmployeeId != null && EmployeeId != undefined) {\r\n this._service.GetAssociateReleaseToProjects(EmployeeId, projectId, roleName).subscribe((res: any) => {\r\n this.releaseToProjectsList = [];\r\n if (res.length > 0) {\r\n res.forEach((element: any) => {\r\n this.releaseToProjectsList.push({ label: element.ProjectName, value: element.ProjectId });\r\n });\r\n\r\n \r\n \r\n this.disableddlReleaseTo = true;\r\n if(this.releaseToProjectsList && this.releaseToProjectsList.length > 1)\r\n {\r\n this.disableddlReleaseTo = false;\r\n }\r\n else if(this.releaseToProjectsList && this.releaseToProjectsList.length == 1)\r\n { \r\n this.releaseForm.controls['releaseProjectId'].setValue(res[0].ProjectId);\r\n this.releaseForm.controls['reportingManagerId'].setValue(res[0].ReportingManagerId);\r\n }\r\n }\r\n\r\n },\r\n (error) => {\r\n\r\n });\r\n }\r\n else {\r\n // this.releaseForm.controls['talentpool'].setValue(\"\");\r\n this.releaseForm.controls['releaseProjectId'].setValue(null);\r\n this.releaseForm.controls['reportingManagerId'].setValue(null);\r\n }\r\n }\r\n \r\n clearInput(evt: any, control): void {\r\n if (control == 'releaseDate'){\r\n evt.stopPropagation();\r\n this.releaseForm.get('releaseDate').reset();\r\n }\r\n if(control == 'employeeId'){\r\n evt.stopPropagation();\r\n this.releaseForm.reset();\r\n this.projectsList = [];\r\n this.releaseToProjectsList = [];\r\n }\r\n \r\n }\r\n\r\n \r\n private getDates(): void {\r\n var date = new Date(), y = date.getFullYear(), m = date.getMonth();\r\n // this.firstDate = new Date(y, m, 1);\r\n this.firstDate = new Date(y, m, 0);\r\n if(this.firstDate.getDay()===6){\r\n this.firstDate.setDate(this.firstDate.getDate() - 1);\r\n }\r\n else if(this.firstDate.getDay()===0){\r\n this.firstDate.setDate(this.firstDate.getDate() - 2);\r\n }\r\n\r\n this.lastDate = new Date();\r\n }\r\n\r\n\r\n private CheckDates = function (fromDate: any, toDate: any): boolean {\r\n if ((fromDate != null || fromDate != undefined) && (toDate != null && toDate != undefined)) {\r\n if (Date.parse(fromDate) <= Date.parse(toDate)) {\r\n this.invalid = false;\r\n return true\r\n }\r\n else {\r\n\r\n this.snackBar.open('Invalid Release date, please check associate`s allocations.', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({ severity: 'warn', summary: 'Warning Message', detail: 'Invalid Release date, please check associate`s allocations.' });\r\n this.invalid = true;\r\n return false\r\n }\r\n\r\n }\r\n }\r\n \r\n Clear = function (): void {\r\n // this.spinner.show();\r\n this.hideTrainingProject = true;\r\n this.releaseFormSubmitted = false;\r\n this.releaseForm.reset();\r\n setTimeout(() => this.formGroupDirective.resetForm(), 0);\r\n this.projectsList = []; \r\n this.projectsList.push({ label: 'Select Project', value: 0 });\r\n this.disableddlProject = true;\r\n this.releaseToProjectsList = [];\r\n this.disableddlReleaseTo = true;\r\n this.getEmployees(); \r\n // this.getProjectList(); \r\n }\r\n \r\n\r\n submit(): void {\r\n this.releaseFormSubmitted = true;\r\n this.isPrimary();\r\n let remainingPro = [];\r\n if(this.releaseForm.valid){\r\n if (this.isPrimaryProject && this.remainingProjects.length > 1) {\r\n this.isEligiblePrimary = true;\r\n this.remainingProjects.forEach((element: any) => {\r\n if (element.value != null) {\r\n remainingPro.push(element.value); \r\n }\r\n });\r\n this.releaseForm.controls['remainingProjects'].setValue(remainingPro);\r\n this.releaseAssociate(this.releaseForm.value);\r\n }\r\n else {\r\n this.releaseAssociate(this.releaseForm.value);\r\n }\r\n }\r\n else return;\r\n \r\n}\r\nprivate _filterEmployee(value) {\r\n let filterValue;\r\n if (value) {\r\n if(typeof value === 'string'){\r\n filterValue = value.toLowerCase();\r\n }\r\n else{\r\n filterValue = value.label.toLowerCase();\r\n }\r\n \r\n return this.associatesList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.associatesList;\r\n }\r\n }\r\n releaseAssociate(releaseResource: any) {\r\n releaseResource.employeeId = releaseResource.employeeId.value;\r\n this.releaseFormSubmitted = true;\r\n if (releaseResource.releaseDate == '' || releaseResource.releaseDate == undefined) return;\r\n if ((releaseResource.releaseProjectId == null || releaseResource.releaseProjectId == undefined) && this.hideTrainingProject == false) return;\r\n releaseResource.EffectiveDate = moment(releaseResource.EffectiveDate).format('YYYY-MM-DD');\r\n releaseResource.releaseDate = moment(releaseResource.releaseDate).format('YYYY-MM-DD');\r\n this.IsValidDate = this.CheckDates(releaseResource.EffectiveDate, releaseResource.releaseDate);\r\n releaseResource.PrimaryProjectId = this.isEligiblePrimary ? this.ddlPrimaryProjectId : this.setPrimaryKey(this.remainingProjects.length);\r\n if (this.IsValidDate) {\r\n this.release(releaseResource);\r\n }\r\n this.isEligiblePrimary = false;\r\n this.isPrimaryProject = false;\r\n this.releaseForm.controls['remainingProjects'].setValue(null);\r\n }\r\n \r\n loadRemainingProjects(projectId) {\r\n this.remainingProjects = this.projectsList.filter(item => item.value != projectId);\r\n }\r\n setPrimaryKey(remainingProjectslen) {\r\n if (this.primaryProjectId != this.releaseForm.value.ProjectId) {\r\n return this.primaryProjectId;\r\n }\r\n else {\r\n switch (remainingProjectslen) {\r\n case 1:\r\n return null;\r\n case 2:\r\n return this.remainingProjects[1].value;\r\n \r\n }\r\n }\r\n }\r\n isPrimary() {\r\n if (this.primaryProjectId == this.releaseForm.value.ProjectId) {\r\n this.isPrimaryProject = true;\r\n }\r\n }\r\n getPrimaryProjectId(employeeId) {\r\n this._allocateService.GetEmployeePrimaryAllocationProject(employeeId).subscribe((res: any) => {\r\n if(res){\r\n this.primaryProjectId = res.ProjectId;\r\n }\r\n });\r\n return this.primaryProjectId;\r\n }\r\n }","\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n Employee\r\n *\r\n \r\n \r\n \r\n keyboard_arrow_down\r\n \r\n \r\n No matching value found\r\n Select Employee\r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n \r\n Employee Required\r\n \r\n \r\n \r\n Select Employee from given options\r\n \r\n \r\n \r\n
\r\n\r\n\r\n
\r\n \r\n Current Project\r\n *\r\n \r\n \r\n \r\n {{proj.label}}\r\n \r\n \r\n \r\n Project Required.\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 Release Date\r\n *\r\n \r\n \r\n \r\n close\r\n \r\n \r\n \r\n \r\n \r\n Release Date is required.\r\n \r\n \r\n
\r\n
\r\n \r\n Releasing To\r\n *\r\n \r\n \r\n \r\n \r\n {{proj.label}}\r\n \r\n\r\n \r\n \r\n Releasing To Required.\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n  Notify All\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

Loading ...

\r\n","import { Component, OnInit, ViewChild, Input } from '@angular/core';\r\nimport { FormBuilder, FormControl, Validators, FormGroup, FormGroupDirective } from '@angular/forms';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { AssociateAllocation, PercentageDropDown, RoleDetails } from '../../../master-layout/models/associateallocation.model';\r\nimport * as moment from 'moment';\r\nimport { AssociateAllocationService } from '../../services/associate-allocation.service';\r\nimport { DropDownType, GenericType } from '../../../master-layout/models/dropdowntype.model';\r\nimport { ProjectsData } from '../../../master-layout/models/projects.model';\r\nimport { ClientBillingRole, InternalBillingRole } from '../../../master-layout/models/associateallocation.model'\r\nimport { TemporaryAllocationReleaseService } from '../../services/temporary-allocation-release.service';\r\nimport { TagAssociateService } from '../../../project-life-cycle/services/tag-associate.service';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { CommonService } from 'src/app/core/services/common.service';\r\nimport { InternalClient } from 'src/app/modules/master-layout/utility/enums';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MasterDataService } from 'src/app/modules/master-layout/services/masterdata.service';\r\nimport { AssignManagerToProjectService } from 'src/app/modules/project-life-cycle/services/assign-manager-to-project.service';\r\nimport { DialogCBRComponent } from '../dialog-cbr/dialog-cbr.component';\r\nimport { Observable } from 'rxjs';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { catchError, debounceTime, filter, map, startWith, switchMap, tap } from \"rxjs/operators\";\r\nimport { AssignReportingManagerService } from 'src/app/modules/project-life-cycle/services/assign-reporting-manager.service';\r\n\r\n@Component({\r\n selector: 'app-associateallocation',\r\n templateUrl: './associateallocation.component.html',\r\n styleUrls: ['./associateallocation.component.scss']\r\n})\r\nexport class AssociateallocationComponent implements OnInit {\r\n filteredRole : Observable;\r\n filteredEmployee : Observable;\r\n filteredProject : Observable;\r\n filteredUsers:Observable;\r\n isDisabled = true;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n formsubmitted: boolean;\r\n clientRolesList: DropDownType[] = [];\r\n internalRolesList: DropDownType[] = [];\r\n ManagersList: DropDownType[] = [];\r\n employeesList: DropDownType[] = [];\r\n trRolesList: DropDownType[] = [];\r\n disableCBR: boolean = true;\r\n requisitionList: AssociateAllocation;\r\n componentName: string;\r\n allocationForm: FormGroup;\r\n allocationDetailList: AssociateAllocation[];\r\n allocationHistory: AssociateAllocation[] = [];\r\n AssociateIsPrimaryAllocation: AssociateAllocation;\r\n projectsList = [];\r\n allocationOptions = [];\r\n AllocationOptions: PercentageDropDown[] = [];\r\n allocatedPercentage: number;\r\n availableAllocationPercentage: number = 0;\r\n showAllocationHistoryGrid: boolean = false;\r\n disableBilling: boolean;\r\n EmployeeName: string;\r\n trCode: string;\r\n clientName: string;\r\n projectDetails: ProjectsData[] = [];\r\n talentpoolEffectiveDate: string;\r\n firstDate: Date;\r\n lastDate: Date;\r\n invalidDates: boolean = false;\r\n disableAssociateName: boolean = false;\r\n empid: number;\r\n tagAssociateId: number;\r\n displayAllCBR: boolean = false;\r\n displaySelectProject: boolean = false;\r\n clientBillingRoleData: MatTableDataSource;\r\n cbrRoleData: any\r\n clientBillingStartDate: string;\r\n PageSize: number;\r\n isPrimaryDisabled : boolean = false;\r\n PageDropDown: number[] = [];\r\n CBRselectedData: ClientBillingRole = new ClientBillingRole();\r\n roleName: any;\r\n isCriticalDisabled:boolean = false\r\n IsZeroPercentAllocationClicked:boolean=false\r\n employeesListByGivenName:DropDownType[] = [];\r\n tempEmployeesList:any=[]\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n selectedEmpId: number;\r\n disableFutureMarkingGrid: Boolean = true;\r\n \r\n\r\n // displayedColumns: string[] = ['ClientBillingRoleName', 'ClientBillingPercentage',\r\n // 'NoOfPositions', 'StartDate', 'AllocationCount'];\r\n constructor(private _formBuilder: FormBuilder,\r\n private masterDataService: MasterDataService,\r\n private _service: AssociateAllocationService,\r\n private tagAssociateService: TagAssociateService,\r\n private _commonService: CommonService,\r\n private actRoute: ActivatedRoute,\r\n private snackBar: MatSnackBar,\r\n private dialog: MatDialog,\r\n private router: Router,\r\n private spinner: NgxSpinnerService,\r\n private _tempAllocationRelease: TemporaryAllocationReleaseService,\r\n private _assignManagerservice: AssignManagerToProjectService,\r\n private _assignReportingManagerService: AssignReportingManagerService) {\r\n\r\n this.componentName = this.actRoute.routeConfig.component.name;\r\n this.requisitionList = new AssociateAllocation();\r\n }\r\n\r\n ngOnInit() {\r\n this.spinner.show();\r\n this.empid = JSON.parse(sessionStorage['AssociatePortal_UserInformation']).employeeId;\r\n this.roleName = JSON.parse(sessionStorage['AssociatePortal_UserInformation']).roleName;\r\n this.actRoute.params.subscribe(params => { this.tagAssociateId = params[\"tagid\"]; });\r\n this.allocationForm = this._formBuilder.group({\r\n 'RoleMasterId': [null, [Validators.required]],\r\n 'ProjectId': [null, [Validators.required]],\r\n 'EmployeeId': [null, [Validators.required]],\r\n 'AllocationPercentage': [null, [Validators.required]],\r\n 'internalBillingRole': [null],\r\n 'InternalBillingPercentage': [''],\r\n 'ClientBillingRoleId': [null],\r\n 'ClientBillingRoleName': [null],\r\n 'ClientBillingPercentage': [null, Validators.max(100)],\r\n 'ReportingManagerId': [null, [Validators.required]],\r\n 'EffectiveDate': ['', [Validators.required]],\r\n 'BillingStartDate': [''],\r\n 'Billable': [true],\r\n 'isCritical':[true],\r\n 'IsPrimary': '',\r\n 'NotifyAll':[true],\r\n });\r\n\r\n this.getProjectList();\r\n this.getEmployeesList();\r\n this.getAllocationPercentages();\r\n this.getRoles();\r\n this.getDates();\r\n \r\n }\r\n\r\n private getDates(): void {\r\n var date = new Date(), y = date.getFullYear(), m = date.getMonth();\r\n // this.firstDate = new Date(y, m, 1);\r\n this.firstDate = new Date(y, m, 0);\r\n if(this.firstDate.getDay()===6){\r\n this.firstDate.setDate(this.firstDate.getDate() - 1);\r\n }\r\n else if(this.firstDate.getDay()===0){\r\n this.firstDate.setDate(this.firstDate.getDate() - 2);\r\n }\r\n\r\n this.lastDate = new Date();\r\n }\r\n private getProjectList(): void {\r\n this.masterDataService.GetProjectsList().subscribe((projectResponse: any[]) => {\r\n this.projectDetails = projectResponse;\r\n this.projectsList = [];\r\n // this.projectsList.push({ label: '', value: null });\r\n this.ManagersList = [];\r\n this.ManagersList.push({ label: '', value: null });\r\n this.clientRolesList = [];\r\n this.clientRolesList.push({ label: '', value: null });\r\n projectResponse.forEach((pr: ProjectsData) => {\r\n if (pr.ProjectName.indexOf(\"Talent Pool\") == -1 &&\r\n this.projectsList.findIndex(x => x.label == pr.ProjectName) == -1 && (pr.ProjectStateId==17 || pr.ProjectStateId==19))\r\n if(this.roleName==\"Training Department Head\"){\r\n if(pr.ProjectName==\"Nipuna\" || pr.ProjectName==\"Training\")\r\n {\r\n this.projectsList.push({ label: pr.ProjectName, value: pr.ProjectId });\r\n }\r\n }\r\n if(pr.ProjectName.indexOf(\"Training\") == -1)\r\n {\r\n if(this.roleName == \"Program Manager\" && pr.ProgramManagerId==this.empid ) {\r\n this.projectsList.push({ label: pr.ProjectName, value: pr.ProjectId });\r\n }\r\n else {\r\n if(this.roleName == \"HRA\" || this.roleName == \"HRM\") {\r\n this.projectsList.push({ label: pr.ProjectName, value: pr.ProjectId });\r\n }\r\n }\r\n }\r\n });\r\n this.filteredProject = this.allocationForm.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterProject(value))\r\n );\r\n }),\r\n (error: any) => {\r\n this.snackBar.open('Failed to get Project List', '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n };\r\n }\r\n\r\n private getEmployeesList(): void {\r\n this._tempAllocationRelease.GetAssociatesForAllocation().subscribe((employees: any[]) => {\r\n this.employeesList = [];\r\n // this.employeesList.push({ label: '', value: null });\r\n employees.forEach((employee: any) => {\r\n if (this.employeesList.findIndex(x => x.label == employee.EmployeeName) == -1)\r\n this.employeesList.push({ label: employee.EmployeeName, value: employee.EmployeeId });\r\n });\r\n this.tempEmployeesList = this.employeesList\r\n this.filteredEmployee = this.allocationForm.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterEmployee(value))\r\n );\r\n // if (this.empid > 0) {\r\n // this.disableAssociateName = true;\r\n // this.allocationForm.controls['EmployeeId'].setValue(this.empid);\r\n\r\n // this.getAllocationHistory(this.empid);\r\n // this.validateAllocationPercentage(this.allocationForm.value.AllocationPercentage, this.allocationForm.value.EmployeeId);\r\n // }\r\n }),\r\n (error: any) => {\r\n this.snackBar.open('Failed to get Employees List', '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n };\r\n }\r\n\r\n private getAllocationPercentages(): void {\r\n this.masterDataService.GetPercentages().subscribe((res: GenericType[]) => {\r\n // this.AllocationOptions = res;\r\n this.allocationOptions = [];\r\n this.allocationOptions.push({ label: '', value: null });\r\n res.forEach((element: GenericType) => {\r\n this.allocationOptions.push({ label: element.Name, value: element.Id });\r\n this.AllocationOptions.push({ Percentage: Number(element.Name), AllocationPercentageId: element.Id });\r\n });\r\n },\r\n (error) => {\r\n this.snackBar.open('Failed to Get Allocation Percentages!', '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n\r\n validateAllocationPercentage(allocatedpercentageId: number, employeeId: number): void {\r\n if (allocatedpercentageId == 5){\r\n this.isPrimaryDisabled = true;\r\n this.isCriticalDisabled=true \r\n this.disableCBR = true;\r\n this.allocationForm.controls[\"ClientBillingRoleId\"].reset();\r\n this.allocationForm.controls[\"ClientBillingRoleName\"].reset();\r\n this.allocationForm.controls[\"EffectiveDate\"].reset();\r\n this.allocationForm.controls[\"ClientBillingPercentage\"].reset();\r\n this.allocationForm.controls[\"BillingStartDate\"].reset();\r\n this.allocationForm.controls[\"isCritical\"].setValue(false);\r\n this.allocationForm.controls[\"Billable\"].setValue(false);\r\n this.allocationForm.controls[\"IsPrimary\"].setValue(false);\r\n this.allocationForm.controls[\"NotifyAll\"].setValue(true);\r\n this.disableBilling=true;\r\n } \r\n else{\r\n this.isPrimaryDisabled = false; \r\n this.disableBilling=false;\r\n this.isCriticalDisabled=false; \r\n }\r\n if(employeeId != 0)\r\n this.getEmployeePrimaryAllocationProject(employeeId);\r\n let releaseList = this.AllocationOptions.filter((percentage: PercentageDropDown) => {\r\n return percentage.AllocationPercentageId == allocatedpercentageId;\r\n });\r\n if (releaseList && releaseList.length > 0) {\r\n this.allocatedPercentage = releaseList[0].Percentage;\r\n }\r\n }\r\n private getEmployeePrimaryAllocationProject(employeeId: number): void {\r\n this._service.GetEmployeePrimaryAllocationProject(employeeId).subscribe((response: AssociateAllocation) => {\r\n // this.AssociateIsPrimaryAllocation = []\r\n this.AssociateIsPrimaryAllocation = response;\r\n },(error)=>{\r\n this.AssociateIsPrimaryAllocation=undefined\r\n });\r\n }\r\n\r\n clearInput(evt: any, fieldName): void {\r\n if(fieldName=='EffectiveDate'){\r\n evt.stopPropagation();\r\n this.allocationForm.get('EffectiveDate').reset();\r\n }\r\n if(fieldName=='EmployeeId'){\r\n evt.stopPropagation();\r\n this.allocationForm.get('EmployeeId').reset();\r\n this.employeesListByGivenName=[];\r\n this.Cancel();\r\n }\r\n if(fieldName=='ProjectId'){\r\n evt.stopPropagation();\r\n this.allocationForm.get('ProjectId').reset();\r\n }\r\n if(fieldName=='RoleMasterId'){\r\n evt.stopPropagation();\r\n this.allocationForm.get('RoleMasterId').reset();\r\n }\r\n }\r\n\r\n public getRoles() {\r\n let departmentId: number = 1;\r\n this._service.GetRolesByDepartmentId(departmentId).subscribe((roledata: RoleDetails[]) => {\r\n this.spinner.hide();\r\n this.trRolesList = [];\r\n // this.trRolesList.push({ label: '', value: null });\r\n roledata.forEach((e: RoleDetails) => {\r\n this.trRolesList.push({ label: e.RoleName, value: e.RoleMasterId })\r\n });\r\n this.filteredRole = this.allocationForm.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterRole(value))\r\n );\r\n }, (error: any) => {\r\n this.spinner.hide();\r\n this.snackBar.open('Failed to get roles!', '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n displayFn(user: any) {\r\n return user && user.label ? user.label : '';\r\n }\r\n\r\n displayEmp(user:any){\r\n return user && user.label ? user.label : '';\r\n }\r\n\r\n private _filterRole(value) {\r\n let filterValue;\r\n if (typeof value.RoleMasterId === 'number') {\r\n return this.trRolesList;\r\n }\r\n if (value && value.RoleMasterId) {\r\n if (typeof value.RoleMasterId === 'string') {\r\n filterValue = value.RoleMasterId.toLowerCase();\r\n }\r\n else {\r\n if (value.RoleMasterId !== null) {\r\n filterValue = value.RoleMasterId.label.toLowerCase();\r\n }\r\n }\r\n return this.trRolesList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.trRolesList;\r\n }\r\n }\r\n private _filterProject(value) {\r\n \r\n let filterValue;\r\n if (typeof value.ProjectId === 'number') {\r\n return this.projectsList;\r\n }\r\n if (value && value.ProjectId) {\r\n if (typeof value.ProjectId === 'string') {\r\n filterValue = value.ProjectId.toLowerCase();\r\n }\r\n else {\r\n if (value.ProjectId !== null) {\r\n filterValue = value.ProjectId.label.toLowerCase();\r\n }\r\n }\r\n return this.projectsList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.projectsList;\r\n }\r\n }\r\n private _filterEmployee(value) {\r\n \r\n let filterValue;\r\n if (typeof value.EmployeeId === 'number') {\r\n return this.employeesList;\r\n }\r\n if (value && value.EmployeeId) {\r\n if (typeof value.EmployeeId === 'string') {\r\n filterValue = value.EmployeeId.toLowerCase();\r\n }\r\n else {\r\n if (value.EmployeeId !== null) {\r\n filterValue = value.EmployeeId.label.toLowerCase();\r\n }\r\n }\r\n return this.employeesList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.employeesList;\r\n }\r\n }\r\n\r\n public getAllocationHistory(employeeId: number) {\r\n this.selectedEmpId =employeeId;\r\n this.disableFutureMarkingGrid = true;;\r\n if (employeeId > 0) {\r\n this.allocationForm.reset({\r\n EmployeeId : this.allocationForm.get('EmployeeId').value,\r\n Billable : this.allocationForm.get('Billable').value,\r\n isCritical : this.allocationForm.get('isCritical').value,\r\n AllocationPercentage : this.allocationForm.get('AllocationPercentage').value,\r\n NotifyAll: this.allocationForm.get('NotifyAll').value\r\n });\r\n // if(this.allocationForm.value.Billable)\r\n // this.IsZeroPercentAllocationClicked = false\r\n this.clientName = \"\";\r\n this.formsubmitted = false;\r\n this._service.GetEmpAllocationHistory(employeeId).subscribe((data: AssociateAllocation[]) => {\r\n if (data != null && data.length > 0) {\r\n this.allocationHistory = data;\r\n this.showAllocationHistoryGrid = true;\r\n this.requisitionList.AssociateName = data[0].AssociateName;\r\n this.allocationHistory.forEach(ele => {\r\n if (ele.ProjectTypeId == 6) {\r\n this.availableAllocationPercentage = ele.AllocationPercentage;\r\n this.talentpoolEffectiveDate = moment(ele.EffectiveDate).format('YYYY-MM-DD');\r\n }\r\n if(this.IsZeroPercentAllocationClicked){\r\n this.availableAllocationPercentage = 100;\r\n this.talentpoolEffectiveDate = null;\r\n }\r\n }\r\n )\r\n }\r\n else\r\n this.showAllocationHistoryGrid = false;\r\n });\r\n }\r\n }\r\n\r\n public getClientBillingRolesByProject(projectId: number) {\r\n this.clientRolesList = [];\r\n this.clientRolesList.push({ label: '', value: null });\r\n if (projectId > 0) {\r\n this._service.GetClientBillingRolesByProjectId(projectId).subscribe((clientRole: ClientBillingRole[]) => {\r\n this.cbrRoleData = [];\r\n if (clientRole.length > 0) {\r\n let cbrdata = [];\r\n cbrdata = clientRole.filter(x => x.IsActive == true);\r\n cbrdata.forEach(\r\n (d: ClientBillingRole) => {\r\n d.AvailablePositions = d.NoOfPositions - d.AllocationCount;\r\n if(d.StartDate != null) {\r\n d.StartDate =\r\n d.StartDate != null\r\n ? moment(d.StartDate).format(\"YYYY-MM-DD\")\r\n : null;\r\n }\r\n });\r\n this.cbrRoleData = cbrdata;\r\n }\r\n\r\n }, (error: any) => {\r\n this.snackBar.open('Failed to get client billing roles!', '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n }\r\n\r\n\r\n\r\n openDialog(): void {\r\n this.selectClientBillingRoles();\r\n let dialogRef;\r\n if (this.displayAllCBR) {\r\n dialogRef = this.dialog.open(DialogCBRComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n width: '800px', height: '700px',\r\n data: {\r\n isProjectSelected: this.displayAllCBR,\r\n isAllSelected: this.displaySelectProject,\r\n selectedProjectId: this.allocationForm.value.ProjectId,\r\n cbrList: this.cbrRoleData\r\n }\r\n\r\n });\r\n\r\n }\r\n else {\r\n dialogRef = this.dialog.open(DialogCBRComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n width: '400px', height: '250px',\r\n data: {\r\n isAllSelected: this.displaySelectProject,\r\n }\r\n });\r\n }\r\n\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if(result != null) {\r\n this.allocationForm.controls['BillingStartDate'].setValue(result.StartDate);\r\n this.allocationForm.controls['BillingStartDate'].updateValueAndValidity();\r\n this.allocationForm.controls['ClientBillingPercentage'].setValue(result.ClientBillingPercentage);\r\n this.allocationForm.controls['ClientBillingPercentage'].updateValueAndValidity();\r\n\r\n\r\n this.allocationForm.controls['ClientBillingRoleName'].setValue(result.ClientBillingRoleName);\r\n this.allocationForm.controls['ClientBillingRoleName'].updateValueAndValidity();\r\n\r\n this.allocationForm.controls['ClientBillingRoleId'].setValue(result.ClientBillingRoleId);\r\n this.allocationForm.controls['ClientBillingRoleId'].updateValueAndValidity();\r\n\r\n }\r\n });\r\n }\r\n\r\n selectClientBillingRoles() {\r\n if (!this.allocationForm.value.ProjectId){\r\n this.displaySelectProject = true;\r\n this.displayAllCBR = false;\r\n }\r\n else{\r\n this.displayAllCBR = true;\r\n this.displaySelectProject = false;\r\n }\r\n }\r\n\r\n\r\n selectedCBR() {\r\n this.allocationForm.controls['ClientBillingRoleId'].setValue(this.CBRselectedData.ClientBillingRoleId);\r\n this.allocationForm.controls['ClientBillingRoleName'].setValue(this.CBRselectedData.ClientBillingRoleName);\r\n this.allocationForm.controls['ClientBillingPercentage'].setValue(this.CBRselectedData.ClientBillingPercentage);\r\n this.clientBillingStartDate = this.CBRselectedData.StartDate;\r\n this.allocationForm.controls['BillingStartDate'].setValue(this.CBRselectedData.StartDate);\r\n this.displayAllCBR = false;\r\n }\r\n close() {\r\n this.displaySelectProject = false;\r\n }\r\n\r\n public getProjectManagerDetails(projectId: number) {\r\n this.clientName = \"\";\r\n this.allocationForm.controls[\"RoleMasterId\"].reset();\r\n if(this.IsZeroPercentAllocationClicked != true){ \r\n this.allocationForm.controls[\"AllocationPercentage\"].reset();\r\n }\r\n this.allocationForm.controls[\"ClientBillingRoleId\"].reset();\r\n this.allocationForm.controls[\"ClientBillingRoleName\"].reset();\r\n this.allocationForm.controls[\"ClientBillingPercentage\"].reset();\r\n this.allocationForm.controls[\"BillingStartDate\"].reset();\r\n if (projectId > 0) {\r\n let projectData: any = this.projectDetails.filter((project: ProjectsData) => { return project.ProjectId == projectId });\r\n this.clientName = projectData[0].ClientName;\r\n this.requisitionList.ProjectName = projectData[0].ProjectName;\r\n if (this.clientName.indexOf(InternalClient[InternalClient.SenecaGlobal]) != -1) {\r\n // this.disableBilling = true;\r\n // this.allocationForm.controls[\"Billable\"].setValue(false);\r\n }\r\n else {\r\n // this.allocationForm.controls[\"Billable\"].setValue(true);\r\n if(this.IsZeroPercentAllocationClicked != true){\r\n this.disableBilling = false;\r\n this.isPrimaryDisabled = false; \r\n this.isCriticalDisabled = false\r\n }\r\n }\r\n this.allocationForm.controls[\"ReportingManagerId\"].reset();\r\n this.GetReportingManagers(projectId);\r\n this.getClientBillingRolesByProject(projectId);\r\n }\r\n }\r\n\r\n public getClientBillingRoles() {\r\n this._service.GetClientBillingRoles().subscribe((clientRole: ClientBillingRole[]) => {\r\n this.clientRolesList.push({ label: '', value: null });\r\n clientRole.forEach((e: ClientBillingRole) => {\r\n this.clientRolesList.push({ label: e.ClientBillingRoleCode, value: e.ClientBillingRoleId })\r\n });\r\n }, (error: any) => {\r\n this.snackBar.open(error.error.Message, '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n public getInternalBillingRoles() {\r\n this._service.GetInternalBillingRoles().subscribe((clinetRole: InternalBillingRole[]) => {\r\n this.internalRolesList.push({ label: '', value: null });\r\n clinetRole.forEach((e: InternalBillingRole) => {\r\n this.internalRolesList.push({ label: e.InternalBillingRoleCode, value: e.InternalBillingRoleId })\r\n });\r\n }, (error: any) => {\r\n this.snackBar.open('Failed to get internal billing roles!', '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n public GetReportingManagers(projectId: number) {\r\n this.ManagersList = [];\r\n if (projectId > 0) {\r\n this._assignManagerservice.GetManagersByProjectId(projectId).subscribe((data: any) => {\r\n if (data.ReportingManagerId != null)\r\n this.ManagersList.push({ label: data.ReportingManagerName, value: data.ReportingManagerId });\r\n\r\n if (data.LeadId != null && data.ReportingManagerId != data.LeadId)\r\n this.ManagersList.push({ label: data.LeadName, value: data.LeadId });\r\n\r\n if (data.ProgramManagerId != null && data.ProgramManagerId != data.LeadId && data.ProgramManagerId != data.ReportingManagerId)\r\n this.ManagersList.push({ label: data.ProgramManagerName, value: data.ProgramManagerId });\r\n\r\n }, (error: any) => {\r\n this.snackBar.open('Failed to get reporting Managers!', '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n }\r\n\r\n public IsBillable(event: any) {\r\n if (event.checked) {\r\n this.allocationForm.controls[\"isCritical\"].setValue(true);\r\n this.disableCBR = false;\r\n }\r\n else {\r\n this.allocationForm.controls[\"isCritical\"].setValue(false);\r\n this.allocationForm.controls[\"Billable\"].setValue(false);\r\n this.disableCBR = true;\r\n this.allocationForm.controls[\"ClientBillingRoleId\"].reset();\r\n this.allocationForm.controls[\"ClientBillingRoleName\"].reset();\r\n this.allocationForm.controls[\"EffectiveDate\"].reset();\r\n this.allocationForm.controls[\"ClientBillingPercentage\"].reset();\r\n this.allocationForm.controls[\"BillingStartDate\"].reset();\r\n }\r\n }\r\n public onlyNumbers(event: any) {\r\n this._commonService.onlyNumbers(event)\r\n };\r\n\r\n public Allocate(requisitionList: any) {\r\n this.formsubmitted = true;\r\n\r\n this.requisitionList.ClientBillingPercentage = requisitionList.ClientBillingPercentage;\r\n this.requisitionList.ClientBillingRoleId = requisitionList.ClientBillingRoleId;\r\n this.requisitionList.EmployeeId = requisitionList.EmployeeId;\r\n this.requisitionList.ReportingManagerId = requisitionList.ReportingManagerId;\r\n this.requisitionList.Billable = requisitionList.Billable;\r\n\r\n if (this.requisitionList.Billable == true) {\r\n if (!this.requisitionList.ClientBillingPercentage || !this.requisitionList.ClientBillingRoleId){\r\n this.allocationForm.get('ClientBillingRoleName').setValidators(Validators.required);\r\n this.allocationForm.get('ClientBillingPercentage').setValidators(Validators.required);\r\n } \r\n }\r\n else {\r\n\r\n this.allocationForm.get('ClientBillingRoleName').clearValidators();\r\n this.allocationForm.get('ClientBillingPercentage').clearValidators();\r\n }\r\n this.allocationForm.controls['ClientBillingRoleName'].updateValueAndValidity();\r\n this.allocationForm.controls['ClientBillingPercentage'].updateValueAndValidity();\r\n if (this.allocationForm.valid) {\r\n\r\n requisitionList.EmployeeId = requisitionList.EmployeeId.value;\r\n requisitionList.RoleMasterId = requisitionList.RoleMasterId.value;\r\n requisitionList.ProjectId = requisitionList.ProjectId.value;\r\n if (this.allocatedPercentage <= this.availableAllocationPercentage) {\r\n \r\n if (requisitionList.isCritical != true) requisitionList.isCritical = false;\r\n if (requisitionList.NotifyAll != true) requisitionList.NotifyAll = false;\r\n this.requisitionList.TalentRequisitionId = requisitionList.TalentRequisitionId = 1; //Written as it is temporary screen and Talent Management module yet to be implemented.\r\n let validDates: boolean = false;\r\n requisitionList.EffectiveDate = moment(requisitionList.EffectiveDate).format('YYYY-MM-DD')\r\n if (this.talentpoolEffectiveDate != null && this.talentpoolEffectiveDate != undefined) {\r\n validDates = this.CheckDates(this.talentpoolEffectiveDate, requisitionList.EffectiveDate);\r\n }\r\n else {\r\n if(this.IsZeroPercentAllocationClicked){\r\n this.invalidDates = false;\r\n validDates = true;\r\n }\r\n else{\r\n this.snackBar.open('Band width is not available!', '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return;\r\n }\r\n }\r\n if ((requisitionList.Billable != true) && (this.clientBillingStartDate != undefined) &&\r\n (!this._commonService.IsValidDate(\r\n this.clientBillingStartDate,\r\n requisitionList.EffectiveDate)\r\n )\r\n ) {\r\n\r\n this.snackBar.open('Effective Date should be greater than or equal to Client Billing Start date', '', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return;\r\n }\r\n if (this.requisitionList.EmployeeId != this.requisitionList.ReportingManagerId) {\r\n let primaryValidation = this.ValidateIsPrimary(requisitionList);\r\n let primaryAllocationProject = this.AssociateIsPrimaryAllocation && this.AssociateIsPrimaryAllocation.ProjectId\r\n let primaryProjectAllocationPercentage = this.AssociateIsPrimaryAllocation && this.AssociateIsPrimaryAllocation.AllocationPercentage\r\n if(primaryValidation && requisitionList.IsPrimary == true && primaryAllocationProject != 6 && primaryAllocationProject != undefined && primaryProjectAllocationPercentage == 50 && requisitionList.AllocationPercentage == 2){\r\n this.snackBar.open(\"The Associate has already allocated to a primary project.\", '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return;\r\n }\r\n if (primaryValidation && validDates != false) {\r\n this.spinner.show();\r\n this._service.ResourceAllocate(requisitionList).subscribe((data: any) => {\r\n if (data.IsSuccessful == true) {\r\n this.spinner.hide();\r\n this.ManagersList = [];\r\n this.ManagersList.push({ label: '', value: null });\r\n this.snackBar.open('Associate allocated successfully! ', '', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.deleteFromTagAssociateList(this.tagAssociateId);\r\n this.getEmployeesList();\r\n this.Cancel();\r\n }\r\n else if (data.IsSuccessful == false) {\r\n this.spinner.hide();\r\n if(data.Message == \"The Associate has already allocated a primary project.\"){\r\n this.snackBar.open(\"The Associate has already allocated to a primary project.\", '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n else{\r\n this.snackBar.open('The Associate has already allocated to the selected project', '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n }\r\n }\r\n );\r\n }\r\n }\r\n else {\r\n this.snackBar.open('Associate and Reporting Manager cannot be the same!', '', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n }\r\n else {\r\n this.snackBar.open('Band width is not available!', '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n }\r\n\r\n }\r\n\r\n\r\n deleteFromTagAssociateList(tagAssociateId: number): void {\r\n if (tagAssociateId > 0) {\r\n this.tagAssociateService.DeleteTagList(tagAssociateId).subscribe((res: number) => {\r\n if (res == 1) {\r\n setTimeout(() => {\r\n this.router.navigate(['/project/tagAssociate/']);\r\n }, 3000);\r\n }\r\n else {\r\n this.snackBar.open('Unable to delete record from Tag list.', '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n },\r\n (error: any) =>\r\n this.snackBar.open('Unable to delete record from Tag list.', '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }));\r\n }\r\n }\r\n\r\n\r\n private ValidateIsPrimary(requisitionList: AssociateAllocation): boolean {\r\n let requisitionListAllocationPercentage: number;\r\n let releaseList = this.AllocationOptions.filter((percentage: PercentageDropDown) => {\r\n return percentage.AllocationPercentageId == requisitionList.AllocationPercentage;\r\n });\r\n if (releaseList && releaseList.length > 0) {\r\n requisitionListAllocationPercentage = releaseList[0].Percentage;\r\n }\r\n if (this.AssociateIsPrimaryAllocation && Object.keys(this.AssociateIsPrimaryAllocation).length > 0 && requisitionListAllocationPercentage) {\r\n if (this.AssociateIsPrimaryAllocation.AllocationPercentage < requisitionListAllocationPercentage && (requisitionList.IsPrimary == false || requisitionList.IsPrimary == null)) {\r\n this.snackBar.open('Please check Primary.', '', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return false;\r\n }\r\n else if (this.AssociateIsPrimaryAllocation.AllocationPercentage == requisitionListAllocationPercentage &&\r\n (requisitionList.IsPrimary == false || requisitionList.IsPrimary == null)) {\r\n requisitionList.IsPrimary = false;\r\n if (this.allocationForm.valid && !this.invalidDates) {\r\n this._service.ResourceAllocate(requisitionList).subscribe((data : any) => {\r\n if (data == true) {\r\n this.ManagersList = [];\r\n this.ManagersList.push({ label: '', value: null });\r\n this.snackBar.open('Associate allocated successfully! ', '', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.deleteFromTagAssociateList(this.tagAssociateId);\r\n this.getEmployeesList();\r\n this.Cancel();\r\n }\r\n else {\r\n if(data.IsSuccessful == true) {\r\n this.ManagersList = [];\r\n this.ManagersList.push({ label: '', value: null });\r\n this.snackBar.open('Associate allocated successfully! ', '', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.deleteFromTagAssociateList(this.tagAssociateId);\r\n this.getEmployeesList();\r\n }\r\n if (data.IsSuccessful == false) {\r\n this.snackBar.open('The Associate has already allocated to the selected project', '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n this.Cancel();\r\n }\r\n }, (error) => {\r\n this.snackBar.open('Fail to allocate same project', '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return false;\r\n });\r\n }\r\n else {\r\n // this.snackBar.open('Please check Primary', '', {\r\n // duration: 3000,\r\n // panelClass: ['error-alert'],\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // });\r\n return false;\r\n }\r\n }\r\n else if (this.AssociateIsPrimaryAllocation.AllocationPercentage > requisitionListAllocationPercentage && requisitionList.IsPrimary == true) {\r\n this.snackBar.open('Please uncheck Primary.', '', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n else {\r\n if ((requisitionList.IsPrimary == false || requisitionList.IsPrimary == null) && requisitionListAllocationPercentage > 0) {\r\n this.snackBar.open('Please check Primary.', '', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n public Cancel() {\r\n this.employeesListByGivenName=[];\r\n this.allocationForm.reset({\r\n NotifyAll : true\r\n });\r\n this.formsubmitted = false;\r\n this.disableAssociateName = false;\r\n this.showAllocationHistoryGrid = false;\r\n this.disableCBR = true;\r\n this.allocationHistory = [];\r\n setTimeout(() => this.formGroupDirective.resetForm({\r\n NotifyAll : true\r\n }), 0);\r\n this.availableAllocationPercentage = 0;\r\n this.talentpoolEffectiveDate = null;\r\n this.clientName = \"\";\r\n this.isPrimaryDisabled = false;\r\n this.disableBilling = false;\r\n this.isCriticalDisabled=false;\r\n this.requisitionList = new AssociateAllocation();\r\n this.ManagersList = [];\r\n this.IsZeroPercentAllocationClicked = false;\r\n this.employeesList = this.tempEmployeesList;\r\n this.disableFutureMarkingGrid = false;\r\n }\r\n\r\n private CheckDates = function (fromDate: any, toDate: any): boolean {\r\n if ((fromDate != null || fromDate != undefined) && (toDate != null && toDate != undefined)) {\r\n if (Date.parse(fromDate) <= Date.parse(toDate)) {\r\n this.invalidDates = false;\r\n return true\r\n }\r\n else {\r\n this.snackBar.open('Invalid Effective date, please check associate`s allocations.', '', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.invalidDates = true;\r\n return false\r\n }\r\n\r\n }\r\n }\r\n\r\n IsZeroPercentAllocation(event: any){\r\n if (event.checked) {\r\n this.allocationForm.reset();\r\n this.IsZeroPercentAllocationClicked = true\r\n this.employeesList=[]\r\n let percentageId:number\r\n this.allocationOptions.forEach((element) => {\r\n if (element.label == '0') {\r\n percentageId = element.value\r\n this.allocationForm.controls[\"AllocationPercentage\"].setValue(percentageId);\r\n } \r\n });\r\n if(this.allocationForm.value.EmployeeId == null)\r\n this.validateAllocationPercentage(percentageId,0)\r\n this.GetAssociatesForDropdown();\r\n }\r\n else{\r\n // this.employeesListByGivenName=[]\r\n this.employeesList = this.tempEmployeesList\r\n this.Cancel()\r\n\r\n // this.allocationForm.controls[\"AllocationPercentage\"].setValue(null);\r\n // this.isPrimaryDisabled = false; \r\n // this.disableBilling=false;\r\n // this.isCriticalDisabled=false\r\n // this.IsZeroPercentAllocationClicked = false\r\n }\r\n\r\n }\r\n\r\n GetAssociatesForDropdown() {\r\n this.employeesListByGivenName=[]\r\n this.employeesList = [];\r\n this._assignReportingManagerService.GetAllAssociatesList().subscribe((res: any) => {\r\n res.forEach((employee: any) => {\r\n if (this.employeesListByGivenName.findIndex(x => x.label == employee.EmployeeName) == -1)\r\n this.employeesListByGivenName.push({ label: employee.EmpName, value: employee.EmpCode });\r\n this.employeesList = this.employeesListByGivenName;\r\n });\r\n this.filteredEmployee = this.allocationForm.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterEmployee(value))\r\n );\r\n })\r\n\r\n\r\n\r\n }\r\n _filterEmployees(value){\r\n let filterValue;\r\n if (typeof value.EmpCode === 'number') {\r\n return this.employeesList;\r\n }\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n\r\n Billable\r\n\r\n
\r\n
\r\n 0% allocation\r\n
\r\n
\r\n \r\n Associate Name\r\n *\r\n \r\n \r\n \r\n keyboard_arrow_down\r\n \r\n \r\n No matching value found\r\n Select Associate\r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n \r\n Associate Name Required\r\n \r\n \r\n \r\n Select Associate Name from given options\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Project Name\r\n *\r\n \r\n\r\n \r\n \r\n keyboard_arrow_down\r\n \r\n \r\n No matching value found\r\n Select Project\r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n \r\n Project Required\r\n \r\n \r\n \r\n Select Project from given options\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Role\r\n *\r\n \r\n \r\n \r\n keyboard_arrow_down\r\n \r\n \r\n No matching value found\r\n Select Role\r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n \r\n Role Required\r\n \r\n \r\n \r\n Select Role from given options\r\n \r\n\r\n \r\n
\r\n\r\n
\r\n \r\n Allocation(%)\r\n *\r\n \r\n \r\n \r\n {{allo.label}}\r\n \r\n \r\n\r\n \r\n \r\n Select Allocation Percentage\r\n \r\n \r\n \r\n availableAllocationPercentage))\">\r\n Available Allocation(%) is: {{availableAllocationPercentage}} \r\n \r\n \r\n
\r\n
\r\n \r\n Client\r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Effective Date:\r\n *\r\n \r\n \r\n \r\n close\r\n \r\n \r\n \r\n \r\n \r\n Enter Effective Date\r\n \r\n \r\n
\r\n\r\n \r\n\r\n
\r\n \r\n Reporting Manager\r\n *\r\n \r\n \r\n \r\n {{manager.label}}\r\n \r\n \r\n\r\n \r\n\r\n \r\n Select Reporting Manager\r\n \r\n \r\n
\r\n\r\n
\r\n\r\n \r\n\r\n Client Billing Role*\r\n \r\n \r\n \r\n \r\n Enter Client Billing Role \r\n \r\n \r\n
\r\n
\r\n \r\n Client Billing(%)\r\n *\r\n \r\n \r\n \r\n \r\n\r\n Maximum Client Billing(%) can be 100\r\n \r\n \r\n
\r\n
\r\n \r\n Client Billing Start Date\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Critical\r\n\r\n Primary\r\n  Notify All\r\n \r\n Is it primary?\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 {{requisitionList.AssociateName}}'s - Current Allocation
\r\n
\r\n \r\n \r\n \r\n \r\n Project Name\r\n \r\n \r\n Effective From\r\n \r\n \r\n Utilization (%)\r\n \r\n \r\n Billable\r\n \r\n \r\n Critical\r\n \r\n \r\n Primary\r\n \r\n \r\n \r\n \r\n {{al.Project}}\r\n {{al.EffectiveDate | date:\"MM/dd/yyyy\"}}\r\n {{al.AllocationPercentage}}\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

Loading ...

\r\n\r\n\r\n","import { Component, OnInit, Inject,EventEmitter, Output, ViewChild } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatTable, MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';import { AssociateAllocation, PercentageDropDown, RoleDetails } from '../../../master-layout/models/associateallocation.model';\r\nimport * as moment from 'moment';\r\nimport { AssociateAllocationService } from '../../services/associate-allocation.service';\r\nimport { DropDownType, GenericType } from '../../../master-layout/models/dropdowntype.model';\r\nimport { ProjectsData } from '../../../master-layout/models/projects.model';\r\nimport { ClientBillingRole, InternalBillingRole } from '../../../master-layout/models/associateallocation.model'\r\nimport { TemporaryAllocationReleaseService } from '../../services/temporary-allocation-release.service';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { CommonService } from 'src/app/core/services/common.service';\r\nimport { InternalClient } from 'src/app/modules/master-layout/utility/enums';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MasterDataService } from 'src/app/modules/master-layout/services/masterdata.service';\r\nimport { TileStyler } from '@angular/material/grid-list/tile-styler';\r\nimport { AssignManagerToProjectService } from 'src/app/modules/project-life-cycle/services/assign-manager-to-project.service';\r\nimport { TagAssociateService } from 'src/app/modules/project-life-cycle/services/tag-associate.service';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\n\r\n@Component({\r\n selector: 'app-dialog-cbr',\r\n templateUrl: './dialog-cbr.component.html',\r\n styleUrls: ['./dialog-cbr.component.scss']\r\n})\r\n\r\n\r\nexport class DialogCBRComponent implements OnInit {\r\n formsubmitted: boolean ;\r\n allocationHistory: AssociateAllocation[] = [];\r\n \r\n AllocationOptions: PercentageDropDown[] = [];\r\n \r\n displaySelectProject: boolean = false;\r\n \r\n select: boolean;\r\n clientBillingRoleData: MatTableDataSource;\r\n isProjectSelected: boolean;\r\n isAllSelected: boolean;\r\n selectedProjectId: number; \r\n cbrList: any;\r\n cbrListAvailablePostions : any;\r\n checked : boolean;\r\n isApplyButton : boolean = false;\r\n // favoriteSeason: string;\r\n private selectedCBRInfo: any;\r\n\r\n// @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n\r\n\r\n displayedColumns: string[] = ['checked','ClientBillingRoleName','ClientBillingPercentage',\r\n 'NoOfPositions','StartDate','AllocationCount'];\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort;\r\n @ViewChild('table') table: MatTable;\r\n @Output() messageEvent = new EventEmitter();\r\n\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private masterDataService: MasterDataService,\r\n private _service: AssociateAllocationService,\r\n private tagAssociateService: TagAssociateService,\r\n private _commonService: CommonService,\r\n private _tempAllocationRelease: TemporaryAllocationReleaseService,\r\n private snackBar: MatSnackBar,\r\n private _assignManagerservice: AssignManagerToProjectService) {\r\n this.isProjectSelected = this.data.isProjectSelected;\r\n this.isAllSelected = this.data.isAllSelected;\r\n this.selectedProjectId = this.data.selectedProjectId; \r\n }\r\n\r\n ngOnInit(){\r\n this.clientBillingRoleData = new MatTableDataSource(this.data.cbrList);\r\n this.clientBillingRoleData.paginator = this.paginator;\r\n this.clientBillingRoleData.sort = this.sort;\r\n if (this.data.cbrList.length > 0){\r\n this.isApplyButton = false;\r\n if (this.data.cbrList.length == 1 && this.data.cbrList[0].AvailablePositions == 0)\r\n this.isApplyButton = true; \r\n \r\n else if (this.data.cbrList.length > 1){\r\n this.cbrListAvailablePostions = this.data.cbrList.filter(item => item.AvailablePositions == 0)\r\n if (this.cbrListAvailablePostions.length == this.data.cbrList.length)\r\n this.isApplyButton = true;\r\n else\r\n this.isApplyButton = false; \r\n } \r\n\r\n }\r\n else{\r\n this.isApplyButton = true;\r\n }\r\n }\r\n\r\n /// changeevent row\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n \r\n selectedCBR() {\r\n if(this.selectedCBRInfo != undefined || this.selectedCBRInfo != null)\r\n this.dialogRef.close(this.selectedCBRInfo);\r\n else{\r\n this.snackBar.open('Please select Client Billing Role', '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n } \r\n }\r\n close() {\r\n this.displaySelectProject = false;\r\n }\r\n clientbillingRoleSelected(clientbillingroleinfo: any){\r\n this.selectedCBRInfo = clientbillingroleinfo;\r\n }\r\n}","

Client Billing Role(s)

\r\n
\r\n
\r\n Please Select Project
\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 \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\r\n \r\n \r\n \r\n\r\n
Select\r\n 0\">\r\n \r\n ClientBilling Role Name {{element.ClientBillingRoleName}} Billing % {{element.ClientBillingPercentage}} Total Position {{element.NoOfPositions}} Billing Start Date {{element.StartDate}} Allocated Position(s) {{element.AllocationCount}}
No data
\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\r\n\r\n\r\n\r\n\r\n\r\n\r\n ","import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { AssociateAllocationService } from '../../services/associate-allocation.service';\r\n\r\n@Component({\r\n selector: 'app-future-allocations-grid',\r\n templateUrl: './future-allocations-grid.component.html',\r\n styleUrls: ['./future-allocations-grid.component.scss']\r\n})\r\nexport class FutureAllocationsGridComponent implements OnInit, OnChanges {\r\n\r\n @Input() SelectedEmpId: number;\r\n @Input() updateGrid: Boolean = false;\r\n futuremarkedprojectObj: any;\r\n \r\n\r\n constructor(private _allocationservice: AssociateAllocationService,\r\n private snackBar: MatSnackBar) {\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if(this.updateGrid){\r\n this.GetAssociateFutureProjectByEmpId();\r\n }\r\n if(this.SelectedEmpId != undefined && this.SelectedEmpId !=0 && this.SelectedEmpId != null){\r\n this.GetAssociateFutureProjectByEmpId();\r\n }\r\n }\r\n ngOnInit(): void {\r\n }\r\n \r\n GetAssociateFutureProjectByEmpId(){\r\n this.futuremarkedprojectObj = [];\r\n this._allocationservice.GetAssociateFutureProjectByEmpId(this.SelectedEmpId).subscribe(res => {\r\n if(res){\r\n this.futuremarkedprojectObj = res;\r\n }\r\n })\r\n\r\n }\r\n\r\n}\r\n"," 0\">\r\n\r\n
\r\n Future Marked Projects
\r\n
\r\n \r\n \r\n \r\n Project Name\r\n \r\n \r\n Tentative Start Date\r\n \r\n \r\n Remarks\r\n \r\n \r\n \r\n \r\n \r\n {{al.ProjectName}}\r\n {{al.TentativeDate | date:\"MM/dd/yyyy\"}}\r\n {{al.Remarks}}\r\n \r\n \r\n \r\n
\r\n
","import { Component, OnInit, ViewChild, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { FormBuilder, FormGroup, FormGroupDirective, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MasterDataService } from 'src/app/core/services/masterdata.service';\r\nimport { AssociateAllocationService } from '../../services/associate-allocation.service';\r\nimport { Observable } from 'rxjs';\r\nimport { DropDownType } from 'src/app/modules/master-layout/models/dropdowntype.model';\r\nimport { map, startWith } from \"rxjs/operators\";\r\nimport { ProjectsData } from 'src/app/modules/master-layout/models/projects.model';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { AssociateAllocation } from 'src/app/modules/master-layout/models/associateallocation.model';\r\nimport * as moment from 'moment';\r\nimport { ResourceReportNoncriticalService } from 'src/app/modules/reports/services/resource-report-noncritical.service';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Component({\r\n selector: 'app-future-allocations',\r\n templateUrl: './future-allocations.component.html',\r\n styleUrls: ['./future-allocations.component.scss']\r\n})\r\nexport class FutureAllocationsComponent implements OnInit, OnChanges {\r\n\r\n futureallocationForm: FormGroup;\r\n empid: number;\r\n roleName: any;\r\n projectsList = [];\r\n filteredEmployee : Observable;\r\n filteredProject : Observable;\r\n employeesList: DropDownType[] = [];\r\n tempEmployeesList:any=[];\r\n projectDetails: ProjectsData[] = [];\r\n formsubmitted: boolean;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n allocationHistory: AssociateAllocation[] = [];\r\n showAllocationHistoryGrid: boolean = false;\r\n availableAllocationPercentage: number = 0;\r\n talentpoolEffectiveDate: string;\r\n requisitionList: AssociateAllocation;\r\n projectselected:any;\r\n markFutureObj:any;\r\n disableproject: Boolean = false;\r\n projectId: number;\r\n projectName: String;\r\n selectedEmpId: number;\r\n futuremarkedprojectObj: any;\r\n date=new Date();\r\n minDate= new Date();\r\n\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n\r\n constructor(private _formBuilder: FormBuilder,\r\n private masterDataService: MasterDataService,\r\n private _service: AssociateAllocationService,\r\n private snackBar: MatSnackBar,\r\n private _NoncriticalResourceReportService: ResourceReportNoncriticalService) { \r\n this.requisitionList = new AssociateAllocation();\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n // this.projectselected = changes.projectselected.currentValue;\r\n }\r\n ngOnInit(): void {\r\n // this.spinner.show();\r\n this.empid = JSON.parse(sessionStorage['AssociatePortal_UserInformation']).employeeId;\r\n this.roleName = JSON.parse(sessionStorage['AssociatePortal_UserInformation']).roleName;\r\n this.futureallocationForm = this._formBuilder.group({\r\n 'ProjectId': [null,[Validators.required]],\r\n 'EmployeeId': [null, [Validators.required]],\r\n 'tentativeDate': ['', [Validators.required]],\r\n 'remarks':[null],\r\n 'ProjectName':[null]\r\n });\r\n this.getProjectList();\r\n this.getEmployeesList();\r\n }\r\n\r\n clearInput(evt: any, fieldName): void {\r\n if(fieldName=='tentativeDate'){\r\n evt.stopPropagation();\r\n this.futureallocationForm.get('tentativeDate').reset();\r\n }\r\n if(fieldName=='EmployeeId'){\r\n evt.stopPropagation();\r\n this.futureallocationForm.get('EmployeeId').reset();\r\n this.Cancel();\r\n }\r\n if(fieldName=='ProjectId'){\r\n evt.stopPropagation();\r\n this.futureallocationForm.get('ProjectId').reset();\r\n }\r\n }\r\n displayFn(user: any) {\r\n return user && user.label ? user.label : '';\r\n }\r\n\r\n private getProjectList(): void {\r\n this.masterDataService.GetProjectsList().subscribe((projectResponse: any[]) => {\r\n this.projectDetails = projectResponse;\r\n this.projectsList = [];\r\n projectResponse.forEach((pr) => {\r\n this.projectsList.push({ label: pr.Name, value: pr.Id });\r\n });\r\n this.projectsList.push({ label:\"Others\", value:0})\r\n this.filteredProject = this.futureallocationForm.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterProject(value))\r\n ); \r\n }),\r\n (error: any) => {\r\n this.snackBar.open('Failed to get Project List', '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n };\r\n }\r\n\r\n private getEmployeesList(): void {\r\n this._NoncriticalResourceReportService.GetAssociatesForFutureAllocation().subscribe((employees: any[]) => {\r\n this.employeesList = [];\r\n employees.sort((a, b) => (a.AssociateName > b.AssociateName) ? 1 : ((b.AssociateName > a.AssociateName) ? -1 : 0))\r\n employees.forEach((employee: any) => {\r\n if (this.employeesList.findIndex(x => x.label == employee.AssociateName) == -1)\r\n this.employeesList.push({ label: employee.AssociateName, value: employee.EmployeeId });\r\n });\r\n this.tempEmployeesList = this.employeesList\r\n this.filteredEmployee = this.futureallocationForm.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterEmployee(value))\r\n );\r\n }),\r\n (error: any) => {\r\n this.snackBar.open('Failed to get Employees List', '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n };\r\n }\r\n\r\n private _filterProject(value) {\r\n \r\n let filterValue;\r\n if (typeof value.ProjectId === 'number') {\r\n return this.projectsList;\r\n }\r\n if (value && value.ProjectId) {\r\n if (typeof value.ProjectId === 'string') {\r\n filterValue = value.ProjectId.toLowerCase();\r\n }\r\n else {\r\n if (value.ProjectId !== null) {\r\n filterValue = value.ProjectId.label.toLowerCase();\r\n }\r\n }\r\n return this.projectsList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.projectsList;\r\n }\r\n }\r\n private _filterEmployee(value) {\r\n \r\n let filterValue;\r\n if (typeof value.EmployeeId === 'number') {\r\n return this.employeesList;\r\n }\r\n if (value && value.EmployeeId) {\r\n if (typeof value.EmployeeId === 'string') {\r\n filterValue = value.EmployeeId.toLowerCase();\r\n }\r\n else {\r\n if (value.EmployeeId !== null) {\r\n filterValue = value.EmployeeId.label.toLowerCase();\r\n }\r\n }\r\n return this.employeesList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.employeesList;\r\n }\r\n }\r\n\r\n public getAllocationHistory(employeeId: number) {\r\n this.formsubmitted = false;\r\n this.selectedEmpId = employeeId;\r\n this._service.GetEmpAllocationHistory(employeeId).subscribe((data: AssociateAllocation[]) => {\r\n if (data != null && data.length > 0) {\r\n this.allocationHistory = data;\r\n this.showAllocationHistoryGrid = true;\r\n this.requisitionList.AssociateName = data[0].AssociateName;\r\n this.allocationHistory.forEach(ele => {\r\n this.projectsList=this.projectsList.filter(x=>x.value!=ele.ProjectId);\r\n if (ele.ProjectTypeId == 6) {\r\n this.availableAllocationPercentage = ele.AllocationPercentage;\r\n this.talentpoolEffectiveDate = moment(ele.EffectiveDate).format('YYYY-MM-DD');\r\n }\r\n }\r\n )\r\n }\r\n else\r\n this.showAllocationHistoryGrid = false;\r\n });\r\n }\r\n\r\n Cancel(){\r\n this.futureallocationForm.reset();\r\n setTimeout(() => this.formGroupDirective.resetForm(), 0);\r\n\r\n this.requisitionList = new AssociateAllocation();\r\n this.allocationHistory = [];\r\n this.showAllocationHistoryGrid = false;\r\n this.futuremarkedprojectObj = [];\r\n this.projectselected = null;\r\n }\r\n ProjectSelection(event){\r\n this.projectselected = event.value;\r\n this.futureallocationForm.controls['ProjectName'].setValue(null);\r\n if(this.projectselected == 0){\r\n this.futureallocationForm.controls['ProjectName'].setValidators([Validators.required]);\r\n this.futureallocationForm.controls['ProjectName'].updateValueAndValidity();\r\n this.futureallocationForm.controls['ProjectName'].markAsUntouched();\r\n }\r\n else{\r\n this.futureallocationForm.controls['ProjectName'].setValidators([]);\r\n this.futureallocationForm.controls['ProjectName'].updateValueAndValidity(); \r\n }\r\n }\r\n MarkFuture(){\r\n if(this.futureallocationForm.valid){\r\n if(this.projectselected == 0 || this.projectselected == null || this.projectselected == undefined){\r\n this.projectId = 0;\r\n this.projectName = this.futureallocationForm.value.ProjectName;\r\n }\r\n else{\r\n this.projectId = this.futureallocationForm.value.ProjectId.value;\r\n this.projectName = this.futureallocationForm.value.ProjectId.label;\r\n } \r\n let tentativedate= moment(this.futureallocationForm.value.tentativeDate).format('YYYY-MM-DD');\r\n this.markFutureObj = {\r\n \"employeeId\": this.futureallocationForm.value.EmployeeId.value,\r\n \"projectName\": this.projectName,\r\n \"projectId\": this.projectId,\r\n \"tentativeDate\": tentativedate,\r\n \"remarks\": this.futureallocationForm.value.remarks\r\n }\r\n this._service.AddAssociateFutureProject(this.markFutureObj).subscribe(res => {\r\n if(res['IsSuccessful'] == true){\r\n if(res['Message'] == \"Record already exist\"){\r\n this.snackBar.open('Cannot mark more than one future project', '', {\r\n panelClass: ['error-alert'],\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n else{\r\n this.snackBar.open('Successfully marked future project', '', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n }\r\n },\r\n error => {\r\n this.snackBar.open('Failed to mark future project', '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n })\r\n this.Cancel();\r\n }\r\n else{\r\n return\r\n }\r\n }\r\n\r\n GetAssociateFutureProjectByEmpId(){\r\n this.futuremarkedprojectObj = [];\r\n this._service.GetAssociateFutureProjectByEmpId(this.selectedEmpId).subscribe(res => {\r\n if(res){\r\n this.futuremarkedprojectObj = res;\r\n }\r\n })\r\n }\r\n Deactivate() {\r\n this._service.DiactivateAssociateFutureProjectByEmpId(this.selectedEmpId).subscribe(res => {\r\n if(res['IsSuccessful']){\r\n this.snackBar.open('Deactivated Successfully', '', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n this.GetAssociateFutureProjectByEmpId();\r\n })\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n \r\n Associate Name\r\n *\r\n \r\n \r\n \r\n keyboard_arrow_down\r\n \r\n \r\n No matching value found\r\n Select Associate\r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n \r\n Associate Name Required\r\n \r\n \r\n \r\n Select Associate Name from given options\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Project Name\r\n *\r\n \r\n\r\n \r\n \r\n keyboard_arrow_down\r\n \r\n \r\n No matching value found\r\n Select Project\r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n \r\n Project Required\r\n \r\n \r\n \r\n Select Project from given options\r\n \r\n \r\n
\r\n
\r\n \r\n Project Name*\r\n \r\n \r\n \r\n Project Name Required\r\n \r\n \r\n
\r\n
\r\n \r\n Tentative Date:\r\n *\r\n \r\n \r\n \r\n close\r\n \r\n \r\n \r\n \r\n \r\n Tentative Date Required\r\n \r\n \r\n \r\n Enter Tentative Date\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Any Additional Remarks\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 {{requisitionList.AssociateName}}'s - Current Allocation
\r\n
\r\n \r\n \r\n \r\n Project Name\r\n \r\n \r\n Effective From\r\n \r\n \r\n Utilization (%)\r\n \r\n \r\n Billable\r\n \r\n \r\n Critical\r\n \r\n \r\n Primary\r\n \r\n \r\n \r\n \r\n {{al.Project}}\r\n {{al.EffectiveDate | date:\"MM/dd/yyyy\"}}\r\n {{al.AllocationPercentage}}\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 0\">\r\n\r\n
\r\n Future Marked Projects
\r\n
\r\n \r\n \r\n \r\n Project Name\r\n \r\n \r\n Tentative Start Date\r\n \r\n \r\n Remarks\r\n \r\n \r\n Action\r\n \r\n \r\n \r\n \r\n \r\n {{al.ProjectName}}\r\n {{al.TentativeDate | date:\"MM/dd/yyyy\"}}\r\n {{al.Remarks}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n

Loading ...

\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-home',\r\n templateUrl: './home.component.html',\r\n styleUrls: ['./home.component.scss']\r\n})\r\nexport class HomeComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n \r\n
","\r\nexport class ResourceRelease {\r\n public employeeId: number;\r\n public ProjectId: number;\r\n public ProjectName: string;\r\n public projectTypeCode: string;\r\n public releaseProjectId: number;\r\n public reportingManagerId: number;\r\n public talentpool: string;\r\n public EffectiveDate: string\r\n public releaseDate: string;\r\n public ReleasingPercentage: number;\r\n public AllocationPercentage: number;\r\n public ProjectType: number;\r\n public TalentRequisitionId: number;\r\n public NotifyAll: boolean = false;\r\n public PrimaryProjectId:number;\r\n public MakePrimaryProjectId : number;\r\n public IsPrimary : boolean;\r\n public remainingProjects: number[];\r\n}\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport {environment} from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { AssociateAllocation } from '../../master-layout/models/associateallocation.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AllocationChangesService {\r\n private _resources: any;\r\n private _serverURL: string;\r\n private _projectMicroService: string;\r\n constructor(private _httpclient: HttpClient) {\r\n this._resources = servicePath.API.AssociateAllocation;\r\n this._projectMicroService = environment.ProjMicroService;\r\n }\r\n\r\n public UpdateAssociateAllocation(details: AssociateAllocation) {\r\n let _url = this._projectMicroService + this._resources.UpdateAssociateAllocation;\r\n return this._httpclient.post(_url, details);\r\n}\r\n\r\npublic GetCurrentAllocationByEmpIdAndProjectId(employeeId: number, projectId: number) {\r\n let _url = this._projectMicroService + this._resources.GetCurrentAllocationByEmpIdAndProjectId + employeeId + \"&projectId=\" + projectId;\r\n return this._httpclient.get(_url);\r\n}\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { GenericType } from '../../master-layout/models/dropdowntype.model';\r\nimport { AssociateAllocation, ReportingManager, ClientBillingRole, InternalBillingRole, RoleDetails } from '../../master-layout/models/associateallocation.model';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport {environment} from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { ProjectDetails } from '../../master-layout/models/projects.model';\r\nimport { Associate } from '../../onboarding/models/associate.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AssociateAllocationService {\r\n private _resources: any;\r\n private _serverURL: string;\r\n private _config: any\r\n private _projectMicroService: string;\r\n private _employeeMicroService: string;\r\n constructor(private _httpclient: HttpClient) {\r\n this._serverURL = environment.ServerUrl;\r\n this._resources = servicePath.API.AssociateAllocation;\r\n this._projectMicroService = environment.ProjMicroService;\r\n this._employeeMicroService = environment.EmployeeMicroService \r\n }\r\n\r\n public GetRoleDetailsByTrID(trId: number): Observable> {\r\n let url = this._serverURL + this._config.API.requisitionSearch.getRolesByTalentRequisitionId + trId;\r\n return this._httpclient.get(url);\r\n }\r\n\r\n public GetClientBillingRoles(): Observable> {\r\n var url = this._serverURL + this._resources.GetClientBillingRoles;\r\n return this._httpclient.get(url);\r\n }\r\n\r\n public GetClientBillingRolesByProjectId(projectId: number): Observable> {\r\n var url = this._projectMicroService + this._resources.GetClientBillingRolesByProjectId + projectId;\r\n return this._httpclient.get(url);\r\n }\r\n\r\n public GetInternalBillingRoles(): Observable> {\r\n var url = this._serverURL + this._resources.GetInternalBillingRoles;\r\n return this._httpclient.get(url);\r\n }\r\n \r\n public GetEmpAllocationHistory(employeeId: number): Observable> {\r\n let _url = this._projectMicroService + this._resources.GetEmpAllocationHistory + employeeId;\r\n return this._httpclient.get(_url);\r\n }\r\n//newly added\r\n public GetEmployeeAllocationsByName(name: string) {\r\n let _url = this._employeeMicroService + this._resources.GetEmployeeAllocationsByName + name;\r\n return this._httpclient.get(_url);\r\n}\r\n public GetAllocationDetailsByAllocationId(allocationId: number): Observable> {\r\n let _url = this._serverURL + this._resources.GetAllocationDetailsByAllocationId + allocationId;\r\n return this._httpclient.get(_url);\r\n }\r\n\r\n public GetEmployeePrimaryAllocationProject(employeeId: number): Observable {\r\n let _url = this._projectMicroService + this._resources.GetEmployeePrimaryAllocationProject + employeeId;\r\n return this._httpclient.get(_url);\r\n }\r\n\r\n public ResourceAllocate(details: AssociateAllocation) {\r\n let _url = this._projectMicroService + this._resources.ResourceAllocate;\r\n return this._httpclient.post(_url, details);\r\n }\r\n\r\n ViewSkillDetails(requisitionRoleDetailId: number) {\r\n let _url = this._serverURL + this._resources.GetRequiredSkillsDetails + requisitionRoleDetailId;\r\n return this._httpclient.get(_url);\r\n }\r\n\r\n GetMatchingProfiles(requisitionRoleId: number) {\r\n let _url = this._serverURL + this._resources.GetMatchingProfiles + requisitionRoleId;\r\n return this._httpclient.get(_url);\r\n }\r\n\r\n GetAssociateSkills(requisitionRoleId: number, associateId: number) {\r\n let _url = this._serverURL + this._resources.GetMatchingskillsforAssociate + requisitionRoleId + \"&empId=\" + associateId;\r\n return this._httpclient.get(_url);\r\n }\r\n\r\n ForceClose(requisitionId: number) {\r\n let _url = this._serverURL + this._resources.forceClose + requisitionId;\r\n return this._httpclient.get(_url);\r\n }\r\n\r\n CheckPrimary(empid: number, RoleId: number) {\r\n let _url = this._serverURL + this._resources.CheckPrimaryRoleofAssociate + empid + \"&roleID=\" + RoleId;\r\n return this._httpclient.get(_url);\r\n }\r\n\r\n SetPrimaryRole(details: any) {\r\n let _url = this._serverURL + this._resources.SetPrimaryRoleofAssociate;\r\n return this._httpclient.post(_url, details);\r\n }\r\n\r\n GetExecutionProjectsList(userRole: string, empId: number) {\r\n const _url = this._serverURL + this._resources.GetExecutionProjectsList + userRole + \"&employeeId=\" + empId;\r\n return this._httpclient.get(_url);\r\n }\r\n GetRolesByDepartmentId(departmentId: number): Observable {\r\n let url = this._projectMicroService + this._resources.getRolesByDepartmentID + departmentId;\r\n return this._httpclient.get(url)\r\n }\r\n AddAssociateFutureProject(futuereMarkingobj){\r\n let _url = this._projectMicroService + this._resources.AddAssociateFutureProject;\r\n return this._httpclient.post(_url, futuereMarkingobj); \r\n }\r\n\r\n GetAssociateFutureProjectByEmpId(empId){\r\n let _url = this._projectMicroService + this._resources.GetAssociateFutureProjectByEmpId + empId;\r\n return this._httpclient.get(_url);\r\n }\r\n\r\n DiactivateAssociateFutureProjectByEmpId(empId){\r\n let _url = this._projectMicroService + this._resources.DiactivateAssociateFutureProjectByEmpId + empId;\r\n return this._httpclient.post(_url, null);\r\n }\r\n\r\n GetAllAllocationByEmployeeId(empId){\r\n let _url = this._projectMicroService + this._resources.GetAllAllocationByEmployeeId + empId;\r\n return this._httpclient.get(_url);\r\n }\r\n}\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { ResourceRelease } from '../models/resourcerelease.model';\r\n\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ResourceReleaseService {\r\n\r\n private _resources: any;\r\n private _serverURL: string;\r\n private _projectMicroService: string;\r\n\r\n constructor(private _httpclient: HttpClient) {\r\n this._serverURL = environment.ServerUrl;\r\n this._resources = servicePath.API.ResourceRelease;\r\n this._projectMicroService = environment.ProjMicroService;\r\n }\r\n\r\n public GetEmployeesByProjectID(projectId:number) {\r\n var url = this._serverURL + this._resources.GetEmployeesByProjectID + projectId;\r\n return this._httpclient.get(url);\r\n }\r\n\r\n public GetTalentPools() {\r\n var url = this._serverURL + this._resources.getTalentPools;\r\n return this._httpclient.get(url);\r\n }\r\n\r\n public GetAssociates() {\r\n var url = this._serverURL + this._resources.getAssociates;\r\n return this._httpclient.get(url);\r\n }\r\n\r\n public GetProjects(empId: number) {\r\n var url = this._serverURL + this._resources.getProjectDetails + empId;\r\n return this._httpclient.get(url);\r\n }\r\n\r\n public ReleaseAssociate(releaseResource: ResourceRelease) {\r\n let _url = this._serverURL + this._resources.releaseAssociate;\r\n return this._httpclient.post(_url, releaseResource); \r\n }\r\n\r\n public GetAssociateTalentPool(empId: number) {\r\n var url = this._projectMicroService + this._resources.getAssociateTalentPool + empId;\r\n return this._httpclient.get(url);\r\n }\r\n public GetAssociateReleaseToProjects(empId: number, projectId: number, roleName: string) {\r\n var url = this._projectMicroService + this._resources.getAssociateTalentPool + empId + \"/\" + projectId + \"/\" + roleName;\r\n return this._httpclient.get(url);\r\n}\r\n public GetAssociateProjectsForRelease(empId: number) {\r\n var url = this._projectMicroService + this._resources.GetAssociateProjectsForRelease + empId;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { environment } from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { ResourceRelease } from '../models/resourcerelease.model';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TemporaryAllocationReleaseService {\r\n private _projectMicroService: string;\r\n private _resources: any;\r\n private _serverURL: string;\r\n constructor(private _httpclient: HttpClient) {\r\n this._serverURL = environment.ServerUrl;\r\n this._resources = servicePath.API.TemporaryAllocationRelease;\r\n this._projectMicroService = environment.ProjMicroService;\r\n }\r\n public GetEmployeesAllocations() {\r\n let url = this._projectMicroService + this._resources.GetEmployeesAllocations;\r\n return this._httpclient.get(url);\r\n }\r\n public GetAssociatesForAllocation() {\r\n let url = this._projectMicroService + this._resources.GetAssociatesForAllocation;\r\n return this._httpclient.get(url);\r\n}\r\n public TemporaryReleaseAssociate(releaseResource: ResourceRelease) {\r\n let _url = this._projectMicroService + this._resources.TemporaryReleaseAssociate;\r\n return this._httpclient.post(_url, releaseResource); \r\n }\r\n\r\n public GetAssociatesToRelease(employeeId: number, roleName: string) {\r\n let url = this._projectMicroService + this._resources.GetAssociatesToRelease + employeeId + \"/\" + roleName;\r\n return this._httpclient.get(url);\r\n }\r\n public GetAssociatePrimaryProject(employeeId: number){\r\n let url = this._serverURL + this._resources.GetAssociatePrimaryProject + employeeId;\r\n return this._httpclient.get(url);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport{TalentmangRoutingModule} from './talentmangment.routing'\r\nimport { AssociateallocationComponent } from './Components/associateallocation/associateallocation.component';\r\nimport { AllAngularMaterialModule } from '../plugins/all-angular-material/all-angular-material.module';\r\nimport { HomeComponent } from './Components/home/home.component';\r\nimport { DialogCBRComponent } from './Components/dialog-cbr/dialog-cbr.component';\r\nimport { AssociateReleaseComponent } from './Components/associate-release/associate-release.component';\r\nimport { AllocationChangesComponent } from './Components/allocation-changes/allocation-changes.component';\r\nimport { RequirematchDirectiveModule } from '../../../../src/app/requirematch.directive';\r\nimport { DropDownSuggestionDirectiveModule } from 'src/app/drop-down-suggestion.directive';\r\nimport { NgxSpinnerModule } from 'ngx-spinner';\r\nimport { FutureAllocationsComponent } from './Components/future-allocations/future-allocations.component';\r\nimport { FutureAllocationsGridComponent } from './Components/future-allocations-grid/future-allocations-grid.component';\r\n// import { CBRTableComponent } from './Components/cbrtable/cbrtable.component';\r\n\r\n@NgModule({\r\n declarations: [AssociateallocationComponent, HomeComponent, DialogCBRComponent, AssociateReleaseComponent, AllocationChangesComponent, FutureAllocationsComponent, FutureAllocationsGridComponent, ],\r\n \r\n imports: [\r\n CommonModule,\r\n TalentmangRoutingModule,\r\n AllAngularMaterialModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n DropDownSuggestionDirectiveModule,\r\n NgxSpinnerModule,\r\n RequirematchDirectiveModule ]\r\n})\r\nexport class TalentManagModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { HomeComponent } from './Components/home/home.component';\r\nimport { AssociateallocationComponent } from './Components/associateallocation/associateallocation.component';\r\nimport { AssociateReleaseComponent } from './Components/associate-release/associate-release.component';\r\nimport { AllocationChangesComponent } from './Components/allocation-changes/allocation-changes.component';\r\nimport { FutureAllocationsComponent } from './Components/future-allocations/future-allocations.component';\r\n\r\nconst routes: Routes = [\r\n\r\n {\r\n path: '', component: HomeComponent, children: [\r\n { path: \"allocation\", component: AssociateallocationComponent, data: { title: 'Associate Allocation' } },\r\n { path: \"release\", component: AssociateReleaseComponent, data: { title: 'Associate Release' } },\r\n { path: \"allocationchanges\", component: AllocationChangesComponent, data: { title: 'Allocation Changes' } },\r\n { path: \"future-allocations\", component: FutureAllocationsComponent, data: {title: 'Future Allocation'} }\r\n \r\n ]\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class TalentmangRoutingModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { AssignUserRolesComponent } from './components/assign-user-roles/assign-user-roles.component';\r\nimport { AdminComponent } from './components/admin/admin.component';\r\nimport { AssignMenusComponent } from './components/assign-menus/assign-menus.component';\r\nimport { ClientBillingRolesComponent } from './components/client-billing-roles/client-billing-roles.component';\r\nimport { ClientsComponent } from './components/clients/clients.component';\r\nimport { CompetencyAreaComponent } from './components/competency-area/competency-area.component';\r\nimport { DepartmentsComponent } from './components/departments/departments.component';\r\nimport { DepartmentTypeComponent } from './components/department-type/department-type.component';\r\nimport { DesignationsComponent } from './components/designations/designations.component';\r\nimport { DomainComponent } from './components/domain/domain.component';\r\nimport { GradesComponent } from './components/grades/grades.component';\r\nimport { RoleTypeComponent } from './components/role-type/role-type.component';\r\nimport { InternalBillingRolesComponent } from './components/internal-billing-roles/internal-billing-roles.component';\r\nimport { KeyFunctionComponent } from './components/key-function/key-function.component';\r\nimport { MapAssociateIdComponent } from './components/map-associate-id/map-associate-id.component';\r\nimport { NotificationConfigurationComponent } from './components/notification-configuration/notification-configuration.component';\r\nimport { NotificationTypesComponent } from './components/notification-types/notification-types.component';\r\nimport { PracticeAreaComponent } from './components/practice-area/practice-area.component';\r\nimport { ProjectTypeComponent } from './components/project-type/project-type.component';\r\nimport { ProficiencyLevelComponent } from './components/proficiency-level/proficiency-level.component';\r\nimport { RolesTableComponent } from './components/roles-table/roles-table.component';\r\nimport { RolesComponent } from './components/roles/roles.component';\r\nimport { SkillGroupComponent } from './components/skill-group/skill-group.component';\r\nimport { SkillsComponent } from './components/skills/skills.component';\r\nimport { SeniorityComponent } from './components/seniority/seniority.component';\r\nimport { SpecialityComponent } from './components/speciality/speciality.component';\r\nimport { UpdateEmployeeStatusComponent } from './components/update-employee-status/update-employee-status.component';\r\nimport { WorkstationComponent } from './components/workstation/workstation.component';\r\nimport { CategoryComponent } from './components/category/category.component';\r\nimport {ServiceTypeComponent} from './components/service-type/service-type.component';\r\n\r\nconst routes: Routes = [\r\n\r\n {\r\n path: '', component: AdminComponent, children: [\r\n { path: \"userrole\", component: AssignUserRolesComponent, data: { title: 'User Role' } },\r\n { path: \"asignmenus\", component: AssignMenusComponent, data: { title: 'Assign Menus' } },\r\n { path: \"clientbillingrole\", component: ClientBillingRolesComponent, data: { title: 'Client Billing Role' } },\r\n { path: \"clients\", component: ClientsComponent, data: { title: 'Clients' } },\r\n { path: \"competencyarea\", component: CompetencyAreaComponent, data: { title: 'Competency Area' } },\r\n { path: \"department\", component: DepartmentsComponent, data: { title: 'Department' } },\r\n { path: \"departmenttype\", component: DepartmentTypeComponent, data: { title: 'Department Type' } },\r\n { path: \"designation\", component: DesignationsComponent, data: { title: 'Designation' } },\r\n { path: \"domain\", component: DomainComponent, data: { title: 'Domain' } },\r\n { path: \"grade\", component: GradesComponent, data: { title: 'Grade' } },\r\n { path: \"roletype\", component: RoleTypeComponent, data: { title: 'Role Type' } },\r\n { path: \"internalbillingrole\", component: InternalBillingRolesComponent, data: { title: 'Internal Billing Role' } },\r\n { path: \"keyfunction\", component: KeyFunctionComponent, data: { title: 'Key Function' } },\r\n { path: \"mapassociateid\", component: MapAssociateIdComponent, data: { title: 'Map Associate ID' } },\r\n { path: \"notificationconfiguration\", component: NotificationConfigurationComponent, data: { title: 'Notification Configuration' } },\r\n { path: \"notificationtype\", component: NotificationTypesComponent, data: { title: 'Notification Type' } },\r\n { path: \"practicearea\", component: PracticeAreaComponent, data: { title: 'Practice Area' } },\r\n { path: \"projecttype\", component: ProjectTypeComponent, data: { title: 'Project Type' } },\r\n { path: \"proficiencylevel\", component: ProficiencyLevelComponent, data: { title: 'Proficiency Level' } },\r\n { path: \"rolelist\", component: RolesTableComponent, data: { title: 'Roles' } },\r\n { path: \"addrole\", component: RolesComponent, data: { title: 'Add Role' } },\r\n { path: \"skillgroup\", component: SkillGroupComponent, data: { title: 'Skill Group' } },\r\n { path: \"skills\", component: SkillsComponent, data: { title: 'Skills' } },\r\n { path: \"seniority\", component: SeniorityComponent, data: { title: 'Seniority' } },\r\n { path: \"speciality\", component: SpecialityComponent, data: { title: 'Speciality' } },\r\n { path: \"employeestatus\", component: UpdateEmployeeStatusComponent, data: { title: 'Deactivate Employee' } },\r\n { path: \"workstation\", component: WorkstationComponent, data: { title: 'Workstation' } },\r\n { path: \"categorymaster\", component: CategoryComponent, data: { title: 'Category Master' } },\r\n { path: \"servicetype\", component: ServiceTypeComponent, data: { title: 'Service Type' } },\r\n ]\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class AdminRoutingModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\nimport { AdminRoutingModule } from './admin-routing.module';\r\nimport { AdminComponent } from './components/admin/admin.component';\r\nimport { AssignMenusComponent } from './components/assign-menus/assign-menus.component';\r\nimport { AllAngularMaterialModule } from '../plugins/all-angular-material/all-angular-material.module';\r\nimport { AssignUserRolesComponent } from './components/assign-user-roles/assign-user-roles.component';\r\nimport { ClientBillingRolesComponent } from './components/client-billing-roles/client-billing-roles.component';\r\nimport { ClientsComponent } from './components/clients/clients.component';\r\nimport { CompetencyAreaComponent } from './components/competency-area/competency-area.component';\r\nimport { DepartmentsComponent } from './components/departments/departments.component';\r\nimport { DepartmentTypeComponent } from './components/department-type/department-type.component';\r\nimport { DesignationsComponent } from './components/designations/designations.component';\r\nimport { DomainComponent } from './components/domain/domain.component';\r\nimport { GradesComponent } from './components/grades/grades.component';\r\nimport { RoleTypeComponent } from './components/role-type/role-type.component';\r\nimport { InternalBillingRolesComponent } from './components/internal-billing-roles/internal-billing-roles.component';\r\nimport { KeyFunctionComponent } from './components/key-function/key-function.component';\r\nimport { MapAssociateIdComponent } from './components/map-associate-id/map-associate-id.component';\r\nimport { NotificationConfigurationComponent } from './components/notification-configuration/notification-configuration.component';\r\nimport { NotificationTypesComponent } from './components/notification-types/notification-types.component';\r\nimport { PracticeAreaComponent } from './components/practice-area/practice-area.component';\r\nimport { ProjectTypeComponent } from './components/project-type/project-type.component';\r\nimport { ProficiencyLevelComponent } from './components/proficiency-level/proficiency-level.component';\r\nimport { RolesTableComponent } from './components/roles-table/roles-table.component';\r\nimport { RolesComponent } from './components/roles/roles.component';\r\nimport { SkillGroupComponent } from './components/skill-group/skill-group.component';\r\nimport { SkillsComponent } from './components/skills/skills.component';\r\nimport { SeniorityComponent } from './components/seniority/seniority.component';\r\nimport { SpecialityComponent } from './components/speciality/speciality.component';\r\nimport { UpdateEmployeeStatusComponent } from './components/update-employee-status/update-employee-status.component';\r\nimport { WorkstationComponent } from './components/workstation/workstation.component';\r\nimport { CategoryComponent } from './components/category/category.component';\r\n\r\nimport { AngularEditorModule } from '@kolkov/angular-editor';\r\nimport { ServiceTypeComponent } from './components/service-type/service-type.component';\r\nimport { ValidationsDirectiveModule } from 'src/app/validations.directive';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { GradesValidationsDirectiveModule } from 'src/app/grades-validations.directive';\r\nimport { PracticeAreaValidationsDirectiveModule } from 'src/app/practice-area-validations.directive';\r\nimport { DropDownSuggestionDirectiveModule } from 'src/app/drop-down-suggestion.directive';\r\nimport { RequirematchDirectiveModule } from 'src/app/requirematch.directive'\r\nimport { EmptySpacesValidationsDirectiveModule } from 'src/app/empty-spaces-validations.directive';\r\nimport { ValidationImpSpecialCharsDirectiveModule } from 'src/app/validation-imp-special-chars.directive';\r\nimport { NgxSpinnerModule } from 'ngx-spinner';\r\n\r\n@NgModule({\r\n declarations: [AssignMenusComponent, AssignUserRolesComponent, ClientBillingRolesComponent, ClientsComponent, CompetencyAreaComponent, DepartmentsComponent, DepartmentTypeComponent, DesignationsComponent, DomainComponent, GradesComponent, RoleTypeComponent, InternalBillingRolesComponent, KeyFunctionComponent, MapAssociateIdComponent, NotificationConfigurationComponent, NotificationTypesComponent, PracticeAreaComponent, ProjectTypeComponent, ProficiencyLevelComponent, RolesTableComponent, RolesComponent, SkillGroupComponent, SkillsComponent, SeniorityComponent, SpecialityComponent, UpdateEmployeeStatusComponent, WorkstationComponent, CategoryComponent, AdminComponent, ServiceTypeComponent],\r\n imports: [\r\n CommonModule,\r\n AdminRoutingModule,\r\n AllAngularMaterialModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n AngularEditorModule,\r\n ValidationsDirectiveModule,\r\n GradesValidationsDirectiveModule,\r\n PracticeAreaValidationsDirectiveModule,\r\n EmptySpacesValidationsDirectiveModule,\r\n ValidationImpSpecialCharsDirectiveModule,\r\n MatSortModule,\r\n MatProgressSpinnerModule,\r\n DropDownSuggestionDirectiveModule,\r\n RequirematchDirectiveModule,\r\n NgxSpinnerModule\r\n ]\r\n})\r\nexport class AdminModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-admin',\r\n templateUrl: './admin.component.html',\r\n styleUrls: ['./admin.component.scss']\r\n})\r\nexport class AdminComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n \r\n
","import { SelectionModel } from '@angular/cdk/collections';\r\nimport { Component, ComponentFactoryResolver, OnInit, ViewChild } from '@angular/core';\r\nimport { FormControl, FormGroup, FormGroupDirective } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MasterDataService } from 'src/app/core/services/masterdata.service';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { MenuRoles, Menus } from '../../models/menu-roles.model';\r\nimport { AssignmenustoroleService } from '../../services/assignmenustorole.service';\r\n\r\ninterface SelectItem {\r\n value: number;\r\n label: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-assign-menus',\r\n templateUrl: './assign-menus.component.html',\r\n styleUrls: ['./assign-menus.component.scss']\r\n})\r\nexport class AssignMenusComponent implements OnInit {\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n\r\n displayedColumnsAvailableMenu: string[] = ['select', 'availablemenus'];\r\n displayedColumnsSelectedMenu: string[] = ['select', 'selectedmenus'];\r\n\r\n dataSourceAvailableMenus: MatTableDataSource;\r\n selectionAvailableMenus = new SelectionModel(true, []);\r\n\r\n dataSourceSelectedMenus: MatTableDataSource;\r\n selectionSelectedMenus = new SelectionModel(true, []);\r\n changeInMenu: boolean = false;\r\n\r\n assignMenus: FormGroup;\r\n show: boolean = false;\r\n\r\n finalTargetMenu: MenuRoles;\r\n\r\n rolesList: SelectItem[];\r\n RoleId: number;\r\n availableMenus: Menus[] = [];\r\n selectedMenus: Menus[] = [];\r\n\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n\r\n constructor(private _snackBar: MatSnackBar, private _masterDataService: MasterDataService, private _assignMenusToRoleService: AssignmenustoroleService) { }\r\n\r\n ngOnInit(): void {\r\n this.getRolesList();\r\n\r\n this.assignMenus = new FormGroup({\r\n RoleId: new FormControl(null),\r\n });\r\n\r\n\r\n }\r\n\r\n getRolesList(): void {\r\n this._masterDataService.GetRoles().subscribe((res: any[]) => {\r\n this.rolesList = [];\r\n res.forEach(e => {\r\n this.rolesList.push({ label: e.Name, value: e.ID });\r\n });\r\n });\r\n }\r\n\r\n getRoleId(RoleId: number): void {\r\n this.show = true;\r\n\r\n this.RoleId = RoleId;\r\n if (RoleId == null || RoleId == undefined) {\r\n\r\n }\r\n else {\r\n this.getSourceMenusList(RoleId);\r\n this.getTargetMenusList(RoleId);\r\n }\r\n }\r\n\r\n getSourceMenusList(RoleId: number): void {\r\n this._assignMenusToRoleService.getSourceMenus(RoleId).subscribe((menus: Menus[]) => {\r\n this.availableMenus = [];\r\n this.availableMenus = menus;\r\n this.dataSourceAvailableMenus = new MatTableDataSource(this.availableMenus);\r\n\r\n }, (error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000, panelClass: ['error-alert'], horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n });\r\n }\r\n\r\n getTargetMenusList(RoleId: number): void {\r\n this._assignMenusToRoleService.getTargetMenus(RoleId).subscribe((menus: Menus[]) => {\r\n this.selectedMenus = [];\r\n this.selectedMenus = menus;\r\n this.dataSourceSelectedMenus = new MatTableDataSource(this.selectedMenus);\r\n }, (error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000, panelClass: ['error-alert'], horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n });\r\n }\r\n\r\n moveAvailabletoSelected(): void {\r\n\r\n this.selectionAvailableMenus.selected.forEach(item => {\r\n\r\n let index: number = this.availableMenus.findIndex(d => d === item);\r\n\r\n this.selectedMenus.push(this.availableMenus[index]);\r\n this.availableMenus.splice(index, 1);\r\n this.changeInMenu = true;\r\n\r\n });\r\n\r\n\r\n this.selectionAvailableMenus = new SelectionModel(true, []);\r\n this.dataSourceAvailableMenus = new MatTableDataSource(this.availableMenus);\r\n this.dataSourceSelectedMenus = new MatTableDataSource(this.selectedMenus);\r\n\r\n }\r\n\r\n moveSelectedtoAvailable(): void {\r\n this.selectionSelectedMenus.selected.forEach(item => {\r\n let index: number = this.selectedMenus.findIndex(d => d === item);\r\n\r\n this.availableMenus.push(this.selectedMenus[index]);\r\n this.selectedMenus.splice(index, 1);\r\n this.changeInMenu = true;\r\n\r\n });\r\n\r\n this.selectionSelectedMenus = new SelectionModel(true, []);\r\n this.dataSourceSelectedMenus = new MatTableDataSource(this.selectedMenus);\r\n this.dataSourceAvailableMenus = new MatTableDataSource(this.availableMenus);\r\n\r\n }\r\n\r\n /** Whether the number of selected elements matches the total number of rows. */\r\n isAllSelectedAvailable() {\r\n const numSelected = this.selectionAvailableMenus.selected.length;\r\n const numRows = this.dataSourceAvailableMenus.data.length;\r\n return numSelected === numRows;\r\n }\r\n\r\n /** Selects all rows if they are not all selected; otherwise clear selection. */\r\n masterToggleAvailable() {\r\n this.isAllSelectedAvailable() ?\r\n this.selectionAvailableMenus.clear() :\r\n this.dataSourceAvailableMenus.data.forEach(row => this.selectionAvailableMenus.select(row));\r\n\r\n }\r\n\r\n /** Whether the number of selected elements matches the total number of rows. */\r\n isAllSelectedSelected() {\r\n const numSelected = this.selectionSelectedMenus.selected.length;\r\n const numRows = this.dataSourceSelectedMenus.data.length;\r\n return numSelected === numRows;\r\n }\r\n\r\n /** Selects all rows if they are not all selected; otherwise clear selection. */\r\n masterToggleSelected() {\r\n this.isAllSelectedSelected() ?\r\n this.selectionSelectedMenus.clear() :\r\n this.dataSourceSelectedMenus.data.forEach(row => this.selectionSelectedMenus.select(row));\r\n\r\n }\r\n\r\n saveTargetMenus(): void {\r\n this.finalTargetMenu;\r\n this.finalTargetMenu = new MenuRoles();\r\n let MenuList: Menus[] = [];\r\n this.selectedMenus.forEach(menu => {\r\n MenuList.push({ MenuId: menu.MenuId, MenuName: \"\" })\r\n });\r\n this.finalTargetMenu.RoleId = this.RoleId;\r\n this.finalTargetMenu.MenuList = MenuList;\r\n\r\n this._assignMenusToRoleService.addTargetMenuRoles(this.finalTargetMenu).subscribe((response: boolean) => {\r\n if (response == true) {\r\n\r\n this.getTargetMenusList(this.RoleId);\r\n this.getSourceMenusList(this.RoleId);\r\n this._snackBar.open('Menu details saved successfully.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n this.changeInMenu=false;\r\n }\r\n }, error => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n });\r\n }\r\n\r\n\r\n cancel(): void {\r\n this.RoleId = null;\r\n this.show = false;\r\n this.assignMenus.reset();\r\n setTimeout(() => this.formGroupDirective.resetForm(), 0);\r\n this.changeInMenu = false;\r\n }\r\n\r\n applyFilterAvailableMenu(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSourceAvailableMenus.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSourceAvailableMenus = new MatTableDataSource(this.availableMenus);\r\n }\r\n }\r\n\r\n applyFilterSelectedMenu(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSourceSelectedMenus.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSourceSelectedMenus = new MatTableDataSource(this.selectedMenus);\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 Role\r\n \r\n Select Role\r\n \r\n {{role.label}} \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 Available Menus\r\n \r\n
\r\n \r\n Search\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 \r\n \r\n \r\n Select All {{element.MenuName}}
\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 Selected Menus\r\n \r\n \r\n Search\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 \r\n \r\n \r\n \r\n Select All {{element.MenuName}}
\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 { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { AssignUserRolesService } from \"../../services/assign-user-roles.service\";\r\nimport { UserRoles } from \"../../models/userRoles\";\r\nimport { FormGroup, FormControl, Validators, FormGroupDirective } from \"@angular/forms\";\r\nimport { Subscription, Observable } from \"rxjs\";\r\nimport { MasterDataService } from \"../../../../modules/master-layout/services/masterdata.service\";\r\nimport { Role } from \"../../../../modules/master-layout/models/associate-skills.model\";\r\nimport { RoleCompetencySkills, RoleData } from \"../../../../modules/master-layout/models/role.model\";\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatSlideToggleChange } from '@angular/material/slide-toggle';\r\n\r\n@Component({\r\n selector: 'app-assign-user-roles',\r\n templateUrl: './assign-user-roles.component.html',\r\n styleUrls: ['./assign-user-roles.component.scss']\r\n})\r\nexport class AssignUserRolesComponent implements OnInit {\r\n\r\n isCheckedInit = false;\r\n btnLabel = \"Save\";\r\n newRole: FormGroup;\r\n usersList = [];\r\n userNamesList = [];\r\n rolesList = [];\r\n availableRoles: UserRoles[];\r\n selectedUserId: number;\r\n editObj: any;\r\n roleObj: Role;\r\n roleEditObj: any;\r\n userRole: Subscription;\r\n selectedRole: number;\r\n addRoleToUser = false;\r\n formSubmitted = false;\r\n filteredOptionsName: Observable;\r\n filteredOptionsRole: Observable;\r\n assignUserRolesData: UserRoles[];\r\n dataSource: MatTableDataSource;\r\n userRolesList: Subscription;\r\n isRoleFound: UserRoles[];\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n displayedColumns: string[] = ['RoleName', 'Edit'];\r\n searchValue:string;\r\n constructor(\r\n public masterService: MasterDataService,\r\n public assignUserRolesService: AssignUserRolesService, private _snackBar: MatSnackBar, public navService: NavService\r\n ) {\r\n this.roleObj = new Role();\r\n this.userRolesList = this.assignUserRolesService.GetRolesList().subscribe(data => {\r\n this.assignUserRolesData = data;\r\n // this.GetUserNames();\r\n this.GetRolesList();\r\n this.dataSource = new MatTableDataSource(this.assignUserRolesData);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n });\r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n this.applyFilter(responseData);\r\n })\r\n }\r\n\r\n ngOnInit(): void {\r\n this.newRole = new FormGroup({\r\n IsActive: new FormControl(true),\r\n associateName: new FormControl('', [Validators.required]),\r\n RoleId: new FormControl('', [Validators.required])\r\n\r\n });\r\n this.dataSource = new MatTableDataSource();\r\n this.userRole = this.assignUserRolesService.GetUserRole().subscribe(data => {\r\n this.newRole.patchValue(data);\r\n const roleobj = { label: data.RoleName, value: data.RoleId };\r\n this.newRole['value']['RoleId'] = roleobj;\r\n if (data.UserId != null)\r\n this.btnLabel = 'Update';\r\n });\r\n this.filteredOptionsName = this.newRole.controls.associateName.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterName(value))\r\n );\r\n\r\n this.filteredOptionsRole = this.newRole.controls.RoleId.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterRole(value))\r\n );\r\n this.assignUserRolesData = [];\r\n this.userRolesList = this.assignUserRolesService.GetRolesList().subscribe(data => {\r\n this.assignUserRolesData = data;\r\n this.dataSource = new MatTableDataSource(this.assignUserRolesData);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n });\r\n\r\n this.Reset();\r\n }\r\n\r\n clearInput(event : any, fieldName: string){\r\n if (fieldName == 'associateName'){\r\n event.stopPropagation();\r\n this.newRole.get('associateName').reset();\r\n this.newRole.get('RoleId').reset();\r\n this.dataSource = new MatTableDataSource();\r\n this.dataSource.paginator = this.paginator;\r\n this.usersList = [];\r\n this.filteredOptionsName = this.newRole.controls.associateName.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterName(value))\r\n );\r\n }\r\n else if (fieldName == 'RoleId'){\r\n event.stopPropagation();\r\n this.newRole.get('RoleId').reset();\r\n }\r\n }\r\n\r\n\r\n SetEditObj(editObj): void {\r\n this.btnLabel = 'Update'\r\n this.newRole.controls['associateName'].setValue({\r\n label: editObj.UserName,\r\n value: editObj.UserId\r\n });\r\n this.assignUserRolesService.SetUserRole(editObj);\r\n this.newRole.controls['RoleId'].setValue({\r\n label: editObj.RoleName,\r\n value: editObj.RoleId\r\n });\r\n this.newRole.get('RoleId').disable();\r\n this.newRole.controls['IsActive'].setValue(editObj.IsActive);\r\n this.roleEditObj = { label: editObj.RoleName, value: editObj.RoleId };\r\n this.newRole['value']['RoleId'] = this.roleEditObj;\r\n }\r\n\r\n Reset(): void {\r\n this.newRole.get('RoleId').enable();\r\n this.formSubmitted = false;\r\n this.newRole.get('IsActive').patchValue(true);\r\n this.newRole.reset({\r\n IsActive: this.newRole.get('IsActive').value,\r\n });\r\n setTimeout(() => this.formGroupDirective.resetForm({\r\n IsActive: this.newRole.get('IsActive').value,\r\n }), 0);\r\n this.btnLabel = \"Save\";\r\n this.dataSource = new MatTableDataSource();\r\n this.dataSource.paginator = this.paginator;\r\n this.usersList = [];\r\n }\r\n\r\n ResetOnSaveAndUpdate() : void {\r\n this.newRole.get('RoleId').enable();\r\n this.formSubmitted = false;\r\n this.newRole.get('IsActive').patchValue(true);\r\n this.newRole.reset({\r\n IsActive: this.newRole.get('IsActive').value,\r\n associateName: this.newRole.get('associateName').value,\r\n });\r\n setTimeout(() => this.formGroupDirective.resetForm({\r\n IsActive: this.newRole.get('IsActive').value,\r\n associateName: this.newRole.get('associateName').value,\r\n }), 0);\r\n this.btnLabel = \"Save\";\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.assignUserRolesData);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n }\r\n\r\n GetUserById(): void {\r\n var i;\r\n for (i = 0; i < this.userNamesList.length; i++) {\r\n if (this.userNamesList[i].UserId == this.selectedUserId) {\r\n this.editObj = this.userNamesList[i];\r\n return;\r\n }\r\n }\r\n }\r\n\r\n\r\n SaveOrUpdateUserRoles(): void {\r\n this.formSubmitted = true;\r\n if (this.selectedUserId || this.newRole.valid == true) {\r\n if (this.roleEditObj || this.newRole.value.RoleId != undefined) {\r\n this.GetUserById();\r\n if (this.newRole.value.RoleId != undefined) {\r\n this.editObj.RoleId = this.newRole.value.RoleId.value;\r\n this.editObj.IsActive = this.newRole.value.IsActive;\r\n this.roleObj.RoleName = this.newRole.value.RoleId.label;\r\n }\r\n else {\r\n this.editObj.RoleId = this.roleEditObj.value;\r\n this.editObj.IsActive = this.newRole.value.IsActive;\r\n this.roleObj.RoleName = this.roleEditObj.label;\r\n }\r\n\r\n this.editObj.Role = this.roleObj;\r\n this.isRoleFound = this.assignUserRolesData.filter(role => role.RoleName == this.editObj.Role.RoleName);\r\n if (this.newRole.valid) {\r\n if(this.isRoleFound.length > 0 && this.btnLabel == 'Save'){\r\n this._snackBar.open('Role Already Exists', 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.ResetOnSaveAndUpdate();\r\n }\r\n\r\n else{\r\n this.assignUserRolesService\r\n .SaveOrUpdateUserRoles(this.editObj)\r\n .subscribe((res: any) => {\r\n if (res) {\r\n this.assignUserRolesService.GetUserRoles(this.editObj.UserId);\r\n if (this.btnLabel == 'Save') {\r\n this._snackBar.open('Role added successfully.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.ResetOnSaveAndUpdate();\r\n }\r\n\r\n else {\r\n this._snackBar.open('Role updated successfully.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.ResetOnSaveAndUpdate();\r\n }\r\n\r\n }\r\n else {\r\n\r\n this._snackBar.open('Failed to add role', 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n },\r\n (error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\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 isKeydownPressed(e){\r\n if(e.keyCode===17){\r\n return;\r\n }\r\n else if(e.keyCode===8){\r\n this.GetUserNames(e)\r\n }\r\n }\r\n\r\n isKeyPressed(e){\r\n if(e.keyCode!==8){\r\n this.GetUserNames(e)\r\n }\r\n }\r\n\r\n GetUserNames(e): void {\r\n // if(e.type==='paste'){\r\n // let clipboardData = e.clipboardData;\r\n // this.searchValue = clipboardData.getData('text');\r\n // }\r\n \r\n if(this.searchValue==undefined){\r\n this.searchValue = e.key\r\n }else{\r\n if(e.keyCode===8){\r\n this.searchValue = e.target.value.slice(0,-1)\r\n }else{\r\n this.searchValue = e.target.value+e.key;\r\n }\r\n \r\n }\r\n if(this.searchValue.length>=3){\r\n this.assignUserRolesService.GetUserNames(this.searchValue).subscribe((res: any) => {\r\n // this.userNamesList= [];\r\n console.log(res);\r\n this.userNamesList = res;\r\n this.usersList = [];\r\n this.userNamesList.forEach(element => {\r\n this.usersList.push({\r\n label: element.UserName,\r\n value: element.UserId\r\n });\r\n //console.log(this.usersList);\r\n });\r\n this.filteredOptionsName = this.newRole.controls.associateName.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterName(value))\r\n );\r\n //console.log(this.usersList);\r\n });\r\n }else{\r\n this.usersList = [];\r\n this.filteredOptionsName = this.newRole.controls.associateName.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterName(value))\r\n );\r\n }\r\n \r\n }\r\n\r\n GetRolesList(): void {\r\n this.masterService.GetRoles().subscribe((res: any[]) => {\r\n this.rolesList = [];\r\n res.forEach(e => {\r\n this.rolesList.push({ label: e.Name, value: e.ID });\r\n });\r\n });\r\n }\r\n\r\n GetUserRoles(e): void {\r\n this.selectedUserId = this.newRole.get('associateName').value.value;\r\n this.assignUserRolesService.GetUserRoles(this.selectedUserId);\r\n // if (this.selectedUserId != null) {\r\n // this.assignUserRolesService.GetUserRoles(this.selectedUserId);\r\n // }\r\n }\r\n\r\n\r\n EditMode(): boolean {\r\n if (this.btnLabel == 'Update')\r\n return true;\r\n return false;\r\n }\r\n\r\n CheckValue(): boolean {\r\n if (this.newRole.value.RoleId != null)\r\n return false;\r\n return true;\r\n\r\n }\r\n\r\n\r\n\r\n FilterRoles(roleId: number): string {\r\n\r\n var obj = this.rolesList.find((x) => x.value === roleId);\r\n return obj.label;\r\n }\r\n\r\n\r\n private _filterName(value: any) {\r\n let filterValue;\r\n if (value && !value.label && value.length>=3) {\r\n filterValue = value.toLowerCase();\r\n return this.usersList.filter((option) => {\r\n if (option) {\r\n return option.label.toLowerCase().includes(filterValue)\r\n }\r\n }\r\n );\r\n } else {\r\n return this.usersList;\r\n }\r\n }\r\n private _filterRole(value: any) {\r\n let filterValue;\r\n if (value && !value.label) {\r\n filterValue = value;\r\n return this.rolesList.filter((option) => {\r\n if (option) {\r\n return option.label.toLowerCase().includes(filterValue)\r\n }\r\n }\r\n );\r\n } else {\r\n return this.rolesList;\r\n }\r\n }\r\n\r\n\r\n displayFn(user: any) {\r\n return user && user ? user.label : '';\r\n }\r\n displayRolesFn(role: any) {\r\n return role && role ? role.label : '';\r\n }\r\n\r\n getFilteredOptionsName() {\r\n this.filteredOptionsName = this.newRole.controls.associateName.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterName(value))\r\n );\r\n }\r\n\r\n\r\n getFilteredOptionsRole() {\r\n this.filteredOptionsRole = this.newRole.controls.RoleId.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterRole(value))\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 Associate List * \r\n \r\n \r\n \r\n =3&&this.usersList.length===0)\">\r\n No matching value found\r\n \r\n \r\n {{ option.label }}\r\n \r\n \r\n \r\n Associate Name Required\r\n \r\n =3\">\r\n Select Associate Name from given options\r\n \r\n \r\n
\r\n
\r\n \r\n Role List *\r\n \r\n \r\n \r\n \r\n No matching value found\r\n \r\n \r\n {{ option.label }}\r\n \r\n \r\n \r\n Role Required\r\n \r\n \r\n Select Role from given options\r\n \r\n \r\n
\r\n
\r\n Is Active\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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Role Name {{element.RoleName}} Edit \r\n edit\r\n
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-category',\r\n templateUrl: './category.component.html',\r\n styleUrls: ['./category.component.scss']\r\n})\r\nexport class CategoryComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","

category works!

\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-client-billing-roles',\r\n templateUrl: './client-billing-roles.component.html',\r\n styleUrls: ['./client-billing-roles.component.scss']\r\n})\r\nexport class ClientBillingRolesComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","

client-billing-roles works!

\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport {\r\n FormGroup,\r\n FormControl,\r\n Validators,\r\n FormGroupDirective,\r\n} from '@angular/forms';\r\nimport { Client } from '../../models/client.model';\r\nimport { ClientService } from '../../services/client.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { CommonService } from '../../../../core/services/common.service';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\n\r\n@Component({\r\n selector: 'app-clients',\r\n templateUrl: './clients.component.html',\r\n styleUrls: ['./clients.component.scss'],\r\n})\r\nexport class ClientsComponent implements OnInit {\r\n addClient: FormGroup;\r\n btnLabel: string = '';\r\n isEdit: boolean = false;\r\n formSubmitted = false;\r\n clients: Subscription;\r\n clientsData: Client[];\r\n clientsList: Subscription;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n displayedColumns: string[] = [\r\n 'ClientCode',\r\n 'ClientName',\r\n 'ClientRegisterName',\r\n 'Edit',\r\n ];\r\n\r\n dataSource: MatTableDataSource;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n constructor(\r\n private _clientService: ClientService,\r\n private commonService: CommonService,\r\n private _snackBar: MatSnackBar,\r\n public navService: NavService\r\n ) {\r\n this.clientsData = [];\r\n this.clientsList = this._clientService\r\n .GetClientsList()\r\n .subscribe((data: Client[]) => {\r\n this.clientsData = data;\r\n this.dataSource = new MatTableDataSource(this.clientsData);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n });\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.addClient = new FormGroup({\r\n ClientCode: new FormControl(null, [\r\n Validators.required,\r\n Validators.pattern('[cC][0-9]*'),\r\n Validators.maxLength(6),\r\n ]),\r\n ClientName: new FormControl(null, [\r\n Validators.required,\r\n Validators.minLength(2),\r\n Validators.maxLength(50),\r\n ]),\r\n ClientRegisterName: new FormControl(null, [\r\n Validators.minLength(2),\r\n Validators.maxLength(150),\r\n ]),\r\n IsActive: new FormControl(null)\r\n });\r\n\r\n this.clients = this._clientService.GetClients().subscribe((data) => {\r\n if (this._clientService.editMode == true) {\r\n this.isEdit = this._clientService.editMode;\r\n this.addClient.patchValue(data);\r\n this.btnLabel = 'UPDATE';\r\n\r\n }\r\n });\r\n this.btnLabel = 'SAVE';\r\n this.cancel();\r\n this.getClients();\r\n\r\n }\r\n getClients(): void {\r\n this._clientService.getClients();\r\n }\r\n\r\n editClients(clientsData: Client): void {\r\n this._clientService.editMode = true;\r\n this._clientService.SetClientsData(clientsData);\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.clientsData);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n }\r\n\r\n cancel(): void {\r\n this.formSubmitted = false;\r\n this.addClient.reset();\r\n setTimeout(() => this.formGroupDirective.resetForm(), 0);\r\n this._clientService.editMode = false;\r\n this.btnLabel = 'SAVE';\r\n this.addClient.controls['ClientCode'].enable();\r\n this.isEdit = false;\r\n }\r\n\r\n validate_clientCode(event: any) {\r\n let k: number;\r\n k = event.charCode; // k = event.keyCode; (Both can be used)\r\n return (\r\n (k > 64 && k < 91) || (k > 47 && k < 58) || (k > 96 && k < 123) || k == 8 || k == 32\r\n );\r\n }\r\n\r\n validate_clientName(event: any) {\r\n let k: number;\r\n k = event.charCode; // k = event.keyCode; (Both can be used)\r\n return (\r\n (k > 64 && k < 91) ||\r\n (k > 47 && k < 58) ||\r\n (k > 96 && k < 123) ||\r\n k == 8 ||\r\n k == 32\r\n );\r\n }\r\n\r\n validate_clientRegisterName(event: any) {\r\n let k: number;\r\n k = event.charCode; // k = event.keyCode; (Both can be used)\r\n return (\r\n (k > 64 && k < 91) ||\r\n (k > 47 && k < 58) ||\r\n (k > 96 && k < 123) ||\r\n k == 8 ||\r\n k == 32 ||\r\n k == 44 ||\r\n k == 46\r\n );\r\n }\r\n\r\n addClients(): void {\r\n this.formSubmitted = true;\r\n if (this.addClient.value.IsActive != false) {\r\n this.addClient.value.IsActive = true;\r\n }\r\n var clients = new Client();\r\n clients.ClientCode = this.addClient.value.ClientCode;\r\n clients.ClientName = this.addClient.value.ClientName;\r\n clients.ClientRegisterName = this.addClient.value.ClientRegisterName;\r\n clients.IsActive = this.addClient.value.IsActive;\r\n\r\n if (this._clientService.editMode == true) {\r\n clients.ClientId = this._clientService.clients.value.ClientId;\r\n clients.ClientCode = this.addClient.value.ClientCode;\r\n }\r\n if (this.addClient.valid == true) {\r\n this._clientService.createClients(clients).subscribe(\r\n (res: number) => {\r\n if (res) {\r\n this._clientService.getClients();\r\n if (this._clientService.editMode == false) {\r\n this._snackBar.open('Client record added successfully.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.cancel();\r\n }\r\n else if (this._clientService.editMode == true) {\r\n this._snackBar.open('Client record updated successfully.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.cancel();\r\n }\r\n }\r\n },\r\n (error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\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 Client Code *\r\n \r\n \r\n Client Code Required\r\n \r\n \r\n Only 6 characters are allowed.\r\n \r\n \r\n Client Code should be in pattern 'c#####'\r\n \r\n \r\n
\r\n
\r\n \r\n Client Name *\r\n \r\n \r\n Client Name Required\r\n \r\n \r\n Only 50 characters.\r\n \r\n Enter atleast 2 characters\r\n \r\n
\r\n
\r\n \r\n Client Register Name\r\n \r\n \r\n Enter atleast 2 characters\r\n \r\n \r\n Only 150 characters.\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 \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 \r\n \r\n \r\n \r\n \r\n
Client Code {{client.ClientCode}} Client Name {{client.ClientName}} Client Register Name {{client.ClientRegisterName}} Edit \r\n edit\r\n
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport {\r\n FormGroup,\r\n FormControl,\r\n Validators,\r\n FormGroupDirective,\r\n} from '@angular/forms';\r\nimport { CompetencyArea } from '../../models/competencyarea.model';\r\nimport { CompetencyAreaService } from '../../services/competency-area.service';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\n\r\n@Component({\r\n selector: 'app-competency-area',\r\n templateUrl: './competency-area.component.html',\r\n styleUrls: ['./competency-area.component.scss'],\r\n})\r\nexport class CompetencyAreaComponent implements OnInit {\r\n displayedColumns: string[] = [\r\n 'CompetencyAreaCode',\r\n 'CompetencyAreaDescription',\r\n 'Edit',\r\n ];\r\n dataSource: MatTableDataSource;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n constructor(\r\n private serviceObj: CompetencyAreaService,\r\n private _snackBar: MatSnackBar,\r\n public navService: NavService\r\n ) {\r\n this.serviceObj.competencyAreaData.subscribe((data) => {\r\n this.competencyAreaData = data;\r\n this.dataSource = new MatTableDataSource(this.competencyAreaData);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n });\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n res: any;\r\n formSubmitted = false;\r\n btnLabel = '';\r\n addCompetencyArea: FormGroup;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n competencyAreaData: CompetencyArea[];\r\n\r\n ngOnInit(): void {\r\n this.addCompetencyArea = new FormGroup({\r\n CompetencyAreaCode: new FormControl(null, [Validators.required]),\r\n CompetencyAreaDescription: new FormControl(null, [Validators.required]),\r\n });\r\n\r\n this.serviceObj.editObj.subscribe((data) => {\r\n if (this.serviceObj.editMode == true) {\r\n this.addCompetencyArea.patchValue(data);\r\n this.addCompetencyArea.get('CompetencyAreaCode').disable();\r\n this.btnLabel = 'Update';\r\n }\r\n });\r\n this.btnLabel = 'Save';\r\n this.addCompetencyArea.get('CompetencyAreaCode').enable();\r\n this.Reset();\r\n this.res = this.serviceObj.GetCompetencyAreaData();\r\n }\r\n\r\n Reset() {\r\n this.formSubmitted = false;\r\n this.addCompetencyArea.reset();\r\n setTimeout(() => this.formGroupDirective.resetForm(), 0);\r\n this.serviceObj.editMode = false;\r\n this.addCompetencyArea.get('CompetencyAreaCode').enable();\r\n this.btnLabel = 'Save';\r\n this.res = this.serviceObj.GetCompetencyAreaData();\r\n }\r\n CreateCompetencyArea() {\r\n this.formSubmitted = true;\r\n var createObj = new CompetencyArea();\r\n createObj.CompetencyAreaCode = this.addCompetencyArea.value.CompetencyAreaCode;\r\n createObj.CompetencyAreaDescription = this.addCompetencyArea.value.CompetencyAreaDescription;\r\n if (this.serviceObj.editMode == true) {\r\n createObj.CompetencyAreaId = this.serviceObj.editObj.value.CompetencyAreaId;\r\n createObj.CompetencyAreaCode = this.addCompetencyArea.getRawValue().CompetencyAreaCode;\r\n createObj.CompetencyAreaDescription = this.addCompetencyArea.value.CompetencyAreaDescription;\r\n createObj.IsActive = this.serviceObj.editObj.value.IsActive;\r\n this.serviceObj.GetCompetencyAreaData();\r\n }\r\n if (this.addCompetencyArea.valid == true) {\r\n this.serviceObj.CreateCompetencyArea(createObj).subscribe(\r\n (res) => {\r\n if (res) {\r\n if (this.serviceObj.editMode == false) {\r\n this._snackBar.open(\r\n 'Competency area record added successfully.',\r\n 'x',\r\n {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n this.Reset();\r\n } else if (this.serviceObj.editMode == true) {\r\n this.serviceObj.GetCompetencyAreaData();\r\n this._snackBar.open(\r\n 'Competency area record updated successfully.',\r\n 'x',\r\n {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n this.Reset();\r\n }\r\n } else {\r\n this.Reset();\r\n this._snackBar.open('Unable to add competency', 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n \r\n }\r\n },\r\n (error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n }\r\n\r\n setEditObj(editObj) {\r\n this.serviceObj.editMode = true;\r\n // this.onDisable();\r\n this.serviceObj.editObj.next(editObj);\r\n }\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.competencyAreaData);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n }\r\n // onDisable()\r\n // { if(this.serviceObj.editMode==true)\r\n // return true;\r\n\r\n // }\r\n}\r\n","\r\n \r\n
\r\n
\r\n \r\n Competency Area Code *\r\n \r\n \r\n Competency\r\n Area Code required\r\n \r\n \r\n
\r\n
\r\n \r\n Competency Area Description *\r\n \r\n \r\n Competency\r\n Area Description required\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 \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 Competency Area Code\r\n \r\n {{ element.CompetencyAreaCode }}\r\n \r\n Competency Area Description\r\n \r\n {{ element.CompetencyAreaDescription }}\r\n \r\n Edit\r\n \r\n edit\r\n
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-department-type',\r\n templateUrl: './department-type.component.html',\r\n styleUrls: ['./department-type.component.scss']\r\n})\r\nexport class DepartmentTypeComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","

department-type works!

\r\n","import { AfterViewInit, Component, ViewChild, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Department } from '../../models/department.model';\r\nimport { GenericType } from '../../../master-layout/models/dropdowntype.model';\r\nimport {\r\n MatSnackBar,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition,\r\n} from '@angular/material/snack-bar';\r\nimport { Observable } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { DepartmentService } from '../../services/department.service';\r\nimport { MasterDataService } from '../../../../core/services/masterdata.service';\r\nimport { FormGroup, FormControl, Validators, ValidationErrors, FormGroupDirective } from '@angular/forms';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { EmployeeData } from '../../models/employee.model';\r\nimport { EmployeeStatusService } from '../../services/employeestatus.service';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { CommonService } from 'src/app/core/services/common.service';\r\n\r\n@Component({\r\n selector: 'app-departments',\r\n templateUrl: './departments.component.html',\r\n styleUrls: ['./departments.component.scss'],\r\n providers: [EmployeeStatusService],\r\n})\r\nexport class DepartmentsComponent implements OnInit {\r\n empData: EmployeeData;\r\n themeappeareance = themeconfig.formfieldappearances;\r\n filteredOptionsName: Observable;\r\n addDepartment: FormGroup;\r\n filteredAssociateIds: GenericType[] = [];\r\n formSubmitted: boolean = false;\r\n btnLabel = '';\r\n isEdit: boolean = false;\r\n delivery: boolean = true;\r\n editObj;\r\n Department: Department[];\r\n selectedDepartment: Department;\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n resources = servicePath.API.PagingConfigValue;\r\n dataSource = new MatTableDataSource();\r\n usersList = [];\r\n pattern:\"^(?:[A-Za-z0-9]+)(?:[A-Za-z0-9 ]*)$\";\r\n\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n cols = [\r\n { field: 'DepartmentCode', header: 'Department Code' },\r\n { field: 'Description', header: 'Department Name' },\r\n { field: 'DepartmentTypeDescription', header: 'Department Type' },\r\n { field: 'DepartmentHeadName', header: 'Department Head' },\r\n ];\r\n displayedColumns: string[] = [\r\n 'DepartmentCode',\r\n 'Description',\r\n 'DepartmentTypeDescription',\r\n 'DepartmentHeadName',\r\n 'Edit',\r\n ];\r\n columnsToDisplay: string[] = this.displayedColumns.slice();\r\n\r\n drop(event: CdkDragDrop) {\r\n moveItemInArray(\r\n this.displayedColumns,\r\n event.previousIndex,\r\n event.currentIndex\r\n );\r\n }\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.dataSource.data);\r\n }\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n\r\n constructor(\r\n private _router: Router,\r\n private _departmentService: DepartmentService,\r\n private _masterDataService: MasterDataService,\r\n private service: EmployeeStatusService,\r\n private _snackBar: MatSnackBar,\r\n public navService: NavService,\r\n public commonService:CommonService\r\n ) {\r\n this.getUsersList();\r\n this._departmentService.Department.subscribe((data) => {\r\n if (data != null) {\r\n this.dataSource.data = data;\r\n this.dataSource.data.forEach((department) => {\r\n department.DepartmentTypeDescription =\r\n department['DepartmentType']['DepartmentTypeDescription'];\r\n });\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n });\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.getUsersList();\r\n this.addDepartment = new FormGroup({\r\n DepartmentCode: new FormControl(null, [Validators.required]),\r\n Description: new FormControl(null, [Validators.required]),\r\n DepartmentHead: new FormControl(null),\r\n IsDelivery: new FormControl(true),\r\n });\r\n\r\n if (this.isEdit == false) {\r\n this.getDepartmentDetails();\r\n }\r\n this._departmentService.departmentsEdit.subscribe((data) => {\r\n if (this._departmentService.editMode == true) {\r\n this.btnLabel = 'Update';\r\n this.isEdit = this._departmentService.editMode;\r\n\r\n if (this.isEdit == true) {\r\n if (data.DepartmentTypeId == 1) {\r\n this.delivery = true;\r\n } else {\r\n this.delivery = false;\r\n }\r\n this.addDepartment.patchValue({\r\n DepartmentCode: data.DepartmentCode,\r\n Description: data.Description,\r\n IsDelivery: this.delivery,\r\n DepartmentHead: data.DepartmentHeadName,\r\n });\r\n }\r\n }\r\n });\r\n this.btnLabel = 'Save';\r\n\r\n this.filteredOptionsName = this.addDepartment.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterName(value))\r\n );\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n }\r\n\r\n CreateDepartment() {\r\n this.formSubmitted = true;\r\n this.addDepartment.markAllAsTouched();\r\n var department = new Department();\r\n if(this.addDepartment.valid == true){\r\n department.DepartmentCode = this.addDepartment.value.DepartmentCode;\r\n department.Description = this.addDepartment.value.Description;\r\n department.DepartmentTypeId = this.addDepartment.value.IsDelivery;\r\n if (this.addDepartment.value.DepartmentHead != null) {\r\n department.DepartmentHeadId = this.addDepartment.value.DepartmentHead[\r\n 'value'\r\n ];\r\n department.DepartmentHeadName = this.addDepartment.value.DepartmentHead[\r\n 'label'\r\n ];\r\n } else {\r\n department.DepartmentHeadId = null;\r\n department.DepartmentHeadName = null;\r\n }\r\n\r\n if (this.addDepartment.value.IsDelivery == true) {\r\n department.DepartmentTypeId = 1;\r\n } else {\r\n department.DepartmentTypeId = 2;\r\n }\r\n if (this._departmentService.editMode == true) {\r\n department.DepartmentId = this._departmentService.departmentsEdit.value.DepartmentId;\r\n }\r\n if (this.addDepartment.valid == true) {\r\n this._departmentService.CreateDepartment(department).subscribe(\r\n (res: number) => {\r\n if (res) {\r\n this._departmentService.getDepartmentDetails();\r\n if (this._departmentService.editMode == false) {\r\n this._snackBar.open(\r\n 'Department record added successfully.',\r\n 'x',\r\n {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n this.cancel();\r\n }\r\n else if (this._departmentService.editMode == true)\r\n this._snackBar.open(\r\n 'Department record Updated successfully.',\r\n 'x',\r\n {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n this.cancel();\r\n } else {\r\n this._snackBar.open('Department cannot be added.', 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.cancel();\r\n }\r\n },\r\n (objError) => {\r\n var sMessage =\"Server error.\";\r\n\r\n var vDeptNameExists = \"Department Name already exists\";\r\n var vDeptCodeExists =\"Department code already exists\";\r\n\r\n if(objError.error== vDeptNameExists || objError.error== vDeptCodeExists )\r\n {\r\n sMessage = objError.error;\r\n }\r\n this._snackBar.open(sMessage, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n }\r\n }\r\n\r\n clearField() {\r\n this.addDepartment.controls.DepartmentHead.setValue('');\r\n }\r\n\r\n onUserChange(event: any, empID: any) {\r\n const selectedUserId = this.addDepartment.get('DepartmentHead').value.value;\r\n this.empData.EmpId = selectedUserId;\r\n if (empID !== undefined && selectedUserId !== undefined) {\r\n let empName = '';\r\n this.usersList.forEach((e) => {\r\n if (e.value === selectedUserId) {\r\n empName = e.label;\r\n }\r\n });\r\n }\r\n }\r\n displayFn(user: any) {\r\n return user && user.label ? user.label : '';\r\n }\r\n\r\n private _filterName(value): any {\r\n let filterValue;\r\n if (value && value.DepartmentHead) {\r\n filterValue = value.DepartmentHead;\r\n return this.usersList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.usersList;\r\n }\r\n }\r\n\r\n omit_special_char(event: any) {\r\n let k: number;\r\n k = event.charCode;\r\n return (\r\n (k > 64 && k < 91) ||\r\n (k > 96 && k < 123) ||\r\n k == 8 ||\r\n k == 32 ||\r\n k == 38 ||\r\n k == 44 ||\r\n k == 45\r\n );\r\n }\r\n\r\n cancel() {\r\n this.addDepartment.reset();\r\n this.formGroupDirective.resetForm();\r\n this._departmentService.editMode = false;\r\n this.btnLabel = 'Save';\r\n this.isEdit = false;\r\n this.formSubmitted = false;\r\n }\r\n\r\n getUsersList() {\r\n this.service.GetAssociateNames().subscribe((res: any[]) => {\r\n let dataList: any[] = res;\r\n this.usersList = [];\r\n // this.usersList.push({ label: 'Select Department Head', value: null });\r\n dataList.forEach((e) => {\r\n this.usersList.push({ label: e.EmpName, value: e.EmpId });\r\n });\r\n this.filteredOptionsName = this.addDepartment.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterName(value))\r\n );\r\n });\r\n }\r\n\r\n getDepartmentDetails() {\r\n this._departmentService.getDepartmentDetails();\r\n }\r\n\r\n editDepartments(departmentData) {\r\n this._departmentService.editMode = true;\r\n this._departmentService.departmentsEdit.next(departmentData);\r\n this.addDepartment.controls['DepartmentHead'].setValue({\r\n label: departmentData.DepartmentHeadName,\r\n value: departmentData.DepartmentHeadId,\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n \r\n Department Code *\r\n \r\n \r\n Department Code Required\r\n \r\n\r\n \r\n
\r\n
\r\n \r\n Department Name *\r\n \r\n \r\n Department Name Required\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Department Head\r\n \r\n \r\n \r\n No matching value found\r\n \r\n {{ option.label }}\r\n \r\n \r\n \r\n Select Department from given options\r\n \r\n\r\n \r\n
\r\n
\r\n Delivery\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\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\r\n \r\n \r\n
\r\n Department Code\r\n \r\n {{ element.DepartmentCode }}\r\n \r\n Department Name\r\n \r\n {{ element.Description }}\r\n \r\n Department Type\r\n \r\n {{ element.DepartmentTypeDescription }}\r\n \r\n Department Head\r\n \r\n {{ element.DepartmentHeadName }}\r\n \r\n Edit\r\n \r\n edit\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { Designation } from '../../models/designation.model';\r\nimport { DesignationsService } from '../../services/designations.service';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { FormGroup, ValidationErrors } from '@angular/forms';\r\nimport { FormControl } from '@angular/forms';\r\nimport { Validators } from '@angular/forms';\r\nimport { DesignationData } from '../../models/designation.model';\r\nimport { Grade } from '../../models/grade.model';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\n\r\nexport interface GradeCode {\r\n label: string;\r\n value: number;\r\n}\r\n\r\nimport {\r\n MatSnackBar,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition,\r\n} from '@angular/material/snack-bar';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\n\r\n@Component({\r\n selector: 'app-designations',\r\n templateUrl: './designations.component.html',\r\n styleUrls: ['./designations.component.scss'],\r\n})\r\nexport class DesignationsComponent implements OnInit {\r\n themeappeareance = themeconfig.formfieldappearances;\r\n\r\n addDesignation: FormGroup;\r\n btnLabel = '';\r\n formSubmitted = false;\r\n GradeCodeMasterData = [];\r\n options: GradeCode[] = [];\r\n gradeData: DesignationData;\r\n\r\n designationList: Designation[];\r\n list: any;\r\n selectedDesignation: Designation;\r\n resources = servicePath.API.PagingConfigValue;\r\n displayedColumns: string[] = [\r\n 'GradeCode',\r\n 'DesignationCode',\r\n 'DesignationName',\r\n 'Edit',\r\n ];\r\n filteredOptionsGrade: Observable;\r\n\r\n columnsToDisplay: string[] = this.displayedColumns.slice();\r\n dataSource = new MatTableDataSource();\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n constructor(\r\n private _designationService: DesignationsService,\r\n private _snackBar: MatSnackBar,\r\n public navService: NavService\r\n ) {\r\n this.GetGradesData();\r\n this._designationService.designationData.subscribe((data) => {\r\n data.forEach(function (value) {\r\n if (value.Grade != null) value.GradeCode = value.Grade.GradeCode;\r\n else value.GradeCode = '';\r\n });\r\n this.dataSource.data = data;\r\n this.designationList = data;\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n });\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.options = this.GradeCodeMasterData;\r\n this.btnLabel = 'Save';\r\n\r\n this.addDesignation = new FormGroup({\r\n GradeId: new FormControl('', [Validators.required]),\r\n DesignationCode: new FormControl('', [Validators.required]),\r\n DesignationName: new FormControl('', [Validators.required])\r\n });\r\n this._designationService.editObj.subscribe((data) => {\r\n if (this._designationService.editMode == true) {\r\n this.btnLabel = 'Update';\r\n this.addDesignation.patchValue(data);\r\n }\r\n });\r\n this.Reset();\r\n\r\n this._designationService.getDesignation();\r\n }\r\n\r\n onGradeChange(event: any, gradeID: any) {\r\n const selectedUserId = this.addDesignation.get('GradeId').value.value;\r\n this.gradeData.GradeId = selectedUserId;\r\n if (gradeID !== undefined && selectedUserId !== undefined) {\r\n let gradeName = '';\r\n this.GradeCodeMasterData.forEach((e) => {\r\n if (e.value === selectedUserId) {\r\n gradeName = e.label;\r\n }\r\n });\r\n this.options = this.GradeCodeMasterData;\r\n event.option.value = '';\r\n }\r\n }\r\n setEditObj(editObj) {\r\n this._designationService.editMode = true;\r\n this._designationService.editObj.next(editObj);\r\n this.addDesignation.controls['GradeId'].setValue({\r\n label: editObj.GradeCode,\r\n value: editObj.GradeId,\r\n });\r\n }\r\n GetGradesData() {\r\n this._designationService.getGradesData().subscribe((res: Grade[]) => {\r\n res.forEach((element) => {\r\n this.GradeCodeMasterData.push({\r\n label: element.GradeCode,\r\n value: element.GradeId,\r\n });\r\n this.filteredOptionsGrade = this.addDesignation\r\n .get('GradeId')\r\n .valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterGrade(value))\r\n );\r\n });\r\n this.options = this.GradeCodeMasterData;\r\n });\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.designationList);\r\n }\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n\r\n CreateDesignation() {\r\n this.formSubmitted = true;\r\n this.addDesignation.markAllAsTouched();\r\n if (this.addDesignation.valid == true) {\r\n var creatingObj = new DesignationData();\r\n creatingObj.DesignationCode = this.addDesignation.value.DesignationCode;\r\n creatingObj.DesignationName = this.addDesignation.value.DesignationName;\r\n creatingObj.GradeId = this.addDesignation.value.GradeId['value'];\r\n }\r\n if (this._designationService.editMode == true) {\r\n creatingObj.DesignationId = this._designationService.editObj.value.DesignationId;\r\n creatingObj.IsActive = this._designationService.editObj.value.IsActive;\r\n }\r\n\r\n if (this.addDesignation.valid == true) {\r\n if (this._designationService.editMode == false) {\r\n this._designationService.createDesignation(creatingObj).subscribe(\r\n (response) => {\r\n if (response != null) {\r\n this._designationService.getDesignation();\r\n if (this._designationService.editMode == false)\r\n this._snackBar.open(\r\n 'Designation record added successfully.',\r\n 'x',\r\n {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n this.Reset();\r\n }\r\n },\r\n (error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n } else {\r\n this._designationService.editDesignation(creatingObj).subscribe(\r\n (response) => {\r\n if (response != null) {\r\n this._designationService.getDesignation();\r\n this._snackBar.open(\r\n 'Designation record updated successfully.',\r\n 'x',\r\n {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n this.Reset();\r\n }\r\n },\r\n (error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n }\r\n }\r\n\r\n Reset() {\r\n this.formSubmitted = false;\r\n this.addDesignation.reset();\r\n this.btnLabel = 'Save';\r\n this._designationService.editMode = false;\r\n }\r\n private _filterGrade(value): any {\r\n let filterValue;\r\n if (typeof value === 'string') {\r\n filterValue = value.toLowerCase();\r\n }\r\n else {\r\n return this.GradeCodeMasterData;\r\n }\r\n\r\n return this.GradeCodeMasterData.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n }\r\n displayFn(grade: GradeCode): string {\r\n return grade && grade.label ? grade.label : '';\r\n }\r\n getlabel(labelId) {\r\n return this.GradeCodeMasterData.find((grade) => grade.value === labelId)\r\n .title;\r\n }\r\n clearField() {\r\n this.addDesignation.controls.GradeId.setValue('');\r\n }\r\n\r\n\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n \r\n Grade Code *\r\n \r\n \r\n \r\n {{ option.label }}\r\n \r\n \r\n\r\n \r\n Grade Code Required\r\n \r\n \r\n Select Grade from given options\r\n \r\n \r\n
\r\n
\r\n \r\n Designation Code *\r\n \r\n \r\n Designation Code Required\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Designation Name *\r\n \r\n \r\n Designation Name Required\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 \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 Grade Code\r\n \r\n {{ element.GradeCode }}\r\n \r\n Designation Code\r\n \r\n {{ element.DesignationCode }}\r\n \r\n Designation Name\r\n \r\n {{ element.DesignationName }}\r\n \r\n Edit\r\n \r\n edit\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport {\r\n FormGroup,\r\n FormControl,\r\n Validators,\r\n FormGroupDirective,\r\n} from '@angular/forms';\r\nimport { DomainMasterData } from '../../models/domainmasterdata.model';\r\nimport { DomainMasterService } from '../../services/domainmaster.service';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\n// import {themeconfig} from 'themeconfig';\r\n\r\n@Component({\r\n selector: 'app-domain',\r\n templateUrl: './domain.component.html',\r\n styleUrls: ['./domain.component.scss'],\r\n})\r\nexport class DomainComponent implements OnInit {\r\n addDomainName: FormGroup;\r\n\r\n domainsList: DomainMasterData[];\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n formSubmitted = false;\r\n btnLabel: string = '';\r\n displayedColumns: string[] = ['DomainName', 'Edit'];\r\n\r\n dataSource: MatTableDataSource;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n constructor(\r\n private _domainService: DomainMasterService,\r\n private _snackBar: MatSnackBar,\r\n public navService: NavService\r\n ) {\r\n this._domainService.domainsList.subscribe((data) => {\r\n this.domainsList = data;\r\n this.dataSource = new MatTableDataSource(this.domainsList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n });\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.addDomainName = new FormGroup({\r\n DomainName: new FormControl('', [\r\n Validators.required,\r\n Validators.maxLength(100),\r\n Validators.minLength(2),\r\n ])\r\n });\r\n\r\n this._domainService.domainEdit.subscribe((data) => {\r\n if (this._domainService.editMode == true) {\r\n this.addDomainName.patchValue(data);\r\n this.btnLabel = 'UPDATE';\r\n }\r\n });\r\n this.btnLabel = 'SAVE';\r\n this.cancel();\r\n this.getDomains();\r\n }\r\n\r\n\r\n editDomains(domainEdit): void {\r\n this._domainService.editMode = true;\r\n this._domainService.domainEdit.next(domainEdit);\r\n }\r\n\r\n addDomain(): void {\r\n this.formSubmitted = true;\r\n var domain = new DomainMasterData();\r\n domain.DomainName = this.addDomainName.value.DomainName;\r\n if (this._domainService.editMode == true) {\r\n domain.DomainID = this._domainService.domainEdit.value.DomainID;\r\n }\r\n if (this.addDomainName.valid == true) {\r\n this._domainService.createDomain(domain).subscribe(\r\n (res) => {\r\n if (res) {\r\n this._domainService.getDomains();\r\n if (this._domainService.editMode == false) {\r\n this._snackBar.open('Domain record added successfully.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.cancel();\r\n } else {\r\n this._snackBar.open('Domain record updated successfully.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.cancel();\r\n }\r\n } else {\r\n this._snackBar.open('Unable to add domain.', 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n this.cancel();\r\n }\r\n },\r\n (error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n }\r\n\r\n cancel(): void {\r\n this.formSubmitted = false;\r\n this.addDomainName.reset();\r\n setTimeout(() => this.formGroupDirective.resetForm(), 0);\r\n this._domainService.editMode = false;\r\n this.btnLabel = 'SAVE';\r\n }\r\n\r\n getDomains(): void {\r\n this._domainService.getDomains();\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.domainsList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n \r\n Domain Name *\r\n \r\n\r\n \r\n Domain Name Required\r\n \r\n \r\n Atleast enter 2 characters\r\n \r\n \r\n Only 100 characters\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 \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
Domain Name {{domain.DomainName}} Edit \r\n edit\r\n
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { GradesService } from '../../services/grades.service';\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { Grade } from '../../models/grade.model';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { FormGroup, FormControl, Validators, FormGroupDirective } from '@angular/forms';\r\nimport {\r\n MatSnackBar,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition,\r\n} from '@angular/material/snack-bar';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\n\r\n@Component({\r\n selector: 'app-grades',\r\n templateUrl: './grades.component.html',\r\n styleUrls: ['./grades.component.scss'],\r\n})\r\nexport class GradesComponent implements OnInit {\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n themeappeareance = themeconfig.formfieldappearances;\r\n resources = servicePath.API.PagingConfigValue;\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n gradesData: Grade[];\r\n selectedGrade: Grade;\r\n btnLabel = '';\r\n valid = true;\r\n addGrades: FormGroup;\r\n formSubmitted = false;\r\n\r\n constructor(\r\n private serviceObj: GradesService,\r\n private _snackBar: MatSnackBar,\r\n public navService: NavService\r\n ) {\r\n this.serviceObj.GradesData.subscribe((data) => {\r\n this.gradesData = data;\r\n this.dataSource.data = data;\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.dataSource.sortingDataAccessor = (data, attribute) => data[attribute];\r\n });\r\n\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.GetGradesDetails();\r\n this.addGrades = new FormGroup({\r\n GradeCode: new FormControl(null, [Validators.required]),\r\n GradeName: new FormControl(null, [Validators.required]),\r\n });\r\n this.serviceObj.editObj.subscribe((data) => {\r\n if (this.serviceObj.editMode == true) {\r\n this.addGrades.patchValue(data);\r\n this.btnLabel = 'Update';\r\n }\r\n });\r\n this.btnLabel = 'Save';\r\n this.Reset();\r\n }\r\n\r\n cols = [\r\n { field: 'GradeCode', header: 'Grade Code' },\r\n { field: 'GradeName', header: 'Grade Name' },\r\n ];\r\n displayedColumns: string[] = ['GradeCode', 'GradeName', 'Edit'];\r\n columnsToDisplay: string[] = this.displayedColumns.slice();\r\n dataSource = new MatTableDataSource();\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n drop(event: CdkDragDrop) {\r\n moveItemInArray(\r\n this.displayedColumns,\r\n event.previousIndex,\r\n event.currentIndex\r\n );\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.gradesData);\r\n }\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n\r\n GetGradesDetails(): void {\r\n this.serviceObj.getGradesDetails();\r\n }\r\n\r\n SetEditObj(editObj: Grade): void {\r\n this.serviceObj.editMode = true;\r\n this.serviceObj.editObj.next(editObj);\r\n }\r\n\r\n Reset() {\r\n this.formSubmitted = false;\r\n this.addGrades.reset();\r\n setTimeout(() => this.formGroupDirective.resetForm(), 0);\r\n this.serviceObj.editMode = false;\r\n this.btnLabel = 'Save';\r\n }\r\n\r\n CreateGrades() {\r\n this.formSubmitted = true;\r\n this.addGrades.markAllAsTouched();\r\n var creatingObj = new Grade();\r\n creatingObj.GradeCode = this.addGrades.value.GradeCode;\r\n creatingObj.GradeName = this.addGrades.value.GradeName;\r\n\r\n if (this.serviceObj.editMode == true) {\r\n creatingObj.IsActive = this.serviceObj.editObj.value.IsActive;\r\n creatingObj.GradeId = this.serviceObj.editObj.value.GradeId;\r\n // creatingObj.GradeCode = this.serviceObj.editObj.value.GradeCode;\r\n }\r\n if (this.addGrades.valid == true) {\r\n this.serviceObj.createGrades(creatingObj).subscribe(\r\n (res) => {\r\n if (res != null) {\r\n this.serviceObj.getGradesDetails();\r\n if (this.serviceObj.editMode == false)\r\n // this.messageService.add({severity:'success', summary: 'Success Message', detail:'Grade record added successfully.'});\r\n { this._snackBar.open('Grade record added successfully.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.Reset();\r\n }\r\n // this.messageService.add({severity:'success', summary: 'Success Message', detail:'Grade record updated successfully.'});\r\n else{\r\n this._snackBar.open('Grade record updated successfully.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.Reset();}\r\n }\r\n },\r\n (error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({severity:'error', summary: 'Error message', detail:error.error});\r\n }\r\n );\r\n } else {\r\n // this.messageService.add({severity:'warn', summary: 'Warning message', detail:'Invalid data'});\r\n // this.Reset();\r\n }\r\n }\r\n\r\n Validate(value) {\r\n let textRe = /^[a-zA-Z ]*$/;\r\n this.valid = textRe.test(value);\r\n }\r\n\r\n ngOnDestroy() {\r\n // this.serviceObj.GradesData.unsubscribe();\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n \r\n Grade Code *\r\n \r\n \r\n Grade Code Required\r\n \r\n \r\n
\r\n
\r\n \r\n Grade Name *\r\n \r\n \r\n Grade Name Required\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\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 Grade Code\r\n \r\n {{ element.GradeCode }}\r\n \r\n Grade Name\r\n \r\n {{ element.GradeName }}\r\n \r\n Edit\r\n \r\n edit\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-internal-billing-roles',\r\n templateUrl: './internal-billing-roles.component.html',\r\n styleUrls: ['./internal-billing-roles.component.scss']\r\n})\r\nexport class InternalBillingRolesComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","

internal-billing-roles works!

\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { KeyFunctionService } from '../../services/key-function.service';\r\nimport { KeyFunction } from '../../models/key-function.model';\r\nimport { Department } from '../../models/department.model';\r\n// import { DepartmentSelect } from '../../models/department-select';\r\n\r\nimport { Seniority } from '../../models/seniority.model';\r\nimport { SeniorityService } from '../../services/seniority.service';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport {\r\n FormGroup,\r\n FormControl,\r\n Validators,\r\n FormGroupDirective,\r\n ValidationErrors,\r\n} from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { themeconfig } from 'src/themeconfig';\r\n\r\nimport { Observable } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-key-function',\r\n templateUrl: './key-function.component.html',\r\n styleUrls: ['./key-function.component.scss'],\r\n})\r\nexport class KeyFunctionComponent implements OnInit {\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n filteredOptions: Observable;\r\n\r\n isEdit: boolean;\r\n btnLabel: string = '';\r\n formSubmitted = false;\r\n addkeyFunction: FormGroup;\r\n keyFunction: KeyFunction;\r\n departmentList = [];\r\n\r\n // KeyFunctionList : KeyFunction[];\r\n\r\n KeyFunctionList: any[] = [];\r\n\r\n selectedRow: KeyFunction;\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n resources = servicePath.API.PagingConfigValue;\r\n\r\n dataSource: MatTableDataSource;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n displayedColumns: string[] = ['Department', 'SGRoleName', 'Edit'];\r\n\r\n constructor(\r\n private _keyFunctionService: KeyFunctionService,\r\n private _snackBar: MatSnackBar,\r\n public navService: NavService\r\n ) {\r\n this.getDepartmentList();\r\n\r\n this._keyFunctionService.KeyFunctionList.subscribe((data) => {\r\n data.forEach(function (value) {\r\n if (value.Department != null)\r\n value.Description = value.Department.Description;\r\n else value.Description = '';\r\n });\r\n this.KeyFunctionList = data;\r\n this.dataSource = new MatTableDataSource(this.KeyFunctionList);\r\n\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n });\r\n\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n // this.getDepartmentList();\r\n this.btnLabel = 'SAVE';\r\n this.keyFunction = new KeyFunction();\r\n this.addkeyFunction = new FormGroup({\r\n DepartmentId: new FormControl('', [Validators.required]),\r\n SGRoleName: new FormControl(null, [\r\n Validators.required,\r\n Validators.maxLength(100),\r\n Validators.minLength(2)\r\n ]),\r\n });\r\n\r\n this.departmentList;\r\n\r\n this._keyFunctionService.KeyFunctionEdit.subscribe((data) => {\r\n if (this._keyFunctionService.editMode == true) {\r\n this.isEdit = this._keyFunctionService.editMode;\r\n this.addkeyFunction.patchValue(data);\r\n this.addkeyFunction.controls.DepartmentId.patchValue(\r\n data.Description\r\n );\r\n this.btnLabel = 'UPDATE';\r\n }\r\n });\r\n // this.cancel();\r\n\r\n this._keyFunctionService.KeyFunctionList.subscribe((data) => {\r\n data.forEach(function (value) {\r\n if (value.Department != null)\r\n value.Description = value.Department.Description;\r\n else value.Description = '';\r\n });\r\n this.KeyFunctionList = data;\r\n this.dataSource = new MatTableDataSource(this.KeyFunctionList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n });\r\n this.getKeyFunctions();\r\n }\r\n\r\n getDepartmentList(): void {\r\n this._keyFunctionService.getDepartmentList().subscribe(\r\n (res: any[]) => {\r\n this.departmentList = [];\r\n res.forEach((e) => {\r\n this.departmentList.push({\r\n label: e.Description,\r\n value: e.DepartmentId,\r\n });\r\n });\r\n this.filteredOptions = this.addkeyFunction.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filter(value))\r\n );\r\n },\r\n (error) => {\r\n this._snackBar.open(error.error, '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n\r\n getKeyFunctions(): void {\r\n this._keyFunctionService.getKeyFunctions();\r\n }\r\n\r\n editKeyFunction(keyFunctionEdit): void {\r\n this.addkeyFunction.controls['DepartmentId'].disable();\r\n this._keyFunctionService.editMode = true;\r\n this._keyFunctionService.KeyFunctionEdit.next(keyFunctionEdit);\r\n }\r\n\r\n addkeyFunctions(): void {\r\n if (this.addkeyFunction.valid) {\r\n this.formSubmitted = true;\r\n var keyFunction = new KeyFunction();\r\n\r\n let tempDepartMentID = this.getDepartmentIDbyName(\r\n this.addkeyFunction.value.DepartmentId\r\n );\r\n\r\n // keyFunction.DepartmentId = this.addkeyFunction.value.DepartmentId;\r\n keyFunction.SGRoleName = this.addkeyFunction.value.SGRoleName;\r\n if (this._keyFunctionService.editMode == true) {\r\n keyFunction.SGRoleID = this._keyFunctionService.KeyFunctionEdit.value.SGRoleID;\r\n keyFunction.DepartmentId = this._keyFunctionService.KeyFunctionEdit.value.DepartmentId;\r\n }\r\n else{\r\n keyFunction.DepartmentId = tempDepartMentID[0].value;\r\n }\r\n if (this.addkeyFunction.valid == true) {\r\n this._keyFunctionService.createKeyFunction(keyFunction).subscribe(\r\n (res) => {\r\n if (res != null) {\r\n this._keyFunctionService.getKeyFunctions();\r\n if (this._keyFunctionService.editMode == false)\r\n this._snackBar.open(\r\n 'Key function record added successfully.',\r\n '',\r\n {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n else\r\n this._snackBar.open(\r\n 'Key function record updated successfully.',\r\n '',\r\n {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n this.cancel();\r\n }\r\n },\r\n (error) => {\r\n this._snackBar.open(error.error, '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n }\r\n }\r\n\r\n cancel(): void {\r\n this.formSubmitted = false;\r\n this.addkeyFunction.reset();\r\n setTimeout(() => this.formGroupDirective.resetForm(), 0);\r\n this._keyFunctionService.editMode = false;\r\n this.btnLabel = 'SAVE';\r\n this.isEdit = false;\r\n this.addkeyFunction.controls['DepartmentId'].enable();\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.KeyFunctionList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n }\r\n\r\n private _filter(value) {\r\n let filterValue;\r\n if (value && value.DepartmentId) {\r\n filterValue = value.DepartmentId.toLowerCase();\r\n return this.departmentList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.departmentList;\r\n }\r\n }\r\n\r\n cliearField() {\r\n this.addkeyFunction.controls.DepartmentId.setValue('');\r\n }\r\n\r\n getDepartmentIDbyName(e): any {\r\n return this.departmentList.filter((x) => x.label === e);\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n Department *\r\n \r\n\r\n \r\n\r\n \r\n No matching value found\r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n Department Name Required\r\n \r\n \r\n Select Department Name from given options\r\n \r\n \r\n\r\n\r\n
\r\n
\r\n \r\n Key Function Name *\r\n \r\n \r\n Key Function Name Required\r\n \r\n \r\n Only 100 characters\r\n \r\n \r\n Atleast enter 2 characters\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 \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
Department Name {{keyfunctionlist.Description}} Key Function Name {{keyfunctionlist.SGRoleName}} Edit \r\n edit\r\n
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport {\r\n FormGroup,\r\n FormControl,\r\n Validators,\r\n FormBuilder,\r\n ValidationErrors,\r\n} from '@angular/forms';\r\nimport {\r\n MatSnackBar,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition,\r\n} from '@angular/material/snack-bar';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { map, startWith } from 'rxjs/operators';\r\n\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { EmployeeData } from '../../models/employee.model';\r\nimport { EmployeeStatusService } from '../../services/employeestatus.service';\r\nimport { Observable } from 'rxjs';\r\n\r\ninterface SelectItem {\r\n value : number;\r\n label : string;\r\n}\r\n@Component({\r\n selector: 'app-map-associate-id',\r\n templateUrl: './map-associate-id.component.html',\r\n styleUrls: ['./map-associate-id.component.scss'],\r\n providers: [EmployeeStatusService],\r\n})\r\n\r\nexport class MapAssociateIdComponent implements OnInit {\r\n controlName: string;\r\n matchList:SelectItem[];\r\n usersList = [];\r\n emailsList = [];\r\n empData: EmployeeData;\r\n formSubmitted: boolean;\r\n mapAssociateId: FormGroup;\r\n themeAppearence = themeconfig.formfieldappearances;\r\n filteredOptionsName: Observable;\r\n filteredOptionsEmail: Observable;\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'right';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n selected = this.usersList;\r\n constructor(\r\n private service: EmployeeStatusService,\r\n private snackBar: MatSnackBar\r\n ) {\r\n this.getUsersList();\r\n this.getEmailsList();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.empData = new EmployeeData();\r\n this.mapAssociateId = new FormGroup({\r\n associateName: new FormControl('', [Validators.required]),\r\n associateEmail: new FormControl('', [Validators.required]),\r\n });\r\n\r\n this.clear();\r\n }\r\n\r\n private _filterName(value): any {\r\n let filterValue;\r\n if (typeof value === 'string') {\r\n filterValue = value.toLowerCase();\r\n } else {\r\n if (value !== null) {\r\n filterValue = value.label.toLowerCase();\r\n } else {\r\n return this.usersList;\r\n }\r\n }\r\n\r\n return this.usersList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n }\r\n private _filterEmail(value: any): any {\r\n let filterValue;\r\n if (typeof value === 'string') {\r\n filterValue = value.toLowerCase();\r\n } else {\r\n if (value !== null) {\r\n filterValue = value.label.toLowerCase();\r\n } else {\r\n return this.emailsList;\r\n }\r\n }\r\n\r\n return this.emailsList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n }\r\n\r\n displayFn(user: any) {\r\n return user ? user.label : '';\r\n }\r\n \r\n getFormControl(value:any){\r\n this.controlName = value;\r\n }\r\n \r\n getEmailsList() {\r\n this.service.GetAssociates().subscribe((res: any) => {\r\n // tslint:disable-next-line:prefer-const\r\n let dataList: any[] = res;\r\n this.emailsList = [];\r\n dataList.forEach((e) => {\r\n this.emailsList.push({ label: e.EmailAddress, value: e.UserId });\r\n });\r\n this.filteredOptionsEmail = this.mapAssociateId\r\n .get('associateEmail')\r\n .valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterEmail(value))\r\n );\r\n });\r\n }\r\n getUsersList() {\r\n this.service.GetAssociateNames().subscribe((res: any[]) => {\r\n // tslint:disable-next-line:prefer-const\r\n let dataList: any[] = res;\r\n this.usersList = [];\r\n dataList.forEach((e) => {\r\n this.usersList.push({ label: e.EmpName, value: e.EmpId });\r\n });\r\n this.filteredOptionsName = this.mapAssociateId\r\n .get('associateName')\r\n .valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterName(value))\r\n );\r\n });\r\n }\r\n onEmailChange(event: any, empID: any) {\r\n const selectedUserId = this.mapAssociateId.get('associateEmail').value\r\n .value;\r\n if (selectedUserId === null) {\r\n this.mapAssociateId.controls.associateEmail.setValue('');\r\n }\r\n this.empData.UserId = selectedUserId;\r\n if (empID !== undefined && selectedUserId !== undefined) {\r\n let empName = '';\r\n this.usersList.forEach((e) => {\r\n if (e.value === empID) {\r\n empName = e.label;\r\n }\r\n });\r\n const formatedEmpName = empName.replace(' ', '.').trim().toLowerCase();\r\n let email = '';\r\n this.emailsList.forEach((e) => {\r\n if (e.value === selectedUserId) {\r\n email = e.label;\r\n }\r\n });\r\n const formatedEmail = email.split('@')[0].toLowerCase();\r\n\r\n // if (formatedEmpName !== formatedEmail) {\r\n // event.option.value = '';\r\n // }\r\n }\r\n }\r\n\r\n onUserChange(event: any, empID: any) {\r\n const selectedUserId = this.mapAssociateId.get('associateName').value.value;\r\n if (selectedUserId === null) {\r\n this.mapAssociateId.controls.associateName.setValue('');\r\n }\r\n this.empData.EmpId = selectedUserId;\r\n if (empID !== undefined && selectedUserId !== undefined) {\r\n let empName = '';\r\n this.usersList.forEach((e) => {\r\n if (e.value === selectedUserId) {\r\n empName = e.label;\r\n }\r\n });\r\n const formatedEmpName = empName.replace(' ', '.').trim().toLowerCase();\r\n let email = '';\r\n this.emailsList.forEach((e) => {\r\n if (e.value === empID) {\r\n email = e.label;\r\n }\r\n });\r\n const formatedEmail = email.split('@')[0].toLowerCase();\r\n\r\n // if (formatedEmpName !== formatedEmail) {\r\n // event.option.value = '';\r\n // }\r\n }\r\n }\r\n\r\n mapAssociateIdMethod() {\r\n this.service.MapAssociateId(this.empData).subscribe(\r\n (data) => {\r\n if (data !== null) {\r\n this.snackBar.open('Associate Id Mapped', 'x', {\r\n duration: 3000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n }\r\n\r\n this.clearValues();\r\n this.getUsersList();\r\n this.getEmailsList();\r\n },\r\n (error) => {\r\n this.clearValues();\r\n this.snackBar.open('Failed to Map Associate', 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n }\r\n );\r\n }\r\n\r\n clearValues() {\r\n this.empData.EmpId = null;\r\n this.empData.UserId = null;\r\n this.mapAssociateId.reset();\r\n }\r\n\r\n clear() {\r\n this.formSubmitted = false;\r\n this.clearValues();\r\n }\r\n\r\n clearInput(event : any, fieldName: string){\r\n if (fieldName == 'associateName'){\r\n event.stopPropagation();\r\n this.mapAssociateId.get('associateName').reset();\r\n this.mapAssociateId.get('associateEmail').reset();\r\n }\r\n else if (fieldName == 'associateEmail'){\r\n event.stopPropagation();\r\n this.mapAssociateId.get('associateEmail').reset();\r\n }\r\n }\r\n\r\n onSubmit() {\r\n const enteredName = this.mapAssociateId.get('associateName').value;\r\n const enteredEmail = this.mapAssociateId.get('associateEmail').value;\r\n if (enteredName === 'Select Associate') {\r\n this.mapAssociateId.controls.associateName.setValue('');\r\n }\r\n if (enteredEmail === 'Select Email') {\r\n this.mapAssociateId.controls.associateEmail.setValue('');\r\n }\r\n // if (this.usersList.find(x => x.label === enteredName) && this.emailsList.find(x => x.label === enteredEmail)){\r\n\r\n //}\r\n //else{\r\n //return;\r\n //}\r\n this.formSubmitted = true;\r\n this.mapAssociateId.markAllAsTouched();\r\n\r\n if (this.mapAssociateId.valid) {\r\n this.formSubmitted = false;\r\n this.mapAssociateIdMethod();\r\n }\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n \r\n Associate\r\n *\r\n \r\n \r\n \r\n \r\n No matching\r\n value found\r\n \r\n {{ option.label }}\r\n \r\n \r\n \r\n Associate Required\r\n \r\n \r\n Select Associate from given options\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Email\r\n *\r\n \r\n \r\n\r\n \r\n \r\n No matching\r\n value found\r\n \r\n {{ selection.label }}\r\n \r\n \r\n \r\n Email Required\r\n \r\n \r\n Select Associate email from given options\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 { Component, OnInit, ElementRef, ViewChild, Input } from \"@angular/core\";\r\nimport { themeconfig } from \"../../../../../themeconfig\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { DropDownType } from \"../../../../modules/master-layout/models/dropdowntype.model\";\r\nimport {\r\n HttpClient,\r\n HttpHeaders,\r\n HttpErrorResponse\r\n} from \"@angular/common/http\";\r\nimport {\r\n FormsModule,\r\n ReactiveFormsModule,\r\n FormGroup,\r\n FormControl,\r\n Validators,\r\n FormGroupDirective,\r\n NgForm\r\n} from \"@angular/forms\";\r\nimport { CommonService } from \"../../../../core/services/common.service\";\r\nimport { MasterDataService } from \"../../../../core/services/masterdata.service\";\r\nimport { NotificationConfigurationService } from \"../../services/notificationconfiguration.service\";\r\nimport { NotificationTypeService } from \"../../services/notificationtype.service\";\r\nimport {\r\n NotificationConfiguration,\r\n Email,\r\n NotificationType\r\n} from \"../../models/notificationconfiguration.model\";\r\nimport { COMMA, ENTER } from \"@angular/cdk/keycodes\";\r\nimport { MatChipInputEvent, MatChipList } from \"@angular/material/chips\";\r\nimport { MatChipsModule } from \"@angular/material/chips\";\r\nimport { map, startWith } from \"rxjs/operators\";\r\nimport {\r\n MatSnackBar,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition\r\n} from \"@angular/material/snack-bar\";\r\nimport { Observable } from \"rxjs/internal/Observable\";\r\nimport { editorConfig } from \"../../../../core/angularEditorConfiguratioan\";\r\nimport { element } from \"protractor\";\r\n\r\n@Component({\r\n selector: \"app-notification-configuration\",\r\n templateUrl: \"./notification-configuration.component.html\",\r\n styleUrls: [\"./notification-configuration.component.scss\"]\r\n})\r\nexport class NotificationConfigurationComponent implements OnInit {\r\n editorConfig = editorConfig;\r\n erroroccured: boolean;\r\n themeAppearence = themeconfig.formfieldappearances;\r\n notificationTypeList = [];\r\n emailid;\r\n filteredOptions: Observable;\r\n notificationConfigurationDetails: NotificationConfiguration;\r\n filteredOptionsnotification: Observable;\r\n notificationType: NotificationType[] = [];\r\n filteredEmailIds: string[];\r\n filteredCCEmailIds: string[];\r\n componentName: string;\r\n formSubmitted = false;\r\n buttonText = \"Save\";\r\n isEmail: boolean = false\r\n EmailFrom = \"\";\r\n isCategory: boolean = false;\r\n notificationTypeID: number;\r\n categoryID: number;\r\n notificationDescripttion: string;\r\n categoriesList = [];\r\n NotificationConfig: FormGroup;\r\n visible = true;\r\n loading: boolean;\r\n selectable = true;\r\n removable = true;\r\n addOnBlur = false;\r\n notificationTypeDescriptionList:any[];\r\n horizontalPosition: MatSnackBarHorizontalPosition = \"right\";\r\n verticalPosition: MatSnackBarVerticalPosition = \"top\";\r\n readonly separatorKeysCodes: number[] = [ENTER, COMMA];\r\n @ViewChild(\"EmailInput\") EmailInput: ElementRef;\r\n @ViewChild(\"EmailCCInput\") EmailCCInput: ElementRef;\r\n @ViewChild(\"chipListEmailTo\") chipListEmailTo: MatChipList;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n constructor(\r\n private _http: HttpClient,\r\n private _actRoute: ActivatedRoute,\r\n private serviceObj: NotificationConfigurationService,\r\n private notificationTypeService: NotificationTypeService,\r\n private masterDataService: MasterDataService,\r\n private _commonService: CommonService,\r\n private snackBar: MatSnackBar\r\n ) {\r\n this.notificationConfigurationDetails = new NotificationConfiguration();\r\n this.notificationConfigurationDetails.ToEmail = new Array();\r\n this.notificationConfigurationDetails.CCEmail = new Array();\r\n this.componentName = this._actRoute.routeConfig.component.name;\r\n this.getCategories();\r\n }\r\n\r\n ngOnInit() {\r\n this.NotificationConfig = new FormGroup({\r\n notificationCategoryControl: new FormControl(\"\", [Validators.required]),\r\n notificationTypeControl: new FormControl(\"\", [Validators.required]),\r\n notificationDescriptionControl: new FormControl(\"\"),\r\n emailFromControl: new FormControl(\"\"),\r\n subjectControl: new FormControl(null, [Validators.required]),\r\n emailToControl: new FormControl(Array[\"\"], Validators.required),\r\n emailCCControl: new FormControl(Array[\"\"]),\r\n emailContentControl: new FormControl(null, [Validators.required])\r\n });\r\n\r\n this.NotificationConfig.get(\"notificationDescriptionControl\").disable();\r\n this.NotificationConfig.get(\"emailFromControl\").disable();\r\n\r\n this.serviceObj.notificationTypeData.subscribe(data => {\r\n this.notificationType = data;\r\n });\r\n\r\n\r\n }\r\n private _filtercategory(value) {\r\n let filterValue;\r\n\r\n if (value && value.notificationCategoryControl) {\r\n filterValue = value.notificationCategoryControl.toString().toLowerCase();\r\n return this.categoriesList.filter(option =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.categoriesList;\r\n }\r\n }\r\n private _filternotification(value) {\r\n let filterValue;\r\n if (value && value.notificationTypeControl) {\r\n filterValue = value.notificationTypeControl.toString().toLowerCase();\r\n return this.notificationTypeList.filter(option => {\r\n return option.label.toLowerCase().includes(filterValue)\r\n }\r\n );\r\n } else {\r\n return this.notificationTypeList;\r\n }\r\n }\r\n\r\n displayFn(user: any) {\r\n return user ? user.label : \"\";\r\n }\r\n returnFn(user: any): number | undefined {\r\n return user ? user.value : undefined;\r\n }\r\n getCategories(): void {\r\n this.categoriesList = [];\r\n // this.categoriesList.splice(0, 0, { label: \"Enter Category\", value: null});\r\n this.masterDataService.GetCategories().subscribe((res: any[]) => {\r\n res.forEach(ele => {\r\n this.categoriesList.push({\r\n label: ele.CategoryName,\r\n value: ele.CategoryMasterId\r\n });\r\n });\r\n this.filteredOptions = this.NotificationConfig.valueChanges.pipe(\r\n startWith(\"\"),\r\n map(value => this._filtercategory(value))\r\n );\r\n });\r\n \r\n }\r\n getNotificationtypes(event: any): void {\r\n this.chipListEmailTo.errorState = false;\r\n this.NotificationConfig.get(\"notificationTypeControl\").reset();\r\n this.NotificationConfig.get(\"notificationDescriptionControl\").reset();\r\n this.NotificationConfig.get(\"emailFromControl\").reset();\r\n this.NotificationConfig.get(\"subjectControl\").reset();\r\n this.NotificationConfig.get(\"emailToControl\").reset();\r\n this.NotificationConfig.get(\"emailCCControl\").reset();\r\n this.NotificationConfig.get(\"emailContentControl\").reset();\r\n if (this.notificationConfigurationDetails.ToEmail.length !== 0) {\r\n this.chipListEmailTo.errorState = false;\r\n }\r\n\r\n this.notificationConfigurationDetails.ToEmail = [];\r\n this.chipListEmailTo.errorState = false;\r\n this.notificationConfigurationDetails.CCEmail = [];\r\n this.buttonText = \"Save\";\r\n // tslint:disable-next-line:prefer-const\r\n let categoryId = event.option.value.value;\r\n this.notificationConfigurationDetails.CategoryMasterId = categoryId;\r\n this.notificationTypeList = [];\r\n this.notificationTypeDescriptionList = [];\r\n // this.notificationConfigurationDetails.NotificationTypeId = 0;\r\n this.filteredOptionsnotification = this.NotificationConfig.valueChanges.pipe(\r\n startWith(\"\"),\r\n map(value => this._filternotification(value))\r\n );\r\n if (categoryId == null)\r\n this.isCategory = true\r\n this.loading = true;\r\n this.serviceObj.GetNotificationTypes().subscribe(\r\n (res: any[]) => {\r\n res.forEach((notificationType: NotificationType) => {\r\n if (notificationType.CategoryMasterId === categoryId) {\r\n // tslint:disable-next-line:max-line-length\r\n this.notificationTypeList.push({\r\n label: notificationType.NotificationCode,\r\n value: notificationType.NotificationTypeId\r\n });\r\n this.notificationTypeDescriptionList.push({\r\n label: notificationType.NotificationDescription,\r\n value: notificationType.NotificationTypeId\r\n });\r\n }\r\n });\r\n this.loading = false\r\n },\r\n error => {\r\n this.snackBar.open(error.error, \"x\", {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition\r\n });\r\n }\r\n );\r\n }\r\n\r\n filterEmailIDs(event: any): void {\r\n // tslint:disable-next-line:prefer-const\r\n let suggestionString = event.target.value;\r\n if (suggestionString.length >= 3) {\r\n //\r\n this.masterDataService.GetEmailIDsByString().subscribe(\r\n (emailListResponse) => {\r\n this.filteredEmailIds = [];\r\n this.filteredEmailIds = emailListResponse.filter((option) =>\r\n option.toLowerCase().includes(suggestionString)\r\n );\r\n if (this.filteredEmailIds.length < 1) {\r\n this.isEmail = true\r\n }\r\n else {\r\n this.isEmail = false\r\n }\r\n },\r\n\r\n (error: any) => {\r\n if (error._body !== undefined && error._body !== \"\") {\r\n }\r\n this._commonService\r\n .LogError(this.componentName, error._body)\r\n .subscribe((data: any) => { });\r\n this.snackBar.open(\"Failed to get Email Suggestions\", \"x\", {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition\r\n });\r\n }\r\n );\r\n }\r\n }\r\n\r\n filterCCEmailIDs(event: any): void {\r\n // tslint:disable-next-line:prefer-const\r\n let suggestionString = event.target.value;\r\n if (suggestionString.length >= 3) {\r\n //\r\n this.masterDataService.GetEmailIDsByString().subscribe(\r\n (emailListResponse) => {\r\n this.filteredCCEmailIds = [];\r\n this.filteredCCEmailIds = emailListResponse.filter((option) =>\r\n option.toLowerCase().includes(suggestionString)\r\n );\r\n if (this.filteredCCEmailIds.length < 1) {\r\n this.isEmail = true\r\n }\r\n else {\r\n this.isEmail = false\r\n }\r\n },\r\n\r\n (error: any) => {\r\n if (error._body !== undefined && error._body !== \"\") {\r\n }\r\n this._commonService\r\n .LogError(this.componentName, error._body)\r\n .subscribe((data: any) => { });\r\n this.snackBar.open(\"Failed to get Email Suggestions\", \"x\", {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition\r\n });\r\n }\r\n );\r\n }\r\n }\r\n\r\n GetNotificationCofigurationByNotificationType(\r\n event: any,\r\n categoryMasterId: number\r\n ): void {\r\n this.chipListEmailTo.errorState = false;\r\n this.NotificationConfig.get(\"notificationDescriptionControl\").reset();\r\n this.NotificationConfig.get(\"emailFromControl\").reset();\r\n this.NotificationConfig.get(\"subjectControl\").reset();\r\n this.NotificationConfig.get(\"emailToControl\").reset();\r\n this.NotificationConfig.get(\"emailCCControl\").reset();\r\n this.NotificationConfig.get(\"emailContentControl\").reset();\r\n this.notificationConfigurationDetails.ToEmail = [];\r\n this.notificationConfigurationDetails.CCEmail = [];\r\n\r\n this.buttonText = \"Save\";\r\n let notificationTypeId;\r\n if (categoryMasterId !== null && event !== null) {\r\n notificationTypeId = event.option.value.value;\r\n this.notificationConfigurationDetails.NotificationTypeId = notificationTypeId;\r\n }\r\n //\r\n\r\n //\r\n if (notificationTypeId !== 0 && categoryMasterId !== 0) {\r\n this.notificationTypeID = notificationTypeId;\r\n this.categoryID = categoryMasterId;\r\n this.serviceObj\r\n .GetNotificationCofigurationByNotificationType(\r\n notificationTypeId,\r\n categoryMasterId\r\n )\r\n .subscribe(\r\n (notificationConfigurationResponse: NotificationConfiguration) => {\r\n this.formSubmitted = false;\r\n if (notificationConfigurationResponse != null) {\r\n this.notificationConfigurationDetails = new NotificationConfiguration();\r\n this.notificationConfigurationDetails.EmailFrom = this.getFromEmail();\r\n this.notificationConfigurationDetails.CCEmail = new Array<\r\n Email\r\n >();\r\n this.notificationConfigurationDetails.ToEmail = new Array<\r\n Email\r\n >();\r\n if (\r\n notificationConfigurationResponse.EmailTo !== \"\" &&\r\n notificationConfigurationResponse.EmailTo != null\r\n ) {\r\n if (\r\n notificationConfigurationResponse &&\r\n notificationConfigurationResponse.CategoryMasterId != null\r\n ) {\r\n this.notificationConfigurationDetails.CategoryMasterId =\r\n notificationConfigurationResponse.CategoryMasterId;\r\n } else {\r\n this.notificationConfigurationDetails.CategoryMasterId = 0;\r\n }\r\n\r\n if (\r\n notificationConfigurationResponse &&\r\n notificationConfigurationResponse.NotificationTypeId != null\r\n ) {\r\n this.notificationConfigurationDetails.NotificationTypeId =\r\n notificationConfigurationResponse.NotificationTypeId;\r\n } else {\r\n this.notificationConfigurationDetails.NotificationTypeId = 0;\r\n }\r\n if (\r\n notificationConfigurationResponse &&\r\n notificationConfigurationResponse.EmailSubject !== \"\"\r\n ) {\r\n this.notificationConfigurationDetails.EmailSubject =\r\n notificationConfigurationResponse.EmailSubject;\r\n this.NotificationConfig.get(\"subjectControl\").patchValue(\r\n this.notificationConfigurationDetails.EmailSubject\r\n );\r\n } else {\r\n this.notificationConfigurationDetails.EmailSubject = \"\";\r\n this.NotificationConfig.get(\"subjectControl\").patchValue(\r\n this.notificationConfigurationDetails.EmailSubject\r\n );\r\n }\r\n if (\r\n notificationConfigurationResponse &&\r\n notificationConfigurationResponse.NotificationType &&\r\n notificationConfigurationResponse.NotificationType\r\n .NotificationDescription !== undefined &&\r\n notificationConfigurationResponse.NotificationType\r\n .NotificationDescription != null\r\n ) {\r\n this.notificationConfigurationDetails.NotificationDescription =\r\n notificationConfigurationResponse.NotificationType.NotificationDescription;\r\n this.NotificationConfig.get(\r\n \"notificationDescriptionControl\"\r\n ).patchValue(\r\n this.notificationConfigurationDetails\r\n .NotificationDescription\r\n );\r\n } else {\r\n this.notificationConfigurationDetails.NotificationDescription =\r\n \"\";\r\n this.NotificationConfig.get(\r\n \"notificationDescriptionControl\"\r\n ).patchValue(\r\n this.notificationConfigurationDetails\r\n .NotificationDescription\r\n );\r\n }\r\n if (\r\n notificationConfigurationResponse &&\r\n notificationConfigurationResponse.EmailContent !== \"\"\r\n ) {\r\n\r\n this.notificationConfigurationDetails.EmailContent =\r\n notificationConfigurationResponse.EmailContent;\r\n this.NotificationConfig.patchValue({\r\n emailContentControl: this.notificationConfigurationDetails\r\n .EmailContent\r\n });\r\n\r\n } else {\r\n this.notificationConfigurationDetails.EmailContent = \"\";\r\n this.NotificationConfig.patchValue({\r\n emailContentControl: this.notificationConfigurationDetails\r\n .EmailContent\r\n });\r\n }\r\n\r\n if (\r\n notificationConfigurationResponse &&\r\n notificationConfigurationResponse.EmailTo !== \"\" &&\r\n notificationConfigurationResponse.EmailTo != null\r\n ) {\r\n //\r\n let emailTo = notificationConfigurationResponse.EmailTo.split(\r\n \";\"\r\n );\r\n //\r\n if (emailTo.length === 1) {\r\n this.notificationConfigurationDetails.ToEmail.push({\r\n EmailID: emailTo[0]\r\n });\r\n //\r\n this.emailid = this.notificationConfigurationDetails.ToEmail[0].EmailID;\r\n } else {\r\n for (let i = 0; i < emailTo.length; i++) {\r\n this.notificationConfigurationDetails.ToEmail.push({\r\n EmailID: emailTo[i]\r\n });\r\n }\r\n }\r\n //\r\n } else {\r\n this.notificationConfigurationDetails.ToEmail = [];\r\n }\r\n if (\r\n notificationConfigurationResponse &&\r\n notificationConfigurationResponse.EmailCC !== \"\"\r\n ) {\r\n let emailCC = notificationConfigurationResponse.EmailCC.split(\r\n \";\"\r\n );\r\n if (emailCC.length === 1) {\r\n this.notificationConfigurationDetails.CCEmail.push({\r\n EmailID: emailCC[0]\r\n });\r\n } else {\r\n for (let i = 0; i < emailCC.length; i++) {\r\n this.notificationConfigurationDetails.CCEmail.push({\r\n EmailID: emailCC[i]\r\n });\r\n }\r\n }\r\n } else {\r\n this.notificationConfigurationDetails.CCEmail = [];\r\n }\r\n this.buttonText = \"Update\";\r\n } else {\r\n this.notificationConfigurationDetails = {\r\n NotificationTypeId: notificationTypeId,\r\n NotificationType: null,\r\n NotificationCode: \"\",\r\n NotificationDescription:\r\n notificationConfigurationResponse.NotificationDescription,\r\n EmailFrom: this.getFromEmail(),\r\n EmailTo: \"\",\r\n EmailCC: \"\",\r\n ToEmail: new Array(),\r\n CCEmail: new Array(),\r\n EmailSubject: \"\",\r\n EmailContent: \"\",\r\n CategoryMasterId: categoryMasterId,\r\n CategoryMaster: null,\r\n CategoryName: \"\"\r\n };\r\n this.buttonText = \"Save\";\r\n }\r\n } else {\r\n this.notificationConfigurationDetails = {\r\n NotificationTypeId: notificationTypeId,\r\n NotificationType: null,\r\n NotificationCode: \"\",\r\n NotificationDescription: \"\",\r\n EmailFrom: this.getFromEmail(),\r\n EmailTo: \"\",\r\n EmailCC: \"\",\r\n ToEmail: new Array(),\r\n CCEmail: new Array(),\r\n EmailSubject: \"\",\r\n EmailContent: \"\",\r\n CategoryMasterId: categoryMasterId,\r\n CategoryMaster: null,\r\n CategoryName: \"\"\r\n };\r\n this.buttonText = \"Save\";\r\n }\r\n }\r\n );\r\n } else {\r\n this.notificationConfigurationDetails = {\r\n NotificationTypeId: notificationTypeId,\r\n NotificationType: null,\r\n NotificationCode: \"\",\r\n NotificationDescription: \"\",\r\n EmailFrom: this.getFromEmail(),\r\n EmailTo: \"\",\r\n EmailCC: \"\",\r\n ToEmail: new Array(),\r\n CCEmail: new Array(),\r\n EmailSubject: \"\",\r\n EmailContent: \"\",\r\n CategoryMasterId: categoryMasterId,\r\n CategoryMaster: null,\r\n CategoryName: \"\"\r\n };\r\n }\r\n if (this.NotificationConfig.get(\"notificationDescriptionControl\").value == \"\" || this.NotificationConfig.get(\"notificationDescriptionControl\").value == null || this.NotificationConfig.get(\"notificationDescriptionControl\").value == undefined){\r\n let filteredNotificationTypes: any;\r\n filteredNotificationTypes = this.notificationTypeDescriptionList.filter(filteredNotificationTypes => filteredNotificationTypes.value == notificationTypeId)\r\n this.NotificationConfig.get(\"notificationDescriptionControl\").patchValue(\r\n filteredNotificationTypes[0].label\r\n );\r\n\r\n }\r\n }\r\n\r\n getFromEmail(): string {\r\n this.serviceObj.GetFromEmail().subscribe((emailFrom: string) => {\r\n this.EmailFrom = emailFrom;\r\n });\r\n this.NotificationConfig.get(\"emailFromControl\").patchValue(this.EmailFrom);\r\n return this.EmailFrom;\r\n }\r\n\r\n onSave(notificationConfigurationDetails: NotificationConfiguration): void {\r\n this.formSubmitted = true;\r\n this.notificationConfigurationDetails.EmailContent = this.NotificationConfig.get(\r\n \"emailContentControl\"\r\n ).value;\r\n this.notificationConfigurationDetails.EmailFrom = this.NotificationConfig.get(\r\n \"emailFromControl\"\r\n ).value;\r\n this.notificationConfigurationDetails.NotificationDescription = this.NotificationConfig.get(\r\n \"notificationDescriptionControl\"\r\n ).value;\r\n this.notificationConfigurationDetails.EmailSubject = this.NotificationConfig.get(\r\n \"subjectControl\"\r\n ).value;\r\n\r\n\r\n\r\n if (notificationConfigurationDetails.CategoryMasterId === 0) {\r\n return;\r\n }\r\n if (notificationConfigurationDetails.NotificationTypeId === 0) {\r\n return;\r\n }\r\n\r\n if (\r\n notificationConfigurationDetails.EmailFrom === \"\" ||\r\n notificationConfigurationDetails.EmailSubject === \"\" ||\r\n notificationConfigurationDetails.EmailContent === \"\"\r\n ) {\r\n return;\r\n }\r\n\r\n if (\r\n notificationConfigurationDetails.EmailFrom == null ||\r\n notificationConfigurationDetails.EmailSubject == null ||\r\n notificationConfigurationDetails.EmailContent == null\r\n ) {\r\n return;\r\n }\r\n if (notificationConfigurationDetails.ToEmail.length === 0) {\r\n this.chipListEmailTo.errorState = true;\r\n return;\r\n }\r\n notificationConfigurationDetails.EmailContent =\r\n notificationConfigurationDetails.EmailContent;\r\n\r\n notificationConfigurationDetails.EmailTo = \"\";\r\n\r\n notificationConfigurationDetails.ToEmail.map(function (email: Email) {\r\n return (notificationConfigurationDetails.EmailTo += email.EmailID + \";\");\r\n });\r\n notificationConfigurationDetails.EmailCC = \"\";\r\n\r\n notificationConfigurationDetails.CCEmail.map(function (email: Email) {\r\n return (notificationConfigurationDetails.EmailCC += email.EmailID + \";\");\r\n });\r\n\r\n notificationConfigurationDetails.EmailTo = notificationConfigurationDetails.EmailTo.substr(\r\n 0,\r\n notificationConfigurationDetails.EmailTo.lastIndexOf(\";\")\r\n );\r\n\r\n notificationConfigurationDetails.EmailCC = notificationConfigurationDetails.EmailCC.substr(\r\n 0,\r\n notificationConfigurationDetails.EmailCC.lastIndexOf(\";\")\r\n );\r\n\r\n if (this.buttonText === \"Save\") {\r\n //\r\n if (this.notificationConfigurationDetails.ToEmail.length === 0) {\r\n this.chipListEmailTo.errorState = true;\r\n } else {\r\n this.chipListEmailTo.errorState = false;\r\n }\r\n //\r\n\r\n this.serviceObj\r\n .SaveNotificationCofiguration(notificationConfigurationDetails)\r\n .subscribe(\r\n (response: boolean) => {\r\n this.snackBar.open(\r\n \"Notification Configuration Record Added Successfully\",\r\n \"x\",\r\n {\r\n duration: 3000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition\r\n }\r\n );\r\n this.clear();\r\n },\r\n\r\n (error: any) => {\r\n if (error._body !== undefined && error._body !== \"\") {\r\n this._commonService\r\n .LogError(this.componentName, error._body)\r\n .subscribe((data: any) => { });\r\n }\r\n\r\n this.snackBar.open(\r\n \"Failed to Add Notification Configuration\",\r\n \"x\",\r\n {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition\r\n }\r\n );\r\n }\r\n );\r\n } else {\r\n if (this.notificationConfigurationDetails.ToEmail.length === 0) {\r\n this.chipListEmailTo.errorState = true;\r\n } else {\r\n this.chipListEmailTo.errorState = false;\r\n }\r\n //\r\n this.serviceObj\r\n .UpdateNotificationCofiguration(notificationConfigurationDetails)\r\n .subscribe(\r\n (response: boolean) => {\r\n this.snackBar.open(\r\n \"Notification Configuration Updated Successfully\",\r\n \"x\",\r\n {\r\n duration: 3000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition\r\n }\r\n );\r\n\r\n this.clear();\r\n },\r\n (error: any) => {\r\n if (error._body !== undefined && error._body !== \"\") {\r\n this._commonService\r\n .LogError(this.componentName, error._body)\r\n .subscribe((data: any) => { });\r\n }\r\n\r\n this.snackBar.open(\r\n \"Failed to Update Notification Configuration\",\r\n \"x\",\r\n {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition\r\n }\r\n );\r\n }\r\n );\r\n }\r\n }\r\n EmailToSelected(event: any) {\r\n this.notificationConfigurationDetails.ToEmail.push({\r\n EmailID: event.option.value\r\n });\r\n this.EmailInput.nativeElement.value = \"\";\r\n if (this.notificationConfigurationDetails.ToEmail.length === 0) {\r\n this.chipListEmailTo.errorState = true;\r\n } else {\r\n this.chipListEmailTo.errorState = false;\r\n }\r\n }\r\n EmailCCSelected(event: any) {\r\n this.notificationConfigurationDetails.CCEmail.push({\r\n EmailID: event.option.value\r\n });\r\n this.EmailCCInput.nativeElement.value = \"\";\r\n }\r\n add(event: MatChipInputEvent): void {\r\n const input = event.input;\r\n const value = event.value;\r\n\r\n // Add our fruit\r\n if ((value || \"\").trim()) {\r\n this.notificationConfigurationDetails.CCEmail.push({\r\n EmailID: value.trim()\r\n });\r\n }\r\n\r\n // Reset the input value\r\n if (input) {\r\n input.value = \"\";\r\n }\r\n }\r\n\r\n remove(email: Email): void {\r\n const index = this.notificationConfigurationDetails.CCEmail.indexOf(email);\r\n\r\n if (index >= 0) {\r\n this.notificationConfigurationDetails.CCEmail.splice(index, 1);\r\n }\r\n \r\n }\r\n addEmailTo(event: MatChipInputEvent): void {\r\n const input = event.input;\r\n const value = event.value;\r\n\r\n if ((value || \"\").trim()) {\r\n this.notificationConfigurationDetails.ToEmail.push({\r\n EmailID: value.trim()\r\n });\r\n if (this.notificationConfigurationDetails.ToEmail.length === 0) {\r\n this.chipListEmailTo.errorState = true;\r\n } else {\r\n this.chipListEmailTo.errorState = false;\r\n }\r\n //\r\n }\r\n\r\n if (input) {\r\n input.value = \"\";\r\n }\r\n if (this.notificationConfigurationDetails.ToEmail.length === 0) {\r\n this.chipListEmailTo.errorState = true;\r\n } else {\r\n this.chipListEmailTo.errorState = false;\r\n }\r\n }\r\n\r\n removeEmailTo(email: Email): void {\r\n const index = this.notificationConfigurationDetails.ToEmail.indexOf(email);\r\n\r\n if (index >= 0) {\r\n this.notificationConfigurationDetails.ToEmail.splice(index, 1);\r\n }\r\n\r\n //\r\n if (this.notificationConfigurationDetails.ToEmail.length === 0) {\r\n this.chipListEmailTo.errorState = true;\r\n } else {\r\n this.chipListEmailTo.errorState = false;\r\n }\r\n let suggestionString : string = \"\";\r\n this.masterDataService.GetEmailIDsByString().subscribe(\r\n (emailListResponse) => {\r\n this.filteredEmailIds = [];\r\n this.filteredEmailIds = emailListResponse.filter((option) =>\r\n option.toLowerCase().includes(suggestionString)\r\n );\r\n if (this.filteredEmailIds.length < 1) {\r\n this.isEmail = true\r\n }\r\n else {\r\n this.isEmail = false\r\n }\r\n },\r\n\r\n (error: any) => {\r\n if (error._body !== undefined && error._body !== \"\") {\r\n }\r\n this._commonService\r\n .LogError(this.componentName, error._body)\r\n .subscribe((data: any) => { });\r\n this.snackBar.open(\"Failed to get Email Suggestions\", \"x\", {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition\r\n });\r\n }\r\n );\r\n\r\n }\r\n clearFieldCategory(event: any) {\r\n event.stopPropagation();\r\n this.NotificationConfig.controls.notificationCategoryControl.reset();\r\n \r\n this.clearFieldNotification(event);\r\n\r\n this.isCategory = true\r\n }\r\n clearFieldNotification(event:any) {\r\n event.stopPropagation();\r\n this.NotificationConfig.controls.notificationTypeControl.reset();\r\n\r\n event.stopPropagation();\r\n this.NotificationConfig.controls.notificationDescriptionControl.reset();\r\n }\r\n\r\n clear() {\r\n this.formSubmitted = false;\r\n this.buttonText = \"Save\";\r\n this.notificationConfigurationDetails = new NotificationConfiguration();\r\n this.notificationTypeList = [];\r\n\r\n this.NotificationConfig.controls.notificationDescriptionControl.reset();\r\n\r\n\r\n\r\n this.notificationConfigurationDetails.ToEmail = new Array();\r\n this.notificationConfigurationDetails.CCEmail = new Array();\r\n\r\n this.chipListEmailTo.errorState = false;\r\n this.NotificationConfig.reset();\r\n setTimeout(() => this.formGroupDirective.resetForm(), 0);\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n \r\n Category\r\n *\r\n \r\n \r\n \r\n \r\n \r\n {{option.label}}\r\n \r\n \r\n \r\n Select Category\r\n \r\n\r\n
\r\n
\r\n \r\n Notification Type\r\n *\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Enter Notification Type\r\n \r\n {{option.label}}\r\n \r\n \r\n \r\n Select Notification Type\r\n \r\n \r\n Choose Category First\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Notification Description\r\n \r\n \r\n
\r\n
\r\n \r\n Email From\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n Subject\r\n *\r\n \r\n \r\n \r\n Select Subject\r\n\r\n \r\n \r\n
\r\n
\r\n \r\n Email To\r\n *\r\n \r\n \r\n \r\n {{option.EmailID}}\r\n cancel\r\n \r\n \r\n \r\n \r\n No matching Email IDs found\r\n \r\n {{option}}\r\n \r\n\r\n \r\n\r\n Select Email To\r\n \r\n\r\n\r\n
\r\n
\r\n\r\n \r\n Email CC\r\n \r\n \r\n {{option.EmailID}}\r\n cancel\r\n \r\n \r\n \r\n \r\n No matching Email IDs found\r\n \r\n {{option}}\r\n \r\n \r\n \r\n Enter atleast a character.\r\n \r\n \r\n\r\n\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n Enter Email Body\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 { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { Validators, FormControl, FormGroup, FormBuilder, FormGroupDirective } from '@angular/forms';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { NotificationTypeService } from '../../services/notificationtype.service';\r\nimport { NotificationType } from '../../models/notificationconfiguration.model';\r\nimport { DropDownType } from '../../../master-layout/models/dropdowntype.model';\r\nimport { CommonService } from \"../../../../core/services/common.service\";\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { MasterDataService } from '../../../../core/services/masterdata.service';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport * as servicePath from '../../../../core/service-paths';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-notification-types',\r\n templateUrl: './notification-types.component.html',\r\n styleUrls: ['./notification-types.component.scss']\r\n})\r\nexport class NotificationTypesComponent implements OnInit {\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n helpMsg = \"Successfully created\";\r\n btnLabel = \"\";\r\n valid = true;\r\n notificationTypeList: NotificationType[] = [];\r\n notificationTypeId: number;\r\n componentName: string;\r\n notificationTypeData: NotificationType;\r\n isEdit: boolean = false;\r\n formSubmitted: boolean;\r\n display: boolean = false;\r\n duplicateheckNotificationType: number;\r\n categoriesList: DropDownType[] = [];\r\n addNotificationType: FormGroup;\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n resources = servicePath.API.PagingConfigValue;\r\n abc: DropDownType[] = [];\r\n\r\n\r\n dataSource: MatTableDataSource;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n displayedColumns: string[] = ['CategoryName', 'NotificationCode', 'NotificationDescription', 'Edit'];\r\n\r\n\r\n constructor(private _commonService: CommonService,\r\n private serviceObj: NotificationTypeService,\r\n private fb: FormBuilder, private _snackBar: MatSnackBar,\r\n public navService: NavService,\r\n private masterDataService: MasterDataService) {\r\n this.PageSize = this.resources.PageSize;\r\n this.PageDropDown = this.resources.PageDropDown;\r\n\r\n\r\n this.serviceObj.notificationTypeData.subscribe((data) => {\r\n this.notificationTypeList = data;\r\n this.dataSource = new MatTableDataSource(this.notificationTypeList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n });\r\n\r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n this.applyFilter(responseData);\r\n })\r\n }\r\n\r\n ngOnInit() {\r\n this.getNotificationTypes();\r\n this.getCategories();\r\n\r\n\r\n this.addNotificationType = this.fb.group({\r\n // Id: ['', []],\r\n NotificationTypeId: ['', []],\r\n NotificationCode: ['', [Validators.required]],\r\n NotificationDescription: ['', [Validators.required]],\r\n CategoryMasterId: ['', [Validators.required]],\r\n\r\n });\r\n\r\n this.serviceObj.editObj.subscribe(data => {\r\n if (this.serviceObj.editMode == true) {\r\n this.isEdit = this.serviceObj.editMode;\r\n this.addNotificationType.patchValue(data);\r\n this.addNotificationType.value.notificationTypeId = data.NotificationTypeId;\r\n // this.addNotificationType.value.Id = data.Id;\r\n this.btnLabel = \"Update\";\r\n }\r\n });\r\n this.btnLabel = \"Save\";\r\n\r\n this.serviceObj.GetNotificationTypes();\r\n this.serviceObj.notificationTypeData.subscribe((data) => {\r\n data.forEach(function (value) {\r\n if (value.CategoryMaster != null)\r\n value.CategoryName = value.CategoryMaster.CategoryName;\r\n else\r\n value.CategoryName = '';\r\n });\r\n\r\n })\r\n this.reset();\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.notificationTypeList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n }\r\n reset() {\r\n this.formSubmitted = false;\r\n this.addNotificationType.reset();\r\n this.serviceObj.editMode = false;\r\n this.btnLabel = \"Save\";\r\n this.isEdit = false;\r\n }\r\n GetNotificationList() {\r\n this.serviceObj.GetNotificationTypes();\r\n\r\n }\r\n editnotificationtype(editObj) {\r\n this.serviceObj.editMode = true;\r\n this.serviceObj.editObj.next(editObj);\r\n }\r\n\r\n getNotificationTypes(): void {\r\n this.serviceObj.GetNotificationTypes();\r\n }\r\n\r\n getCategories(): void {\r\n this.categoriesList = [];\r\n this.masterDataService.GetCategories().subscribe((res: any[]) => {\r\n res.forEach(ele => {\r\n this.categoriesList.push({ label: ele.CategoryName, value: ele.CategoryMasterId });\r\n });\r\n }),\r\n this.abc = this.categoriesList;\r\n (error: any) => {\r\n if (error._body != undefined && error._body != \"\")\r\n this._commonService.LogError(this.componentName, error._body).subscribe((data: any) => {\r\n });\r\n };\r\n }\r\n\r\n onSubmit(): void {\r\n this.formSubmitted = true;\r\n if (this.addNotificationType.value.NotificationDescription == null) {\r\n this.addNotificationType.value.NotificationDescription = \"\";\r\n }\r\n // if (this.addNotificationType.value.NotificationTypeId == null) {\r\n // this.addNotificationType.value.NotificationTypeId = 0;\r\n // }\r\n console.log(this.addNotificationType.value)\r\n if (this.addNotificationType.valid) {\r\n if (this.isEdit == false) {\r\n this.serviceObj.AddNotificationType(this.addNotificationType.value).subscribe((response: number) => {\r\n if (response) {\r\n this._snackBar.open('Notification type record added successfully.', '', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() =>\r\n this.formGroupDirective.resetForm(), 0)\r\n this.getNotificationTypes();\r\n this.display = false;\r\n this.reset();\r\n this.serviceObj.editMode = false;\r\n }\r\n },\r\n error => {\r\n\r\n this._snackBar.open(error.error, '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() =>\r\n this.formGroupDirective.resetForm(), 0)\r\n });\r\n }\r\n else {\r\n this.serviceObj.UpdateNotificationType(this.addNotificationType.value).subscribe((response: number) => {\r\n if (response) {\r\n this._snackBar.open('Updated notification.', '', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() =>\r\n this.formGroupDirective.resetForm(), 0)\r\n this.getNotificationTypes();\r\n this.reset();\r\n this.display = false;\r\n this.serviceObj.editMode = false;\r\n }\r\n },\r\n error => {\r\n this._snackBar.open(error.error, '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() =>\r\n this.formGroupDirective.resetForm(), 0)\r\n });\r\n }\r\n }\r\n }\r\n search(query: string) {\r\n let result = this.select(query)\r\n this.abc = result;\r\n }\r\n\r\n select(query: string): DropDownType[] {\r\n ``\r\n let result: DropDownType[] = [];\r\n for (let category of this.categoriesList) {\r\n if (category.label.toLowerCase().indexOf(query) > -1) {\r\n result.push(category)\r\n }\r\n }\r\n return result\r\n }\r\n}","\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n Category\r\n *\r\n \r\n \r\n \r\n Select Category\r\n \r\n {{category.label}}\r\n \r\n \r\n \r\n \r\n Category Required.\r\n \r\n \r\n\r\n
\r\n
\r\n \r\n Notification Type\r\n *\r\n \r\n \r\n \r\n Notification Type is Required\r\n \r\n \r\n\r\n
\r\n
\r\n \r\n Notification Type Description *\r\n \r\n \r\n Notification Description is Required\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 \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 \r\n \r\n\r\n
Category Name {{element.CategoryName}} Notification Type {{element.NotificationCode}} Notification Type Description\r\n {{element.NotificationDescription}} Edit \r\n \r\n
No data
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { Validators, FormBuilder, FormGroup, FormGroupDirective, FormControl } from '@angular/forms';\r\nimport { PracticeAreaService } from '../../services/practice-area.service';\r\nimport { PracticeArea } from '../../models/practicearea.model';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { ErrorStateMatcher } from '@angular/material/core';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { Observable } from 'rxjs';\r\nimport { EmployeeStatusService } from '../../services/employeestatus.service';\r\n\r\n@Component({\r\n selector: 'app-practice-area',\r\n templateUrl: './practice-area.component.html',\r\n styleUrls: ['./practice-area.component.scss'],\r\n providers: [EmployeeStatusService],\r\n})\r\nexport class PracticeAreaComponent implements OnInit {\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n btnLabel: string = \"\";\r\n isEdit: boolean;\r\n addPracticeArea: FormGroup;\r\n formSubmitted = false;\r\n practiceAreaList: PracticeArea[];\r\n selectedRow: PracticeArea;\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n resources = servicePath.API.PagingConfigValue;\r\n usersList = [];\r\n filteredOptionsName: Observable;\r\n controlName: string;\r\n\r\n dataSource: MatTableDataSource;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n displayedColumns: string[] = ['PracticeAreaCode', 'PracticeAreaDescription','PracticeAreaHeadName', 'Edit'];\r\n\r\n constructor(private _practiceAreaService: PracticeAreaService,\r\n private fb: FormBuilder, private _snackBar: MatSnackBar,\r\n private service: EmployeeStatusService,\r\n public navService: NavService) {\r\n this.PageSize = this.resources.PageSize;\r\n this.PageDropDown = this.resources.PageDropDown;\r\n\r\n\r\n this._practiceAreaService.practiceAreaList.subscribe((data) => {\r\n this.practiceAreaList = data;\r\n this.dataSource = new MatTableDataSource(this.practiceAreaList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n });\r\n\r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n this.applyFilter(responseData);\r\n })\r\n }\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.practiceAreaList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n }\r\n ngOnInit() {\r\n this.addPracticeArea = this.fb.group({\r\n PracticeAreaDescription: ['', [Validators.required, Validators.maxLength(100)]],\r\n PracticeAreaCode: ['', [Validators.required, Validators.maxLength(100)]],\r\n PracticeAreaHeadId: ['', [Validators.required]]\r\n\r\n });\r\n\r\n this._practiceAreaService.practiceAreaEdit.subscribe(data => {\r\n if (this._practiceAreaService.editMode == true) {\r\n this.isEdit = this._practiceAreaService.editMode;\r\n this.addPracticeArea.patchValue({\r\n 'PracticeAreaDescription': data.PracticeAreaDescription,\r\n 'PracticeAreaCode': data.PracticeAreaCode,\r\n 'PracticeAreaHeadId':{\r\n label: data.PracticeAreaHeadName,\r\n value: data.PracticeAreaHeadId,\r\n }\r\n });\r\n this.btnLabel = \"Update\";\r\n }\r\n });\r\n this._practiceAreaService.practiceAreaList.subscribe((data) => {\r\n this.practiceAreaList = data;\r\n });\r\n this.getPracticeAreas();\r\n this.getUsersList();\r\n\r\n this.btnLabel = \"Save\";\r\n this.Reset();\r\n }\r\n\r\n addpracticeAreas(): void {\r\n this.formSubmitted = true;\r\n var practiceArea = new PracticeArea();\r\n practiceArea.PracticeAreaCode = this.addPracticeArea.value.PracticeAreaCode;\r\n practiceArea.PracticeAreaDescription = this.addPracticeArea.value.PracticeAreaDescription;\r\n practiceArea.PracticeAreaCode.trim();\r\n practiceArea.PracticeAreaDescription.trim();\r\n practiceArea.PracticeAreaHeadId = this.addPracticeArea.value.PracticeAreaHeadId?.value;\r\n if (this._practiceAreaService.editMode == true) {\r\n practiceArea.PracticeAreaId = this._practiceAreaService.practiceAreaEdit.value.PracticeAreaId;\r\n practiceArea.IsActive = this._practiceAreaService.practiceAreaEdit.value.IsActive;\r\n }\r\n if (this.addPracticeArea.valid == true) {\r\n this._practiceAreaService.createPracticeAreas(practiceArea).subscribe((res: number) => {\r\n if (res != null) {\r\n this._practiceAreaService.getPracticeAreas();\r\n if (this._practiceAreaService.editMode == false) {\r\n this._snackBar.open('Practice area record added successfully.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() =>\r\n this.formGroupDirective.resetForm(), 0)\r\n }\r\n\r\n else {\r\n this._snackBar.open('Practice area record updated successfully.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() =>\r\n this.formGroupDirective.resetForm(), 0)\r\n }\r\n\r\n this.Reset();\r\n }\r\n },\r\n error => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() =>\r\n this.formGroupDirective.resetForm(), 0)\r\n\r\n\r\n });\r\n\r\n }\r\n\r\n }\r\n getPracticeAreas(): void {\r\n this._practiceAreaService.getPracticeAreas();\r\n }\r\n\r\n editPracticeArea(practiceAreaEdit): void {\r\n this._practiceAreaService.editMode = true;\r\n this._practiceAreaService.practiceAreaEdit.next(practiceAreaEdit);\r\n this.addPracticeArea.patchValue({\r\n 'PracticeAreaDescription': practiceAreaEdit.PracticeAreaDescription,\r\n 'PracticeAreaCode': practiceAreaEdit.PracticeAreaCode,\r\n 'PracticeAreaHeadId':{\r\n label: practiceAreaEdit.PracticeAreaHeadName,\r\n value: practiceAreaEdit.PracticeAreaHeadId,\r\n }\r\n });\r\n \r\n }\r\n Reset(): void {\r\n this.formSubmitted = false;\r\n this.addPracticeArea.reset();\r\n this._practiceAreaService.editMode = false;\r\n this.btnLabel = \"Save\";\r\n this.isEdit = false;\r\n }\r\n\r\n getUsersList() {\r\n this.service.GetAssociateNames().subscribe((res: any[]) => {\r\n // tslint:disable-next-line:prefer-const\r\n let dataList: any[] = res;\r\n this.usersList = [];\r\n dataList.forEach((e) => {\r\n this.usersList.push({ label: e.EmpName, value: e.EmpId });\r\n });\r\n this.filteredOptionsName = this.addPracticeArea\r\n .get('PracticeAreaHeadId')\r\n .valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterName(value))\r\n );\r\n });\r\n }\r\n\r\n private _filterName(value): any {\r\n let filterValue;\r\n if (typeof value === 'string') {\r\n filterValue = value.toLowerCase();\r\n } else {\r\n if (value !== null) {\r\n filterValue = value.label.toLowerCase();\r\n } else {\r\n return this.usersList;\r\n }\r\n }\r\n\r\n return this.usersList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n }\r\n\r\n clearInput(event : any, fieldName: string){\r\n if (fieldName == 'PracticeAreaHeadId'){\r\n event.stopPropagation();\r\n this.addPracticeArea.get('PracticeAreaHeadId').reset();\r\n }\r\n }\r\n\r\n getFormControl(value:any){\r\n this.controlName = value;\r\n }\r\n \r\n displayFn(user: any) {\r\n return user ? user.label : '';\r\n }\r\n}","\r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n Practice Area Code\r\n *\r\n \r\n \r\n \r\n \r\n Practice Area Code Required\r\n \r\n \r\n Only 100 characters.\r\n \r\n \r\n
\r\n
\r\n \r\n Practice Area Description\r\n *\r\n \r\n \r\n \r\n \r\n Practice Area Description Required\r\n \r\n \r\n Only 100 characters.\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n Practice Area Head\r\n *\r\n \r\n \r\n \r\n \r\n No matching\r\n value found\r\n \r\n {{ option.label }}\r\n \r\n \r\n \r\n Associate Required\r\n \r\n \r\n Select Associate from given options\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 \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 \r\n \r\n \r\n\r\n
Practice Area Code {{element.PracticeAreaCode}} Practice Area Description {{element.PracticeAreaDescription}} Practice Area Head {{element.PracticeAreaHeadName}} Edit \r\n \r\n
No data
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { ProficiencyLevelService } from '../../services/proficiency-level.service';\r\nimport { FormGroup, FormControl, Validators, FormBuilder, FormGroupDirective } from '@angular/forms';\r\nimport { ProficiencyLevel } from '../../models/proficiency.model';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport * as servicePath from '../../../../core/service-paths';\r\n\r\n\r\n@Component({\r\n selector: 'app-proficiency-level',\r\n templateUrl: './proficiency-level.component.html',\r\n styleUrls: ['./proficiency-level.component.scss']\r\n})\r\n\r\nexport class ProficiencyLevelComponent implements OnInit {\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n btnLabel: string;\r\n valid = true;\r\n addProficiencyLevel: FormGroup;\r\n formSubmitted = false;\r\n proficiencyLevelData: ProficiencyLevel[];\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n resources = servicePath.API.PagingConfigValue;\r\n\r\n dataSource: MatTableDataSource;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n displayedColumns: string[] = ['ProficiencyLevelCode', 'ProficiencyLevelDescription', 'Edit'];\r\n\r\n\r\n constructor(private serviceObj: ProficiencyLevelService,\r\n private fb: FormBuilder, private _snackBar: MatSnackBar,\r\n public navService: NavService,) {\r\n this.PageSize = this.resources.PageSize;\r\n this.PageDropDown = this.resources.PageDropDown;\r\n\r\n\r\n this.serviceObj.proficiencyLevelData.subscribe((data) => {\r\n this.proficiencyLevelData = data;\r\n this.dataSource = new MatTableDataSource(this.proficiencyLevelData);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n });\r\n\r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n this.applyFilter(responseData);\r\n })\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.addProficiencyLevel = this.fb.group({\r\n\r\n ProficiencyLevelCode: ['', [Validators.required]],\r\n ProficiencyLevelDescription: ['', [Validators.required]],\r\n\r\n });\r\n this.btnLabel = \"Save\";\r\n this.serviceObj.editObj.subscribe((data) => {\r\n if (this.serviceObj.editMode == true) {\r\n this.addProficiencyLevel.patchValue(data);\r\n this.btnLabel = \"Update\";\r\n }\r\n });\r\n this.GetProficiencyLevelData();\r\n this.Reset();\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.proficiencyLevelData);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n }\r\n\r\n CreateProficiencyLevelData(): void {\r\n this.formSubmitted = true;\r\n var creatingObj = new ProficiencyLevel();\r\n\r\n creatingObj.ProficiencyLevelCode = this.addProficiencyLevel.value.ProficiencyLevelCode;\r\n creatingObj.ProficiencyLevelDescription = this.addProficiencyLevel.value.ProficiencyLevelDescription;\r\n\r\n if (this.addProficiencyLevel.valid == true) {\r\n creatingObj.ProficiencyLevelCode = this.addProficiencyLevel.value.ProficiencyLevelCode;\r\n creatingObj.ProficiencyLevelDescription = this.addProficiencyLevel.value.ProficiencyLevelDescription;\r\n if (this.serviceObj.editMode == true) {\r\n creatingObj.IsActive = this.serviceObj.editObj.value.IsActive;\r\n creatingObj.ProficiencyLevelId = this.serviceObj.editObj.value.ProficiencyLevelId;\r\n }\r\n this.serviceObj.createProficiencyLevelData(creatingObj)\r\n .subscribe(res => {\r\n if (res) {\r\n this.serviceObj.getProficiencyLevelData();\r\n if (this.serviceObj.editMode == false) {\r\n this._snackBar.open('Proficiency level record added successfully.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() =>\r\n this.formGroupDirective.resetForm(), 0)\r\n\r\n }\r\n else {\r\n this._snackBar.open('Proficiency level record updated successfully.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n setTimeout(() =>\r\n this.formGroupDirective.resetForm(), 0)\r\n this.Reset();\r\n\r\n }\r\n else {\r\n this._snackBar.open('Unable to add proficiency level.', 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() =>\r\n this.formGroupDirective.resetForm(), 0)\r\n this.Reset();\r\n }\r\n },\r\n error => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() =>\r\n this.formGroupDirective.resetForm(), 0)\r\n this.Reset();\r\n\r\n });\r\n }\r\n\r\n }\r\n GetProficiencyLevelData(): void {\r\n this.serviceObj.getProficiencyLevelData();\r\n }\r\n edditProficiencyLevel(ProficiencyLevel): void {\r\n this.serviceObj.editMode = true;\r\n this.serviceObj.editObj.next(ProficiencyLevel);\r\n }\r\n\r\n Validate(value): void {\r\n let textRe = /^[a-zA-Z ]*$/;\r\n this.valid = textRe.test(value);\r\n }\r\n Reset(): void {\r\n this.formSubmitted = false;\r\n this.addProficiencyLevel.reset();\r\n this.btnLabel = \"Save\";\r\n this.serviceObj.editMode = false;\r\n }\r\n\r\n}","\r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n Proficiency Level Code\r\n *\r\n \r\n \r\n \r\n \r\n Proficiency Level Code Required.\r\n \r\n \r\n
\r\n
\r\n \r\n Proficiency Level Description\r\n *\r\n \r\n \r\n \r\n \r\n Proficiency Level Description Required.\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 \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
Proficiency Level Code {{element.ProficiencyLevelCode}} Proficiency Level Description\r\n {{element.ProficiencyLevelDescription}} Edit \r\n \r\n
No data
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { ProjectTypeService } from '../../services/project-type.service';\r\nimport { FormGroup, FormControl, Validators, FormBuilder, FormGroupDirective } from '@angular/forms';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { ProjectTypeData } from '../../models/projecttype.model';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport * as servicePath from '../../../../core/service-paths';\r\n\r\n@Component({\r\n selector: 'app-project-type',\r\n templateUrl: './project-type.component.html',\r\n styleUrls: ['./project-type.component.scss']\r\n})\r\nexport class ProjectTypeComponent implements OnInit {\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n valid = false;\r\n btnLabel = \"\";\r\n addProjectType: FormGroup;\r\n formSubmitted: boolean;\r\n projectTypeData: ProjectTypeData[];\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n resources = servicePath.API.PagingConfigValue;\r\n displayedColumns: string[] = ['ProjectTypeCode', 'Description', 'Edit'];\r\n dataSource: MatTableDataSource;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n constructor(private serviceObj: ProjectTypeService, private _snackBar: MatSnackBar,\r\n private fb: FormBuilder, public navService: NavService) {\r\n this.PageSize = this.resources.PageSize;\r\n this.PageDropDown = this.resources.PageDropDown;\r\n this.serviceObj.projectTypeData.subscribe(data => {\r\n this.projectTypeData = data;\r\n this.dataSource = new MatTableDataSource(this.projectTypeData);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n });\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n })\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n this.addProjectType = this.fb.group({\r\n\r\n ProjectTypeCode: ['', [Validators.required]],\r\n Description: ['', [Validators.required]],\r\n\r\n });\r\n this.btnLabel = \"Save\";\r\n\r\n this.serviceObj.editObj.subscribe((data) => {\r\n if (this.serviceObj.editMode == true) {\r\n this.addProjectType.patchValue(data);\r\n this.btnLabel = \"Update\";\r\n }\r\n });\r\n\r\n this.GetProjectTypeData();\r\n this.Reset();\r\n }\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.projectTypeData);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n }\r\n\r\n\r\n CreateProjectType(): void {\r\n this.formSubmitted = true;\r\n var creatingObj = new ProjectTypeData();\r\n\r\n creatingObj.Description = this.addProjectType.value.Description;\r\n creatingObj.ProjectTypeCode = this.addProjectType.value.ProjectTypeCode;\r\n\r\n if (this.serviceObj.editMode == true) {\r\n creatingObj.ProjectTypeId = this.serviceObj.editObj.value.ProjectTypeId;\r\n }\r\n if (this.addProjectType.valid == true) {\r\n\r\n this.serviceObj.createProjectType(creatingObj).subscribe(res => {\r\n if (res) {\r\n this.serviceObj.getProjectTypeData();\r\n if (this.serviceObj.editMode == false) {\r\n this._snackBar.open('Project type record added successfully.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() =>\r\n this.formGroupDirective.resetForm(), 0)\r\n this.Reset();\r\n }\r\n\r\n else {\r\n this._snackBar.open('Project type record updated successfully.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n\r\n setTimeout(() =>\r\n this.formGroupDirective.resetForm(), 0)\r\n this.Reset();\r\n }\r\n else {\r\n this._snackBar.open('Unable to add project type.', '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() =>\r\n this.formGroupDirective.resetForm(), 0)\r\n this.Reset();\r\n }\r\n\r\n },\r\n error => {\r\n error;\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() =>\r\n this.formGroupDirective.resetForm(), 0)\r\n\r\n });\r\n }\r\n\r\n }\r\n Validate(value): void {\r\n let textRe = /^[a-zA-Z ]*$/;\r\n this.valid = textRe.test(value);\r\n }\r\n GetProjectTypeData(): void {\r\n this.serviceObj.getProjectTypeData();\r\n }\r\n\r\n edditProjecttype(ProjectTypeData): void {\r\n this.serviceObj.editMode = true;\r\n this.serviceObj.editObj.next(ProjectTypeData);\r\n }\r\n Reset(): void {\r\n this.formSubmitted = false;\r\n this.addProjectType.reset();\r\n this.serviceObj.editMode = false;\r\n this.btnLabel = \"Save\";\r\n }\r\n\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n \r\n Project Type Code\r\n *\r\n \r\n \r\n \r\n \r\n Project Type Code Required.\r\n \r\n \r\n
\r\n
\r\n \r\n Description\r\n *\r\n \r\n \r\n \r\n \r\n Description Required.\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 \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
Project Type Code {{element.ProjectTypeCode}} Project Type Description {{element.Description}} Edit \r\n \r\n
No data
\r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormGroup, FormControl, Validators, FormBuilder, FormGroupDirective } from '@angular/forms';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { GradesService } from '../../services/grades.service';\r\nimport { RoleTypeService } from '../../services/role-type.service';\r\nimport { Roletype } from '../../models/roletype.model';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { RoleService } from '../../services/role.service';\r\nimport { Department } from '../../models/department.model';\r\nimport { MasterDataService } from \"src/app/core/services/masterdata.service\";\r\nimport { GenericType } from '../../../master-layout/models/dropdowntype.model';\r\n\r\n@Component({\r\n selector: 'app-role-type',\r\n templateUrl: './role-type.component.html',\r\n styleUrls: ['./role-type.component.scss']\r\n})\r\nexport class RoleTypeComponent implements OnInit {\r\n formSubmitted = false;\r\n buttonTitle: string = 'SAVE';\r\n roleTypeForm: FormGroup;\r\n gradeList: any; \r\n departmentId :number = 0;\r\n roleTypeId : number = 0;\r\n roleTypeList: any;\r\n financialYearList= [];\r\n departmentList: any;\r\n dataSource = new MatTableDataSource();\r\n editMode: boolean = false;\r\n _selectedFinancialYearId: string;\r\n public financialYearId: number = 0;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n displayedColumns: string[] = ['Department','RoleTypeName', 'RoleTypeDescription','Grade', 'Edit'];\r\n\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n constructor(private fb: FormBuilder,\r\n private _roleTypeService: RoleTypeService,\r\n private _gradeService: GradesService,\r\n private _rolesService: RoleService,\r\n private _masterDataService: MasterDataService,\r\n private _snackBar: MatSnackBar, public navService: NavService) {\r\n this.GetFinancialYears(); \r\n this.GetDepartments();\r\n this.GetGrades(); \r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n this.applyFilter(responseData);\r\n })\r\n }\r\n\r\n ngOnInit(): void {\r\n this.roleTypeForm = new FormGroup({\r\n financialYearId: new FormControl('', [Validators.required]), \r\n DepartmentId: new FormControl('', [Validators.required]),\r\n RoleTypeId: new FormControl('', [Validators.required]),\r\n GradeId: new FormControl('', [Validators.required]),\r\n GradeRoleTypeId: new FormControl(0), \r\n IsActive: new FormControl(true),\r\n GradeIds: new FormControl('')\r\n })\r\n }\r\n\r\n onchange(event) { \r\n this.financialYearId = event.value;\r\n this.GetGradeRoleTypes(); \r\n this.GetRoleTypes(); \r\n }\r\n\r\n onDepartmentChange(event)\r\n {\r\n this.departmentId = event.value;\r\n this.GetRoleTypes(); \r\n }\r\n\r\n GetGrades() {\r\n this._gradeService.getGradesDetails();\r\n this._gradeService.GradesData.subscribe((data) => {\r\n this.gradeList = data;\r\n });\r\n }\r\n GetGradeRoleTypes() {\r\n this._roleTypeService.GetGradeRoleTypes(this.financialYearId, this.departmentId, this.roleTypeId).subscribe((data) => {\r\n this.roleTypeList = data;\r\n this.dataSource = new MatTableDataSource(this.roleTypeList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.dataSource.sortingDataAccessor = (data, attribute) => data[attribute];\r\n });\r\n }\r\n\r\n GetRoleTypes(){\r\n this._roleTypeService.GetRoleTypesForDropdown(this.financialYearId, this.departmentId).subscribe((res: GenericType[]) => {\r\n this.roleTypeList = [];\r\n res.forEach(element => {\r\n this.roleTypeList.push({ label: element.Name, value: element.Id });\r\n });\r\n }, (error) => {\r\n this._snackBar.open(error.error.text, 'x', {\r\n duration: 3000, \r\n horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n });\r\n\r\n }\r\n \r\n\r\n GetDepartments(){\r\n this._rolesService.getDepartmentList().subscribe((res: Department[]) => {\r\n this.departmentList = [];\r\n res.forEach(element => {\r\n this.departmentList.push({ label: element.Description, value: element.DepartmentId });\r\n });\r\n }, (error) => {\r\n this._snackBar.open(error.error.text, 'x', {\r\n duration: 3000, \r\n horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n });\r\n }\r\n\r\n GetFinancialYears(): void {\r\n this._masterDataService.GetFinancialYears().subscribe(\r\n (yearsdata: any[]) => {\r\n yearsdata.forEach((e: any) => {\r\n this.financialYearList.push({\r\n label: e.FinancialYearName,\r\n value: e.Id\r\n });\r\n // if (e.Id == this._selectedFinancialYearId)\r\n // this.financialYearName = e.FinancialYearName;\r\n }); \r\n this.financialYearId = this.financialYearList[0].value;\r\n this.roleTypeForm.get(\"financialYearId\").setValue(this.financialYearId);\r\n this.roleTypeForm.controls[\"financialYearId\"].enable();\r\n this.GetGradeRoleTypes();\r\n this.GetRoleTypes(); \r\n },\r\n error => {\r\n this._snackBar.open(\"Failed to get Financial Year List\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n // this.messageService.add({\r\n // severity: \"error\",\r\n // summary: \"Error Message\",\r\n // detail: \"Failed to get Financial Year List\"\r\n // });\r\n }\r\n );\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.roleTypeList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n }\r\n\r\n clear() {\r\n this.editMode = false;\r\n this.roleTypeForm.get('IsActive').patchValue(true);\r\n this.roleTypeForm.reset({\r\n IsActive: this.roleTypeForm.get('IsActive').value, \r\n financialYearId: this.roleTypeForm.get('financialYearId').value, \r\n GradeRoleTypeId: 0\r\n })\r\n\r\n setTimeout(() => this.formGroupDirective.resetForm({\r\n IsActive: this.roleTypeForm.get('IsActive').value, \r\n financialYearId: this.roleTypeForm.get('financialYearId').value, \r\n GradeRoleTypeId: 0,\r\n }), 0);\r\n //\r\n // this.roleTypeForm.controls.RoleTypeName.enable();\r\n this.buttonTitle = 'SAVE';\r\n }\r\n\r\n onSubmit() {\r\n this.formSubmitted = true;\r\n if (this.roleTypeForm.valid) {\r\n let gradeIds = \"\";\r\n let grade_data :any ; \r\n this.roleTypeForm.get('GradeIds').setValue(this.roleTypeForm.value.GradeId.join(','));\r\n if (this.buttonTitle == 'SAVE') { \r\n // this.roleTypeForm.get('RoleTypeId').setValue(0); \r\n this._roleTypeService.CreateRoleTypes(this.roleTypeForm.value).subscribe(response => {\r\n this.GetGradeRoleTypes();\r\n this.clear();\r\n this._snackBar.open('Role Type added successfully.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n }, (error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n });\r\n }\r\n else {\r\n this._roleTypeService.CreateRoleTypes(this.roleTypeForm.value).subscribe(response => {\r\n this.GetGradeRoleTypes();\r\n this.clear();\r\n this._snackBar.open('Role Type updated successfully.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n }, (error) => {\r\n this._snackBar.open('Not updated successfully', 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n });\r\n }\r\n }\r\n }\r\n\r\n Delete(id) {\r\n this._roleTypeService.DeleteRoleTypes(id).subscribe(response => {\r\n this.GetGradeRoleTypes();\r\n }, error => {\r\n\r\n });\r\n }\r\n\r\n onEdit(data: Roletype) {\r\n this.departmentId = data.DepartmentId;\r\n this.GetRoleTypes();\r\n this.roleTypeForm.patchValue(data);\r\n this.buttonTitle = 'UPDATE';\r\n this.editMode = true;\r\n // this.roleTypeForm.controls.RoleTypeName.disable();\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n \r\n Financial Year\r\n \r\n \r\n {{fin.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Department\r\n \r\n Select Department\r\n \r\n {{dept.label}}\r\n \r\n \r\n \r\n Department is Required\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Role Type\r\n \r\n Select RoleType\r\n \r\n {{role.label}}\r\n \r\n \r\n \r\n RoleType is required\r\n \r\n \r\n
\r\n
\r\n \r\n Grade\r\n \r\n Select Grade\r\n \r\n {{g.GradeCode}}\r\n \r\n \r\n \r\n Grade is required\r\n \r\n \r\n
\r\n
\r\n Is Active\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 \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 \r\n \r\n \r\n
Department {{element.DepartmentDescription}} Role Type {{element.RoleTypeName}} Description {{element.RoleTypeDescription}} Grade {{element.GradeName}} Edit \r\n edit\r\n
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormControl, FormGroup, FormGroupDirective, Validators } from '@angular/forms';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { RoleService } from '../../services/role.service';\r\nimport { Department } from '../../models/department.model';\r\nimport { RoleData } from '../../models/role-data.model'\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { Router } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\n\r\ninterface SelectItem {\r\n value: number;\r\n label: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-roles-table',\r\n templateUrl: './roles-table.component.html',\r\n styleUrls: ['./roles-table.component.scss']\r\n})\r\nexport class RolesTableComponent implements OnInit {\r\n showadd=false;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n searchDepartment: FormGroup;\r\n showTable: boolean;\r\n formSubmitted = false;\r\n roleserviceObj:Subscription\r\n\r\n departmentList: SelectItem[];\r\n selectedRoleData: any;\r\n rolesData: RoleData[];\r\n deptId: number;\r\n\r\n dataSource: MatTableDataSource;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort;\r\n \r\n\r\n displayedColumns: string[] = ['FunctionalRole', 'RoleDescription', 'Edit'];\r\n\r\n\r\n constructor(private _rolesService: RoleService, private route: Router, private _snackBar: MatSnackBar, public navService: NavService) {\r\n\r\n\r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n this.applyFilter(responseData);\r\n })\r\n }\r\n ngOnInit(): void {\r\n\r\n this.searchDepartment = new FormGroup({\r\n DepartmentId: new FormControl(null,Validators.required)\r\n });\r\n this.roleserviceObj=this._rolesService.selectedDepartment.subscribe(data => {\r\n this.searchDepartment.value.DepartmentId = data;\r\n if(this._rolesService.selectedDepartmentname){\r\n this.searchDepartment.controls['DepartmentId'].setValue(data);\r\n // this.showadd=true;\r\n // this.showTable=true;\r\n this.searchRoleByDepartment(data);\r\n return;\r\n }\r\n this.deptId = this.searchDepartment.value.DepartmentId;\r\n this.dataSource = new MatTableDataSource(this.searchDepartment.value.DepartmentId);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n });\r\n \r\n\r\n this.getDepartmentList();\r\n\r\n\r\n\r\n }\r\n\r\n\r\n getDepartmentList(): void {\r\n this._rolesService.getDepartmentList().subscribe((res: Department[]) => {\r\n this.departmentList = [];\r\n res.forEach(element => {\r\n this.departmentList.push({ label: element.Description, value: element.DepartmentId });\r\n });\r\n }, (error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n\r\n\r\n\r\n\r\n searchRoleByDepartment(selectedDepartment): void {\r\n this.formSubmitted = true;\r\n this.showTable = true;\r\n this.showadd=true;\r\n this._rolesService.getRoleDetailsByDepartmentID(selectedDepartment).subscribe((res: RoleData[]) => {\r\n this.rolesData = res;\r\n this.dataSource = new MatTableDataSource(this.rolesData);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n });\r\n }\r\n\r\n createRole(selectedDepartment): void {\r\n this._rolesService.selectedDepartment.next(this.searchDepartment.value.DepartmentId);\r\n this._rolesService.editMode =false;\r\n this.route.navigate(['/admin/addrole']);\r\n }\r\n\r\n editRole(roleData) {\r\n\r\n this._rolesService.selectedDepartment.next(this.searchDepartment.value.DepartmentId);\r\n this._rolesService.editMode = true;\r\n this._rolesService.roleData.next(roleData);\r\n this.route.navigate(['/admin/addrole']);\r\n }\r\n\r\n cancel(): void {\r\n this.formSubmitted = false;\r\n this.searchDepartment.reset();\r\n setTimeout(() => this.formGroupDirective.resetForm(), 0)\r\n this.showTable = false;\r\n this.showadd=false;\r\n // this._skillsService.editMode = false;\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.rolesData);\r\n\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n\r\n }\r\n }\r\n \r\n ngOnDestroy() {\r\n this._rolesService.selectedDepartmentname=false;\r\n this.roleserviceObj.unsubscribe();\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n \r\n Department *\r\n \r\n Select Deparment\r\n \r\n {{dept.label}}\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 \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
Functional Role {{role.SGRolePrefix.PrefixName}} {{role.SGRoleSuffix.SuffixName}}\r\n {{role.SGRole.SGRoleName}} Functional Role Description\r\n {{role.RoleDescription}} Edit \r\n edit\r\n
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormControl, FormGroup, FormGroupDirective, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { Router } from '@angular/router';\r\nimport { RoleData, RoleSufixPrefix } from 'src/app/modules/master-layout/models/role.model';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { Department } from '../../models/department.model';\r\nimport { RoleService } from '../../services/role.service';\r\nimport { editorConfig } from '../../../../core/angularEditorConfiguratioan';\r\n\r\n\r\ninterface SelectItem {\r\n value: number;\r\n label: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-roles',\r\n templateUrl: './roles.component.html',\r\n styleUrls: ['./roles.component.scss']\r\n})\r\nexport class RolesComponent implements OnInit {\r\n selectedStatus:any\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n addRole: FormGroup;\r\n deptId;\r\n destroyflag=false;\r\n editDisable = false;\r\n btnLabel: string = \"\";\r\n editorConfig = editorConfig;\r\n departmentList: SelectItem[];\r\n keyFunctionList: SelectItem[] = [];\r\n seniorityList: SelectItem[] = [];\r\n specialityList: SelectItem[] = [];\r\n\r\n formSubmitted = false;\r\n disableDepartment: boolean = false;\r\n disableSenoritySpeciality: boolean = false;\r\n showSenoritySpeciality: boolean = false;\r\n\r\n roleMasterdata = new RoleData();\r\n\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n\r\n constructor(private _rolesService: RoleService, private _snackBar: MatSnackBar, private route: Router) { }\r\n\r\n ngOnInit(): void {\r\n\r\n this.btnLabel = \"SAVE\";\r\n\r\n this.addRole = new FormGroup({\r\n DepartmentId: new FormControl(null, [Validators.required]),\r\n PrefixID: new FormControl(null),\r\n SGRoleID: new FormControl(null, [Validators.required]),\r\n SuffixID: new FormControl(null),\r\n DepartmentCode: new FormControl(null),\r\n RoleName: new FormControl(null),\r\n RoleDescription: new FormControl(null, [Validators.maxLength(4000), Validators.minLength(2)]),\r\n EducationQualification: new FormControl(null, [Validators.maxLength(500), Validators.minLength(2)]),\r\n KeyResponsibilities: new FormControl(null, [Validators.maxLength(500), Validators.minLength(2)]),\r\n RoleMasterID: new FormControl(0)\r\n });\r\n\r\n this._rolesService.roleData.subscribe(data => {\r\n\r\n if (this._rolesService.editMode == true) {\r\n this.addRole.patchValue(data);\r\n this.btnLabel = \"UPDATE\";\r\n this.editDisable = true;\r\n }\r\n });\r\n\r\n this._rolesService.selectedDepartment.subscribe(data => {\r\n this.deptId = data;\r\n this.addRole.value.DepartmentId = this.deptId;\r\n });\r\n\r\n this.getDepartmentList();\r\n }\r\n\r\n\r\n getDepartmentList(): void {\r\n this._rolesService.getDepartmentList().subscribe((res: Department[]) => {\r\n this.departmentList = [];\r\n res.forEach(element => {\r\n this.departmentList.push({ label: element.Description, value: element.DepartmentId });\r\n });\r\n\r\n if (this.deptId > 0) {\r\n this.addRole.controls['DepartmentId'].setValue(this.deptId);\r\n this.disableDepartment = true;\r\n this.getRoleSuffixAndPrefixlist(this.deptId);\r\n }\r\n }, (error) => {\r\n this._snackBar.open(error.error.text, 'x', {\r\n duration: 3000, \r\n horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n });\r\n }\r\n\r\n getRoleSuffixAndPrefixlist(DepartmentId: number): void {\r\n let status =this.departmentList.find(s => s.value == DepartmentId);\r\n if (status)\r\n this.selectedStatus = status.label;\r\n this._rolesService.selectedDepartmentname=this.selectedStatus\r\n if (DepartmentId == 1) {\r\n this.showSenoritySpeciality = true;\r\n }\r\n else\r\n this.showSenoritySpeciality = false;\r\n this._rolesService.GetRoleSuffixAndPrefix(DepartmentId).subscribe(\r\n (roleSufixPrefixResponse: RoleSufixPrefix) => {\r\n this.roleMasterdata.SGRoleID = null;\r\n this.roleMasterdata.PrefixID = null;\r\n this.roleMasterdata.SuffixID = null;\r\n this.keyFunctionList = [];\r\n roleSufixPrefixResponse.Roles.forEach((element) => {\r\n this.keyFunctionList.push({ label: element.SGRoleName, value: element.SGRoleID });\r\n });\r\n this.seniorityList = [];\r\n roleSufixPrefixResponse.Prefix.forEach((element) => {\r\n this.seniorityList.push({ label: element.PrefixName, value: element.PrefixID });\r\n });\r\n this.specialityList = [];\r\n roleSufixPrefixResponse.Suffix.forEach((element) => {\r\n this.specialityList.push({ label: element.SuffixName, value: element.SuffixID });\r\n });\r\n }\r\n );\r\n }\r\n\r\n onAddRole(): void {\r\n\r\n this.formSubmitted = true;\r\n if (this.addRole.valid == true) {\r\n if (this.addRole.value.EducationQualification == null)\r\n this.addRole.value.EducationQualification = \"\";\r\n // else\r\n // this.addRole.value.EducationQualification = this.addRole.value.EducationQualification.content[0].content[0].text;\r\n if (this.addRole.value.KeyResponsibilities == null)\r\n this.addRole.value.KeyResponsibilities = \"\";\r\n // else\r\n // this.addRole.value.KeyResponsibilities = this.addRole.value.KeyResponsibilities.content[0].content[0].text;\r\n if (this._rolesService.editMode == false) {\r\n this._rolesService.createRole(this.addRole.value).subscribe((res) => {\r\n if (res) {\r\n this._rolesService.selectedDepartmentname = true;\r\n if (this._rolesService.editMode == false) {\r\n this._snackBar.open('Role record added successfully.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.cancel();\r\n }\r\n this._rolesService.selectedDepartmentname=true;\r\n this.destroyflag=true;\r\n setTimeout(() => {\r\n this.route.navigate(['/admin/rolelist/']);\r\n }, 1000);\r\n \r\n }\r\n else if (res == 2627) {\r\n this._snackBar.open('Role already exist', 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.cancel();\r\n }\r\n else {\r\n this._snackBar.open('Unable to add role.', 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n this.cancel();\r\n }\r\n },\r\n error => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n });\r\n }\r\n else {\r\n this.editDisable = false;\r\n\r\n this._rolesService.editRole(this.addRole.value).subscribe((res) => {\r\n if (res) {\r\n this._snackBar.open('Role record updated successfully.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.cancel();\r\n this.route.navigate(['/admin/rolelist/']);\r\n }\r\n else {\r\n this._snackBar.open('Role cannot be updated.', 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n this.cancel();\r\n }\r\n },\r\n error => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n });\r\n this._rolesService.editMode = false;\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n backToRoleList(): void {\r\n this.editDisable = false;\r\n this.destroyflag=true;\r\n this._rolesService.editMode = false;\r\n this._rolesService.selectedDepartmentname=true;\r\n this.cancel();\r\n this.route.navigate(['/admin/rolelist/']);\r\n }\r\n\r\n cancel(): void {\r\n if (this.btnLabel == \"UPDATE\") {\r\n this._rolesService.selectedDepartmentname = true;\r\n this.addRole.controls.RoleDescription.reset();\r\n this.addRole.controls.EducationQualification.reset();\r\n this.addRole.controls.KeyResponsibilities.reset();\r\n }\r\n else {\r\n this.formSubmitted = false;\r\n this.disableSenoritySpeciality = false;\r\n this.showSenoritySpeciality = false;\r\n this.btnLabel = \"SAVE\";\r\n this.editDisable = false;\r\n this.dynamicClientValidations('PrefixID', this.addRole);\r\n this.dynamicClientValidations('SGRoleID', this.addRole);\r\n this.dynamicClientValidations('SuffixID', this.addRole);\r\n this.dynamicClientValidations('RoleDescription', this.addRole);\r\n this.dynamicClientValidations('EducationQualification', this.addRole);\r\n this.dynamicClientValidations('KeyResponsibilities', this.addRole);\r\n\r\n }\r\n\r\n\r\n }\r\n dynamicClientValidations(clientControl: string, newFormClientValidate: FormGroup){\r\n newFormClientValidate.controls[clientControl].setValue(null);\r\n newFormClientValidate.controls[clientControl].setErrors(null);\r\n newFormClientValidate.controls[clientControl].clearValidators();\r\n newFormClientValidate.controls[clientControl].updateValueAndValidity(); \r\n }\r\n ngOnDestroy(){\r\n if(this.destroyflag)\r\n return\r\n else{this._rolesService.selectedDepartmentname=false;\r\n this.cancel();\r\n }\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n \r\n Department *\r\n \r\n Select Deparment\r\n \r\n {{dept.label}}\r\n \r\n \r\n Department Name Required\r\n \r\n \r\n
\r\n
\r\n \r\n Key Function * \r\n \r\n Select Key Function\r\n \r\n {{keyFunction.label}}\r\n \r\n \r\n \r\n Key Function Required\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Seniority \r\n \r\n Select Seniority\r\n \r\n {{seniority.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Speciality \r\n \r\n Select Speciality\r\n \r\n {{speciality.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Role Description\r\n \r\n \r\n Atleast enter 2 characters\r\n \r\n \r\n Only enter 4000 characters\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Only 500 characters are allowed\r\n \r\n \r\n Atleast Enter 2 characters\r\n \r\n
\r\n
\r\n \r\n \r\n Atleast enter 2 spaces\r\n \r\n \r\n Only 500 Characters allowed\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
\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { Seniority } from '../../models/seniority.model';\r\nimport { SeniorityService } from '../../services/seniority.service';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { FormGroup, FormControl, Validators, FormGroupDirective } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { now } from 'moment';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-seniority',\r\n templateUrl: './seniority.component.html',\r\n styleUrls: ['./seniority.component.scss']\r\n})\r\nexport class SeniorityComponent implements OnInit {\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n addSeniorityName: FormGroup;\r\n btnLabel: string = \"\";\r\n displayDialog: boolean = false;\r\n formSubmitted = false;\r\n\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n resources = servicePath.API.PagingConfigValue;\r\n seniorityList: Seniority[];\r\n selectedRow: Seniority;\r\n\r\n dataSource: MatTableDataSource;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n\r\n displayedColumns: string[] = ['PrefixName', 'Edit'];\r\n\r\n\r\n\r\n\r\n constructor(private _seniorityService: SeniorityService, private _snackBar: MatSnackBar, public navService: NavService) {\r\n this.PageSize = this.resources.PageSize;\r\n this.PageDropDown = this.resources.PageDropDown;\r\n\r\n\r\n\r\n\r\n this._seniorityService.seniorityList.subscribe((data) => {\r\n this.seniorityList = data;\r\n this.dataSource = new MatTableDataSource(this.seniorityList);\r\n\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n\r\n\r\n });\r\n\r\n\r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n this.applyFilter(responseData);\r\n })\r\n }\r\n\r\n ngOnInit() {\r\n this.addSeniorityName = new FormGroup({\r\n PrefixName: new FormControl(null, [\r\n Validators.required,\r\n Validators.maxLength(100),\r\n Validators.minLength(2),\r\n ]),\r\n });\r\n this._seniorityService.seniorityEdit.subscribe(data => {\r\n if (this._seniorityService.editMode == true) {\r\n this.addSeniorityName.patchValue(data);\r\n this.btnLabel = \"UPDATE\";\r\n }\r\n });\r\n this.btnLabel = \"SAVE\";\r\n this.cancel();\r\n\r\n this._seniorityService.seniorityList.subscribe((data) => {\r\n this.seniorityList = data;\r\n this.dataSource = new MatTableDataSource(this.seniorityList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n });\r\n this.getSeniorities();\r\n\r\n\r\n }\r\n\r\n getSeniorities(): void {\r\n this._seniorityService.getSeniorities();\r\n }\r\n\r\n editSeniorities(seniorityEdit): void {\r\n this._seniorityService.editMode = true;\r\n this._seniorityService.seniorityEdit.next(seniorityEdit);\r\n }\r\n\r\n\r\n addSeniority(): void {\r\n if (this.addSeniorityName.valid) {\r\n this.formSubmitted = true;\r\n var seniority = new Seniority();\r\n seniority.PrefixName = this.addSeniorityName.value.PrefixName;\r\n if (this._seniorityService.editMode == true) {\r\n seniority.PrefixID = this._seniorityService.seniorityEdit.value.PrefixID;\r\n }\r\n if (this.addSeniorityName.valid == true) {\r\n this._seniorityService.createSeniority(seniority).subscribe(res => {\r\n if (res) {\r\n this._seniorityService.getSeniorities();\r\n if (this._seniorityService.editMode == false)\r\n this._snackBar.open('Seniority record added successfully.', '', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n else\r\n this._snackBar.open('Seniority record updated successfully.', '', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.cancel();\r\n }\r\n else {\r\n this._snackBar.open('Unable to add seniority.', '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.cancel();\r\n }\r\n },\r\n error => {\r\n this._snackBar.open(error.error, '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n\r\n }\r\n\r\n }\r\n }\r\n\r\n cancel(): void {\r\n this.formSubmitted = false;\r\n this.addSeniorityName.reset();\r\n setTimeout(() => this.formGroupDirective.resetForm(), 0);\r\n this._seniorityService.editMode = false;\r\n this.btnLabel = \"SAVE\";\r\n }\r\n\r\n omit_special_char(event: any) {\r\n let k: number;\r\n k = event.charCode; // k = event.keyCode; (Both can be used)\r\n return (\r\n (k > 64 && k < 91) ||\r\n (k > 96 && k < 123) ||\r\n k == 8 ||\r\n k == 32 ||\r\n k == 38 ||\r\n k == 44 ||\r\n k == 45\r\n );\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.seniorityList);\r\n setTimeout(() => {\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }, 1000);\r\n }\r\n }\r\n\r\n}\r\n\r\n","\r\n \r\n
\r\n
\r\n
\r\n \r\n Seniority Name: *\r\n \r\n\r\n \r\n Seniority Name Required\r\n \r\n \r\n Atleast enter 2 characters\r\n \r\n \r\n Only 100 characters\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 \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
Seniority Name {{seniority.PrefixName}} Edit \r\n edit\r\n
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { ServiceType } from '../../models/servicetype.model';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { FormGroupDirective, FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { ServiceTypeService } from '../../services/service-type.service';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NavService } from '../../../master-layout/services/nav.service';\r\nimport { Router } from '@angular/router';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\n\r\n@Component({\r\n selector: 'app-service-type',\r\n templateUrl: './service-type.component.html',\r\n styleUrls: ['./service-type.component.scss']\r\n})\r\nexport class ServiceTypeComponent implements OnInit {\r\n\r\n displayedColumns: string[] = [\r\n 'ServiceTypeName',\r\n 'ServiceDescription',\r\n 'Edit',\r\n ];\r\n dataSource: MatTableDataSource;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n constructor(\r\n private serviceObj: ServiceTypeService,\r\n private _snackBar: MatSnackBar,\r\n public navService: NavService,\r\n public route: Router\r\n ) {\r\n this.serviceObj.serviceTypeData.subscribe((data) => {\r\n this.serviceTypeData = data;\r\n this.dataSource = new MatTableDataSource(this.serviceTypeData);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n });\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n serviceTypeData: ServiceType[];\r\n res: any;\r\n formSubmitted = false;\r\n btnLabel = '';\r\n addServiceType: FormGroup;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n ngOnInit(): void {\r\n this.addServiceType = new FormGroup({\r\n ServiceTypeName: new FormControl(null, [Validators.required]),\r\n ServiceDescription: new FormControl(null, [Validators.required]),\r\n IsActive: new FormControl(true)\r\n });\r\n\r\n this.serviceObj.editObj.subscribe((data) => {\r\n\r\n if (this.serviceObj.editMode == true) {\r\n this.addServiceType.patchValue(data);\r\n this.addServiceType.get('ServiceTypeName').disable();\r\n this.btnLabel = 'Update';\r\n }\r\n });\r\n this.btnLabel = 'Save';\r\n this.Reset();\r\n this.res = this.serviceObj.GetServiceTypeData();\r\n\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.serviceTypeData);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n }\r\n Reset() {\r\n this.formSubmitted = false;\r\n this.addServiceType.get('IsActive').patchValue(true);\r\n this.addServiceType.reset({\r\n IsActive : this.addServiceType.get('IsActive').value, \r\n });\r\n this.addServiceType.get('ServiceTypeName').enable();\r\n setTimeout(() => this.formGroupDirective.resetForm({\r\n IsActive : this.addServiceType.get('IsActive').value,\r\n }), 0);\r\n this.serviceObj.editMode = false;\r\n this.addServiceType.value.IsActive = true;\r\n this.btnLabel = 'Save';\r\n }\r\n setEditObj(editObj) {\r\n\r\n this.serviceObj.editMode = true;\r\n this.serviceObj.editObj.next(editObj);\r\n }\r\n\r\n CreateServiceType() {\r\n this.formSubmitted = true;\r\n var createObj = new ServiceType();\r\n\r\n createObj.ServiceTypeName = this.addServiceType.value.ServiceTypeName;\r\n createObj.ServiceDescription = this.addServiceType.value.ServiceDescription;\r\n createObj.IsActive = this.addServiceType.value.IsActive;\r\n if (this.serviceObj.editMode == true) {\r\n createObj.ServiceTypeId = this.serviceObj.editObj.value.ServiceTypeId;\r\n createObj.ServiceTypeName = this.addServiceType.getRawValue().ServiceTypeName;\r\n\r\n createObj.ServiceDescription = this.addServiceType.value.ServiceDescription;\r\n createObj.IsActive = this.addServiceType.value.IsActive;\r\n }\r\n if (this.addServiceType.valid == true) {\r\n this.serviceObj.CreateServiceTypeArea(createObj).subscribe(\r\n (res) => {\r\n if (res) {\r\n this.serviceObj.GetServiceTypeData();\r\n if (this.serviceObj.editMode == false) {\r\n this._snackBar.open(\r\n 'Service Type Record Added Successfully.',\r\n 'x',\r\n {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n this.Reset();\r\n } else {\r\n this._snackBar.open(\r\n 'Service Type Record Updated Successfully.',\r\n 'x',\r\n {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n this.Reset();\r\n }\r\n } else {\r\n this._snackBar.open('Unable to Add ServiceType', 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n this.Reset();\r\n }\r\n },\r\n (error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\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 Service Type Name *\r\n \r\n \r\n \r\n Service Name required\r\n \r\n \r\n
\r\n
\r\n \r\n Service Type Description *\r\n \r\n \r\n \r\n Service Type Description Required\r\n \r\n \r\n
\r\n
\r\n Is Active\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 \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 Service Type Name\r\n \r\n {{ element.ServiceTypeName }}\r\n \r\n Service Type Description\r\n \r\n {{ element.ServiceDescription }}\r\n \r\n Edit\r\n \r\n edit\r\n
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormControl, FormGroup, FormGroupDirective, ValidationErrors, Validators } from '@angular/forms';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { CompetencyAreaData } from '../../models/competency-area-data.model';\r\nimport { SkillGroupData } from '../../models/skill-group-data.model';\r\nimport { SkillGroupService } from '../../services/skill-group.service';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { Observable } from 'rxjs';\r\nimport { startWith, map } from 'rxjs/operators';\r\n\r\ninterface SelectItem {\r\n value: number;\r\n label: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-skill-group',\r\n templateUrl: './skill-group.component.html',\r\n styleUrls: ['./skill-group.component.scss']\r\n})\r\nexport class SkillGroupComponent implements OnInit {\r\n\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n formSubmitted = false;\r\n filteredCompArea: Observable;\r\n\r\n displayedColumns: string[] = ['CompetencyAreaCode', 'SkillGroupName', 'Description', 'Edit'];\r\n\r\n competencyAreaList: SelectItem[];\r\n skillGroupList: SkillGroupData[];\r\n\r\n addSkillGroup: FormGroup;\r\n btnLabel: string = \"\";\r\n isEdit: boolean;\r\n\r\n dataSource: MatTableDataSource;\r\n @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: false }) sort: MatSort;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n\r\n constructor(private _skillGroupService: SkillGroupService, private _snackBar: MatSnackBar, public navService: NavService) {\r\n // this.getCompetencyArea();\r\n\r\n this._skillGroupService.skillGroupList.subscribe((data) => {\r\n\r\n data.forEach(function (value) {\r\n if (value.CompetencyArea != null)\r\n value.CompetencyAreaCode = value.CompetencyArea.CompetencyAreaCode;\r\n else value.CompetencyAreaCode = '';\r\n });\r\n this.skillGroupList = data;\r\n this.dataSource = new MatTableDataSource(this.skillGroupList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n });\r\n\r\n\r\n\r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n this.applyFilter(responseData);\r\n });\r\n\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getCompetencyArea();\r\n this.dataSource.sortingDataAccessor = (item, property) => {\r\n if (property === 'CompetencyAreaCode') {\r\n return item.CompetencyArea.CompetencyAreaCode;\r\n } else {\r\n return item[property];\r\n }\r\n };\r\n this.addSkillGroup = new FormGroup({\r\n CompetencyAreaId: new FormControl(null, \r\n [Validators.required]),\r\n SkillGroupName: new FormControl(null, [\r\n Validators.required,\r\n Validators.maxLength(100),\r\n Validators.minLength(2)\r\n ]),\r\n Description: new FormControl(null, [Validators.maxLength(4000), Validators.minLength(2)]),\r\n });\r\n\r\n this._skillGroupService.skillGroupList.subscribe((data) => {\r\n data.forEach(function (value) {\r\n if (value.CompetencyArea != null)\r\n value.CompetencyAreaCode = value.CompetencyArea.CompetencyAreaCode;\r\n else value.CompetencyAreaCode = '';\r\n });\r\n this.skillGroupList = data;\r\n this.dataSource = new MatTableDataSource(this.skillGroupList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n });\r\n this.getCompetencyArea();\r\n this.getSkillGroup();\r\n this.btnLabel = \"SAVE\";\r\n\r\n this._skillGroupService.skillGroupEdit.subscribe(data => {\r\n\r\n if (this._skillGroupService.editMode == true) {\r\n // this.addSkillGroup.get('CompetencyAreaId').disable();\r\n this.isEdit = this._skillGroupService.editMode;\r\n this.addSkillGroup.patchValue(data);\r\n this.addSkillGroup.controls.CompetencyAreaId.patchValue(\r\n data.CompetencyAreaCode\r\n );\r\n this.btnLabel = \"UPDATE\";\r\n }\r\n });\r\n this.cancel();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n\r\n getCompetencyArea(): void {\r\n\r\n this._skillGroupService.getCompetencyArea().subscribe((res: CompetencyAreaData[]) => {\r\n\r\n this.competencyAreaList = [];\r\n res.forEach(element => {\r\n this.competencyAreaList.push({ label: element.CompetencyAreaCode, value: element.CompetencyAreaId });\r\n });\r\n\r\n this.filteredCompArea = this.addSkillGroup.get('CompetencyAreaId').valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterCompArea(value))\r\n );\r\n },\r\n (error) => {\r\n this._snackBar.open(error.error, '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n\r\n }\r\n\r\n getSkillGroup(): void {\r\n this._skillGroupService.getSkillGroup();\r\n }\r\n\r\n addSkillGroups(): void {\r\n if (this.addSkillGroup.valid == true) {\r\n this.formSubmitted = true;\r\n var skillGroup = new SkillGroupData();\r\n\r\n skillGroup.CompetencyAreaId = this.addSkillGroup.value.CompetencyAreaId['value'];\r\n skillGroup.SkillGroupName = this.addSkillGroup.value.SkillGroupName;\r\n skillGroup.Description = this.addSkillGroup.value.Description;\r\n if (this._skillGroupService.editMode == true) {\r\n skillGroup.SkillGroupId = this._skillGroupService.skillGroupEdit.value.SkillGroupId;\r\n skillGroup.CompetencyAreaId = this._skillGroupService.skillGroupEdit.value.CompetencyAreaId;\r\n }\r\n if (this.addSkillGroup.valid == true) {\r\n this._skillGroupService.createSkillGroup(skillGroup).subscribe(res => {\r\n if (res != null) {\r\n this._skillGroupService.getSkillGroup();\r\n if (this._skillGroupService.editMode == false) {\r\n this._snackBar.open('Skills Group record added successfully.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n this.cancel();\r\n\r\n }\r\n else {\r\n this._snackBar.open('Skills Group record updated successfully.', 'x', {\r\n duration: 3000, \r\n horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n this.cancel();\r\n }\r\n }\r\n else {\r\n this._snackBar.open('Unable to add Skills Group.', 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.cancel();\r\n }\r\n },\r\n error => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n });\r\n }\r\n }\r\n }\r\n\r\n\r\n editSkillGroup(skillGroupEdit): void {\r\n this._skillGroupService.editMode = true;\r\n this._skillGroupService.skillGroupEdit.next(skillGroupEdit);\r\n this.addSkillGroup.controls['CompetencyAreaId'].setValue({\r\n label: skillGroupEdit.CompetencyAreaCode,\r\n value: skillGroupEdit.CompetencyAreaId,\r\n });\r\n\r\n }\r\n\r\n cancel(): void {\r\n this.formSubmitted = false;\r\n this.addSkillGroup.reset();\r\n setTimeout(() => this.formGroupDirective.resetForm(), 0)\r\n this._skillGroupService.editMode = false;\r\n this.btnLabel = \"SAVE\";\r\n this.isEdit = false;\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.skillGroupList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n\r\n }\r\n }\r\n\r\n private _filterCompArea(value) {\r\n let filterValue;\r\n if (typeof value === 'string') {\r\n filterValue = value.toLowerCase();\r\n } else if (value !== null) {\r\n filterValue = value.label;\r\n } else {\r\n return this.competencyAreaList;\r\n }\r\n\r\n return this.competencyAreaList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n\r\n }\r\n\r\n clearCompArea(): void {\r\n this.addSkillGroup.controls.CompetencyAreaId.setValue('');\r\n }\r\n\r\n displayFn(compArea: SelectItem): string {\r\n\r\n return compArea && compArea.label ? compArea.label : '';\r\n }\r\n\r\n}\r\n","\r\n
\r\n
\r\n
\r\n \r\n Competency Area *\r\n \r\n\r\n \r\n\r\n \r\n \r\n No matching value found\r\n \r\n \r\n {{compArea.label}}\r\n \r\n \r\n \r\n Competency Area Required\r\n \r\n \r\n Select Competency Area from given options\r\n \r\n \r\n
\r\n
\r\n \r\n Skill Group*\r\n \r\n \r\n Skill Group Required\r\n \r\n \r\n Atleast enter 2 characters\r\n \r\n \r\n Only 100 characters\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Skill Group Description\r\n \r\n \r\n Atleast enter 2 characters\r\n \r\n \r\n Only 4000 characters allowed\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\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
Competency Area {{skillGroup.CompetencyArea.CompetencyAreaCode}} Skill Group {{skillGroup.SkillGroupName}} Skill Description {{skillGroup.Description}} Edit \r\n edit\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormControl, FormGroup, FormGroupDirective, Validators } from '@angular/forms';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { SkillsService } from '../../services/skills.service';\r\nimport { CompetencyAreaData } from '../../models/competency-area-data.model';\r\nimport { SkillGroupData } from '../../models/skill-group-data.model';\r\nimport { SkillData } from '../../models/skill-data.model';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\n\r\ninterface SelectItem {\r\n value: number;\r\n label: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-skills',\r\n templateUrl: './skills.component.html',\r\n styleUrls: ['./skills.component.scss']\r\n})\r\nexport class SkillsComponent implements OnInit {\r\n\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n\r\n displayedColumns: string[] = ['CompetencyAreaCode', 'SkillGroupName', 'SkillCode', 'SkillDescription', 'Edit'];\r\n formSubmitted = false;\r\n requiredValue = true;\r\n isEdit: boolean;\r\n\r\n competencyAreaList: SelectItem[];\r\n skillGroupList: SelectItem[];\r\n\r\n skillsList: SkillData[];\r\n\r\n addSkills: FormGroup;\r\n btnLabel: string = \"\";\r\n\r\n dataSource: MatTableDataSource;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n\r\n constructor(private _skillsService: SkillsService, private _snackBar: MatSnackBar, public navService: NavService) {\r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n this.applyFilter(responseData);\r\n })\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n this.getCompetencyArea();\r\n this.btnLabel = \"SAVE\";\r\n\r\n this.addSkills = new FormGroup({\r\n CompetencyAreaId: new FormControl(null, [\r\n Validators.required,\r\n ]),\r\n SkillGroupId: new FormControl(null, [\r\n Validators.required\r\n ]),\r\n SkillCode: new FormControl(null, [\r\n Validators.required,\r\n ]),\r\n SkillDescription: new FormControl(null),\r\n });\r\n this.cancel();\r\n\r\n this._skillsService.skillsEdit.subscribe(data => {\r\n if (this._skillsService.editMode == true && data != null) {\r\n if (data.CompetencyAreaId > 0) {\r\n this.skillGroupList = [];\r\n this._skillsService.getSkillGroupByCompetencyArea(data.CompetencyAreaId).subscribe((res: SkillData[]) => {\r\n if (res.length != null) {\r\n res.forEach(e => {\r\n this.skillGroupList.push({ label: e.SkillGroupName, value: e.SkillGroupId });\r\n });\r\n }\r\n this.addSkills.patchValue(data);\r\n this.isEdit = this._skillsService.editMode;\r\n this.btnLabel = \"Update\";\r\n },\r\n (error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'], \r\n horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n\r\n });\r\n }\r\n\r\n }\r\n });\r\n\r\n this._skillsService.skillsList.subscribe((data) => {\r\n data.forEach(function (value) {\r\n if (value.CompetencyArea != null)\r\n value.CompetencyAreaCode = value.CompetencyArea.CompetencyAreaCode;\r\n else value.CompetencyAreaCode = '';\r\n });\r\n data.forEach(function (value) {\r\n if (value.SkillGroup != null)\r\n value.SkillGroupName = value.SkillGroup.SkillGroupName;\r\n else value.SkillGroupName = '';\r\n });\r\n this.skillsList = data;\r\n this.dataSource = new MatTableDataSource(this.skillsList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n });\r\n this.getSkills();\r\n\r\n }\r\n\r\n getCompetencyArea(): void {\r\n this._skillsService.getCompetencyArea().subscribe((res: CompetencyAreaData[]) => {\r\n this.competencyAreaList = [];\r\n res.forEach(element => {\r\n this.competencyAreaList.push({ label: element.CompetencyAreaCode, value: element.CompetencyAreaId });\r\n });\r\n }, (error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n\r\n });\r\n }\r\n\r\n getSkillGroupByCompetencyArea(competencyAreaId: number): void {\r\n if (competencyAreaId != 0 && competencyAreaId != null) {\r\n this._skillsService.getSkillGroupByCompetencyArea(competencyAreaId).subscribe((res: SkillGroupData[]) => {\r\n this.skillGroupList = [];\r\n res.forEach(element => {\r\n this.skillGroupList.push({ label: element.SkillGroupName, value: element.SkillGroupId });\r\n });\r\n }, (error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n\r\n });\r\n }\r\n else {\r\n this.skillGroupList = [];\r\n }\r\n }\r\n\r\n getSkills(): void {\r\n this._skillsService.getSkills()\r\n }\r\n\r\n validateSkillCode(event: any) {\r\n // if (this.addSkills.get('SkillCode').value !== null && event.target.value.length > 0){\r\n \r\n // }\r\n var valueEvent = event.target.value.toString();\r\n if (valueEvent.charCodeAt(0) == 32) {\r\n event.preventDefault();\r\n this.addSkills.get('SkillCode').patchValue(null);\r\n event.target.value = null;\r\n this._snackBar.open(\r\n 'No Empty spaces allowed',\r\n 'x',\r\n {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n }\r\n\r\n }\r\n\r\n addSkill(): void {\r\n this.formSubmitted = true;\r\n var skills = new SkillData();\r\n skills.CompetencyAreaId = this.addSkills.value.CompetencyAreaId;\r\n skills.SkillGroupId = this.addSkills.value.SkillGroupId;\r\n skills.SkillCode = this.addSkills.value.SkillCode;\r\n skills.SkillName=this.addSkills.value.SkillCode;\r\n skills.SkillDescription = this.addSkills.value.SkillDescription;\r\n if (this._skillsService.editMode == true) {\r\n skills.SkillId = this._skillsService.skillsEdit.value.SkillId;\r\n this.getSkillGroupByCompetencyArea(skills.CompetencyAreaId);\r\n skills.SkillGroupId = this._skillsService.skillsEdit.value.SkillGroupId;\r\n }\r\n if (this.addSkills.valid == true) {\r\n this._skillsService.createSkills(skills).subscribe(res => {\r\n if (res) {\r\n this._skillsService.getSkills();\r\n if (this._skillsService.editMode == false) {\r\n this._snackBar.open('Skills record added successfully.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.cancel();\r\n }\r\n\r\n else {\r\n this._snackBar.open('Skills record updated successfully.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.cancel();\r\n setTimeout(() =>\r\n this.formGroupDirective.resetForm(), 0)\r\n }\r\n\r\n }\r\n else {\r\n this._snackBar.open('Unable to add skills.', 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n this.cancel();\r\n }\r\n },\r\n error => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n });\r\n\r\n }\r\n }\r\n\r\n cancel(): void {\r\n this.formSubmitted = false;\r\n this.addSkills.reset();\r\n this.skillGroupList = [];\r\n setTimeout(() => this.formGroupDirective.resetForm(), 0)\r\n this._skillsService.editMode = false;\r\n this.btnLabel = \"SAVE\";\r\n this.isEdit = false;\r\n }\r\n\r\n editSkill(skillsEdit): void {\r\n this._skillsService.editMode = true;\r\n this._skillsService.skillsEdit.next(skillsEdit);\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.skillsList);\r\n }\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n\r\n}\r\n","\r\n\r\n
\r\n
\r\n
\r\n \r\n Competency Area*\r\n \r\n Select Competency Area\r\n \r\n {{compArea.label}}\r\n \r\n \r\n Competency Area is required\r\n \r\n \r\n
\r\n
\r\n \r\n Skill Group*\r\n \r\n Select Skill Group\r\n \r\n {{skillGroup.label}}\r\n \r\n \r\n Skill Group is required\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Skill*\r\n \r\n \r\n Skill is required\r\n \r\n \r\n
\r\n
\r\n \r\n Skill Description\r\n \r\n \r\n Atleast enter 2 characters\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\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\r\n \r\n \r\n
Competency Area {{skill.CompetencyArea.CompetencyAreaCode}} Skill Group {{skill.SkillGroup.SkillGroupName}} Skill {{skill.SkillCode}} Skill Description {{skill.SkillDescription}} Edit \r\n edit\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormGroup, FormControl, Validators, FormGroupDirective } from '@angular/forms';\r\nimport { SpecialityService } from '../../services/speciality.service';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { Speciality } from '../../models/speciality.model';\r\nimport * as servicePath from '../../../../core/service-paths';\r\n\r\n\r\n@Component({\r\n selector: 'app-speciality',\r\n templateUrl: './speciality.component.html',\r\n styleUrls: ['./speciality.component.scss']\r\n})\r\nexport class SpecialityComponent implements OnInit {\r\n\r\n addSpecialityName: FormGroup;\r\n\r\n\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n formSubmitted = false;\r\n btnLabel: string = \"\";\r\n displayDialog: boolean = false;\r\n\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n resources = servicePath.API.PagingConfigValue;\r\n specialityList: Speciality[];\r\n selectedRow: Speciality;\r\n\r\n\r\n\r\n\r\n\r\n dataSource: MatTableDataSource;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n\r\n\r\n\r\n\r\n displayedColumns: string[] = ['SuffixName', 'Edit'];\r\n\r\n\r\n\r\n\r\n constructor(private _specialityService: SpecialityService, private _snackBar: MatSnackBar, public navService: NavService) {\r\n\r\n this._specialityService.specialityList.subscribe((data) => {\r\n this.specialityList = data;\r\n this.dataSource = new MatTableDataSource(this.specialityList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n });\r\n\r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n this.applyFilter(responseData);\r\n })\r\n\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.addSpecialityName = new FormGroup({\r\n SuffixName: new FormControl(null, [\r\n Validators.required,\r\n Validators.maxLength(100),\r\n Validators.minLength(2)\r\n ]),\r\n });\r\n this._specialityService.specialityEdit.subscribe(data => {\r\n if (this._specialityService.editMode == true) {\r\n this.addSpecialityName.patchValue(data);\r\n this.btnLabel = \"UPDATE\";\r\n }\r\n });\r\n this.btnLabel = \"SAVE\";\r\n this.cancel();\r\n this.getSpecialities();\r\n\r\n }\r\n\r\n addSpeciality(): void {\r\n\r\n if (this.addSpecialityName.valid) {\r\n this.formSubmitted = true;\r\n var speciality = new Speciality();\r\n speciality.SuffixName = this.addSpecialityName.value.SuffixName;\r\n if (this._specialityService.editMode == true) {\r\n speciality.SuffixID = this._specialityService.specialityEdit.value.SuffixID;\r\n }\r\n if (this.addSpecialityName.valid == true) {\r\n this._specialityService.createSpeciality(speciality).subscribe(res => {\r\n if (res) {\r\n this._specialityService.getSpecialities();\r\n if (this._specialityService.editMode == false)\r\n this._snackBar.open('Speciality record added successfully.', '', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n else\r\n this._snackBar.open('Speciality record updated successfully.', '', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.cancel();\r\n }\r\n else {\r\n this._snackBar.open('Unable to add speciality.', '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.cancel();\r\n }\r\n },\r\n error => {\r\n\r\n this._snackBar.open(error.error, '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n\r\n }\r\n }\r\n }\r\n\r\n cancel(): void {\r\n this.formSubmitted = false;\r\n this.addSpecialityName.reset();\r\n setTimeout(() => this.formGroupDirective.resetForm(), 0);\r\n this._specialityService.editMode = false;\r\n this.btnLabel = \"SAVE\";\r\n }\r\n\r\n omit_special_char(event: any) {\r\n let k: number;\r\n k = event.charCode; // k = event.keyCode; (Both can be used)\r\n return (\r\n (k > 64 && k < 91) ||\r\n (k > 96 && k < 123) ||\r\n k == 8 ||\r\n k == 32 ||\r\n k == 38 ||\r\n k == 44 ||\r\n k == 45\r\n );\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.specialityList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n }\r\n\r\n\r\n\r\n getSpecialities(): void {\r\n this._specialityService.getSpecialities();\r\n }\r\n\r\n editSpecialities(specialityEdit): void {\r\n this._specialityService.editMode = true;\r\n this._specialityService.specialityEdit.next(specialityEdit);\r\n }\r\n\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n \r\n Speciality Name: *\r\n \r\n\r\n \r\n Speciality Name Required\r\n \r\n \r\n Only characters allowed\r\n \r\n \r\n Only 100 characters\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 \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
Speciality Name {{speciality.SuffixName}} Edit \r\n edit\r\n
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, OnInit, ViewChild, Input } from '@angular/core';\r\nimport { Validators, FormControl, FormGroup, FormBuilder, FormGroupDirective } from '@angular/forms';\r\nimport { EmployeeStatusService } from '../../services/employeestatus.service';\r\nimport { RoleService } from '../../services/role.service';\r\nimport { Department } from '../../models/department.model';\r\nimport { EmployeeData } from '../../models/employee.model';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport * as moment from 'moment';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { Observable } from 'rxjs';\r\nimport { map, startWith } from \"rxjs/operators\";\r\nimport { AssociateAllocationService } from 'src/app/modules/TalentMangment/services/associate-allocation.service';\r\nimport { AssociateAllocation } from 'src/app/modules/master-layout/models/associateallocation.model';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\ninterface SelectItem {\r\n value: number;\r\n label: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-update-employee-status',\r\n templateUrl: './update-employee-status.component.html',\r\n styleUrls: ['./update-employee-status.component.scss'],\r\n providers: [EmployeeStatusService]\r\n})\r\nexport class UpdateEmployeeStatusComponent implements OnInit {\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n counter:number;\r\n userform: FormGroup;\r\n response: any;\r\n submitted = false;\r\n _empData: EmployeeData;\r\n _usersList = [];\r\n formSubmitted = false;\r\n _status = [];\r\n firstDate: Date;\r\n enableDate: boolean = false;\r\n @Input() max: any;\r\n today = new Date();\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n departmentList: SelectItem[];\r\n filteredOptionsName: Observable;\r\n allocationHistory: AssociateAllocation[] = [];\r\n showAllocationHistoryGrid: boolean = false;\r\n isDateError:boolean=false\r\n dateErrorMessage:string;\r\n\r\n\r\n constructor(private _service: EmployeeStatusService, private allocationservice: AssociateAllocationService, private _rolesService: RoleService, private _snackBar: MatSnackBar, private fb: FormBuilder, private spinner: NgxSpinnerService,) {\r\n this.initializeStatus();\r\n this.today.setDate(this.today.getDate());\r\n }\r\n ngOnInit() {\r\n this.spinner.show()\r\n this._empData = new EmployeeData();\r\n this.getDepartmentList();\r\n this.getDates();\r\n\r\n this.userform = this.fb.group({\r\n\r\n EmpId: ['', [Validators.required]],\r\n IsActive: [false],\r\n LastWorkingDate: ['', Validators.required],\r\n DepartmentId: ['',[Validators.required]]\r\n });\r\n this.clear();\r\n this.counter=0;\r\n }\r\n get f() { return this.userform.controls; }\r\n\r\n displayFn(user: any) {\r\n return user && user.label ? user.label : '';\r\n }\r\n getDepartmentList(): void {\r\n this._rolesService.getDepartmentList().subscribe((res: Department[]) => {\r\n this.spinner.hide()\r\n this.departmentList = [];\r\n res.forEach(element => {\r\n this.departmentList.push({ label: element.Description, value: element.DepartmentId });\r\n });\r\n }, (error) => {\r\n this.spinner.hide()\r\n this._snackBar.open(error.error.text, 'x', {\r\n duration: 3000, \r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n });\r\n }\r\n\r\n clearInput(evt: any, fieldName): void {\r\n if(fieldName=='LastWorkingDate'){\r\n this.isDateError=false\r\n evt.stopPropagation();\r\n this.userform.get('LastWorkingDate').reset();\r\n }\r\n if(fieldName=='EmpId'){\r\n evt.stopPropagation();\r\n this.userform.get('EmpId').reset();\r\n }\r\n }\r\n\r\n initializeStatus() {\r\n this._status = [];\r\n this._status.push({ label: 'Inactive', value: false });\r\n }\r\n\r\n private _filterName(value) {\r\n let filterValue;\r\n if (typeof value.EmpId === 'number') {\r\n return this._usersList;\r\n }\r\n if (value && value.EmpId) {\r\n if (typeof value.EmpId === 'string') {\r\n filterValue = value.EmpId.toLowerCase();\r\n }\r\n else {\r\n if (value.EmpId !== null) {\r\n filterValue = value.EmpId.label.toLowerCase();\r\n }\r\n }\r\n return this._usersList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this._usersList;\r\n }\r\n }\r\n getDates() {\r\n var date = new Date(), y = date.getFullYear(), m = date.getMonth()\r\n this.firstDate = new Date(y, m-1, 1)\r\n }\r\n\r\n onDepartmentChange(value) {\r\n this.isDateError=false\r\n this.userform.get('LastWorkingDate').reset();\r\n this.userform.get('EmpId').reset();\r\n this._usersList = [];\r\n this.filteredOptionsName = null;\r\n this._service.GetAssociatesByDepartment(value).subscribe((data) => {\r\n let dataList: any = data;\r\n dataList.forEach(e => {\r\n this._usersList.push({ label: e.Name, value: e.Id });\r\n });\r\n this.filteredOptionsName = this.userform.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterName(value))\r\n );\r\n\r\n },(error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n })\r\n }\r\n\r\n updateEmployeeStatus() {\r\n if(this.userform.value.EmpId.value != undefined)\r\n this.userform.value.EmpId = this.userform.value.EmpId.value\r\n this.userform.value.LastWorkingDate = moment(this.userform.value.LastWorkingDate).format('YYYY-MM-DD');\r\n console.log(this.userform.value) \r\n this._service.UpdateEmployeeStatus(this.userform.value).subscribe((data) => {\r\n if (data != null) {\r\n this.clear();\r\n this.enableDate = false;\r\n this.isDateError = false\r\n this._snackBar.open('Associate Deactivated Successfully.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n }, (error) => {\r\n if (error.error !=null && (error.error.includes('Invalid date. Date should be greater than'))) {\r\n this.isDateError = true\r\n this.dateErrorMessage = error.error\r\n }\r\n else {\r\n this.clear();\r\n this.enableDate = false;\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n });\r\n }\r\n\r\n clearValues = function () {\r\n this._empData.ID = null;\r\n this._empData.EmpID = null;\r\n this._empData.IsActive = null;\r\n this._usersList = [];\r\n this.filteredOptionsName = null;\r\n this.userform.reset();\r\n this.showAllocationHistoryGrid = false;\r\n }\r\n\r\n clear = function () {\r\n this.enableDate = false;\r\n this.clearValues();\r\n setTimeout(() =>\r\n this.formGroupDirective.resetForm(), 0)\r\n }\r\n\r\n onSubmit() {\r\n this.formSubmitted = true;\r\n if (this.userform.valid) {\r\n this.updateEmployeeStatus();\r\n }\r\n }\r\n\r\n public getAllocationHistory(employeeId: number) {\r\n this.allocationservice.GetEmpAllocationHistory(employeeId).subscribe((data: AssociateAllocation[]) => {\r\n if (data != null && data.length > 0) {\r\n this.allocationHistory = data;\r\n this.showAllocationHistoryGrid = true; \r\n }\r\n else\r\n this.showAllocationHistoryGrid = false;\r\n },\r\n (error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n removeDateErrorMessage(){\r\n this.isDateError=false\r\n }\r\n\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n \r\n Department*\r\n \r\n Select Department\r\n {{aspect.label}}\r\n \r\n \r\n \r\n \r\n Department Required\r\n \r\n \r\n
\r\n
\r\n \r\n Associate * \r\n \r\n \r\n \r\n Select Associate\r\n \r\n No matching value found\r\n \r\n \r\n {{ option.label }}\r\n \r\n \r\n \r\n \r\n Associate Name Required\r\n \r\n \r\n \r\n Select Associate Name from given options\r\n \r\n \r\n
\r\n
\r\n \r\n Last Working Date*\r\n \r\n \r\n close\r\n \r\n \r\n \r\n \r\n \r\n Last Working Date Required.\r\n \r\n \r\n \r\n No empty spaces allowed\r\n \r\n \r\n \r\n \r\n {{dateErrorMessage}}\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 {{ allocationHistory[0].AssociateName}}'s - Current Allocation
\r\n
\r\n \r\n \r\n \r\n \r\n Project Name\r\n \r\n \r\n Effective From\r\n \r\n \r\n Utilization (%)\r\n \r\n \r\n Billable\r\n \r\n \r\n Critical\r\n \r\n \r\n Primary\r\n \r\n \r\n \r\n \r\n {{al.Project}}\r\n {{al.EffectiveDate | date:\"MM/dd/yyyy\"}}\r\n {{al.AllocationPercentage}}\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

Loading ...

\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-workstation',\r\n templateUrl: './workstation.component.html',\r\n styleUrls: ['./workstation.component.scss']\r\n})\r\nexport class WorkstationComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","

workstation works!

\r\n","export class Client {\r\n ClientId?: number;\r\n ClientCode: string;\r\n ClientName: string;\r\n ClientRegisterName: string;\r\n IsActive? : boolean;\r\n}","export class CompetencyArea {\r\n CompetencyAreaId?: number;\r\n CompetencyAreaCode: string;\r\n CompetencyAreaDescription: string;\r\n IsActive?: boolean; \r\n }","import { GenericType } from '../../master-layout/models/dropdowntype.model';\r\nexport class Department {\r\n DepartmentId: number;\r\n DepartmentCode: string;\r\n Description: string;\r\n DepartmentTypeId: number;\r\n DepartmentTypeDescription: string;\r\n DepartmentHeadId: number;\r\n DepartmentHeadName: string;\r\n DepartmentHead?: GenericType;\r\n}\r\n","import { Grade } from \"./grade.model\";\r\n\r\n\r\nexport class Designation {\r\n DesignationId:number;\r\n DesignationCode:string;\r\n DesignationName:string;\r\n Grade : Grade;\r\n IsActive:boolean;\r\n \r\n}\r\n\r\n// designation page uses all designation, grade, AppreciateDropDownType classes fields\r\n \r\nexport class DesignationData {\r\n DesignationId:number;\r\n DesignationCode:string;\r\n DesignationName:string;\r\n IsActive:boolean;\r\n Grade:Grade;\r\n ID?:number;\r\n Name?:string;\r\n GradeCode: string;\r\n GradeId: number;\r\n GradeName: string\r\n }\r\n\r\n\r\n","export class DomainMasterData {\r\n DomainName:string;\r\n DomainID:number;\r\n // CreatedDate:string;\r\n }","export class EmployeeData{\r\n Id:any;\r\n UserName:any;\r\n UserId:any;\r\n EmailAddress:any;\r\n EmpId:any;\r\n StatusId:any;\r\n IsActive:any;\r\n LastWorkingDate: string;\r\n}","export class Grade {\r\n GradeCode: string;\r\n GradeId: number;\r\n GradeName: string\r\n IsActive: boolean\r\n Grade: string;\r\n}\r\n","import { Department } from \"./department.model\";\r\nimport { DepartmentDetails } from \"../../master-layout/models/role.model\";\r\n\r\nexport class KeyFunction extends DepartmentDetails{\r\n SGRoleName: string;\r\n SGRoleID: number;\r\n IsActive: boolean\r\n Department : Department;\r\n}","export class MenuRoles {\r\n RoleId: number;\r\n RoleName?: string;\r\n MenuList: Menus[];\r\n\r\n}\r\n\r\nexport class Menus {\r\n MenuId: number;\r\n MenuName?: string;\r\n}\r\n","import { CategoryData } from \"./categorymaster.model\";\r\n\r\nexport class NotificationType {\r\n // Id?: number;\r\n NotificationTypeId?: number;\r\n CategoryMasterId?:number;\r\n NotificationCode: string;\r\n NotificationDescription: string;\r\n CategoryName:string;\r\n CategoryMaster:CategoryData;\r\n}\r\n\r\nexport class NotificationConfiguration extends NotificationType{\r\n EmailFrom: string;\r\n EmailTo: string; //passing array properties to string \r\n EmailCC: string; //passing array properties to string \r\n ToEmail?:Email[]; \r\n CCEmail?:Email[];\r\n EmailSubject : string;\r\n EmailContent : string;\r\n NotificationType:NotificationType;\r\n}\r\n\r\nexport class Email{\r\n EmailID:string\r\n}\r\n","export class PracticeArea {\r\n PracticeAreaId?: number;\r\n PracticeAreaCode: string;\r\n PracticeAreaDescription: string;\r\n IsActive?: boolean;\r\n PracticeAreaHeadId: number;\r\n PracticeAreaHeadName?: string;\r\n}","export class ProficiencyLevel {\r\n ProficiencyLevelId?: number;\r\n ProficiencyLevelCode: string;\r\n ProficiencyLevelDescription: string;\r\n IsActive?: boolean;\r\n }","\r\nexport class ProficiencyLevel {\r\n ProficiencyLevelId?: number;\r\n ProficiencyLevelCode: string;\r\n ProficiencyLevelDescription: string;\r\n IsActive?: boolean;\r\n }","export class ProjectType\r\n{\r\n ProjectTypeId:number;\r\n ProjectType:string;\r\n}\r\n\r\nexport class ProjectTypeData{\r\n Description : string;\r\n ProjectTypeCode : string;\r\n ProjectTypeId: number;\r\n} ","import { Department } from \"./department.model\";\r\n\r\nexport class RoleData{\r\n ID?: number;\r\n SGRoleID: number;\r\n RoleMasterID?: number;\r\n KRAGroupID: number;\r\n KRATitle: string;\r\n RoleName: string;\r\n RoleDescription: string;\r\n KeyResponsibilities: string;\r\n EducationQualification: string;\r\n PrefixID: number;\r\n SuffixID: number;\r\n dateOfJoining?: Date;\r\n RoleCompetencySkills?: RoleCompetencySkills[];\r\n DeltedSkillIds?: any[];\r\n IsActive?: boolean;\r\n SGRole: SGRole;\r\n SGRolePrefix: SGRolePrefix;\r\n SGRoleSuffix: SGRoleSuffix;\r\n Department: Department;\r\n DepartmentId: number;\r\n}\r\n\r\nexport class SGRole{\r\n SGRoleID:number;\r\n SGRoleName:string;\r\n}\r\nexport class RoleCompetencySkills {\r\n ID?: number;\r\n CompetencySkillsId?: number;\r\n CompetencyAreaId?: number;\r\n SkillGroupId?: number;\r\n SkillGroupName?: string;\r\n SkillId?: number;\r\n RoleMasterID?: number;\r\n IsPrimary: boolean;\r\n ProficiencyLevelId?: number;\r\n CompetencyAreaCode?: string;\r\n SkillName?: string;\r\n ProficiencyLevelCode: string;\r\n}\r\nexport class SGRolePrefix{\r\n PrefixID:number;\r\n PrefixName:string;\r\n}\r\nexport class SGRoleSuffix{\r\n SuffixID:number;\r\n SuffixName:string;\r\n}","export class Seniority {\r\n PrefixName: string;\r\n PrefixID: number;\r\n IsActive: boolean\r\n}","export class ServiceType{\r\n ServiceTypeId: number\r\n ServiceTypeName: string\r\n ServiceDescription: string\r\n CurrentUser: string\r\n CreatedDate: Date\r\n ModifiedDate: Date\r\n SystemInfo: string\r\n IsActive: boolean\r\n CreatedBy: string\r\n ModifiedBy: string\r\n}\r\n\r\n// \"ServiceTypeId\": 1,\r\n// \"ServiceTypeName\": \"IBMi\",\r\n// \"ServiceDescription\": \"IBMi Application services\",\r\n// \"CurrentUser\": null,\r\n// \"CreatedDate\": \"2021-02-23T12:11:15.260246+05:30\",\r\n// \"ModifiedDate\": \"2021-02-23T12:11:15.260246+05:30\",\r\n// \"SystemInfo\": null,\r\n// \"IsActive\": true,\r\n// \"CreatedBy\": \"Kalyan.Penumutchu@senecaglobal\",\r\n// \"ModifiedBy\": \"Anonymous\"","import { SkillGroupData } from './skill-group-data.model';\r\nimport { CompetencyAreaData } from './competency-area-data.model';\r\n\r\nexport class SkillData {\r\n SkillId:number;\r\n SkillCode:string;\r\n SkillName:string;\r\n SkillDescription:string;\r\n SkillGroupId:number;\r\n SkillGroup: SkillGroupData;\r\n CompetencyArea : CompetencyAreaData;\r\n SkillGroupName: string;\r\n CompetencyAreaId:number;\r\n CompetencyAreaCode:string;\r\n}\r\n\r\n","import { CompetencyAreaData } from \"./competency-area-data.model\";\r\n\r\nexport class SkillGroupData{\r\n SkillGroupId:number;\r\n SkillGroupName:string;\r\n Description:string;\r\n CompetencyArea :CompetencyAreaData;\r\n CompetencyAreaId:number;\r\n CompetencyAreaCode:string;\r\n}\r\n","export class Speciality {\r\n SuffixName: string;\r\n SuffixID: number;\r\n IsActive: boolean\r\n}","import { Role } from \"../../master-layout/models/associate-skills.model\";\r\n\r\nexport class UserRoles {\r\n UserRolesID: number;\r\n RoleId: number;\r\n RoleName: string;\r\n UserName: string;\r\n UserId: number;\r\n EmailAddress: string;\r\n IsPrimary: boolean;\r\n IsActive: boolean;\r\n DepartmentId: number;\r\n IsAssigned: boolean;\r\n Role : Role;\r\n}","import { Injectable } from '@angular/core';\r\nimport * as environment from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths'\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { UserRoles } from '../models/userRoles';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AssignUserRolesService {\r\n serviceUrl = environment.environment.AdminMicroService;\r\n // serviceUrl = environment.environment.ServerUrl;\r\n resources = servicePath.API.UserNames;\r\n userRole = new BehaviorSubject(new UserRoles());\r\n userRolesList = new BehaviorSubject([]);\r\n constructor(private httpclient : HttpClient) { }\r\n\r\n public GetUserRoles(id: number) {\r\n var url = this.serviceUrl + this.resources.getById + id;\r\n this.httpclient.get(url).subscribe((res : UserRoles[])=>{\r\n this.userRolesList.next(res);\r\n });\r\n}\r\npublic GetRolesList(){\r\n return this.userRolesList.asObservable();\r\n}\r\npublic GetUserRole(){\r\n return this.userRole.asObservable();\r\n}\r\npublic SetUserRole(userRole){\r\n this.userRole.next(userRole);\r\n this.GetUserRole();\r\n}\r\npublic GetUserNames(param){\r\n var url = this.serviceUrl + this.resources.GetUsersBySearchString +param;\r\n return this.httpclient.get(url);\r\n}\r\npublic SetUserRolesList(data){\r\n this.userRolesList.next(data);\r\n}\r\n\r\n// public GetRoleByDept(id: number){\r\n// var url = this.serviceUrl + this.resources.getRoleByDept + id;\r\n// return this.httpclient.get(url)\r\n// }\r\n\r\nSaveOrUpdateUserRoles(details) {\r\n let _url = this.serviceUrl + this.resources.update;\r\n return this.httpclient.post(_url, details) \r\n}\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { MenuRoles, Menus } from '../models/menu-roles.model';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient, HttpHeaders, HttpErrorResponse } from '@angular/common/http';\r\n//import { IAssignMenusToRole } from \"../../../Interfaces/IAssignMenuToRole\";\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport * as environmentInformation from '../../../../environments/environment';\r\nimport { environment } from '../../../../environments/environment';\r\ninterface IAssignMenusToRole {\r\n getSourceMenus(RoleId: number)\r\n getTargetMenus(RoleId: number)\r\n addTargetMenuRoles(TargetMenuRoles: MenuRoles): Observable\r\n}\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AssignmenustoroleService implements IAssignMenusToRole {\r\n private _resources: any;\r\n private _employeeId: number;\r\n private _adminMicroService: string;\r\n constructor(private _http: HttpClient) {\r\n this._resources = servicePath.API.AssignMenusRole;\r\n this._adminMicroService = environment.AdminMicroService;\r\n }\r\n\r\n public getSourceMenus(RoleId: number): Observable {\r\n let _url = this._adminMicroService + this._resources.getSourceMenuRoles + RoleId;\r\n return this._http.get(_url);\r\n }\r\n\r\n public getTargetMenus(RoleId: number): Observable {\r\n let _url = this._adminMicroService + this._resources.getTargetMenuRoles + RoleId;\r\n return this._http.get(_url);\r\n }\r\n\r\n public addTargetMenuRoles(TargetMenuRoles: MenuRoles): Observable {\r\n let _url = this._adminMicroService + this._resources.addTargetMenuRoles;\r\n return this._http.post(_url, TargetMenuRoles);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport {environment} from '../../../../environments/environment'\r\nimport {Client} from '../models/client.model';\r\nimport { BehaviorSubject } from \"rxjs\";\r\nimport * as servicePath from '../../../core/service-paths'\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ClientService {\r\n public editMode = false;\r\n\r\n _serviceUrl = environment.AdminMicroService;\r\n resources = servicePath.API.Clients;\r\n clients = new BehaviorSubject(new Client());\r\n clientsList = new BehaviorSubject([]);\r\n constructor(private httpClient: HttpClient) {}\r\n\r\n public getClients() {\r\n this.httpClient\r\n .get(this._serviceUrl + this.resources.list)\r\n .subscribe((res: Client[]) => {\r\n this.clientsList.next(res);\r\n });\r\n }\r\n\r\n public getAllClients() {\r\n return this.httpClient.get(this._serviceUrl + this.resources.list);\r\n }\r\n\r\n public createClients(client: Client) {\r\n if (this.editMode == false)\r\n return this.httpClient.post(\r\n this._serviceUrl + this.resources.create,\r\n client\r\n );\r\n else\r\n return this.httpClient.post(\r\n this._serviceUrl + this.resources.update,\r\n client\r\n );\r\n }\r\n\r\n public GetClientsList() {\r\n return this.clientsList.asObservable();\r\n }\r\n\r\n public GetClients() {\r\n return this.clients.asObservable();\r\n }\r\n\r\n // public GetEditMode(){\r\n // return this.editMode.asObservable();\r\n // }\r\n\r\n // public SetEditMode(editMode){\r\n // this.clients.next(editMode);\r\n // this.GetEditMode();\r\n\r\n // }\r\n\r\n public SetClientsData(clients) {\r\n this.clients.next(clients);\r\n this.GetClients();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { CompetencyArea } from '../models/competencyarea.model';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CompetencyAreaService {\r\n serviceUrl = environment.AdminMicroService;\r\n editMode = false;\r\n editObj = new BehaviorSubject(new CompetencyArea());\r\n resources = servicePath.API.CompetencyArea;\r\n competencyAreaData = new BehaviorSubject([]);\r\n constructor(private httpClient: HttpClient) {}\r\n\r\n GetCompetencyAreaData() {\r\n this.httpClient\r\n .get(this.serviceUrl + this.resources.list)\r\n .subscribe((res: CompetencyArea[]) => {\r\n this.competencyAreaData.next(res);\r\n });\r\n }\r\n\r\n CreateCompetencyArea(createObj: CompetencyArea) {\r\n if (this.editMode == false)\r\n return this.httpClient.post(\r\n this.serviceUrl + this.resources.create,\r\n createObj\r\n );\r\n else {\r\n return this.httpClient.post(\r\n this.serviceUrl + this.resources.update,\r\n createObj\r\n );\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\nimport { Department } from '../models/department.model';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\nimport * as servicePath from '../../../core/service-paths';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class DepartmentService {\r\n private _config: any;\r\n // private _serviceUrl = environment.ServerUrl;\r\n // private _serviceUrl = \"http://sg-srv-vtsapps:2021/admin/api/v1\";\r\n _serviceUrl = environment.AdminMicroService;\r\n toGetData = false;\r\n editMode = false;\r\n _resources = servicePath.API.Department;\r\n departmentsEdit = new BehaviorSubject(new Department());\r\n Department = new BehaviorSubject([]);\r\n constructor(private httpClient: HttpClient) {}\r\n\r\n public getDepartmentDetails() {\r\n var _url = this._serviceUrl + this._resources.list;\r\n this.httpClient.get(_url).subscribe((res: Department[]) => {\r\n this.Department.next(res);\r\n });\r\n }\r\n public CreateDepartment(department: Department) {\r\n let _url = this._serviceUrl + this._resources.create;\r\n if (this.editMode == false) return this.httpClient.post(_url, department);\r\n else {\r\n let _url = this._serviceUrl + this._resources.update;\r\n return this.httpClient.post(_url, department);\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Designation, DesignationData } from '../models/designation.model';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport * as servicePath from '../../../core/service-paths';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class DesignationsService {\r\n // _serviceUrl = environment.ServerUrl;\r\n // _serviceUrl = \"http://sg-srv-vtsapps:2021/admin/api/v1\";\r\n _serviceUrl = environment.AdminMicroService;\r\n editMode = false;\r\n editObj = new BehaviorSubject(new DesignationData());\r\n designationData = new BehaviorSubject([]);\r\n resources = servicePath.API.Designation;\r\n constructor(private httpClient: HttpClient) {}\r\n\r\n getGradesData() {\r\n return this.httpClient.get(this._serviceUrl + servicePath.API.Grades.list);\r\n }\r\n\r\n getDesignation() {\r\n this.httpClient\r\n .get(this._serviceUrl + this.resources.list)\r\n .subscribe((res: DesignationData[]) => {\r\n this.designationData.next(res);\r\n });\r\n }\r\n\r\n createDesignation(designation: DesignationData) {\r\n return this.httpClient.post(\r\n this._serviceUrl + this.resources.create,\r\n designation\r\n );\r\n }\r\n\r\n editDesignation(designation: DesignationData) {\r\n return this.httpClient.post(\r\n this._serviceUrl + this.resources.update,\r\n designation\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport {environment} from '../../../../environments/environment'\r\nimport {DomainMasterData} from '../models/domainmasterdata.model'\r\nimport * as servicePath from '../../../core/service-paths'\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DomainMasterService {\r\n public editMode = false;\r\n private resources = servicePath.API.Domain;\r\n public domainEdit = new BehaviorSubject(new DomainMasterData());\r\n public domainsList = new BehaviorSubject([]);\r\n // private _serviceUrl = environment.ServerUrl;\r\n _serviceUrl = environment.AdminMicroService;\r\n // private _serviceUrl = \"http://sg-srv-vtsapps:2021/admin/api/v1\";\r\n constructor(private httpClient : HttpClient ) { }\r\n \r\n public getDomains(){\r\n this.httpClient.get(this._serviceUrl + this.resources.list)\r\n .subscribe((res : DomainMasterData[]) => {this.domainsList.next(res);});\r\n }\r\n\r\n public createDomain(domain : DomainMasterData){\r\n if(this.editMode == false)\r\n return this.httpClient.post(this._serviceUrl + this.resources.create, domain)\r\n else\r\n return this.httpClient.post(this._serviceUrl + this.resources.update, domain)\r\n }\r\n\r\n \r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport {\r\n HttpClient,\r\n HttpHeaders,\r\n HttpErrorResponse,\r\n} from '@angular/common/http';\r\n//import 'rxjs/Rx';\r\nimport * as environmentInformation from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\n\r\n@Injectable()\r\nexport class EmployeeStatusService {\r\n private _serverURL: string;\r\n private _resources: any;\r\n private EmployeeMicroService: any;\r\n constructor(private httpClient: HttpClient) {\r\n this._serverURL = environmentInformation.environment.ServerUrl;\r\n this._resources = servicePath.API.EmployeeStatus;\r\n this.EmployeeMicroService =\r\n environmentInformation.environment.EmployeeMicroService;\r\n }\r\n\r\n GetAssociateNames() {\r\n let url = this.EmployeeMicroService + this._resources.GetNames;\r\n return this.httpClient.get(url);\r\n }\r\n\r\n GetAssociates() {\r\n let url = this.EmployeeMicroService + this._resources.GetUsers;\r\n return this.httpClient.get(url);\r\n }\r\n\r\n GetResignStatus() {\r\n let url = this.EmployeeMicroService + this._resources.GetResignStatus;\r\n return this.httpClient.get(url);\r\n }\r\n\r\n UpdateEmployeeStatus(empData: any) {\r\n let url = this.EmployeeMicroService + this._resources.UpdateEmployeeStatus;\r\n return this.httpClient.post(url, empData);\r\n }\r\n\r\n MapAssociateId(empData: any) {\r\n let url = this.EmployeeMicroService + this._resources.MapAssociateId;\r\n return this.httpClient.post(url, empData);\r\n }\r\n\r\n GetAssociatesByDepartment(DeptId: number) {\r\n let url = this.EmployeeMicroService + this._resources.GetAssociatesByDepartment + '?departmentId=' + DeptId;\r\n return this.httpClient.get(url);\r\n }\r\n GetDepartmentHeadByDepartment(departmentId: number) {\r\n let url = this.EmployeeMicroService + this._resources.GetDepartmentHeadByDepartment + departmentId;\r\n return this.httpClient.get(url);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport {environment} from '../../../../environments/environment'\r\n\r\nimport * as servicePath from '../../../core/service-paths'\r\nimport {Grade} from '../models/grade.model';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class GradesService {\r\n\r\n editMode = false;\r\n GradesData = new BehaviorSubject([]);\r\n editObj = new BehaviorSubject(new Grade());\r\n // serviceUrl = environment.environment.ServerUrl;\r\n serviceUrl = environment.AdminMicroService;\r\n // serviceUrl = \"http://sg-srv-vtsapps:2021/admin/api/v1\";\r\n resources = servicePath.API.Grades;\r\n constructor(private httpclient : HttpClient) { }\r\n\r\n getGradesDetails(){\r\n this.httpclient.get(this.serviceUrl+this.resources.list).subscribe((res : Grade[])=>{\r\n this.GradesData.next(res);\r\n });\r\n }\r\n\r\n createGrades(createObj){\r\n if(this.editMode == false )\r\n return this.httpclient.post(this.serviceUrl+this.resources.create ,createObj);\r\n else{\r\n return this.httpclient.post(this.serviceUrl+this.resources.update ,createObj);\r\n }\r\n \r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { KeyFunction } from '../models/key-function.model';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class KeyFunctionService{\r\n public editMode = false;\r\n private resources = servicePath.API.KeyFunction;\r\n public KeyFunctionEdit = new BehaviorSubject(new KeyFunction());\r\n public KeyFunctionList = new BehaviorSubject([]);\r\n // private _serviceUrl = environment.ServerUrl;\r\n _serviceUrl = environment.AdminMicroService;\r\n // private _serviceUrl = \"http://sg-srv-vtsapps:2021/admin/api/v1\";\r\n constructor(private httpClient : HttpClient ) { }\r\n \r\n public getKeyFunctions(){\r\n this.httpClient.get(this._serviceUrl + this.resources.list)\r\n .subscribe((res : KeyFunction[]) => {this.KeyFunctionList.next(res);});\r\n }\r\n public getDepartmentList(){\r\n return this.httpClient.get(this._serviceUrl +servicePath.API.Department.list) \r\n }\r\n public createKeyFunction(keyFunction : KeyFunction){\r\n if(this.editMode == false)\r\n return this.httpClient.post(this._serviceUrl + this.resources.create, keyFunction)\r\n else\r\n return this.httpClient.post(this._serviceUrl + this.resources.update, keyFunction)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { NotificationConfiguration } from '../models/notificationconfiguration.model';\r\nimport * as environmentInformation from '../../../../environments/environment';\r\n// import { INotificationConfiguration } from '../../../../Interfaces/INotificationConfiguration';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { of } from 'rxjs';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class NotificationConfigurationService {\r\n subscribe(arg0: (res: any) => void): any {\r\n throw new Error('Method not implemented.');\r\n }\r\n editMode = false;\r\n notificationTypeData = new BehaviorSubject([]);\r\n editObj = new BehaviorSubject(\r\n new NotificationConfiguration()\r\n );\r\n private _serverURL: string;\r\n private _resources: any;\r\n constructor(private _http: HttpClient) {\r\n this._serverURL = environmentInformation.environment.AdminMicroService;\r\n this._resources = servicePath.API.NotificationConfiguration;\r\n // this._resources = servicePath.API.Roles;\r\n }\r\n public GetNotificationCofigurationByNotificationType(\r\n notificationTypeId: number,\r\n categoryMasterId: number\r\n ): Observable {\r\n let url =\r\n this._serverURL +\r\n this._resources.GetNotificationCofigurationByNotificationType +\r\n notificationTypeId +\r\n '&categoryMasterId=' +\r\n categoryMasterId;\r\n return this._http.get(url);\r\n }\r\n\r\n public SaveNotificationCofiguration(\r\n NotificationCofigurationDetails: NotificationConfiguration\r\n ): Observable {\r\n let _url = this._serverURL + this._resources.SaveNotificationCofiguration;\r\n return this._http.post(_url, NotificationCofigurationDetails);\r\n // .map(res => res.json())\r\n }\r\n\r\n public UpdateNotificationCofiguration(\r\n NotificationCofigurationDetails: NotificationConfiguration\r\n ): Observable {\r\n let _url = this._serverURL + this._resources.UpdateNotificationCofiguration;\r\n return this._http.post(_url, NotificationCofigurationDetails);\r\n // .map(res => res.json())\r\n }\r\n\r\n public GetFromEmail(): Observable {\r\n let email = this._resources.FromEmail;\r\n return of(email);\r\n }\r\n\r\n GetNotificationTypes() {\r\n return this._http.get(\r\n this._serverURL + this._resources.GetNotificationType\r\n );\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport {\r\n HttpClient,\r\n HttpHeaders,\r\n HttpErrorResponse,\r\n} from '@angular/common/http';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\nimport { NotificationType } from '../models/notificationconfiguration.model';\r\n//import { INotificationType } from '../../../Interfaces/INotificationType';\r\nimport * as environmentInformation from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class NotificationTypeService {\r\n // subscribe(arg0: (res: any) => void): any {\r\n // throw new Error(\"Method not implemented.\");\r\n // }\r\n editMode = false;\r\n notificationTypeData = new BehaviorSubject([]);\r\n editObj = new BehaviorSubject(new NotificationType());\r\n private _serverURL: string;\r\n private _resources: any;\r\n\r\n constructor(private _httpclient: HttpClient) {\r\n this._serverURL = environmentInformation.environment.AdminMicroService;\r\n this._resources = servicePath.API.NotificationType;\r\n }\r\n\r\n GetNotificationTypes() {\r\n this._httpclient\r\n .get(this._serverURL + this._resources.GetNotificationType)\r\n .subscribe((res: NotificationType[]) => {\r\n this.notificationTypeData.next(res);\r\n });\r\n }\r\n\r\n public AddNotificationType(createObj: NotificationType) {\r\n let _url = this._serverURL + this._resources.AddNotificationType;\r\n if (this.editMode == false) return this._httpclient.post(_url, createObj);\r\n }\r\n\r\n public UpdateNotificationType(createObj: NotificationType) {\r\n let _url = this._serverURL + this._resources.UpdateNotificationType;\r\n if (this.editMode == true) return this._httpclient.post(_url, createObj);\r\n }\r\n\r\n public DeleteNotificationType(\r\n notificationTypeId: number,\r\n categoryId: number\r\n ) {\r\n let _url =\r\n this._serverURL +\r\n this._resources.DeleteNotificationType +\r\n notificationTypeId +\r\n '&categoryId=' +\r\n categoryId;\r\n return this._httpclient.post(_url, null);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { PracticeArea } from '../models/practicearea.model';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PracticeAreaService {\r\n public editMode = false;\r\n private _serviceUrl = environment.AdminMicroService;\r\n private resources = servicePath.API.PracticeArea;\r\n public practiceAreaEdit = new BehaviorSubject(new PracticeArea());\r\n public practiceAreaList = new BehaviorSubject([]);\r\n constructor(private httpClient : HttpClient ) { }\r\n \r\n public getPracticeAreas(IsActive: boolean = true){\r\n this.httpClient.get(this._serviceUrl + this.resources.list+'?IsActive='+IsActive)\r\n .subscribe((res : PracticeArea[]) =>{ this.practiceAreaList.next(res);});\r\n }\r\n\r\n public createPracticeAreas(practicearea : PracticeArea){\r\n if(this.editMode ==false)\r\n return this.httpClient.post(this._serviceUrl + this.resources.create , practicearea);\r\n else\r\n return this.httpClient.post(this._serviceUrl + this.resources.update , practicearea);\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { ProficiencyLevel } from '../models/proficiencyLevel.model';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProficiencyLevelService {\r\n proficiencyLevelData = new BehaviorSubject([]);\r\n editObj = new BehaviorSubject(new ProficiencyLevel());\r\n editMode = false;\r\n // serviceUrl = environment.ServerUrl;\r\n serviceUrl = environment.AdminMicroService;\r\n // serviceUrl = \"http://sg-srv-vtsapps:2021/admin/api/v1\";\r\n resources = servicePath.API.ProficiencyLevel;\r\n constructor( private httpClient : HttpClient) { }\r\n getProficiencyLevelData(){\r\n this.httpClient.get( this.serviceUrl+this.resources.list)\r\n .subscribe((res : ProficiencyLevel[]) =>{\r\n this.proficiencyLevelData.next(res);\r\n });\r\n }\r\n createProficiencyLevelData(creatingObj){\r\n if(this.editMode == false)\r\n return this.httpClient.post( this.serviceUrl+this.resources.create,creatingObj);\r\n else{\r\n return this.httpClient.post(this.serviceUrl+this.resources.update,creatingObj);\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { ProjectTypeData } from '../models/projecttype.model';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProjectTypeService {\r\n editMode = false;\r\n projectTypeData = new BehaviorSubject([]);\r\n editObj = new BehaviorSubject(new ProjectTypeData());\r\n // serviceUrl = environment.ServerUrl;\r\n serviceUrl = environment.AdminMicroService;\r\n // serviceUrl = \"http://sg-srv-vtsapps:2021/admin/api/v1\";\r\n resources = servicePath.API.ProjectType;\r\n constructor( private httpClient : HttpClient) { }\r\n\r\n getProjectTypeData(){\r\n this.httpClient.get(this.serviceUrl+this.resources.list)\r\n .subscribe((res : ProjectTypeData[]) =>{\r\n this.projectTypeData.next(res);\r\n });\r\n }\r\n createProjectType(createObj : ProjectTypeData){\r\n\r\n if(this.editMode == false)\r\n return this.httpClient.post(this.serviceUrl+this.resources.create, createObj);\r\n else{\r\n return this.httpClient.post(this.serviceUrl+this.resources.update, createObj);\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport {environment} from '../../../../environments/environment'\r\nimport { Observable } from \"rxjs\";\r\nimport * as servicePath from '../../../core/service-paths'\r\nimport {Roletype} from '../models/roletype.model';\r\nimport { GenericType } from '../../master-layout/models/dropdowntype.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RoleTypeService {\r\n _serviceUrl = environment.AdminMicroService;\r\n resources = servicePath.API.RoleType;\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n GetRoleTypes(): Observable {\r\n return this.httpClient.get(this._serviceUrl + this.resources.Get);\r\n }\r\n CreateRoleTypes(model: Roletype) {\r\n return this.httpClient.post(this._serviceUrl + this.resources.Create, model);\r\n }\r\n UpdateRoleTypes(model: Roletype) {\r\n return this.httpClient.post(this._serviceUrl + this.resources.Update, model);\r\n }\r\n DeleteRoleTypes(id) {\r\n return this.httpClient.delete(this._serviceUrl + this.resources.Delete + '/' + id);\r\n }\r\n GetActiveRoleTypes(): Observable {\r\n return this.httpClient.get(this._serviceUrl + this.resources.Get+\"?isActive=true\");\r\n }\r\n GetGradeRoleTypes(financialYearId:number, departmentId:number, roleTypeId:number): Observable {\r\n return this.httpClient.get(this._serviceUrl + this.resources.GetGradesByDepartment + financialYearId + \"&departmentId=\" + departmentId + \"&roleTypeId=\" + roleTypeId);\r\n }\r\n\r\n GetRoleTypesForDropdown(financialYearId:number, departmentId:number): Observable {\r\n return this.httpClient.get(this._serviceUrl + this.resources.GetRoleTypesForDropdown + financialYearId + \"&departmentId=\" + departmentId);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { environment } from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\n//import { RoleData, DepartmentDetails } from '../../../models/role.model';\r\nimport {RoleData} from '../models/role-data.model'\r\nimport { Department } from '../models/department.model';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { DepartmentDetails } from '../../master-layout/models/role.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RoleService {\r\n public editMode = false;\r\n public selectedDepartmentname=false;\r\n public roleData = new BehaviorSubject(new RoleData());\r\n public selectedDepartment = new BehaviorSubject(new DepartmentDetails());\r\n private serviceUrl = environment.AdminMicroService;\r\n private resources = servicePath.API.Roles;\r\n\r\n constructor(private httpClient : HttpClient) { }\r\n\r\n public getDepartmentList(){\r\n return this.httpClient.get(this.serviceUrl+servicePath.API.Department.list);\r\n }\r\n\r\n public getRoleDetailsByDepartmentID(id){\r\n \r\n return this.httpClient.get(this.serviceUrl+this.resources.GetRoleDetailsByDepartmentID + id)\r\n }\r\n\r\n\r\n public GetRoleSuffixAndPrefix(departmentId : number){ \r\n return this.httpClient.get(this.serviceUrl + this.resources.getRoleSuffixAndPrefix + departmentId)\r\n\r\n }\r\n\r\n public createRole(details: RoleData) {\r\n return this.httpClient.post(this.serviceUrl + this.resources.createRole, details)\r\n \r\n }\r\n\r\n public editRole(details: RoleData) {\r\n \r\n return this.httpClient.post(this.serviceUrl + this.resources.updateRole, details)\r\n \r\n }\r\n \r\n GetRolesAndDepartments() {\r\n let _url = this.serviceUrl + this.resources.GetRolesAndDepartments;\r\n return this.httpClient.get(_url);\r\n }\r\n\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { Seniority } from '../models/seniority.model';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SeniorityService {\r\n public editMode = false;\r\n private resources = servicePath.API.Seniority;\r\n public seniorityEdit = new BehaviorSubject(new Seniority());\r\n public seniorityList = new BehaviorSubject([]);\r\n // private _serviceUrl = environment.ServerUrl;\r\n _serviceUrl = environment.AdminMicroService;\r\n // private _serviceUrl = \"http://sg-srv-vtsapps:2021/admin/api/v1\";\r\n constructor(private httpClient : HttpClient ) { }\r\n \r\n public getSeniorities(){\r\n this.httpClient.get(this._serviceUrl + this.resources.list)\r\n .subscribe((res : Seniority[]) => {this.seniorityList.next(res);});\r\n }\r\n\r\n public createSeniority(seniority : Seniority){\r\n if(this.editMode == false)\r\n return this.httpClient.post(this._serviceUrl + this.resources.create, seniority)\r\n else\r\n return this.httpClient.post(this._serviceUrl + this.resources.update, seniority)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { ServiceType } from '../models/servicetype.model';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n })\r\n export class ServiceTypeService {\r\n serviceUrl = environment.AdminMicroService;\r\n editMode = false;\r\n editObj = new BehaviorSubject(new ServiceType());\r\n resources = servicePath.API.ServiceType;\r\n serviceTypeData = new BehaviorSubject([]);\r\n constructor(private httpClient: HttpClient) {}\r\n \r\n GetServiceTypeData() {\r\n this.httpClient\r\n .get(this.serviceUrl + this.resources.GetAll)\r\n .subscribe((res: ServiceType[]) => {\r\n this.serviceTypeData.next(res);\r\n });\r\n }\r\n \r\n CreateServiceTypeArea(createObj: ServiceType) {\r\n if (this.editMode == false)\r\n return this.httpClient.post(\r\n this.serviceUrl + this.resources.Create,\r\n createObj\r\n );\r\n else {\r\n return this.httpClient.post(\r\n this.serviceUrl + this.resources.Update,\r\n createObj\r\n );\r\n }\r\n }\r\n }","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { SkillGroupData } from '../models/skill-group-data.model';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SkillGroupService {\r\n public editMode = false;\r\n public skillGroupEdit = new BehaviorSubject(new SkillGroupData());\r\n public skillGroupList = new BehaviorSubject([]);\r\n\r\n _serviceUrl = environment.AdminMicroService;\r\n private resources = servicePath.API.SkillGroup;\r\n\r\n constructor(private httpClient : HttpClient) { }\r\n\r\n public getCompetencyArea(){\r\n return this.httpClient.get(this._serviceUrl + servicePath.API.CompetencyArea.list);\r\n }\r\n\r\n public getSkillGroup(){\r\n return this.httpClient.get(this._serviceUrl + this.resources.list)\r\n .subscribe((res :SkillGroupData[]) => {this.skillGroupList.next(res);});\r\n }\r\n\r\n public createSkillGroup(skillgroup : SkillGroupData){\r\n if(this.editMode ==false)\r\n return this.httpClient.post(this._serviceUrl + this.resources.create , skillgroup);\r\n else\r\n return this.httpClient.post(this._serviceUrl + this.resources.update , skillgroup);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport {environment} from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { SkillData } from '../models/skill-data.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SkillsService {\r\n public editMode = false;\r\n private _serverURL: string;\r\n private _resource: any;\r\n\r\n _serviceUrl = environment.AdminMicroService;\r\n private resources = servicePath.API.Skills;\r\n employeeUrl = environment.EmployeeMicroService;\r\n \r\n public skillsEdit = new BehaviorSubject(new SkillData());\r\n public skillsList = new BehaviorSubject([]);\r\n \r\n\r\n constructor(private httpClient : HttpClient) {\r\n this._serverURL = environment.ServerUrl;\r\n this._resource = servicePath.API.SkillSearch;\r\n\r\n\r\n }\r\n\r\n public getCompetencyArea(){\r\n return this.httpClient.get(this._serviceUrl + servicePath.API.CompetencyArea.list);\r\n }\r\n\r\n public getSkillGroupByCompetencyArea(competencyAreaId: number){\r\n return this.httpClient.get(this._serviceUrl + servicePath.API.SkillGroup.getSkillGroupsByCompetenctArea + competencyAreaId);\r\n }\r\n\r\n public getSkills(){\r\n return this.httpClient.get(this._serviceUrl + this.resources.list)\r\n .subscribe((res : SkillData[]) =>{ this.skillsList.next(res);});\r\n }\r\n\r\n public GetAllSkillDetails(EmployeeId: number) {\r\n const url = this.employeeUrl + this._resource.GetAllSkillDetails + EmployeeId;\r\n return this.httpClient.get(url);\r\n }\r\n\r\n\r\n // getActivitiesByHRA(EmployeeId: number){\r\n // const url = this.associateMicroService +this._resources.GetActivitiesByemployeeIdForHRA + '?employeeId=' +EmployeeId;\r\n // return this.httpClient.get(url);\r\n // }\r\n\r\n\r\n public createSkills(skills : SkillData){\r\n if(this.editMode ==false)\r\n return this.httpClient.post(this._serviceUrl + this.resources.create , skills);\r\n else\r\n return this.httpClient.post(this._serviceUrl + this.resources.update , skills);\r\n }\r\n\r\n \r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { Speciality } from '../models/speciality.model';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SpecialityService {\r\n public editMode = false;\r\n private resources = servicePath.API.Speciality;\r\n public specialityEdit = new BehaviorSubject(new Speciality());\r\n public specialityList = new BehaviorSubject([]);\r\n // private _serviceUrl = environment.ServerUrl;\r\n _serviceUrl = environment.AdminMicroService;\r\n // private _serviceUrl = \"http://sg-srv-vtsapps:2021/admin/api/v1\";\r\n constructor(private httpClient : HttpClient ) { }\r\n \r\n public getSpecialities(){\r\n this.httpClient.get(this._serviceUrl + this.resources.list)\r\n .subscribe((res : Speciality[]) => {this.specialityList.next(res);});\r\n }\r\n\r\n public createSpeciality(speciality : Speciality){\r\n if(this.editMode == false)\r\n return this.httpClient.post(this._serviceUrl + this.resources.create, speciality)\r\n else\r\n return this.httpClient.post(this._serviceUrl + this.resources.update, speciality)\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LoginComponent } from './components/login/login.component';\r\nimport { RouterModule } from '@angular/router';\r\nimport { AllAngularMaterialModule } from '../plugins/all-angular-material/all-angular-material.module';\r\nimport { NgxSpinnerModule } from 'ngx-spinner';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { HttpConfigInterceptor } from '../master-layout/httpInterceptor';\r\nimport { OAuthHelper } from '../../core/services/OAuthHelper.service';\r\n// import {\r\n// AuthModule,\r\n// LogLevel,\r\n// OidcConfigService,\r\n// } from 'angular-auth-oidc-client';\r\nimport { APP_INITIALIZER } from '@angular/core';\r\nimport { AuthCallbackComponent } from './components/auth-callback/auth-callback.component';\r\nimport{environment} from '../../../environments/environment';\r\n//import{environment} from '../../../environments/environment.qa';\r\n\r\n@NgModule({\r\n declarations: [LoginComponent, AuthCallbackComponent],\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n AllAngularMaterialModule,\r\n NgxSpinnerModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n // AuthModule.forRoot(),\r\n ],\r\n providers: [\r\n OAuthHelper,\r\n\r\n // OidcConfigService,\r\n // {\r\n // provide: APP_INITIALIZER,\r\n // useFactory: configureAuth,\r\n // deps: [OidcConfigService],\r\n // multi: true,\r\n // },\r\n ],\r\n})\r\nexport class AuthenticationModule {}\r\n// export function configureAuth(oidcConfigService: OidcConfigService) {\r\n// debugger;\r\n// return () =>\r\n// oidcConfigService.withConfig({\r\n \r\n// stsServer: environment.IDENTITY_SERVER_URL,\r\n// redirectUrl:environment.IDENTITY_SERVER_REDIRECT_URL,\r\n// // postLogoutRedirectUri: environment.postLogoutRedirectUri,\r\n// clientId: environment.clientId,\r\n// scope: environment.scope,\r\n// responseType: 'id_token token',\r\n// });\r\n// }\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { AuthService } from 'src/app/core/services/auth.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Component({\r\n selector: 'app-auth-callback',\r\n templateUrl: './auth-callback.component.html',\r\n styleUrls: ['./auth-callback.component.scss'],\r\n})\r\nexport class AuthCallbackComponent implements OnInit {\r\n\r\n constructor(\r\n private authService: AuthService, \r\n private route: Router,\r\n private router: ActivatedRoute,\r\n private spinner: NgxSpinnerService\r\n ) { }\r\n \r\n async ngOnInit() {\r\n \r\n let authCode;\r\n this.router.queryParams.subscribe(params => {\r\n authCode = params.auth_code\r\n })\r\n let tokenRequestObj ={\r\n authorization_code :null,\r\n client_id:null\r\n };\r\n tokenRequestObj.authorization_code = authCode;\r\n tokenRequestObj.client_id = environment.client_id;\r\n this.spinner.show();\r\n this.authService.getAcesstoken(tokenRequestObj).subscribe((res:any)=>{\r\n this.authService.setAccessToken(res.data['access_token']);\r\n this.GetLoggedUserEmail();\r\n },(error)=>{\r\n this.spinner.hide();\r\n this.route.navigate(['/errorPage']);\r\n }) \r\n }\r\n\r\n GetLoggedUserEmail()\r\n {\r\n this.authService.GetLoggedInUserEmail().subscribe((res)=>{\r\n sessionStorage['email'] = res;\r\n this.route.navigate(['/roles'])\r\n })\r\n }\r\n}\r\n\r\n\r\n\r\n","\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormGroup, Validators, FormBuilder } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\nimport { environment } from '../../../../../environments/environment';\r\nimport { themeconfig } from 'src/themeconfig';\r\n\r\n@Component({\r\n selector: 'app-login',\r\n templateUrl: './login.component.html',\r\n styleUrls: ['./login.component.scss'],\r\n})\r\nexport class LoginComponent implements OnInit {\r\n loginForm: FormGroup;\r\n email: string;\r\n password: string;\r\n authenticationStatus: string = 'Loading';\r\n authenticationUrl = environment.authUrl;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n production: boolean = environment.production;\r\n\r\n constructor(private route: Router, private formBuilder: FormBuilder) { }\r\n\r\n ngOnInit(): void {\r\n if (this.production) {\r\n this.checkForCallback();\r\n }\r\n\r\n this.loginForm = this.formBuilder.group({\r\n email: [\r\n 'kalyan.penumutchu@senecaglobal.com',\r\n [Validators.required, Validators.email],\r\n ],\r\n password: [''],\r\n });\r\n }\r\n\r\n login() {\r\n window.location.href = this.authenticationUrl;\r\n }\r\n\r\n loginUser() {\r\n sessionStorage['email'] = this.loginForm.get('email').value;\r\n this.route.navigate(['/roles']);\r\n }\r\n\r\n checkForCallback() {\r\n if (window.location.href.includes('auth_code')) {\r\n const authCode = window.location.href.split('auth_code=')[1];\r\n this.route.navigate(['/auth-callback'], {\r\n queryParams: { auth_code: authCode },\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

HRMS

\r\n

\r\n A Human Resources Management System (HRMS) is a web site that combines many human\r\n resources functions,\r\n including on-boarding associates, creating projects and the overall\r\n maintenance of associate information within an organization.
\r\n The below modules are included:

\r\n
    \r\n \r\n
  1. Site Admin Module
  2. \r\n
  3. Associate Life Cycle
  4. \r\n
  5. Project Life Cycle
  6. \r\n
  7. Key Results Area (KRA)
  8. \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 Email\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

{{authenticationStatus}} ...

\r\n
","\r\nexport interface IUser {\r\n email?: string;\r\n password?: string;\r\n firstName?: string;\r\n lastName?: string;\r\n fullName?: string;\r\n roleName?: string;\r\n employeeId?: number;\r\n roles?: string;\r\n}\r\n\r\nexport class User {\r\n email!: string;\r\n password?: string;\r\n firstName?: string;\r\n lastName?: string;\r\n fullName?: string;\r\n roleName?: string;\r\n employeeId?: number;\r\n roles?: string;\r\n departmentId?: number;\r\n employeeCode: string;\r\n}\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport {MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatDialogConfig} from '@angular/material/dialog';\r\nimport { FormGroup, FormControl, Validators, FormBuilder } from '@angular/forms';\r\nimport { KraMeasurementTypeService } from 'src/app/modules/kra/services/kra.measurement-type.service';\r\nimport { KRAMeasurementTypeData } from 'src/app/modules/kra/models/kra.measurement-type.model';\r\nimport { MasterDataService } from 'src/app/core/services/masterdata.service';\r\nimport { AspectMasterService } from 'src/app/modules/kra/services/aspectmaster.service';\r\nimport { AspectData, OperatorData, TargetPeriodData } from 'src/app/modules/master-layout/models/kra.model';\r\nimport { KrascalemasterService } from 'src/app/modules/kra/services/krascalemaster.service';\r\nimport { KRAScaleMaster } from 'src/app/modules/kra/models/krascaleData.model';\r\n//import { MessageService } from 'primeng/api';\r\nimport { DefinitionModel } from 'src/app/modules/kra/models/kradefinition.model';\r\nimport { KraDefinitionService } from 'src/app/modules/kra/services/kradefinition.service';\r\nimport { ApplicableRoleTypeService } from 'src/app/modules/kra/services/applicableroletype.service';\r\nimport {\r\n MatSnackBar,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition,\r\n} from '@angular/material/snack-bar';\r\nimport * as moment from 'moment';\r\nimport { isObject } from 'rxjs/internal-compatibility';\r\n\r\ninterface SelectItem {\r\n value : number;\r\n label : string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-add-kradlg',\r\n templateUrl: './add-kradlg.component.html',\r\n styleUrls: ['./add-kradlg.component.scss'],\r\n providers: [KraMeasurementTypeService, MasterDataService, AspectMasterService, \r\n KrascalemasterService, KraDefinitionService, ApplicableRoleTypeService]\r\n})\r\nexport class AddKRAdlgComponent {\r\n themeappeareance = themeconfig.formfieldappearances;\r\n\r\n addKRA: FormGroup;\r\n\r\n aspectList: SelectItem[];\r\n measurementTypeList: SelectItem[];\r\n operatorList: SelectItem[];\r\n targetPeriodList: SelectItem[];\r\n scaleList: SelectItem[];\r\n aspectId: number;\r\n measurementTypeId: number;\r\n showScales: boolean = false;\r\n operatorId: number;\r\n targetvalue: string;\r\n scaleId: number;\r\n targetPeriodId: number;\r\n //applicableRoleType: number;\r\n finYearId: number;\r\n depId: number;\r\n gradeId: number;\r\n roleId: number;\r\n definitionDetailsId:string\r\n definitionDetails:any\r\n definitionTransactionId:number;\r\n editMode = false;\r\n btntext: string;\r\n IsHOD = false;\r\n selectedApplicableRoleTypeId: number;\r\n selectedkraaspect: string;\r\n selectedmetrics: string;\r\n selectedmeasurementtype: string;\r\n selectedtargetvalue: string;\r\n selectedscalevalue: number;\r\n selectedoperator: number;\r\n selectedtargetperiod: number;\r\n showCalender:boolean = false;\r\n targetValueLength:number=3;\r\n kraDefinitionResponse:DefinitionModel = new DefinitionModel();\r\n\r\n constructor(\r\n private _snackBar: MatSnackBar,\r\n public dialogRef: MatDialogRef,\r\n private _formBuilder: FormBuilder,\r\n private _aspectMasterService: AspectMasterService,\r\n private _kraMeasurementTypeService: KraMeasurementTypeService,\r\n private _kraScaleMasterService: KrascalemasterService,\r\n private _masterDataService: MasterDataService,\r\n private _kraDefinitionService: KraDefinitionService,\r\n private _appRoleTypeService: ApplicableRoleTypeService,\r\n //private messageService: MessageService,\r\n @Inject(MAT_DIALOG_DATA) public data: AddKRAdlgComponent) {\r\n \r\n }\r\n\r\n ngOnInit() { \r\n this.finYearId = this.data.finYearId;\r\n this.depId = this.data.depId;\r\n this.gradeId = this.data.gradeId;\r\n this.roleId = this.data.roleId;\r\n this.editMode=this.data.editMode;\r\n this.btntext=this.data.btntext;\r\n this.IsHOD=this.data.IsHOD;\r\n this.definitionDetailsId=this.data.definitionDetailsId;\r\n\r\n this.addKRA = this._formBuilder.group({\r\n kraaspect: [null, [Validators.required]],\r\n metrics: ['', [Validators.required]],\r\n measurementtype:[null, [Validators.required]],\r\n scalevalue: [null, null],\r\n operator: [null, [Validators.required]],\r\n // targetvalue: [null, [Validators.required]],\r\n targetvalue: ['', [Validators.required, Validators.min(0), Validators.max(999)]],\r\n targetperiod: [null, [Validators.required]],\r\n });\r\n // this.getSelectedApplicableRoleTypeId();\r\n this.getAspects();\r\n this.getMeasurementTypes();\r\n this.getOperators();\r\n this.getTargetPeriods();\r\n this.getScales(); \r\n if(this.editMode)\r\n { \r\n this.addKRA.controls['kraaspect'].disable();\r\n if(!this.IsHOD){\r\n this.GetKRAData();\r\n }\r\n else{\r\n this.GetKRADataForHOD()\r\n }\r\n \r\n }\r\n else this.addKRA.controls['kraaspect'].enable();\r\n }\r\n\r\n private getAspects(): void {\r\n this._aspectMasterService.GetAspectMasterList().subscribe((res: AspectData[]) => {\r\n this.aspectList = [];\r\n this.aspectList.push({ label: 'Select Aspect', value: null});\r\n res.forEach((e: AspectData) => {\r\n this.aspectList.push({ label: e.AspectName, value: e.AspectId})\r\n })\r\n },\r\n (error: any) => {\r\n this._snackBar.open('Failed to get Aspects.', 'x', {​​​​​​​\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }​​​​​​​);\r\n }\r\n );\r\n } \r\n\r\n private getMeasurementTypes(): void {\r\n this._kraMeasurementTypeService.GetKRAMeasurementType().subscribe((res: KRAMeasurementTypeData[]) => {\r\n this.measurementTypeList = [];\r\n this.measurementTypeList.push({ label: 'Select Measurement Type', value: null });\r\n res.forEach((e: KRAMeasurementTypeData) => {\r\n this.measurementTypeList.push({ label: e.MeasurementType, value: e.Id})\r\n });\r\n },\r\n (error: any) => {\r\n this._snackBar.open('Failed to get Measurement Types.', 'x', {​​​​​​​\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }​​​​​​​);\r\n }\r\n );\r\n }\r\n\r\n private getOperators(): void {\r\n this._masterDataService.GetKRAOperators().subscribe((res: OperatorData[]) => {\r\n this.operatorList = [];\r\n this.operatorList.push({ label: 'Select Operator', value: null});\r\n res.forEach((e: OperatorData) => {\r\n this.operatorList.push({ label: e.OperatorValue, value: e.OperatorId})\r\n });\r\n },\r\n (error: any) => {\r\n this._snackBar.open('Failed to get Operators.', 'x', {​​​​​​​\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }​​​​​​​);\r\n }\r\n );\r\n }\r\n\r\n private getTargetPeriods(): void {\r\n this._masterDataService.GetKRATargetPeriods().subscribe((res: TargetPeriodData[]) => {\r\n this.targetPeriodList = [];\r\n this.targetPeriodList.push({ label: 'Select Target Period', value: null});\r\n res.forEach((e: TargetPeriodData) => {\r\n this.targetPeriodList.push({ label: e.TargetPeriodValue, value: e.TargetPeriodId})\r\n });\r\n },\r\n (error: any) => {\r\n this._snackBar.open('Failed to get Target Periods.', 'x', {​​​​​​​\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }​​​​​​​);\r\n }\r\n );\r\n }\r\n\r\n private getScales(): void {\r\n this._kraScaleMasterService.GetKRAScale().subscribe((res: KRAScaleMaster[]) => {\r\n this.scaleList = [];\r\n this.scaleList.push({ label: 'Select Scale', value: null});\r\n res.forEach((e: KRAScaleMaster) => {\r\n this.scaleList.push({ label: e.ScaleTitle + '(' + e.MinimumScale.toString() + ' - ' + e.MaximumScale.toString() + ')', value: e.ScaleID})\r\n });\r\n },\r\n (error: any) => {\r\n this._snackBar.open('Failed to get Scales.', 'x', {​​​​​​​\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }​​​​​​​);\r\n }\r\n );\r\n }\r\n\r\n private getSelectedApplicableRoleTypeId(): void {\r\n var selectedRoleId: number = this.roleId;\r\n // this._appRoleTypeService.getApplicableRoleTypeById(this.finYearId,\r\n // this.depId, null, this.gradeId)\r\n // .subscribe(\r\n // (res: any[]) => {\r\n // if (res) {\r\n // res.forEach((element: any) => {\r\n // if (element.RoleTypeId == selectedRoleId) {\r\n // this.selectedApplicableRoleTypeId = element.ApplicableRoleTypeId;\r\n // }\r\n // })\r\n // }\r\n // }\r\n // );\r\n }\r\n\r\nprivate GetKRAData(): void {\r\n var selectedRoleId: number = this.roleId;\r\n this._kraDefinitionService.GetDefinitionDetails(this.definitionDetailsId)\r\n .subscribe(\r\n (res: any[]) => {\r\n if (res) { \r\n res.forEach((element: any) => {\r\n this.kraDefinitionResponse.aspectId = element.AspectId;\r\n this.kraDefinitionResponse.metric = element.Metric;\r\n this.kraDefinitionResponse.measurementTypeId =element.MeasurementTypeId;\r\n this.kraDefinitionResponse.targetValue = element.TargetValue;\r\n this.kraDefinitionResponse.operatorId = element.OperatorId;\r\n this.kraDefinitionResponse.targetPeriodId = element.TargetPeriodId;\r\n if(this.kraDefinitionResponse.scaleId != null){\r\n this.kraDefinitionResponse.scaleId = element.ScaleId;\r\n }\r\n else{\r\n this.kraDefinitionResponse.scaleId=0;\r\n }\r\n this.selectedkraaspect=this.aspectId=element.AspectId;\r\n this.selectedmetrics = this.addKRA.value.metrics=element.Metric;\r\n this.selectedmeasurementtype= this.measurementTypeId=element.MeasurementTypeId;\r\n this.selectedscalevalue =this.scaleId= element.ScaleId; \r\n this.selectedoperator = this.operatorId=element.OperatorId;\r\n this.selectedtargetvalue = this.addKRA.value.targetvalue= element.TargetValue;\r\n this.selectedtargetperiod = this.targetPeriodId=element.TargetPeriodId; \r\n \r\n this.addKRA.controls[\"kraaspect\"].setValue(element.AspectId);\r\n this.addKRA.controls[\"metrics\"].setValue(element.Metric);\r\n this.addKRA.controls[\"measurementtype\"].setValue(element.MeasurementTypeId);\r\n this.addKRA.controls[\"scalevalue\"].setValue(element.ScaleId);\r\n this.addKRA.controls[\"operator\"].setValue(element.OperatorId);\r\n this.addKRA.controls[\"targetvalue\"].setValue(element.TargetValue);\r\n this.addKRA.controls[\"targetperiod\"].setValue(element.TargetPeriodId);\r\n\r\n if (element.MeasurementTypeId == 4) { // scale\r\n this.showScales = true;\r\n this.targetValueLength = 1;\r\n // this.addKRA.controls['scalevalue'].setValidators([null, Validators.required]);\r\n // // this.selectedscalevalue = null;\r\n // this.addKRA.get('scalevalue').updateValueAndValidity();\r\n }\r\n else {\r\n this.showScales = false;\r\n this.targetValueLength = 3;\r\n // this.selectedscalevalue = this.scaleId = null;\r\n // this.addKRA.controls['scalevalue'].setValidators([null, null]);\r\n // // this.addKRA.get('scalevalue').clearValidators();\r\n // this.addKRA.get('scalevalue').updateValueAndValidity();\r\n } \r\n if(element.MeasurementTypeId == 3){ //date \r\n this.showCalender = true;\r\n }\r\n else{\r\n this.showCalender =false;\r\n }\r\n \r\n if (element.MeasurementTypeId == 5) //text\r\n {\r\n this.targetValueLength = 150;\r\n this.addKRA.get('operator').clearValidators();\r\n this.addKRA.get('operator').updateValueAndValidity();\r\n }\r\n else {\r\n this.addKRA.get('operator').setValidators([Validators.required]);\r\n this.addKRA.get('operator').updateValueAndValidity();\r\n }\r\n })\r\n }\r\n }\r\n );\r\n }\r\n\r\n GetKRADataForHOD(){\r\n this.selectedkraaspect=this.aspectId=this.data.definitionDetails.AspectId;\r\n this.addKRA.value.metrics=this.data.definitionDetails.Metric;\r\n this.measurementTypeId=this.data.definitionDetails.MeasurementTypeId;\r\n this.scaleId= this.data.definitionDetails.ScaleId; \r\n this.operatorId=this.data.definitionDetails.OperatorId;\r\n this.addKRA.value.targetvalue= this.data.definitionDetails.TargetValue;\r\n this.targetPeriodId=this.data.definitionDetails.TargetPeriodId; \r\n \r\n this.addKRA.controls[\"kraaspect\"].setValue(this.data.definitionDetails.AspectId);\r\n this.addKRA.controls[\"metrics\"].setValue(this.data.definitionDetails.Metric);\r\n this.addKRA.controls[\"measurementtype\"].setValue(this.data.definitionDetails.MeasurementTypeId);\r\n this.addKRA.controls[\"scalevalue\"].setValue(this.data.definitionDetails.ScaleId);\r\n this.addKRA.controls[\"operator\"].setValue(this.data.definitionDetails.OperatorId);\r\n this.addKRA.controls[\"targetvalue\"].setValue(this.data.definitionDetails.TargetValue);\r\n this.addKRA.controls[\"targetperiod\"].setValue(this.data.definitionDetails.TargetPeriodId);\r\n\r\n if (this.data.definitionDetails.MeasurementTypeId == 4) { //scale\r\n this.showScales = true;\r\n this.targetValueLength = 1;\r\n // this.addKRA.controls['scalevalue'].setValidators([null, Validators.required]);\r\n // // this.selectedscalevalue = null;\r\n // this.addKRA.get('scalevalue').updateValueAndValidity();\r\n }\r\n else {\r\n this.showScales = false;\r\n this.targetValueLength = 3;\r\n // this.selectedscalevalue = this.scaleId = null;\r\n // this.addKRA.controls['scalevalue'].setValidators([null, null]);\r\n // // this.addKRA.get('scalevalue').clearValidators();\r\n // this.addKRA.get('scalevalue').updateValueAndValidity();\r\n } \r\n if (this.data.definitionDetails.MeasurementTypeId == 5) //text\r\n {\r\n this.targetValueLength = 150;\r\n this.addKRA.get('operator').clearValidators();\r\n this.addKRA.get('operator').updateValueAndValidity();\r\n }\r\n else {\r\n this.addKRA.get('operator').setValidators([Validators.required]);\r\n this.addKRA.get('operator').updateValueAndValidity();\r\n }\r\n \r\n }\r\n onAspectChanged(aspectId: number) {\r\n this.aspectId = aspectId;\r\n }\r\n\r\n onMeasurementChanged(measurementTypeId: number) {\r\n this.showCalender=false\r\n this.addKRA.get('targetvalue').reset();\r\n this.measurementTypeId = measurementTypeId; \r\n if (measurementTypeId == 4) //scale\r\n {\r\n this.showScales = true; \r\n this.targetValueLength = 1; \r\n } \r\n else \r\n {\r\n this.showScales = false;\r\n this.targetValueLength = 3;\r\n }\r\n if(measurementTypeId == 3) //date\r\n {\r\n this.showCalender = true\r\n }\r\n else{\r\n this.showCalender = false\r\n }\r\n if(measurementTypeId == 5) //text\r\n {\r\n this.targetValueLength = 150;\r\n this.addKRA.get('operator').clearValidators(); \r\n this.addKRA.get('operator').updateValueAndValidity();\r\n }\r\n else{\r\n this.addKRA.get('operator').setValidators([Validators.required]);\r\n this.addKRA.get('operator').updateValueAndValidity();\r\n }\r\n }\r\n\r\n onKeyDown(e,measurementtypeId:number){\r\n\r\n const excludedKeys = [8, 37, 39, 46];\r\n let regex: RegExp = /^([a-zA-Z0-9 ]*)$/;\r\n if (!regex.test(e.key)) { // checking for special characters\r\n // when the user is giving special characters in between the input\r\n e.preventDefault();\r\n }\r\n\r\n else{\r\n if(measurementtypeId == 3 || measurementtypeId == 5) // don't do anything for text or date\r\n {\r\n return;\r\n }\r\n \r\n else {\r\n if (!((e.keyCode >= 48 && e.keyCode <= 57) || (e.keyCode >= 96 && e.keyCode <= 105) || (excludedKeys.includes(e.keyCode)))) { \r\n e.preventDefault();\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n clearInput(): void {\r\n this.addKRA.get('targetvalue').reset();\r\n }\r\n\r\n\r\n onOperatorChanged(operatorId: number) {\r\n this.operatorId = operatorId;\r\n }\r\n\r\n onScaleChanged(scaleId: number) {\r\n this.scaleId =this.selectedscalevalue= scaleId\r\n }\r\n\r\n onTargetPeriodChanged(targetPeriodId: number) {\r\n this.targetPeriodId = targetPeriodId;\r\n }\r\n\r\n onNoClick(): void { \r\n this.dialogRef.close(true);\r\n }\r\n\r\n onAddClick(): void { \r\n \r\n if (this.addKRA.valid) {\r\n\r\n let definitionModel: DefinitionModel;\r\n definitionModel = new DefinitionModel();\r\n definitionModel.roleTypeId = this.roleId;\r\n definitionModel.financialYearId = this.finYearId; \r\n definitionModel.aspectId = this.aspectId;\r\n definitionModel.measurementTypeId = this.measurementTypeId;\r\n //definitionModel.definitionId = '';\r\n\r\n \r\n definitionModel.operatorId = this.operatorId;\r\n definitionModel.targetPeriodId = this.targetPeriodId;\r\n // definitionModel.Metric = this.addKRA.controls.metrics.value;\r\n // definitionModel.TargetValue = this.addKRA.controls.targetvalue.value;\r\n definitionModel.metric = this.addKRA.value.metrics;\r\n if(typeof(this.addKRA.value.targetvalue) != \"string\"){\r\n definitionModel.targetValue = moment(this.addKRA.value.targetvalue).format('DD-MM-YYYY')\r\n }\r\n else {\r\n definitionModel.targetValue = this.addKRA.value.targetvalue;\r\n }\r\n definitionModel.currentUser=JSON.parse(sessionStorage.AssociatePortal_UserInformation).email;\r\n definitionModel.createdBy=JSON.parse(sessionStorage.AssociatePortal_UserInformation).fullName;\r\n // definitionModel.IsHODApproved = false;\r\n // definitionModel.IsCEOApproved = false;\r\n // definitionModel.IsDeleted = false;\r\n // definitionModel.IsHOD = this.IsHOD;\r\n // definitionModel.SourceDefinitionId = 0;\r\n definitionModel.isActive = true;\r\n if (this.measurementTypeId == 4){\r\n definitionModel.scaleId = this.scaleId;\r\n } \r\n else {\r\n definitionModel.scaleId = 0;\r\n }\r\n \r\n if (this.editMode == false) { \r\n if(this.IsHOD){\r\n this._kraDefinitionService\r\n .AddKRAByHOD(definitionModel)\r\n .subscribe(\r\n res => {\r\n this.dialogRef.close(13);\r\n },\r\n error => {\r\n this._snackBar.open(error.error, 'x', {​​​​​​​\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }​​​​​​​);\r\n }\r\n );\r\n }\r\n else{\r\n this._kraDefinitionService\r\n .CreateDefinition(definitionModel)\r\n .subscribe(\r\n res => {\r\n this.dialogRef.close(13);\r\n },\r\n error => {\r\n this._snackBar.open(error.error, 'x', {​​​​​​​\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }​​​​​​​);\r\n }\r\n );\r\n }\r\n } else {\r\n definitionModel.definitionId = this.definitionDetailsId;\r\n definitionModel.modifiedBy=JSON.parse(sessionStorage.AssociatePortal_UserInformation).fullName;\r\n definitionModel.definitionTransactionId = this.data.definitionTransactionId\r\n if(this.IsHOD){\r\n this._kraDefinitionService\r\n .EditKRAByHOD(definitionModel)\r\n .subscribe(\r\n res => {\r\n this.dialogRef.close(13);\r\n },\r\n error => {\r\n this._snackBar.open(error.error, 'x', {​​​​​​​\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }​​​​​​​);\r\n }\r\n );\r\n }\r\n else{\r\n if(definitionModel.aspectId == this.kraDefinitionResponse.aspectId && this.kraDefinitionResponse.measurementTypeId == definitionModel.measurementTypeId && this.kraDefinitionResponse.metric == definitionModel.metric && this.kraDefinitionResponse.operatorId == definitionModel.operatorId && this.kraDefinitionResponse.targetPeriodId == definitionModel.targetPeriodId && this.kraDefinitionResponse.targetValue == definitionModel.targetValue && this.kraDefinitionResponse.scaleId == definitionModel.scaleId){\r\n\r\n this._snackBar.open('No Changes to Update', 'x', {​​​​​​​\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }​​​​​​​);\r\n return;\r\n }\r\n this._kraDefinitionService\r\n .UpdateKRA(definitionModel)\r\n .subscribe(\r\n res => {\r\n this.dialogRef.close(13);\r\n },\r\n error => {\r\n this._snackBar.open(error.error, 'x', {​​​​​​​\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\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
\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n KRA Aspect\r\n \r\n \r\n {{aspect.label}} \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n Metric\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n Measurement Type\r\n \r\n \r\n {{measurementtype.label}}\r\n \r\n \r\n
\r\n
\r\n \r\n Target Value\r\n \r\n \r\n \r\n Minimum value should be Zero.\r\n \r\n \r\n \r\n Maximum value should be 999.\r\n \r\n \r\n
\r\n
\r\n \r\n Target Value\r\n \r\n \r\n close\r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n Select Scale\r\n \r\n \r\n {{scale.label}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Operator\r\n \r\n \r\n {{operator.label}}\r\n \r\n \r\n
\r\n
\r\n \r\n Target Period\r\n \r\n \r\n {{tp.label}}\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 { AfterViewInit, Component, ViewChild, OnInit } from '@angular/core';\r\nimport { FormControl, FormGroup, FormGroupDirective, Validators } from '@angular/forms';\r\nimport { Observable } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport {SelectionModel} from '@angular/cdk/collections';\r\n//import { MasterDataService } from 'src/app/core/services/masterdata.service';\r\nimport { MasterDataService } from '../../../../core/services/masterdata.service';\r\nimport { DepartmentDetails } from '../../../master-layout/models/role.model';\r\nimport {Grade} from \"../../../admin/models/grade.model\"; \r\nimport { Roletype } from '../../../kra/models/roletype.model';\r\nimport { element } from 'protractor';\r\nimport { FinancialYear, SelectedKRAParameters } from '../../../master-layout/models/kra.model';\r\nimport { RoleTypeService } from '../../../admin/services/role-type.service'\r\nimport { ApplicableRoleTypeService } from \"../../services/applicableroletype.service\";\r\nimport { ApplicableRoleType , ApplicableRoleTypeData} from '../../models/kraapplicableRoleType.model';\r\nimport * as servicePath from '../../../../core/service-paths';\r\n\r\n\r\nimport {\r\n MatSnackBar,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition,\r\n} from '@angular/material/snack-bar';\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\n\r\n\r\ninterface SelectItem {\r\n value : number;\r\n label : string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-applicableroletypes',\r\n templateUrl: './applicableroletypes.component.html',\r\n styleUrls: ['./applicableroletypes.component.scss'],\r\n \r\n})\r\nexport class ApplicableroletypesComponent implements OnInit {\r\n selectedParameters : SelectedKRAParameters;\r\n formSubmitted = false;\r\n roletypedata: any;\r\n selection = new SelectionModel(true, []);\r\n themeappeareance = themeconfig.formfieldappearances;\r\n public departmentList: SelectItem[] = [];\r\n public gradeList: SelectItem[] =[];\r\n public roleTypeList: SelectItem[] =[];\r\n public financialYearList: SelectItem[] = [];\r\n approleTypeForm: FormGroup;\r\n btnLabel = \"Save\";\r\n applicableRoleTypeList : ApplicableRoleTypeData[];\r\n list : any;\r\n selectedApplicableRoleType : ApplicableRoleTypeData;\r\n resources = servicePath.API.PagingConfigValue;\r\n PageSize: number;\r\n dataSource = new MatTableDataSource();\r\n PageDropDown: number[] = [];\r\n \r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n cols = [\r\n { field: 'FinancialYearName', header: 'Finacial Year' },\r\n { field: 'DepartmentDescription', header: 'Department' },\r\n { field: 'GradeName', header: 'Grade' },\r\n { field: 'RoleTypeName', header: 'Role Type' },\r\n ];\r\n displayedColumns: string[] = [\r\n 'FinancialYearName',\r\n 'DepartmentDescription',\r\n 'GradeName',\r\n 'RoleTypeName',\r\n 'Delete',\r\n ];\r\n columnsToDisplay: string[] = this.displayedColumns.slice();\r\n\r\n drop(event: CdkDragDrop) {\r\n moveItemInArray(\r\n this.displayedColumns,\r\n event.previousIndex,\r\n event.currentIndex\r\n );\r\n }\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.dataSource.data);\r\n }\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n\r\n constructor( private _snackBar: MatSnackBar,\r\n public navService: NavService,\r\n private _masterDataService: MasterDataService, \r\n private _roleTypeService: RoleTypeService, \r\n private _applicableRoleTypeService: ApplicableRoleTypeService, \r\n ) { \r\n this.selectedParameters = new SelectedKRAParameters();\r\n this.PageSize = this.resources.PageSize;\r\n this.PageDropDown = this.resources.PageDropDown; \r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.approleTypeForm = new FormGroup({\r\n FinancialYearId: new FormControl(null, [Validators.required]),\r\n DepartmentId: new FormControl(null, [Validators.required]),\r\n GradeRoleTypeId: new FormControl(null), \r\n }); \r\n this.getFinancialYears();\r\n this.getDepartments(); \r\n this.GetRoleTypes(); \r\n this.Reset(); \r\n }\r\n \r\n getFinancialYears(): void { \r\n this._masterDataService.GetFinancialYears().subscribe((yearsdata: any[]) => {\r\n this.financialYearList = [];\r\n this.financialYearList.push({ label: 'Select Financial Year', value: null });\r\n yearsdata.forEach((e: any) => {\r\n this.financialYearList.push({ label: e.FinancialYearName, value: e.Id });\r\n });\r\n }, error => {\r\n this._snackBar.open(\"Failed to get Financial Year List\" + error.error, 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //this.messageService.add({ severity: 'error', summary: 'Error Message', detail: 'Failed to get Financial Year List' });\r\n }\r\n );\r\n }\r\n\r\n getDepartments() : void {\r\n this._masterDataService.GetDepartmentsMasterData().subscribe(\r\n (res: DepartmentDetails[]) => {\r\n this.departmentList =[];\r\n this.departmentList.push({label : \"Select Department\", value :null})\r\n res.forEach((element :DepartmentDetails) => {\r\n this.departmentList.push({\r\n label : element.Description,\r\n value : element.DepartmentId\r\n });\r\n });\r\n },\r\n (error: any) => { \r\n this._snackBar.open(\"Failed to get Departments details\" + error.error, 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n}\r\n\r\n GetRoleTypes() {\r\n this._roleTypeService.GetActiveRoleTypes().subscribe((data) => { \r\n this.roletypedata = data;\r\n });\r\n } \r\n getApplicableRoleTypeList(event): void { \r\n this.showApplicableRoleTypes(event.value);\r\n }\r\n\r\n saveApplicableRoleType(): void {\r\n // this.formSubmitted = true; \r\n this.approleTypeForm.get('FinancialYearId').setValidators([Validators.required])\r\n this.approleTypeForm.get('FinancialYearId').updateValueAndValidity();\r\n this.approleTypeForm.get('DepartmentId').setValidators([Validators.required])\r\n this.approleTypeForm.get('DepartmentId').updateValueAndValidity();\r\n this.approleTypeForm.get('GradeRoleTypeId').setValidators([Validators.required])\r\n this.approleTypeForm.get('GradeRoleTypeId').updateValueAndValidity();\r\n if(this.approleTypeForm.value.FinancialYearId==null ||\r\n this.approleTypeForm.value.DepartmentId==null||\r\n this.approleTypeForm.value.GradeRoleTypeId==null) return;\r\n if (this.approleTypeForm.valid) { \r\n if (this._applicableRoleTypeService.editMode == false)\r\n {\r\n this._applicableRoleTypeService.addKRAApplicableRoleType(\r\n this.approleTypeForm.value).subscribe(res => {\r\n this.formSubmitted = false;\r\n this.showApplicableRoleTypes(this.approleTypeForm.value.FinancialYearId); \r\n this.Clear(); \r\n if (res == 1) \r\n this._snackBar.open('ApplicableRole Type added.', '', {\r\n duration: 1000,\r\n panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //this.messageService.add({ severity: 'success', summary: 'Success Message', detail: 'ApplicableRole Type added' }); \r\n else if (res == -1)\r\n this._snackBar.open('ApplicableRole Type already exist.', '', {\r\n duration: 1000,\r\n // panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //this.messageService.add({ severity: 'warn', summary: 'Warning Message', detail: 'ApplicableRole Type already exist' });\r\n else if (res == 0)\r\n this._snackBar.open('Draft status not found.', '', {\r\n duration: 1000,\r\n //panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //this.messageService.add({ severity: 'warn', summary: 'Warning Message', detail: 'Draft status not found' });\r\n else \r\n this._snackBar.open('Unable to add ApplicableRole Type.', '', {\r\n duration: 1000,\r\n // panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //this.messageService.add({ severity: 'error', summary: 'Error message', detail: 'Unable to add ApplicableRole Type' }); \r\n },\r\n error => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({ severity: 'error', summary: 'Error message', detail: error.error });\r\n });\r\n }\r\n else\r\n {\r\n var creatingObj = new ApplicableRoleType();\r\n creatingObj.applicableRoleTypeId=this._applicableRoleTypeService.editObj.value.ApplicableRoleTypeId;\r\n creatingObj.financialYearId=this.approleTypeForm.value.FinancialYearId;\r\n creatingObj.departmentId=this.approleTypeForm.value.DepartmentId;\r\n creatingObj.gradeRoleTypeId =this.approleTypeForm.value.GradeRoleTypeId;\r\n this._applicableRoleTypeService.editApplicableRoleType(creatingObj).subscribe(res => { \r\n if (res == 1) \r\n this._snackBar.open('ApplicableRole Type updated.', '', {\r\n duration: 1000,\r\n panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //this.messageService.add({ severity: 'success', summary: 'Success Message', detail: 'ApplicableRole Type updated' }); \r\n else if (res == -1)\r\n this._snackBar.open('ApplicableRole Type already exist.', '', {\r\n duration: 1000,\r\n // panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //this.messageService.add({ severity: 'warn', summary: 'Warning Message', detail: 'ApplicableRole Type already exist' });\r\n else if (res == 0)\r\n this._snackBar.open('Draft status not found.', '', {\r\n duration: 1000,\r\n //panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //this.messageService.add({ severity: 'warn', summary: 'Warning Message', detail: 'Draft status not found' });\r\n else \r\n {\r\n this._snackBar.open('Unable to add ApplicableRole Type.', '', {\r\n duration: 1000,\r\n // panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n //this.messageService.add({ severity: 'error', summary: 'Error message', detail: 'Unable to update ApplicableRole Type' });\r\n this.showApplicableRoleTypes(this.approleTypeForm.value.FinancialYearId);\r\n this.Clear(); \r\n },\r\n error => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //this.messageService.add({ severity: 'error', summary: 'Error message', detail: error.error });\r\n });\r\n }\r\n }\r\n }\r\n showApplicableRoleTypes(financialYearId: number) \r\n { \r\n this._applicableRoleTypeService.getApplicableRoleTypes(financialYearId).subscribe(\r\n (data: ApplicableRoleTypeData[]) => {\r\n this.applicableRoleTypeList = data;\r\n this.dataSource = new MatTableDataSource(this.applicableRoleTypeList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n },\r\n (error)=>{ \r\n this._snackBar.open('Failed to get ApplicableRole Types' + error.error, 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }); \r\n }\r\n\r\n Reset() { \r\n //this.approleTypeForm.reset(); \r\n this.approleTypeForm.patchValue({FinancialYearId:null, DepartmentId: null, GradeRoleTypeId:null});\r\n this.approleTypeForm.controls['FinancialYearId'].setErrors(null);\r\n this.approleTypeForm.controls['DepartmentId'].setErrors(null);\r\n this.approleTypeForm.controls['GradeRoleTypeId'].setErrors(null);\r\n this.applicableRoleTypeList =null;\r\n this.dataSource = null;\r\n }\r\n\r\n // setEditObj(editObj: ApplicableRoleTypeData): void {\r\n // this._applicableRoleTypeService.editMode = true;\r\n // this._applicableRoleTypeService.editObj.next(editObj);\r\n // }\r\n deleteApplicableRoleType(rowData): void {\r\n this._applicableRoleTypeService.DeleteApplicableRoleType\r\n (rowData.ApplicableRoleTypeId).subscribe(res => {\r\n //this.Reset();\r\n this.showApplicableRoleTypes(this.approleTypeForm.value.FinancialYearId);\r\n // this.messageService.add({\r\n // severity: 'success',\r\n // summary: 'Success Message',\r\n // detail: 'Deleted Successfully'\r\n // });\r\n this._snackBar.open('Deleted Successfully.', '', {\r\n duration: 1000,\r\n panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n },\r\n (error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n\r\n Clear() {\r\n this.approleTypeForm.patchValue({ DepartmentId: null, GradeRoleTypeId: null });\r\n this.approleTypeForm.controls['DepartmentId'].setErrors(null);\r\n this.approleTypeForm.controls['GradeRoleTypeId'].setErrors(null);\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 Financial Year\r\n \r\n \r\n {{fin.label}}\r\n \r\n \r\n \r\n Financial Year Required\r\n \r\n \r\n
\r\n
\r\n \r\n Select Department {{selectedParameters.DepartmentName}}\r\n \r\n \r\n {{dept.label}}\r\n \r\n \r\n \r\n Department Required\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n Select Role Type {{selectedParameters.RoleTypeName}}\r\n \r\n \r\n {{role.Grade + \"-\" + role.RoleTypeName}}\r\n \r\n \r\n \r\n Role Type Required\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 \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 \r\n \r\n\r\n \r\n \r\n
\r\n Financial Year\r\n \r\n {{ element.FinancialYearName }}\r\n \r\n Department\r\n \r\n {{ element.DepartmentDescription }}\r\n \r\n Grade\r\n \r\n {{ element.GradeName }}\r\n \r\n Role Type\r\n \r\n {{ element.RoleTypeName }}\r\n \r\n Delete\r\n \r\n delete\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, OnInit, ViewChild } from \"@angular/core\";\r\nimport { Router, ActivatedRoute } from \"@angular/router\";\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { AspectMasterService } from \"src/app/modules/kra/services/aspectmaster.service\";\r\nimport { AspectData } from 'src/app/modules/master-layout/models/kra.model';\r\n//import { MessageService } from 'primeng/api';\r\n\r\n\r\nimport { FormBuilder, FormGroup, FormControl, Validators } from '@angular/forms';\r\n\r\nimport {\r\n MatSnackBar,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition,\r\n} from '@angular/material/snack-bar';\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\n\r\n@Component({\r\n selector: 'app-aspectmaster',\r\n templateUrl: './aspectmaster.component.html',\r\n styleUrls: ['./aspectmaster.component.scss'],\r\n providers: [AspectMasterService]\r\n})\r\nexport class AspectmasterComponent implements OnInit {\r\n aspectForm: FormGroup;\r\n aspectName: string;\r\n // Start - This is just for Demo Purpose can be removed later if material data table is not required\r\n \r\n resources = servicePath.API.PagingConfigValue;\r\n\r\n private componentName: string;\r\n public PageSize: number;\r\n public PageDropDown: number[];\r\n public aspectData: AspectData;\r\n public kraAspectsList: AspectData[] = [];\r\n public aspectFormSubmitted: boolean = false;\r\n saveButton: string = \"Add\";\r\n private aspectDataBeforeEdit: AspectData;\r\n private kraAspectName: string;\r\n private valid: boolean = false;\r\n dataSource = new MatTableDataSource(); \r\n \r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n constructor(\r\n private _router: Router,\r\n private _activatedRoute: ActivatedRoute,\r\n private _aspectMasterService: AspectMasterService,\r\n private _snackBar: MatSnackBar,\r\n public navService: NavService,\r\n //private messageService: MessageService,\r\n private fb: FormBuilder\r\n ) {\r\n\r\n this.componentName = this._activatedRoute.routeConfig.component.name;\r\n this.PageSize = this.resources.PageSize;\r\n this.PageDropDown = this.resources.PageDropDown;\r\n this.aspectData = new AspectData();\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.aspectForm = this.fb.group({\r\n AspectId: [0],\r\n AspectName: ['', [Validators.required, Validators.pattern(/^[a-zA-Z-&,\\s()]*$/), Validators.maxLength(70)]]\r\n });\r\n this.clear();\r\n this.getAspectMasterList();\r\n }\r\n\r\n cols = [\r\n { field: 'AspectName', header: 'Aspect Name' },\r\n { field: 'IsMappedAspect', header: 'IsMappedAspect' }\r\n ];\r\ndisplayedColumns: string[] = ['AspectName', 'Edit'];\r\n\r\n columnsToDisplay: string[] = this.displayedColumns.slice();\r\ndrop(event: CdkDragDrop) {\r\n moveItemInArray(\r\n this.displayedColumns,\r\n event.previousIndex,\r\n event.currentIndex\r\n );\r\n }\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.dataSource.data);\r\n }\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n\r\n private getAspectMasterList(): void {\r\n this._aspectMasterService.GetAspectMasterList().subscribe((aspectListResponse: AspectData[]) => {\r\n this.kraAspectsList = [];\r\n this.kraAspectsList = aspectListResponse;\r\n //this.dataSource = aspectListResponse;\r\n this.dataSource = new MatTableDataSource(this.kraAspectsList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n },\r\n error => {\r\n this._snackBar.open('Failed to get Aspects List.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackBar this.messageService.add({ severity: 'error', summary: 'Error Message', detail: 'Failed to get Aspects List.' });\r\n }\r\n );\r\n }\r\n\r\n private duplicateAspectCheck(aspectName: string): boolean {\r\n if (this.kraAspectsList) {\r\n let duplicateAspectList = this.kraAspectsList.filter(function (aspect: AspectData) {\r\n return (\r\n aspect.AspectName.toLowerCase() == aspectName.toLowerCase()\r\n );\r\n });\r\n if ((this.saveButton == \"Add\" && duplicateAspectList.length > 0) || (this.saveButton == \"Update\" && duplicateAspectList.length > 1)) {\r\n this._snackBar.open('Aspect Already exists.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackBar this.messageService.add({ severity: 'warn', summary: 'Warning Message', detail: 'Aspect Already exists.' });\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n private dataChangeCheck(aspect: AspectData): boolean {\r\n if (aspect && this.aspectDataBeforeEdit) {\r\n if ((this.aspectDataBeforeEdit.AspectId == aspect.AspectId) && (this.aspectDataBeforeEdit.AspectName == aspect.AspectName)) {\r\n\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n }\r\n public submitForm(): void {\r\n //this.aspectFormSubmitted = true;\r\n if (this.aspectForm.valid) {\r\n this.aspectForm.value.AspectName.trim().replace(/ +/g, ' ');\r\n let position: number = this.aspectForm.value.AspectName.indexOf('-', 0);\r\n let position1: number = this.aspectForm.value.AspectName.indexOf('&', 0);\r\n let position2: number = this.aspectForm.value.AspectName.indexOf(',', 0)\r\n if (this.aspectForm.value.AspectName.charAt(position) == this.aspectForm.value.AspectName.charAt(position + 1) || this.aspectForm.value.AspectName.charAt(position1) == this.aspectForm.value.AspectName.charAt(position1 + 1) || this.aspectForm.value.AspectName.charAt(position2) == this.aspectForm.value.AspectName.charAt(position2 + 1)) {\r\n this._snackBar.open('Nothing to Save..', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackBar // this.messageService.add({\r\n // severity: 'warn',\r\n // summary: 'Warning Message',\r\n // detail: 'Nothing to Save..'\r\n // });\r\n return;\r\n }\r\n //this.valid = false;\r\n if (this.aspectForm.value.AspectName.trim() == \"\") {this.aspectForm.reset(); return;}\r\n let duplicateAspect = this.duplicateAspectCheck(this.aspectForm.value.AspectName);\r\n if (!duplicateAspect) return;\r\n } else return;\r\n if (this.aspectForm.value.AspectId == 0) {\r\n this._aspectMasterService.CreateAspect(this.aspectForm.value.AspectName).subscribe((createResponse: boolean) => {\r\n if (createResponse) {\r\n this._snackBar.open('Aspect Created successfully', '', {\r\n duration: 1000,\r\n panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackBar // this.messageService.add({\r\n // severity: 'success',\r\n // summary: 'Success Message',\r\n // detail: 'Aspect Created successfully'\r\n // });\r\n this.getAspectMasterList();\r\n this.clear();\r\n }\r\n // else if (createResponse == -1) { \r\n // this.messageService.add({\r\n // severity: 'warn',\r\n // summary: 'Warning Message',\r\n // detail: 'Aspect already exists!.'\r\n // });\r\n // }\r\n else {\r\n this._snackBar.open('Failed to Create Aspect.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackBar // this.messageService.add({\r\n // severity: 'error',\r\n // summary: 'Error Message',\r\n // detail: 'Failed to Create Aspect.'\r\n // });\r\n }\r\n },\r\n error => {\r\n //if (error._body != undefined && error._body != \"\")\r\n this._snackBar.open('Failed to Create Aspect.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackBar // this.messageService.add({\r\n // severity: 'error',\r\n // summary: 'Error Message',\r\n // detail: 'Failed to Create Aspect.'\r\n // });\r\n }\r\n );\r\n }\r\n else {\r\n let dataChange = this.dataChangeCheck(this.aspectForm.value);\r\n if (!dataChange){\r\n this._snackBar.open('No change to update!', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return;\r\n }\r\n this._aspectMasterService.UpdateAspect(this.aspectForm.value).subscribe((updateResponse: boolean) => {\r\n if (updateResponse) {\r\n this._snackBar.open('Aspect Updated successfully', '', {\r\n duration: 1000,\r\n panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackBar this.messageService.add({ severity: 'success', summary: 'Success Message', detail: 'Aspect Updated successfully' });\r\n this.getAspectMasterList();\r\n this.clear();\r\n }\r\n // else if (updateResponse == -1) {\r\n // this.messageService.add({ severity: 'warn', summary: 'Warning Message', detail: 'Aspect already exists!.' });\r\n // }\r\n // else if (updateResponse == -14) {\r\n // this.messageService.add({ severity: 'warn', summary: 'Warning Message', detail: 'This Aspect is mapped to KRAs, You cannot update' });\r\n // }\r\n // else if (updateResponse == -15) {\r\n // this.messageService.add({ severity: 'warn', summary: 'Warning Message', detail: 'Invalid aspect name length'\r\n // });\r\n // }\r\n // else if (updateResponse == -16) {\r\n // this.messageService.add({ severity: 'warn', summary: 'Warning Message', detail: 'Enter valid Aspect'\r\n // });\r\n // }\r\n else {\r\n this._snackBar.open('Failed to Update Aspect.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackBar // this.messageService.add({\r\n // severity: 'error', summary: 'Error Message', detail: 'Failed to Update Aspect.'\r\n // });\r\n }\r\n\r\n },\r\n error => {\r\n //if (error._body != undefined && error._body != \"\")\r\n this._snackBar.open('Failed to Update Aspect.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackBar this.messageService.add({ severity: 'error', summary: 'Error Message', detail: 'Failed to Update Aspect.' });\r\n }\r\n );\r\n }\r\n }\r\n\r\n editAspect(aspect: AspectData): void {\r\n this.saveButton = \"Update\";\r\n this.aspectDataBeforeEdit = new AspectData();\r\n this.aspectDataBeforeEdit = aspect;\r\n this.aspectData = aspect;\r\n this.kraAspectName = \"\";\r\n this.kraAspectName = aspect.KRAAspectName;\r\n this.aspectForm.patchValue(aspect);\r\n //this.getAspectMasterList();\r\n }\r\n\r\n // private deleteAspect(aspect: AspectData): void {\r\n // this._confirmationService.confirm({\r\n // message: \"Are you sure, you want to delete?\",\r\n // header: \"KRA Scale Delete\",\r\n // key: \"deleteAspectConfirmation\",\r\n // icon: \"fa fa-trash\",\r\n // accept: () => {\r\n // this._aspectMasterService.DeleteAspect(aspect.AspectId).subscribe((deleteResponse: number) => {\r\n // if (deleteResponse == 1) {\r\n // this.messageService.add({ severity: 'success', summary: 'Success Message', detail: 'Aspected Deleted successfully.' });\r\n // this.clear();\r\n // }\r\n // else {\r\n // this.messageService.add({ severity: 'warn', summary: 'Warning Message', detail: 'This Aspect is mapped to KRA's, You cannot delete.' });\r\n // }\r\n // },\r\n // error => {\r\n // this.messageService.add({ severity: 'error', summary: 'Error Message', detail: 'Failed to Delete Aspect.' });\r\n // }\r\n // );\r\n // },\r\n // reject: () => {\r\n // return;\r\n // }\r\n // });\r\n\r\n // }\r\n\r\n public clear(): void {\r\n this.aspectData = new AspectData();\r\n this.aspectData = {\r\n AspectId: 0,\r\n AspectName: \"\",\r\n KRAAspectName: \"\",\r\n KRAAspectID: null,\r\n CreatedDate: null,\r\n IsMappedAspect: false,\r\n DepartmentId: null\r\n };\r\n this.aspectForm.patchValue({AspectName: null, AspectId: 0 });\r\n this.aspectForm.controls['AspectName'].setErrors(null);\r\n this.valid = false;\r\n this.saveButton = \"Add\";\r\n //this.getAspectMasterList();\r\n this.aspectFormSubmitted = false;\r\n }\r\n\r\n public validateAspectName(aspectData: AspectData) {\r\n let numberRegex = /^[a-zA-Z-&,\\s()]*$/;\r\n this.valid = numberRegex.test(aspectData.KRAAspectName);\r\n if (!this.valid) {\r\n this._snackBar.open('Enter valid Aspect', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackBar // this.messageService.add({\r\n // severity: 'warn',\r\n // summary: 'Warning Message',\r\n // detail: 'Enter valid Aspect'\r\n // });\r\n return;\r\n }\r\n }\r\n\r\n public omit_special_char(event: any) {\r\n let k: number;\r\n k = event.charCode; // k = event.keyCode; (Both can be used)\r\n return (\r\n (k > 64 && k < 91) ||\r\n (k > 96 && k < 123) ||\r\n k == 8 ||\r\n k == 32 ||\r\n k == 38 ||\r\n k == 44 ||\r\n k == 45 ||\r\n k == 40 ||\r\n k == 41\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 Aspect Name\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
\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
Aspect Name {{element.AspectName}} Edit \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { Component, OnInit, ChangeDetectorRef, QueryList, ViewChildren, ViewChild, Input } from \"@angular/core\";\r\nimport { FormBuilder, FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { animate, state, style, transition, trigger } from '@angular/animations';\r\n// import { MatTableDataSource, MatTable, MatSort } from \"@angular/material/\r\nimport { MasterDataService } from 'src/app/core/services/masterdata.service';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { SelectedKRAParameters } from 'src/app/modules/master-layout/models/kra.model';\r\nimport { KraStatusService } from \"src/app/modules/kra/services/kraStatus.service\";\r\nimport { KRAStatusData } from 'src/app/modules/kra/models/krastatus.model';\r\n\r\nimport {\r\n MatSnackBar\r\n} from '@angular/material/snack-bar';\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { MatSidenav } from '@angular/material/sidenav';\r\nimport { CommentModel } from 'src/app/modules/kra/models/comment.model';\r\nimport { KraCommentService } from 'src/app/modules/kra/services/kra-comment.service';\r\n\r\nexport interface DialogData {\r\n comment: string;\r\n \r\n}\r\n\r\n\r\ninterface SelectItem {\r\n value : number;\r\n label : string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-ceostatus',\r\n templateUrl: './ceostatus.component.html',\r\n styleUrls: ['./ceostatus.component.scss'],\r\n // providers: [\r\n // AssociatekraService,\r\n // RolemasterService,\r\n // MasterDataService,\r\n // KRAService,\r\n // CustomKRAService\r\n // ],\r\n animations: [\r\n trigger('detailExpand', [\r\n state('collapsed', style({ height: '0px', minHeight: '0' })),\r\n state('expanded', style({ height: '*' })),\r\n transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\r\n ]),\r\n ],\r\n})\r\n\r\n\r\nexport class CeostatusComponent implements OnInit {\r\n // @ViewChild('outerSort') sort: MatSort;\r\n // @ViewChildren('innerSort') innerSort: QueryList;\r\n // @ViewChildren('innerTables') innerTables: QueryList>;\r\n @ViewChild('sidenav') sidenav: MatSidenav;\r\n selectedParameters : SelectedKRAParameters;\r\n comment: string;\r\n public financialYearList: SelectItem[] = [];\r\n undoDiv:boolean=false;\r\n undoDivs:boolean=true;\r\n imgdiv:boolean=false;\r\n undoDivss:boolean=false; \r\n ceoStatusForm: FormGroup;\r\n // submitted = false;\r\n resources = servicePath.API.PagingConfigValue; \r\n formGroup: FormGroup;\r\n commentForm: FormGroup;\r\n themeappeareance = themeconfig.formfieldappearances; \r\n financialYearId:number;\r\n departmentId:number;\r\n deptId:number;\r\n commentText: string;\r\n username: string;\r\n sendtoCEO:boolean; \r\n length: number;\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n pageSize = 5;\r\n pageSizeOptions: number[] = [5, 10, 20,30];\r\n approveByCEO:boolean = false;\r\n CEODefinitions:KRAStatusData[]=[];\r\n\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n displayedColumns: string[] = ['departmentname', 'noofroletypes', 'status'];\r\n dataSource = new MatTableDataSource(); \r\n\r\n columnsToDisplay: string[] = this.displayedColumns.slice();\r\n\r\n drop(event: CdkDragDrop) {\r\n moveItemInArray(\r\n this.displayedColumns,\r\n event.previousIndex,\r\n event.currentIndex\r\n );\r\n }\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource();\r\n }\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n\r\n constructor( private _snackBar: MatSnackBar,\r\n public navService: NavService,\r\n private _masterDataService: MasterDataService ,\r\n private fb: FormBuilder,\r\n private _kraCommentService: KraCommentService,\r\n private _kraStatusService: KraStatusService,\r\n ) { \r\n this.selectedParameters = new SelectedKRAParameters(); \r\n this.PageSize = this.resources.PageSize;\r\n this.PageDropDown = this.resources.PageDropDown;\r\n this.username = sessionStorage[\"mail\"]; \r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n \r\n ngOnInit() {\r\n this.ceoStatusForm = new FormGroup({\r\n FinancialYearId: new FormControl(null, [Validators.required]), \r\n }); \r\n this.commentForm = new FormGroup({\r\n comment: new FormControl('', [Validators.required])\r\n });\r\n this.getFinancialYears(); \r\n}\r\n\r\nopenComments(departmentId: number)\r\n{\r\n this.deptId = departmentId;\r\n this.sidenav.toggle();\r\n this.getComments();\r\n}\r\n\r\ncloseSideNav() {\r\n this.sidenav.close();\r\n}\r\n\r\nsaveComment(): void{\r\n if (this.ceoStatusForm.valid && this.commentForm.valid) {\r\n let commentModel: CommentModel;\r\n commentModel = new CommentModel();\r\n\r\n commentModel.CommentText = this.commentForm.value.comment;\r\n commentModel.Username = this.username;\r\n commentModel.IsCEO = true;\r\n commentModel.FinancialYearId = this.ceoStatusForm.value.FinancialYearId;\r\n commentModel.DepartmentId = this.deptId;\r\n commentModel.GradeId = null;\r\n commentModel.RoleTypeId = null;\r\n commentModel.ApplicableRoleTypeId = null;\r\n\r\n this._kraCommentService\r\n .CreateComment(commentModel)\r\n .subscribe((createResponse: boolean) => {\r\n if (createResponse) {\r\n this.commentForm.get(\"comment\").setValue(\"\");\r\n this._snackBar.open('Comment created successfully', '', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n else {\r\n this._snackBar.open('Failed to create Comment.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n },\r\n error => {\r\n this._snackBar.open('Failed to create comment.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n this.sidenav.close();\r\n }\r\n}\r\n\r\ngetComments() {\r\n this._kraCommentService.GetComment(\r\n this.ceoStatusForm.value.FinancialYearId, this.deptId, 0, 0, true).subscribe(\r\n (res: any[]) => {\r\n if (res) {\r\n res.forEach((e) => {\r\n this.commentText = e.CommentText;\r\n });\r\n }\r\n else {\r\n this._snackBar.open('Failed to get comments', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open('Failed to get comments', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n}\r\n\r\n getFinancialYears(): void { \r\n this._masterDataService.GetFinancialYears().subscribe((yearsdata: any[]) => {\r\n this.financialYearList = [];\r\n this.financialYearList.push({ label: 'Select Financial Year', value: null });\r\n yearsdata.forEach((e: any) => {\r\n this.financialYearList.push({ label: e.FinancialYearName, value: e.Id });\r\n });\r\n }, error => {\r\n this._snackBar.open(\"Failed to get Financial Year List\" + error.error, 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //this.messageService.add({ severity: 'error', summary: 'Error Message', detail: 'Failed to get Financial Year List' });\r\n }\r\n );\r\n }\r\n\r\n getCEOKRAStatuses() { \r\n this.CEODefinitions = []\r\n this.approveByCEO = false\r\n this._kraStatusService.getHRKRAStatuses(this.ceoStatusForm.value.FinancialYearId)\r\n .subscribe(\r\n (res: KRAStatusData[]) => {\r\n if (res) { \r\n if(res.length > 0){\r\n // this.approveByCEO = true\r\n this.approveByCEO= (res.some((item)=>item.Status==='SendToCEO'))\r\n }\r\n res.forEach((data: KRAStatusData) => {\r\n // this.roletypeStatus = data.Status;\r\n if(data.Status == 'SendToCEO' || data.Status=='ApprovedByCEO'){\r\n if(data.Status == \"ApprovedByCEO\"){\r\n data.Status=\"Approved By CEO\";\r\n }\r\n if(data.Status == \"SendToCEO\"){\r\n data.Status = \"Sent To CEO\"\r\n }\r\n this.CEODefinitions.push(data)\r\n }\r\n })\r\n this.dataSource = new MatTableDataSource(this.CEODefinitions);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort; \r\n }\r\n else this.dataSource = null;\r\n },\r\n (error) => {\r\n this.dataSource = null;\r\n });\r\n }\r\n\r\nonclick() {\r\n // this.submitted = true;\r\n this.undoDiv=true;\r\n this.undoDivs=false;\r\n this.undoDivss=true;\r\n \r\n setTimeout(() => {\r\n this.undoDiv=false;\r\n this.undoDivs=true;\r\n \r\n \r\n}, 24000);\r\n\r\n\r\n}\r\n\r\nonCancelclick() {\r\n // this.submitted = true;\r\n this.undoDiv=false;\r\n this.undoDivs=true;\r\n this.undoDivss=false;\r\n \r\n setTimeout(() => {\r\n this.undoDiv=true;\r\n this.undoDivs=false;\r\n \r\n \r\n}, 24000);\r\n\r\n}\r\n\r\nonFinancialYearChange(event) {this.getCEOKRAStatuses();}\r\n\r\nclickimg() { \r\n this.imgdiv=true; \r\n setTimeout(() => {\r\n this.imgdiv=false;\r\n }, 9000);\r\n setTimeout(() => { \r\n this.undoDivss=false;\r\n }, 200);\r\n }\r\n\r\n approvedByCEO(){\r\n this._kraStatusService.approveByCEO(this.ceoStatusForm.value).subscribe((res)=>{\r\n this.getCEOKRAStatuses()\r\n this._snackBar.open('Approved successfully.', '', {\r\n duration: 1000,\r\n panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n },\r\n (error)=>{\r\n this._snackBar.open('Failed in approving', '', {\r\n duration: 1000,\r\n panelClass:['danger-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n })\r\n }\r\n}\r\n\r\n","\r\n \r\n
\r\n \r\n

Comments All

\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 {{commentText}}\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Type a new comment\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 Financial Year\r\n \r\n \r\n {{fin.label}}\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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
DEPARTMENT NAME {{element.DepartmentName}}
\r\n \r\n \r\n \r\n
NO OF ROLE TYPES
TOTAL | ACCEPTED | FOR REVIEW
\r\n

{{element.TotalRoleTypeCount}} \r\n \r\n {{element.AcceptedRoleTypesCount}} \r\n {{element.UnderReviewRoleTypesCount}}\r\n \r\n \r\n

STATUS {{element.Status}} \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, ViewChild, Inject } from \"@angular/core\";\r\nimport {MatDialog, MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog';\r\nimport { KraDlgData } from \"../../../kra/models/kra-dlg-data\";\r\nimport { FormControl } from \"@angular/forms\";\r\nimport { FormBuilder, FormGroup } from \"@angular/forms\";\r\nimport { SelectionModel } from \"@angular/cdk/collections\";\r\nimport { AddKRAdlgComponent } from \"../../../kra/components/add-kradlg/add-kradlg.component\";\r\nimport { ApplicableRoleTypeService } from \"../../../kra/services/applicableroletype.service\";\r\nimport { MasterDataService } from \"../../../../core/services/masterdata.service\";\r\nimport { DepartmentDetails } from \"../../../master-layout/models/role.model\";\r\nimport { Grade } from \"../../../admin/models/grade.model\";\r\nimport { Roletype } from \"../../../kra/models/roletype.model\";\r\nimport { element } from \"protractor\";\r\nimport { DefinitionModel } from \"../../../kra/models/kradefinition.model\";\r\nimport {\r\n FinancialYear,\r\n SelectedKRAParameters\r\n} from \"../../../master-layout/models/kra.model\";\r\nimport { RoleTypeService } from \"../../../admin/services/role-type.service\";\r\nimport {\r\n ApplicableRoleType,\r\n ApplicableRoleTypeData\r\n} from \"../../../kra/models/kraapplicableRoleType.model\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { DefineKraService } from \"../../../kra/services/definekra.service\";\r\nimport { DefineKRAData } from \"../../../kra/models/definekra.model\";\r\nimport { KraDefinitionService } from \"../../../kra/services/kradefinition.service\";\r\nimport { tap } from \"rxjs/operators\";\r\nimport * as servicePath from \"../../../../core/service-paths\";\r\nimport { environment } from \"../../../../../environments/environment\";\r\n\r\nimport {\r\n MatSnackBar,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition\r\n} from \"@angular/material/snack-bar\";\r\nimport { CdkDragDrop, moveItemInArray } from \"@angular/cdk/drag-drop\";\r\nimport { MatPaginator } from \"@angular/material/paginator\";\r\nimport { MatTableDataSource } from \"@angular/material/table\";\r\nimport { MatSort } from \"@angular/material/sort\";\r\nimport { themeconfig } from \"../../../../../themeconfig\";\r\nimport { NavService } from \"../../../master-layout/services/nav.service\";\r\ninterface SelectItem {\r\n value: number;\r\n label: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-clone-kra-dlg',\r\n templateUrl: './clone-kra-dlg.component.html',\r\n styleUrls: ['./clone-kra-dlg.component.scss']\r\n})\r\nexport class CloneKraDlgComponent {\r\n leaderRole:boolean=false;\r\n themeappeareance = themeconfig.formfieldappearances;\r\n\r\n // displayedColumns: string[] = ['select','kraaspect', 'metrics', 'ration'];\r\n //dataSource = new MatTableDataSource(kradefindata);\r\n selection = new SelectionModel(true, []);\r\n financialYearId: number = 0;\r\n selectedApplicableRoleTypeId: number;\r\n finYearId: number;\r\n depId: number;\r\n gId: number;\r\n rId: number;\r\n departmentId: number = 0;\r\n gradeId: number = 0;\r\n roleTypeId: number = 0;\r\n departmentList: SelectItem[] = [];\r\n gradeList: SelectItem[] = [];\r\n roleTypeList: SelectItem[] = [];\r\n financialYearList: SelectItem[] = [];\r\n cloneKRAForm: FormGroup; \r\n selectedfromyear: number;\r\n selectedtoyear: number;\r\n length: number;\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n currentyear = new Date().getFullYear();\r\n pageSize = 5;\r\n pageSizeOptions: number[] = [5, 10, 20, 30];\r\n definitionDetailsIds = []; \r\n \r\n list = [];\r\n dataSource = new MatTableDataSource();\r\n\r\n @ViewChild(MatPaginator, { static: true })\r\n paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true })\r\n sort: MatSort;\r\n // End - This is just for Demo Purpose can be removed later if material data table is not required\r\n\r\n resources = servicePath.API.PagingConfigValue;\r\n\r\n constructor( public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n private _masterDataService: MasterDataService,\r\n //private messageService: MessageService,\r\n private _roleTypeService: RoleTypeService,\r\n private fb: FormBuilder,\r\n private _appRoleTypeService: ApplicableRoleTypeService,\r\n private _router: Router,\r\n private _kraDefinitionService: KraDefinitionService,\r\n private _definekraService: DefineKraService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: CloneKraDlgComponent) {}\r\n\r\n cols = [\r\n { field: \"kraaspect\", header: \"ASPECT\" },\r\n { field: \"metrics\", header: \"METRICS\" },\r\n { field: \"ration\", header: \"TARGET\" }\r\n ];\r\n displayedColumns: string[] = [\"select\",\r\n \"kraaspect\",\r\n \"metrics\",\r\n \"ration\", \r\n ];\r\n columnsToDisplay: string[] = this.displayedColumns.slice();\r\n\r\n drop(event: CdkDragDrop) {\r\n moveItemInArray(\r\n this.displayedColumns,\r\n event.previousIndex,\r\n event.currentIndex\r\n );\r\n }\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.dataSource.data);\r\n }\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\nngOnInit() {\r\n this.cloneKRAForm = this.fb.group({\r\n financialYearId: [null],\r\n departmentId: [null],\r\n gradeId: [null],\r\n roleTypeId: [null]\r\n }); \r\n this.finYearId = this.data.finYearId;\r\n this.depId = this.data.depId;\r\n this.gId = this.data.gId;\r\n this.rId = this.data.rId; \r\n this.getFinancialYears();\r\n this.getDepartments();\r\n this.getSelectedApplicableRoleTypeId();\r\n}\r\n\r\n getApplicableGradeRoleTypesByGrade() {\r\n this.roleTypeList = [];\r\n this.dataSource = null; \r\n this.roleTypeList.push({ label: \"Select Role Type\", value: null });\r\n // this._appRoleTypeService\r\n // .getApplicableRoleTypeById(\r\n // this.financialYearId,\r\n // this.departmentId,\r\n // null,\r\n // this.cloneKRAForm.value.gradeId\r\n // )\r\n // .subscribe(\r\n // (res: any[]) => {\r\n // if (res) { \r\n // res.forEach((element: any) => {\r\n // this.roleTypeList.push({\r\n // label: element.RoleTypeName,\r\n // value: element.RoleTypeId\r\n // });\r\n // this.roleTypeId = element.RoleTypeId;\r\n // });\r\n // if (this.roleTypeId > 0) {\r\n // this.cloneKRAForm.get(\"roleTypeId\").setValue(this.roleTypeId);\r\n // this.showDefineKRAs(\"\");\r\n // }\r\n // } \r\n // },\r\n // (error: any) => {\r\n // this._snackBar.open(\"Failed to get Role Type details.\", \"\", {\r\n // duration: 1000,\r\n // horizontalPosition: \"right\",\r\n // verticalPosition: \"top\"\r\n // });\r\n // }\r\n // );\r\n }\r\n getFinancialYears(): void {\r\n this._masterDataService.GetFinancialYears().subscribe(\r\n (yearsdata: any[]) => {\r\n yearsdata.forEach((e: any) => { \r\n this.selectedfromyear = parseInt(e.FinancialYearName.split(\"-\")[0].trim());\r\n if(this.selectedfromyear == this.currentyear)\r\n {\r\n this.financialYearList.push({\r\n label: e.FinancialYearName,\r\n value: e.Id\r\n });\r\n }\r\n // if (e.Id == this._selectedFinancialYearId)\r\n // this.financialYearName = e.FinancialYearName;\r\n });\r\n this.cloneKRAForm.controls[\"financialYearId\"].enable();\r\n },\r\n error => {\r\n this._snackBar.open(\"Failed to get Financial Year List\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n // this.messageService.add({\r\n // severity: \"error\",\r\n // summary: \"Error Message\",\r\n // detail: \"Failed to get Financial Year List\"\r\n // });\r\n }\r\n );\r\n }\r\n\r\n getDepartments(): void {\r\n this._masterDataService.GetDepartmentsMasterData().subscribe(\r\n (res: DepartmentDetails[]) => {\r\n this.departmentList = [];\r\n this.departmentList.push({ label: \"Select Department\", value: null });\r\n res.forEach((e: any) => {\r\n this.departmentList.push({\r\n label: e.Description,\r\n value: e.DepartmentId\r\n });\r\n });\r\n this.cloneKRAForm.controls[\"departmentId\"].enable();\r\n },\r\n error => {\r\n this._snackBar.open(\"Failed to get Department Details\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n // this.messageService.add({\r\n // severity: \"error\",\r\n // summary: \"Error Message\",\r\n // detail: \"Failed to get Department Details\"\r\n // });\r\n }\r\n );\r\n }\r\n\r\n onchange(event) {\r\n let target = event.source.selected._element.nativeElement;\r\n this.selectedfromyear = parseInt(target.innerText.split(\"-\")[0].trim());\r\n this.selectedtoyear = parseInt(target.innerText.split(\"-\")[1].trim());\r\n this.financialYearId = event.value;\r\n this.cloneKRAForm.get(\"departmentId\").setValue(null);\r\n this.cloneKRAForm.get(\"gradeId\").setValue(null);\r\n this.cloneKRAForm.get(\"roleTypeId\").setValue(null); \r\n this.dataSource = null; \r\n }\r\n ondepartmentchange(event) {\r\n // this.setDefaultValues();\r\n this.departmentId = event.value;\r\n this.getApplicableGradeRoleTypes();\r\n }\r\n onRoleTypeChange() {\r\n this.showDefineKRAs(\"u\");\r\n }\r\n\r\n getApplicableGradeRoleTypes() { \r\n this.gradeList = [];\r\n // this._appRoleTypeService\r\n // .getApplicableRoleTypeById(\r\n // this.financialYearId,\r\n // this.departmentId,\r\n // null,\r\n // null\r\n // )\r\n // .subscribe(\r\n // (res: any[]) => {\r\n // if (res) { \r\n // this.gradeList.push({ label: \"Select Grade\", value: null });\r\n // res.forEach((element: any) => {\r\n // this.gradeList.push({\r\n // label: element.Grade,\r\n // value: element.GradeId\r\n // });\r\n // this.gradeId = element.GradeId;\r\n // });\r\n // this.dataSource = null; \r\n // if (this.gradeId > 0) {\r\n // this.cloneKRAForm.get(\"gradeId\").setValue(this.gradeId);\r\n // this.getApplicableGradeRoleTypesByGrade();\r\n // }\r\n // } \r\n // },\r\n // (error: any) => {\r\n // this._snackBar.open(\"Failed to get Role Type details.\", \"\", {\r\n // duration: 1000,\r\n // horizontalPosition: \"right\",\r\n // verticalPosition: \"top\"\r\n // });\r\n // // this.messageService.add({\r\n // // severity: 'error',\r\n // // summary: 'Error Message',\r\n // // detail: 'Failed to get Role Type details.'\r\n // // });\r\n // }\r\n // );\r\n }\r\n\r\n\r\n private getSelectedApplicableRoleTypeId(): void {\r\n var selectedRoleId: number = this.rId;\r\n // this._appRoleTypeService.getApplicableRoleTypeById(this.finYearId,\r\n // this.depId, null, this.gId)\r\n // .subscribe(\r\n // (res: any[]) => {\r\n // if (res) {\r\n // res.forEach((element: any) => {\r\n // if (element.RoleTypeId == selectedRoleId) { \r\n // this.selectedApplicableRoleTypeId = element.ApplicableRoleTypeId;\r\n // }\r\n // })\r\n // }\r\n // }\r\n // );\r\n }\r\n\r\n// Import()\r\n// {\r\n// var selectedrowslength=this.selection.selected.length;\r\n// for (var i = 0; i < selectedrowslength; i++) {\r\n// this.definitionDetailsIds.push(this.selection.selected[i].DefinitionDetailsId); \r\n// } \r\n// }\r\n\r\n Import(){ \r\n var length=this.selection.selected.length;\r\n if(length==0)\r\n {\r\n this._snackBar.open(\"Please select a records to copy the KRA's.\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n return;\r\n }\r\n for (var i = 0; i < length; i++) {\r\n this.definitionDetailsIds.push(this.selection.selected[i].DefinitionDetailsId); } \r\n if (this.definitionDetailsIds.length >0) { \r\n let definitionModel: DefinitionModel;\r\n definitionModel = new DefinitionModel();\r\n definitionModel.roleTypeId = this.roleTypeId;\r\n definitionModel.currentUser=sessionStorage[\"mail\"]; \r\n // definitionModel.definitionDetailsIds= this.definitionDetailsIds;\r\n this._kraDefinitionService\r\n .ImportKRA(definitionModel)\r\n .subscribe(\r\n res => {\r\n this.dialogRef.close(13);\r\n },\r\n error => {\r\n // this.messageService.add({\r\n // severity: \"error\",\r\n // summary: \"Error Message\",\r\n // detail: error.error\r\n // });\r\n }\r\n ); \r\n }\r\n }\r\n\r\n showDefineKRAs(mode: string) { \r\n this._definekraService\r\n .getKRADefinitionsById(\r\n this.financialYearId,\r\n this.departmentId,\r\n this.cloneKRAForm.value.gradeId,\r\n this.cloneKRAForm.value.roleTypeId\r\n )\r\n .subscribe(\r\n (res: DefineKRAData[]) => {\r\n if (res) {\r\n this.length = res.length;\r\n this.dataSource = new MatTableDataSource(res);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort; \r\n }\r\n },\r\n (error: any) => {\r\n if (\r\n (error.error.text == \"No KRAs defined!\" &&\r\n (this.selectedfromyear == this.currentyear &&\r\n this.currentyear < this.selectedtoyear)) ||\r\n this.selectedfromyear > this.currentyear\r\n ) {\r\n // this.addNewKRA = true;\r\n this.dataSource = null;\r\n } else if (error.error.text == \"No KRAs defined!\" || error.error.text == \"No records found!\") {\r\n this._snackBar.open(\"No Records Found!\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n } else {\r\n this._snackBar.open(\r\n \"Failed to get Define KRA details.\" + error.error,\r\n \"x\",\r\n {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n }\r\n );\r\n }\r\n }\r\n );\r\n }\r\n\r\n /** Whether the number of selected elements matches the total number of rows. */\r\n isAllSelected() {\r\n const numSelected = this.selection.selected.length;\r\n const numRows = this.dataSource.data.length;\r\n return numSelected === numRows;\r\n }\r\n\r\n /** Selects all rows if they are not all selected; otherwise clear selection. */\r\n masterToggle() {\r\n this.isAllSelected() ?\r\n this.selection.clear() :\r\n this.dataSource.data.forEach(row => this.selection.select(row));\r\n }\r\n\r\n // /** The label for the checkbox on the passed row */\r\n // checkboxLabel(row?: any): string {\r\n // if (!row) {\r\n // return `${this.isAllSelected() ? 'select' : 'deselect'} all`;\r\n // }\r\n // return `${this.selection.isSelected(row) ? 'deselect' : 'select'} row ${row.position + 1}`;\r\n // }\r\n changeValue(e){\r\n if(e.value==\"hr\"){\r\n this.leaderRole=false;\r\n }\r\n else{\r\n this.leaderRole=true;\r\n }\r\n }\r\n\r\n \r\n}\r\n\r\n","\r\n \r\n
\r\n
\r\n

COPY KRA

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Finacial Year\r\n \r\n \r\n {{fin.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Department\r\n \r\n \r\n {{dept.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Grade\r\n \r\n \r\n {{grade.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Role Type\r\n \r\n \r\n {{role.label}}\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 \"Cross\r\n
\r\n

Delivery leader role type didn’t exist for selected year Please select from available role to clone KRA's

\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 \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 ASPECT {{element.AspectName}}
Added on Thursday, 9 Jul 2020, 4:45 PM
METRICS {{element.Metric}} TARGET {{element.ration}}
Half Yearly
\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 { Component, OnInit, ViewChild } from \"@angular/core\";\r\nimport { FormControl } from \"@angular/forms\";\r\nimport { FormBuilder, FormGroup, Validators } from \"@angular/forms\";\r\nimport {\r\n MatDialog,\r\n MatDialogRef,\r\n MAT_DIALOG_DATA\r\n} from \"@angular/material/dialog\";\r\nimport { ImportKraDlgComponent } from \"../../components/import-kra-dlg/import-kra-dlg.component\"\r\nimport { CloneKraDlgComponent } from \"../../components/clone-kra-dlg/clone-kra-dlg.component\";\r\nimport { SelectionModel } from \"@angular/cdk/collections\";\r\nimport { AddKRAdlgComponent } from \"../../components/add-kradlg/add-kradlg.component\";\r\nimport { ApplicableRoleTypeService } from \"../../../kra/services/applicableroletype.service\";\r\nimport { MasterDataService } from \"../../../../core/services/masterdata.service\";\r\nimport { DepartmentDetails } from \"../../../master-layout/models/role.model\";\r\nimport {\r\n SelectedKRAParameters\r\n} from \"../../../master-layout/models/kra.model\";\r\nimport { RoleTypeService } from \"../../../admin/services/role-type.service\";\r\nimport {\r\n ApplicableRoleType,\r\n ApplicableRoleTypeData\r\n} from \"../../../kra/models/kraapplicableRoleType.model\";\r\n\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { DefineKraService } from \"../../../kra/services/definekra.service\";\r\nimport { DefineKRAData } from \"../../../kra/models/definekra.model\";\r\nimport { KraDefinitionService } from \"../../../kra/services/kradefinition.service\";\r\nimport * as servicePath from \"../../../../core/service-paths\";\r\n\r\nimport {\r\n MatSnackBar\r\n} from \"@angular/material/snack-bar\";\r\nimport { CdkDragDrop, moveItemInArray } from \"@angular/cdk/drag-drop\";\r\nimport { MatPaginator } from \"@angular/material/paginator\";\r\nimport { MatTableDataSource } from \"@angular/material/table\";\r\nimport { MatSort } from \"@angular/material/sort\";\r\nimport { themeconfig } from \"../../../../../themeconfig\";\r\nimport { MatSidenav } from '@angular/material/sidenav';\r\nimport { CommentModel } from \"../../../kra/models/comment.model\";\r\nimport { KraCommentService } from \"../../../kra/services/kra-comment.service\";\r\nimport { NavService } from \"../../../master-layout/services/nav.service\";\r\nimport { ConfirmDialogComponent } from \"../../../project-life-cycle/components/confirm-dialog/confirm-dialog.component\";\r\nimport { flatten } from \"@angular/compiler\";\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\ninterface SelectItem {\r\n value: number;\r\n label: string;\r\n}\r\n\r\n@Component({\r\n selector: \"app-define-kra\",\r\n templateUrl: \"./define-kra.component.html\",\r\n styleUrls: [\"./define-kra.component.scss\"]\r\n})\r\nexport class DefineKRAComponent implements OnInit {\r\n @ViewChild('sidenav') sidenav: MatSidenav;\r\n selectedParameters: SelectedKRAParameters;\r\n themeappeareance = themeconfig.formfieldappearances;\r\n //displayedColumns: string[] = ['kraaspect', 'metrics', 'ration'];\r\n //dataSource;\r\n roletypedata: any;\r\n //importedKradisplayedColumns: string[] = ['select', 'kraaspect', 'metrics', 'ration'];\r\n selection = new SelectionModel(true, []);\r\n addNewKRA: boolean = false;\r\n acceptedbyCEO: boolean = false;\r\n approvedKRA: boolean = false;\r\n importedKRA: boolean = false;\r\n roletypeStatus: string = \"\";\r\n showCommentsDialog: boolean = false;\r\n username: string;\r\n statusId: number;\r\n gridMessage: string = \"No records found\";\r\n defineKRAForm: FormGroup;\r\n commentForm: FormGroup;\r\n commentText: string;\r\n private _selectedDepartmentId: string;\r\n _selectedFinancialYearId: string;\r\n departmentHeadDepartmentId: number;\r\n public financialYearId: number = 0;\r\n public departmentId: number = 0;\r\n public gradeId: number = 0;\r\n public roleTypeId: number = 0;\r\n public departmentList: SelectItem[] = [];\r\n public gradeList: SelectItem[] = [];\r\n public roleTypeList: SelectItem[] = [];\r\n public financialYearList: SelectItem[] = [];\r\n addApplicableRole = false;\r\n addKra = false;\r\n undoBtn: boolean = false;\r\n editKRA: boolean = false;\r\n undoDiv: boolean = false;\r\n deletedTr: boolean = false;\r\n deletedKRAdiv: boolean = false;\r\n addedTR: boolean = false;\r\n dispAddedKRADiv: boolean = false;\r\n markasfinish = false;\r\n markedAsFinish = false;\r\n editByHRStatus = false;\r\n checkMarkAsFinished = false;\r\n approvedByHOD: boolean = false;\r\n sendtoHOD = false;\r\n currentyear = new Date().getFullYear();\r\n selectedfromyear: number;\r\n selectedtoyear: number;\r\n dispTargetDiv: boolean = false;\r\n dispMetricDiv: boolean = false;\r\n //defineDataSource = [];\r\n length: number;\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n pageSize = 5;\r\n pageSizeOptions: number[] = [5, 10, 20, 30];\r\n addNewKraButton : boolean = false\r\n freezeKRAs = false\r\n dataSource = new MatTableDataSource();\r\n gradeNames:string;\r\n\r\n @ViewChild(MatPaginator, { static: true })\r\n paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true })\r\n sort: MatSort;\r\n // End - This is just for Demo Purpose can be removed later if material data table is not required\r\n\r\n resources = servicePath.API.PagingConfigValue;\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n private _masterDataService: MasterDataService,\r\n //private messageService: MessageService,\r\n private _roleTypeService: RoleTypeService,\r\n private fb: FormBuilder,\r\n private _appRoleTypeService: ApplicableRoleTypeService,\r\n private _router: Router,\r\n private _kraDefinitionService: KraDefinitionService,\r\n private _definekraService: DefineKraService,\r\n private _kraCommentService: KraCommentService,\r\n private actRoute: ActivatedRoute,\r\n private spinner: NgxSpinnerService\r\n ) {\r\n this.selectedParameters = new SelectedKRAParameters();\r\n this.PageSize = this.resources.PageSize;\r\n this.PageDropDown = this.resources.PageDropDown;\r\n this.username = sessionStorage[\"mail\"];\r\n }\r\n\r\n cols = [\r\n { field: \"kraaspect\", header: \"ASPECT\" },\r\n { field: \"metrics\", header: \"METRICS\" },\r\n { field: \"ration\", header: \"TARGET\" }\r\n ];\r\n displayedColumns: string[] = [\r\n \"kraaspect\",\r\n \"metrics\",\r\n \"ration\",\r\n \"Edit\",\r\n \"Delete\"\r\n ];\r\n columnsToDisplay: string[] = this.displayedColumns.slice();\r\n\r\n drop(event: CdkDragDrop) {\r\n moveItemInArray(\r\n this.displayedColumns,\r\n event.previousIndex,\r\n event.currentIndex\r\n );\r\n }\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.dataSource.data);\r\n }\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n\r\n ngOnInit() {\r\n this.defineKRAForm = this.fb.group({\r\n financialYearId: [null],\r\n departmentId: [null],\r\n gradeId: [null],\r\n roleTypeId: [null]\r\n });\r\n this.commentForm = new FormGroup({\r\n comment: new FormControl('', [Validators.required])\r\n });\r\n this.actRoute.params.subscribe(params => {\r\n this._selectedDepartmentId = params[\"departmentId\"];\r\n });\r\n this.actRoute.params.subscribe(params => {\r\n this._selectedFinancialYearId = params[\"financialYearId\"];\r\n });\r\n if (this._selectedDepartmentId) {\r\n this.departmentId = parseInt(this._selectedDepartmentId);\r\n } \r\n if (this._selectedFinancialYearId) {\r\n this.financialYearId = parseInt(this._selectedFinancialYearId);\r\n }\r\n this.financialYearList = [];\r\n this.financialYearList.push({\r\n label: \"Select Financial Year\",\r\n value: null\r\n });\r\n this.getFinancialYears();\r\n this.getDepartments();\r\n }\r\n\r\n openComments() {\r\n this.sidenav.toggle();\r\n this.getComments();\r\n }\r\n\r\n closeSideNav() {\r\n this.sidenav.close();\r\n }\r\n\r\n saveComment(): void {\r\n if (this.defineKRAForm.valid && this.commentForm.valid) {\r\n let commentModel: CommentModel;\r\n commentModel = new CommentModel();\r\n\r\n commentModel.CommentText = this.commentForm.value.comment;\r\n commentModel.Username = this.username;\r\n commentModel.IsCEO = false;\r\n commentModel.FinancialYearId = this.financialYearId;\r\n commentModel.DepartmentId = this.departmentId;\r\n commentModel.GradeId = this.defineKRAForm.value.gradeId;\r\n commentModel.RoleTypeId = this.defineKRAForm.value.roleTypeId;\r\n\r\n this._kraCommentService\r\n .CreateComment(commentModel)\r\n .subscribe((createResponse: boolean) => {\r\n if (createResponse) {\r\n this.commentForm.get(\"comment\").setValue(\"\");\r\n this._snackBar.open('Comment created successfully', '', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n else {\r\n this._snackBar.open('Failed to create Comment.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n },\r\n error => {\r\n this._snackBar.open('Failed to Create comment.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n this.sidenav.close();\r\n }\r\n }\r\n\r\n getComments() {\r\n this._kraCommentService.GetComment(\r\n this.financialYearId,\r\n this.departmentId,\r\n this.defineKRAForm.value.gradeId,\r\n this.defineKRAForm.value.roleTypeId, false).subscribe(\r\n (res: any[]) => {\r\n if (res) {\r\n res.forEach((e) => {\r\n this.commentText = e.CommentText;\r\n });\r\n }\r\n else {\r\n this._snackBar.open('Failed to get comments', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open(error.error.text, 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n\r\n getFinancialYears(): void {\r\n this._masterDataService.GetFinancialYears().subscribe(\r\n (yearsdata: any[]) => {\r\n yearsdata.forEach((e: any) => {\r\n this.financialYearList.push({\r\n label: e.FinancialYearName,\r\n value: e.Id\r\n });\r\n });\r\n if (this._selectedFinancialYearId) {\r\n this.defineKRAForm\r\n .get(\"financialYearId\")\r\n .setValue(this.financialYearId);\r\n this.defineKRAForm.controls[\"financialYearId\"].disable();\r\n } else this.defineKRAForm.controls[\"financialYearId\"].enable();\r\n },\r\n error => {\r\n this._snackBar.open(\"Failed to get Financial Year List\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n );\r\n }\r\n\r\n getDepartments(): void {\r\n this._masterDataService.GetDepartmentsMasterData().subscribe(\r\n (res: DepartmentDetails[]) => {\r\n this.departmentList = [];\r\n this.departmentList.push({ label: \"Select Department\", value: null });\r\n res.forEach((e: any) => {\r\n this.departmentList.push({\r\n label: e.Description,\r\n value: e.DepartmentId\r\n });\r\n });\r\n if (this._selectedDepartmentId) {\r\n this.defineKRAForm.get(\"departmentId\").setValue(this.departmentId);\r\n this.defineKRAForm.controls[\"departmentId\"].disable();\r\n this.getRoleTypes()\r\n } else this.defineKRAForm.controls[\"departmentId\"].enable();\r\n },\r\n error => {\r\n this._snackBar.open(\"Failed to get Department Details\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n );\r\n }\r\n\r\n onchange(event) {\r\n let target = event.source.selected._element.nativeElement;\r\n this.selectedfromyear = parseInt(target.innerText.split(\"-\")[0].trim());\r\n this.selectedtoyear = parseInt(target.innerText.split(\"-\")[1].trim());\r\n this.financialYearId = event.value;\r\n this.defineKRAForm.get(\"departmentId\").setValue(null);\r\n this.defineKRAForm.get(\"gradeId\").setValue(null);\r\n this.defineKRAForm.get(\"roleTypeId\").setValue(null);\r\n //For currentyear checking\r\n this.editKRA =\r\n (this.selectedfromyear == this.currentyear &&\r\n this.currentyear < this.selectedtoyear) ||\r\n this.selectedfromyear > this.currentyear;\r\n this.approvedKRA = this.addKra = this.addNewKRA = this.markasfinish = this.markedAsFinish = this.sendtoHOD = this.acceptedbyCEO = false;\r\n this.addNewKraButton = false;\r\n this.freezeKRAs = false\r\n this.dataSource = null;\r\n this.selectedParameters.DepartmentName = \"\";\r\n // if (this._selectedFinancialYearId) {\r\n // this.getApplicableGradeRoleTypes();\r\n // }\r\n }\r\n ondepartmentchange(event) {\r\n this.freezeKRAs=false;\r\n this.gradeNames=\"\";\r\n this.setDefaultValues();\r\n this.departmentId = event.value;\r\n this.defineKRAForm.get(\"roleTypeId\").setValue(null);\r\n this.getRoleTypes();\r\n }\r\n onRoleTypeChange() {\r\n this.getGradesForSelectedRole();\r\n this.showDefineKRAs(\"u\");\r\n }\r\n\r\n getApplicableGradeRoleTypes() {\r\n this.resetgraderoletypes();\r\n this.dataSource = null;\r\n this.gradeList = [];\r\n this._appRoleTypeService\r\n .getGradesByDepartment( \r\n this.departmentId, \r\n )\r\n .subscribe(\r\n (res: any[]) => {\r\n if (res) {\r\n this.addApplicableRole = false;\r\n this.gradeList.push({ label: \"Select Grade\", value: null });\r\n res.forEach((element: any) => {\r\n this.gradeList.push({\r\n label: element.Name,\r\n value: element.Id\r\n });\r\n if (res.length === 1){\r\n this.gradeId = element.Id;\r\n this.defineKRAForm.get(\"gradeId\").setValue(this.gradeId);\r\n // this.getApplicableGradeRoleTypesByGrade();\r\n }\r\n });\r\n this.dataSource = null;\r\n this.approvedKRA = this.addKra = this.addNewKRA = this.sendtoHOD = this.markedAsFinish = this.markasfinish = false;\r\n this.selectedParameters.GradeName = \"\";\r\n this.selectedParameters.RoleTypeName = \"\";\r\n } else {\r\n this.addApplicableRole = true;\r\n this.addNewKRA = this.addKra = this.approvedKRA = this.sendtoHOD = this.markedAsFinish = this.markasfinish = false;\r\n this.addNewKraButton = false\r\n this.dataSource = null;\r\n this.resetgraderoletypes();\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open(\"Failed to get Role Type details.\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n // this.messageService.add({\r\n // severity: 'error',\r\n // summary: 'Error Message',\r\n // detail: 'Failed to get Role Type details.'\r\n // });\r\n }\r\n );\r\n }\r\n setDefaultValues() {\r\n this.markedAsFinish = this.checkMarkAsFinished = this.addNewKRA = false;\r\n this.markasfinish = this.sendtoHOD = this.editKRA = this.addKra = false;\r\n this.addApplicableRole = this.approvedKRA = this.acceptedbyCEO = this.editByHRStatus =this.approvedByHOD= false;\r\n }\r\n showDefineKRAs(mode: string) {\r\n this.spinner.show();\r\n this.addNewKRA = true;\r\n this.freezeKRAs=false;\r\n this.addNewKraButton = false\r\n this.setDefaultValues();\r\n if(this.departmentId!==null&&this.defineKRAForm.value.roleTypeId!==null){\r\n this._definekraService\r\n .getKRADefinitionsById(\r\n this.financialYearId,\r\n this.departmentId,\r\n this.defineKRAForm.value.gradeId,\r\n this.defineKRAForm.value.roleTypeId\r\n )\r\n .subscribe(\r\n (res: DefineKRAData[]) => { \r\n this.spinner.hide();\r\n if (res != null) { \r\n this.length = res.length; \r\n this.dataSource = new MatTableDataSource(res);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n res.forEach((data: DefineKRAData) => {\r\n this.roletypeStatus = data.Status;\r\n if (data.Status == \"ApprovedByCEO\") {\r\n this.acceptedbyCEO = true;\r\n this.approvedKRA = true;\r\n this.addNewKraButton = false;\r\n this.freezeKRAs = true\r\n } \r\n if (data.Status == \"ApprovedbyHOD\") {\r\n this.approvedByHOD = true;\r\n this.approvedKRA = true;\r\n this.addNewKraButton = false;\r\n this.freezeKRAs = true\r\n }\r\n else if(data.Status == \"EditedByHOD\" || data.Status == \"SentToOpHead\" || data.Status == \"SendToCEO\" ||data.Status == \"SentToAssociates\" || data.Status == \"SentToHOD\"){\r\n this.addNewKraButton = false\r\n this.approvedKRA = true;\r\n this.freezeKRAs = true;\r\n }\r\n else if(data.Status == \"Draft\" || data.Status == \"\"){\r\n this.addNewKraButton = true\r\n }\r\n // else if (data.Status == \"FD\" || data.Status == \"FinishedEditByHR\") this.markedAsFinish = this.checkMarkAsFinished = true;\r\n // else if (data.Status == \"Draft\") this.addKra = this.editKRA = this.markasfinish = (this.selectedfromyear == this.currentyear && this.currentyear < this.selectedtoyear) || this.selectedfromyear > this.currentyear;\r\n // else if (data.Status == \"SentToHOD\") this.sendtoHOD = true;\r\n // else if (data.Status == \"EditByHR\") this.addKra = this.editKRA = this.markasfinish = this.editByHRStatus = true;\r\n });\r\n \r\n if (this.markedAsFinish) this.markasfinish = false;\r\n if (mode == \"edit\") {\r\n setTimeout(() => {\r\n this._snackBar.open(\"KRA Updated Successfully\", \"\", {\r\n duration: 1000,\r\n panelClass: [\"success-alert\"],\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }, 10);\r\n } else if (mode == \"add\") {\r\n setTimeout(() => {\r\n this._snackBar.open(\"KRA Added Successfully\", \"\", {\r\n duration: 1000,\r\n panelClass: [\"success-alert\"],\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }, 10);\r\n }\r\n else if (mode == \"import\") {\r\n setTimeout(() => {\r\n this._snackBar.open(\"KRAs Imported Successfully\", \"\", {\r\n duration: 1000,\r\n panelClass: [\"success-alert\"],\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }, 10);\r\n }\r\n else if (mode == \"copy\") {\r\n setTimeout(() => {\r\n this._snackBar.open(\"KRAs Copied Successfully\", \"\", {\r\n duration: 1000,\r\n panelClass: [\"success-alert\"],\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }, 10);\r\n }\r\n \r\n }\r\n else{ \r\n this.length = 0 \r\n this.addNewKRA = true;\r\n this.addNewKraButton = true;\r\n this.dataSource = null;\r\n }\r\n },\r\n (error: any) => { \r\n this.spinner.hide();\r\n this.length=0;\r\n if(error.error.text===\"KRAs not found from Definition table!\"){\r\n this.addNewKraButton = false;\r\n this.addNewKRA = true;\r\n this.dataSource = null;\r\n this._snackBar.open(error.error.text, \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n else if(error.error.text == \"\"){\r\n this.addNewKraButton = true;\r\n }\r\n else if (\r\n ((error.error == \"No KRAs defined!\" || error.error.text == \"No KRAs defined!\") &&\r\n (this.selectedfromyear == this.currentyear &&\r\n this.currentyear < this.selectedtoyear)) ||\r\n this.selectedfromyear > this.currentyear\r\n ) {\r\n this.addNewKRA = true;\r\n this.dataSource = null;\r\n } else if ((error.error == \"No KRAs defined!\" || error.error == \"No records found!\"\r\n || error.error ==\"No KRAs found!\")||\r\n (error.error.text == \"No KRAs defined!\" || error.error.text == \"No records found!\"\r\n || error.error.text ==\"No KRAs found!\")) {\r\n this._snackBar.open(\"No Records Found!\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n } else {\r\n this._snackBar.open(\r\n \"Failed to get Define KRA details.\" + error.error,\r\n \"x\",\r\n {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n }\r\n );\r\n }\r\n }\r\n );\r\n }else{\r\n this.spinner.hide();\r\n }\r\n }\r\n\r\n // getApplicableGradeRoleTypesByGrade() {\r\n // this.roleTypeList = [];\r\n // this.dataSource = null;\r\n // this.defineKRAForm.get(\"roleTypeId\").setValue(null);\r\n // this.addNewKRA = this.markasfinish = this.approvedKRA = this.markedAsFinish = this.sendtoHOD = this.markedAsFinish = this.markasfinish = false;\r\n // this.selectedParameters.RoleTypeName = \"\";\r\n // this.roleTypeList.push({ label: \"Select Role Type\", value: null });\r\n // if(this.defineKRAForm.value.gradeId!==null&&this.departmentId!==null){\r\n // this._appRoleTypeService\r\n // .getRoleTypesByGrade( \r\n // this.departmentId, \r\n // this.defineKRAForm.value.gradeId\r\n // )\r\n // .subscribe(\r\n // (res: any[]) => {\r\n // if (res) {\r\n // this.addApplicableRole = false;\r\n // res.forEach((element: any) => {\r\n // this.roleTypeList.push({\r\n // label: element.Name,\r\n // value: element.Id\r\n // });\r\n // if(res.length === 1) {\r\n // this.roleTypeId = element.Id;\r\n // this.defineKRAForm.get(\"roleTypeId\").setValue(this.roleTypeId);\r\n // }\r\n // });\r\n // if(res.length > 0){\r\n // this.showDefineKRAs(\"\");\r\n // }\r\n // } else {\r\n // this.addApplicableRole = true;\r\n // this.approvedKRA = this.addNewKRA = this.addKra = this.markasfinish = this.markedAsFinish = false;\r\n // this.addNewKraButton = false\r\n // this.dataSource = null;\r\n // this.resetgraderoletypes();\r\n // }\r\n // },\r\n // (error: any) => {\r\n // this._snackBar.open(\"Failed to get Role Type details.\", \"\", {\r\n // duration: 1000,\r\n // horizontalPosition: \"right\",\r\n // verticalPosition: \"top\"\r\n // });\r\n // }\r\n // );\r\n // }\r\n // }\r\n\r\n addAppRoleType() {\r\n setTimeout(() => {\r\n this._router.navigate([\"/kra/applicableroletypes\"]);\r\n }, 500);\r\n }\r\n\r\n dispUndo() {\r\n this.undoDiv = true;\r\n\r\n setTimeout(() => {\r\n this.undoDiv = false;\r\n this.undoBtn = true;\r\n //this.marksAsFinish = true;\r\n }, 3000);\r\n }\r\n dispDelKRA() {\r\n this.deletedKRAdiv = true;\r\n\r\n setTimeout(() => {\r\n this.deletedKRAdiv = false;\r\n }, 3000);\r\n }\r\n\r\n deleteKRA() {\r\n this.deletedTr = true;\r\n }\r\n\r\n dispAddedKRA() {\r\n this.dispAddedKRADiv = true;\r\n\r\n setTimeout(() => {\r\n this.dispAddedKRADiv = false;\r\n }, 3000);\r\n }\r\n\r\n ContinueEditing() { \r\n var creatingObj = new ApplicableRoleType();\r\n creatingObj.financialYearId = this.financialYearId;\r\n creatingObj.departmentId = this.departmentId;\r\n creatingObj.gradeId = this.defineKRAForm.value.gradeId;\r\n creatingObj.roleTypeId = this.defineKRAForm.value.roleTypeId;\r\n if (this.roletypeStatus == \"FinishedEditByHR\")\r\n creatingObj.status = \"EditByHR\";\r\n else creatingObj.status = \"Draft\";\r\n // this._appRoleTypeService.updateRoleTypeStatus(creatingObj).subscribe(\r\n // (res: any[]) => {\r\n // if (res) {\r\n // this.showDefineKRAs(\"refresh\");\r\n // this.markasfinish = true;\r\n // this.markedAsFinish = false;\r\n // this.checkMarkAsFinished = false;\r\n // this.editKRA =\r\n // (this.selectedfromyear == this.currentyear &&\r\n // this.currentyear < this.selectedtoyear) ||\r\n // this.selectedfromyear > this.currentyear;\r\n // } else {\r\n // this.markasfinish = false;\r\n // this.markedAsFinish = true;\r\n // }\r\n // },\r\n // (error: any) => {\r\n // this._snackBar.open(\"Failed to update.\", \"\", {\r\n // duration: 1000,\r\n // horizontalPosition: \"right\",\r\n // verticalPosition: \"top\"\r\n // });\r\n // }\r\n // );\r\n }\r\n\r\n markAsFinish() {\r\n // var creatingObj = new ApplicableRoleType();\r\n // creatingObj.financialYearId = this.financialYearId;\r\n // creatingObj.departmentId = this.departmentId;\r\n // creatingObj.gradeId = this.defineKRAForm.value.gradeId;\r\n // creatingObj.roleTypeId = this.defineKRAForm.value.roleTypeId; \r\n // if (this.roletypeStatus == \"EditByHR\")\r\n // creatingObj.status = \"FinishedEditByHR\";\r\n // else creatingObj.status = \"FD\";\r\n this._kraDefinitionService.UpdateKRAStatus(this.financialYearId, this.defineKRAForm.value.roleTypeId, \"FD\").subscribe(\r\n (res: any[]) => {\r\n if (res) {\r\n this.showDefineKRAs(\"refresh\"); \r\n } else {\r\n this.markedAsFinish = false;\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open(\"Failed to update\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n );\r\n }\r\n\r\n // onPageChanged(e) {\r\n // let firstCut = e.pageIndex * e.pageSize;\r\n // let secondCut = firstCut + e.pageSize;\r\n // this.defineDataSource = this.dataSource.slice(firstCut, secondCut);\r\n // }\r\n\r\n public closeComments(): void {\r\n this.showCommentsDialog = false;\r\n }\r\n\r\n resetgraderoletypes() {\r\n this.roleTypeList = [];\r\n this.gradeList = [];\r\n this.roleTypeList.push({ label: \"Select Role Type\", value: null });\r\n this.gradeList.push({ label: \"Select Grade\", value: null });\r\n }\r\n\r\n // changeValue(selectedValue){\r\n // if(selectedValue.value==4){\r\n // this.openDialog('450px','','Do you have any new departments, grades or role types to be defined?',['No','Yes']);\r\n // }\r\n // }\r\n\r\n changeValue(selectedValue) {\r\n this.resetgraderoletypes();\r\n }\r\n //commented 2011\r\n // openDialog(dlgwidth, heading, bodydata, footerbtns): void {\r\n // const dialogRef = this.dialog.open(KradialogsComponent, {\r\n // width: dlgwidth,\r\n // data: { dlgHeadingData: heading, dlgBodyData: bodydata, dlgFooterBtns: footerbtns }\r\n // });\r\n // dialogRef.afterClosed().subscribe(result => {\r\n // this.addNewKRA = result;\r\n // this.freezedKRA = !result;\r\n // });\r\n // }\r\n \r\n\r\n openImportKRA(): void {\r\n if (this.defineKRAForm.valid) { \r\n const dialogRef = this.dialog.open(ImportKraDlgComponent, {\r\n width: \"80vw\",\r\n data: { \r\n finYearId: this.financialYearId,\r\n depId: this.departmentId,\r\n gId: this.defineKRAForm.value.gradeId,\r\n rId: this.defineKRAForm.value.roleTypeId\r\n }\r\n });\r\n dialogRef.afterClosed().subscribe(\r\n (res: any) => { \r\n if (res == 13) {\r\n setTimeout(() => {\r\n this.addKra = false;\r\n this.showDefineKRAs(\"import\");\r\n }, 10);\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open(\r\n \"Failed to get KRA details.\" + error.error,\r\n \"x\",\r\n {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n }\r\n );\r\n }\r\n ); \r\n }\r\n }\r\n\r\n cloneKRA(): void {\r\n if (this.defineKRAForm.valid) { \r\n const dialogRef = this.dialog.open(CloneKraDlgComponent, {\r\n width: \"80vw\",\r\n data: { \r\n finYearId: this.financialYearId,\r\n depId: this.departmentId,\r\n gId: this.defineKRAForm.value.gradeId,\r\n rId: this.defineKRAForm.value.roleTypeId\r\n }\r\n });\r\n dialogRef.afterClosed().subscribe(\r\n (res: any) => { \r\n if (res == 13) {\r\n setTimeout(() => {\r\n this.addKra = false;\r\n this.showDefineKRAs(\"copy\");\r\n }, 10);\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open(\r\n \"Failed to get KRA details.\" + error.error,\r\n \"x\",\r\n {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n }\r\n );\r\n }\r\n ); \r\n }\r\n }\r\n\r\n\r\n openSnackBar(message: string, action: string) {\r\n this._snackBar.open(message, action, {\r\n duration: 5000\r\n });\r\n }\r\n\r\n openAddKRA(e): void {\r\n if (this.defineKRAForm.valid) {\r\n if (e == \"add\") {\r\n const dialogRef = this.dialog.open(AddKRAdlgComponent, {\r\n width: \"80vw\",\r\n data: {\r\n heading: \"Add KRA\",\r\n btntext: \"Add\",\r\n finYearId: this.financialYearId,\r\n depId: this.departmentId,\r\n gradeId: this.defineKRAForm.value.gradeId,\r\n roleId: this.defineKRAForm.value.roleTypeId,\r\n editMode: false,\r\n definitionDetailsId:null,\r\n definitionDetails: null\r\n }\r\n });\r\n dialogRef.afterClosed().subscribe(\r\n (res: any) => {\r\n if (res == 13) {\r\n setTimeout(() => {\r\n this.addKra = false;\r\n this.showDefineKRAs(\"add\");\r\n }, 10);\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open(\r\n \"Failed to get KRA details.\" + error.error,\r\n \"x\",\r\n {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n }\r\n );\r\n }\r\n );\r\n } else {\r\n const dialogRef = this.dialog.open(AddKRAdlgComponent, {\r\n width: \"80vw\",\r\n data: {\r\n heading: \"Edit KRA\",\r\n btntext: \"Update\",\r\n finYearId: this.financialYearId,\r\n editMode: true,\r\n depId: this.departmentId,\r\n gradeId: this.defineKRAForm.value.gradeId,\r\n roleId: this.defineKRAForm.value.roleTypeId,\r\n definitionDetailsId:e\r\n }\r\n });\r\n dialogRef.afterClosed().subscribe((res: any) => {\r\n if (res == 13) {\r\n this.addKra = false;\r\n this.showDefineKRAs(\"edit\");\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n dispTarget() {\r\n this.dispTargetDiv = true;\r\n setTimeout(() => {\r\n this.dispTargetDiv = false;\r\n }, 3000);\r\n }\r\n\r\n dispMetric() {\r\n this.dispMetricDiv = true;\r\n setTimeout(() => {\r\n this.dispMetricDiv = false;\r\n }, 3000);\r\n }\r\n\r\n onDeleteKRA(definitionDetailId: string) {\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n data: { message: 'Are you sure you want to delete?' },\r\n\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n this._kraDefinitionService.DeleteKRA(definitionDetailId).subscribe(\r\n (res: any) => {\r\n if (res == true) {\r\n this.showDefineKRAs(\"refresh\");\r\n this._snackBar.open(\"KRA Definition deleted successfully.\", \"\", {\r\n duration: 1000,\r\n panelClass: [\"success-alert\"],\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n } else {\r\n this._snackBar.open(\"Failed to delete KRA Definition.\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open(\"Failed to delete KRA Definition.\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n );\r\n }\r\n })\r\n }\r\n\r\n AcceptTargetValue(e): void {\r\n this._kraDefinitionService.AcceptTargetValue(e, this.username).subscribe(\r\n (res: any) => {\r\n if (res.IsSuccessful == true) {\r\n this.showDefineKRAs(\"refresh\");\r\n this._snackBar.open(\"KRA updated successfully.\", \"\", {\r\n duration: 1000,\r\n panelClass: [\"success-alert\"],\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n } else {\r\n if (res.Message != \"\") {\r\n this._snackBar.open(\"Failed to update KRA.\" + res.Message, \"x\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n } else {\r\n this._snackBar.open(\"Failed to update KRA.\" + res.Message, \"x\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open(\"Failed to update KRA.\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n );\r\n }\r\n\r\n RejectTargetValue(e): void {\r\n this._kraDefinitionService.RejectTargetValue(e, this.username).subscribe(\r\n (res: any) => {\r\n if (res.IsSuccessful == true) {\r\n this.showDefineKRAs(\"refresh\");\r\n this._snackBar.open(\"KRA updated successfully.\", \"\", {\r\n duration: 1000,\r\n panelClass: [\"success-alert\"],\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n } else {\r\n if (res.Message != \"\") {\r\n this._snackBar.open(\"Failed to update KRA.\" + res.Message, \"x\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n } else {\r\n this._snackBar.open(\"Failed to update KRA.\" + res.Message, \"x\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open(\"Failed to update KRA.\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n );\r\n }\r\n\r\n AcceptMetricValue(e): void {\r\n this._kraDefinitionService.AcceptMetricValue(e, this.username).subscribe(\r\n (res: any) => {\r\n if (res.IsSuccessful == true) {\r\n this.showDefineKRAs(\"refresh\");\r\n this._snackBar.open(\"KRA updated successfully.\", \"\", {\r\n duration: 1000,\r\n panelClass: [\"success-alert\"],\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n } else {\r\n if (res.Message != \"\") {\r\n this._snackBar.open(\"Failed to update KRA.\" + res.Message, \"x\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n } else {\r\n this._snackBar.open(\"Failed to update KRA.\" + res.Message, \"x\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open(\"Failed to update KRA.\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n );\r\n }\r\n\r\n RejectMetricValue(e): void { \r\n this._kraDefinitionService.RejectMetricValue(e, this.username).subscribe(\r\n (res: any) => {\r\n if (res.IsSuccessful == true) {\r\n this.showDefineKRAs(\"refresh\");\r\n this._snackBar.open(\"KRA updated successfully.\", \"\", {\r\n duration: 1000,\r\n panelClass: [\"success-alert\"],\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n } else {\r\n if (res.Message != \"\") {\r\n this._snackBar.open(\"Failed to update KRA.\" + res.Message, \"x\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n } else {\r\n this._snackBar.open(\"Failed to update KRA.\" + res.Message, \"x\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open(\"Failed to update KRA.\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n );\r\n }\r\n\r\n AcceptDeletedKRAByHOD(e): void { \r\n this._kraDefinitionService\r\n .AcceptDeletedKRAByHOD(e, this.username)\r\n .subscribe(\r\n (res: any) => {\r\n if (res.IsSuccessful == true) {\r\n this.showDefineKRAs(\"refresh\");\r\n this._snackBar.open(\"KRA updated successfully.\", \"\", {\r\n duration: 1000,\r\n panelClass: [\"success-alert\"],\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n } else {\r\n if (res.Message != \"\") {\r\n this._snackBar.open(\"Failed to update KRA.\" + res.Message, \"x\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n } else {\r\n this._snackBar.open(\"Failed to update KRA.\" + res.Message, \"x\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open(\"Failed to update KRA.\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n );\r\n }\r\n\r\n RejectDeletedKRAByHOD(e): void { \r\n this._kraDefinitionService\r\n .RejectDeletedKRAByHOD(e, this.username)\r\n .subscribe(\r\n (res: any) => {\r\n if (res.IsSuccessful == true) {\r\n this.showDefineKRAs(\"refresh\");\r\n this._snackBar.open(\"KRA updated successfully.\", \"\", {\r\n duration: 1000,\r\n panelClass: [\"success-alert\"],\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n } else {\r\n if (res.Message != \"\") {\r\n this._snackBar.open(\"Failed to update KRA.\" + res.Message, \"x\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n } else {\r\n this._snackBar.open(\"Failed to update KRA.\" + res.Message, \"x\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open(\"Failed to update KRA.\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n );\r\n }\r\n\r\n AcceptAddedKRAByHOD(e): void { \r\n this._kraDefinitionService.AcceptAddedKRAByHOD(e, this.username).subscribe(\r\n (res: any) => {\r\n if (res.IsSuccessful == true) {\r\n this.showDefineKRAs(\"refresh\");\r\n this._snackBar.open(\"KRA updated successfully.\", \"\", {\r\n duration: 1000,\r\n panelClass: [\"success-alert\"],\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n } else {\r\n if (res.Message != \"\") {\r\n this._snackBar.open(\"Failed to update KRA.\" + res.Message, \"x\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n } else {\r\n this._snackBar.open(\"Failed to update KRA.\" + res.Message, \"x\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open(\"Failed to update KRA.\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n );\r\n }\r\n\r\n RejectAddedKRAByHOD(e): void { \r\n this._kraDefinitionService.RejectAddedKRAByHOD(e, this.username).subscribe(\r\n (res: any) => {\r\n if (res.IsSuccessful == true) {\r\n this.showDefineKRAs(\"refresh\");\r\n this._snackBar.open(\"KRA updated successfully.\", \"\", {\r\n duration: 1000,\r\n panelClass: [\"success-alert\"],\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n } else {\r\n if (res.Message != \"\") {\r\n this._snackBar.open(\"Failed to update KRA.\" + res.Message, \"x\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n } else {\r\n this._snackBar.open(\"Failed to update KRA.\" + res.Message, \"x\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open(\"Failed to update KRA.\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n );\r\n }\r\n\r\n getRoleTypes(){\r\n this.roleTypeList = [];\r\n this.dataSource = null;\r\n this.defineKRAForm.get(\"roleTypeId\").setValue(null);\r\n this.addNewKRA = this.markasfinish = this.approvedKRA = this.markedAsFinish = this.sendtoHOD = this.markedAsFinish = this.markasfinish = false;\r\n this.selectedParameters.RoleTypeName = \"\";\r\n this.roleTypeList.push({ label: \"Select Role Type\", value: null });\r\n if(this.departmentId!==null){\r\n this._appRoleTypeService\r\n .getRoleTypesByFinancialYearAndDepartment(this.defineKRAForm.value.financialYearId,this.departmentId)\r\n .subscribe(\r\n (res: any[]) => {\r\n if (res) {\r\n this.addApplicableRole = false;\r\n res.forEach((element: any) => {\r\n this.roleTypeList.push({\r\n label: element.Name,\r\n value: element.Id\r\n });\r\n if(res.length === 1) {\r\n this.roleTypeId = element.Id;\r\n this.defineKRAForm.get(\"roleTypeId\").setValue(this.roleTypeId);\r\n }\r\n });\r\n if(res.length > 0){\r\n this.showDefineKRAs(\"\");\r\n }\r\n } else {\r\n this.addApplicableRole = true;\r\n this.approvedKRA = this.addNewKRA = this.addKra = this.markasfinish = this.markedAsFinish = false;\r\n this.addNewKraButton = false\r\n this.dataSource = null;\r\n this.resetgraderoletypes();\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open(\"Failed to get Role Type details.\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n );\r\n }\r\n }\r\n\r\n getGradesForSelectedRole(){\r\n this.gradeNames = \"\";\r\n \r\n this._appRoleTypeService\r\n .getGradesForSelectedRole(this.defineKRAForm.value.financialYearId,this.departmentId,this.defineKRAForm.value.roleTypeId)\r\n .subscribe(\r\n (res: any[]) => {\r\n if (res.length > 0) {\r\n this.gradeNames = res[0].GradeName\r\n console.log(this.gradeNames)\r\n } else {\r\n this.gradeNames=\"\";\r\n }\r\n },\r\n (error: any) => {\r\n this.gradeNames=\"\";\r\n }\r\n );\r\n \r\n\r\n }\r\n}\r\n","\r\n\r\n
\r\n \r\n

Comments All

\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{{commentText}}\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n Type a new comment\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 Financial Year\r\n \r\n \r\n {{fin.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Select Department {{selectedParameters.DepartmentName}}\r\n \r\n \r\n {{dept.label}}\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n Select Role Type {{selectedParameters.RoleTypeName}}\r\n \r\n \r\n {{role.label}}\r\n \r\n \r\n \r\n \r\n

Applicable Grades : {{gradeNames}}

\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 \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \"Note\r\n
\r\n

Great! You are all set to start creating set of KRA for selected role type Create from scratch or import KRA’s\r\n from previous years

\r\n
\r\n
\r\n \r\n OR \r\n \r\n OR \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n 0\" matSort>\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 \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n
ASPECT \r\n
\r\n
\r\n {{element.DeleteCount}}\r\n This KRA is deleted
\r\n
\r\n
\r\n
\r\n {{element.CreateCount}}\r\n This KRA was added
\r\n
\r\n
\r\n \r\n
{{element.AspectName}}
{{element.Date}}
\r\n
\r\n
METRICS \r\n {{element.Metric}}\r\n Previous metric was {{element.PreviousMetric}}
\r\n
\r\n {{element.ModifiedMetricCount}}\r\n \r\n
\r\n
TARGET \r\n {{element.Target}}\r\n Previous target was {{element.previousration}}
\r\n
\r\n {{element.ModifiedTargetCount}}\r\n \r\n
\r\n \r\n
Edit \r\n \r\n edit\r\n Delete \r\n \r\n delete\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 \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
ASPECT {{element.AspectName}}
{{element.Date}}
METRICS {{element.Metric}} TARGET {{element.Target}} \r\n Edit\r\n \r\n Edit\r\n \r\n Delete\r\n \r\n Delete\r\n
\r\n
\r\n
\r\n
\r\n \r\n

Above KRA are freezed

\r\n
\r\n
\r\n
\r\n
0\" class=\"row justify-content-center\" >\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n

Loading ...

\r\n\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport {\r\n MatSnackBar,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition,\r\n} from '@angular/material/snack-bar';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { FinancialYearRoleType } from 'src/app/modules/kra/models/financialyear-roletype.model';\r\nimport { FileDetail } from 'src/app/modules/kra/models/file-detail.model';\r\nimport { DownloadKraService } from 'src/app/modules/kra/services/download-kra.service';\r\n\r\n@Component({\r\n selector: 'app-download-kra',\r\n templateUrl: './download-kra.component.html',\r\n styleUrls: ['./download-kra.component.scss']\r\n})\r\nexport class DownloadKraComponent implements OnInit {\r\n loggedInEmployeeId:number;\r\n displayedColumns: string[] = [\r\n 'FinancialYearName',\r\n 'RoleTypeName',\r\n 'DownloadKRA'\r\n ];\r\n length: number;\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n pageSize = 5;\r\n pageSizeOptions: number[] = [5, 10, 20,30];\r\n dataSource = new MatTableDataSource(); \r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n resources = servicePath.API.PagingConfigValue;\r\n constructor(private _downloadKraService: DownloadKraService, private _snackBar: MatSnackBar,\r\n private spinner: NgxSpinnerService,) {\r\n this.PageSize = this.resources.PageSize;\r\n this.PageDropDown = this.resources.PageDropDown; \r\n }\r\n\r\n ngOnInit() { \r\n this.loggedInEmployeeId = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).employeeId; \r\n \r\n this.getRoleTypes(this.loggedInEmployeeId ); \r\n }\r\n\r\n public DownloadKRA(roleType :FinancialYearRoleType)\r\n { \r\n\r\n this.spinner.show();\r\n this._downloadKraService.downloadKRA(roleType.EmployeeCode, roleType.FinancialYearName, roleType.RoleTypeName).subscribe((res: FileDetail) => {\r\n this.spinner.hide();\r\n if (res) { \r\n const source = 'data:application/pdf;base64,' + res.Content;\r\n const link = document.createElement(\"a\");\r\n link.href = source;\r\n link.download = res.FileName;\r\n link.click(); \r\n } \r\n }, (error: any) => {\r\n this.spinner.hide();\r\n this._snackBar.open('Failed to get RoleType details.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }); \r\n }\r\n );\r\n }\r\n \r\n private getRoleTypes(employeId: number): void {\r\n this.spinner.show();\r\n this._downloadKraService.getEmployeeRoleTypes(employeId).subscribe((res: FinancialYearRoleType[]) => {\r\n this.spinner.hide();\r\n if (res) { \r\n this.length = res.length;\r\n this.dataSource = new MatTableDataSource(res);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n \r\n }, (error: any) => {\r\n this.spinner.hide();\r\n this._snackBar.open('Failed to get RoleType details.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\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 \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
Financial Year {{element.FinancialYearName}} Role Type {{element.RoleTypeName}} Download KRA \r\n \r\n \r\n
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n

Loading ...

\r\n
\r\n","import { Component, OnInit, ViewChild, Inject } from \"@angular/core\";\r\nimport {MatDialog, MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog';\r\nimport { KraDlgData } from \"../../../../modules/kra/models/kra-dlg-data\";\r\nimport { FormControl } from \"@angular/forms\";\r\nimport { FormBuilder, FormGroup } from \"@angular/forms\";\r\nimport { SelectionModel } from \"@angular/cdk/collections\";\r\nimport { AddKRAdlgComponent } from \"../add-kradlg/add-kradlg.component\";\r\nimport { ApplicableRoleTypeService } from \"../../services/applicableroletype.service\";\r\nimport { MasterDataService } from \"../../../../core/services/masterdata.service\"\r\nimport { DepartmentDetails } from \"../../../master-layout/models/role.model\";\r\nimport { Grade } from \"../../../admin/models/grade.model\";\r\nimport { Roletype } from \"../../../kra/models/roletype.model\";\r\nimport { element } from \"protractor\";\r\nimport { DefinitionModel } from \"../../../kra/models/kradefinition.model\"\r\nimport {\r\n FinancialYear,\r\n SelectedKRAParameters\r\n} from \"../../../master-layout/models/kra.model\";\r\nimport { RoleTypeService } from \"../../../admin/services/role-type.service\"\r\nimport {\r\n ApplicableRoleType,\r\n ApplicableRoleTypeData\r\n} from \"../../../kra/models/kraapplicableRoleType.model\"\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { DefineKraService } from \"../../../../modules/kra/services/definekra.service\";\r\nimport { DefineKRAData } from \"../../../kra/models/definekra.model\";\r\nimport { KraDefinitionService } from \"../../../kra/services/kradefinition.service\";\r\nimport { tap } from \"rxjs/operators\";\r\nimport * as servicePath from \"../../../../core/service-paths\";\r\nimport { environment } from \"../../../../../environments/environment\";\r\n\r\nimport {\r\n MatSnackBar,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition\r\n} from \"@angular/material/snack-bar\";\r\nimport { CdkDragDrop, moveItemInArray } from \"@angular/cdk/drag-drop\";\r\nimport { MatPaginator } from \"@angular/material/paginator\";\r\nimport { MatTableDataSource } from \"@angular/material/table\";\r\nimport { MatSort } from \"@angular/material/sort\";\r\nimport { themeconfig } from \"../../../../../themeconfig\";\r\nimport { NavService } from \"../../../master-layout/services/nav.service\";\r\n\r\ninterface SelectItem {\r\n value: number;\r\n label: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-import-kra-dlg',\r\n templateUrl: './import-kra-dlg.component.html',\r\n styleUrls: ['./import-kra-dlg.component.scss']\r\n})\r\n\r\nexport class ImportKraDlgComponent {\r\n leaderRole:boolean=false;\r\n themeappeareance = themeconfig.formfieldappearances;\r\n\r\n // displayedColumns: string[] = ['select','kraaspect', 'metrics', 'ration'];\r\n //dataSource = new MatTableDataSource(kradefindata);\r\n selection = new SelectionModel(true, []);\r\n financialYearId: number = 0;\r\n selectedApplicableRoleTypeId: number;\r\n finYearId: number;\r\n depId: number;\r\n gId: number;\r\n rId: number;\r\n departmentId: number = 0;\r\n gradeId: number = 0;\r\n roleTypeId: number = 0;\r\n departmentList: SelectItem[] = [];\r\n gradeList: SelectItem[] = [];\r\n roleTypeList: SelectItem[] = [];\r\n financialYearList: SelectItem[] = [];\r\n importKRAForm: FormGroup; \r\n selectedfromyear: number;\r\n selectedtoyear: number;\r\n length: number;\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n currentyear = new Date().getFullYear();\r\n pageSize = 5;\r\n pageSizeOptions: number[] = [5, 10, 20, 30];\r\n definitionDetailsIds = []; \r\n \r\n list = [];\r\n dataSource = new MatTableDataSource();\r\n\r\n @ViewChild(MatPaginator, { static: true })\r\n paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true })\r\n sort: MatSort;\r\n // End - This is just for Demo Purpose can be removed later if material data table is not required\r\n\r\n resources = servicePath.API.PagingConfigValue;\r\n\r\n constructor( public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n private _masterDataService: MasterDataService,\r\n //private messageService: MessageService,\r\n private _roleTypeService: RoleTypeService,\r\n private fb: FormBuilder,\r\n private _appRoleTypeService: ApplicableRoleTypeService,\r\n private _router: Router,\r\n private _kraDefinitionService: KraDefinitionService,\r\n private _definekraService: DefineKraService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: ImportKraDlgComponent) {}\r\n\r\n cols = [\r\n { field: \"kraaspect\", header: \"ASPECT\" },\r\n { field: \"metrics\", header: \"METRICS\" },\r\n { field: \"ration\", header: \"TARGET\" }\r\n ];\r\n displayedColumns: string[] = [\"select\",\r\n \"kraaspect\",\r\n \"metrics\",\r\n \"ration\", \r\n ];\r\n columnsToDisplay: string[] = this.displayedColumns.slice();\r\n\r\n drop(event: CdkDragDrop) {\r\n moveItemInArray(\r\n this.displayedColumns,\r\n event.previousIndex,\r\n event.currentIndex\r\n );\r\n }\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.dataSource.data);\r\n }\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\nngOnInit() {\r\n this.importKRAForm = this.fb.group({\r\n financialYearId: [null],\r\n departmentId: [null],\r\n gradeId: [null],\r\n roleTypeId: [null]\r\n }); \r\n this.finYearId = this.data.finYearId;\r\n this.depId = this.data.depId;\r\n this.gId = this.data.gId;\r\n this.rId = this.data.rId; \r\n this.getFinancialYears();\r\n this.getDepartments();\r\n this.getSelectedApplicableRoleTypeId();\r\n}\r\n\r\n getApplicableGradeRoleTypesByGrade() {\r\n this.roleTypeList = [];\r\n this.dataSource = null; \r\n this.roleTypeList.push({ label: \"Select Role Type\", value: null });\r\n // this._appRoleTypeService\r\n // .getApplicableRoleTypeById(\r\n // this.financialYearId,\r\n // this.departmentId,\r\n // null,\r\n // this.importKRAForm.value.gradeId\r\n // )\r\n // .subscribe(\r\n // (res: any[]) => {\r\n // if (res) { \r\n // res.forEach((element: any) => {\r\n // this.roleTypeList.push({\r\n // label: element.RoleTypeName,\r\n // value: element.RoleTypeId\r\n // });\r\n // this.roleTypeId = element.RoleTypeId;\r\n // });\r\n // if (this.roleTypeId > 0) {\r\n // this.importKRAForm.get(\"roleTypeId\").setValue(this.roleTypeId);\r\n // this.showDefineKRAs(\"\");\r\n // }\r\n // } \r\n // },\r\n // (error: any) => {\r\n // this._snackBar.open(\"Failed to get Role Type details.\", \"\", {\r\n // duration: 1000,\r\n // horizontalPosition: \"right\",\r\n // verticalPosition: \"top\"\r\n // });\r\n // }\r\n // );\r\n }\r\n getFinancialYears(): void {\r\n this._masterDataService.GetFinancialYears().subscribe(\r\n (yearsdata: any[]) => {\r\n yearsdata.forEach((e: any) => { \r\n this.selectedfromyear = parseInt(e.FinancialYearName.split(\"-\")[0].trim());\r\n if(this.selectedfromyear < this.currentyear)\r\n {\r\n this.financialYearList.push({\r\n label: e.FinancialYearName,\r\n value: e.Id\r\n });\r\n }\r\n // if (e.Id == this._selectedFinancialYearId)\r\n // this.financialYearName = e.FinancialYearName;\r\n });\r\n this.importKRAForm.controls[\"financialYearId\"].enable();\r\n },\r\n error => {\r\n this._snackBar.open(\"Failed to get Financial Year List\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n // this.messageService.add({\r\n // severity: \"error\",\r\n // summary: \"Error Message\",\r\n // detail: \"Failed to get Financial Year List\"\r\n // });\r\n }\r\n );\r\n }\r\n\r\n getDepartments(): void {\r\n this._masterDataService.GetDepartmentsMasterData().subscribe(\r\n (res: DepartmentDetails[]) => {\r\n this.departmentList = [];\r\n this.departmentList.push({ label: \"Select Department\", value: null });\r\n res.forEach((e: any) => {\r\n this.departmentList.push({\r\n label: e.Description,\r\n value: e.DepartmentId\r\n });\r\n });\r\n this.importKRAForm.controls[\"departmentId\"].enable();\r\n },\r\n error => {\r\n this._snackBar.open(\"Failed to get Department Details\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n // this.messageService.add({\r\n // severity: \"error\",\r\n // summary: \"Error Message\",\r\n // detail: \"Failed to get Department Details\"\r\n // });\r\n }\r\n );\r\n }\r\n\r\n onchange(event) {\r\n let target = event.source.selected._element.nativeElement;\r\n this.selectedfromyear = parseInt(target.innerText.split(\"-\")[0].trim());\r\n this.selectedtoyear = parseInt(target.innerText.split(\"-\")[1].trim());\r\n this.financialYearId = event.value;\r\n this.importKRAForm.get(\"departmentId\").setValue(null);\r\n this.importKRAForm.get(\"gradeId\").setValue(null);\r\n this.importKRAForm.get(\"roleTypeId\").setValue(null); \r\n this.dataSource = null; \r\n }\r\n ondepartmentchange(event) {\r\n // this.setDefaultValues();\r\n this.departmentId = event.value;\r\n this.getApplicableGradeRoleTypes();\r\n }\r\n onRoleTypeChange() {\r\n this.showDefineKRAs(\"u\");\r\n }\r\n\r\n getApplicableGradeRoleTypes() { \r\n this.gradeList = [];\r\n // this._appRoleTypeService\r\n // .getApplicableRoleTypeById(\r\n // this.financialYearId,\r\n // this.departmentId,\r\n // null,\r\n // null\r\n // )\r\n // .subscribe(\r\n // (res: any[]) => {\r\n // if (res) { \r\n // this.gradeList.push({ label: \"Select Grade\", value: null });\r\n // res.forEach((element: any) => {\r\n // this.gradeList.push({\r\n // label: element.Grade,\r\n // value: element.GradeId\r\n // });\r\n // this.gradeId = element.GradeId;\r\n // });\r\n // this.dataSource = null; \r\n // if (this.gradeId > 0) {\r\n // this.importKRAForm.get(\"gradeId\").setValue(this.gradeId);\r\n // this.getApplicableGradeRoleTypesByGrade();\r\n // }\r\n // } \r\n // },\r\n // (error: any) => {\r\n // this._snackBar.open(\"Failed to get Role Type details.\", \"\", {\r\n // duration: 1000,\r\n // horizontalPosition: \"right\",\r\n // verticalPosition: \"top\"\r\n // });\r\n // // this.messageService.add({\r\n // // severity: 'error',\r\n // // summary: 'Error Message',\r\n // // detail: 'Failed to get Role Type details.'\r\n // // });\r\n // }\r\n // );\r\n }\r\n\r\n\r\n private getSelectedApplicableRoleTypeId(): void {\r\n var selectedRoleId: number = this.rId;\r\n // this._appRoleTypeService.getApplicableRoleTypeById(this.finYearId,\r\n // this.depId, null, this.gId)\r\n // .subscribe(\r\n // (res: any[]) => {\r\n // if (res) {\r\n // res.forEach((element: any) => {\r\n // if (element.RoleTypeId == selectedRoleId) { \r\n // this.selectedApplicableRoleTypeId = element.ApplicableRoleTypeId;\r\n // }\r\n // })\r\n // }\r\n // }\r\n // );\r\n }\r\n\r\n// Import()\r\n// {\r\n// var selectedrowslength=this.selection.selected.length;\r\n// for (var i = 0; i < selectedrowslength; i++) {\r\n// this.definitionDetailsIds.push(this.selection.selected[i].DefinitionDetailsId); \r\n// } \r\n// }\r\n\r\n Import(){ \r\n var length=this.selection.selected.length;\r\n if(length==0)\r\n {\r\n this._snackBar.open(\"Please select a records to import the KRA's.\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n return;\r\n }\r\n for (var i = 0; i < length; i++) {\r\n this.definitionDetailsIds.push(this.selection.selected[i].DefinitionDetailsId); } \r\n if (this.definitionDetailsIds.length >0) { \r\n let definitionModel: DefinitionModel;\r\n definitionModel = new DefinitionModel();\r\n definitionModel.roleTypeId = this.roleTypeId;\r\n definitionModel.currentUser=sessionStorage[\"mail\"]; \r\n // definitionModel.definitionDetailsIds= this.definitionDetailsIds;\r\n this._kraDefinitionService\r\n .ImportKRA(definitionModel)\r\n .subscribe(\r\n res => {\r\n this.dialogRef.close(13);\r\n },\r\n error => {\r\n // this.messageService.add({\r\n // severity: \"error\",\r\n // summary: \"Error Message\",\r\n // detail: error.error\r\n // });\r\n }\r\n ); \r\n }\r\n }\r\n\r\n showDefineKRAs(mode: string) { \r\n this._definekraService\r\n .getKRADefinitionsById(\r\n this.financialYearId,\r\n this.departmentId,\r\n this.importKRAForm.value.gradeId,\r\n this.importKRAForm.value.roleTypeId\r\n )\r\n .subscribe(\r\n (res: DefineKRAData[]) => {\r\n if (res) {\r\n this.length = res.length;\r\n this.dataSource = new MatTableDataSource(res);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort; \r\n }\r\n },\r\n (error: any) => {\r\n if (\r\n (error.error.text == \"No KRAs defined!\" &&\r\n (this.selectedfromyear == this.currentyear &&\r\n this.currentyear < this.selectedtoyear)) ||\r\n this.selectedfromyear > this.currentyear\r\n ) {\r\n // this.addNewKRA = true;\r\n this.dataSource = null;\r\n } else if (error.error.text == \"No KRAs defined!\" || error.error.text == \"No records found!\") {\r\n this._snackBar.open(\"No Records Found!\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n } else {\r\n this._snackBar.open(\r\n \"Failed to get Define KRA details.\" + error.error,\r\n \"x\",\r\n {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n }\r\n );\r\n }\r\n }\r\n );\r\n }\r\n\r\n /** Whether the number of selected elements matches the total number of rows. */\r\n isAllSelected() {\r\n const numSelected = this.selection.selected.length;\r\n const numRows = this.dataSource.data.length;\r\n return numSelected === numRows;\r\n }\r\n\r\n /** Selects all rows if they are not all selected; otherwise clear selection. */\r\n masterToggle() {\r\n this.isAllSelected() ?\r\n this.selection.clear() :\r\n this.dataSource.data.forEach(row => this.selection.select(row));\r\n }\r\n\r\n // /** The label for the checkbox on the passed row */\r\n // checkboxLabel(row?: any): string {\r\n // if (!row) {\r\n // return `${this.isAllSelected() ? 'select' : 'deselect'} all`;\r\n // }\r\n // return `${this.selection.isSelected(row) ? 'deselect' : 'select'} row ${row.position + 1}`;\r\n // }\r\n changeValue(e){\r\n if(e.value==\"hr\"){\r\n this.leaderRole=false;\r\n }\r\n else{\r\n this.leaderRole=true;\r\n }\r\n }\r\n\r\n \r\n}\r\n","\r\n \r\n
\r\n
\r\n

Import KRA

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Finacial Year\r\n \r\n \r\n {{fin.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Department\r\n \r\n \r\n {{dept.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Grade\r\n \r\n \r\n {{grade.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Role Type\r\n \r\n \r\n {{role.label}}\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 \"Cross\r\n
\r\n

Delivery leader role type didn’t exist for selected year Please select from available role to import KRA's

\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 \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 ASPECT {{element.AspectName}}
Added on Thursday, 9 Jul 2020, 4:45 PM
METRICS {{element.Metric}} TARGET {{element.ration}}
Half Yearly
\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 { Component, Inject, OnInit } from '@angular/core';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatDialogConfig} from '@angular/material/dialog';\r\nimport { FormGroup, FormControl, Validators, FormBuilder } from '@angular/forms';\r\nimport { KraCommentService } from 'src/app/modules/kra/services/kra-comment.service';\r\nimport { CommentModel } from 'src/app/modules/kra/models/comment.model';\r\nimport { MatSnackBar, MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition} from '@angular/material/snack-bar';\r\n\r\n@Component({\r\n selector: 'app-kra-comment',\r\n templateUrl: './kra-comment.component.html',\r\n styleUrls: ['./kra-comment.component.scss'],\r\n providers: [KraCommentService]\r\n})\r\nexport class KraCommentComponent {\r\n themeappeareance = themeconfig.formfieldappearances;\r\n addComment: FormGroup;\r\n finYearId: number;\r\n deptId: number;\r\n gradeId: number;\r\n roleId: number;\r\n\r\n constructor(\r\n private _snackBar: MatSnackBar,\r\n public dialogRef: MatDialogRef,\r\n private _formBuilder: FormBuilder,\r\n private _kraCommentService: KraCommentService,\r\n @Inject(MAT_DIALOG_DATA) public data: KraCommentComponent) {\r\n \r\n }\r\n\r\n ngOnInit() {\r\n this.finYearId = this.data.finYearId;\r\n this.deptId = this.data.deptId;\r\n this.gradeId = this.data.gradeId;\r\n this.roleId = this.data.roleId;\r\n this.addComment = this._formBuilder.group({\r\n comment: ['', [Validators.required]]\r\n });\r\n }\r\n \r\n onNoClick(): void { \r\n this.dialogRef.close(true);\r\n}\r\n\r\n onAddClick(): void { \r\n if (this.addComment.valid) { \r\n let commentModel: CommentModel;\r\n commentModel = new CommentModel();\r\n\r\n commentModel.CommentText = this.addComment.value.comment;\r\n commentModel.Username = sessionStorage[\"mail\"];\r\n commentModel.IsCEO = false;\r\n commentModel.FinancialYearId = this.finYearId;\r\n commentModel.DepartmentId = this.deptId;\r\n commentModel.GradeId = this.gradeId;\r\n commentModel.RoleTypeId = this.roleId;\r\n \r\n this._kraCommentService\r\n .CreateComment(commentModel)\r\n .subscribe(\r\n res => {\r\n this.dialogRef.close(13);\r\n },\r\n error => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\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
\r\n
\r\n \r\n Comment\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 { Component, OnInit, ViewChild, TemplateRef } from '@angular/core';\r\nimport { Router, ActivatedRoute } from \"@angular/router\";\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { FormBuilder, Validators, FormGroup, FormArray, FormControl } from \"@angular/forms\";\r\nimport { KrascalemasterService } from \"src/app/modules/kra/services/krascalemaster.service\";\r\nimport { KRAScaleMaster, KRAScaleDetails } from 'src/app/modules/kra/models/krascaleData.model';\r\nimport { GenericType } from '../../../master-layout/models/dropdowntype.model';\r\nimport { MasterDataService } from 'src/app/core/services/masterdata.service';\r\n// import { ConfirmationService } from 'primeng/components/common/confirmationservice';\r\n//import { MessageService } from 'primeng/api';\r\n//import { MatDialog, MatDialogConfig } from '@angular/material';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatDialogConfig } from '@angular/material/dialog';\r\nimport { CommonDialogComponent } from '../../../shared/components/common-dialog/common-dialog.component';\r\n\r\nimport {\r\n MatSnackBar,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition,\r\n} from '@angular/material/snack-bar';\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-kra-scale-master',\r\n templateUrl: './kra-scale-master.component.html',\r\n styleUrls: ['./kra-scale-master.component.scss'],\r\n providers: [KrascalemasterService]\r\n})\r\nexport class KraScaleMasterComponent implements OnInit {\r\n resources = servicePath.API.PagingConfigValue;\r\n displayedColumns: string[] = ['ScaleTitle', 'MinimumScale', 'MaximumScale', 'View', 'Edit', 'Delete'];\r\n //dataSource:any;\r\n dataSource = new MatTableDataSource();\r\n kraScaleForm: FormGroup;\r\n ScaleDetails: FormArray;\r\n @ViewChild('viewScale') scaleDialog: TemplateRef;\r\n @ViewChild('addScale') addScale: TemplateRef;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n private componentName: string;\r\n public PageSize: number;\r\n public PageDropDown: number[];\r\n\r\n\r\n public kraMasterScaleList: KRAScaleMaster[] = [];\r\n public kraMasterScale: KRAScaleMaster;\r\n\r\n private tempKRAScaleDetails: KRAScaleDetails[] = [];\r\n private scaleDesciptionList: GenericType[];\r\n public ScaleTitle: string = \"Add KRA Scale\";\r\n public saveButton: string = \"Save\";\r\n public kraScaleDisplay: boolean = false;\r\n public kraDescriptionView: boolean = false;\r\n public formSubmitted: boolean = false;\r\n public myForm: FormGroup;\r\n public descriptionView: string = \"\";\r\n public descriptionHide: boolean = false;\r\n private MinimumScaleValidation: boolean = true;\r\n private MaximumScaleValidation: boolean = true;\r\n public spaceValidation: boolean = false;\r\n public dialogResponse:boolean;\r\n public maximumScale:number;\r\n dialogText: string;\r\n\r\n\r\n constructor(\r\n private _activatedRoute: ActivatedRoute,\r\n private _kraScaleMasterService: KrascalemasterService,\r\n private _snackBar: MatSnackBar,\r\n public navService: NavService,\r\n private _fb: FormBuilder,\r\n //private _confirmationService: ConfirmationService,\r\n private _masterDataService: MasterDataService,\r\n // private messageService: MessageService,\r\n private dialog: MatDialog) {\r\n this.componentName = this._activatedRoute.routeConfig.component.name;\r\n this.PageSize = this.resources.PageSize;\r\n this.PageDropDown = this.resources.PageDropDown;\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.getKRAScaleList();\r\n //this.getKRAScaleDescriptions();\r\n\r\n this.myForm = this._fb.group({\r\n ScaleTitle: ['', [Validators.required, Validators.pattern(\"^[a-zA-Z0-9-_ ]*$\")]],\r\n MinimumScale: [null, [Validators.required]],\r\n MaximumScale: [null, [Validators.required]],\r\n ScaleDetails: this._fb.array([this.initDescription()])\r\n });\r\n this.resetForm();\r\n }\r\n cols = [\r\n { field: 'ScaleTitle', header: 'Scale Title' },\r\n { field: 'MinimumScale', header: 'Minimum Scale', type: \"number\" },\r\n { field: 'MaximumScale', header: 'Maximum Scale', type: \"number\" },\r\n\r\n ];\r\n columnsToDisplay: string[] = this.displayedColumns.slice();\r\n\r\n drop(event: CdkDragDrop) {\r\n moveItemInArray(\r\n this.displayedColumns,\r\n event.previousIndex,\r\n event.currentIndex\r\n );\r\n }\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.dataSource.data);\r\n }\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n initDescription() {\r\n return this._fb.group({\r\n ScaleDetailId: [null],\r\n ScaleValue: [null],\r\n ScaleDescription: [\r\n \"\",\r\n [Validators.required, Validators.pattern(\"^[a-zA-Z0-9_ ]*$\")]\r\n ]\r\n });\r\n }\r\n\r\n // private getKRAScaleDescriptions(): void {\r\n // this._masterDataService.getKRAScaleValues()\r\n // .subscribe((desciptionResponse: GenericType[]) => {\r\n // this.scaleDesciptionList = [];\r\n // this.scaleDesciptionList = desciptionResponse;\r\n // });\r\n\r\n // }\r\n public getStyles(type: string) {\r\n if (type == 'number') {\r\n return { 'text-align': 'right', 'width': '120px' };\r\n }\r\n }\r\n getKRAScaleList(): void {\r\n this._kraScaleMasterService.GetKRAScale().subscribe(\r\n (scaleResponse: KRAScaleMaster[]) => {\r\n this.kraMasterScaleList = [];\r\n this.kraMasterScaleList = scaleResponse;\r\n //this.dataSource = scaleResponse;\r\n this.dataSource = new MatTableDataSource(this.kraMasterScaleList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n },\r\n (error: any) => {\r\n if (error._body != undefined && error._body != \"\") {}\r\n this._snackBar.open('Failed to get KRA Scale List', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackbar // this.messageService.add({\r\n // severity: 'error',\r\n // summary: 'Error Message',\r\n // detail: 'Failed to get KRA Scale List'\r\n // });\r\n }\r\n );\r\n }\r\n\r\n public onAddKRAScale(): void {\r\n this.descriptionHide = false;\r\n this.saveButton = \"Save\";\r\n this.ScaleTitle = \"Add KRA Scale\";\r\n this.resetForm();\r\n this.kraScaleDisplay = true;\r\n }\r\n\r\n onMinimunScaleChange(\r\n MinimumScale: number,\r\n MaximumScale: number\r\n ): void {\r\n if (MinimumScale != null && MinimumScale != 1) {\r\n this._snackBar.open('Minimum Scale should start from 1', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackbar // this.messageService.add({\r\n // severity: 'warn',\r\n // summary: 'Warning Message',\r\n // detail: 'Minimum Scale should start from 1'\r\n // });\r\n this.MinimumScaleValidation = false;\r\n return;\r\n } else {\r\n this.MinimumScaleValidation = true;\r\n }\r\n if (MinimumScale != null && MaximumScale != null) {\r\n this.onMaximumScaleChange(this.myForm.value);\r\n }\r\n }\r\n\r\n onMaximumScaleChange(data: any): void {\r\n this.formSubmitted = false;\r\n let MinimumScale = data.MinimumScale, MaximumScale = data.MaximumScale\r\n if(MaximumScale==null){\r\n this._snackBar.open('Maximum Scale should be greater than or equals to Minimum Scale', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return;\r\n }\r\n if (MinimumScale != null && MaximumScale != null) {\r\n if (!this.MinimumScaleValidation) return;\r\n if (MinimumScale > MaximumScale) {\r\n this._snackBar.open('Maximum Scale should be greater than or equals to Minimum Scale', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackbar // this.messageService.add({\r\n // severity: 'warn',\r\n // summary: 'Warning Message',\r\n // detail: 'Maximum Scale should be greater than or equals to Minimum Scale'\r\n // });\r\n\r\n this.MaximumScaleValidation = false;\r\n return;\r\n } else if (MaximumScale > 30) {\r\n this._snackBar.open('Maximum Scale should not be greater than 30', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackbar // this.messageService.add({\r\n // severity: 'warn',\r\n // summary: 'Warning Message',\r\n // detail: 'Maximum Scale should not be greater than 30'\r\n // });\r\n this.MaximumScaleValidation = false;\r\n return;\r\n } else if(this.maximumScale != MaximumScale){\r\n this.maximumScale = MaximumScale\r\n this.MaximumScaleValidation = true;\r\n this.myForm.controls[\"ScaleDetails\"] = new FormArray([]);\r\n const control = this.myForm.controls[\"ScaleDetails\"];\r\n (control: FormArray) => {\r\n while (control.length !== 0) {\r\n control.controls = [];\r\n this.descriptionHide = false;\r\n }\r\n };\r\n for (let i = MinimumScale; i <= MaximumScale; i++) {\r\n control.push(this.initDescription());\r\n }\r\n this.descriptionHide = true;\r\n }\r\n }\r\n }\r\n\r\n public saveKRAScale(kraMasterScale: KRAScaleMaster): void {\r\n this.formSubmitted = true;\r\n kraMasterScale.ScaleTitle = this.myForm.controls.ScaleTitle.value;\r\n kraMasterScale.MaximumScale = this.myForm.controls.MaximumScale.value;\r\n kraMasterScale.ScaleID = this.kraMasterScale.ScaleID;\r\n if (kraMasterScale.ScaleTitle) {\r\n kraMasterScale.ScaleTitle = kraMasterScale.ScaleTitle.trim().replace(/ +/g, ' ');\r\n if (kraMasterScale.ScaleTitle == '') {\r\n this.spaceValidation = true;\r\n // when we are displaying error mesage no need for toaster --( removed by hema suggested by sravanthi.)\r\n return;\r\n } else {\r\n this.spaceValidation = false;\r\n }\r\n } else {\r\n this.spaceValidation = false;\r\n }\r\n if (\r\n kraMasterScale.ScaleTitle == \"\" ||\r\n kraMasterScale.MinimumScale == null ||\r\n kraMasterScale.MaximumScale == null ||\r\n this.myForm.controls[\"ScaleTitle\"].value == null\r\n )\r\n return;\r\n if (!this.MinimumScaleValidation) {\r\n this.onMinimunScaleChange(\r\n kraMasterScale.MinimumScale,\r\n kraMasterScale.MaximumScale\r\n );\r\n return;\r\n }\r\n if (!this.MaximumScaleValidation) {\r\n this.onMaximumScaleChange(this.myForm.value);\r\n return;\r\n }\r\n let scaleDescription: any[] = [];\r\n let numberRegex = /^[a-zA-Z0-9_\\s]*$/;\r\n var desc = '';;\r\n scaleDescription = this.myForm.controls[\"ScaleDetails\"].value;\r\n if (scaleDescription.length == 0) {\r\n return;\r\n }\r\n else {\r\n let description: any[] = [];\r\n\r\n for (let i = 0; i < scaleDescription.length; i++) {\r\n\r\n if (scaleDescription[i].ScaleDescription)\r\n scaleDescription[i].ScaleDescription = scaleDescription[i].ScaleDescription.trim().replace(/ +/g, ' ');\r\n let descriptionValidation = numberRegex.test(\r\n scaleDescription[i].ScaleDescription\r\n );\r\n\r\n description[i] = (scaleDescription[i].ScaleDescription == \"\" || !descriptionValidation || scaleDescription[i].ScaleDescription == null)\r\n\r\n if (description[i] == true) {\r\n desc = 'false';\r\n }\r\n else desc = 'true';\r\n\r\n }\r\n\r\n if (desc == 'true') {\r\n kraMasterScale.ScaleDetails = scaleDescription.map(\r\n (scaleDescription, index) => {\r\n if (this.tempKRAScaleDetails.length > 0) {\r\n return {\r\n ScaleDescription: scaleDescription.ScaleDescription,\r\n ScaleValue: this.tempKRAScaleDetails[index].ScaleValue,\r\n ScaleDetailId: this.tempKRAScaleDetails[index]\r\n .ScaleDetailId\r\n };\r\n } else {\r\n return {\r\n ScaleDescription: scaleDescription.ScaleDescription,\r\n ScaleValue: index + 1\r\n };\r\n }\r\n }\r\n );\r\n } else {\r\n this._snackBar.open('Enter Valid input', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({\r\n // severity: 'warn',\r\n // summary: 'Warning Message',\r\n // detail: 'Enter Valid input'\r\n // });\r\n return;\r\n }\r\n }\r\n if (this.saveButton == \"Save\") {\r\n // for (\r\n // let i = kraMasterScale.MinimumScale;\r\n // i <= kraMasterScale.MaximumScale;\r\n // i++\r\n // )\r\n // if (kraMasterScale.ScaleDetails.length > 0)\r\n // kraMasterScale.ScaleDetails[i - 1].KRAScale = i;\r\n this._kraScaleMasterService.CreateKRAScale(kraMasterScale).subscribe(\r\n (response: number) => {\r\n if (response == 1) {\r\n this.descriptionHide = false;\r\n this.dialog.closeAll();\r\n this._snackBar.open('KRA Scale saved Successfully', '', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackbar // this.messageService.add({\r\n // severity: 'success',\r\n // summary: 'Success Message',\r\n // detail: 'KRA Scale saved Successfully'\r\n // });\r\n this.getKRAScaleList();\r\n //this.getKRAScaleDescriptions();\r\n } else if (response == -1) {\r\n this._snackBar.open('Either Scale Title or Descriptions may be duplicate', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackbar // this.messageService.add({\r\n // severity: 'warn',\r\n // summary: 'Warning Message',\r\n // detail: 'Either Scale Title or Descriptions may be duplicate'\r\n // });\r\n } else if (response == -13) {\r\n this._snackBar.open('Enter valid input', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackbar // this.messageService.add({\r\n // severity: 'warn',\r\n // summary: 'Warning Message',\r\n // detail: 'Enter valid input'\r\n // });\r\n } else {\r\n this._snackBar.open('Failed to Save KRA Scale', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackbar // this.messageService.add({\r\n // severity: 'error',\r\n // summary: 'Error Message',\r\n // detail: 'Failed to Save KRA Scale'\r\n // });\r\n }\r\n },\r\n (error: any) => {\r\n if (error._body != undefined && error._body != \"\") { }\r\n this._snackBar.open('Failed to Save KRA Scale', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackbar // this.messageService.add({\r\n // severity: 'error',\r\n // summary: 'Error Message',\r\n // detail: 'Failed to Save KRA Scale'\r\n // });\r\n }\r\n );\r\n } else {\r\n this._kraScaleMasterService.UpdateKRAScale(kraMasterScale)\r\n .subscribe(\r\n (response: number) => {\r\n if (response == 1) {\r\n this.kraScaleDisplay = false;\r\n this.dialog.closeAll();\r\n this._snackBar.open('KRA Scale updated Successfully', '', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackbar // this.messageService.add({\r\n // severity: 'success',\r\n // summary: 'Success Message',\r\n // detail: 'KRA Scale updated Successfully'\r\n // });\r\n this.getKRAScaleList();\r\n //this.getKRAScaleDescriptions();\r\n } else if (response == -1) {\r\n this._snackBar.open('Either Scale Title or Descriptions may be duplicate', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackbar // this.messageService.add({\r\n // severity: 'warn',\r\n // summary: 'Warning Message',\r\n // detail: 'Either Scale Title or Descriptions may be duplicate'\r\n // });\r\n }\r\n else if (response == -13) {\r\n this._snackBar.open('Enter valid input', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackbar // this.messageService.add({\r\n // severity: 'warn',\r\n // summary: 'Warning Message',\r\n // detail: 'Enter valid input'\r\n // });\r\n } else {\r\n this._snackBar.open('Failed to Update KRA Scale', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackbar // this.messageService.add({\r\n // severity: 'error',\r\n // summary: 'Error Message',\r\n // detail: 'Failed to Update KRA Scale'\r\n // });\r\n }\r\n },\r\n (error: any) => {\r\n if (error._body != undefined && error._body != \"\") { }\r\n this._snackBar.open('Failed to Update KRA Scale', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackbar // this.messageService.add({\r\n // severity: 'error',\r\n // summary: 'Error Message',\r\n // detail: 'Failed to Update KRA Scale'\r\n // });\r\n }\r\n );\r\n }\r\n }\r\n\r\n onEditKRAScaleDescription(kraScaleMaster: KRAScaleMaster): void {\r\n this.myForm.patchValue({ ScaleTitle: kraScaleMaster.ScaleTitle, MinimumScale: kraScaleMaster.MinimumScale, MaximumScale: kraScaleMaster.MaximumScale });\r\n this.onMaximumScaleChange(kraScaleMaster);\r\n this.openAddKRAScale('edit');\r\n //this.descriptionHide = true;\r\n //this.formSubmitted = false;\r\n this.saveButton = \"Update\";\r\n this.ScaleTitle = \"Update KRA Scale Descriptions\";\r\n this._kraScaleMasterService\r\n .GetKRADescriptionDetails(kraScaleMaster.ScaleID)\r\n .subscribe(\r\n (DescriptionResponse: KRAScaleDetails[]) => {\r\n this.kraMasterScale = kraScaleMaster;\r\n this.kraMasterScale.ScaleDetails = DescriptionResponse;\r\n this.tempKRAScaleDetails = [];\r\n this.tempKRAScaleDetails = DescriptionResponse;\r\n DescriptionResponse.forEach(\r\n (response: KRAScaleDetails, index: number) => {\r\n const fbScaleDescriptions = this.myForm.get(\r\n \"ScaleDetails\"\r\n ) as FormArray;\r\n fbScaleDescriptions.at(index).setValue({\r\n ScaleDetailId: response.ScaleDetailId,\r\n ScaleValue: response.ScaleValue,\r\n ScaleDescription: response.ScaleDescription\r\n });\r\n }\r\n );\r\n },\r\n (error: any) => {\r\n if (error._body != undefined && error._body != \"\") { }\r\n this._snackBar.open('Failed to get KRA Scale Description', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({\r\n // severity: 'error',\r\n // summary: 'Error Message',\r\n // detail: 'Failed to get KRA Scale Description'\r\n // });\r\n }\r\n );\r\n }\r\n\r\n onDeleteKRAScale(kraScaleMasterID: number): void {\r\n // method to open delete dialog\r\n const dialogRef = this.dialog.open(CommonDialogComponent, {\r\n data: { heading: 'Confirmation', message: \"Are you sure, you want to delete?\" }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.dialogResponse = result;\r\n if (this.dialogResponse == true){\r\n this._kraScaleMasterService.DeleteKRAScale(kraScaleMasterID).subscribe(\r\n (scaleResponse: any) => {\r\n if (scaleResponse.Item1 == true) {\r\n this._snackBar.open('KRA Scale deleted Successfully', '', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.getKRAScaleList();\r\n }\r\n else {\r\n this._snackBar.open(scaleResponse.Item2, 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n },\r\n (error: any) => {\r\n if (error._body != undefined && error._body != \"\")\r\n this._snackBar.open('Failed to delete KRA Scale', '' ,{\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n else {\r\n }\r\n });\r\n } \r\n\r\nonViewKRAScaleDescription(kraScaleMaster: KRAScaleMaster): void {\r\n this.kraDescriptionView = true;\r\n let descriptionList: GenericType[] = [];\r\n this.ScaleTitle = \"View KRA Scale Descriptions\";\r\n if(this.scaleDesciptionList.length > 0 && kraScaleMaster.ScaleID) {\r\n\r\n for (let i = 0; i < this.scaleDesciptionList.length; i++) {\r\n let scaleDesciption = this.scaleDesciptionList[i];\r\n\r\n if (scaleDesciption.Id == kraScaleMaster.ScaleID) {\r\n descriptionList.push(scaleDesciption);\r\n }\r\n }\r\n if (descriptionList.length > 0) {\r\n this.descriptionView = descriptionList[0].Name;\r\n } else {\r\n this.descriptionView = \"No Records\";\r\n }\r\n\r\n}\r\n }\r\n\r\n public resetForm(): void {\r\n this.maximumScale=0\r\n this.spaceValidation = false;\r\n this.formSubmitted = false;\r\n if(this.saveButton == \"Save\") {\r\n this.myForm.patchValue({ ScaleTitle: '', MaximumScale: null });\r\n this.descriptionHide = false;\r\n this.kraMasterScale = new KRAScaleMaster();\r\n this.kraMasterScale = {\r\n ScaleID: 0,\r\n MinimumScale: 1,\r\n MaximumScale: null,\r\n ScaleTitle: \"\",\r\n ScaleDetails: new Array()\r\n };\r\n this.MaximumScaleValidation = true;\r\n this.MinimumScaleValidation = true;\r\n} else {\r\n this.kraMasterScale.ScaleDetails = [];\r\n this.myForm.controls[\"ScaleDetails\"].reset();\r\n}\r\n }\r\n\r\n public cancelDialog(): void {\r\n this.kraScaleDisplay = false;\r\n}\r\n\r\nopenAddKRAScale(val: string) {\r\n if (val == 'add') {\r\n this.maximumScale=0;\r\n this.descriptionHide = false;\r\n this.saveButton = \"Save\";\r\n this.myForm.reset();\r\n this.myForm.controls[\"ScaleDetails\"].reset();\r\n this.myForm.patchValue({ MinimumScale: 1 });\r\n this.myForm.controls.ScaleTitle.enable();\r\n this.myForm.controls.MaximumScale.enable();\r\n }\r\n else {\r\n this.descriptionHide = true;\r\n this.myForm.controls.ScaleTitle.disable();\r\n this.myForm.controls.MaximumScale.disable();\r\n }\r\n const dialogConfig = new MatDialogConfig();\r\n dialogConfig.restoreFocus = false;\r\n dialogConfig.disableClose = true;\r\n dialogConfig.autoFocus = false;\r\n dialogConfig.role = 'dialog';\r\n this.dialog.open(this.addScale, dialogConfig);\r\n}\r\n\r\nviewDialog(kraScaleMasterID: number) {\r\n this._kraScaleMasterService.GetKRADescriptionDetails(kraScaleMasterID).subscribe(data => {\r\n let d = data.map((v, i) => v.ScaleValue + '-' + v.ScaleDescription);\r\n this.dialogText = d.join(', ');\r\n }, err => {\r\n });\r\n const dialogConfig = new MatDialogConfig();\r\n dialogConfig.restoreFocus = false;\r\n dialogConfig.disableClose = true;\r\n dialogConfig.autoFocus = false;\r\n dialogConfig.role = 'dialog';\r\n this.dialog.open(this.scaleDialog, dialogConfig);\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 \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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Scale Title {{element.ScaleTitle}} Minimum Scale {{element.MinimumScale}} MaximumScale {{element.MaximumScale}} View \r\n Edit \r\n Delete \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n

View KRA Scale Descriptions

\r\n
\r\n \r\n
{{dialogText}}
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n\r\n

KRAScale Title

\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Scale Title\r\n \r\n \r\n
\r\n
\r\n \r\n Minimum Scale\r\n \r\n \r\n
\r\n
\r\n \r\n Maximum Scale\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n {{i+1}}\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 { Component, OnInit, ChangeDetectorRef, QueryList, ViewChildren, ViewChild, Input } from \"@angular/core\";\r\nimport { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { MasterDataService } from 'src/app/core/services/masterdata.service';\r\nimport { FinancialYear, SelectedKRAParameters } from 'src/app/modules/master-layout/models/kra.model';\r\nimport { KraStatusService } from \"src/app/modules/kra/services/kraStatus.service\";\r\nimport { KRAStatusData } from 'src/app/modules/kra/models/krastatus.model';\r\nimport { environment } from 'src/environments/environment';\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { ConfirmationDialogComponent } from 'src/app/confirmation-dialog/confirmation-dialog.component'\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\nimport {\r\n MatSnackBar,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition,\r\n} from '@angular/material/snack-bar';\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { DepartmentDetails } from \"src/app/modules/master-layout/models/role.model\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { KraWorkFlow } from \"../../models/kra-work-flow.model\";\r\nimport { KraDefinitionService } from 'src/app/modules/kra/services/kradefinition.service';\r\nimport { MenuListItemComponent } from \"src/app/modules/master-layout/components/menu-list-item/menu-list-item.component\";\r\n\r\ninterface SelectItem {\r\n value : number;\r\n label : string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-kra-status',\r\n templateUrl: './kra-status.component.html',\r\n styleUrls: ['./kra-status.component.scss']\r\n})\r\nexport class KraStatusComponent implements OnInit {\r\n themeappeareance = themeconfig.formfieldappearances;\r\n financialYearId:number;\r\n departmentId:number;\r\n loggedInEmployeeId:number;\r\n loggedinUserRole:string;\r\n sendtoCEO:boolean;\r\n _departmentHeadDepartmentId:number; \r\n length: number;\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n pageSize = 5;\r\n pageSizeOptions: number[] = [5, 10, 20,30];\r\n dataSource = new MatTableDataSource(); \r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n resources = servicePath.API.PagingConfigValue;\r\n public financialYearList: SelectItem[] = [];\r\n KRAStatusForm: FormGroup; \r\n sendToHodReqObj:any={};\r\n showSendToCEO:boolean=false;\r\n\r\n constructor(private _masterDataService: MasterDataService, private fb: FormBuilder,\r\n public dialog: MatDialog,\r\n private _kraStatusService: KraStatusService, private _snackBar: MatSnackBar,\r\n private _router: Router, private spinner: NgxSpinnerService,\r\n private _kraDefinitionService:KraDefinitionService) {\r\n this.PageSize = this.resources.PageSize;\r\n this.PageDropDown = this.resources.PageDropDown; \r\n }\r\n\r\n cols = [\r\n { field: 'departmentname', header: 'Department Name' },\r\n { field: 'noofroletypes', header: ' NO OF ROLE TYPES' },\r\n { field: 'status', header: 'STATUS' }, \r\n { field: 'action', header: 'ACTION' }, \r\n ];\r\n displayedColumns: string[] = [\r\n 'departmentname',\r\n 'noofroletypes',\r\n 'status',\r\n 'action',\r\n ];\r\n columnsToDisplay: string[] = this.displayedColumns.slice();\r\n\r\n drop(event: CdkDragDrop) {\r\n moveItemInArray(\r\n this.displayedColumns,\r\n event.previousIndex,\r\n event.currentIndex\r\n );\r\n }\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.dataSource.data);\r\n }\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n\r\n ngOnInit() { \r\n this.loggedInEmployeeId = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).employeeId;\r\n this.loggedinUserRole = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).roleName; \r\n if(this.loggedinUserRole.indexOf('CEO') != -1)\r\n this._router.navigate(['/kra/ceostatus/']);\r\n if(this.loggedinUserRole.indexOf('Department Head') != -1) this._departmentHeadDepartmentId =this.loggedInEmployeeId;\r\n this.KRAStatusForm = this.fb.group({\r\n Id: [null],\r\n });\r\n this.getFinancialYears();\r\n this.sendtoCEO=false;\r\n }\r\n \r\n private getFinancialYears(): void {\r\n this._masterDataService.GetFinancialYears().subscribe((yearsdata: any[]) => {\r\n this.financialYearList = [];\r\n this.financialYearList.push({ label: 'Select Financial Year', value: null });\r\n yearsdata.forEach((e: any) => {\r\n this.financialYearList.push({ label: e.FinancialYearName, value: e.Id });\r\n });\r\n }, (error: any) => {\r\n this._snackBar.open('Failed to get Financial Year details.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }); \r\n }\r\n );\r\n }\r\n\r\n onchange() { \r\n if(this.loggedinUserRole.indexOf('Department Head') != -1)\r\n {\r\n this._departmentHeadDepartmentId =this.loggedInEmployeeId;\r\n this.getHODKRAStatuses(); \r\n }\r\n else if(this.loggedinUserRole.indexOf('Operation Head') != -1) this.getHRKRAStatuses();\r\n }\r\n\r\n getHRKRAStatuses() { \r\n this.spinner.show();\r\n this._kraStatusService\r\n .getHRKRAStatuses(this.KRAStatusForm.value.Id)\r\n .subscribe(\r\n (res: KRAStatusData[]) => {\r\n this.spinner.hide();\r\n if (res) { \r\n this.length = res.length;\r\n this.dataSource = new MatTableDataSource(res);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.showSendToCEO= (res.some((item)=>item.Status==='SentToOpHead'))&&\r\n !(res.some((item)=>item.Status==='SentToHOD')) &&\r\n !(res.some((item)=>item.Status==='ApprovedbyHOD')) \r\n && !(res.some((item)=>item.Status==='EditedByHOD'))\r\n res.forEach((data: KRAStatusData) => { \r\n if(data.Status==\"SentToOpHead\")\r\n {\r\n data.Status=\"Sent To Operations Head\"; \r\n }\r\n else if(data.Status == \"SentToHOD\"){\r\n data.Status=\"Sent To HOD\"; \r\n } \r\n else if(data.Status == \"ApprovedbyHOD\"){\r\n data.Status=\"Approved By HOD\";\r\n }\r\n else if(data.Status == \"EditedByHOD\"){\r\n data.Status=\"Edited By HOD\";\r\n }\r\n else if(data.Status == \"SendToCEO\"){\r\n data.Status = \"Sent To CEO\"\r\n }\r\n else if(data.Status == \"ApprovedByCEO\"){\r\n data.Status=\"Approved By CEO\";\r\n }\r\n }); \r\n } else this.dataSource = null;\r\n },\r\n error => {\r\n this.dataSource = null;\r\n (error: any) => {\r\n this._snackBar.open('Failed to Send.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }); \r\n }\r\n }\r\n );\r\n }\r\n\r\n getHODKRAStatuses() { \r\n this._kraStatusService.getHODKRAStatuses(this.KRAStatusForm.value.Id,this._departmentHeadDepartmentId)\r\n .subscribe(\r\n (res: KRAStatusData[]) => { \r\n if (res) {\r\n this.length = res.length;\r\n this.dataSource = new MatTableDataSource(res);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort; \r\n res.forEach((data: KRAStatusData) => { \r\n if(data.Status==\"KRA Recived from Head HR\")\r\n {\r\n data.Status=\"KRAs Recived from Head HR\"; \r\n } \r\n });\r\n } \r\n },\r\n (error) => { \r\n this.dataSource = null;\r\n if(error.error.text!='')\r\n {\r\n this._snackBar.open(error.error.text, 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n else{\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n });\r\n }\r\n\r\n SendToCEO(): void {\r\n this._kraStatusService.SendToCEO\r\n (this.KRAStatusForm.value.Id).subscribe(res => {\r\n this.sendtoCEO=false;\r\n this.getHRKRAStatuses();\r\n this._snackBar.open('Notification Sent to CEO Successfully.', '', {\r\n duration: 1000,\r\n panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }); \r\n },\r\n (error: any) => {\r\n this._snackBar.open('Failed to Send.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }); \r\n });\r\n }\r\n\r\n\r\n // SendToHOD(data: KRAStatusData): void { \r\n // this._kraStatusService.UpdateKRAStatus\r\n // (this.KRAStatusForm.value.Id, data.DepartmentId,true).subscribe(res => {\r\n // this.getHRKRAStatuses(); \r\n // this._snackBar.open('Notification Sent to HOD Successfully.', '', {\r\n // duration: 1000,\r\n // panelClass:['success-alert'],\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // }); \r\n // },\r\n // (error: any) => {\r\n // this._snackBar.open('Failed to Send.', '', {\r\n // duration: 1000,\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // }); \r\n // });\r\n // }\r\n\r\n StartHODReview(data: KRAStatusData): void { \r\n this._router.navigate(['/kra/krareview/' + this.KRAStatusForm.value.Id + '/' + data.DepartmentId]);\r\n }\r\n\r\n StartHRReview(data: KRAStatusData): void { \r\n this.EditByHR(data); \r\n }\r\n\r\n // SendToHR(data: KRAStatusData): void { \r\n // this._kraStatusService.UpdateKRAStatus\r\n // (this.KRAStatusForm.value.Id, data.DepartmentId, false).subscribe(res => {\r\n // this.getHODKRAStatuses();\r\n // this._snackBar.open('Notification Sent to HR Successfully.', '', {\r\n // duration: 1000,\r\n // panelClass:['success-alert'],\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // }); \r\n // },\r\n // (error: any) => {\r\n // this._snackBar.open('Failed to Send.', '', {\r\n // duration: 1000,\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // }); \r\n // });\r\n // }\r\n\r\n EditByHR(data: KRAStatusData): void { \r\n this._kraStatusService.EditByHR\r\n (this.KRAStatusForm.value.Id, data.DepartmentId).subscribe(res => {\r\n this._router.navigate(['/kra/kradefine/' + this.KRAStatusForm.value.Id + '/' + data.DepartmentId]);\r\n },\r\n (error: any) => {\r\n this._snackBar.open('Failed to Send.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }); \r\n });\r\n }\r\n sendToHod(data: KRAStatusData){\r\n\r\n const dialogRef = this.dialog.open(ConfirmationDialogComponent, {\r\n data: {\r\n message: data.IsEligilbeForReivew? 'Are you sure want to send?' : 'All the kras not defined are sure want to proceed' ,\r\n buttonText: {\r\n ok: 'Yes',\r\n cancel: 'No',\r\n },\r\n },\r\n });\r\n dialogRef.afterClosed().subscribe((confirmed: boolean) => {\r\n if (confirmed) {\r\n this.sendToHodReqObj={\r\n financialYearId : this.KRAStatusForm.value.Id,\r\n departmentId : data.DepartmentId\r\n } \r\n this._kraStatusService.UpdateKRAStatus\r\n (this.sendToHodReqObj,true).subscribe(res => {\r\n this.getHRKRAStatuses(); \r\n this._snackBar.open('Notification Sent to HOD Successfully.', '', {\r\n duration: 1000,\r\n panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }); \r\n },\r\n // (error: any) => {\r\n // this._snackBar.open('Failed to Send.', '', {\r\n // duration: 1000,\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // }); \r\n // }\r\n );\r\n }\r\n });\r\n\r\n }\r\n\r\n SendtoCEO(){\r\n const dialogRef = this.dialog.open(ConfirmationDialogComponent, {\r\n data: {\r\n message: 'Are you sure to Proceed',\r\n buttonText: {\r\n ok: 'Yes',\r\n cancel: 'No',\r\n },\r\n },\r\n });\r\n dialogRef.afterClosed().subscribe((confirmed: boolean) => {\r\n if (confirmed) {\r\n let approvalObj: KraWorkFlow\r\n approvalObj = new KraWorkFlow()\r\n approvalObj.financialYearId = this.KRAStatusForm.value.Id;\r\n // approvalObj.departmentId = this.departmentId;\r\n // approvalObj.gradeRoleTypeIds.push(this.reviewKRAForm.value.roleTypeId)\r\n this._kraDefinitionService.SendToCEO(approvalObj).subscribe((res) => {\r\n // this.sentToHR = true\r\n if(res){\r\n this.getHRKRAStatuses()\r\n this._snackBar.open(\"Notification Sent successfully.\", '', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n \r\n },\r\n (error => {\r\n this._snackBar.open(error.error, '', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\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 Financial Year\r\n \r\n \r\n {{fin.label}}\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 \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
Department Name {{element.DepartmentName}} NO OF ROLE TYPES
TOTAL | ACCEPTED | MODIFIED | FOR REVIEW
\r\n

{{element.TotalRoleTypeCount}} \r\n \r\n {{element.AcceptedRoleTypesCount}}\r\n \r\n \r\n \r\n {{element.EditedRoleTypesCount}}\r\n \r\n {{element.UnderReviewRoleTypesCount}}\r\n \r\n \r\n

STATUS {{element.Status}}
\r\n \r\n

\r\n message\r\n

\r\n
ACTION \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\r\n

Loading ...

\r\n\r\n \r\n\r\n\r\n\r\n ","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MasterDataService } from 'src/app/core/services/masterdata.service';\r\n//import { ConfirmationService, Message, MessageService } from 'primeng/api';\r\nimport { KraMeasurementTypeService } from 'src/app/modules/kra/services/kra.measurement-type.service';\r\n// import { DropDownType, GenericType } from '../../modules/master-layout/models/dropdowntype.model';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { KRAMeasurementTypeData } from 'src/app/modules/kra/models/kra.measurement-type.model';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport {\r\n MatSnackBar,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition,\r\n} from '@angular/material/snack-bar';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n// Start - This is just for Demo Purpose can be removed later if material data table is not required\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { tap } from 'rxjs/operators';\r\n//import { tap } from 'rxjs/operators';\r\n//import { ConfirmDialogComponent } from '../confirm-dialog/confirm-dialog.component';\r\n\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\n\r\n@Component({\r\n selector: 'app-kra.measurement-type',\r\n templateUrl: './kra.measurement-type.component.html',\r\n styleUrls: ['./kra.measurement-type.component.scss'],\r\n providers: [MasterDataService, KraMeasurementTypeService]\r\n})\r\n\r\nexport class KraMeasurementTypeComponent {\r\n // Start - This is just for Demo Purpose can be removed later if material data table is not required\r\n //displayedColumns: string[] = ['MeasurementType', 'Edit'];\r\n sliceDataSource = []\r\n length: number;\r\n pageSize = 5;\r\n pageSizeOptions: number[] = [5, 10, 20, 30];\r\n\r\n // End - This is just for Demo Purpose can be removed later if material data table is not required\r\n\r\n resources = servicePath.API.PagingConfigValue;\r\n // errorMessage: Message[] = [];\r\n componentName: string;\r\n measureTypeList: KRAMeasurementTypeData[] = [];\r\n buttonTitle: string;\r\n measurementForm: FormGroup;\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n measurementFormSubmitted: boolean;\r\n saveButton: string = \"Add\";\r\n private measurementTypeDataBeforeEdit: KRAMeasurementTypeData;\r\n measurementType: string;\r\n kraMeasurementTypeData: KRAMeasurementTypeData;\r\n kraMeasurement: string;\r\n valid: boolean = false;\r\n dataSource = new MatTableDataSource();\r\n\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n cols = [\r\n { field: 'MeasurementType', header: 'Measuremen Type Name' }\r\n ];\r\n displayedColumns: string[] = [\r\n 'MeasurementType',\r\n 'Edit',\r\n ];\r\n columnsToDisplay: string[] = this.displayedColumns.slice();\r\n\r\n drop(event: CdkDragDrop) {\r\n moveItemInArray(\r\n this.displayedColumns,\r\n event.previousIndex,\r\n event.currentIndex\r\n );\r\n }\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.dataSource.data);\r\n }\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n constructor(private _snackBar: MatSnackBar,\r\n private _masterDataService: MasterDataService,\r\n private _actRoute: ActivatedRoute,\r\n private _formBuilder: FormBuilder,\r\n private _kraMeasurementTypeService: KraMeasurementTypeService,\r\n public navService: NavService,\r\n // private _confirmationService: ConfirmationService,\r\n private dialog: MatDialog,\r\n ) {\r\n this.componentName = this._actRoute.routeConfig.component.name;\r\n this.buttonTitle = \"Add\";\r\n this.PageSize = this.resources.PageSize;\r\n this.PageDropDown = this.resources.PageDropDown;\r\n this.kraMeasurementTypeData = new KRAMeasurementTypeData();\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n ngOnInit() {\r\n this.measurementForm = this._formBuilder.group({\r\n Id: [0],\r\n MeasurementType: [\"\", [Validators.required, Validators.pattern(/^[a-zA-Z-&,\\s()]*$/), Validators.maxLength(70)]]\r\n });\r\n this.clear();\r\n this.getMeasurementTypes();\r\n }\r\n omitSpecialChar(event: any) {\r\n let k: any;\r\n k = event.charCode;\r\n return (k > 64 && k < 91) || (k > 96 && k < 123) || k == 8 || k == 32 || k == 44 || k == 45 || k == 38;\r\n }\r\n\r\n public validateMeasurementType(measurementType: string) {\r\n let numberRegex = /^[a-zA-Z-&,\\s]*$/;\r\n this.valid = numberRegex.test(measurementType);\r\n if (!this.valid) {\r\n this._snackBar.open('Enter valid Measurement Type.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackBar this.messageService.add({ severity: 'warn', summary: 'Warning Message', detail: 'Enter valid Measurement Type.' });\r\n return;\r\n }\r\n }\r\n\r\n private getMeasurementTypes(): void {\r\n this._kraMeasurementTypeService.GetKRAMeasurementType().subscribe((res: KRAMeasurementTypeData[]) => {\r\n this.measureTypeList = [];\r\n this.measureTypeList = res;\r\n this.length = res.length;\r\n this.sliceDataSource = res;\r\n // this.sliceDataSource = this.dataSource.slice(0,this.pageSize);\r\n this.dataSource = new MatTableDataSource(this.sliceDataSource);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n },\r\n (error: any) => {\r\n this._snackBar.open(\"Failed to get Measurement Type.\" + error.error, 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackBar this.messageService.add({ severity: 'error', summary: 'Error Message', detail: 'Failed to get Measurement Type.' });\r\n }\r\n );\r\n }\r\n\r\n private duplicateMeasurementTypeCheck(measurementType: string): boolean {\r\n if (this.measureTypeList) {\r\n let duplicateMeasureList = this.measureTypeList.filter(function (measure: KRAMeasurementTypeData) {\r\n return (\r\n measure.MeasurementType.toLowerCase() == measurementType.toLowerCase()\r\n );\r\n });\r\n if ((this.saveButton == \"Add\" && duplicateMeasureList.length > 0) || (this.saveButton == \"Update\" && duplicateMeasureList.length > 1)) {\r\n this._snackBar.open('Measurement Type Already exists.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackBar this.messageService.add({ severity: 'warn', summary: 'Warning Message', detail: 'Measurement Type Already exists.' });\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n private dataChangeCheck(measurement: KRAMeasurementTypeData): boolean {\r\n if (measurement && this.measurementTypeDataBeforeEdit) {\r\n if ((this.measurementTypeDataBeforeEdit.Id == measurement.Id) && (this.measurementTypeDataBeforeEdit.MeasurementType == measurement.MeasurementType)) {\r\n\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n public submitForm(): void {\r\n //this.aspectFormSubmitted = true;\r\n if (this.measurementForm.valid) {\r\n this.measurementForm.value.MeasurementType.trim().replace(/ +/g, ' ');\r\n let position: number = this.measurementForm.value.MeasurementType.indexOf('-', 0);\r\n let position1: number = this.measurementForm.value.MeasurementType.indexOf('&', 0);\r\n let position2: number = this.measurementForm.value.MeasurementType.indexOf(',', 0)\r\n if (this.measurementForm.value.MeasurementType.charAt(position) == this.measurementForm.value.MeasurementType.charAt(position + 1) || this.measurementForm.value.MeasurementType.charAt(position1) == this.measurementForm.value.MeasurementType.charAt(position1 + 1) || this.measurementForm.value.MeasurementType.charAt(position2) == this.measurementForm.value.MeasurementType.charAt(position2 + 1)) {\r\n this._snackBar.open('Nothing to Save..', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackBar // this.messageService.add({\r\n // severity: 'warn',\r\n // summary: 'Warning Message',\r\n // detail: 'Nothing to Save..'\r\n // });\r\n return;\r\n }\r\n //this.valid = false;\r\n if (this.measurementForm.value.MeasurementType.trim() == \"\") { this.measurementForm.reset(); return; }\r\n let duplicateAspect = this.duplicateMeasurementTypeCheck(this.measurementForm.value.MeasurementType);\r\n if (!duplicateAspect) return;\r\n } else return;\r\n if (this.saveButton == \"Add\") {\r\n this._kraMeasurementTypeService.CreateKraMeasurementType(this.measurementForm.value.MeasurementType).subscribe((createResponse: boolean) => {\r\n if (createResponse) {\r\n this._snackBar.open('Measurement Type Created successfully.', '', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackBar // this.messageService.add({\r\n // severity: 'success',\r\n // summary: 'Success Message',\r\n // detail: 'Measurement Type Created successfully'\r\n // });\r\n this.getMeasurementTypes();\r\n this.clear();\r\n }\r\n // else if (createResponse == -1) { \r\n // this.messageService.add({\r\n // severity: 'warn',\r\n // summary: 'Warning Message',\r\n // detail: 'Aspect already exists!.'\r\n // });\r\n // }\r\n else {\r\n this._snackBar.open('Failed to Create Measurement Type.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackBar // this.messageService.add({\r\n // severity: 'error',\r\n // summary: 'Error Message',\r\n // detail: 'Failed to Create Measurement Type.'\r\n // });\r\n }\r\n },\r\n error => {\r\n //if (error._body != undefined && error._body != \"\")\r\n this._snackBar.open('Failed to Create Measurement Type.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackBar // this.messageService.add({\r\n // severity: 'error',\r\n // summary: 'Error Message',\r\n // detail: 'Failed to Create Measurement Type.'\r\n // });\r\n }\r\n );\r\n }\r\n else {\r\n let dataChange = this.dataChangeCheck(this.measurementForm.value);\r\n if (!dataChange) return;\r\n this._kraMeasurementTypeService.UpdateKraMeasurementType(this.measurementForm.value).subscribe((updateResponse: boolean) => {\r\n if (updateResponse) {\r\n this._snackBar.open('Measurement Type Updated successfully.', '', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackBar this.messageService.add({ severity: 'success', summary: 'Success Message', detail: 'Measurement Type Updated successfully' });\r\n this.getMeasurementTypes();\r\n this.clear();\r\n }\r\n else {\r\n this._snackBar.open('Failed to Update Measurement Type.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackBar this.messageService.add({\r\n // severity: 'error', summary: 'Error Message', detail: 'Failed to Update Measurement Type.'\r\n // });\r\n }\r\n\r\n },\r\n error => {\r\n this._snackBar.open('Failed to Update Measurement Type.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackBar this.messageService.add({ severity: 'error', summary: 'Error Message', detail: 'Failed to Update Measurement Type.' });\r\n }\r\n );\r\n }\r\n }\r\n\r\n editMeasurementType(measurement: KRAMeasurementTypeData): void {\r\n this.saveButton = \"Update\";\r\n this.measurementTypeDataBeforeEdit = new KRAMeasurementTypeData();\r\n this.measurementTypeDataBeforeEdit = measurement;\r\n this.kraMeasurementTypeData = measurement;\r\n this.kraMeasurement = \"\";\r\n this.kraMeasurement = measurement.MeasurementType;\r\n this.measurementForm.patchValue(measurement);\r\n }\r\n public clear(): void {\r\n this.kraMeasurementTypeData = new KRAMeasurementTypeData();\r\n this.kraMeasurementTypeData = {\r\n Id: 0,\r\n MeasurementType: \"\"\r\n };\r\n this.measurementForm.patchValue({ MeasurementType: null, Id: 0 });\r\n this.measurementForm.controls['MeasurementType'].setErrors(null);\r\n this.valid = false;\r\n this.saveButton = \"Add\";\r\n this.measurementFormSubmitted = false;\r\n }\r\n editMeasurement(Id: number, kraMeasurementType: string) {\r\n this.buttonTitle = \"Update\";\r\n if (Id && kraMeasurementType && kraMeasurementType != \"\") {\r\n this.kraMeasurementTypeData = new KRAMeasurementTypeData();\r\n this.kraMeasurementTypeData.Id = Id;\r\n this.kraMeasurementTypeData.MeasurementType = kraMeasurementType;\r\n this.measurementType = kraMeasurementType;\r\n }\r\n }\r\n\r\n // deleteMeasurement(Id: number) { \r\n // //private deleteMeasurement(Id: number) {\r\n // if (Id != null) {\r\n\r\n // const dialogRef = this.dialog.open()\r\n // ,{\r\n // data: {\r\n // message: 'Are you sure, you want to delete this Measurement Type?',\r\n // }\r\n // });\r\n // dialogRef.afterClosed().subscribe(result => {\r\n // if (result) {\r\n // this._kraMeasurementTypeService.DeleteKraMeasurementType(Id).subscribe(\r\n // (data: number) => {\r\n // if (data == 1) {\r\n // this._snackBar.open('KRA Measurement Type deleted successfully.', '', {\r\n // duration: 1000,\r\n // panelClass: ['success-alert'],\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // });\r\n // //snackBar this.messageService.add({ severity: 'success', summary: 'Success Message', detail: 'KRA Measurement Type deleted successfully.' });\r\n // } else if (data == 0) {\r\n // this._snackBar.open('Failed to delete KRA Measurement Type.', '', {\r\n // duration: 1000,\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // });\r\n // //snackBar this.messageService.add({ severity: 'warn', summary: 'Wraning Message', detail: 'Failed to delete KRA Measurement Type.' });\r\n // } else if (data == 9) {\r\n // this._snackBar.open('Child Dependency exists.', '', {\r\n // duration: 1000,\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // });\r\n // //snackBar this.messageService.add({ severity: 'warn', summary: 'Wraning Message', detail: 'Child Dependency exists.' });\r\n // } else {\r\n // this._snackBar.open('Failed to delete KRA Measurement Type.', '', {\r\n // duration: 1000,\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // });\r\n // //snackBar this.messageService.add({ severity: 'error', summary: 'Error Message', detail: 'Failed to delete KRA Measurement Type.' });\r\n // }\r\n // this.buttonTitle = \"Add\";\r\n // this.measurementFormSubmitted = false;\r\n // this.measurementType = \"\";\r\n // this.getMeasurementTypes();\r\n // },\r\n // (error: any) => {\r\n // this._snackBar.open('Failed to delete KRA Measurement Type.', '', {\r\n // duration: 1000,\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // });\r\n // //snackBar this.messageService.add({ severity: 'error', summary: 'Error Message', detail: 'Sorry! Failed to delete KRA Measurement Type.' });\r\n // });\r\n // }\r\n // else {\r\n // }\r\n // });\r\n // }\r\n // }\r\n\r\n public cancel(): void {\r\n this.buttonTitle = \"Add\";\r\n this.measurementForm.reset();\r\n this.measurementFormSubmitted = false;\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n KRA Measurement Type\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 \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
KRA Measurement Type {{element.MeasurementType}} Edit \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-kra',\r\n templateUrl: './kra.component.html',\r\n styleUrls: ['./kra.component.scss']\r\n})\r\nexport class KraComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n \r\n
\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\n//import { kradefindata } from '../../../../modules/kra/krajson';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\nimport { AddKRAdlgComponent } from '../add-kradlg/add-kradlg.component';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { FormControl } from '@angular/forms';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MasterDataService } from '../../../../core/services/masterdata.service';\r\n//import { SelectItem, MessageService } from \"primeng/components/common/api\";\r\nimport { DepartmentDetails } from '../../../../modules/master-layout/models/role.model';\r\nimport { SelectedKRAParameters } from '../../../../modules/master-layout/models/kra.model';\r\nimport { ApplicableRoleTypeService } from \"../../../../modules/kra/services/applicableroletype.service\";\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { DefineKraService } from \"../../../../modules/kra/services/definekra.service\";\r\nimport { DefineKRAData } from '../../models/definekra.model';\r\n\r\nimport { KraDefinitionService } from '../../../../modules/kra/services/kradefinition.service';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { KraWorkFlow } from '../../models/kra-work-flow.model';\r\n\r\nimport {\r\n MatSnackBar,\r\n} from '@angular/material/snack-bar';\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { MatSidenav } from '@angular/material/sidenav';\r\nimport { CommentModel } from '../../models/comment.model';\r\nimport { KraCommentService } from '../../../../modules/kra/services/kra-comment.service';\r\nimport { ConfirmationDialogComponent } from '../../../../confirmation-dialog/confirmation-dialog.component'\r\nimport { ApplicableRoleType } from '../../models/kraapplicableRoleType.model';\r\n\r\ninterface SelectItem {\r\n value: number;\r\n label: string;\r\n}\r\n\r\n@Component({\r\n selector: \"app-review-kra\",\r\n templateUrl: \"./review-kra.component.html\",\r\n styleUrls: [\"./review-kra.component.scss\"]\r\n})\r\nexport class ReviewKRAComponent implements OnInit {\r\n @ViewChild('sidenav') sidenav: MatSidenav;\r\n\r\n themeappeareance = themeconfig.formfieldappearances;\r\n selectedParameters: SelectedKRAParameters;\r\n selection = new SelectionModel(true, []);\r\n markedAsFinish: boolean = false;\r\n approvedByHOD: boolean = false;\r\n acceptedbyCEO: boolean = false;\r\n addNewKRA: boolean = false;\r\n freezedKRA: boolean = false;\r\n importedKRA: boolean = false;\r\n newAddedRow: boolean = false;\r\n marksAsFinish: boolean = false;\r\n reviewKradata: boolean = false;\r\n undoBtn: boolean = false;\r\n undoBtnFMetric: boolean = false;\r\n username: string;\r\n editKRA: boolean = false;\r\n dispTargetDiv: boolean = false;\r\n dispMetricDiv: boolean = false;\r\n deletedTr: boolean = false;\r\n deletedKRAdiv: boolean = false;\r\n addedTR: boolean = false;\r\n dispAddedKRADiv: boolean = false;\r\n commentText: string;\r\n sentToHR:boolean=false;\r\n private _selectedDepartmentId: string;\r\n _selectedFinancialYearId: string;\r\n departmentHeadDepartmentId: number;\r\n public financialYearList: SelectItem[] = [];\r\n public departmentList: SelectItem[] = [];\r\n public gradeList: SelectItem[] = [];\r\n public roleTypeList: SelectItem[] = [];\r\n reviewKRAForm: FormGroup;\r\n commentForm: FormGroup;\r\n loggedinUserRole: string;\r\n public financialYearId: number = 0;\r\n public departmentId: number = 0;\r\n public gradeId: number = 0;\r\n public roleTypeId: number = 0;\r\n loggedInEmployeeId: number = 0;\r\n length: number;\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n pageSize = 5;\r\n pageSizeOptions: number[] = [5, 10, 20, 30];\r\n isHODLoggedIn:boolean=false;\r\n HODDefinitions:DefineKRAData[]=[];\r\n isShowDetailData:boolean=false;\r\n newList:DefineKRAData[]=[];\r\n\r\n dataSource = new MatTableDataSource();\r\n gradeNames:string\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n // End - This is just for Demo Purpose can be removed later if material data table is not required\r\n\r\n resources = servicePath.API.PagingConfigValue;\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n public _snackBar: MatSnackBar,\r\n //private messageService: MessageService,\r\n private _masterDataService: MasterDataService,\r\n private _definekraService: DefineKraService,\r\n private fb: FormBuilder,\r\n private _appRoleTypeService: ApplicableRoleTypeService,\r\n private _kraDefinitionService: KraDefinitionService,\r\n private _kraCommentService: KraCommentService,\r\n private actRoute: ActivatedRoute,\r\n private spinner: NgxSpinnerService,\r\n ) {\r\n this.selectedParameters = new SelectedKRAParameters();\r\n this.PageSize = this.resources.PageSize;\r\n this.PageDropDown = this.resources.PageDropDown;\r\n this.username = sessionStorage[\"mail\"];\r\n this.loggedInEmployeeId = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).employeeId;\r\n this.loggedinUserRole = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).roleName;\r\n }\r\n cols = [\r\n { field: 'kraaspect', header: 'ASPECT' },\r\n { field: 'metrics', header: 'METRICS' },\r\n { field: 'ration', header: 'TARGET' },\r\n ];\r\n displayedColumns: string[] = [\r\n 'kraaspect',\r\n 'metrics',\r\n 'ration',\r\n\r\n ];\r\n columnsToDisplay: string[] = this.displayedColumns.slice();\r\n\r\n drop(event: CdkDragDrop) {\r\n moveItemInArray(\r\n this.displayedColumns,\r\n event.previousIndex,\r\n event.currentIndex\r\n );\r\n }\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.dataSource.data);\r\n }\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n\r\n ngOnInit() {\r\n if(this.loggedinUserRole.indexOf('Operation Head')==-1){\r\n this.isHODLoggedIn = true;\r\n this.displayedColumns.push( 'Edit',\r\n 'Delete')\r\n }else{\r\n this.displayedColumns.push('Count');\r\n }\r\n this.reviewKRAForm = this.fb.group({\r\n financialYearId: new FormControl(null),\r\n departmentId: new FormControl(null),\r\n gradeId: new FormControl(null),\r\n roleTypeId: new FormControl(null)\r\n });\r\n this.commentForm = new FormGroup({\r\n comment: new FormControl('', [Validators.required])\r\n });\r\n this.actRoute.params.subscribe(params => {\r\n this._selectedDepartmentId = params[\"departmentId\"];\r\n });\r\n this.actRoute.params.subscribe(params => {\r\n this._selectedFinancialYearId = params[\"financialYearId\"];\r\n });\r\n if (this._selectedDepartmentId) {\r\n this.departmentId = parseInt(this._selectedDepartmentId);\r\n } else {\r\n if (this.loggedinUserRole.indexOf(\"Department Head\") != -1) {\r\n this.getUserDepartmentDetailsByEmployeeID();\r\n }\r\n }\r\n if (this._selectedFinancialYearId) {\r\n this.financialYearId = parseInt(this._selectedFinancialYearId);\r\n }\r\n this.financialYearList = [];\r\n this.financialYearList.push({\r\n label: \"Select Financial Year\",\r\n value: null\r\n });\r\n this.getFinancialYears();\r\n if (this.loggedinUserRole.indexOf(\"Operation Head\") != -1 || (this.departmentId > 0 && this.loggedinUserRole.indexOf(\"Department Head\") != -1)) {\r\n this.getDepartments();\r\n }\r\n }\r\n\r\n private getUserDepartmentDetailsByEmployeeID(): void {\r\n this._masterDataService.GetUserDepartmentDetailsByEmployeeID(this.loggedInEmployeeId)\r\n .subscribe(\r\n (res: DepartmentDetails[]) => {\r\n this.departmentList = [];\r\n this.departmentList.push({ label: \"Select Department\", value: null });\r\n res.forEach((e: any) => {\r\n this.departmentList.push({\r\n label: e.Description,\r\n value: e.DepartmentId\r\n });\r\n });\r\n if (this._selectedDepartmentId) {\r\n this.reviewKRAForm.get(\"departmentId\").setValue(this.departmentId);\r\n this.reviewKRAForm.controls[\"departmentId\"].disable();\r\n this.getApplicableGradeRoleTypes();\r\n } else this.reviewKRAForm.controls[\"departmentId\"].enable();\r\n },\r\n error => {\r\n this._snackBar.open('Failed to get Department Details', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n\r\n private getFinancialYears(): void {\r\n this._masterDataService.GetFinancialYears().subscribe(\r\n (yearsdata: any[]) => {\r\n yearsdata.forEach((e: any) => {\r\n this.financialYearList.push({\r\n label: e.FinancialYearName,\r\n value: e.Id\r\n });\r\n // if (e.Id == this._selectedFinancialYearId)\r\n // this.financialYearName = e.FinancialYearName;\r\n });\r\n if (this._selectedFinancialYearId) {\r\n this.reviewKRAForm\r\n .get(\"financialYearId\")\r\n .setValue(this.financialYearId);\r\n this.reviewKRAForm.controls[\"financialYearId\"].disable();\r\n } else this.reviewKRAForm.controls[\"financialYearId\"].enable();\r\n },\r\n error => {\r\n this._snackBar.open('Failed to get Financial Year List', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({\r\n // severity: \"error\",\r\n // summary: \"Error Message\",\r\n // detail: \"Failed to get Financial Year List\"\r\n // });\r\n }\r\n );\r\n }\r\n\r\n private getDepartments(): void {\r\n this._masterDataService.GetDepartmentsMasterData().subscribe(\r\n (res: DepartmentDetails[]) => {\r\n this.departmentList = [];\r\n this.departmentList.push({ label: \"Select Department\", value: null });\r\n res.forEach((e: any) => {\r\n this.departmentList.push({\r\n label: e.Description,\r\n value: e.DepartmentId\r\n });\r\n });\r\n if (this._selectedDepartmentId) {\r\n this.reviewKRAForm.get(\"departmentId\").setValue(this.departmentId);\r\n this.reviewKRAForm.controls[\"departmentId\"].disable();\r\n this.getApplicableGradeRoleTypes();\r\n } else this.reviewKRAForm.controls[\"departmentId\"].enable();\r\n },\r\n error => {\r\n this._snackBar.open('Failed to get Department Details', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n\r\n onchange(event) {\r\n this.financialYearId = event.value;\r\n this.reviewKRAForm.get(\"departmentId\").setValue(null);\r\n this.reviewKRAForm.get(\"gradeId\").setValue(null);\r\n this.reviewKRAForm.get(\"roleTypeId\").setValue(null);\r\n if (this._selectedFinancialYearId) {\r\n this.getApplicableGradeRoleTypes();\r\n }\r\n }\r\n ondepartmentchange(event) {\r\n this.gradeNames=\"\";\r\n this.approvedByHOD=false;\r\n this.marksAsFinish = false\r\n this.sentToHR=false\r\n this.dataSource = null;\r\n this.departmentId = event.value;\r\n this.length=0;\r\n this.reviewKRAForm.get(\"gradeId\").setValue(null);\r\n this.reviewKRAForm.get(\"roleTypeId\").setValue(null);\r\n // this.getApplicableGradeRoleTypes();\r\n this.getRoleTypes();\r\n }\r\n getApplicableGradeRoleTypes() {\r\n this.resetgraderoletypes();\r\n this.gradeList = [];\r\n // this._appRoleTypeService\r\n // .getApplicableRoleTypeById(\r\n // this.financialYearId,\r\n // this.departmentId,\r\n // null,\r\n // null\r\n // )\r\n // .subscribe(\r\n // (res: any[]) => {\r\n // if (res) {\r\n // //this.addApplicableRole = false;\r\n // //this.gradeList.push({ label: \"Select Grade\", value: null })\r\n // res.forEach((element: any) => {\r\n // this.gradeList.push({\r\n // label: element.Grade,\r\n // value: element.GradeId\r\n // });\r\n // this.gradeId = element.GradeId;\r\n // });\r\n // if (this.gradeId > 0) {\r\n // this.reviewKRAForm.get(\"gradeId\").setValue(this.gradeId);\r\n // this.getApplicableGradeRoleTypesByGrade();\r\n // }\r\n // }\r\n // },\r\n // (error: any) => {\r\n // this._snackBar.open('Failed to get Role Type details.', '', {\r\n // duration: 1000,\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // });\r\n // }\r\n // );\r\n this._appRoleTypeService\r\n .getGradesByDepartment(\r\n this.departmentId,\r\n )\r\n .subscribe(\r\n (res: any[]) => {\r\n if (res) {\r\n this.gradeList.push({ label: \"Select Grade\", value: null });\r\n res.forEach((element: any) => {\r\n this.gradeList.push({\r\n label: element.Name,\r\n value: element.Id\r\n });\r\n if (res.length === 1){\r\n this.gradeId = element.Id;\r\n this.reviewKRAForm.get(\"gradeId\").setValue(this.gradeId);\r\n this.getApplicableGradeRoleTypesByGrade();\r\n }\r\n });\r\n // if (this.gradeId > 0) {\r\n // if(this.gradeList.length===2){\r\n // this.reviewKRAForm.get(\"gradeId\").setValue(this.gradeId);\r\n // }else{\r\n // this.reviewKRAForm.get(\"gradeId\").setValue(null);\r\n // }\r\n // if(res.length>0){\r\n // this.getApplicableGradeRoleTypesByGrade();\r\n // }\r\n // }\r\n if(res.length>0){\r\n // this.getApplicableGradeRoleTypesByGrade();\r\n }\r\n else{\r\n this.dataSource = null;\r\n this.resetgraderoletypes();\r\n }\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open(\"Failed to get Role Type details.\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n // this.messageService.add({\r\n // severity: 'error',\r\n // summary: 'Error Message',\r\n // detail: 'Failed to get Role Type details.'\r\n // });\r\n }\r\n );\r\n }\r\n\r\n // private getappGradeRoleTypesByGrade(event) {\r\n // this.gradeId = event.value;\r\n // this.roleTypeId = 0;\r\n // this.getApplicableGradeRoleTypesByGrade();\r\n // }\r\n\r\n getApplicableGradeRoleTypesByGrade() {\r\n this.approvedByHOD = false\r\n this.sentToHR=false\r\n this.length=0\r\n this.roleTypeList = [];\r\n this.selectedParameters.RoleTypeName = \"\";\r\n this.reviewKRAForm.get(\"roleTypeId\").setValue(null);\r\n //this.roleTypeList.push({ label: \"Select Role Type\", value: null })\r\n // this._appRoleTypeService\r\n // .getApplicableRoleTypeById(\r\n // this.financialYearId,\r\n // this.departmentId,\r\n // null,\r\n // this.reviewKRAForm.value.gradeId\r\n // )\r\n // .subscribe(\r\n // (res: any[]) => {\r\n // if (res) {\r\n // res.forEach((element: any) => {\r\n // this.roleTypeList.push({\r\n // label: element.RoleTypeName,\r\n // value: element.RoleTypeId\r\n // });\r\n // this.roleTypeId = element.RoleTypeId;\r\n // });\r\n // if (this.roleTypeId > 0) {\r\n // this.reviewKRAForm.get(\"roleTypeId\").setValue(this.roleTypeId);\r\n // this.showDefineKRAs(\"\");\r\n // }\r\n // }\r\n // },\r\n // (error: any) => {\r\n // this._snackBar.open('Failed to get Role Type details.', '', {\r\n // duration: 1000,\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // });\r\n // }\r\n // );\r\n this.roleTypeList.push({ label: \"Select Role Type\", value: null });\r\n if(this.reviewKRAForm.value.gradeId!==null&&this.departmentId!==null){\r\n this._appRoleTypeService\r\n .getRoleTypesByGrade(\r\n this.departmentId,\r\n this.reviewKRAForm.value.gradeId\r\n )\r\n .subscribe(\r\n (res: any[]) => {\r\n if (res) {\r\n res.forEach((element: any) => {\r\n this.roleTypeList.push({\r\n label: element.Name,\r\n value: element.Id\r\n });\r\n if(res.length === 1) {\r\n this.roleTypeId = element.Id;\r\n this.reviewKRAForm.get(\"roleTypeId\").setValue(this.roleTypeId);\r\n }\r\n });\r\n // if (this.roleTypeId > 0) {\r\n // this.reviewKRAForm.get(\"roleTypeId\").setValue(this.roleTypeId);\r\n // // this.showDefineKRAs(\"\");\r\n // this.getKrasByRoletypeFinancialYear()\r\n // }\r\n if (res.length > 0) {\r\n // this.reviewKRAForm.get(\"roleTypeId\").setValue(this.roleTypeId);\r\n // this.showDefineKRAs(\"\");\r\n this.getKrasByRoletypeFinancialYear()\r\n }\r\n else{\r\n this.dataSource = null;\r\n this.resetgraderoletypes();\r\n }\r\n }\r\n // this.spinner.hide();\r\n },\r\n (error: any) => {\r\n // this.spinner.hide();\r\n this._snackBar.open(\"Failed to get Role Type details.\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n );\r\n }\r\n }\r\n\r\n resetgraderoletypes(){\r\n this.roleTypeList = [];\r\n this.gradeList = [];\r\n this.roleTypeList.push({ label: \"Select Role Type\", value: null });\r\n this.gradeList.push({ label: \"Select Grade\", value: null });\r\n }\r\n\r\n\r\n\r\n EDITKRAS() {\r\n this.editKRA = this.addNewKRA = this.marksAsFinish = true;\r\n }\r\n\r\n markAsFinish() {\r\n const dialogRef = this.dialog.open(ConfirmationDialogComponent, {\r\n data: {\r\n message: 'Are you sure to Proceed',\r\n buttonText: {\r\n ok: 'Yes',\r\n cancel: 'No',\r\n },\r\n },\r\n });\r\n dialogRef.afterClosed().subscribe((confirmed: boolean) => {\r\n if (confirmed) {\r\n var creatingObj = new KraWorkFlow();\r\n creatingObj.financialYearId = this.financialYearId;\r\n creatingObj.departmentId = this.departmentId;\r\n creatingObj.roleTypeIds.push(this.reviewKRAForm.value.roleTypeId)\r\n this._kraDefinitionService.EditedKRASByHOD(creatingObj).subscribe((res) => {\r\n this.addNewKRA = false\r\n this.getKrasByRoletypeFinancialYear()\r\n this._snackBar.open(\"updated successfully.\", '', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n },\r\n (error => {\r\n this.addNewKRA = true\r\n this._snackBar.open(error.error.message, '', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }))\r\n }\r\n })\r\n // this._appRoleTypeService.updateRoleTypeStatus(creatingObj).subscribe(\r\n // (res: any[]) => {\r\n // if (res) {\r\n // this.markedAsFinish = true;\r\n // this.editKRA = this.addNewKRA = this.marksAsFinish = false;\r\n // } else {\r\n // this.markedAsFinish = false;\r\n // }\r\n // },\r\n // (error: any) => {\r\n // this._snackBar.open('Failed to update.', '', {\r\n // duration: 1000,\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // });\r\n // }\r\n // );\r\n }\r\n openAddKRA(e): void {\r\n if (this.reviewKRAForm.valid) {\r\n if (e == \"add\") {\r\n const dialogRef = this.dialog.open(AddKRAdlgComponent, {\r\n width: \"80vw\",\r\n data: {\r\n heading: \"Add KRA\",\r\n btntext: \"Add\",\r\n finYearId: this.financialYearId,\r\n depId: this.departmentId,\r\n gradeId: this.reviewKRAForm.value.gradeId,\r\n roleId: this.reviewKRAForm.value.roleTypeId,\r\n editMode: false,\r\n IsHOD: true,\r\n definitionDetailsId: null\r\n }\r\n });\r\n dialogRef.afterClosed().subscribe(\r\n (res: any) => {\r\n if (res == 13) {\r\n setTimeout(() => {\r\n this.addNewKRA = false;\r\n this.addedTR = true;\r\n this.marksAsFinish = true;\r\n this.approvedByHOD = this.acceptedbyCEO = false;\r\n // this.showDefineKRAs(\"add\");\r\n this._snackBar.open('KRA Added Successfully', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.getKrasByRoletypeFinancialYear()\r\n }, 10);\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open('Failed to get KRA details.' + error.error, 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n else {\r\n const dialogRef = this.dialog.open(AddKRAdlgComponent, {\r\n width: \"80vw\",\r\n data: {\r\n heading: \"Edit KRA\",\r\n btntext: \"Update\",\r\n finYearId: this.financialYearId,\r\n editMode: true,\r\n IsHOD: true,\r\n depId: this.departmentId,\r\n gradeId: this.reviewKRAForm.value.gradeId,\r\n roleId: this.reviewKRAForm.value.roleTypeId,\r\n definitionDetailsId: e.DefinitionId,\r\n definitionTransactionId : e.DefinitionTransactionId,\r\n definitionDetails:e\r\n }\r\n });\r\n dialogRef.afterClosed().subscribe((res: any) => {\r\n if (res == 13) {\r\n this.addNewKRA = false;\r\n this.addedTR = true;\r\n this.marksAsFinish = true;\r\n this.approvedByHOD = this.acceptedbyCEO = false;\r\n // this.showDefineKRAs(\"edit\");\r\n this._snackBar.open('KRA Updated Successfully', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.getKrasByRoletypeFinancialYear()\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n SetPreviousTargetValues(e): void {\r\n e.IsActive=e.IsActive===false?false:true;\r\n e.financialYearId = this.reviewKRAForm.value.financialYearId\r\n e.roleTypeId = this.reviewKRAForm.value.roleTypeId\r\n this._kraDefinitionService.AcceptedByOperationHead(e).subscribe(\r\n (res: any) => {\r\n if(res===\"KRA accepted successfully by operation head.\")\r\n this._snackBar.open(res, '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.getKrasByRoletypeFinancialYear();\r\n\r\n },\r\n (error: any) => {\r\n this._snackBar.open('Failed to update KRA Definition.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n\r\n UnSetPreviousTargetValues(e): void {\r\n e.IsActive=e.IsActive===false?false:true;\r\n this._kraDefinitionService.RejectedByOperationHead(e).subscribe(\r\n (res: any) => {\r\n this._snackBar.open(res, '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.getKrasByRoletypeFinancialYear();\r\n\r\n },\r\n (error: any) => {\r\n this._snackBar.open('Failed to update KRA Definition.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n\r\n SetPreviousMetricValues(e): void {\r\n this._kraDefinitionService.SetPreviousMetricValues(e).subscribe(\r\n (res: any) => {\r\n if (res.IsSuccessful == true) {\r\n this.showDefineKRAs(\"refresh\");\r\n this._snackBar.open('KRA Definition updated successfully.', '', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n } else {\r\n if (res.Message != \"\") {\r\n this._snackBar.open('Failed to update KRA Definition.' + res.Message, 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n } else {\r\n this._snackBar.open('Failed to update KRA Definition.' + res.Message, 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open('Failed to update KRA Definition.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n\r\n ADDKRAAgain(e): void {\r\n this._kraDefinitionService.AddKRAAgain(e).subscribe(\r\n (res: any) => {\r\n if (res.IsSuccessful == true) {\r\n this.showDefineKRAs(\"refresh\");\r\n this._snackBar.open('KRA Definition updated successfully.', '', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n } else {\r\n if (res.Message != \"\") {\r\n this._snackBar.open('Failed to update KRA Definition.' + res.Message, 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n } else {\r\n this._snackBar.open('Failed to update KRA Definition.' + res.Message, 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open('Failed to update KRA Definition.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n\r\n ContinueEditing() {\r\n var creatingObj = new ApplicableRoleType();\r\n creatingObj.financialYearId = this.financialYearId;\r\n creatingObj.departmentId = this.departmentId;\r\n creatingObj.gradeId = this.reviewKRAForm.value.gradeId;\r\n creatingObj.roleTypeId = this.reviewKRAForm.value.roleTypeId;\r\n creatingObj.status = \"EditedByHOD\";\r\n // this._appRoleTypeService.updateRoleTypeStatus(creatingObj).subscribe(\r\n // (res: any[]) => {\r\n // if (res) {\r\n // this.marksAsFinish = this.addNewKRA = this.editKRA = false;\r\n // this.showDefineKRAs(\"\");\r\n // // this.marksAsFinish = true;\r\n // // this.markedAsFinish = false;\r\n // // this.checkMarkAsFinished=false;\r\n // //this.editKra = (this.selectedfromyear == this.currentyear && this.currentyearthis.currentyear);\r\n // } else {\r\n // this.marksAsFinish = false;\r\n // this.markedAsFinish = true;\r\n // }\r\n // },\r\n // (error: any) => {\r\n // this._snackBar.open('Failed to update.', '', {\r\n // duration: 1000,\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // });\r\n // // this.messageService.add({\r\n // // severity: \"error\",\r\n // // summary: \"Error Message\",\r\n // // detail: \"Failed to update.\"\r\n // // });\r\n // }\r\n // );\r\n }\r\n openComments() {\r\n this.sidenav.toggle();\r\n this.getComments();\r\n }\r\n\r\n closeSideNav() {\r\n this.sidenav.close();\r\n }\r\n\r\n saveComment(): void {\r\n if (this.reviewKRAForm.valid && this.commentForm.valid) {\r\n let commentModel: CommentModel;\r\n commentModel = new CommentModel();\r\n\r\n commentModel.CommentText = this.commentForm.value.comment;\r\n commentModel.Username = this.username;\r\n commentModel.IsCEO = false;\r\n commentModel.FinancialYearId = this.financialYearId;\r\n commentModel.DepartmentId = this.departmentId;\r\n commentModel.GradeId = this.reviewKRAForm.value.gradeId;\r\n commentModel.RoleTypeId = this.reviewKRAForm.value.roleTypeId;\r\n\r\n this._kraCommentService\r\n .CreateComment(commentModel)\r\n .subscribe((createResponse: boolean) => {\r\n if (createResponse) {\r\n this.commentForm.get(\"comment\").setValue(\"\");\r\n this._snackBar.open('Comment created successfully', '', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.commentForm.value.comment = \"\";\r\n // this.getComments();\r\n }\r\n else {\r\n this._snackBar.open('Failed to create Comment.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n },\r\n error => {\r\n this._snackBar.open('Failed to Create comment.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n this.sidenav.close();\r\n }\r\n }\r\n\r\n getComments() {\r\n this._kraCommentService.GetComment(\r\n this.financialYearId,\r\n this.departmentId,\r\n this.reviewKRAForm.value.gradeId,\r\n this.reviewKRAForm.value.roleTypeId, false).subscribe(\r\n (res: any[]) => {\r\n if (res) {\r\n res.forEach((e) => {\r\n this.commentText = e.CommentText;\r\n });\r\n }\r\n else {\r\n this._snackBar.open('Failed to get comments', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open(error.error.text, 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n\r\n ApproveKRA() {\r\n const dialogRef = this.dialog.open(ConfirmationDialogComponent, {\r\n data: {\r\n message: 'Are you sure to Proceed',\r\n buttonText: {\r\n ok: 'Yes',\r\n cancel: 'No',\r\n },\r\n },\r\n });\r\n dialogRef.afterClosed().subscribe((confirmed: boolean) => {\r\n if (confirmed) {\r\n let approvalObj: KraWorkFlow\r\n approvalObj = new KraWorkFlow()\r\n approvalObj.financialYearId = this.financialYearId;\r\n approvalObj.departmentId = this.departmentId;\r\n approvalObj.roleTypeIds.push(this.reviewKRAForm.value.roleTypeId)\r\n this._kraDefinitionService.ApproveKRASBYHOD(approvalObj).subscribe((res) => {\r\n // this.approvedByHOD = true;\r\n this.addNewKRA = false\r\n this.getKrasByRoletypeFinancialYear()\r\n this._snackBar.open('Approved Successfully', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.clearData()\r\n\r\n }, (error) => {\r\n this.approvedByHOD = false;\r\n this._snackBar.open('Failed to update', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n })\r\n }\r\n })\r\n }\r\n\r\n AcceptOriginal() {\r\n var creatingObj = new ApplicableRoleType();\r\n creatingObj.financialYearId = this.financialYearId;\r\n creatingObj.departmentId = this.departmentId;\r\n creatingObj.gradeId = this.reviewKRAForm.value.gradeId;\r\n creatingObj.roleTypeId = this.reviewKRAForm.value.roleTypeId;\r\n creatingObj.status = \"AcceptOriginal\";\r\n // this._appRoleTypeService.updateRoleTypeStatus(creatingObj).subscribe(\r\n // (res: any[]) => {\r\n // if (res) {\r\n // this.showDefineKRAs(\"\");\r\n // this.approvedByHOD = true;\r\n // this.addNewKRA = this.editKRA = false;\r\n // } else {\r\n // this.markedAsFinish = false;\r\n // }\r\n // },\r\n // (error: any) => {\r\n // this._snackBar.open(\"Failed to update.\", '', {\r\n // duration: 1000,\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // });\r\n // // this.messageService.add({\r\n // // severity: \"error\",\r\n // // summary: \"Error Message\",\r\n // // detail: \"Failed to update.\"\r\n // // });\r\n // }\r\n // );\r\n }\r\n\r\n showDefineKRAs(mode: string) {\r\n if(this.reviewKRAForm.value.gradeId!==null&&this.departmentId!==null&&this.reviewKRAForm.value.roleTypeId!==null){\r\n this._definekraService\r\n .getKRADefinitionsById(\r\n this.financialYearId,\r\n this.departmentId,\r\n this.reviewKRAForm.value.gradeId,\r\n this.reviewKRAForm.value.roleTypeId,\r\n true\r\n )\r\n .subscribe(\r\n (res: DefineKRAData[]) => {\r\n if (res) {\r\n this.length = res.length;\r\n this.dataSource = new MatTableDataSource(res);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.reviewKradata = true;\r\n res.forEach((data: DefineKRAData) => {\r\n this.approvedByHOD = data.Status == \"ApprovedbyHOD\";\r\n if (data.Status == \"ApprovedByCEO\") {\r\n this.acceptedbyCEO = true;\r\n }\r\n this.markedAsFinish = data.Status == \"FinishedEditByHOD\";\r\n if (data.Status == \"EditedByHOD\") {\r\n this.EDITKRAS();\r\n this.marksAsFinish = true;\r\n }\r\n\r\n });\r\n // this.freezedKRA = true;\r\n // if(this.markedAsFinish) this.markasfinish=false;\r\n if (mode == \"edit\") {\r\n setTimeout(() => {\r\n this._snackBar.open('KRA Updated Successfully', '', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }, 10);\r\n } else if (mode == \"add\") {\r\n setTimeout(() => {\r\n this._snackBar.open('KRA Added Successfully', '', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }, 10);\r\n }\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open(error.error.text, 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n }\r\n\r\n onDeleteKRA(e) {\r\n const dialogRef = this.dialog.open(ConfirmationDialogComponent, {\r\n data: {\r\n message: 'Are you sure to delete KRA' ,\r\n buttonText: {\r\n ok: 'Yes',\r\n cancel: 'No',\r\n },\r\n },\r\n });\r\n dialogRef.afterClosed().subscribe((confirmed: boolean) => {\r\n if (confirmed) {\r\n let deleteReqObj = {\r\n definitionId: e.DefinitionId,\r\n definitionTransactionId: e.DefinitionTransactionId\r\n }\r\n\r\n this._kraDefinitionService.DeleteKRAByHOD(deleteReqObj).subscribe(\r\n (res: any) => {\r\n // this.showDefineKRAs(\"refresh\");\r\n this.marksAsFinish = true\r\n this.getKrasByRoletypeFinancialYear()\r\n this._snackBar.open(\"KRA Definition deleted successfully.\", '', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n },\r\n (error: any) => {\r\n this._snackBar.open('Failed to delete KRA Definition.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n })\r\n }\r\n\r\n\r\n dispTarget() {\r\n this.dispTargetDiv = true;\r\n setTimeout(() => {\r\n this.dispTargetDiv = false;\r\n }, 3000);\r\n }\r\n\r\n\r\n dispMetric() {\r\n this.dispMetricDiv = true;\r\n setTimeout(() => {\r\n this.dispMetricDiv = false;\r\n }, 3000);\r\n }\r\n\r\n dispDelKRA(details) {\r\n this.newList.forEach(element=>element.IsShowCountDetails=false);\r\n details.IsShowCountDetails=true;\r\n this.deletedKRAdiv = true;\r\n setTimeout(() => {\r\n this.deletedKRAdiv = false;\r\n }, 3000);\r\n }\r\n\r\n deleteKRA() {\r\n this.deletedTr = true;\r\n }\r\n\r\n\r\n DeleteKRA(definitionDetailId: number) {\r\n this._kraDefinitionService.DeleteByHODHardDelete(definitionDetailId).subscribe(\r\n (res: any) => {\r\n if (res == true) {\r\n // this.showDefineKRAs(\"refresh\");\r\n this.getKrasByRoletypeFinancialYear()\r\n this._snackBar.open('KRA Definition deleted successfully.', '', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n } else {\r\n this._snackBar.open('Failed to delete KRA Definition.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open('Failed to delete KRA Definition.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n\r\n dispAddedKRA() {\r\n this.dispAddedKRADiv = true;\r\n\r\n setTimeout(() => {\r\n this.dispAddedKRADiv = false;\r\n }, 3000);\r\n }\r\n\r\n getKrasByRoletypeFinancialYear(){\r\n if(this.isHODLoggedIn){\r\n this.approvedByHOD = false\r\n this.acceptedbyCEO = false\r\n this.length=0\r\n this.HODDefinitions=[];\r\n this.spinner.show();\r\n this._kraDefinitionService.getKrasByFinancialYearIdAndRoleTypeId(this.financialYearId,this.reviewKRAForm.value.roleTypeId).subscribe(\r\n (res: DefineKRAData[]) => {\r\n this.spinner.hide();\r\n this.addNewKRA = true;\r\n if (res) {\r\n // this.length = res.length;\r\n // this.dataSource = new MatTableDataSource(res);\r\n // this.dataSource.paginator = this.paginator;\r\n // this.dataSource.sort = this.sort;\r\n res.forEach((data: DefineKRAData) => {\r\n // this.roletypeStatus = data.Status;\r\n if(data.StatusId != 0){\r\n this.HODDefinitions.push(data)\r\n }\r\n if(data.IsUpdatedByHOD && data.StatusId == 1){\r\n this.marksAsFinish = true\r\n }\r\n if (data.Status == \"ApprovedByCEO\") {\r\n this.acceptedbyCEO = true;\r\n // this.approvedKRA = true;\r\n }\r\n if (data.StatusId > 1) {\r\n this.approvedByHOD = true;\r\n this.addNewKRA=false\r\n }\r\n if (data.StatusId == 4) {\r\n this.sentToHR=true\r\n }\r\n });\r\n this.length = this.HODDefinitions.length;\r\n if(this.length == 0){\r\n this.addNewKRA = false\r\n }\r\n this.dataSource = new MatTableDataSource(this.HODDefinitions);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n else{\r\n this.dataSource = null;\r\n }\r\n\r\n },\r\n (error: any) => {\r\n this.spinner.hide();\r\n this.length=0;\r\n if(error.error.text===\"KRAs not found from Definition table!\"){\r\n this.addNewKRA = true;\r\n this.dataSource = null;\r\n }\r\n // else if (\r\n // ((error.error == \"No KRAs defined!\" || error.error.text == \"No KRAs defined!\") &&\r\n // (this.selectedfromyear == this.currentyear &&\r\n // this.currentyear < this.selectedtoyear)) ||\r\n // this.selectedfromyear > this.currentyear\r\n // ) {\r\n // this.addNewKRA = true;\r\n // this.dataSource = null;\r\n // }\r\n else if ((error.error == \"No KRAs defined!\" || error.error == \"No records found!\"\r\n || error.error ==\"No KRAs found!\")||\r\n (error.error.text == \"No KRAs defined!\" || error.error.text == \"No records found!\"\r\n || error.error.text ==\"No KRAs found!\")) {\r\n this._snackBar.open(\"No Records Found!\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n this.dataSource = null\r\n } else {\r\n this.dataSource=null\r\n this._snackBar.open(\r\n \"Failed to get Define KRA details.\" + error.error,\r\n \"x\",\r\n {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n }\r\n );\r\n }\r\n }\r\n );\r\n } else{\r\n this._kraDefinitionService.getOperationHeadDefinitions(this.financialYearId,this.reviewKRAForm.value.roleTypeId).subscribe(\r\n (res: DefineKRAData[]) => {\r\n if (res != null) {\r\n this.newList=res;\r\n\r\n const uniquList=this.filterDuplicates(this.newList,'DefinitionId');\r\n this.length = res.length;\r\n this.dataSource = new MatTableDataSource(res);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n // res.forEach((data: DefineKRAData) => {\r\n // // this.roletypeStatus = data.Status;\r\n // if (data.Status == \"ApprovedByCEO\") {\r\n // this.acceptedbyCEO = true;\r\n // // this.approvedKRA = true;\r\n // }\r\n // if (data.Status == \"ApprovedbyHOD\") {\r\n // this.approvedByHOD = true;\r\n // // this.approvedKRA = true;\r\n // }\r\n // });\r\n }\r\n else{\r\n this.dataSource = null;\r\n }\r\n this.addNewKRA = true;\r\n },\r\n (error: any) => {\r\n this.length=0;\r\n if(error.error.text===\"KRAs not found from Definition table!\"){\r\n this.addNewKRA = true;\r\n this.dataSource = null;\r\n }\r\n // else if (\r\n // ((error.error == \"No KRAs defined!\" || error.error.text == \"No KRAs defined!\") &&\r\n // (this.selectedfromyear == this.currentyear &&\r\n // this.currentyear < this.selectedtoyear)) ||\r\n // this.selectedfromyear > this.currentyear\r\n // ) {\r\n // this.addNewKRA = true;\r\n // this.dataSource = null;\r\n // }\r\n else if ((error.error == \"No KRAs defined!\" || error.error == \"No records found!\"\r\n || error.error ==\"No KRAs found!\")||\r\n (error.error.text == \"No KRAs defined!\" || error.error.text == \"No records found!\"\r\n || error.error.text ==\"No KRAs found!\")) {\r\n this._snackBar.open(\"No Records Found!\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n this.dataSource = null\r\n } else {\r\n this.dataSource=null\r\n this._snackBar.open(\r\n \"Failed to get Define KRA details.\" + error.error,\r\n \"x\",\r\n {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n }\r\n );\r\n }\r\n }\r\n );\r\n }\r\n }\r\n\r\n findDifferenceValues(item1: any, item2: any): number {\r\n let differenceCount:number=0;\r\n if(item1.MeasurementTypeId!==item2.MeasurementTypeId)\r\n differenceCount++;\r\n if(item1.Metric!==item2.Metric)\r\n differenceCount++;\r\n if(item1.OperatorId!==item2.OperatorId)\r\n differenceCount++;\r\n if(item1.TargetPeriodId!==item2.TargetPeriodId)\r\n differenceCount++;\r\n if(item1.TargetValue!==item2.TargetValue)\r\n differenceCount++;\r\n\r\n return differenceCount;\r\n }\r\n\r\n filterDuplicates(list,key){\r\n const reqObj={IsShowItem:true,OldMetric:''}\r\n list.forEach((item1,index1,arrayList)=>{\r\n Object.assign(item1,reqObj);\r\n list.forEach((item2,index2,arrayList)=>{\r\n if(index1!==index2){\r\n if(item1.DefinitionId!==null&&item2.DefinitionId!==null&&\r\n item1.DefinitionId===item2.DefinitionId){\r\n if(item1.DefinitionTransactionId===0){\r\n item1.IsShowItem=false;\r\n }else{\r\n if(item1.IsAccepted===false){\r\n item1.TargetValue=item2.TargetValue;\r\n item1.MeasurementType=item2.MeasurementType;\r\n item1.Target=item2.Target;\r\n item1.Metric=item2.Metric;\r\n }else{\r\n item1.OldMetric=item2.OldMetric;\r\n item1.OldTargetValue=item2.TargetValue;\r\n item1.OldMeasurementType=item2.MeasurementType;\r\n item1.OldOperatorValue = item2.OperatorId;\r\n item1.OldTargetPeriod = item2.TargetPeriodId;\r\n item1.OldTarget = item2.Target;\r\n item1.OldCount=this.findDifferenceValues(item1,item2);\r\n }\r\n\r\n }\r\n if(item2.DefinitionTransactionId===0){\r\n item2.IsShowItem=false;\r\n }else{\r\n if(item2.IsAccepted===false){\r\n item2.TargetValue=item1.TargetValue;\r\n item2.MeasurementType=item1.MeasurementType;\r\n item2.Target=item1.Target;\r\n item2.Metric=item1.Metric;\r\n }else{\r\n item2.OldMetric=item1.Metric;\r\n item2.OldTargetValue=item1.TargetValue;\r\n item2.OldMeasurementType=item1.MeasurementType;\r\n item2.OldOperatorValue = item1.OperatorId;\r\n item2.OldTargetPeriod = item1.TargetPeriodId;\r\n item2.OldTarget = item1.Target;\r\n item2.OldCount = this.findDifferenceValues(item2,item1);\r\n }\r\n }\r\n }\r\n }\r\n })\r\n })\r\n return list;\r\n }\r\n\r\n clearData(){\r\n this.addNewKRA=false\r\n this.editKRA=false\r\n this.marksAsFinish=false\r\n }\r\n sendToHR(){\r\n const dialogRef = this.dialog.open(ConfirmationDialogComponent, {\r\n data: {\r\n message: 'Are you sure to Proceed',\r\n buttonText: {\r\n ok: 'Yes',\r\n cancel: 'No',\r\n },\r\n },\r\n });\r\n dialogRef.afterClosed().subscribe((confirmed: boolean) => {\r\n if (confirmed) {\r\n let approvalObj: KraWorkFlow\r\n approvalObj = new KraWorkFlow()\r\n approvalObj.financialYearId = this.financialYearId;\r\n approvalObj.departmentId = this.departmentId;\r\n approvalObj.roleTypeIds.push(this.reviewKRAForm.value.roleTypeId)\r\n this._kraDefinitionService.SendToOperationHead(approvalObj).subscribe((res) => {\r\n this.sentToHR = true\r\n this._snackBar.open(\"Notification Sent successfully.\", '', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n },\r\n (error => {\r\n this._snackBar.open(error.error.message, '', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }))\r\n }\r\n })\r\n }\r\n getRoleTypes(){\r\n this.approvedByHOD = false\r\n this.sentToHR=false\r\n this.length=0\r\n this.roleTypeList = [];\r\n this.selectedParameters.RoleTypeName = \"\";\r\n this.reviewKRAForm.get(\"roleTypeId\").setValue(null);\r\n this.roleTypeList.push({ label: \"Select Role Type\", value: null });\r\n if(this.departmentId!==null){\r\n this._appRoleTypeService\r\n .getRoleTypesByFinancialYearAndDepartment(\r\n this.reviewKRAForm.value.financialYearId,this.departmentId\r\n )\r\n .subscribe(\r\n (res: any[]) => {\r\n if (res) {\r\n res.forEach((element: any) => {\r\n this.roleTypeList.push({\r\n label: element.Name,\r\n value: element.Id\r\n });\r\n if(res.length === 1) {\r\n this.roleTypeId = element.Id;\r\n this.reviewKRAForm.get(\"roleTypeId\").setValue(this.roleTypeId);\r\n this.getKrasByRoletypeFinancialYear()\r\n }\r\n });\r\n // if (this.roleTypeId > 0) {\r\n // this.reviewKRAForm.get(\"roleTypeId\").setValue(this.roleTypeId);\r\n // // this.showDefineKRAs(\"\");\r\n // this.getKrasByRoletypeFinancialYear()\r\n // }\r\n if (res.length > 0) {\r\n // this.reviewKRAForm.get(\"roleTypeId\").setValue(this.roleTypeId);\r\n // this.showDefineKRAs(\"\");\r\n // this.getKrasByRoletypeFinancialYear()\r\n }\r\n else{\r\n this.dataSource = null;\r\n this.resetgraderoletypes();\r\n }\r\n }\r\n // this.spinner.hide();\r\n },\r\n (error: any) => {\r\n // this.spinner.hide();\r\n this._snackBar.open(\"Failed to get Role Type details.\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n );\r\n }\r\n }\r\n\r\n getGradesForSelectedRole() {\r\n this.gradeNames = \"\";\r\n this._appRoleTypeService\r\n .getGradesForSelectedRole(this.reviewKRAForm.value.financialYearId, this.departmentId, this.reviewKRAForm.value.roleTypeId)\r\n .subscribe(\r\n (res: any[]) => {\r\n if (res.length > 0) {\r\n this.gradeNames = res[0].GradeName\r\n } else {\r\n this.gradeNames = \"\";\r\n }\r\n },\r\n (error: any) => {\r\n this.gradeNames = \"\";\r\n }\r\n );\r\n }\r\n\r\n onRoleTypeChange(){\r\n this.getGradesForSelectedRole();\r\n this.getKrasByRoletypeFinancialYear();\r\n }\r\n\r\n}\r\n","\r\n \r\n
\r\n \r\n

Comments All

\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 {{commentText}}\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Type a new comment\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 Financial Year\r\n \r\n \r\n {{fin.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Select Department {{selectedParameters.DepartmentName}}\r\n \r\n \r\n {{dept.label}}\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n Select Role Type {{selectedParameters.RoleTypeName}}\r\n \r\n \r\n {{role.label}}\r\n \r\n \r\n \r\n

Applicable Grades : {{gradeNames}}

\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 \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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
ASPECT\r\n
\r\n
\r\n {{element.DeleteCount}}\r\n This KRA is deleted
\r\n
\r\n
\r\n
\r\n {{element.CreateCount}}\r\n This KRA was added
\r\n
\r\n
\r\n \r\n
{{element.AspectName}}
{{element.Date}}
\r\n
\r\n
METRICS \r\n {{element.Metric}}\r\n Previous metric was {{element.OldMetric}}
\r\n 0\" (mouseover)=\"dispMetric()\" class=\"orangecircle\">{{element.ModifiedMetricCount}}\r\n \r\n
\r\n
TARGET \r\n {{element.Target}}\r\n \r\n \r\n \r\n 0 && element.DefinitionId!==null && element.Status==='SentToOpHead' && element.IsAccepted===null\" class=\"orangecircle\" (mouseover)=\"dispDelKRA(element)\">{{element.OldCount}}\r\n 1\r\n 1\r\n \r\n \r\n Previous metric was {{element.OldMetric}}\r\n Previous target value was {{element.OldTargetValue}} \r\n Previous target value was {{element.OldMeasurementType}}\r\n Previous operator value was {{element.OldTarget.split(' ')[0]}} \r\n Previous target period value was {{element.OldTarget.split(' ').length>3?element.OldTarget.split(' ')[2]+''+element.OldTarget.split(' ')[3]:element.OldTarget.split(' ')[2]}}\r\n Newly added KRA by HOD \r\n Deleted KRA by HOD \r\n \r\n \r\n \r\n Edit \r\n \r\n edit\r\n Delete \r\n \r\n delete\r\n
\r\n \r\n
\r\n
0&&isHODLoggedIn\" >\r\n
\r\n \r\n
\r\n
\r\n \r\n
0\" class=\"row mt-5 mb-5\">\r\n
\r\n \r\n       or  \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n

Marked as finished

\r\n
\r\n
\r\n
\r\n
\r\n \r\n

Awaiting to be sent to Head HR for acceptance

\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 \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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
ASPECT {{element.AspectName}} METRICS {{element.Metric}} TARGET {{element.Target}} \r\n 5\r\n \r\n Edit\r\n \r\n Edit\r\n \r\n Delete\r\n \r\n Delete\r\n
\r\n
\r\n
0\">\r\n
\r\n
\r\n
\r\n
\r\n \r\n

Accepted KRA's

\r\n
\r\n
\r\n
\r\n
\r\n \r\n

Awaiting to be sent to Head of HR

\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 \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n

Loading ...

\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MasterDataService } from 'src/app/core/services/masterdata.service';\r\nimport { DepartmentDetails } from \"src/app/modules/master-layout/models/role.model\";\r\nimport { ApplicableRoleTypeService } from '../../services/applicableroletype.service';\r\nimport { themeconfig } from \"../../../../../themeconfig\";\r\nimport {KraDefinitionService} from \"src/app/modules/kra/services/kradefinition.service\"\r\n\r\ninterface SelectItem {\r\n value: number;\r\n label: string;\r\n}\r\n\r\nclass GeneratePdf{\r\n employeeCode : string;\r\n financialYearId : number;\r\n departmentId : number;\r\n roleId : number;\r\n}\r\n\r\n@Component({\r\n selector: 'app-view-kra',\r\n templateUrl: './view-kra.component.html',\r\n styleUrls: ['./view-kra.component.scss']\r\n})\r\nexport class ViewKraComponent implements OnInit {\r\n themeappeareance = themeconfig.formfieldappearances;\r\n viewKRAForm: FormGroup;\r\n public financialYearList: SelectItem[] = [];\r\n public departmentList: SelectItem[] = [];\r\n public gradeList: SelectItem[] = [];\r\n public roleTypeList: SelectItem[] = [];\r\n public financialYearId: number = 0;\r\n public gradeId: number = 0;\r\n public roleTypeId: number = 0;\r\n public departmentId: number = 0;\r\n selectedfromyear: number;\r\n selectedtoyear: number;\r\n GeneratePDFRequestObj = new GeneratePdf();\r\n\r\n constructor( private _masterDataService: MasterDataService,private _snackBar: MatSnackBar, private _appRoleTypeService: ApplicableRoleTypeService,private fb: FormBuilder, private _kraDefinitionServie: KraDefinitionService) { }\r\n\r\n ngOnInit(): void {\r\n this.viewKRAForm = this.fb.group({\r\n financialYearId: ['',[Validators.required]],\r\n departmentId: [''],\r\n gradeId: [''],\r\n roleTypeId: [''],\r\n EmployeeCode: ['',[Validators.pattern('[aAnNcC][0-9]*'), Validators.minLength(5), Validators.maxLength(5)]]\r\n });\r\n this.financialYearList = [];\r\n this.financialYearList.push({\r\n label: \"Select Financial Year\",\r\n value: null\r\n });\r\n this.getFinancialYears();\r\n this.getDepartments();\r\n }\r\n\r\n getFinancialYears(): void {\r\n this._masterDataService.GetFinancialYears().subscribe(\r\n (yearsdata: any[]) => {\r\n yearsdata.forEach((e: any) => {\r\n this.financialYearList.push({\r\n label: e.FinancialYearName,\r\n value: e.Id\r\n });\r\n });\r\n },\r\n error => {\r\n this._snackBar.open(\"Failed to get Financial Year List\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n );\r\n }\r\n\r\n getDepartments(): void {\r\n this._masterDataService.GetDepartmentsMasterData().subscribe(\r\n (res: DepartmentDetails[]) => {\r\n this.departmentList = [];\r\n this.departmentList.push({ label: \"Select Department\", value: null });\r\n res.forEach((e: any) => {\r\n this.departmentList.push({\r\n label: e.Description,\r\n value: e.DepartmentId\r\n });\r\n });\r\n },\r\n error => {\r\n this._snackBar.open(\"Failed to get Department Details\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n );\r\n }\r\n\r\n onchange(event) {\r\n this.financialYearId = event.value;\r\n this.viewKRAForm.get(\"departmentId\").setValue(null);\r\n this.viewKRAForm.get(\"gradeId\").setValue(null);\r\n this.viewKRAForm.get(\"roleTypeId\").setValue(null);\r\n }\r\n\r\n ondepartmentchange(event) {\r\n this.departmentId = event.value;\r\n this.viewKRAForm.get(\"gradeId\").setValue(null);\r\n this.viewKRAForm.get(\"roleTypeId\").setValue(null);\r\n this.getApplicableGradeRoleTypes();\r\n }\r\n\r\n getApplicableGradeRoleTypes() {\r\n this.resetgraderoletypes();\r\n this.gradeList = [];\r\n this._appRoleTypeService\r\n .getGradesByDepartment( \r\n this.departmentId, \r\n )\r\n .subscribe(\r\n (res: any[]) => {\r\n if (res) {\r\n this.gradeList.push({ label: \"Select Grade\", value: null });\r\n res.forEach((element: any) => {\r\n this.gradeList.push({\r\n label: element.Name,\r\n value: element.Id\r\n });\r\n if (res.length === 1){\r\n this.gradeId = element.Id;\r\n this.viewKRAForm.get(\"gradeId\").setValue(this.gradeId);\r\n }\r\n });\r\n if(res.length>0){\r\n this.getApplicableGradeRoleTypesByGrade();\r\n }\r\n } else {\r\n this.resetgraderoletypes();\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open(\"Failed to get Role Type details.\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n );\r\n }\r\n\r\n getApplicableGradeRoleTypesByGrade() {\r\n this.roleTypeList = [];\r\n this.roleTypeList.push({ label: \"Select Role Type\", value: null });\r\n this._appRoleTypeService\r\n .getRoleTypesByGrade( \r\n this.departmentId, \r\n this.viewKRAForm.value.gradeId\r\n )\r\n .subscribe(\r\n (res: any[]) => {\r\n if (res) {\r\n res.forEach((element: any) => {\r\n this.roleTypeList.push({\r\n label: element.Name,\r\n value: element.Id\r\n });\r\n if (res.length === 1){\r\n this.roleTypeId = element.Id;\r\n this.viewKRAForm.get(\"roleTypeId\").setValue(this.roleTypeId);\r\n }\r\n });\r\n } else {\r\n this.resetgraderoletypes(); \r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open(\"Failed to get Role Type details.\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n );\r\n }\r\n\r\n resetgraderoletypes() {\r\n this.roleTypeList = [];\r\n this.gradeList = [];\r\n this.roleTypeList.push({ label: \"Select Role Type\", value: null });\r\n this.gradeList.push({ label: \"Select Grade\", value: null });\r\n }\r\n\r\n GeneratePDF(){\r\n this.GeneratePDFRequestObj.employeeCode = this.viewKRAForm.value.EmployeeCode\r\n if(this.GeneratePDFRequestObj.employeeCode == null){\r\n this.GeneratePDFRequestObj.employeeCode=\"\"\r\n }\r\n this.GeneratePDFRequestObj.financialYearId = this.viewKRAForm.value.financialYearId\r\n this.GeneratePDFRequestObj.departmentId = this.viewKRAForm.value.departmentId\r\n this.GeneratePDFRequestObj.roleId = this.viewKRAForm.value.roleTypeId\r\n if (this.viewKRAForm.valid) {\r\n this._kraDefinitionServie.GeneratePDF(this.GeneratePDFRequestObj.employeeCode, this.GeneratePDFRequestObj.financialYearId, this.GeneratePDFRequestObj.departmentId, this.GeneratePDFRequestObj.roleId).subscribe((res) => {\r\n this._snackBar.open(\"PDF Generated Successfully\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n this.clear()\r\n }, (error) => {\r\n this._snackBar.open(\"Failed Generating PDF\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n })\r\n this.clear()\r\n })\r\n }\r\n }\r\n clear(){\r\n this.viewKRAForm.reset()\r\n this.GeneratePDFRequestObj.employeeCode=\"\"\r\n this.GeneratePDFRequestObj.departmentId=0\r\n this.GeneratePDFRequestObj.financialYearId=0\r\n this.GeneratePDFRequestObj.roleId=0\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n \r\n Financial Year\r\n \r\n \r\n {{fin.label}}\r\n \r\n \r\n Financial Year is Required\r\n \r\n \r\n
\r\n
\r\n \r\n Select Department \r\n \r\n \r\n {{dept.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Select Grade \r\n \r\n \r\n {{grade.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Select Role Type\r\n \r\n \r\n {{role.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Employee Code \r\n \r\n Emp Code should be in N#### Format & minlength is 5 chars\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: 'input[numbersOnly]'\r\n})\r\nexport class NumberDirective {\r\n\r\n constructor(private _el: ElementRef) { }\r\n\r\n @HostListener('input', ['$event']) onInputChange(event) {\r\n const initalValue = this._el.nativeElement.value;\r\n this._el.nativeElement.value = initalValue.replace(/[^0-9]*/g, '');\r\n if ( initalValue !== this._el.nativeElement.value) {\r\n event.stopPropagation();\r\n }\r\n }\r\n\r\n}","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { KraComponent } from './components/kra/kra.component';\r\nimport { ApplicableroletypesComponent } from './components/applicableroletypes/applicableroletypes.component';\r\nimport { KraMeasurementTypeComponent } from './components/kra.measurement-type/kra.measurement-type.component';\r\nimport { AspectmasterComponent } from './components/aspectmaster/aspectmaster.component';\r\nimport { KraScaleMasterComponent } from './components/kra-scale-master/kra-scale-master.component';\r\nimport { DefineKRAComponent } from './components/define-kra/define-kra.component';\r\nimport { ReviewKRAComponent } from './components/review-kra/review-kra.component';\r\nimport { KraStatusComponent } from './components/kra-status/kra-status.component';\r\nimport { CeostatusComponent } from './components/ceostatus/ceostatus.component';\r\nimport { ViewKraComponent } from './components/view-kra/view-kra.component';\r\nimport { DownloadKraComponent } from './components/download-kra/download-kra.component';\r\n\r\n\r\nconst routes: Routes = [\r\n {\r\n\t\tpath: '', component: KraComponent,\r\n children: [ \r\n { path: \"applicableroletypes\", component: ApplicableroletypesComponent, data: { title: 'Applicable Role Types' }},\r\n { path: \"krameasurementtype\", component: KraMeasurementTypeComponent, data: { title: 'Measurement Types' }},\r\n { path: \"aspectmaster\", component: AspectmasterComponent, data: { title: 'Aspect' }},\r\n { path: \"scaleMaster\", component: KraScaleMasterComponent, data: { title: 'Scales' }},\r\n { path: \"kradefinitions\", component: DefineKRAComponent, data: { title: 'Define Key Result Areas' }},\r\n { path: \"reviewkra\", component: ReviewKRAComponent, data: { title: 'Review Key Result Areas' }},\r\n { path: \"ceostatus\", component: CeostatusComponent, data: { title: 'Status' }},\r\n { path: \"status\", component: KraStatusComponent, data: { title: 'Status' }},\r\n { path: 'krareview/:financialYearId/:departmentId', component: ReviewKRAComponent, data: { title: 'Review Key Result Areas' }},\r\n { path: 'kradefine/:financialYearId/:departmentId', component: DefineKRAComponent, data: { title: 'Define Key Result Areas' }},\r\n { path: \"viewkra\", component: ViewKraComponent, data: { title: 'Generate PDF' }},\r\n { path: \"downloadkra\", component: DownloadKraComponent, data: { title: 'Download KRA' }},\r\n ] \r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class KraRoutingModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\nimport { KraRoutingModule } from './kra-routing.module';\r\nimport { KraComponent } from './components/kra/kra.component';\r\nimport { ApplicableroletypesComponent } from './components/applicableroletypes/applicableroletypes.component';\r\nimport { KraMeasurementTypeComponent } from './components/kra.measurement-type/kra.measurement-type.component';\r\nimport { AllAngularMaterialModule } from '../plugins/all-angular-material/all-angular-material.module';\r\nimport { AspectmasterComponent } from './components/aspectmaster/aspectmaster.component';\r\nimport { KraScaleMasterComponent } from './components/kra-scale-master/kra-scale-master.component';\r\nimport { DefineKRAComponent } from './components/define-kra/define-kra.component';\r\nimport { ReviewKRAComponent } from './components/review-kra/review-kra.component';\r\nimport { AngularEditorModule } from '@kolkov/angular-editor';\r\nimport { AddKRAdlgComponent } from './components/add-kradlg/add-kradlg.component';\r\nimport { ImportKraDlgComponent } from './components/import-kra-dlg/import-kra-dlg.component';\r\nimport { KraStatusComponent } from './components/kra-status/kra-status.component';\r\nimport { CeostatusComponent } from './components/ceostatus/ceostatus.component';\r\nimport { KraCommentComponent } from './components/kra-comment/kra-comment.component';\r\nimport { CloneKraDlgComponent } from './components/clone-kra-dlg/clone-kra-dlg.component';\r\nimport { NgxSpinnerModule } from 'ngx-spinner';\r\nimport { ViewKraComponent } from './components/view-kra/view-kra.component';\r\nimport { NumberDirective } from './directives/app-numbers-only.directives';\r\nimport { DownloadKraComponent } from './components/download-kra/download-kra.component';\r\n\r\n@NgModule({\r\n declarations: [KraComponent,ApplicableroletypesComponent,KraMeasurementTypeComponent,AspectmasterComponent\r\n ,KraScaleMasterComponent,DefineKRAComponent,AddKRAdlgComponent,ImportKraDlgComponent,ReviewKRAComponent,KraStatusComponent\r\n ,CeostatusComponent, KraCommentComponent, CloneKraDlgComponent, ViewKraComponent, NumberDirective, DownloadKraComponent],\r\n imports: [\r\n CommonModule,\r\n AllAngularMaterialModule,\r\n KraRoutingModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n AngularEditorModule,\r\n NgxSpinnerModule\r\n ]\r\n})\r\nexport class KraModule { }\r\n","\r\nexport class CommentModel {\r\n CommentID: number;\r\n CommentText: string;\r\n FinancialYearId: number;\r\n DepartmentId: number;\r\n ApplicableRoleTypeId: number;\r\n RoleTypeId: number;\r\n GradeId: number;\r\n Username: string;\r\n IsCEO: boolean;\r\n CreatedBy: string;\r\n}","export class KraWorkFlow {\r\n financialYearId:number;\r\n departmentId:number;\r\n roleTypeIds:number[]=[];\r\n currentUser:string\r\n}\r\n","export class KRAMeasurementTypeData {\r\n Id: number;\r\n MeasurementType: string;\r\n}","export class ApplicableRoleType {\r\n financialYearId: number;\r\n departmentId: number;\r\n gradeRoleTypeId: number;\r\n //gradeRoleTypeId:number[];\r\n statusId: number;\r\n applicableRoleTypeId: number;\r\n gradeId: number;\r\n roleTypeId: number;\r\n status: string;\r\n}\r\n\r\nexport class ApplicableRoleTypeData {\r\n ApplicableRoleTypeId: number;\r\n RoleTypeId: number;\r\n GradeRoleTypeId: number;\r\n FinancialYearId: number;\r\n DepartmentId: number;\r\n FinancialYearName: string;\r\n RoleTypeName: string;\r\n Grade: string;\r\n DepartmentName: string;\r\n GradeId: number;\r\n}\r\n","//import { GenericType } from 'src/app/models/dropdowntype.model';\r\n\r\nexport class KRADefinition\r\n{\r\n KRAGroupId:number;\r\n KRAAspectId:number;\r\n KRAAspectName:string;\r\n StatusId:number;\r\n FinancialYearId:number;\r\n RoleName:string; \r\n lstMetricAndTarget:MetricAndTarget[]=[]; \r\n}\r\n\r\nexport class MetricAndTarget {\r\n KRADefinitionId :number;\r\n KRAAspectId :number;\r\n Metric:string;\r\n KRAOperatorId:number;\r\n KRAMeasurementTypeId:number;\r\n KRAScaleMasterId?:number;\r\n KRAScaleDescription:string;\r\n KRATargetValue:number;\r\n KRATargetValueAsDate?:string;\r\n KRATargetText? :string;\r\n KRATargetPeriodId :number;\r\n Operator:string;\r\n KRAMeasurementType:string;\r\n ScaleLevel:string;\r\n KRATargetPeriod:string;\r\n TargetDescription:string;\r\n}\r\n\r\nexport class KRAWorkFlowData {\r\n FinancialYearID :number;\r\n FromEmployeeID :number;\r\n DepartmentID :number;\r\n //KRAGroupIDs:GenericType[]=[]; commented on 201120\r\n KRAGroupIDs: Array \r\n Comments:string;\r\n StatusId:number;\r\n}\r\nexport class KRASubmittedGroup {\r\n FinancialYearId :number;\r\n fromEmployeeId :number; \r\n KRAGroupIds:number[]=[];\r\n RoleName:string;\r\n}\r\n\r\nexport class DefinitionModel {\r\n definitionId : string;\r\n financialYearId:number;\r\n // gradeRoleTypeId : number;\r\n roleTypeId:number;\r\n scaleId : number;\r\n aspectId: number;\r\n metric: string;\r\n operatorId: number;\r\n measurementTypeId: number;\r\n targetValue: string;\r\n targetPeriodId: number;\r\n isActive: boolean;\r\n currentUser:string; \r\n createdBy:string;\r\n modifiedBy:string; \r\n definitionTransactionId:number;\r\n}\r\n","export class KRAScaleData\r\n{\r\n ScaleID :number;\r\n ScaleLevel?:string;\r\n MinimumScale:number;\r\n MaximumScale?:number;\r\n}\r\n\r\nexport class KRAScaleMaster extends KRAScaleData \r\n{\r\n ScaleTitle: string;\r\n ScaleDetails: KRAScaleDetails[];\r\n}\r\n\r\nexport class KRAScaleDetails \r\n{\r\n ScaleDetailId?: number;\r\n ScaleValue?: number;\r\n ScaleDescription?: string;\r\n}","import { Injectable } from '@angular/core';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ApplicableRoleType, ApplicableRoleTypeData } from '../models/kraapplicableRoleType.model';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport * as servicePath from '../../../core/service-paths'\r\n//'src/app/core/service-paths';\r\nimport { Observable } from 'rxjs/Observable';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ApplicableRoleTypeService {\r\n\r\n _serviceUrl = environment.KRAMicroService;\r\n _adminServiceUrl = environment.AdminMicroService;\r\n editMode = false;\r\n editObj = new BehaviorSubject(new ApplicableRoleTypeData());\r\n applicableRoleTypeData = new BehaviorSubject([]);\r\n resources = servicePath.API.ApplicableRoleType;\r\n constructor(private httpClient : HttpClient ) { }\r\n\r\npublic getApplicableRoleType(financialYearId: number, departmentId: number, gradeRoleTypeId: number): Observable> {\r\n let url = this._serviceUrl + this.resources.getApplicableRoleType + financialYearId + \"&DepartmentId=\" + departmentId;\r\n + \"&GradeRoleTypeId=\" + gradeRoleTypeId;\r\n return this.httpClient.get>(url);\r\n}\r\npublic getApplicableRoleTypes(financialYearId: number): Observable> {\r\n let url = this._serviceUrl + this.resources.getApplicableRoleType+financialYearId;\r\n return this.httpClient.get>(url);\r\n}\r\n\r\n public addKRAApplicableRoleType(applicableRoleTypeData: ApplicableRoleType) {\r\n let url = this._serviceUrl + this.resources.addKRAApplicableRoleType;\r\n return this.httpClient.post(url, applicableRoleTypeData);\r\n }\r\n\r\n public editApplicableRoleType(applicableRoleTypeData: ApplicableRoleType) {\r\n let url = this._serviceUrl + this.resources.update;\r\n return this.httpClient.post(url, applicableRoleTypeData);\r\n } \r\n\r\n public updateRoleTypeStatus(applicableRoleTypeData: ApplicableRoleType) {\r\n let url = this._serviceUrl + this.resources.updateRoleTypeStatus;\r\n return this.httpClient.post(url,applicableRoleTypeData);\r\n } \r\n\r\n public DeleteApplicableRoleType(applicableRoleTypeRoleId: number) {\r\n let url = this._serviceUrl + this.resources.delete + applicableRoleTypeRoleId;\r\n return this.httpClient.post(url, null);\r\n }\r\n\r\n public getApplicableRoleTypeById(financialYearId: number, departmentId: number, gradeRoleTypeId: number, gradeId: number): Observable> {\r\n let url = this._serviceUrl + this.resources.getApplicableRoleType + financialYearId ;\r\n if(departmentId>0) url=url+ \"&DepartmentId=\" + departmentId;\r\n if(gradeRoleTypeId>0)url=url+ \"&GradeRoleTypeId=\" + gradeRoleTypeId;\r\n else url=url+ \"&GradeRoleTypeId=\";\r\n if(gradeId>0)url=url+ \"&gradeId=\" + gradeId;\r\n \r\n return this.httpClient.get>(url);\r\n} \r\npublic getDepartments(): Observable> {\r\n let url = this._adminServiceUrl + this.resources.getDepartments ; \r\n return this.httpClient.get>(url);\r\n} \r\n\r\npublic getGradesByDepartment(departmentId: number): Observable> {\r\n let url = this._adminServiceUrl + this.resources.getGradesByDepartment ; \r\n if(departmentId>0) url=url+ \"?DepartmentId=\" + departmentId;\r\n return this.httpClient.get>(url);\r\n} \r\npublic getRoleTypesByGrade(departmentId: number, gradeId: number): Observable> {\r\n let url = this._adminServiceUrl + this.resources.getRoleTypesByGrade ;\r\n if(departmentId>0) url=url+ \"?DepartmentId=\" + departmentId;\r\n if(gradeId>0)url=url+ \"&GradeId=\" + gradeId;\r\n \r\n return this.httpClient.get>(url);\r\n} \r\n\r\npublic getRoleTypesByFinancialYearAndDepartment(financialYearId: number, departmentId: number): Observable> {\r\n let url = this._adminServiceUrl + this.resources.getRoleTypesByDeptAndFY + financialYearId + \"&departmentId=\" + departmentId; \r\n return this.httpClient.get>(url);\r\n} \r\n\r\npublic getGradesForSelectedRole(financialYearId:number,departmentId:number,roleTypeId:number){\r\n let url = this._adminServiceUrl + this.resources.getGradesBySelectedRoleType + financialYearId + \"&departmentId=\" + departmentId + \"&roleTypeId=\" + roleTypeId; \r\n return this.httpClient.get>(url);\r\n}\r\n\r\n\r\n}\r\n","import { Injectable, Inject } from \"@angular/core\";\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { AspectData } from 'src/app/modules/master-layout/models/kra.model';\r\nimport { IAspectMaster } from \"src/app/modules/kra/Interfaces/IAspectMaster\";\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { environment } from '../../../../environments/environment';\r\nimport * as servicePath from 'src/app/core/service-paths';\r\nimport { JsonPipe } from \"@angular/common\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class AspectMasterService implements IAspectMaster {\r\n private _resources: any;\r\n private _serverURL: string;\r\n constructor(private _http: HttpClient) { this._serverURL = environment.KRAMicroService; this._resources = servicePath.API.AspectMaster; }\r\n public GetAspectMasterList(): Observable {\r\n var url = this._serverURL + this._resources.GetAspects;\r\n return this._http.get(url);\r\n }\r\n\r\n public CreateAspect(aspectName: string) {\r\n let _url = this._serverURL + this._resources.CreateAspect;\r\n let model = { AspectName: aspectName };\r\n return this._http.post(_url, model);\r\n }\r\n\r\n public UpdateAspect(model: AspectData): Observable {\r\n let _url = this._serverURL + this._resources.UpdateAspect;\r\n return this._http.put(_url, model);\r\n }\r\n\r\n public DeleteAspect(aspectId: number): Observable {\r\n let _url = this._serverURL + this._resources.DeleteAspect + aspectId;\r\n return this._http.post(_url, aspectId);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { DefineKRAData } from 'src/app/modules/kra/models/definekra.model';\r\nimport * as servicePath from 'src/app/core/service-paths';\r\nimport { Observable } from 'rxjs/Observable';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DefineKraService {\r\n _serviceUrl = environment.KRAMicroService;\r\n KRADefineData = new BehaviorSubject([]);\r\n resources = servicePath.API.DefineKRA;\r\n constructor(private httpClient : HttpClient ) { }\r\n\r\n public getKRADefinitionsById(financialYearId: number, departmentId: number, grade: number, roleTypeId: number ,IsHoD=false): Observable> {\r\n let url = this._serviceUrl + this.resources.getDefinitionsById + financialYearId + \"&roleTypeId=\" + roleTypeId; \r\n return this.httpClient.get>(url);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as servicePath from 'src/app/core/service-paths';\r\nimport { Observable } from 'rxjs/Observable';\r\n//import { FinancialYearRoletype } from 'src/app/modules/kra/models/financialyear-roletype.model';\r\nimport { FinancialYearRoleType } from '../models/financialyear-roletype.model';\r\nimport { FileDetail } from '../models/file-detail.model';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DownloadKraService { \r\n _serviceUrl = environment.EmployeeMicroService; \r\n resources = servicePath.API.KRA; \r\n constructor(private httpClient : HttpClient) { }\r\n\r\n public getEmployeeRoleTypes(employeeId: number): Observable> {\r\n let url = this._serviceUrl + this.resources.getEmployeeRoleTypes +\"?employeeId=\"+ employeeId; \r\n return this.httpClient.get>(url);\r\n}\r\n\r\n\r\npublic downloadKRA(employeeCode: string, financialYear : string, roleType: string): Observable {\r\n let url = this._serviceUrl + this.resources.downloadKRA +\"?employeeCode=\"+ employeeCode +\"&financialYear=\"+ financialYear +\"&roleType=\"+ roleType ; \r\n return this.httpClient.get(url);\r\n}\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport * as servicePath from 'src/app/core/service-paths';\r\nimport { CommentModel } from \"src/app/modules/kra/models/comment.model\";\r\nimport { Observable } from 'rxjs/Observable';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class KraCommentService {\r\n private _resources: any;\r\n private _serverUrl: string;\r\n constructor(private _http: HttpClient) {\r\n this._serverUrl = environment.KRAMicroService;\r\n this._resources = servicePath.API.KRAComment;\r\n }\r\n\r\n public CreateComment(commentModel: CommentModel) {\r\n let url = this._serverUrl + this._resources.createComment;\r\n return this._http.post(url, commentModel); \r\n}\r\n\r\n public GetComment(financialYearId: number, departmentId: number, gradeId: number, roleTypeId: number, isCEO: boolean): Observable> {\r\n let url = this._serverUrl + this._resources.getComment + financialYearId + \"&departmentId=\" + departmentId\r\n + \"&gradeId=\" + gradeId + \"&roleTypeId=\" + roleTypeId + \"&isCEO=\" + isCEO;\r\n return this._http.get>(url);\r\n}\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { KRAMeasurementTypeData } from 'src/app/modules/kra/models/kra.measurement-type.model';\r\nimport { environment } from '../../../../environments/environment';\r\nimport * as servicePath from 'src/app/core/service-paths';\r\n\r\n@Injectable({ providedIn: 'root' })\r\n\r\nexport class KraMeasurementTypeService {\r\n private _resources: any;\r\n private _serverUrl: string;\r\n constructor(private _http: HttpClient) {\r\n this._serverUrl = environment.KRAMicroService;\r\n this._resources = servicePath.API.MeasurementType;\r\n }\r\n\r\n GetKRAMeasurementType(): Observable { \r\n var url = this._serverUrl + this._resources.getMeasurementType;\r\n return this._http.get(url);\r\n }\r\n\r\n public DeleteKraMeasurementType(MeasurementTypeId: number) {\r\n let url = this._serverUrl + this._resources.deleteMeasurementType + MeasurementTypeId;\r\n return this._http.post(url, MeasurementTypeId); \r\n }\r\n\r\n public CreateKraMeasurementType(MeasurementType: string) {\r\n \r\n let url = this._serverUrl + this._resources.createMeasurementType;\r\n let model = { MeasurementType: MeasurementType };\r\n return this._http.post(url, model); \r\n }\r\n\r\n public UpdateKraMeasurementType(kraMeasurementTypeData: KRAMeasurementTypeData): Observable {\r\n \r\n let url = this._serverUrl + this._resources.updateMeasurementType;\r\n return this._http.put(url, kraMeasurementTypeData);\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { KRAStatusData } from 'src/app/modules/kra/models/krastatus.model';\r\nimport * as servicePath from 'src/app/core/service-paths';\r\nimport { Observable } from 'rxjs/Observable';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class KraStatusService {\r\n _serviceUrl = environment.KRAMicroService;\r\n KRADefineData = new BehaviorSubject([]);\r\n resources = servicePath.API.KRAStatus;\r\n resource = servicePath.API.KRAWorkFlow;\r\n constructor(private httpClient : HttpClient) { }\r\n\r\n\r\n\r\n// public getHRKRAStatuses(financialYearId: number): Observable> {\r\n// let url = this._serviceUrl + this.resources.getHRKRAStatuses +\"/\"+ financialYearId; \r\n// return this.httpClient.get>(url);\r\n// }\r\n\r\n public getHRKRAStatuses(financialYearId: number): Observable> {\r\n let url = this._serviceUrl + this.resources.getHRKRAStatuses +\"?financialYearId=\"+ financialYearId; \r\n return this.httpClient.get>(url);\r\n }\r\n\r\npublic getCEOKRAStatuses(financialYearId: number): Observable> {\r\n let url = this._serviceUrl + this.resource.getCEOKRAStatuses +\"/\"+ financialYearId; \r\n return this.httpClient.get>(url);\r\n }\r\n\r\n public getHODKRAStatuses(financialYearId: number,departmentId: number): Observable> {\r\n let url = this._serviceUrl + this.resources.getHODKRAStatuses +\"/\"+ financialYearId+\"/\"+ departmentId; \r\n return this.httpClient.get>(url);\r\n }\r\n\r\n// public UpdateKRAStatus(financialYearId: number, departmentId: number , sendToHOD=true) {\r\n// let url =\"\";\r\n// if(sendToHOD)\r\n// {\r\n// url= this._serviceUrl + this.resources.updateKRAStatusToSendToHOD +\"/\"+ financialYearId+ \"/\" + departmentId; \r\n// }\r\n// else url = this._serviceUrl + this.resources.sendToHR +\"/\"+ financialYearId+ \"/\" + departmentId;\r\n// return this.httpClient.post(url, null);\r\n// }\r\npublic UpdateKRAStatus(sendToHodReqObj,sendToHOD=true) {\r\n let url =\"\";\r\n if(sendToHOD)\r\n {\r\n // url= this._serviceUrl + this.resources.updateKRAStatusToSendToHOD +\"/\"+ financialYearId+ \"/\" + departmentId; \r\n url= this._serviceUrl + this.resources.updateKRAStatusToSendToHOD \r\n }\r\n // else url = this._serviceUrl + this.resources.sendToHR +\"/\"+ financialYearId+ \"/\" + departmentId;\r\n return this.httpClient.post(url, sendToHodReqObj, {responseType: 'text'});\r\n}\r\n\r\n public EditByHR(financialYearId: number, departmentId: number) {\r\n let url =\"\";\r\n url = this._serviceUrl + this.resources.editByHR +\"/\"+ financialYearId+ \"/\" + departmentId;\r\n return this.httpClient.post(url, null);\r\n }\r\n\r\n public CEOAccept(financialYearId: number, departmentId: number , ceoAccept=true) {\r\n let url= this._serviceUrl + this.resources.ceoAccept +\"/\"+ financialYearId+ \"/\" + departmentId + \"/\"+ ceoAccept; \r\n return this.httpClient.post(url, null);\r\n }\r\n\r\n public approveByCEO(approveByCEORequest) {\r\n let url= this._serviceUrl + this.resource.approvedByCEO; \r\n return this.httpClient.post(url, approveByCEORequest);\r\n }\r\n\r\n public SendToCEO(financialYearId: number) {\r\n let url = this._serviceUrl + this.resources.sendToCEO +\"/\"+ financialYearId;\r\n return this.httpClient.post(url, null);\r\n }\r\n}\r\n","import { HttpClient } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { DefinitionModel } from '../../../../app/modules/kra/models/kradefinition.model'\r\nimport { environment } from '../../../../environments/environment'\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { ApplicableRoleType } from '../../kra/models/kraapplicableRoleType.model';\r\n@Injectable({ providedIn: 'root' })\r\n\r\nexport class KraDefinitionService {\r\n private _resource: any;\r\n private _resources: any;\r\n private _serverUrl: string;\r\n private _kraResource : any;\r\n constructor(private _http: HttpClient) {\r\n this._serverUrl = environment.KRAMicroService;\r\n this._resources = servicePath.API.DefineKRA;\r\n this._resource = servicePath.API.KRAWorkFlow;\r\n this._kraResource = servicePath.API.KRA\r\n }\r\n\r\n public CreateDefinition(definitionModel: DefinitionModel) {\r\n let url = this._serverUrl + this._resources.createDefinition;\r\n return this._http.post(url, definitionModel);\r\n }\r\n\r\n public ImportKRA(definitionModel: DefinitionModel) {\r\n let url = this._serverUrl + this._resources.importKRA;\r\n return this._http.post(url, definitionModel);\r\n }\r\n\r\n public GetDefinitionDetails(Id: string): Observable> {\r\n let url = this._serverUrl + this._resources.getDefinitionDetails + Id;\r\n return this._http.get>(url);\r\n }\r\n public UpdateKRA(definitionModel: DefinitionModel) {\r\n let url = this._serverUrl + this._resources.updateKRA;\r\n return this._http.post(url, definitionModel);\r\n }\r\n\r\n public DeleteKRA(definitionDetailId: string): Observable {\r\n let url = this._serverUrl + this._resources.deleteKRA + definitionDetailId;\r\n return this._http.post(url, null);\r\n }\r\n\r\n public DeleteByHODHardDelete(definitionDetailId: number): Observable {\r\n let url = this._serverUrl + this._resources.deleteKRAByHODHardDelete + definitionDetailId;\r\n return this._http.post(url, null);\r\n }\r\n // public DeleteKRAByHOD(definitionDetailId: number): Observable {\r\n // let url = this._serverUrl + this._resources.deleteKRAByHOD + definitionDetailId;\r\n // return this._http.post(url, null);\r\n // }\r\n\r\n public SetPreviousMetricValues(definitionDetailId: number): Observable {\r\n let url = this._serverUrl + this._resources.setPreviousMetricValues + definitionDetailId;\r\n return this._http.post(url, null);\r\n }\r\n\r\n public SetPreviousTargetValues(definitionDetailId: number): Observable {\r\n let url = this._serverUrl + this._resources.setPreviousTargetValues + definitionDetailId;\r\n return this._http.post(url, null);\r\n }\r\n\r\n public AcceptTargetValue(defintionTransactionId: number, username: string): Observable {\r\n let url = this._serverUrl + this._resources.acceptTargetValue + defintionTransactionId + \"&username=\"+username;\r\n return this._http.post(url, null);\r\n }\r\n\r\n public AcceptMetricValue(defintionTransactionId: number, username: string): Observable {\r\n let url = this._serverUrl + this._resources.acceptMetricValue + defintionTransactionId + \"&username=\"+username;\r\n return this._http.post(url, null);\r\n }\r\n\r\n public RejectTargetValue(defintionTransactionId: number, username: string): Observable {\r\n let url = this._serverUrl + this._resources.rejectTargetValue + defintionTransactionId + \"&username=\"+username;\r\n return this._http.post(url, null);\r\n }\r\n\r\n public RejectMetricValue(defintionTransactionId: number, username: string): Observable {\r\n let url = this._serverUrl + this._resources.rejectMetricValue + defintionTransactionId + \"&username=\"+username;\r\n return this._http.post(url, null);\r\n }\r\n\r\n public AcceptDeletedKRAByHOD(defintionTransactionId: number, username: string): Observable {\r\n let url = this._serverUrl + this._resources.acceptDeletedKRAByHOD + defintionTransactionId + \"&username=\"+username;\r\n return this._http.post(url, null);\r\n }\r\n\r\n public RejectDeletedKRAByHOD(defintionTransactionId: number, username: string): Observable {\r\n let url = this._serverUrl + this._resources.rejectDeletedKRAByHOD + defintionTransactionId + \"&username=\"+username;\r\n return this._http.post(url, null);\r\n }\r\n\r\n public AcceptAddedKRAByHOD(defintionTransactionId: number, username: string): Observable {\r\n let url = this._serverUrl + this._resources.acceptAddedKRAByHOD + defintionTransactionId + \"&username=\"+username;\r\n return this._http.post(url, null);\r\n }\r\n\r\n public RejectAddedKRAByHOD(defintionTransactionId: number, username: string): Observable {\r\n let url = this._serverUrl + this._resources.rejectAddedKRAByHOD + defintionTransactionId + \"&username=\"+username;\r\n return this._http.post(url, null);\r\n }\r\n \r\n public AddKRAAgain(definitionDetailId: number): Observable {\r\n let url = this._serverUrl + this._resources.addKRAAgain + definitionDetailId;\r\n return this._http.post(url, null);\r\n }\r\n\r\n public UpdateKRAStatus(financialYearId: number, gradeRoleTypeId: number , status: string) {\r\n let url = this._serverUrl + this._resources.updateKRAStatus + financialYearId + \"&gradeRoleTypeId=\" + gradeRoleTypeId + \"&status=\" + status;\r\n return this._http.post(url,null);\r\n }\r\n\r\n public getKrasByFinancialYearIdAndRoleTypeId(financialYearId:number, roleTypeId : number){\r\n let url = this._serverUrl + this._resource.GetHODDefinitionsAsync + \"?financialYearId=\" + financialYearId +\"&roleTypeId=\"+ roleTypeId\r\n return this._http.get(url);\r\n }\r\n public AddKRAByHOD(addObj) {\r\n let url = this._serverUrl + this._resource.HODAdd;\r\n return this._http.post(url, addObj,{responseType: 'text'});\r\n }\r\n public EditKRAByHOD(editObj) {\r\n let url = this._serverUrl + this._resource.HODUpdate;\r\n return this._http.post(url, editObj,{responseType: 'text'});\r\n }\r\n public DeleteKRAByHOD(deleteReqObj) {\r\n let url = this._serverUrl + this._resource.HODDelete;\r\n return this._http.post(url, deleteReqObj,{responseType: 'text'});\r\n }\r\n public ApproveKRASBYHOD(approveObj) {\r\n let url = this._serverUrl + this._resource.ApprovedbyHOD;\r\n return this._http.post(url, approveObj,{responseType: 'text'});\r\n }\r\n public SendToOperationHead(requestObj) {\r\n let url = this._serverUrl + this._resource.SentToOpHead;\r\n return this._http.post(url, requestObj,{responseType: 'text'})\r\n }\r\n public EditedKRASByHOD(requestObj) {\r\n let url = this._serverUrl + this._resource.EditedByHOD;\r\n return this._http.post(url, requestObj,{responseType: 'text'})\r\n }\r\n\r\n public getOperationHeadDefinitions(financialYearId:number, roleTypeId : number){\r\n let url = this._serverUrl + this._resource.GetOperationHeadDefinitions + \"?financialYearId=\" + financialYearId +\"&roleTypeId=\"+ roleTypeId\r\n return this._http.get(url);\r\n }\r\n public AcceptedByOperationHead(reqData){\r\n let url = this._serverUrl + this._resource.AcceptedByOperationHead;\r\n return this._http.post(url,reqData,{responseType: 'text'});\r\n }\r\n\r\n public RejectedByOperationHead(reqData){\r\n let url = this._serverUrl + this._resource.RejectedByOperationHead;\r\n return this._http.post(url,reqData,{responseType: 'text'});\r\n }\r\n\r\n public SendToCEO(reqData){\r\n let url = this._serverUrl + this._resource.SendToCEO;\r\n return this._http.post(url,reqData,{responseType: 'text'});\r\n }\r\n\r\n public GeneratePDF(employeeCode,financialYearId,departmentId,roleId){\r\n const dId = departmentId == null ? '' : departmentId\r\n const rId = roleId == null ? '' : roleId \r\n let url = this._serverUrl + this._kraResource.GenerateKRAPdf + \"?employeeCode=\" + employeeCode +\"&financialYearId=\"+financialYearId+\"&departmentId=\"+dId+\"&roleId=\"+rId ;\r\n return this._http.get(url,{responseType: 'text'})\r\n\r\n }\r\n\r\n}","\r\nimport { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { environment } from '../../../../environments/environment';\r\nimport * as servicePath from 'src/app/core/service-paths';\r\nimport { KRAScaleMaster, KRAScaleDetails } from 'src/app/modules/kra/models/krascaleData.model';\r\nimport { IKRAScaleMaster } from \"src/app/modules/kra/Interfaces/IKRAScaleMaster\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class KrascalemasterService implements IKRAScaleMaster {\r\n private _resources: any;\r\n private _serverURL: string;\r\n\r\n constructor(private _http: HttpClient) { this._serverURL = environment.KRAMicroService; this._resources = servicePath.API.ScaleMaster;}\r\n\r\n public GetKRAScale(): Observable> {\r\n let url = this._serverURL + this._resources.getKRAScale;\r\n return this._http.get>(url);\r\n }\r\n public GetKRADescriptionDetails(kraScaleMasterId:number):Observable>{\r\n let url = this._serverURL + this._resources.getKRADescriptionDetails + kraScaleMasterId;\r\n return this._http.get>(url);\r\n }\r\n\r\n public CreateKRAScale(model: KRAScaleMaster): Observable {\r\n let _url = this._serverURL + this._resources.createKRAScale;\r\n return this._http.post(_url, model);\r\n }\r\n public UpdateKRAScale(model: KRAScaleMaster): Observable {\r\n let _url = this._serverURL + this._resources.updateKRAScale;\r\n return this._http.put(_url, model);\r\n \r\n }\r\n public DeleteKRAScale(kraScaleMasterId: number): Observable {\r\n let _url = this._serverURL + this._resources.deleteKRAScale + kraScaleMasterId;\r\n return this._http.post(_url, null);\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { User } from \"../../models/user.model\";\r\n// import { SelectItem } from \"primeng/components/common/api\";\r\nimport { ProjectRoleService } from \"../../services/project-role.service\";\r\nimport { OAuthHelper } from \"../../../../core/services/OAuthHelper.service\";\r\nimport * as environmentInformation from \"../../../../../environments/environment\";\r\nimport { AuthService } from \"src/app/core/services/auth.service\";\r\nimport { RoleService } from \"src/app/modules/admin/services/role.service\";\r\nimport { NgxSpinnerService } from \"ngx-spinner\";\r\nimport { MenuService } from \"src/app/core/services/menu.service\";\r\nimport { environment } from \"../../../../../environments/environment\";\r\n\r\n@Component({\r\n selector: 'app-choose-role',\r\n templateUrl: './choose-role.component.html',\r\n styleUrls: ['./choose-role.component.scss'],\r\n providers: [ProjectRoleService]\r\n})\r\nexport class ChooseRoleComponent implements OnInit {\r\n public loginData: User = new User();\r\n public roleName: String;\r\n display = true;\r\n roles: any[] = [];\r\n selectedRole: string;\r\n showRolesDialog = false;\r\n showRoleErrorMessage = false;\r\n access_token;\r\n loadHomePage = false;\r\n image;\r\n fullName = \"\";\r\n isImagePresent = false;\r\n isProduction = environmentInformation.environment.production;\r\n rolesAndDepartments: any;\r\n constructor(private _router: Router,\r\n private _authService: OAuthHelper,\r\n private authService: AuthService,\r\n private _rolesService: RoleService,\r\n private spinner: NgxSpinnerService,\r\n private _menuService: MenuService,\r\n ) {\r\n this.access_token = sessionStorage['token'];\r\n // if (sessionStorage[\"AssociatePortal_UserInformation\"]) {\r\n // this.loginData = JSON.parse(\r\n // sessionStorage[\"AssociatePortal_UserInformation\"]\r\n // );\r\n // this.fullName = this.loginData.firstName +\" \"+this.loginData.lastName;\r\n // }\r\n // if(this.isProduction)\r\n // this.getUserPhoto();\r\n }\r\n\r\n ngOnInit() {\r\n // if (!this.loginData) {\r\n // this._router.navigate([\"/login\"]);\r\n // return false;\r\n // }\r\n this.GetLoggedInUserRoles();\r\n }\r\n\r\n // getUserPhoto() {\r\n // this._authService.getUserPhoto().subscribe(res => {\r\n // this.image = res;\r\n // this.createImageFromBlob(res);\r\n // });\r\n // }\r\n GetLoggedInUserRoles() {\r\n sessionStorage['token'] = this.access_token;\r\n // const roles = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"])\r\n // .roles;\r\n // const role: any[] = roles.split(\",\");\r\n // sessionStorage[\"Load\"] = 0;\r\n // role.forEach(element => {\r\n // this.roles.push({ label: element, value: element });\r\n // });\r\n\r\n let email = sessionStorage['email'];\r\n // if(email ==''){\r\n // email = (sessionStorage['loggedEmail']);\r\n // }\r\n this.spinner.show();\r\n this.getRolesandDepartments();\r\n this._menuService.GetUserDetailsByUserName(email).subscribe(\r\n (data: any) => {\r\n this.loginData.roles = data.roles;\r\n this.loginData.roleName = data.roles;\r\n this.loginData.employeeId = data.EmployeeId;\r\n this.loginData.employeeCode = data.EmployeeCode;\r\n this.loginData.email = data.username;\r\n this.loginData.departmentId = data.EmployeeDepartmentId;\r\n var uname = data.username.split('@');\r\n if (uname.length > 1 || uname[0].indexOf('.') > 0) {\r\n this.loginData.firstName = uname[0].split('.')[0];\r\n this.loginData.lastName = uname[0].split('.')[1];\r\n if (this.loginData.lastName == undefined) {\r\n this.loginData.lastName = '';\r\n }\r\n this.loginData.fullName =\r\n this.loginData.firstName + ' ' + this.loginData.lastName;\r\n }\r\n sessionStorage['AssociatePortal_UserInformation'] = JSON.stringify(\r\n this.loginData\r\n );\r\n let role = this.loginData.roles.split(',');\r\n sessionStorage['roleLength'] = role.length;\r\n sessionStorage[\"Load\"] = 0;\r\n if(role.length > 1){\r\n role.forEach(element => {\r\n if(element != ''){\r\n this.roles.push({ label: element, value: element });\r\n }\r\n });\r\n }\r\n else{\r\n this.changeRole(this.loginData.roles)\r\n }\r\n this.spinner.hide();\r\n },\r\n (error) => {\r\n this.spinner.hide();\r\n this._router.navigate(['/errorPage']);\r\n }\r\n );\r\n\r\n\r\n }\r\n\r\n changeRole(roleName: string) {\r\n if (roleName != null && roleName != undefined) {\r\n sessionStorage[\"Load\"] = 1;\r\n this.loginData.roleName = roleName;\r\n sessionStorage[\"AssociatePortal_UserInformation\"] = JSON.stringify(\r\n this.loginData\r\n );\r\n this.rolesAndDepartments = JSON.parse(\r\n sessionStorage.getItem('RolesAndDepartments')\r\n )\r\n this.rolesAndDepartments.forEach(element => {\r\n if (element.RoleName === roleName) {\r\n const deptObj = {\r\n 'DepartmentId': element.DepartmentId,\r\n 'DepartmentName': element.DepartmentCode\r\n }\r\n sessionStorage.setItem('Department', JSON.stringify(deptObj));\r\n }\r\n });\r\n this._router.navigate([\"/shared/dashboard\"]);\r\n } else {\r\n return;\r\n }\r\n }\r\n createImageFromBlob(image: Blob) {\r\n let reader = new FileReader();\r\n reader.addEventListener(\"load\", () => {\r\n this.image = reader.result;\r\n }, false);\r\n if (image) {\r\n reader.readAsDataURL(image);\r\n this._authService.setImage(image);\r\n }\r\n this.isImagePresent = true;\r\n }\r\n\r\n\r\n\r\n getRolesandDepartments() {\r\n this._rolesService.GetRolesAndDepartments().subscribe(res => {\r\n this.rolesAndDepartments = res;\r\n sessionStorage['RolesAndDepartments'] = JSON.stringify(\r\n this.rolesAndDepartments\r\n );\r\n })\r\n }\r\n\r\n logout(){\r\n window.location.href = environment.logoutUrl;\r\n }\r\n}\r\n","\r\n
\r\n Choose Role\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

{{ role.label }}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n

Loading ...

\r\n","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog';\r\nimport { Router }from \"@angular/router\"; \r\n\r\ninterface RouteTo {\r\n route: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-confirm-cancel',\r\n templateUrl: './confirm-cancel.component.html',\r\n styleUrls: ['./confirm-cancel.component.scss']\r\n})\r\nexport class ConfirmCancelComponent implements OnInit {\r\n\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public route: RouteTo,private _router: Router) { }\r\n navigateTo:any\r\n onCancel(): void {\r\n this._router.navigate([this.navigateTo]);\r\n this.dialogRef.close(); \r\n }\r\n\r\n ngOnInit(): void {\r\n this.navigateTo = this.route.route \r\n }\r\n\r\n}\r\n","\r\n Are you sure you want to cancel?\r\n\r\n\r\n \r\n \r\n \r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-dashboard',\r\n templateUrl: './dashboard.component.html',\r\n styleUrls: ['./dashboard.component.scss']\r\n})\r\nexport class DashboardComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","

dashboard works!

\r\n","import {Component, ViewChild, ElementRef, ViewEncapsulation, AfterViewInit, HostBinding, ChangeDetectorRef,\r\n OnDestroy, OnInit} from '@angular/core';\r\nimport {VERSION} from '@angular/material/core';\r\nimport { NavService } from '../../services/nav.service';\r\nimport { navitems } from '../../menulist';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { OverlayContainer } from '@angular/cdk/overlay';\r\n\r\n\r\nimport { MediaMatcher } from \"@angular/cdk/layout\";\r\nimport { MenuService } from \"../../../master-layout/services/menu.service\";\r\nimport { Router } from \"@angular/router\";\r\n// import { MessageService } from \"primeng/api\";\r\nimport * as environmentInformation from \"../../../../../environments/environment\";\r\nimport { OAuthHelper } from \"../../../../core/services/OAuthHelper.service\";\r\n// import { take } from \"../../../../../node_modules/rxjs-compat/operator/take\";\r\n\r\n@Component({\r\n selector: 'app-master-layout',\r\n templateUrl: './master-layout.component.html',\r\n styleUrls: ['./master-layout.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MasterLayoutComponent implements AfterViewInit {\r\n\r\n roles = '';\r\n isImagePresent = false;\r\n menuQuery: MediaQueryList;\r\n private _menuQueryListener: () => void;\r\n menuDetails: any[];\r\n roleName: string;\r\n isExpanded = true;\r\n showSubmenu: boolean = false;\r\n isShowing = false;\r\n showSubSubMenu: boolean = false;\r\n events: string[] = [];\r\n opened: boolean = true;\r\n fullName: string;\r\n hideSwitchRole = false;\r\n image ;\r\n isProduction = environmentInformation.environment.production;\r\n access_Token = \"\";\r\n currentYear=new Date().getFullYear();\r\n mouseenter() {\r\n if (!this.isExpanded) {\r\n this.isShowing = true;\r\n }\r\n }\r\n\r\n mouseleave() {\r\n if (!this.isExpanded) {\r\n this.isShowing = false;\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n screenWidth: number;\r\n @ViewChild('appDrawer') appDrawer: ElementRef;\r\n version = VERSION;\r\n navItems = navitems;\r\n appearance= themeconfig.formfieldappearances;\r\n\r\n constructor(public navService: NavService, public overlayContainer: OverlayContainer, changeDetectorRef: ChangeDetectorRef,\r\n media: MediaMatcher,\r\n private _authService: OAuthHelper,\r\n private _menuService: MenuService,\r\n private _router: Router) {\r\n // set screenWidth on page load\r\n this.screenWidth = window.innerWidth;\r\n window.onresize = () => {\r\n // set screenWidth on screen size change\r\n this.screenWidth = window.innerWidth;\r\n \r\n };\r\n\r\n this.access_Token = sessionStorage['token'];\r\n this.menuQuery = media.matchMedia(\"(max-width: 600px)\");\r\n this._menuQueryListener = () => changeDetectorRef.detectChanges();\r\n this.menuQuery.addListener(this._menuQueryListener);\r\n //if(this.isProduction){\r\n this.image = this._authService.getImage();\r\n this.createImageFromBlob(this.image);\r\n //}\r\n \r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.navService.appDrawer = this.appDrawer;\r\n\r\n\r\n this.roles = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).roles;\r\n const role: any[] = this.roles.split(\",\");\r\n\r\n if (role.length > 1) {\r\n this.hideSwitchRole = true;\r\n }\r\n this.roleName = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).roleName;\r\n if (this.roles.length == 1) this.hideSwitchRole = true;\r\n this.fullName = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).fullName;\r\n if (this.roleName != \"\" && this.roleName != undefined) {\r\n sessionStorage['token'] = this.access_Token;\r\n this._menuService.getMenuDetails(this.roleName).subscribe(\r\n (res: any) => {\r\n this.menuDetails = res;\r\n this._router.navigate([\"/shared/dashboard\"]);\r\n },\r\n error => {}\r\n );\r\n }\r\n\r\n }\r\n\r\n\r\n \r\n ngOnDestroy(): void {\r\n this.menuQuery.removeListener(this._menuQueryListener);\r\n }\r\n\r\n \r\n\r\n createImageFromBlob(image: Blob) {\r\n let reader = new FileReader();\r\n reader.addEventListener(\"load\", () => {\r\n this.image = reader.result;\r\n }, false);\r\n if (image) {\r\n reader.readAsDataURL(image);\r\n }\r\n this.isImagePresent = true;\r\n }\r\n logout() {\r\n this._authService.logout();\r\n if (this.isProduction === false)\r\n this._router.navigate([\"/login\"]);\r\n else this._router.navigate([\"\"]);\r\n }\r\n\r\n\r\n}\r\n","\r\n \r\n \r\n 840\" [mode]=\"(screenWidth > 840) ? 'side' : 'over'\"\r\n disableClose=\"true\" autoFocus=\"false\">\r\n
\r\n

HRMS

\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n {{currentYear}} All Rights Reserved © SenecaGlobal IT Services Private Limited\r\n
\r\n","import {Component, HostBinding, Input, OnInit} from '@angular/core';\r\nimport {Router} from '@angular/router';\r\nimport {animate, state, style, transition, trigger} from '@angular/animations';\r\nimport { NavItem } from '../../models/nav-item';\r\nimport { NavService } from '../../services/nav.service';\r\nimport { Pipe, PipeTransform } from \"@angular/core\";\r\nimport { orderBy } from 'lodash';\r\n\r\n@Pipe({\r\n name: \"orderBy\"\r\n})\r\nexport class OrderByPipe implements PipeTransform {\r\n transform(array: any, sortBy: string, order ): any[] {\r\n const sortOrder = order ? order : 'asc'; // setting default ascending order\r\n\r\n return orderBy(array, [sortBy], [sortOrder]);\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'app-menu-list-item',\r\n templateUrl: './menu-list-item.component.html',\r\n styleUrls: ['./menu-list-item.component.scss'],\r\n animations: [\r\n trigger('indicatorRotate', [\r\n state('collapsed', style({transform: 'rotate(0deg)'})),\r\n state('expanded', style({transform: 'rotate(180deg)'})),\r\n transition('expanded <=> collapsed',\r\n animate('225ms cubic-bezier(0.4,0.0,0.2,1)')\r\n ),\r\n ])\r\n ]\r\n})\r\nexport class MenuListItemComponent implements OnInit {\r\n expanded: boolean=false;\r\n @HostBinding('attr.aria-expanded') ariaExpanded = this.expanded;\r\n @Input() item: any;\r\n @Input() depth: number;\r\n\r\n constructor(public navService: NavService,\r\n public router: Router) {\r\n\r\n \r\n\r\n if (this.depth === undefined) {\r\n this.depth = 0;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.navService.currentUrl.subscribe((url: string) => {\r\n if (this.item.route && url) {\r\n this.expanded = url.indexOf(`/${this.item.route}`) === 0;\r\n this.ariaExpanded = this.expanded;\r\n }\r\n });\r\n }\r\n\r\n onItemSelected(item: any) {\r\n if (!item.Categories || !item.Categories.length) {\r\n this.router.navigate([item.Path]);\r\n }\r\n if (item.Categories && item.Categories.length) {\r\n this.expanded = !this.expanded;\r\n }\r\n }\r\n}\r\n","\r\n\r\n\r\n \r\n \r\n\r\n \r\n {{item.Title}}\r\n \r\n \r\n \r\n expand_more\r\n \r\n \r\n\r\n
\r\n \r\n \r\n
\r\n\r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-page404',\r\n templateUrl: './page404.component.html',\r\n styleUrls: ['./page404.component.scss']\r\n})\r\nexport class Page404Component implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n

404

\r\n

You don't have access to this application

\t\t\r\n
\r\n
\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { PersonalService } from \"../../../onboarding/services/personal.service\";\r\nimport { Profile } from \"../../../master-layout/models/user.model\"\r\nimport * as moment from 'moment';\r\nimport { ChecklistService } from 'src/app/modules/AssociateExit/Services/checklist.service';\r\n\r\n@Component({\r\n selector: 'app-profile-dialog',\r\n templateUrl: './profile-dialog.component.html',\r\n styleUrls: ['./profile-dialog.component.scss']\r\n})\r\nexport class ProfileDialogComponent implements OnInit {\r\n\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,private _service : ChecklistService) { }\r\n \r\n employeeId:number = JSON.parse(\r\n sessionStorage.AssociatePortal_UserInformation\r\n ).employeeId;\r\n\r\n profileDetails = new Profile();\r\n\r\n ngOnInit(): void {\r\n this.getProfileDetails();\r\n }\r\n\r\n getProfileDetails(){\r\n this._service.GetByEmployeeId(this.employeeId).subscribe((res:Profile)=>{\r\n this.profileDetails.EmployeeName = res.EmployeeName;\r\n this.profileDetails.Designation = res.Designation;\r\n this.profileDetails.Grade = res.Grade;\r\n this.profileDetails.DateOfJoin = moment(res.DateOfJoin).format(\"DD-MM-YYYY\");\r\n this.profileDetails.BloodGroup = res.BloodGroup\r\n this.profileDetails.ReportingManager = res.ReportingManager;\r\n this.profileDetails.ProgramManager = res.ProgramManager;\r\n this.profileDetails.Lead = res.Lead;\r\n this.profileDetails.DepartmentId=res.DepartmentId;\r\n },\r\n (error)=>{\r\n\r\n })\r\n }\r\n \r\n onClearClick(){\r\n this.dialogRef.close();\r\n }\r\n}\r\n","\r\n

Associate Information:\r\n clear\r\n

\r\n\r\n
\r\n
\r\n \r\n

\r\n \r\n Blood Group :   {{profileDetails.BloodGroup}}

\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 \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
Name{{profileDetails.EmployeeName}}
Designation{{profileDetails.Designation}}
Grade{{profileDetails.Grade}}
Date of Joining{{profileDetails.DateOfJoin}}
Program Manager{{profileDetails.ProgramManager}}
Reporting Manager{{profileDetails.ReportingManager}}
Team Lead{{profileDetails.Lead}}
\r\n
\r\n\r\n
\r\n
\r\n","import {\r\n Component,\r\n OnInit,\r\n HostBinding,\r\n ChangeDetectorRef,\r\n} from '@angular/core';\r\nimport { NavService } from '../../services/nav.service';\r\nimport { ThemechangerService } from 'src/app/core/services/themechanger.service';\r\nimport { MediaMatcher } from '@angular/cdk/layout';\r\n import { OAuthHelper } from 'src/app/core/services/OAuthHelper.service';\r\nimport { MenuService } from '../../services/menu.service';\r\nimport { Router } from '@angular/router';\r\n\r\nimport * as environmentInformation from '../../../../../environments/environment';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { PageTitleService } from 'src/app/core/services/page-title.service';\r\nimport { AuthService } from 'src/app/core/services/auth.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ProfileDialogComponent } from '../profile-dialog/profile-dialog.component';\r\nimport { environment } from '../../../../../environments/environment';\r\n\r\n@Component({\r\n selector: 'app-top-nav',\r\n templateUrl: './top-nav.component.html',\r\n styleUrls: ['./top-nav.component.scss'],\r\n})\r\nexport class TopNavComponent implements OnInit {\r\n pageTitle: string = '';\r\n darktheme: boolean = false;\r\n dispLogoDiv: boolean = false;\r\n searchField: string = '';\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n associateFullName:string;\r\n\r\n isProduction = environmentInformation.environment.production;\r\n public role : Number;\r\n\r\n\r\n constructor(\r\n public navService: NavService,\r\n private themechangeservice: ThemechangerService,\r\n changeDetectorRef: ChangeDetectorRef,\r\n media: MediaMatcher,\r\n private _authService: OAuthHelper,\r\n private _menuService: MenuService,\r\n private _router: Router,\r\n public pageTitleService: PageTitleService,\r\n private authService : AuthService,\r\n public dialog: MatDialog,\r\n \r\n\r\n ) {\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n if (responseData == '') {\r\n this.searchField = responseData;\r\n }\r\n });\r\n\r\n window.onresize = () => {\r\n // set screenWidth on screen size change\r\n this.navService.isSideNaveOpened.subscribe((resp) => {\r\n resp;\r\n if (resp && window.innerWidth > 840) {\r\n this.dispLogoDiv = false;\r\n } else if (!resp && window.innerWidth > 840) {\r\n this.dispLogoDiv = true;\r\n } else {\r\n this.dispLogoDiv = true;\r\n }\r\n });\r\n };\r\n\r\n this.navService.isSideNaveOpened.subscribe((resp) => {\r\n resp;\r\n if (resp && window.innerWidth > 840) {\r\n this.dispLogoDiv = false;\r\n } else if (!resp && window.innerWidth > 840) {\r\n this.dispLogoDiv = true;\r\n } else {\r\n this.dispLogoDiv = true;\r\n }\r\n });\r\n\r\n this.pageTitleService.currentPageTitle.subscribe(\r\n (respPageTitle) => (this.pageTitle = respPageTitle)\r\n );\r\n }\r\n\r\n ngOnInit() {\r\n if (sessionStorage.getItem('AssociatePortal_UserInformation') != null) {\r\n this.associateFullName = JSON.parse(\r\n sessionStorage.getItem('AssociatePortal_UserInformation')\r\n ).fullName;\r\n this.associateFullName = this.associateFullName.toUpperCase();\r\n }\r\n this.themechangeservice.currentTheme.subscribe((theme) => {\r\n this.darktheme = theme;\r\n });\r\n\r\n this.role = Number(JSON.parse(sessionStorage['roleLength']));\r\n \r\n }\r\n onSetTheme(e) {\r\n if (e.checked === true) {\r\n this.themechangeservice.darkTheme(true);\r\n } else {\r\n this.themechangeservice.darkTheme(false);\r\n }\r\n }\r\n\r\n switchRole() {\r\n this._router.navigate(['/roles']);\r\n }\r\n\r\n \r\n logout(){\r\n window.location.href = environment.logoutUrl;\r\n }\r\n\r\n applyFilter($event) {\r\n this.navService.changeSearchBoxData($event);\r\n }\r\n clearField() {\r\n this.searchField = '';\r\n this.navService.changeSearchBoxData('');\r\n }\r\n\r\n openProfileDialog(){\r\n this.dialog.open(ProfileDialogComponent, {\r\n height:\"300px\",\r\n width:\"600px\",\r\n disableClose: true\r\n });\r\n }\r\n}","
\r\n \r\n
\r\n HRMS\r\n \r\n
\r\n \r\n
\r\n

{{pageTitle}}

\r\n
\r\n \r\n
\r\n
\r\n \r\n Search\r\n search\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Welcome \r\n \r\n \r\n \r\n \r\n \r\n {{this.associateFullName}}\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 \r\n \r\n \r\n \r\n ","\r\nimport { Injectable } from '@angular/core';\r\nimport {\r\n HttpEvent,\r\n HttpInterceptor,\r\n HttpHandler,\r\n HttpRequest,\r\n HttpResponse\r\n} from '@angular/common/http'\r\nimport { catchError,tap} from 'rxjs/operators';\r\nimport { Router } from '@angular/router';\r\nimport { Observable, EMPTY, throwError } from 'rxjs';\r\nimport * as environmentInformation from '../../../environments/environment';\r\n\r\n@Injectable()\r\n\r\nexport class HttpConfigInterceptor implements HttpInterceptor {\r\n\r\n UserInfo:string;\r\n constructor(private _router : Router){}\r\n \tintercept(request: HttpRequest, next: HttpHandler):Observable> {\r\n this.UserInfo=sessionStorage[\"AssociatePortal_UserInformation\"];\r\n if ( sessionStorage[\"token\"] != null) {\r\n request = request.clone({\r\n setHeaders: {\r\n Authorization: `Bearer ${sessionStorage[\"token\"]}`,\r\n UserName:this.UserInfo!=undefined|| this.UserInfo!=null? JSON.parse(this.UserInfo).email:''\r\n }\r\n });\r\n }\r\n\r\n\t return next.handle(request)\r\n\t .pipe(\r\n\t tap(event => {\r\n\t if (event instanceof HttpResponse) {\r\n\r\n\t }\r\n\t }, error => {\r\n\r\n if (error.status == 401) {\r\n sessionStorage.clear();\r\n if(environmentInformation.environment.production == true){\r\n window.location.href = environmentInformation.environment.logoutUrl;\r\n }\r\n else\r\n // this._router.navigate(['/login']);\r\n\r\n return EMPTY;\r\n }\r\n else {\r\n return throwError(error);\r\n }\r\n\r\n\t })\r\n\t )\r\n\r\n };\r\n\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TopNavComponent } from './components/top-nav/top-nav.component';\r\nimport { MenuListItemComponent, OrderByPipe } from './components/menu-list-item/menu-list-item.component';\r\nimport { MasterLayoutComponent } from './components/master-layout/master-layout.component';\r\nimport { AllAngularMaterialModule } from '../plugins/all-angular-material/all-angular-material.module';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport {MasterRoutingModule} from './master-routing.module';\r\nimport { DashboardComponent } from './components/dashboard/dashboard.component';\r\nimport { Page404Component } from './components/page404/page404.component';\r\n\r\n\r\n\r\nimport { ChooseRoleComponent } from './components/choose-role/choose-role.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { ConfirmCancelComponent } from './components/confirm-cancel/confirm-cancel.component';\r\nimport { ProfileDialogComponent } from './components/profile-dialog/profile-dialog.component';\r\nimport { NgxSpinnerModule } from 'ngx-spinner';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [OrderByPipe, TopNavComponent, MenuListItemComponent, MasterLayoutComponent, DashboardComponent, Page404Component, ChooseRoleComponent, ConfirmCancelComponent, ProfileDialogComponent],\r\n imports: [\r\n CommonModule,\r\n\tMasterRoutingModule,\r\n AllAngularMaterialModule,\r\n FlexLayoutModule,\r\n FormsModule,\r\n NgxSpinnerModule,\r\n ],\r\n exports:[\r\n MasterLayoutComponent,TopNavComponent,MenuListItemComponent,ConfirmCancelComponent\r\n ]\r\n})\r\nexport class MasterLayoutModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nconst routes: Routes = [];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class MasterRoutingModule { }\r\n","import { NavItem } from './models/nav-item';\r\n\r\nexport const navitems: NavItem[] = [\r\n{ displayName: 'Admin', iconName: 'Admin.svg', route: 'admin', children: [\r\n{ displayName: 'Assign User Roles', iconName: 'RightArrow.svg', route: 'admin/userrole' },\r\n{ displayName: 'Assign Menus', iconName: 'RightArrow.svg', route: 'admin/asignmenus' },\r\n{ displayName: 'Client Billing Roles', iconName: 'RightArrow.svg', route: 'admin/clientbillingrole' },\r\n{ displayName: 'Clients', iconName: 'RightArrow.svg', route: 'admin/clients' },\r\n{ displayName: 'Competency Area', iconName: 'RightArrow.svg', route: 'admin/competencyarea' },\r\n{ displayName: 'Departments', iconName: 'RightArrow.svg', route: 'admin/department' },\r\n{ displayName: 'Department Type', iconName: 'RightArrow.svg', route: 'admin/departmenttype' },\r\n{ displayName: 'Designations', iconName: 'RightArrow.svg', route: 'admin/designation' },\r\n{ displayName: 'Domain', iconName: 'RightArrow.svg', route: 'admin/domain' },\r\n{ displayName: 'Grades', iconName: 'RightArrow.svg', route: 'admin/grade' },\r\n{ displayName: 'RoleType', iconName: 'RightArrow.svg', route: 'admin/roletype' },\r\n{ displayName: 'Internal Billing Roles', iconName: 'RightArrow.svg', route: 'admin/internalbillingrole' },\r\n{ displayName: 'Key Function', iconName: 'RightArrow.svg', route: 'admin/keyfunction' },\r\n{ displayName: 'Map Associate ID', iconName: 'RightArrow.svg', route: 'admin/mapassociateid' },\r\n{ displayName: 'Notification Configuration', iconName: 'RightArrow.svg', route: 'admin/notificationconfiguration' },\r\n{ displayName: 'Notification Types', iconName: 'RightArrow.svg', route: 'admin/notificationtype' },\r\n{ displayName: 'Practice Area', iconName: 'RightArrow.svg', route: 'admin/practicearea' },\r\n{ displayName: 'Project Type', iconName: 'RightArrow.svg', route: 'admin/projecttype' },\r\n{ displayName: 'Proficiency Level', iconName: 'RightArrow.svg', route: 'admin/proficiencylevel' },\r\n{ displayName: 'RolesTable', iconName: 'RightArrow.svg', route: 'admin/rolelist' },\r\n{ displayName: 'Functional Roles', iconName: 'RightArrow.svg', route: 'admin/addrole' },\r\n{ displayName: 'SkillGroup', iconName: 'RightArrow.svg', route: 'admin/skillgroup' },\r\n{ displayName: 'Skills', iconName: 'RightArrow.svg', route: 'admin/skills' },\r\n{ displayName: 'Seniority', iconName: 'RightArrow.svg', route: 'admin/seniority' },\r\n{ displayName: 'Speciality', iconName: 'RightArrow.svg', route: 'admin/speciality' },\r\n{ displayName: 'Update Employee Status', iconName: 'RightArrow.svg', route: 'admin/employeestatus' },\r\n{ displayName: 'Workstation', iconName: 'RightArrow.svg', route: 'admin/workstation' },\r\n{ displayName: 'Category', iconName: 'RightArrow.svg', route: 'admin/categorymaster' },\r\n]\r\n },\r\n { displayName: 'ADR', iconName: 'ADR.svg', route: 'adr' },\r\n { displayName: 'Aspect Library', iconName: 'Aspect-Library.svg', route: 'aspectlibrary' },\r\n { displayName: 'Associates', iconName: 'Associates.svg', route: 'associates' },\r\n { displayName: 'Dashboard', iconName: 'Dashboard.svg', route: 'dashboard' },\r\n { displayName: 'Define', iconName: 'Define.svg', route: 'define' },\r\n {\r\n displayName: 'KRA', iconName: 'KRA.svg', route: 'kra', children: [\r\n { displayName: 'Applicable Role Types', iconName: 'ightArrow.svg', route: 'kra/applicableroletype' } ,\r\n { displayName: 'Measurement Types', iconName: 'ightArrow.svg', route: 'kra/krameasurementtype' },\r\n { displayName: 'Aspect', iconName: 'ightArrow.svg', route: 'kra/aspectmaster' }, \r\n { displayName: 'Scales', iconName: 'ightArrow.svg', route: 'kra/scaleMaster' },\r\n { displayName: 'Define', iconName: 'ightArrow.svg', route: 'kra/kradefinitions' } ,\r\n { displayName: 'Review', iconName: 'ightArrow.svg', route: 'kra/reviewkra' } ,\r\n { displayName: 'Status', iconName: 'Status.svg', route: 'kra/ceostatus' } \r\n ]\r\n },\r\n { displayName: 'Project Details', iconName: 'Project-Details.svg', route: 'projectdetails' },\r\n { displayName: 'Prospective Associates', iconName: 'Prospective-Associates.svg', route: 'prospectiveassociates' },\r\n { displayName: 'Reports', iconName: 'Reports.svg', route: 'reports' },\r\n { displayName: 'Status', iconName: 'Status.svg', route: 'status' },\r\n { displayName: 'Talent Management', iconName: 'Talent-Management.svg', route: 'talentmanagement' }\r\n \r\n];","export interface AssociateSkill {\r\n // RoleId?: any;\r\n CompetencyAreaID?: any;\r\n PracticeAreaID?: any;\r\n skills: any[];\r\n skillList: any[];\r\n skillsVisible: boolean;\r\n }\r\n \r\n export interface CompetencyArea {\r\n CompetencyAreaId?: number;\r\n CompetencyAreaCode: string;\r\n CompetencyAreaDescription: string;\r\n IsActive?: boolean;\r\n }\r\n \r\n export interface PracticeArea {\r\n PracticeAreaId?: number;\r\n PracticeAreaCode: string;\r\n PracticeAreaDescription: string;\r\n // IsActive?: boolean;\r\n }\r\n \r\n export interface ProficiencyLevel {\r\n ProficiencyLevelId?: number;\r\n ProficiencyLevelCode: string;\r\n ProficiencyLevelDescription: string;\r\n IsActive?: boolean;\r\n }\r\n \r\n export class Role {\r\n RoleId: number;\r\n RoleName: string;\r\n }\r\n \r\n export class Skill {\r\n Id?: number;\r\n EmployeeId?: number;\r\n skillId?: number;\r\n SkillName: string;\r\n ProficiencyLevelId?: number;\r\n Experience?: number;\r\n LastUsed?: number;\r\n IsPrimary?: boolean;\r\n CompetencyAreaId?: number;\r\n SkillGroupId?: number;\r\n SkillId?: number;\r\n RoleId : number;\r\n StatusCode : string;\r\n }\r\n \r\n export class EmployeeSkillDetails{\r\n skillDetails : Array;\r\n Id?: number;\r\n EmployeeId?: number;\r\n RoleId : number;\r\n }\r\n export class SkillGroup {\r\n SkillGroupId?: number;\r\n SkillGroupName: string;\r\n Description: string;\r\n }\r\n ","\r\nexport class AssociateAllocation {\r\n AssociateAllocationId: number;\r\n TalentRequisitionId: number;\r\n DepartmentName: string;\r\n DepartmentId: number\r\n ProjectType: string;\r\n ProjectTypeId:number\r\n ProjectName: string;\r\n Status: string;\r\n NoOfPositions: number;\r\n EmployeeId: number;\r\n ProjectId: number;\r\n RoleMasterID: number;\r\n ReportingManagerId: number;\r\n RequisitionRoleDetailID: number;\r\n InternalBillingRoleId: number;\r\n ClientBillingRoleId: number;\r\n ClientBillingRoleName : string;\r\n StartDate : string;\r\n RoleName: string;\r\n Project: string;\r\n RoleRequisitionID: number;\r\n TotalNoOfPosition: number;\r\n EmployeeNameWithGrade: string;\r\n ResourceAvailability: number;\r\n AllocationPercentage: number;\r\n InternalBillingPercentage: number\r\n ClientBillingPercentage: number;\r\n isCritical: boolean = false;\r\n IsPrimary: boolean = false;\r\n Billable: boolean = false;\r\n EffectiveDate: string;\r\n NewEffectiveDate: string;\r\n MakePrimaryProjectId : number;\r\n AssociateName: string;\r\n Availability: number;\r\n NotifyAll: boolean = false;\r\n RoleMasterId : number;\r\n IsBillable : boolean = false;\r\n IsCritical : boolean = false;\r\n\r\n}\r\n// export class AssociateAllocation1 {\r\n// TalentRequisitionId: number;\r\n// EmployeeId: number;\r\n// ProjectId: number;\r\n// RoleId: number;\r\n// ReportingManagerId: number;\r\n// InternalBillingRoleId: number;\r\n// ClientBillingRoleId: number;\r\n// AllocationPercentage: number;\r\n// InternalBillingPercentage: number\r\n// ClientBillingPercentage: number;\r\n// //BillablePercentage: number;\r\n// isCritical: boolean;\r\n// IsPrimary: boolean;\r\n// Billable: boolean\r\n// EffectiveDate: string;\r\n// }\r\n\r\nexport class ClientBillingRole {\r\n ClientBillingRoleId: number;\r\n ClientBillingRoleCode: string;\r\n ClientBillingRoleName: string;\r\n ClientId: number;\r\n ClientName:string; \r\n StartDate: string;\r\n EndDate: string;\r\n NoOfPositions: number;\r\n AllocatedPositions: number;\r\n AvailablePositions: number;\r\n AllocationCount: number;\r\n ClientBillingPercentage : number;\r\n IsActive : boolean;\r\n}\r\nexport class InternalBillingRole {\r\n InternalBillingRoleId: number;\r\n InternalBillingRoleCode: string;\r\n InternalBillingRoleName:string;\r\n IsActive:boolean;\r\n}\r\n\r\nexport class ReportingManager {\r\n ReportingManagerId: number;\r\n ReportingManagerName: string;\r\n}\r\n\r\nexport class RoleDetails {\r\n RoleMasterId : number;\r\n RoleName: string;\r\n NoOfBillablePositions: string;\r\n NoOfNonBillablePositions: string;\r\n}\r\n\r\nexport class PercentageDropDown {\r\n AllocationPercentageId: number;\r\n Percentage: number;\r\n}","export class DropDownType {\r\n label:string;\r\n value:number;\r\n }\r\n export class SkillGroupDropDown{\r\n SkillGroupId:number;\r\n SkillGroupName:string;\r\n }\r\n export class SkillDropDown{\r\n SkillId:number;\r\n SkillName:string;\r\n }\r\n \r\n export class GenericType{\r\n Id:number;\r\n Name:string;\r\n }\r\n \r\n export class GenericModel extends GenericType{\r\n Gender:string;\r\n DepartmentId:number;\r\n }\r\n \r\n ","export class ErrorLogDetails {\r\n public FileName: string;\r\n public ErrorMessage: string;\r\n}","export class KraSetData {\r\n KRASetID: number;\r\n ID: number;\r\n KRARoleCategoryID: number;\r\n RoleID: number;\r\n //KRARoleID: number;\r\n FinancialYearID: number;\r\n KRARoleCategoryName: string;\r\n KRARoleName: string;\r\n FinancialYear: string;\r\n KRAAspectID:number\r\n KRAAspectName:string;\r\n KRAAspectMetric: string;\r\n KRAAspectTarget: string;\r\n FromEmployeeID: number;\r\n CreatedDate: string;\r\n FromEmployeeName: string;\r\n ToEmployeeName: string;\r\n Comments: string;\r\n DepartmentIDs: Array;\r\n DepartmentID: number;\r\n RoleMasterID: number;\r\n RoleName: string;\r\n StatusID: number;\r\n DepartmentCode: string;\r\n StatusCode: string;\r\n ActedOn: string; \r\n}\r\n\r\nexport class AspectData {\r\n KRAAspectID: number;\r\n KRAAspectName: string;\r\n AspectName: string;\r\n CreatedDate: string;\r\n AspectId: number;\r\n IsMappedAspect: boolean = false;\r\n DepartmentId:number; \r\n}\r\n\r\nexport class KraAspectData extends AspectData {\r\n DepartmentId:number; \r\n DepartmentName:string;\r\n KRAAspectID: number;\r\n KRAAspectName: string;\r\n lstAspectData:AspectData[];\r\n AspectId:number;\r\n}\r\n\r\nexport class FinancialYear {\r\n Id: number;\r\n FinancialYearName : string;\r\n}\r\n\r\nexport class SelectedKRAParameters {\r\n public FinancialYearName : string;\r\n public DepartmentName : string;\r\n public GradeName : string;\r\n public RoleTypeName : string;\r\n}\r\n\r\nexport class OperatorData {\r\n OperatorId: number;\r\n OperatorValue: string;\r\n}\r\n\r\nexport class TargetPeriodData {\r\n public TargetPeriodId: number;\r\n public TargetPeriodValue: string;\r\n}\r\n","export class ProjectRole {\r\nRoleAssignmentId : number;\r\nEmployeeId : any=\"\";\r\nProjectId : any=\"\";\r\nRoleId : any=\"\";\r\nRoleName: string;\r\nKeyResponsibilities: string;\r\nIsPrimaryRole : boolean;\r\nFromDate : Date; \r\nToDate : Date;\r\nStatusId : number;\r\nLeadId: number;\r\nManagerId : number;\r\nLeadName : string;\r\nManagerName : string;\r\nRejectReason: string;\r\n}\r\n\r\nexport class ProjectRoleParam{\r\n ProjectRoleData: ProjectRole;\r\n Status: string;\r\n}\r\n\r\nexport class SkillsData {\r\n SkillsSubmittedForApprovalId?: number;\r\n StatusCode: string;\r\n SkillName:string;\r\n EmployeeName:string;\r\n experience?: number;\r\n LastUsed?: number;\r\n IsPrimary?: boolean;\r\n ProficiencyLevel: string;\r\n Name:string;\r\n proficiencyLevelId?: number;\r\n ID?: number;\r\n CompetencyAreaID?: number;\r\n skillID: number;\r\n empID?: number;\r\n IsActive?: boolean;\r\n SkillGroupID?: number;\r\n SubmittedBy?:number;\r\n SubmittedTo?:number;\r\n StatusId?: number;\r\n RequisitionId?: number;\r\n WorkFlowId?: number;\r\n SkillExperience?: number;\r\n\r\n }","import { GenericType } from '../models/dropdowntype.model';\r\n\r\n\r\nexport class ProjectDetails {\r\n ProjectId: number;\r\n ProjectCode: string;\r\n ProjectName: string;\r\n ProjectType:number;\r\n}\r\nexport class ProjectsData extends ProjectDetails {\r\n\r\n ActualStartDate: string;\r\n ActualEndDate: string;\r\n PlannedEndDate: string;\r\n PlannedStartDate: string;\r\n CustomerId: number;\r\n PracticeAreaId: number;\r\n ReportingManagerId: number;\r\n ManagerId: number; //ProgramManagerId\r\n ProgramManagerId:number;\r\n LeadId: any;\r\n ReportingManager: GenericType;\r\n ProgramManager: GenericType;\r\n Lead: GenericType;\r\n ProgramManagerName: string;\r\n ReportingManagerName: string;\r\n LeadName: string;\r\n IsActive: boolean;\r\n EmpCode: number;\r\n actualStartDate: Date;\r\n actualEndDate: Date;\r\n plannedEndDate: Date;\r\n plannedStartDate: Date;\r\n DepartmentId: number;\r\n ClientId : string;\r\n ProjectTypeId : string;\r\n UserRole : string;\r\n ManagerName:string;\r\n ProjectTypeCode : string;\r\n ProjectTypeDescription : string;\r\n ClientName : string;\r\n ClientShortName: string;\r\n PracticeAreaCode: string;\r\n DepartmentCode: string;\r\n DomainId : number;\r\n ProjectState : string;\r\n ProjectStateId : number;\r\n DomainName : string;\r\n Remarks: string;\r\n}\r\n\r\n","import { GenericType } from './dropdowntype.model';\r\nimport { Department } from '../../../modules/admin/models/department.model';\r\n\r\n// import { GenericType } from '../models/index'\r\n\r\nexport class DepartmentDetails {\r\n DepartmentId: number;\r\n DepartmentCode?: string;\r\n Description?: string;\r\n}\r\n\r\nexport class RoleData extends DepartmentDetails {\r\n ID?: number;\r\n SGRoleID: number;\r\n RoleMasterID?: number;\r\n KRAGroupID: number;\r\n KRATitle: string;\r\n RoleName: string;\r\n RoleDescription: string;\r\n KeyResponsibilities: string;\r\n EducationQualification: string;\r\n PrefixID: number;\r\n SuffixID: number;\r\n dateOfJoining?: Date;\r\n RoleCompetencySkills?: RoleCompetencySkills[];\r\n DeltedSkillIds?: any[];\r\n IsActive?: boolean;\r\n SGRole: SGRole;\r\n SGRolePrefix: SGRolePrefix;\r\n SGRoleSuffix: SGRoleSuffix;\r\n Department: Department;\r\n}\r\nexport class RoleSufixPrefix {\r\n Roles?: SGRole[];\r\n Prefix?: SGRolePrefix[];\r\n Suffix?: SGRoleSuffix[];\r\n}\r\n\r\nexport class SGRole {\r\n SGRoleID: number;\r\n SGRoleName: string;\r\n}\r\nexport class SGRolePrefix {\r\n PrefixID: number;\r\n PrefixName: string;\r\n}\r\nexport class SGRoleSuffix {\r\n SuffixID: number;\r\n SuffixName: string;\r\n}\r\n\r\nexport class RoleCompetencySkills {\r\n ID?: number;\r\n CompetencySkillsId?: number;\r\n CompetencyAreaId?: number;\r\n SkillGroupId?: number;\r\n SkillGroupName?: string;\r\n SkillId?: number;\r\n RoleMasterID?: number;\r\n IsPrimary: boolean;\r\n ProficiencyLevelId?: number;\r\n CompetencyAreaCode?: string;\r\n SkillName?: string;\r\n ProficiencyLevelCode: string;\r\n}\r\n\r\n// DeltedSkillIds:\r\n","\r\nexport interface IUser {\r\n email?: string;\r\n password?: string;\r\n firstName?: string;\r\n lastName?: string;\r\n fullName?: string;\r\n roleName?: string;\r\n employeeId?: number;\r\n roles?: string;\r\n}\r\n\r\nexport class User {\r\n email!: string;\r\n password?: string;\r\n firstName?: string;\r\n lastName?: string;\r\n fullName?: string;\r\n roleName?: string;\r\n employeeId?: number;\r\n roles?: string;\r\n employeeCode: string;\r\n departmentId : string;\r\n}\r\n\r\nexport class Profile{\r\n EmployeeName: string;\r\n Designation:string;\r\n Grade:string;\r\n DateOfJoin:string;\r\n BloodGroup:string;\r\n ReportingManager:string;\r\n ProgramManager:string;\r\n Lead:string;\r\n DepartmentId:number;\r\n}\r\n\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as environmentInformation from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { ErrorLogDetails } from '../models/errorLog.model';\r\n\r\nimport { FormControl } from '@angular/forms';\r\nimport { KRAStatusCodes } from '../utility/enums';\r\n\r\ndeclare var $: any;\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CommonService {\r\n private _resources: any;\r\n private _serverURL: string;\r\n private EmployeeMicroService = environmentInformation.environment.EmployeeMicroService;\r\n errorlogDetails: ErrorLogDetails;\r\n constructor( private _http: HttpClient) {\r\n this._serverURL = environmentInformation.environment.ServerUrl;\r\n \r\n this._resources = servicePath.API.common;\r\n\r\n }\r\n public GetBusinessValues(valueKey: string) {\r\n var url = this.EmployeeMicroService+ this._resources.getGetBusinessValues + valueKey;\r\n return this._http.get(url)\r\n }\r\n\r\n onlyNumbers(event: any) {\r\n var keys = {\r\n 'escape': 27, 'backspace': 8, 'tab': 9, 'enter': 13, 'period': 46,\r\n '0': 48, '1': 49, '2': 50, '3': 51, '4': 52, '5': 53, '6': 54, '7': 55, '8': 56, '9': 57\r\n };\r\n for (var index in keys) {\r\n if (!keys.hasOwnProperty(index)) continue;\r\n if (event.charCode == keys[index] || event.keyCode == keys[index]) {\r\n return; //default event\r\n }\r\n }\r\n event.preventDefault();\r\n };\r\n\r\n public LogError(fileName: string, errorMessage: string) {\r\n this.errorlogDetails = new ErrorLogDetails();\r\n this.errorlogDetails.FileName = fileName;\r\n this.errorlogDetails.ErrorMessage = errorMessage;\r\n let url = this._serverURL + this._resources.logError;\r\n return this._http.post(url, this.errorlogDetails)\r\n \r\n // new Promise((resolve, reject) => {\r\n // .map(res => res.json())\r\n // .subscribe((lData) => {\r\n // resolve(lData);\r\n // }, error => reject(error));\r\n // });\r\n }\r\n\r\n unAllowednames_usingCustom( control : FormControl) : { [s:string]: boolean} {\r\n if(control.value != null && control.value != \"\")\r\n {\r\n let s : string = control.value;\r\n let atleastOneAlpha = s.trim();\r\n if(atleastOneAlpha != \"\")\r\n return null;\r\n else\r\n return {'unAllowed' :true};\r\n }\r\n else\r\n return null;\r\n }\r\n\r\n public getStatusCode(statusId: number) {\r\n let status: string;\r\n switch (statusId) {\r\n case KRAStatusCodes.Approved:\r\n status = \"Approved\";\r\n break;\r\n case KRAStatusCodes.Draft:\r\n status = \"Drafted\";\r\n break;\r\n case KRAStatusCodes.SendBackForHRMReview:\r\n status = \"Sent Back For HRA/HRM Review\";\r\n break;\r\n case KRAStatusCodes.SubmittedForDepartmentHeadReview:\r\n status = \"Submitted For Department Head Review\";\r\n break;\r\n // case KRAStatusCodes.SendBackForHRHeadReview:\r\n // status = \"Sent Back For HR Head Review\";\r\n // break;\r\n // case StatusCodes.KraSubmittedForHRHeadReview:\r\n // status = \"Submitted For HR Head Review\";\r\n // break;\r\n case KRAStatusCodes.SendBackForHRMReview:\r\n status = \"Sent Back For HRM Review\";\r\n break;\r\n // case StatusCodes.KraSubmittedForMDApproval:\r\n // status = \"Submitted For MD Approval\";\r\n // break;\r\n default:\r\n status = \"Not available\";\r\n break;\r\n }\r\n return status;\r\n }\r\n\r\n public htmlEncode(stringToEncode: string): string {\r\n return $('
').text(stringToEncode).html();\r\n }\r\n\r\n public htmlDecode(stringToDecode: any): string {\r\n return $('
').html(stringToDecode).text();\r\n }\r\n public omit_special_char(event: any) {\r\n let k: any;\r\n k = event.charCode; // k = event.keyCode; (Both can be used)\r\n return (\r\n (k > 64 && k < 91) ||\r\n (k > 96 && k < 123) ||\r\n k == 8 ||\r\n k == 32 ||\r\n (k >= 48 && k <= 57)\r\n );\r\n }\r\n\r\n public IsValidDate(fromDate: any, toDate: any): boolean {\r\n if (Date.parse(fromDate) <= Date.parse(toDate)) return true;\r\n return false;\r\n };\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { HttpClient } from '@angular/common/http';\r\n// import { Response } from '@angular/http';\r\nimport 'rxjs/add/operator/map';\r\nimport { GenericType } from \"../models/dropdowntype.model\";\r\nimport { Grade } from \"../../admin/models/grade.model\";\r\nimport { DepartmentDetails } from \"../models/role.model\";\r\nimport { RequisitionRoleSkills } from \"../models/talentrequisitiondata.model\";\r\nimport { ProjectDetails } from \"../models/projects.model\";\r\nimport { PracticeArea } from \"../models/associate-skills.model\";\r\nimport { Designation } from \"../../admin/models/designation.model\";\r\nimport { Client } from \"../../admin/models/client.model\";\r\nimport { PercentageDropDown } from \"../../master-layout/models/associateallocation.model\";\r\nimport {environment} from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\n\r\nimport { KRAScaleData } from \"../models/krascaleData.model\";\r\nimport { ProjectTypeData } from \"../../admin/models/projecttype.model\";\r\nimport { KraRoleData } from \"../models/kraRoleData.model\";\r\nimport { Roletype } from \"../../admin/models/roletype.model\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MasterDataService {\r\n private _serverURL: string;\r\n private _adminMicroService: string;\r\n private _employeeMicroService: string;\r\n private _resources: any;\r\n private _kraMicroService: string;\r\n private _projectMicroService: string;\r\n private _reportsMicroService: string;\r\n constructor(private _http: HttpClient) {\r\n this._projectMicroService = environment.ProjMicroService;\r\n this._serverURL = environment.ServerUrl;\r\n this._adminMicroService = environment.AdminMicroService;\r\n this._employeeMicroService = environment.EmployeeMicroService;\r\n this._resources = servicePath.API.Masterdata;\r\n this._kraMicroService = environment.KRAMicroService;\r\n this._reportsMicroService = environment.ReportMicroService;\r\n }\r\n\r\n GetDepartmentsMasterData() : Observable{\r\n var url = this._adminMicroService + servicePath.API.Department.list;\r\n return this._http.get(url);\r\n }\r\n\r\n GetDepartments(): Observable {\r\n var url = this._adminMicroService + this._resources.getDepartments;\r\n return this._http.get(url);\r\n }\r\n\r\n GetAllDepartments(): Observable {\r\n var url = this._serverURL + this._resources.getAllDepartments;\r\n return this._http.get(url);\r\n }\r\n\r\n GetRoles(): Observable {\r\n var url = this._adminMicroService + this._resources.getRoles;\r\n return this._http.get(url)\r\n }\r\n\r\n GetRolesByDepartmentId(departmentId: number): Observable> {\r\n let url = this._serverURL + this._resources.getRolesByDepartmentID + departmentId;\r\n return this._http.get(url)\r\n }\r\n\r\n GetRolesByProjectId(ProjectId: number): any {\r\n var url = this._serverURL + this._resources.getRolesByProjectId + ProjectId;\r\n return this._http.get(url);\r\n }\r\n\r\n GetCompetencyAreas(): any {\r\n var url = this._serverURL + this._resources.getCompetencyAreas;\r\n return this._http.get(url);\r\n }\r\n\r\n GetSkillGroupsByCompetenctArea(competencyAreaID: number): any {\r\n var url = this._serverURL + this._resources.getSkillGroupsByCompetenctArea + competencyAreaID;\r\n return this._http.get(url)\r\n }\r\n\r\n GetSkillsBySkillGroups(SkillGroupID: number): any {\r\n let url = this._adminMicroService + this._resources.getSkillsBySkillGroup + SkillGroupID;\r\n return this._http.get(url);\r\n }\r\n\r\n GetProficiencyLevels(): any {\r\n let url = this._adminMicroService + this._resources.getProficiencyLevels;\r\n return this._http.get(url);\r\n }\r\n\r\n GetProjectsList() {\r\n let _url = this._projectMicroService + this._resources.getProjectList;\r\n return this._http.get(_url)\r\n }\r\n\r\n GetAssociateProjectsForRelease(empID:number) {\r\n let _url = this._projectMicroService + this._resources.GetAssociateProjectsForRelease+empID;\r\n return this._http.get(_url)\r\n }\r\n\r\n GetDomains(): any {\r\n let _url = this._adminMicroService + this._resources.getDomains;\r\n return this._http.get(_url)\r\n }\r\n\r\n GetManagersAndCompetencyLeads(departmentId?:any | null): Observable {\r\n let _url;\r\n if(departmentId!=null)\r\n {\r\n _url = this._employeeMicroService + this._resources.getManagersAndCompetencyLeads+\"?DepartmentId=\"+departmentId;\r\n }\r\n else{\r\n _url = this._employeeMicroService + this._resources.getManagersAndCompetencyLeads;\r\n }\r\n return this._http.get(_url)\r\n }\r\n\r\n GetFinancialYears(): Observable> {\r\n let url = this._serverURL + this._resources.getFinancialYears;\r\n return this._http.get(url);\r\n }\r\n\r\n GetEmailIDsByString(suggestionString: string): Observable {\r\n let url = this._serverURL + this._resources.getAllEmailIDs + suggestionString;\r\n return this._http.get(url);\r\n }\r\n\r\n GetEmployeeNameByEmployeeId(employeeId: number): Observable {\r\n let url = this._serverURL + this._resources.getEmployeeNameByEmployeeId + employeeId;\r\n return this._http.get(url);\r\n }\r\n\r\n GetEmployeesAndManagers(suggestionString: string) {\r\n let url = this._serverURL + this._resources.getEmployeesAndManagers + suggestionString;\r\n return this._http.get(url);\r\n }\r\n\r\n\r\n GetAllLeadsManagers(suggestionString: string) {\r\n let url = this._serverURL + this._resources.getAllLeadsManagers + suggestionString;\r\n return this._http.get(url);\r\n }\r\n\r\n\r\n GetAllAssociateList(): Observable {\r\n let _url = this._serverURL + this._resources.getAllAssociateList;\r\n return this._http.get(_url);\r\n }\r\n\r\n GetMasterSkillList(): Observable {\r\n var url = this._serverURL + this._resources.getMasterSkillList;\r\n return this._http.get(url);\r\n }\r\n\r\n GetPractiseAreas(): Observable {\r\n var url = this._adminMicroService + this._resources.getPractiseAreas;\r\n return this._http.get(url);\r\n }\r\n\r\n GetGradesDetails(): Observable {\r\n let _url = this._serverURL + this._resources.getGradesDetails;\r\n return this._http.get(_url);\r\n }\r\n\r\n GetGradesMasterData(): Observable {\r\n let _url = this._adminMicroService + servicePath.API.Grades.list;\r\n return this._http.get(_url);\r\n }\r\n\r\n GetClientList(): Observable {\r\n let _url = this._adminMicroService + servicePath.API.projects.getClients;\r\n return this._http.get(_url);\r\n }\r\n\r\n GetDesignationList(): Observable {\r\n let _url = this._adminMicroService + this._resources.getDesignationList;\r\n return this._http.get(_url);\r\n }\r\n\r\n GetAllocationPercentages(): Observable {\r\n var url = this._projectMicroService + this._resources.getAllocationPercentages;\r\n return this._http.get(url);\r\n }\r\n\r\n GetPercentages(): Observable {\r\n var url = this._projectMicroService + servicePath.API.DropDownLists.GetPercentages;\r\n return this._http.get(url);\r\n }\r\n\r\n GetProgramManagers(): Observable {\r\n var url = this._serverURL + this._resources.getProgramManagers;\r\n return this._http.get(url)\r\n }\r\n\r\n GetProjectTypes(): Observable {\r\n let url = this._adminMicroService + this._resources.getProjectTypes;\r\n return this._http.get(url)\r\n }\r\n\r\n // GetProjectTypes(): Observable {\r\n // let _url = this._serverURL + this._resources.getProjectTypes;\r\n // return this._http.get(_url );\r\n // }\r\n\r\n GetRoleCategories(): Observable {\r\n var url = this._serverURL + this._resources.getRoleCategory;\r\n return this._http.get(url);\r\n }\r\n GetKRAOperators(): Observable {\r\n var url = this._kraMicroService + this._resources.getKRAOperators;\r\n return this._http.get(url);\r\n }\r\n GetKRAMeasurementType(): Observable {\r\n var url = this._serverURL + this._resources.getKRAMeasurementType;\r\n return this._http.get(url );\r\n }\r\n GetKRATargetPeriods(): Observable {\r\n var url = this._kraMicroService + this._resources.getKRATargetPeriods;\r\n return this._http.get(url);\r\n }\r\n getKRAScales(): Observable {\r\n var url = this._serverURL + this._resources.getKRAScales;\r\n return this._http.get(url )\r\n }\r\n getKRAScaleValues(): Observable {\r\n var url = this._serverURL + this._resources.getKRAScaleValues;\r\n return this._http.get(url );\r\n }\r\n\r\n GetKraRoles(): Observable{\r\n var url = this._serverURL + this._resources.getKRARoles;\r\n return this._http.get(url );\r\n }\r\n\r\n GetDepartmentByDepartmentTypeId(departmentTypeId: number): Observable> {\r\n let url = this._serverURL + this._resources.getDepartmentByDepartmentTypeId + departmentTypeId;\r\n return this._http.get(url );\r\n }\r\n\r\n GetDepartmentTypes(): Observable {\r\n var url = this._serverURL + this._resources.getDepartmentTypes;\r\n return this._http.get(url );\r\n }\r\n\r\n GetDesignationByString(suggestionString: string): Observable> {\r\n let url = this._adminMicroService + this._resources.getDesignationByString + suggestionString;\r\n\r\n return this._http.get(url);\r\n }\r\n\r\n GetCategories() {\r\n var url = this._adminMicroService + this._resources.GetCategories;\r\n return this._http.get(url )\r\n }\r\n\r\n getGradeByDesignation(designationId: number): Observable {\r\n let url = this._adminMicroService + this._resources.getGradeByDesignation + designationId;\r\n return this._http.get(url);\r\n }\r\n\r\n GetRoleTypesByGrade(gradeId: number) {\r\n let url = this._kraMicroService + servicePath.API.RoleType.getRoleTypesByGrade + gradeId;\r\n return this._http.get(url);\r\n }\r\n\r\n GetFinancialYearMasterData(){\r\n let url = this._kraMicroService + servicePath.API.FinancialYear.getFinancialYears;\r\n return this._http.get(url);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as environmentInformation from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MenuService {\r\n _serverURL: string;\r\n _roleInstance: any;\r\n _menuInstance: any;\r\n\r\n constructor(private _http: HttpClient) {\r\n this._serverURL = environmentInformation.environment.AdminMicroService;\r\n this._menuInstance = servicePath.API.Menu;\r\n }\r\n\r\n getMenuDetails(roleName: string) {\r\n let _url = this._serverURL + this._menuInstance.GetMenuDetails + roleName;\r\n return this._http.get(_url);\r\n }\r\n\r\n}\r\n","import {EventEmitter, Injectable} from '@angular/core';\r\nimport {Event, NavigationEnd, Router} from '@angular/router';\r\nimport {BehaviorSubject, Subject} from 'rxjs';\r\n\r\n@Injectable()\r\nexport class NavService {\r\n public appDrawer: any;\r\n public currentUrl = new BehaviorSubject(undefined);\r\n public isSideNaveOpened = new BehaviorSubject(true);\r\n\r\n // public searchBoxData = new BehaviorSubject('');\r\n public searchBoxData = new Subject();\r\n currentSearchBoxData = this.searchBoxData.asObservable();\r\n\r\n constructor(private router: Router) {\r\n this.router.events.subscribe((event: Event) => {\r\n if (event instanceof NavigationEnd) {\r\n this.currentUrl.next(event.urlAfterRedirects);\r\n }\r\n });\r\n }\r\n\r\n public closeNav() {\r\n this.appDrawer.close();\r\n this.isSideNaveOpened.next(false);\r\n }\r\n\r\n public openNav() {\r\n this.appDrawer.open();\r\n }\r\n public toggle() {\r\n this.appDrawer.toggle();\r\n if(this.appDrawer._opened){\r\n this.isSideNaveOpened.next(true);\r\n }\r\n else{\r\n this.isSideNaveOpened.next(false);\r\n }\r\n }\r\n\r\n isSideNaveOpend(e:boolean) {\r\n this.isSideNaveOpened.next(e)\r\n }\r\n\r\n changeSearchBoxData(searchData:any) {\r\n this.searchBoxData.next(searchData);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as environmentInformation from '../../../../environments/environment';\r\nimport * as servicePath from '../../../../app/core/service-paths';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProjectRoleService {\r\n private _serverURL: string;\r\n private _resources: any;\r\n private _roleInstance: any;\r\n private _config: any;\r\n private _menuInstance: any;\r\n\r\n constructor(private _http: HttpClient) {\r\n this._serverURL = environmentInformation.environment.ServerUrl;\r\n this._resources = servicePath.API.Roles;\r\n this._menuInstance = servicePath.API.Menu;\r\n this._roleInstance = servicePath.API.ProjectRoleAllocation;\r\n }\r\n GetRoleDataById(RoleId: number, ProjectId: number) {\r\n const url = this._serverURL + this._roleInstance.GetRoleDataById + RoleId + '&projectId=' + ProjectId;\r\n\r\n return this._http.get(url);\r\n }\r\n\r\n GetAssignedRoles(ProjectId: number) {\r\n const url = this._serverURL + this._roleInstance.GetAssignedRoles + ProjectId;\r\n\r\n return this._http.get(url);\r\n }\r\n\r\n AssignRole(projectRoleData: any) {\r\n const url = this._serverURL + this._roleInstance.AssignProjectRole;\r\n\r\n return this._http.post(url, projectRoleData);\r\n\r\n }\r\n\r\n GetRoleNotifications(employeeId: Number) {\r\n const url = this._serverURL + this._roleInstance.GetRoleNotifications + employeeId;\r\n\r\n return this._http.get(url);\r\n }\r\n\r\n\r\n RoleApproval(projectRoleData: any) {\r\n const url = this._serverURL + this._roleInstance.ApproveRole;\r\n\r\n return this._http.post(url, projectRoleData);\r\n }\r\n\r\n RoleRejection(projectRoleData: any) {\r\n const url = this._serverURL + this._roleInstance.RejectRole;\r\n\r\n return this._http.post(url, projectRoleData);\r\n\r\n }\r\n\r\n GetProjectManagerOrLeadId(EmployeeId: number) {\r\n const url = this._serverURL + this._roleInstance.GetProjectManagerOrLeadId + EmployeeId;\r\n\r\n return this._http.get(url);\r\n }\r\n getMenuDetails(roleName: string) {\r\n const _url = this._serverURL + '/Menu/GetMenuDetails?roleName=' + roleName;\r\n return this._http.get(_url);\r\n }\r\n}\r\n","export enum ProgramType {\r\n certification = 3,\r\n membership = 4\r\n}\r\n\r\nexport enum ProficiencyLevel {\r\n Expert = 1,\r\n Advanced = 2,\r\n Intermediate = 3,\r\n Basic = 4,\r\n Beginner = 5\r\n}\r\n\r\nexport enum TRStatusCodes {\r\n Draft = 1,\r\n SubmittedForApproval = 2,\r\n SubmittedForFinanceApproval = 3,\r\n RejectedByDeliveryHead = 4,\r\n RejectedByFinanceHead = 5,\r\n Approved = 6,\r\n Close = 7\r\n}\r\nexport enum KRAStatusCodes {\r\n Draft = 1,\r\n SubmittedForDepartmentHeadReview = 2,\r\n SendBackForHRMReview = 3,\r\n Approved = 4,\r\n SubmittedForHRHeadReview = 5,\r\n SendBackForDepartmentHeadReview = 6\r\n}\r\nexport enum RequestType {\r\n NewRequest = 25,\r\n Replacement = 26\r\n}\r\n\r\nexport enum InternalClient {\r\n SenecaGlobal\r\n}\r\n\r\nexport enum Roles {\r\n HRM,\r\n HRA,\r\n ITHead,\r\n FinanceHead,\r\n HRHead,\r\n Lead,\r\n ProgramManager,\r\n MD\r\n}\r\n\r\nexport enum DepartmentType {\r\n Delivery = 1,\r\n NonDelivery = 2\r\n}\r\n\r\nexport enum ProjectType {\r\n TalentPool = 6\r\n}\r\nexport enum KRAMeasurementType {\r\n Scale = 1,\r\n Percentage = 2,\r\n Number = 3,\r\n Date = 4\r\n}\r\nexport enum CategoryMaster {\r\n TalentRequisition = 1,\r\n AssociateExit = 2,\r\n Skills = 3,\r\n EPC = 4,\r\n KRA = 5,\r\n ADR = 6\r\n}\r\nexport enum Months {\r\n January = 1,\r\n february = 2,\r\n March = 3,\r\n April = 4,\r\n May = 5,\r\n June = 6,\r\n July = 7,\r\n August = 8,\r\n September = 9,\r\n October = 10,\r\n November = 11,\r\n December = 12\r\n}\r\n\r\nexport enum PersonalDetails {\r\n PersonalEmailAddress = 1,\r\n MobileNo = 2,\r\n AadharNumber = 3,\r\n PANNumber = 4,\r\n PFNumber = 5,\r\n UANNumber = 6,\r\n PassportNumber = 7\r\n}","import {Component, OnInit, ViewChild }from '@angular/core';\r\nimport {FormBuilder, Validators, FormGroup,FormGroupDirective } from \"@angular/forms\";\r\nimport { Router, ActivatedRoute }from \"@angular/router\"; \r\nimport { GenericType} from \"../../../../modules/master-layout/models/dropdowntype.model\";\r\nimport {Grade} from \"../../../admin/models/grade.model\"; \r\nimport { Designation } from '../../../admin/models/designation.model';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { MasterDataService } from '../../../../modules/master-layout/services/masterdata.service';\r\nimport { Associate } from '../../models/associate.model';\r\nimport { ProjectsService } from '../../services/projects.service'; \r\nimport {MatDialog} from '@angular/material/dialog';\r\nimport {ConfirmCancelComponent} from '../../../master-layout/components/confirm-cancel/confirm-cancel.component'\r\nimport * as moment from \"moment\";\r\nimport { themeconfig } from '../../../../../themeconfig';\r\n// import { ConfirmCancelComponent } from '../../../../core/components/confirm-cancel';\r\nimport {\r\n MatSnackBar,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition,\r\n} from '@angular/material/snack-bar';\r\n\r\n\r\n@Component({\r\n selector: 'app-add-prospective-associate',\r\n templateUrl: './add-prospective-associate.component.html',\r\n styleUrls: ['./add-prospective-associate.component.scss']\r\n})\r\nexport class AddProspectiveAssociateComponent implements OnInit {\r\n\r\n newAssociate: Associate;\r\n filteredDesignationIds: any;\r\n designation: Designation;\r\n componentName: string;\r\n empTypes: any[] = [];\r\n technologies: any[] = [];\r\n departments: any[] = [];\r\n hradvisors: any[] = [];\r\n reportingmanagers: any[] = [];\r\n isRequired: boolean = false;\r\n lastDate: any;\r\n designationList = [];\r\n desgntnLst = [];\r\n minDate: Date;\r\n maxDate: Date;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n newAssocaiteForm: FormGroup;\r\n isNonDelivery: boolean = false;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n\r\n \r\n\r\n constructor(private _router: Router,\r\n private _actRoute: ActivatedRoute,public dialog: MatDialog,\r\n private _formBuilder: FormBuilder,private _snackBar: MatSnackBar,\r\n private projectsService: ProjectsService,private masterDataService: MasterDataService) {\r\n this.newAssociate = new Associate();\r\n }\r\n\r\n openDialog(): void {\r\n const dialogRef = this.dialog.open(ConfirmCancelComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n width: '300px',\r\n data: {route:'/associates/prospectiveassociate'}\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.isNonDelivery = false;\r\n this.newAssociate.MaritalStatus = \"\";\r\n this.newAssociate.Gender = \"\";\r\n this.newAssociate.GradeId = \"\";\r\n this.newAssociate.DesignationId =0;\r\n this.newAssociate.EmploymentType = \"\";\r\n this.newAssociate.TechnologyID = \"\";\r\n this.newAssociate.DepartmentId = \"\";\r\n this.newAssociate.ManagerId = \"\";\r\n this.newAssociate.HRAdvisorName = \"\";\r\n\r\n \r\n // this.minDate = new Date(2007, 0, 1);\r\n // this.maxDate = new Date(2050, 11, 31);\r\n var date = new Date();\r\n this.minDate=new Date(date.getFullYear(), date.getMonth()-1,1);\r\n this.maxDate = new Date(date.getFullYear(), date.getMonth() + 1, 0);\r\n\r\n this.getDates();\r\n\r\n this.projectsService.list(servicePath.API.EmployeeType.list).subscribe((res:any[]) => (this.empTypes = res));\r\n this.projectsService.GetList(servicePath.API.Technology.activelist).subscribe((res:any[]) => (this.technologies = res));\r\n \r\n this.projectsService.GetList(servicePath.API.Department.list).subscribe((res:any[]) => (this.departments =\r\n res));\r\n \r\n this.projectsService.GetList(servicePath.API.HRAdvisor.activelist).subscribe((res:any[]) => (this.hradvisors = res));\r\n // this.masterDataService\r\n // .GetManagersAndCompetencyLeads().subscribe((res: GenericType[]) => {\r\n // this.reportingmanagers = res;\r\n // });\r\n\r\n this.newAssocaiteForm = this._formBuilder.group({\r\n firstName: [\"\", [Validators.required]],\r\n middleName: [\"\"],\r\n lastName: [\"\", [Validators.required]],\r\n PersonalEmailAddress: [\"\", [Validators.required,Validators.email, , Validators.pattern(/^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/)]],\r\n dateOfJoining: [\"\", [Validators.required]],\r\n MobileNo: [\"\", [Validators.required,Validators.pattern('^[1-9]{1}[0-9]{9}$')]],\r\n ddlgradeName: [\"\", [Validators.required]],\r\n ddldesignationID: [\"\", [Validators.required]],\r\n ddlemploymentType: [\"\", [Validators.required]],\r\n ddltechnology: [\"\", [Validators.required]],\r\n ddlDepartmentId: [\"\", [Validators.required]],\r\n ddlmanagerId: [\"\", [Validators.required]],\r\n ddlHRAdvisorName: [\"\", [Validators.required]],\r\n recruitedBy: [\"\"]\r\n });\r\n this.newAssocaiteForm.controls.ddlgradeName.disable();\r\n this.getDesignations();\r\n }\r\n\r\n getDesignations(): void {\r\n this.masterDataService.GetDesignationList().subscribe((data: any[]) => {\r\n this.designationList = data;\r\n });\r\n }\r\n\r\n filteredDesignations(event){\r\n if(event){\r\n let suggestionString = event.target.value.toLowerCase();\r\n this.filteredDesignationIds = [];\r\n this.designationList.forEach((v) => {\r\n if (this.filteredDesignationIds.findIndex(x => x.Name == v.DesignationName) === -1 && v.DesignationName.toLowerCase().indexOf(suggestionString) > -1) {\r\n this.filteredDesignationIds.push({ Id: v.DesignationId, Name: v.DesignationName });\r\n }\r\n });\r\n }\r\n else {\r\n this.filteredDesignationIds=[];\r\n this.pushFilteredDesignationIds();\r\n }\r\n\r\n }\r\n\r\n requiredTechnolgy(event: any) {\r\n var target = event.value;\r\n if (target == 1 || target == 7) {\r\n this.isNonDelivery = false;\r\n }\r\n else {\r\n this.newAssocaiteForm.controls.ddltechnology.setValue(null);\r\n this.newAssocaiteForm.get('ddltechnology').clearValidators();\r\n this.newAssocaiteForm.controls['ddltechnology'].updateValueAndValidity();\r\n this.isNonDelivery = true;\r\n }\r\n if(target!=null)\r\n {\r\n this.masterDataService\r\n .GetManagersAndCompetencyLeads(target).subscribe((res: GenericType[]) => {\r\n this.reportingmanagers = res;\r\n });\r\n }\r\n\r\n }\r\n pushFilteredDesignationIds(){\r\n this.filteredDesignationIds=[];\r\n for (let i = 0; i < this.designationList.length; i++) {\r\n this.filteredDesignationIds.push({ Id: this.designationList[i].DesignationId, Name: this.designationList[i].DesignationName });\r\n }\r\n }\r\n\r\n getDates() {\r\n var date = new Date(),\r\n y = date.getFullYear(),\r\n m = date.getMonth();\r\n this.lastDate = new Date(y, m + 2, 0);\r\n \r\n }\r\n\r\n onlychar(event: any) {\r\n let k: any;\r\n k = event.charCode; // k = event.keyCode; (Both can be used)\r\n return (k > 64 && k < 91) || (k > 96 && k < 123) || k == 8 || k == 32;\r\n }\r\n\r\n onlyForNumbers(event: any) {\r\n var keys = {\r\n escape: 27,\r\n backspace: 8,\r\n tab: 9,\r\n enter: 13,\r\n \"0\": 48,\r\n \"1\": 49,\r\n \"2\": 50,\r\n \"3\": 51,\r\n \"4\": 52,\r\n \"5\": 53,\r\n \"6\": 54,\r\n \"7\": 55,\r\n \"8\": 56,\r\n \"9\": 57\r\n };\r\n for (var index in keys) {\r\n if (!keys.hasOwnProperty(index)) continue;\r\n if (event.charCode == keys[index] || event.keyCode == keys[index]) {\r\n return; //default event\r\n }\r\n }\r\n event.preventDefault();\r\n }\r\n\r\n onCancel() {\r\n // this.confirmationService.confirm({\r\n // message: 'Are you sure that cancel this?',\r\n // accept: () => {\r\n // this._router.navigate([\"/associates/prospectiveassociate\"]);\r\n // },\r\n \r\n // reject : ()=>{\r\n // this.onCancel();\r\n \r\n // }\r\n // });\r\n \r\n }\r\n\r\n onClear() {\r\n this.newAssocaiteForm.reset();\r\n setTimeout(() => this.formGroupDirective.resetForm(), 0);\r\n }\r\n\r\n clearInput(evt: any, fieldName): void {\r\n if(fieldName=='dateOfJoining'){\r\n evt.stopPropagation();\r\n this.newAssocaiteForm.get('dateOfJoining').reset();\r\n }\r\n }\r\n\r\n displayFn(designation: any) {\r\n return designation && designation ? designation.Name : '';\r\n }\r\n\r\n getGradeByDesignation(designation) {\r\n if(designation && designation.Id){\r\n this.masterDataService.getGradeByDesignation(designation.Id).subscribe((gradeResponse:Grade)=>{\r\n if(gradeResponse){\r\n \r\n this.newAssociate.GradeName=gradeResponse.GradeName;\r\n this.newAssociate.GradeId=gradeResponse.GradeId;\r\n this.newAssocaiteForm.controls.ddlgradeName.setValue(gradeResponse.GradeName);\r\n\r\n\r\n }\r\n },\r\n (error: any) => {\r\n }\r\n );\r\n }\r\n else{\r\n this.newAssociate.GradeName=\"\";\r\n }\r\n }\r\n\r\n filteredDesignation(value: any): void {\r\n let suggestionString = value;\r\n this.masterDataService.GetDesignationByString(suggestionString).subscribe(\r\n (desginationResponse) => {\r\n \r\n this.desgntnLst = desginationResponse;\r\n this.designationList = []\r\n this.desgntnLst.push({label: \"Select Designation\", value: null})\r\n\r\n this.desgntnLst.forEach(element => {\r\n this.designationList.push({\r\n label: element.DesignationName,\r\n value: element.DesignationId\r\n });\r\n });\r\n return this.designationList;\r\n }\r\n \r\n // (error: any) => {\r\n // if (error._body != undefined && error._body != \"\")\r\n // this._commonService\r\n // .LogError(this.componentName, error._body)\r\n // .then((data: any) => {});\r\n // }\r\n );\r\n }\r\n\r\n \r\n onCreate() {\r\n \r\n if(this.newAssocaiteForm.valid){\r\n \r\n if (this.newAssocaiteForm.value.ddldesignationID) {\r\n this.newAssociate.DesignationId = this.newAssocaiteForm.value.ddldesignationID.Id;\r\n }else\r\n {\r\n this.newAssociate.DesignationId =0;\r\n this.newAssociate.Gender=\"\";\r\n }\r\n this.newAssociate.FirstName = this.newAssocaiteForm.value.firstName;\r\n this.newAssociate.LastName = this.newAssocaiteForm.value.lastName;\r\n this.newAssociate.MiddleName = this.newAssocaiteForm.value.middleName;\r\n this.newAssociate.EmploymentType = this.newAssocaiteForm.value.ddlemploymentType;\r\n this.newAssociate.TechnologyID = this.newAssocaiteForm.value.ddltechnology;\r\n this.newAssociate.DepartmentId = this.newAssocaiteForm.value.ddlDepartmentId;\r\n this.newAssociate.ManagerId = this.newAssocaiteForm.value.ddlmanagerId;\r\n this.newAssociate.HRAdvisorName = this.newAssocaiteForm.value.ddlHRAdvisorName;\r\n this.newAssociate.PersonalEmailAddress = this.newAssocaiteForm.value.PersonalEmailAddress;\r\n this.newAssociate.MobileNo = this.newAssocaiteForm.value.MobileNo;\r\n this.newAssociate.RecruitedBy = this.newAssocaiteForm.value.recruitedBy;\r\n this.newAssociate.DateofJoining = moment(this.newAssocaiteForm.value.dateOfJoining).format(\"YYYY-MM-DD\");\r\n this.newAssociate.JoinDate = this.newAssocaiteForm.value.dateOfJoining;\r\n\r\n this.newAssociate.JoinDate = new Date(this.newAssociate.DateofJoining);\r\n\r\n \r\n this.projectsService.create(this.newAssociate).subscribe((res:any) => {\r\n this.newAssociate.Id = res;\r\n \r\n if(res != null){\r\n this._snackBar.open(\r\n 'Prospective associate details saved successfully.',\r\n 'x',\r\n {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n this.onClear();\r\n setTimeout(() => \r\n {\r\n this._router.navigate([\"/associates/prospectiveassociate\"]);\r\n }, 1000);\r\n }\r\n else{\r\n this._snackBar.open(\r\n 'Failed to save prospective associate details.',\r\n 'x',\r\n {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n }\r\n },\r\n error => {\r\n this._snackBar.open(\r\n error.error,\r\n 'x',\r\n {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\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 First Name *\r\n \r\n First Name is Required\r\n \r\n
\r\n
\r\n \r\n Middle Name\r\n \r\n \r\n
\r\n
\r\n \r\n Last Name *\r\n \r\n Last Name is Required\r\n \r\n
\r\n
\r\n \r\n Personal Email ID *\r\n \r\n Personal Email Address is Required\r\n Enter Valid Email Address\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n Mobile Number *\r\n \r\n Mobile Number is Required\r\n Enter Valid Mobile Number\r\n \r\n
\r\n
\r\n \r\n Joining Date *\r\n \r\n \r\n close\r\n \r\n \r\n \r\n Joining Date is Required\r\n \r\n
\r\n
\r\n \r\n Designation*\r\n \r\n \r\n \r\n {{item.Name}}\r\n \r\n \r\n Designation is Required\r\n \r\n
\r\n
\r\n \r\n Grade *\r\n \r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n Employment Type *\r\n \r\n \r\n {{e.EmpType}}\r\n \r\n \r\n Employment Type is Required\r\n \r\n
\r\n
\r\n \r\n Department *\r\n \r\n \r\n {{d.Description}}\r\n \r\n \r\n Department is Required\r\n \r\n
\r\n
\r\n \r\n Technology *\r\n \r\n \r\n {{t.PracticeAreaDescription}}\r\n \r\n \r\n Technology is Required\r\n \r\n
\r\n
\r\n \r\n Manager *\r\n \r\n \r\n {{rm.EmpName}}\r\n \r\n \r\n Manager is Required\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n HR Advisor *\r\n \r\n \r\n {{hra.Name}}\r\n \r\n \r\n HR Advisor is Required\r\n\r\n \r\n
\r\n
\r\n \r\n Recruited By\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 { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { AssignRmForNonDeliveryService } from '../../services/assign-rm-for-non-delivery.service';\r\nimport { NonDeliveryAssociates } from '../../../onboarding/models/changeRM.model';\r\nimport { updateAssociateRMDetais } from '../../../onboarding/models/changeRM.model'\r\nimport { Router } from '@angular/router';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { ReplaySubject, Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-assign-rm-to-non-delivery',\r\n templateUrl: './assign-rm-to-non-delivery.component.html',\r\n styleUrls: ['./assign-rm-to-non-delivery.component.scss']\r\n})\r\nexport class AssignRmToNonDeliveryComponent implements OnInit {\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n nonDeliveryAssociates:NonDeliveryAssociates[] = [];\r\n selectedRmId:number;\r\n updateRmDetailsByEmpOrDept:updateAssociateRMDetais = new updateAssociateRMDetais() ;\r\n reportingManagerId = new FormControl('',[Validators.required]);\r\n public filteredAssociatesList: ReplaySubject = new ReplaySubject(1);\r\n public associatesFilterCtrl = new FormControl(null);\r\n protected _onDestroy = new Subject();\r\n\r\n constructor(@Inject(MAT_DIALOG_DATA) public data:any,public _service:AssignRmForNonDeliveryService,private router : Router,public dialogRef: MatDialogRef,private _snackBar : MatSnackBar) { }\r\n\r\n ngOnInit(): void {\r\n this.getAllNonDeliveryAssociates();\r\n }\r\n\r\n public getAllNonDeliveryAssociates() : void {\r\n this.nonDeliveryAssociates = [];\r\n this._service.getNonDeliveryAssociates().subscribe((res:NonDeliveryAssociates[])=>{\r\n this.nonDeliveryAssociates = res;\r\n this.filteredAssociatesList.next(this.nonDeliveryAssociates.slice());\r\n this.associatesFilterCtrl.valueChanges\r\n .pipe(takeUntil(this._onDestroy))\r\n .subscribe(() => {\r\n this.getFilteredAssociates();\r\n });\r\n },(error)=>{\r\n this._snackBar.open(\r\n 'Unable to Fetch Non Delivery Associates',\r\n 'x',\r\n {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n\r\n })\r\n \r\n }\r\n\r\n public onRmChange(event) : void{\r\n this.selectedRmId=event.value;\r\n }\r\n\r\n public saveRM() : void{\r\n if(this.reportingManagerId.valid){\r\n this.dialogRef.close();\r\n this.updateRmDetailsByEmpOrDept.ReportingManagerId = this.selectedRmId;\r\n this.updateRmDetailsByEmpOrDept.associates = this.data;\r\n this._service.assignRmByDeptOrByAssociate(this.updateRmDetailsByEmpOrDept).subscribe((res)=>{\r\n this._snackBar.open(\r\n 'Successfully Updated Reporting Manager',\r\n 'x',\r\n {\r\n duration: 3000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n this.router.navigate(['/associates/changeRM']);\r\n },(error)=>{\r\n this._snackBar.open(\r\n 'Failed Updating Reporting Manager',\r\n 'x',\r\n {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n })\r\n }\r\n else {\r\n this._snackBar.open(\r\n 'Please Select Reporting Manager',\r\n 'x',\r\n {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n }\r\n }\r\n\r\n onNoClick(){\r\n this.dialogRef.close();\r\n }\r\n\r\n getFilteredAssociates(){\r\n if (!this.nonDeliveryAssociates) {\r\n return;\r\n }\r\n // get the search keyword\r\n let search = this.associatesFilterCtrl.value;\r\n if (!search) {\r\n this.filteredAssociatesList.next(this.nonDeliveryAssociates.slice());\r\n return;\r\n } else {\r\n search = search.toLowerCase();\r\n }\r\n // filter the non delivery associates list\r\n this.filteredAssociatesList.next(\r\n this.nonDeliveryAssociates.filter(project => project.Name.toLowerCase().indexOf(search) > -1)\r\n );\r\n }\r\n\r\n}\r\n","\r\n

Choose Reporting Manager

\r\n\r\n
\r\n
\r\n \r\n Reporting Manager\r\n *\r\n \r\n \r\n \r\n \r\n \r\n {{item.Name}}\r\n \r\n \r\n Reporting Manager is\r\n Required\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ViewChild } from '@angular/core';\r\nimport { Qualification } from '../../models/education.model';\r\nimport { Associate } from '../../models/associate.model';\r\nimport { Inject } from '@angular/core';\r\n// import { Http } from '@angular/http';\r\nimport { EducationService } from '../../services/education.service';\r\nimport { Router } from '@angular/router';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Injector } from '@angular/core';\r\nimport { AppInjector } from '../../../shared/injector';\r\nimport * as moment from 'moment';\r\nimport { CommonService } from '../../../../core/services/common.service';\r\nimport { ProfessionalReferences, EmploymentDetails } from '../../models/employmentdetails.model';\r\nimport { EmploymentService } from '../../services/employment.service';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { MatTable, MatTableDataSource } from '@angular/material/table';\r\nimport {\r\n MatSnackBar,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition,\r\n} from '@angular/material/snack-bar';\r\nimport { FormGroup, Validators, FormBuilder, FormArray, FormControl } from '@angular/forms';\r\nimport { DateAdapter, MAT_DATE_LOCALE, MAT_DATE_FORMATS } from '@angular/material/core';\r\nimport { CommonDialogComponent } from '../../../shared/components/common-dialog/common-dialog.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MessageDialogComponent } from 'src/app/modules/project-life-cycle/components/message-dialog/message-dialog.component';\r\nimport { employeeDetails } from 'src/app/modules/master-layout/models/talentrequisitionhistory.model';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n// import {MomentDateAdapter} from '@angular/material-moment-adapter';\r\n\r\nexport const MY_FORMATS = {\r\n parse: {\r\n dateInput: 'LL',\r\n },\r\n display: {\r\n dateInput: 'YYYY-MM-DD',\r\n monthYearLabel: 'YYYY',\r\n dateA11yLabel: 'LL',\r\n monthYearA11yLabel: 'YYYY',\r\n },\r\n};\r\n@Component({\r\n selector: 'app-associate-employment',\r\n templateUrl: './associate-employment.component.html',\r\n styleUrls: ['./associate-employment.component.scss'],\r\n providers: [\r\n\r\n\r\n // {provide: MAT_DATE_FORMATS, useValue: MY_FORMATS},\r\n ],\r\n})\r\n\r\nexport class AssociateEmploymentComponent implements OnInit {\r\n constructor(public dialog: MatDialog, private snackBar: MatSnackBar, private _injector: Injector = AppInjector(),\r\n @Inject(EmploymentService) private _service: EmploymentService,\r\n // tslint:disable-next-line:variable-name\r\n @Inject(Router) private _router: Router, private actRoute: ActivatedRoute, public fb: FormBuilder,private spinner: NgxSpinnerService) {\r\n this._Associate.PrevEmploymentDetails = new Array();\r\n // tslint:disable-next-line:max-line-length\r\n // this._Associate.PrevEmploymentDetails.push({ ServiceFrom: null, ServiceTo: null, Name: '', Designation: '', Address: '', LeavingReason: '' });\r\n this._Associate.ProfReferences = new Array();\r\n // tslint:disable-next-line:max-line-length\r\n // this._Associate.ProfReferences.push({ Name: null, CompanyName: null, Designation: '', MobileNo: '', CompanyAddress: '', OfficeEmailAddress: '' });\r\n }\r\n\r\n id: number;\r\n _Associate = new Associate();\r\n themeAppearence = themeconfig.formfieldappearances;\r\n currentempID: number;\r\n dataSource: MatTableDataSource;\r\n dataSource2: MatTableDataSource;\r\n isProf:boolean = false;\r\n isEmp: boolean = false;\r\n isFormSubmitted: boolean = false;\r\n isProfFormSubmitted : boolean = false;\r\n\r\n @ViewChild('table') table: MatTable;\r\n @ViewChild('table2') table2: MatTable;\r\n private _serverURL: string;\r\n type: string = 'new';\r\n lastDate: Date;\r\n index: number;\r\n yearRange: string;\r\n emp: any;\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'right';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n PreviousEmployer: FormGroup;\r\n PreviousEmployerArray: FormArray;\r\n ProfessionalReferencesArray: FormArray;\r\n ProfessionalReferences: FormGroup;\r\n newEmployer: FormGroup;\r\n newProfRef: FormGroup;\r\n displayedColumnsPrevious: string[] = ['Name', 'Designation', 'Address', 'ServiceFrom', 'ServiceTo', 'LeavingReason', 'Action', 'Delete'];\r\n displayedColumnsProfReferences: string[] = ['Name', 'Designation', 'CompanyName', 'CompanyAddress', 'OfficeEmailAddress', 'MobileNo', 'ActionProf', 'DeleteProf'];\r\n dialogResponse: boolean;\r\n\r\n\r\n ngOnInit() {\r\n this.spinner.show()\r\n\r\n this.actRoute.params.subscribe(params => { this.id = params.id; });\r\n // this.id = 218; // 496\r\n this.currentempID = this.id;\r\n this.yearRange = (new Date().getFullYear() - 50) + ':' + (new Date().getFullYear() + 0);\r\n this.createInitialFormPrev();\r\n this.getEmploymentdetails(this.currentempID);\r\n this.getDates();\r\n }\r\n createInitialFormPrev() {\r\n this.PreviousEmployer = new FormGroup({\r\n PreviousEmployerArray: new FormArray([]),\r\n ProfessionalReferencesArray: new FormArray([])\r\n });\r\n }\r\n createFormGroupPrev() {\r\n\r\n this.PreviousEmployerArray = new FormArray([]);\r\n this.ProfessionalReferencesArray = new FormArray([]);\r\n this._Associate.PrevEmploymentDetails.forEach(PrevEmpDetails => {\r\n this.PreviousEmployerArray = this.PreviousEmployer.get('PreviousEmployerArray') as FormArray;\r\n this.PreviousEmployerArray.push(this.BuildForm(PrevEmpDetails));\r\n });\r\n this._Associate.ProfReferences.forEach(ProfDetails => {\r\n this.ProfessionalReferencesArray = this.PreviousEmployer.get('ProfessionalReferencesArray') as FormArray;\r\n this.ProfessionalReferencesArray.push(this.BuildFormProfRef(ProfDetails));\r\n });\r\n }\r\n get testArrayPrev(): FormArray {\r\n return this.PreviousEmployer.controls.PreviousEmployerArray as FormArray;\r\n }\r\n get testArrayProfRef(): FormArray {\r\n return this.PreviousEmployer.controls.ProfessionalReferencesArray as FormArray;\r\n }\r\n BuildForm(PrevEmpDetails): FormGroup {\r\n\r\n return new FormGroup({\r\n // tslint:disable-next-line:max-line-length\r\n Name: new FormControl(PrevEmpDetails.Name, [Validators.required,Validators.pattern('^[a-zA-Z ]*$'), Validators.maxLength(100)]),\r\n // tslint:disable-next-line:max-line-length\r\n Address: new FormControl(PrevEmpDetails.Address, [Validators.required,Validators.maxLength(256)]),\r\n // tslint:disable-next-line:max-line-length\r\n Designation: new FormControl(PrevEmpDetails.Designation, [Validators.required,Validators.pattern('^[a-zA-Z ]*$'), Validators.maxLength(25)]),\r\n ServiceFrom: new FormControl(PrevEmpDetails.ServiceFrom,[Validators.required]),\r\n ServiceTo: new FormControl(PrevEmpDetails.ServiceTo,[Validators.required]),\r\n LeavingReason: new FormControl(PrevEmpDetails.LeavingReason, [Validators.required,Validators.maxLength(100), Validators.pattern('^[a-zA-Z ]*$')])\r\n });\r\n }\r\n BuildFormProfRef(ProfDetails): FormGroup {\r\n\r\n return new FormGroup({\r\n Name: new FormControl(ProfDetails.Name, [Validators.required, Validators.pattern('^[a-zA-Z ]*$'), Validators.maxLength(30)]),\r\n Designation: new FormControl(ProfDetails.Designation, [Validators.required, Validators.pattern('^[a-zA-Z ]*$'), Validators.maxLength(25)]),\r\n CompanyName: new FormControl(ProfDetails.CompanyName, [Validators.required, Validators.pattern('^[a-zA-Z ]*$'), Validators.maxLength(100)]),\r\n CompanyAddress: new FormControl(ProfDetails.CompanyAddress, [Validators.required, Validators.maxLength(256)]),\r\n OfficeEmailAddress: new FormControl(ProfDetails.OfficeEmailAddress, [Validators.required, Validators.pattern('^[A-Za-z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-z0-9]{2,4}$')]),\r\n MobileNo: new FormControl(ProfDetails.MobileNo, [Validators.required, Validators.pattern('^[0-9]*$')])\r\n });\r\n }\r\n forAddress(event: any) {\r\n let k: any;\r\n k = event.charCode; // k = event.keyCode; (Both can be used)\r\n return ((k > 64 && k < 91) || (k > 96 && k < 123) || k === 8 || k === 32 || k === 92 || k === 35 || (k >= 44 && k <= 57));\r\n }\r\n\r\n omit_special_char(event: any) {\r\n let k: any;\r\n k = event.charCode; // k = event.keyCode; (Both can be used)\r\n return ((k > 64 && k < 91) || (k > 96 && k < 123) || k === 8 || k === 32 || k === 46 || k === 44 || (k >= 48 && k <= 57));\r\n }\r\n\r\n onlychar(event: any) {\r\n let k: any;\r\n k = event.charCode; // k = event.keyCode; (Both can be used)\r\n return ((k > 64 && k < 91) || (k > 96 && k < 123) || k === 8 || k === 32);\r\n }\r\n\r\n onNewEmployment(empdetails: EmploymentDetails, navigator) {\r\n // tslint:disable-next-line:max-line-length\r\n let PrevEmploymentLength = this._Associate.PrevEmploymentDetails.length;\r\n if (!this._Associate.PrevEmploymentDetails[PrevEmploymentLength - 1].ServiceFrom || !this._Associate.PrevEmploymentDetails[PrevEmploymentLength - 1].ServiceTo ||\r\n !this._Associate.PrevEmploymentDetails[PrevEmploymentLength - 1].Name || !this._Associate.PrevEmploymentDetails[PrevEmploymentLength - 1].Designation ||\r\n !this._Associate.PrevEmploymentDetails[PrevEmploymentLength - 1].Address || !this._Associate.PrevEmploymentDetails[PrevEmploymentLength - 1].LeavingReason) {\r\n return;\r\n }\r\n this._Associate.PrevEmploymentDetails.push({ ServiceFrom: null, ServiceTo: null, Name: null, Designation: null, Address: null, LeavingReason: null });\r\n this.PreviousEmployerArray = this.PreviousEmployer.get('PreviousEmployerArray') as FormArray;\r\n // tslint:disable-next-line:max-line-length\r\n this.PreviousEmployerArray.push(this.newEmployer = this.BuildForm({ ServiceFrom: null, ServiceTo: null, Name: null, Designation: null, Address: null, LeavingReason: null }));\r\n this.dynamicValidations('ServiceFrom', this.newEmployer)\r\n this.dynamicValidations('ServiceTo', this.newEmployer)\r\n this.dynamicValidations('Name', this.newEmployer)\r\n this.dynamicValidations('Designation', this.newEmployer)\r\n this.dynamicValidations('Address', this.newEmployer)\r\n this.dynamicValidations('LeavingReason', this.newEmployer)\r\n this.table.renderRows();\r\n return false;\r\n\r\n }\r\n\r\n dynamicValidations(control: string, newFormValidate: FormGroup){\r\n newFormValidate.controls[control].setErrors(null);\r\n newFormValidate.controls[control].clearValidators();\r\n newFormValidate.controls[control].updateValueAndValidity(); \r\n }\r\n\r\n\r\n onDeleteEmployment(index: number) {\r\n this.index = index;\r\n this.openDialog('Confirmation', 'Do you want to Delete ?');\r\n // this.DeleteEmployment();\r\n // this.table.renderRows();\r\n }\r\n\r\n openDialog(Heading, Message): void {\r\n const dialogRef = this.dialog.open(CommonDialogComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n width: '300px',\r\n data: { heading: Heading, message: Message }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.dialogResponse = result;\r\n if (this.dialogResponse == true) {\r\n this.DeleteEmployment();\r\n this.table.renderRows();\r\n const dialogConf = this.dialog.open(MessageDialogComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n width: '300px',\r\n data: { heading: 'Confirmation', message: 'Employee Details deleted successfully' }\r\n })\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n DeleteEmployment() {\r\n this._Associate.PrevEmploymentDetails.splice(this.index, 1);\r\n this.PreviousEmployerArray.removeAt(this.index);\r\n // this.snackBar.open('Previous Employment Details Deleted Successfully', 'x', {\r\n // duration: 5000,\r\n // horizontalPosition: this.horizontalPosition,\r\n // verticalPosition: this.verticalPosition,\r\n // });\r\n }\r\n OpenConfirmationDialog(type: string) { // method to open dialog\r\n\r\n }\r\n\r\n\r\n onNewProfRef(profdetails: ProfessionalReferences) {\r\n let profdetailslength = this._Associate.ProfReferences.length;\r\n if (!this._Associate.ProfReferences[profdetailslength - 1].Name || !this._Associate.ProfReferences[profdetailslength - 1].CompanyName || !this._Associate.ProfReferences[profdetailslength - 1].Designation ||\r\n !this._Associate.ProfReferences[profdetailslength - 1].MobileNo || !this._Associate.ProfReferences[profdetailslength - 1].CompanyAddress || !this._Associate.ProfReferences[profdetailslength - 1].OfficeEmailAddress) {\r\n return;\r\n }\r\n // tslint:disable-next-line:max-line-length\r\n this._Associate.ProfReferences.push({ Name: null, CompanyName: null, Designation: null, MobileNo: null, CompanyAddress: null, OfficeEmailAddress: null });\r\n this.ProfessionalReferencesArray = this.PreviousEmployer.get('ProfessionalReferencesArray') as FormArray;\r\n // tslint:disable-next-line:max-line-length\r\n this.ProfessionalReferencesArray.push(this.newProfRef = this.BuildFormProfRef({ Name: null, CompanyName: null, Designation: null, MobileNo: null, CompanyAddress: null, OfficeEmailAddress: null }));\r\n this.dynamicValidations('MobileNo',this.newProfRef)\r\n this.dynamicValidations('Name',this.newProfRef)\r\n this.dynamicValidations('CompanyName',this.newProfRef)\r\n this.dynamicValidations('Designation',this.newProfRef)\r\n this.dynamicValidations('CompanyAddress',this.newProfRef)\r\n this.dynamicValidations('OfficeEmailAddress',this.newProfRef)\r\n // tslint:disable-next-line:max-line-length\r\n this.table2.renderRows();\r\n return false;\r\n\r\n }\r\n\r\n\r\n onDeleteProfessionalRef(index: number) {\r\n this.index = index;\r\n this.openDialog2('Confirmation', 'Do you want to Delete ?');\r\n\r\n }\r\n\r\n openDialog2(Heading, Message): void {\r\n const dialogRef = this.dialog.open(CommonDialogComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n width: '300px',\r\n data: { heading: Heading, message: Message }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.dialogResponse = result;\r\n if (this.dialogResponse == true) {\r\n this.Delete();\r\n this.table2.renderRows();\r\n const dialogConf = this.dialog.open(MessageDialogComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n width: '300px',\r\n data: { heading: 'Confirmation', message: 'Professional Reference deleted successfully.' }\r\n })\r\n }\r\n });\r\n }\r\n\r\n\r\n Delete() {\r\n this._Associate.ProfReferences.splice(this.index, 1);\r\n this.ProfessionalReferencesArray.removeAt(this.index);\r\n }\r\n\r\n getDates() {\r\n // tslint:disable-next-line:one-variable-per-declaration\r\n let date = new Date(), y = date.getFullYear(), m = date.getMonth(), d = date.getDate();\r\n this.lastDate = new Date(y, m, d);\r\n }\r\n\r\n validate(toYear: Date, fromYear: Date): number {\r\n let count = 0;\r\n if (toYear && fromYear) {\r\n this._Associate.PrevEmploymentDetails.forEach((details: any) => {\r\n if (details.ServiceTo == toYear && details.ServiceFrom == fromYear) {\r\n {\r\n count++;\r\n }\r\n }\r\n });\r\n }\r\n\r\n if (count === 2) {\r\n // this.messageService.add({severity:'warn', summary: 'Warning Message', detail:'You cant select same service duration'});\r\n this.snackBar.open('You cannot select same service duration', 'x', {\r\n duration: 5000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n }\r\n return count;\r\n }\r\n\r\n clearInput(evt: any, fieldName, i): void {\r\n if(fieldName=='ServiceFrom'){\r\n evt.stopPropagation();\r\n this.testArrayPrev.controls[i].get('ServiceFrom').reset();\r\n }\r\n if(fieldName=='ServiceTo'){\r\n evt.stopPropagation();\r\n this.testArrayPrev.controls[i].get('ServiceTo').reset();\r\n }\r\n }\r\n\r\n getEmploymentdetails = function (empID: number) {\r\n \r\n\r\n this._Associate.empID = empID;\r\n this._service.GetEmploymentDetails(this.id).subscribe((res: any) => {\r\n // tslint:disable-next-line:prefer-for-of\r\n for (let i = 0; i < res.length; i++) {\r\n res[i].ServiceFrom = moment(res[i].ServiceFrom).format('YYYY-MM-DD');\r\n res[i].ServiceTo = moment(res[i].ServiceTo).format('YYYY-MM-DD');\r\n }\r\n this._Associate.PrevEmploymentDetails = res;\r\n if (this._Associate.PrevEmploymentDetails.length === 0) {\r\n // tslint:disable-next-line:max-line-length\r\n this._Associate.PrevEmploymentDetails.push({ ServiceFrom: null, ServiceTo: null, Name: '', Designation: '', Address: '', LeavingReason: '' });\r\n }\r\n // this.dataSource = new MatTableDataSource(this._Associate.PrevEmploymentDetails);\r\n this.createInitialFormPrev();\r\n this.createFormGroupPrev();\r\n\r\n });\r\n this._service.GetProfReferenceDetails(this.id).subscribe((res: any) => {\r\n this.spinner.hide()\r\n this._Associate.ProfReferences = res;\r\n if (this._Associate.ProfReferences.length !== 0) {\r\n this.type = 'edit';\r\n }\r\n if (this._Associate.ProfReferences.length === 0) {\r\n // tslint:disable-next-line:max-line-length\r\n this._Associate.ProfReferences.push({ Name: null, CompanyName: null, Designation: '', MobileNo: '', CompanyAddress: '', OfficeEmailAddress: '' });\r\n }\r\n // this.dataSource2 = new MatTableDataSource(this._Associate.ProfReferences);\r\n this.createInitialFormPrev();\r\n this.createFormGroupPrev();\r\n\r\n },(error)=>{\r\n this.spinner.hide()\r\n });\r\n\r\n };\r\n\r\n\r\n // tslint:disable-next-line:only-arrow-functions\r\n IsValidDate = function (fromDate: any, toDate: any) {\r\n if (Date.parse(fromDate) < Date.parse(toDate)) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n\r\n ValidatePrevEmployerdetails = function () {\r\n // tslint:disable-next-line:prefer-const\r\n let prevEmployerdetails = this._Associate.PrevEmploymentDetails;\r\n\r\n if (prevEmployerdetails.length === 1 && !prevEmployerdetails[0].Name) {\r\n return 3;\r\n }\r\n for (var count = 0; count < prevEmployerdetails.length; count++) {\r\n\r\n if (!prevEmployerdetails[count].Name || prevEmployerdetails[count].Name.trim().length === 0\r\n || !prevEmployerdetails[count].Address || prevEmployerdetails[count].Address.trim().length === 0\r\n || !prevEmployerdetails[count].Designation || prevEmployerdetails[count].Designation.trim().length === 0\r\n || !prevEmployerdetails[count].ServiceFrom\r\n || !prevEmployerdetails[count].ServiceTo) {\r\n\r\n if (count === (prevEmployerdetails.length - 1) && !prevEmployerdetails[count].Name) {\r\n return 3;\r\n }\r\n\r\n return 3;\r\n }\r\n if (!this.IsValidDate(prevEmployerdetails[count].ServiceFrom, prevEmployerdetails[count].ServiceTo)) {\r\n return 2;\r\n }\r\n }\r\n return 1;\r\n };\r\n\r\n ValidateProfReference = function () {\r\n let profReference = this._Associate.ProfReferences;\r\n if (profReference.length === 1 && !profReference[0].Name) {\r\n return false;\r\n }\r\n for (let count = 0; count < profReference.length; count++) {\r\n if (!profReference[count].Name || profReference[count].Name.trim().length === 0\r\n || !profReference[count].Designation || profReference[count].Name.trim().Designation === 0\r\n || !profReference[count].CompanyName || profReference[count].Name.trim().CompanyName === 0\r\n || !profReference[count].CompanyAddress || profReference[count].Name.trim().CompanyAddress === 0\r\n || !profReference[count].OfficeEmailAddress || profReference[count].Name.trim().OfficeEmailAddress === 0\r\n || !profReference[count].MobileNo) {\r\n if (count == (profReference.length - 1) && !profReference[count].Name) {\r\n return false;\r\n }\r\n return false;\r\n }\r\n };\r\n return true;\r\n }\r\n service(event, i) {\r\n this._Associate.PrevEmploymentDetails[i].ServiceFrom = moment(new Date(event.value)).format('YYYY-MM-DD');\r\n }\r\n serviceTo(event, i) {\r\n this._Associate.PrevEmploymentDetails[i].ServiceTo = moment(new Date(event.value)).format('YYYY-MM-DD');\r\n }\r\n CompanyNameChange(event, i) {\r\n this._Associate.PrevEmploymentDetails[i].Name = event.target.value;\r\n }\r\n AddressChange(event, i) {\r\n this._Associate.PrevEmploymentDetails[i].Address = event.target.value;\r\n }\r\n DesignationChange(event, i) {\r\n this._Associate.PrevEmploymentDetails[i].Designation = event.target.value;\r\n }\r\n LeavingReasonChange(event, i) {\r\n this._Associate.PrevEmploymentDetails[i].LeavingReason = event.target.value;\r\n }\r\n\r\n onSaveorUpdate(emp: Associate, isNew: boolean) {\r\n var today: any = new Date();\r\n today = today.getFullYear() + '/' + (today.getMonth() + 1) + '/' + today.getDate();\r\n var IsValidPrevEmployerdetail = this.ValidatePrevEmployerdetails();\r\n if (this.newEmployer !== undefined){\r\n this.isFormSubmitted = true;\r\n this.setRequiredValidations('ServiceFrom', this.newEmployer)\r\n this.setRequiredValidations('ServiceTo', this.newEmployer)\r\n this.setRequiredValidations('Name', this.newEmployer)\r\n this.setRequiredValidations('Designation', this.newEmployer)\r\n this.setRequiredValidations('Address', this.newEmployer)\r\n this.setRequiredValidations('LeavingReason', this.newEmployer)\r\n }\r\n if (this.newProfRef !== undefined){\r\n this.isProfFormSubmitted = true;\r\n this.setRequiredValidations('MobileNo',this.newProfRef)\r\n this.setRequiredValidations('Name',this.newProfRef)\r\n this.setRequiredValidations('CompanyName',this.newProfRef)\r\n this.setRequiredValidations('Designation',this.newProfRef)\r\n this.setRequiredValidations('CompanyAddress',this.newProfRef)\r\n this.setRequiredValidations('OfficeEmailAddress',this.newProfRef)\r\n }\r\n if (IsValidPrevEmployerdetail === 2) {\r\n // this.messageService.add({severity:'warn', summary: 'Warning Message', detail:'Invalid service duration'});\r\n this.snackBar.open('Invalid service duration', 'x', {\r\n duration: 5000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n return true;\r\n }\r\n\r\n if (IsValidPrevEmployerdetail === 3) {\r\n\r\n // this.messageService.add({severity:'warn', summary: 'Warning Message', detail:'Please complete Employer Reference details'});\r\n this.snackBar.open('Please complete Previous Employer details', 'x', {\r\n duration: 5000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n return true;\r\n }\r\n\r\n if (!this.ValidateProfReference()) {\r\n // this.messageService.add({severity:'warn', summary: 'Warning Message', detail:'Please complete Professional Reference details'});\r\n this.snackBar.open('Please complete Professional Reference details', 'x', {\r\n duration: 5000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n return true;\r\n }\r\n\r\n var profReference = this._Associate.ProfReferences;\r\n for (var count = 0; count < profReference.length; count++) {\r\n if (!this.validateEmail(profReference[count].OfficeEmailAddress)) {\r\n\r\n // this.messageService.add({severity:'warn', summary: 'Warning Message', detail:'Please enter valid email address. For ex:- abc@xyz.com'});\r\n return false;\r\n }\r\n if (profReference[count].MobileNo.length < 10) {\r\n\r\n // this.messageService.add({severity:'warn', summary: 'Warning Message', detail:'Please enter valid contact number.'});\r\n return false;\r\n }\r\n }\r\n\r\n var prevEmployerdetails = this._Associate.PrevEmploymentDetails;\r\n for (var count = 0; count < prevEmployerdetails.length; count++) {\r\n\r\n if (!this.IsValidDate(prevEmployerdetails[count].ServiceFrom, today)) {\r\n // this.messageService.add({severity:'warn', summary: 'Warning Message', detail:'From date should not be greater than today date.'});\r\n this.snackBar.open('From date should not be greater than today date.', 'x', {\r\n duration: 5000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n return false;\r\n }\r\n if (!this.IsValidDate(prevEmployerdetails[count].ServiceTo, today)) {\r\n // this.messageService.add({severity:'warn', summary: 'Warning Message', detail:'To date should not be greater than or equal to today date.'});\r\n this.snackBar.open('To date should not be greater than or equal to today date.', 'x', {\r\n duration: 5000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n return false;\r\n }\r\n }\r\n\r\n this._Associate.EmpId = this.currentempID;\r\n this._service.SaveEmploymentDetails(this._Associate).subscribe((data) => {\r\n if (isNew) {\r\n this.snackBar.open('Employment details saved successfully.', 'x', {\r\n duration: 5000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n }\r\n else{\r\n this.snackBar.open('Employment details updated successfully.', 'x', {\r\n duration: 5000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n }\r\n this.getEmploymentdetails(this.currentempID);\r\n }, (error) => {\r\n // this.messageService.add({severity:'error', summary: 'Error Message', detail:'Failed to save employment details!'});\r\n this.snackBar.open('Failed to save employment details!', 'x', {\r\n duration: 5000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n });\r\n \r\n return false;\r\n }\r\n\r\n setRequiredValidations(formControl:string, newDetails: FormGroup){\r\n newDetails.controls[formControl].setValidators([Validators.required])\r\n newDetails.controls[formControl].updateValueAndValidity();\r\n if (formControl === 'LeavingReason'){\r\n this.isFormSubmitted = false;\r\n newDetails.controls[formControl].setValidators([Validators.required,Validators.maxLength(100), Validators.pattern('^[a-zA-Z ]*$')])\r\n newDetails.controls[formControl].updateValueAndValidity();\r\n } \r\n else if (formControl === 'Designation'){\r\n newDetails.controls[formControl].setValidators([Validators.required,Validators.pattern('^[a-zA-Z ]*$'), Validators.maxLength(25)])\r\n newDetails.controls[formControl].updateValueAndValidity();\r\n }\r\n\r\n else if (formControl === 'Address'){\r\n newDetails.controls[formControl].setValidators([Validators.required,Validators.maxLength(256)])\r\n newDetails.controls[formControl].updateValueAndValidity();\r\n }\r\n\r\n else if (formControl === 'Name'){\r\n newDetails.controls[formControl].setValidators([Validators.required,Validators.pattern('^[a-zA-Z ]*$'), Validators.maxLength(100)])\r\n newDetails.controls[formControl].updateValueAndValidity();\r\n }\r\n else if (formControl === 'OfficeEmailAddress'){\r\n this.isProfFormSubmitted = false \r\n newDetails.controls[formControl].setValidators([Validators.required, Validators.pattern('^[A-Za-z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-z0-9]{2,4}$')])\r\n newDetails.controls[formControl].updateValueAndValidity();\r\n } \r\n else if (formControl === 'CompanyName'){\r\n newDetails.controls[formControl].setValidators([Validators.required,Validators.pattern('^[a-zA-Z ]*$'), Validators.maxLength(100)])\r\n newDetails.controls[formControl].updateValueAndValidity();\r\n }\r\n else if (formControl === 'MobileNo'){\r\n newDetails.controls[formControl].setValidators([Validators.required,Validators.pattern('^[0-9]*$')])\r\n newDetails.controls[formControl].updateValueAndValidity();\r\n }\r\n }\r\n\r\n onlyForNumbers(event: any) {\r\n var keys = {\r\n 'escape': 27, 'backspace': 8, 'tab': 9, 'enter': 13,\r\n '0': 48, '1': 49, '2': 50, '3': 51, '4': 52, '5': 53, '6': 54, '7': 55, '8': 56, '9': 57\r\n };\r\n for (var index in keys) {\r\n if (!keys.hasOwnProperty(index)) continue;\r\n if (event.charCode == keys[index] || event.keyCode == keys[index]) {\r\n return; //default event\r\n }\r\n }\r\n event.preventDefault();\r\n }\r\n validateEmail(email: any) {\r\n var filter = /^[\\w\\-\\.\\+]+\\@[a-zA-Z0-9\\.\\-]+\\.[a-zA-z0-9]{2,4}$/;\r\n if (filter.test(email)) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n onlyStrings(event: any) {\r\n let k: any;\r\n k = event.charCode; // k = event.keyCode; (Both can be used)\r\n return ((k > 64 && k < 91) || (k > 96 && k < 123) || k === 8 || k === 32 || k === 44 || k === 46);\r\n }\r\n\r\n}\r\n","\r\n
\r\n
\r\n

Previous Employer Details

\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 \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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
Company Name\r\n *\r\n \r\n \r\n \r\n Company Name is required\r\n Maximum 100 characters are allowed\r\n Only Alphabets are allowed\r\n \r\n Company Address\r\n *\r\n \r\n \r\n \r\n Company Address is required\r\n Maximum 100 characters are allowed\r\n \r\n Designation\r\n *\r\n \r\n \r\n \r\n Designation is required\r\n Maximum 25 characters are allowed\r\n Only Alphabets are allowed\r\n \r\n Service From *\r\n \r\n \r\n Choose From date\r\n \r\n \r\n close\r\n \r\n \r\n \r\n Service From is required\r\n \r\n Service To *\r\n \r\n \r\n Choose To date\r\n \r\n \r\n close\r\n \r\n \r\n \r\n Service To is required\r\n \r\n Reason for Leaving\r\n *\r\n \r\n \r\n \r\n Reason for Leaving is required\r\n Maximum 256 characters are allowed\r\n Only Alphabets are allowed\r\n \r\n Action \r\n \r\n delete
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

Professional Reference

\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 \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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Name\r\n *\r\n \r\n \r\n \r\n Name is required\r\n Maximum 30 characters are allowed\r\n Only Alphabets are allowed\r\n \r\n Designation\r\n *\r\n \r\n \r\n \r\n Designation is required\r\n Maximum 25 characters are allowed\r\n Only Alphabets are allowed\r\n \r\n Company Name\r\n *\r\n \r\n \r\n \r\n Company Name is required\r\n Maximum 25 characters are allowed\r\n \r\n Company Address\r\n *\r\n \r\n \r\n \r\n Company Address is required\r\n Maximum 100 characters are allowed\r\n \r\n Official Email Address\r\n *\r\n \r\n \r\n \r\n Office Email Address is required\r\n Maximum 25 characters are allowed\r\n Enter Valid Office Email Address\r\n \r\n Contact Number\r\n *\r\n \r\n \r\n \r\n Contact Number is required\r\n Enter Valid Contact Number\r\n Enter Valid Contact Number\r\n \r\n Action \r\n \r\n delete
\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

Loading ...

\r\n
\r\n\r\n","import { Component, OnInit , ViewChild,Inject} from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { AssociatejoiningService } from '../../services/associatejoining.service';\r\nimport { Associate } from '../../models/associate.model';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { FormGroupDirective} from '@angular/forms';\r\nimport * as moment from 'moment';\r\nimport { NavService } from '../../../master-layout/services/nav.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\n@Component({\r\n selector: 'app-associate-joining',\r\n templateUrl: './associate-joining.component.html',\r\n styleUrls: ['./associate-joining.component.scss']\r\n})\r\nexport class AssociateJoiningComponent implements OnInit {\r\n\r\n associateList : Associate[]; \r\n selectedRow : Associate;\r\n\r\n displayedColumns: string[] = [\r\n 'Name',\r\n 'TechnologyName',\r\n 'DesignationName',\r\n 'DepartmentCode',\r\n 'JoinDate',\r\n 'Hradvisor',\r\n 'Edit'\r\n ];\r\n\r\n dataSource: MatTableDataSource;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n subscription: any;\r\n\r\n constructor(private _associatejoingService : AssociatejoiningService,public navService: NavService,@Inject(Router) private _router: Router,private spinner: NgxSpinnerService){\r\n this.getAssociatejoiningList();\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getAssociatejoiningList();\r\n }\r\n \r\n getAssociatejoiningList(){\r\n this.spinner.show();\r\n this._associatejoingService.getAssociates().subscribe((res: any) => { this.associateList = res;\r\n this.associateList.forEach((r:any) => {\r\n if(r.JoinDate != null)\r\n r.JoinDate= moment(r.JoinDate).format('YYYY-MM-DD');\r\n else r.JoinDate=\"\";\r\n });\r\n \r\n this.dataSource = new MatTableDataSource(this.associateList );\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.spinner.hide();\r\n this.dataSource.sortingDataAccessor = (data: any, sortHeaderId: string): string => {\r\n if (typeof data[sortHeaderId] === 'string') {\r\n return data[sortHeaderId].toLocaleLowerCase();\r\n }\r\n \r\n return data[sortHeaderId];\r\n };\r\n });\r\n \r\n }\r\n\r\n editAssociatejoining(currentAssociate: Associate) {\r\n let subType = \"profileupdate\";\r\n currentAssociate.associateType = currentAssociate.EmployeeId != 0 ? \"edit\" : \"new\";\r\n this._router.navigate(['/associates/prospectivetoassociate/' + currentAssociate.associateType + '/' + currentAssociate.EmployeeId + '/' + subType]);\r\n}\r\n\r\napplyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n if (filterValue){\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n // this.dataSource = new MatTableDataSource(this.dataSource.filteredData);\r\n }\r\n else{\r\n this.dataSource = new MatTableDataSource(this.associateList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.dataSource.sortingDataAccessor = (data: any, sortHeaderId: string): string => {\r\n if (typeof data[sortHeaderId] === 'string') {\r\n return data[sortHeaderId].toLocaleLowerCase();\r\n }\r\n \r\n return data[sortHeaderId];\r\n };\r\n }\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.associateList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.dataSource.sortingDataAccessor = (data: any, sortHeaderId: string): string => {\r\n if (typeof data[sortHeaderId] === 'string') {\r\n return data[sortHeaderId].toLocaleLowerCase();\r\n }\r\n \r\n return data[sortHeaderId];\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 \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\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Name {{asstJoin.Name}} Technology {{asstJoin.TechnologyName}} Designation {{asstJoin.DesignationName}} Department {{asstJoin.DepartmentCode}} Joining Date {{asstJoin.JoinDate}} Advisor {{asstJoin.Hradvisor}} Edit \r\n edit\r\n
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n

Loading ...

\r\n
","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { ParkingServiceService } from '../../services/parking-service.service';\r\nimport { BookParkingSlot } from '../../models/bookParking.model'\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { FormControl, Validators } from '@angular/forms';\r\n\r\ninterface slotsData {\r\n TotalSlotCount: number;\r\n AvailableSlotCount: number;\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'app-associate-parking',\r\n templateUrl: './associate-parking.component.html',\r\n styleUrls: ['./associate-parking.component.scss']\r\n})\r\nexport class AssociateParkingComponent implements OnInit {\r\n TotalSlots: number = 0;\r\n AvailableSlots: number = 0;\r\n BookedSlots: number = 0;\r\n message: string = '';\r\n status: string = '';\r\n today = new Date();\r\n slotsInfo: slotsData;\r\n dataRefresher: any;\r\n slotsAvailbilityMsg: string = '';\r\n bookedTime: string = '';\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n vehicleNo = new FormControl('', [Validators.required]);\r\n disableVehiceNumber:boolean = false;\r\n selectedPlace : string='GALAXY';\r\n //parkingLocations = ['GALAXY', 'SHILPARAMAM'];\r\n parkingLocations = ['GALAXY'];\r\n\r\n\r\n constructor(private service: ParkingServiceService, private _snackBar: MatSnackBar) {\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getSlotsData();\r\n this.refreshData();\r\n this.getAssociateBookingInfo();\r\n }\r\n\r\n bookSlot() {\r\n if (this.vehicleNo.valid) {\r\n let saveObj: BookParkingSlot = new BookParkingSlot();\r\n let email = this.getLoggedInEmail();\r\n saveObj.emailID = email;\r\n saveObj.vehicleNumber = this.vehicleNo.value;\r\n saveObj.placeName = this.selectedPlace;\r\n this.service.bookSlot(saveObj).subscribe((res: any) => {\r\n if (res.IsSuccessful == true) {\r\n this.getSlotsData();\r\n this.getAssociateBookingInfo();\r\n this._snackBar.open('Slot Booked Successfully', 'x', {\r\n duration: 5000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n }\r\n }, (error) => {\r\n this._snackBar.open('Error occurred while booking. Please try again!', 'x', {\r\n duration: 5000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n })\r\n }\r\n\r\n else{\r\n this._snackBar.open('Please Enter Vehicle Number', 'x', {\r\n duration: 5000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n }\r\n\r\n getSlotsData() {\r\n if(this.selectedPlace){\r\n this.service.getSlots(this.selectedPlace).subscribe((res: any) => {\r\n this.slotsInfo = res.Item;\r\n this.AvailableSlots = this.slotsInfo.AvailableSlotCount;\r\n this.TotalSlots = this.slotsInfo.TotalSlotCount;\r\n this.BookedSlots = (this.TotalSlots - this.AvailableSlots);\r\n if (this.slotsInfo.AvailableSlotCount\r\n <= 0) {\r\n this.slotsAvailbilityMsg = \" Slots are not available for today \";\r\n }\r\n }, (error) => {\r\n \r\n })\r\n }\r\n }\r\n\r\n refreshData() {\r\n this.dataRefresher = setInterval(() => {\r\n this.getSlotsData();\r\n }, 3000);\r\n }\r\n\r\n ngOnDestroy() {\r\n clearInterval(this.dataRefresher);\r\n }\r\n\r\n getAssociateBookingInfo() {\r\n let email = this.getLoggedInEmail();\r\n this.service.getAssociateBookingInfoByEmailId(email).subscribe((res: any) => {\r\n this.vehicleNo.setValue(res.Item.VehicleNumber);\r\n // this.selectedPlace = res.Item.PlaceName;\r\n if (res.Item.IsSlotBooked == true) {\r\n this.bookedTime = res.Item.BookingTime;\r\n this.message = 'Slot booked ';\r\n this.status = 'booked';\r\n this.disableVehiceNumber = true;\r\n \r\n }\r\n else {\r\n this.status = '';\r\n this.disableVehiceNumber = false;\r\n }\r\n\r\n }, (error) => {\r\n this.status = '';\r\n this._snackBar.open(error.Message, 'x', {\r\n duration: 5000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n })\r\n }\r\n\r\n onlyAlphaNumeric(event) {\r\n let regex: RegExp = /^([a-zA-Z0-9 ]*)$/;\r\n if (!regex.test(event.key)) {\r\n this._snackBar.open(\r\n 'Special Characters are not allowed',\r\n 'x',\r\n {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n releaseSlot(){\r\n let email = this.getLoggedInEmail();\r\n this.service.releaseParkingSlot(email).subscribe((res:any)=>{\r\n if(res.IsSuccessful == true){\r\n this.getAssociateBookingInfo();\r\n this.getSlotsData();\r\n this.status = '';\r\n this._snackBar.open(\r\n 'Parking Slot Released Successfully',\r\n 'x',\r\n {\r\n duration: 3000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n }\r\n })\r\n }\r\n\r\n getLoggedInEmail() {\r\n return JSON.parse(\r\n sessionStorage.AssociatePortal_UserInformation\r\n ).email;\r\n }\r\n\r\n onPlaceChange(e){\r\n this.selectedPlace = e.value;\r\n this.getSlotsData();\r\n }\r\n\r\n}\r\n\r\n\r\n","\r\n \r\n
\r\n

Location :   \r\n GALAXY\r\n \r\n \r\n

\r\n \r\n
\r\n
\r\n
\r\n
\r\n Vehicle Number :\r\n
\r\n
\r\n \r\n Vehicle Number *\r\n \r\n Vehicle Number is Required\r\n \r\n  \r\n for {{today | date}}\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 \r\n \r\n
Total SlotsAvailable SlotsBooked Slots
{{TotalSlots}}{{AvailableSlots}}{{BookedSlots}}
\r\n
\r\n
\r\n insert_emoticon\r\n {{message}} at {{selectedPlace | titlecase}} at {{bookedTime}}\r\n
\r\n\r\n
\r\n {{slotsAvailbilityMsg}} at {{selectedPlace | titlecase}}\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Component, OnInit, Inject, TemplateRef, ViewChildren, QueryList } from '@angular/core';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { MemberShip, Certification, Professional } from '../../models/professionaldetails.model';\r\nimport { ProfessionalService } from '../../services/professional.service';\r\nimport { CommonService } from '../../../../core/services/common.service';\r\nimport { MasterDataService } from '../../../master-layout/services/masterdata.service';\r\nimport { FormGroup, FormGroupDirective } from '@angular/forms';\r\nimport { DropDownType, SkillGroupDropDown, SkillDropDown } from '../../../master-layout/models/dropdowntype.model';\r\nimport { ViewChild } from '@angular/core';\r\nimport { FormBuilder } from '@angular/forms';\r\nimport { ProgramType } from '../../../shared/utility/enums';\r\nimport { Validators } from '@angular/forms';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatDialogConfig } from '@angular/material/dialog';\r\n\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport {\r\n MatSnackBar,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition,\r\n} from '@angular/material/snack-bar';\r\nimport { CommonDialogComponent } from '../../../shared/components/common-dialog/common-dialog.component';\r\nimport { MessageDialogComponent } from 'src/app/modules/project-life-cycle/components/message-dialog/message-dialog.component';\r\nimport { ConstantPool } from '@angular/compiler';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\n\r\n@Component({\r\n selector: 'app-associate-professional',\r\n templateUrl: './associate-professional.component.html',\r\n styleUrls: ['./associate-professional.component.scss']\r\n})\r\nexport class AssociateProfessionalComponent implements OnInit {\r\n myForm: FormGroup;\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'right';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n formSubmitted: boolean = false;\r\n employeeId: number;\r\n themeAppearence = themeconfig.formfieldappearances;\r\n certificationList: Professional[] = [];\r\n memberShipList: Professional[] = [];\r\n professionalList: Professional[];\r\n professionalDetail: Professional;\r\n programType: DropDownType[];\r\n professionalType: number;\r\n deleteID: number;\r\n skillGroups: DropDownType[];\r\n skills: DropDownType[];\r\n certification: boolean = false;\r\n membership: boolean = false;\r\n addDisplay: boolean = false;\r\n inputDisable: boolean = false;\r\n deletedisplay: boolean = false;\r\n dialogResponse: boolean;\r\n skillGroupID: number;\r\n date = new Date();\r\n upDateId: number;\r\n validYear: number;\r\n validFromErrorMessage: string = \"\";\r\n validUpToErrorMessage: string = \"\";\r\n dataSource: MatTableDataSource;\r\n dataSource2: MatTableDataSource;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n\r\n @ViewChildren(MatPaginator) paginator = new QueryList();\r\n @ViewChildren(MatSort) sort = new QueryList();\r\n @ViewChild('AssociateProfessionalDialog') associateProfessionalDialog: TemplateRef;\r\n\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n private resources = servicePath.API.PagingConfigValue;\r\n\r\n private AssociateProfessionalDialogRef: MatDialogRef>;\r\n certificationCols = [\r\n { field: 'SkillGroupName', header: 'SkillGroupName' },\r\n { field: 'SkillName', header: 'SkillName' },\r\n { field: 'Institution', header: 'Institution' },\r\n { field: 'Specialization', header: 'Specialization' },\r\n { field: 'ValidFrom', header: 'ValidFrom' },\r\n { field: 'ValidUpto', header: 'ValidUpto' }\r\n ];\r\n displayedColumns = ['SkillGroupName', 'SkillName', 'Institution', 'Specialization', 'ValidFrom', 'ValidUpto', 'Action', 'Delete'];\r\n membershipCols = [\r\n { field: 'ProgramTitle', header: 'MembershipTitle' },\r\n { field: 'Institution', header: 'Institution' },\r\n { field: 'Specialization', header: 'Specialization' },\r\n { field: 'ValidFrom', header: 'ValidFrom' },\r\n { field: 'ValidUpto', header: 'ValidUpto' }\r\n ];\r\n membershipCols1 = ['MembershipTitle', 'Institution', 'Specialization', 'ValidFrom', 'ValidUpto', 'Action2', 'Delete2'];\r\n\r\n\r\n constructor(public dialog: MatDialog, private snackBar: MatSnackBar, public fb: FormBuilder, private actRoute: ActivatedRoute, private _common: CommonService, private _professionalService: ProfessionalService, private masterDataService: MasterDataService,private spinner: NgxSpinnerService) {\r\n this.programType = new Array();\r\n this.skillGroups = new Array();\r\n this.skills = new Array();\r\n this.professionalList = new Array();\r\n this.professionalDetail = new Professional();\r\n this.PageSize = this.resources.PageSize;\r\n this.PageDropDown = this.resources.PageDropDown;\r\n }\r\n\r\n ngOnInit() {\r\n this.spinner.show()\r\n this.formSubmitted = false;\r\n this.actRoute.params.subscribe(params => { this.employeeId = params.id; });\r\n // this.employeeId = 219;\r\n this.skillGroupID = -1;\r\n this.professionalType = -1;\r\n this.upDateId = -1;\r\n this.deleteID = -1;\r\n this.deletedisplay = false;\r\n this.formSubmitted = false;\r\n this.inputDisable = false;\r\n this.certification = false;\r\n this.membership = false;\r\n this.addDisplay = false;\r\n this.programType.push({ label: 'Certificate', value: ProgramType.certification });\r\n this.programType.push({ label: 'Member Ship', value: ProgramType.membership });\r\n this.myForm = this.fb.group({\r\n programType: [null, [Validators.required]],\r\n skillGroupId: [null, null],\r\n skillId: [null, null],\r\n programTitle: [null, [Validators.pattern('[A-Za-z][a-zA-Z\\\\s]{2,64}')]],\r\n specialization: [null, [Validators.required, Validators.pattern('^[a-zA-Z ]*$')]],\r\n institution: [null, [Validators.required, Validators.pattern('^[a-zA-Z ]*$')]],\r\n validFrom: [null, [Validators.required, Validators.pattern('(19|20)[0-9]{2}$')]],\r\n validUpTo: [null, [Validators.required, Validators.pattern('(19|20)[0-9]{2}$')]]\r\n });\r\n this.getProfessionalDetail();\r\n this.skillGroups = [];\r\n this.skillGroups.push({ label: 'Select Skill Group', value: null });\r\n this.skills = [];\r\n this.skills.push({ label: 'Select Skill Name', value: null });\r\n }\r\n applyFilter(event: Event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n applyFilter1(event: Event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource2.filter = filterValue.trim().toLowerCase();\r\n }\r\n openDialog(): void {\r\n const dialogConfig = new MatDialogConfig();\r\n this.AssociateProfessionalDialogRef = this.dialog.open(this.associateProfessionalDialog, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n });\r\n\r\n\r\n this.AssociateProfessionalDialogRef.afterClosed().subscribe(result => {\r\n });\r\n }\r\n closeDialog() {\r\n this.AssociateProfessionalDialogRef.close();\r\n }\r\n getProfessionalDetail() {\r\n this._professionalService.getProfessionalDetails(this.employeeId).subscribe((professionalList: Professional[]) => {\r\n this.spinner.hide()\r\n this.fillCertifications(professionalList);\r\n this.fillMembership(professionalList);\r\n }, (error: any) => {\r\n this.spinner.hide()\r\n this.snackBar.open('Failed to get Professional Details', 'x', {\r\n duration: 5000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n });\r\n }\r\n fillCertifications(professionalList: Array) {\r\n this.certificationList = professionalList.filter(x => x.ProgramType === ProgramType.certification);\r\n this.dataSource = new MatTableDataSource(this.certificationList);\r\n this.dataSource.paginator = this.paginator.toArray()[0];\r\n this.dataSource.sort = this.sort.toArray()[0];\r\n return this.certificationList;\r\n }\r\n fillMembership(professionalList: Array) {\r\n this.memberShipList = professionalList.filter(x => x.ProgramType === ProgramType.membership);\r\n this.dataSource2 = new MatTableDataSource(this.memberShipList);\r\n this.dataSource2.paginator = this.paginator.toArray()[1];\r\n this.dataSource2.sort = this.sort.toArray()[1];\r\n return this.memberShipList;\r\n }\r\n getSkillGroup() {\r\n this._professionalService.getSkillGroupCertificate().subscribe((skillGroupList: SkillGroupDropDown[]) => {\r\n this.skillGroups = [];\r\n skillGroupList.forEach((e: SkillGroupDropDown) => {\r\n this.skillGroups.push({ label: e.SkillGroupName, value: e.SkillGroupId })\r\n });\r\n }, (error: any) => {\r\n // this.messageService.add({severity:'error', summary: 'Error Message', detail:'Failed to get Skill Group List.'});\r\n this.snackBar.open('Failed to get Skill Group List.', 'x', {\r\n duration: 5000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n });\r\n }\r\n skilGroupChange(event: any) {\r\n this.professionalDetail.SkillGroupId = this.myForm.controls.skillGroupId.value;\r\n this.skillGroupID = -1;\r\n this.skillGroupID = event.value;\r\n this.myForm.controls.skillId.setValue(null);\r\n this.getSkillNames();\r\n }\r\n getSkillNames() {\r\n this.masterDataService.GetSkillsBySkillGroups(this.skillGroupID).subscribe((skillList: SkillDropDown[]) => {\r\n this.skills = [];\r\n this.skills.push({ label: 'Select Skill Name', value: null });\r\n skillList.forEach((e: SkillDropDown) => {\r\n this.skills.push({ label: e.SkillName, value: e.SkillId });\r\n });\r\n\r\n }, (error: any) => {\r\n this.snackBar.open('Failed to get Skill Group List.', 'x', {\r\n duration: 5000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n });\r\n }\r\n addCertificationOrMembership() {\r\n this.getSkillGroup();\r\n this.getSkillNames();\r\n this.validFromErrorMessage = '';\r\n this.validUpToErrorMessage = '';\r\n this.myForm.reset();\r\n this.formSubmitted = false;\r\n this.inputDisable = false;\r\n if (this.inputDisable) {\r\n this.myForm.controls.programType.disable();\r\n this.myForm.controls.skillGroupId.disable();\r\n this.myForm.controls.skillId.disable();\r\n }\r\n else {\r\n this.myForm.controls.programType.enable();\r\n this.myForm.controls.skillGroupId.enable();\r\n this.myForm.controls.skillId.enable();\r\n }\r\n this.professionalDetail.ProgramType = null;\r\n this.membership = false;\r\n this.certification = false;\r\n this.addDisplay = true;\r\n this.openDialog();\r\n }\r\n programTypeChange(event: any) {\r\n this.professionalDetail.ProgramType = this.myForm.controls.programType.value;\r\n this.validFromErrorMessage = '';\r\n this.validUpToErrorMessage = '';\r\n this.myForm.controls.programType.setValue(event.value);\r\n if (event.value === ProgramType.certification) {\r\n this.myForm.controls.skillGroupId.reset();\r\n this.myForm.controls.skillId.reset();\r\n this.myForm.controls.institution.reset();\r\n this.myForm.controls.specialization.reset();\r\n this.myForm.controls.institution.reset();\r\n this.myForm.controls.validFrom.reset();\r\n this.myForm.controls.validUpTo.reset();\r\n }\r\n if (event.value === ProgramType.membership) {\r\n this.myForm.controls.programTitle.reset();\r\n this.myForm.controls.institution.reset();\r\n this.myForm.controls.specialization.reset();\r\n this.myForm.controls.institution.reset();\r\n this.myForm.controls.validFrom.reset();\r\n this.myForm.controls.validUpTo.reset();\r\n }\r\n this.formSubmitted = false;\r\n if (event.value === ProgramType.certification) {\r\n this.certification = true;\r\n this.membership = false;\r\n }\r\n else if (event.value === ProgramType.membership) {\r\n this.membership = true;\r\n this.certification = false;\r\n }\r\n else {\r\n this.membership = false;\r\n this.certification = false;\r\n }\r\n\r\n }\r\n getCertificationEdit(event: any) {\r\n this.openDialog();\r\n this.skillGroupID = event.SkillGroupId;\r\n this.getSkillGroup();\r\n this.getSkillNames();\r\n this.addDisplay = true;\r\n this.certification = true;\r\n this.membership = false;\r\n this.inputDisable = true;\r\n this.upDateId = event.Id;\r\n if (this.inputDisable) {\r\n this.myForm.controls.programType.disable();\r\n this.myForm.controls.skillGroupId.disable();\r\n this.myForm.controls.skillId.disable();\r\n }\r\n else {\r\n this.myForm.controls.programType.enable();\r\n this.myForm.controls.skillGroupId.enable();\r\n this.myForm.controls.skillId.enable();\r\n }\r\n this.myForm.controls.programType.setValue(event.ProgramType);\r\n this.myForm.controls.skillGroupId.setValue(event.SkillGroupId);\r\n this.myForm.controls.skillId.setValue(event.CertificationId);\r\n this.myForm.controls.institution.setValue(event.Institution);\r\n this.myForm.controls.specialization.setValue(event.Specialization);\r\n this.myForm.controls.validFrom.setValue(event.ValidFrom);\r\n this.myForm.controls.validUpTo.setValue(event.ValidUpto);\r\n this.professionalDetail.ProgramType = event.ProgramType;\r\n this.professionalDetail.SkillGroupId = event.SkillGroupId;\r\n this.professionalDetail.CertificationId = event.CertificationId;\r\n this.professionalDetail.Specialization = event.Specialization;\r\n this.professionalDetail.Institution = event.Institution;\r\n this.professionalDetail.ValidFrom = event.ValidFrom;\r\n this.professionalDetail.ValidUpto = event.ValidUpto;\r\n this.professionalDetail.ProgramType = event.ProgramType;\r\n this.professionalDetail.SkillGroupId = event.SkillGroupId;\r\n this.professionalDetail.CertificationId = event.CertificationId;\r\n this.professionalDetail.Specialization = event.Specialization;\r\n this.professionalDetail.Institution = event.Institution;\r\n this.professionalDetail.ValidFrom = event.ValidFrom;\r\n this.professionalDetail.ValidUpto = event.ValidUpto;\r\n }\r\n getMembershipEdit(event: any) {\r\n this.openDialog();\r\n this.membership = true;\r\n this.certification = false;\r\n this.inputDisable = true;\r\n if (this.inputDisable) {\r\n this.myForm.controls.programType.disable();\r\n this.myForm.controls.skillGroupId.disable();\r\n this.myForm.controls.skillId.disable();\r\n }\r\n else {\r\n this.myForm.controls.programType.enable();\r\n this.myForm.controls.skillGroupId.enable();\r\n this.myForm.controls.skillId.enable();\r\n }\r\n this.upDateId = event.Id;\r\n this.myForm.controls.programType.setValue(event.ProgramType);\r\n this.myForm.controls.institution.setValue(event.Institution);\r\n this.myForm.controls.specialization.setValue(event.Specialization);\r\n this.myForm.controls.validFrom.setValue(event.ValidFrom);\r\n this.myForm.controls.validUpTo.setValue(event.ValidUpto);\r\n this.myForm.controls.programTitle.setValue(event.ProgramTitle);\r\n this.professionalDetail.ProgramType = event.ProgramType;\r\n this.professionalDetail.ProgramTitle = event.ProgramTitle;\r\n this.professionalDetail.Specialization = event.Specialization;\r\n this.professionalDetail.Institution = event.Institution;\r\n this.professionalDetail.ValidFrom = event.ValidFrom;\r\n this.professionalDetail.ValidUpto = event.ValidUpto;\r\n }\r\n deleteCertificateOrMembership(event: any) {\r\n const dialogRef = this.dialog.open(CommonDialogComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n width: '300px',\r\n data: { heading: 'Confirmation', message: 'Do you want to Delete?' }\r\n });\r\n\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.dialogResponse = result;\r\n if (this.dialogResponse == true) {\r\n this.deleteID = event.Id;\r\n this.professionalType = event.ProgramType;\r\n this.deletedisplay = true;\r\n this.deleteProfessionalDetails();\r\n const dialogConf = this.dialog.open(MessageDialogComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n width: '300px',\r\n data: { heading: 'Confirmation', message: 'Professional Details deleted successfully' }\r\n })\r\n }\r\n });\r\n\r\n }\r\n deleteProfessionalDetails() {\r\n this._professionalService.deleteProfessionalDetails(this.deleteID, this.professionalType).subscribe((data) => {\r\n this.deletedisplay = false;\r\n this.getProfessionalDetail();\r\n this.formSubmitted = false;\r\n this.myForm.reset();\r\n }, (error) => {\r\n this.snackBar.open('Failed to Delete Professional Details.', 'x', {\r\n duration: 5000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n });\r\n }\r\n cancelDeleteCancel() {\r\n this.closeDialog();\r\n }\r\n\r\n dynamicClearValidations(eduControl: string, newFormEduValidate: FormGroup){\r\n newFormEduValidate.controls[eduControl].setErrors(null);\r\n newFormEduValidate.controls[eduControl].clearValidators();\r\n newFormEduValidate.controls[eduControl].updateValueAndValidity(); \r\n }\r\n\r\n saveCertificationOrMembership() {\r\n\r\n this.formSubmitted = true;\r\n \r\n if (this.myForm.controls.programType.value === 3){\r\n this.dynamicClearValidations('programTitle', this.myForm)\r\n this.myForm.controls['skillId'].setValidators([Validators.required])\r\n this.myForm.controls['skillId'].updateValueAndValidity();\r\n this.myForm.controls['skillGroupId'].setValidators([Validators.required])\r\n this.myForm.controls['skillGroupId'].updateValueAndValidity();\r\n }\r\n else if (this.myForm.controls.programType.value === 4){\r\n this.myForm.controls['programTitle'].setValidators([Validators.required, Validators.pattern('[A-Za-z][a-zA-Z\\\\s]{2,64}')])\r\n this.myForm.controls['programTitle'].updateValueAndValidity();\r\n this.dynamicClearValidations('skillId', this.myForm)\r\n this.dynamicClearValidations('skillGroupId', this.myForm)\r\n }\r\n \r\n if (this.myForm.invalid) return;\r\n this.professionalDetail.ValidFrom = this.myForm.controls.validFrom.value;\r\n this.professionalDetail.ValidUpto = this.myForm.controls.validUpTo.value;\r\n\r\n let currentYear = this.date.getFullYear();\r\n if (this.professionalDetail.ValidFrom > currentYear || this.professionalDetail.ValidFrom > this.professionalDetail.ValidUpto) {\r\n if (this.professionalDetail.ValidFrom > currentYear) {\r\n this.snackBar.open('Valid From should be current year or less', 'x', {\r\n duration: 5000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n }\r\n else {\r\n this.snackBar.open('Valid From should be less than Valid To', 'x', {\r\n duration: 5000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n }\r\n return false;\r\n }\r\n\r\n switch (this.professionalDetail.ProgramType) {\r\n case ProgramType.certification:\r\n let certDetail: Certification;\r\n certDetail = new Certification();\r\n certDetail.EmployeeId = this.employeeId;\r\n if (this.upDateId) {\r\n certDetail.Id = this.upDateId;\r\n }\r\n certDetail.SkillGroupId = this.myForm.controls.skillGroupId.value;\r\n certDetail.CertificationId = this.myForm.controls.skillId.value;\r\n certDetail.ProgramType = this.professionalDetail.ProgramType;\r\n certDetail.Specialization = this.myForm.controls.specialization.value;\r\n certDetail.Institution = this.myForm.controls.institution.value;\r\n certDetail.ValidFrom = this.myForm.controls.validFrom.value;\r\n certDetail.ValidUpto = this.myForm.controls.validUpTo.value;\r\n if (certDetail && (!certDetail.SkillGroupId || !certDetail.CertificationId)) {\r\n return;\r\n }\r\n for (var i = 0; i < this.certificationList.length; i++) {\r\n if (certDetail.Id == -1 && (this.certificationList[i].CertificationId == certDetail.CertificationId && this.certificationList[i].SkillGroupId == certDetail.SkillGroupId\r\n && this.certificationList[i].ProgramType == certDetail.ProgramType && this.certificationList[i].Institution.toLowerCase() == certDetail.Institution.toLowerCase()\r\n && this.certificationList[i].Specialization.toLowerCase() == certDetail.Specialization.toLowerCase() && this.certificationList[i].ValidFrom == certDetail.ValidFrom\r\n && this.certificationList[i].ValidUpto == certDetail.ValidUpto)) {\r\n this.snackBar.open('Certification details already exists.', 'x', {\r\n duration: 5000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n return;\r\n }\r\n }\r\n if (certDetail && certDetail.Id === -1) {\r\n this._professionalService.addCertificationDetails(certDetail).subscribe((data) => {\r\n this.snackBar.open('Certification Details saved successfully.', 'x', {\r\n duration: 5000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n this.getProfessionalDetail();\r\n this.formSubmitted = false;\r\n this.formGroupDirective.resetForm();\r\n //this.closeDialog();\r\n }, (error) => {\r\n this.snackBar.open('Failed to save Certification Details.', 'x', {\r\n duration: 5000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n });\r\n }\r\n if (certDetail && certDetail.Id !== -1) {\r\n this._professionalService.updateCertificationDetails(certDetail).subscribe((data) => {\r\n this.snackBar.open('Certification Details Updated successfully.', 'x', {\r\n duration: 5000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n this.getProfessionalDetail();\r\n this.formSubmitted = false;\r\n this.myForm.reset();\r\n this.upDateId = -1;\r\n }, (error) => {\r\n this.snackBar.open('Failed to Update Certification Details.', 'x', {\r\n duration: 5000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n });\r\n }\r\n break;\r\n case ProgramType.membership:\r\n let memDetails: MemberShip;\r\n memDetails = new MemberShip();\r\n memDetails.EmployeeId = this.employeeId;\r\n if (this.upDateId) {\r\n memDetails.Id = this.upDateId;\r\n }\r\n memDetails.ProgramType = this.myForm.controls.programType.value;\r\n memDetails.ProgramTitle = this.myForm.controls.programTitle.value;\r\n memDetails.Specialization = this.myForm.controls.specialization.value;\r\n memDetails.Institution = this.myForm.controls.institution.value;\r\n memDetails.ValidFrom = this.myForm.controls.validFrom.value;\r\n memDetails.ValidUpto = this.myForm.controls.validUpTo.value;\r\n if (memDetails && !memDetails.ProgramTitle) {\r\n return;\r\n }\r\n for (var i = 0; i < this.memberShipList.length; i++) {\r\n if (memDetails.Id == -1 && (this.memberShipList[i].ProgramTitle == memDetails.ProgramTitle && this.memberShipList[i].ProgramType == memDetails.ProgramType\r\n && this.memberShipList[i].Institution.toLowerCase() == memDetails.Institution.toLowerCase()\r\n && this.memberShipList[i].Specialization.toLowerCase() == memDetails.Specialization.toLowerCase()\r\n && this.memberShipList[i].ValidFrom == memDetails.ValidFrom && this.memberShipList[i].ValidUpto == memDetails.ValidUpto)) {\r\n this.snackBar.open('Membership details already exists.', 'x', {\r\n duration: 5000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n return;\r\n }\r\n }\r\n if (memDetails && memDetails.Id === -1) {\r\n this._professionalService.addMembershipDetails(memDetails).subscribe((data) => {\r\n this.snackBar.open('Membership Details saved successfully.', 'x', {\r\n duration: 5000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n this.getProfessionalDetail();\r\n this.formSubmitted = false;\r\n this.formGroupDirective.reset();\r\n this.closeDialog();\r\n }, (error) => {\r\n this.snackBar.open('Failed to save Membership Details.', 'x', {\r\n duration: 5000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n });\r\n }\r\n if (memDetails && memDetails.Id !== -1) {\r\n this._professionalService.updateMembershipDetails(memDetails).subscribe((data) => {\r\n this.snackBar.open('Membership Details Updated successfully.', 'x', {\r\n duration: 5000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n this.getProfessionalDetail();\r\n this.formSubmitted = false;\r\n this.myForm.reset();\r\n this.upDateId = -1;\r\n this.closeDialog();\r\n }, (error) => {\r\n this.snackBar.open('Failed to Update Membership Details.', 'x', {\r\n duration: 5000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n });\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n this.addDisplay = false;\r\n this.closeDialog();\r\n }\r\n cancelOrclearValues() {\r\n this.addDisplay = false;\r\n this.myForm.reset();\r\n this.formSubmitted = false;\r\n this.closeDialog();\r\n }\r\n\r\n onlyNumbers(event: any) {\r\n this._common.onlyNumbers(event)\r\n };\r\n validFromYear(event: any) {\r\n this.validFromErrorMessage = '';\r\n let currentYear = this.date.getFullYear();\r\n this.validYear = event.target.value;\r\n if (this.validYear > currentYear) {\r\n this.validFromErrorMessage = 'Valid From must be less than current year';\r\n return false;\r\n }\r\n }\r\n validUpToYear(event: any) {\r\n this.validUpToErrorMessage = '';\r\n if (this.validYear > event.target.value) {\r\n this.validUpToErrorMessage = 'Valid Up To must be greater than Valid From';\r\n return false;\r\n }\r\n }\r\n\r\n}\r\n","\r\n\r\n
\r\n
\r\n
\r\n
\r\n

Certification

\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n Search\r\n \r\n \r\n
\r\n
\r\n \r\n

Loading ...

\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 \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 \r\n \r\n \r\n \r\n \r\n
SkillGroupName\r\n \r\n {{element.SkillGroupName}}\r\n SkillName\r\n \r\n {{element.SkillName}}\r\n Institution\r\n \r\n {{element.Institution}}\r\n Specialization\r\n \r\n {{element.Specialization}}\r\n ValidFrom\r\n \r\n {{element.ValidFrom}}\r\n ValidUpto\r\n \r\n {{element.ValidUpto}}\r\n Edit\r\n \r\n Delete\r\n \r\n
No data
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n

Membership

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Search\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 \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 \r\n \r\n \r\n
MembershipTitle\r\n \r\n {{element.ProgramTitle}}\r\n Institution\r\n \r\n {{element.Institution}}\r\n Specialization\r\n \r\n {{element.Specialization}}\r\n ValidFrom\r\n \r\n {{element.ValidFrom}}\r\n ValidUpto\r\n \r\n {{element.ValidUpto}}\r\n Edit\r\n \r\n Delete\r\n \r\n
No data
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n Add Certification/MemberShip Details\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Program Type *\r\n \r\n \r\n {{q.label}}\r\n \r\n \r\n Program Type is required\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Skill Group *\r\n \r\n \r\n {{q.label}}\r\n \r\n \r\n \r\n Skill Group is required\r\n \r\n \r\n
\r\n
\r\n \r\n Skill Name\r\n *\r\n \r\n \r\n \r\n {{q.label}}\r\n \r\n \r\n \r\n Skill Name is required\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n MemberShip Title\r\n *\r\n \r\n \r\n \r\n \r\n MemberShip Title is required\r\n \r\n \r\n \r\n MemberShip Title is invalid\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Specialization\r\n *\r\n \r\n \r\n \r\n \r\n Specialization is required\r\n \r\n \r\n \r\n Specialization is invalid\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n Institution\r\n *\r\n \r\n \r\n \r\n \r\n Institution is required\r\n \r\n \r\n \r\n Institution is invalid\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n Valid From\r\n *\r\n \r\n \r\n \r\n \r\n Valid From is required\r\n \r\n \r\n \r\n Valid From is invalid\r\n \r\n \r\n \r\n \r\n {{validFromErrorMessage}}\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n Valid UpTo\r\n *\r\n \r\n \r\n \r\n \r\n Valid Up To is required\r\n \r\n \r\n \r\n Valid Up To is invalid\r\n \r\n \r\n \r\n {{validUpToErrorMessage}}\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 { Component, OnInit ,Inject} from '@angular/core';\r\nimport { MAT_DIALOG_DATA ,MatDialogRef, MatDialog} from '@angular/material/dialog';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { AddSkills } from 'src/app/modules/master-layout/models/skills.model';\r\n@Component({\r\n selector: 'app-associate-skill-dialog',\r\n templateUrl: './associate-skill-dialog.component.html',\r\n styleUrls: ['./associate-skill-dialog.component.scss']\r\n})\r\nexport class AssociateSkillDialogComponent implements OnInit {\r\n dataSource:MatTableDataSource=new MatTableDataSource() ;\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: {data: any},\r\n private dialogRef:MatDialogRef) { \r\n this.dataSource.data = (this.data.data);\r\n }\r\n\r\n ngOnInit(): void {\r\n console.log(this.data.data);\r\n \r\n }\r\n displayedColumns: string[] = [\r\n 'SkillName',\r\n 'Proficiency' \r\n ];\r\n onConfirmClick()\r\n {\r\n this.dialogRef.close(\"\");\r\n }\r\n  closeDialog(message:string){     this.dialogRef.close({event:message}); }\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
Skill {{element.SkillName}} Proficiency {{element.ProficiencyLevelCode}}
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormGroup, FormBuilder, Validators, FormControl, FormGroupDirective } from '@angular/forms';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { CommonService } from '../../../../core/services/common.service';\r\nimport { GenericType } from '../../../master-layout/models/dropdowntype.model';\r\nimport { SkillsService } from '../../services/skills.service';\r\nimport { AddSkills, SkillHistory } from '../../../../modules/master-layout/models/skills.model';\r\nimport { MasterDataService } from '../../../../core/services/masterdata.service';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { Subscription, Observable } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { EmployeeSkillDetails, Skill } from '../../../../modules/master-layout/models/associate-skills.model';\r\nimport { BooleanToStringPipe } from '../../pipes/BooleanToStringPipe';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport _ from \"lodash\";\r\nimport { CompetencyAreaData } from '../../../admin/models/competency-area-data.model';\r\nimport { SkillGroupData } from '../../../admin/models/skill-group-data.model';\r\nimport { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { SkillsData } from 'src/app/modules/master-layout/models/project-role.model';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport {AssociateSkillDialogComponent} from '../associate-skill-dialog/associate-skill-dialog.component'\r\ninterface SelectItem {\r\n value: number;\r\n label: string;\r\n}\r\n@Component({\r\n selector: 'app-associate-skills',\r\n templateUrl: './associate-skills.component.html',\r\n styleUrls: ['./associate-skills.component.scss'],\r\n providers: [BooleanToStringPipe],\r\n animations: [\r\n trigger('detailExpand', [\r\n state('collapsed', style({height: '0px', minHeight: '0'})),\r\n state('expanded', style({height: '*'})),\r\n transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\r\n ]),\r\n ],\r\n})\r\n\r\nexport class AssociateSkillsComponent implements OnInit {\r\n\r\n skillGroupList: SelectItem[];\r\n competencyAreaList: SelectItem[];\r\n editObj : any[];\r\n UpdatededitObj : any;\r\n filteredCompetencyAreaList : Observable;\r\n filteredSkillGroupList : Observable;\r\n filteredSkillsList : Observable;\r\n selectedSkillId:number;\r\n historyData:SkillHistory[];\r\n\r\n isEdit:boolean = false;\r\n\r\n tempskill: any;\r\n btnLabel = '';\r\n errorMsg = false;\r\n IsChecked = false;\r\n showSubmitButton: boolean = false;\r\n submitData: EmployeeSkillDetails;\r\n checked: boolean;\r\n id;\r\n totalProficiencyLevelsData;\r\n indexOfBasic = 0;\r\n indexOfBeginner = 0;\r\n skillsData: any[];\r\n addSkill: FormGroup;\r\n skillsList: any[];\r\n proficiencyLevels: SelectItem[] = [];\r\n formSubmitted = false;\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n private resources = servicePath.API.PagingConfigValue;\r\n SkillsGridDataForPrimarySkills: any[] = [];\r\n SkillsGridDataForSecondarySkills: any[] = [];\r\n count:number=0;\r\n filteredData:any;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n displayedColumns: string[] = [\r\n 'SkillCode',\r\n 'Version',\r\n 'Proficiency',\r\n 'Experience',\r\n 'LastUsed',\r\n 'Status',\r\n 'Action',\r\n ];\r\n _historyDisplayedColumns: string[] = [\r\n 'SubmittedRating',\r\n 'RMRating',\r\n 'Experience',\r\n 'LastUsed',\r\n 'Status',\r\n 'Remarks',\r\n 'RequestedDate',\r\n 'ApprovedDate',\r\n ]\r\n expandedElement: AddSkills | null;\r\n dataSourcePrimary: MatTableDataSource;\r\n dataSourceSecondary: MatTableDataSource;\r\n _skillHistoryDS: MatTableDataSource;\r\n showVersionTextBox :boolean = false;\r\n \r\n @ViewChild('primaryPaginator', { static: true }) primaryPaginator: MatPaginator;\r\n @ViewChild('secondaryPaginator', { static: true }) secondaryPaginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n \r\n\r\n constructor(\r\n private actRoute: ActivatedRoute,\r\n private route: Router,\r\n private yesNoPipe: BooleanToStringPipe,\r\n private commonService: CommonService,\r\n private masterService: MasterDataService,\r\n private skillService: SkillsService,\r\n private _snackBar: MatSnackBar,\r\n public dialog: MatDialog\r\n ) {\r\n this.PageSize = this.resources.PageSize;\r\n this.PageDropDown = this.resources.PageDropDown;\r\n this.id = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).employeeId\r\n this.CreateForm();\r\n this.GetProficiencyList();\r\n this.GetEmployeeSkills();\r\n }\r\n ngOnInit() {\r\n this.CreateForm(); \r\n this.GetProficiencyList();\r\n this.GetEmployeeSkills(); \r\n }\r\n\r\n clearInput(event : any, fieldName: string){ \r\n this.cancel(); \r\n if (fieldName == 'SkillId'){\r\n this.showVersionTextBox = false;\r\n this.addSkill.get('SkillId').reset();\r\n this.addSkill.get('Version').reset();\r\n this.addSkill.get('ProficiencyLevelId').reset();\r\n this.addSkill.get('Experience').reset();\r\n this.addSkill.get('LastUsed').reset();\r\n this.addSkill.get('CompetencyAreaCode').reset();\r\n this.addSkill.get('SkillGroup').reset();\r\n this.skillsList=[];\r\n event.stopPropagation();\r\n }\r\n }\r\n\r\n CreateForm() {\r\n this.errorMsg = false;\r\n this.formSubmitted = false;\r\n this.btnLabel = 'Save';\r\n this.addSkill = new FormGroup({\r\n CompetencyAreaCode: new FormControl(null),\r\n CompetencyAreaId: new FormControl(null),\r\n SkillGroupId: new FormControl(null),\r\n SkillGroup:new FormControl(null),\r\n SkillId: new FormControl(null, [Validators.required]),\r\n ProficiencyLevelId: new FormControl(null, Validators.required),\r\n Experience: new FormControl(null, [Validators.required, \r\n Validators.pattern(/^(?:\\d{1,2}(?:\\.\\d{1,2})?|99(?:\\.99)?|0\\d(?:\\.\\d{1,2})?)$/),\r\n this.handleExperience,this.zeroHandler]),\r\n LastUsed: new FormControl(null, [Validators.required, Validators.pattern('(19|20)[0-9]{2}$'),Validators.max(new Date().getFullYear()), Validators.maxLength(4), Validators.minLength(4)]),\r\n IsPrimary: new FormControl(false),\r\n // RoleId: new FormControl(null),\r\n EmployeeId: new FormControl(null),\r\n Id: new FormControl(0),\r\n Version : new FormControl(null)\r\n });\r\n }\r\n\r\n private _filteredSkillList(value) {\r\n let filterValue;\r\n if (typeof value.SkillId === 'number') {\r\n return this.skillsList;\r\n }\r\n if (value && value.SkillId) {\r\n if (typeof value.SkillId === 'string') {\r\n filterValue = value.SkillId.toLowerCase();\r\n }\r\n else {\r\n if (value.SkillId !== null) {\r\n filterValue = value.SkillId.label.toLowerCase();\r\n }\r\n }\r\n return this.skillsList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.skillsList;\r\n }\r\n }\r\n\r\n onlyForNumbers(event: any) {\r\n this.commonService.onlyNumbers(event);\r\n }\r\n\r\n GetEmployeeSkills() {\r\n this.skillService.GetAssociateSkillsById(this.id,JSON.parse(sessionStorage['AssociatePortal_UserInformation']).roleName).subscribe((res: any) => {\r\n var primarySkills =[];\r\n var secondarySkills =[];\r\n for(let i=0;ix.StatusName=='Created');\r\n this.count=this.filteredData.length;\r\n this.SkillsGridDataForPrimarySkills = primarySkills;\r\n this.dataSourcePrimary = new MatTableDataSource(this.SkillsGridDataForPrimarySkills);\r\n this.dataSourcePrimary.paginator = this.primaryPaginator;\r\n this.dataSourcePrimary.sort = this.sort;\r\n\r\n this.SkillsGridDataForSecondarySkills = secondarySkills;\r\n this.dataSourceSecondary = new MatTableDataSource(this.SkillsGridDataForSecondarySkills);\r\n this.dataSourceSecondary.paginator = this.secondaryPaginator;\r\n this.dataSourcePrimary.sort = this.sort;\r\n });\r\n }\r\n async getSkillHistoryByEmpId(element){\r\n let response: any= await this.skillService.GetEmployeeSkillHistory(this.id, element.Id).toPromise()\r\n return response\r\n }\r\n async onRowClick(element:AddSkills | null){\r\n this.historyData = [];\r\n if(this.expandedElement==null || this.expandedElement!=element){\r\n this.historyData = await this.getSkillHistoryByEmpId(element);\r\n \r\n this.expandedElement = this.historyData.length == 0 ? null: element;\r\n\r\n }\r\n else{\r\n this.historyData = [];\r\n this.expandedElement = null;\r\n }\r\n this._skillHistoryDS = new MatTableDataSource(this.historyData);\r\n }\r\n checkHistory(){\r\n if (this.historyData != []){\r\n return true;\r\n }\r\n else{\r\n return false;\r\n }\r\n }\r\n GetSkillsBySearchString(searchString) {\r\n \r\n if (searchString != null && searchString.length>=3) {\r\n this.skillService.GetSkillsBySearchString(searchString).subscribe((skills: any[]) => {\r\n this.skillsData = skills;\r\n this.skillsList = [];\r\n skills.forEach(element => {\r\n if(element.CompetencyAreaName.toLowerCase() != 'certification'){\r\n this.skillsList.push({ label: element.SkillName, value: element.SkillId });\r\n }\r\n \r\n });\r\n this.filteredSkillsList = this.addSkill.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filteredSkillList(value))\r\n );\r\n });\r\n this.addSkill.get('SkillId').enable();\r\n }\r\n else{\r\n this.skillsList = []; \r\n }\r\n }\r\n\r\n GetProficiencyList() {\r\n\r\n this.masterService.GetProficiencyLevels().subscribe(res => {\r\n this.proficiencyLevels = [];\r\n this.totalProficiencyLevelsData = [];\r\n this.totalProficiencyLevelsData = res;\r\n this.totalProficiencyLevelsData = res;\r\n this.indexOfBasic = this.totalProficiencyLevelsData.findIndex((x: any) => x.ProficiencyLevelCode === 'Basic');\r\n for (let i = 0; i < res.length; i++) {\r\n this.proficiencyLevels.push({\r\n label: res[i][\"ProficiencyLevelCode\"],\r\n value: res[i][\"ProficiencyLevelId\"]\r\n });\r\n }\r\n });\r\n }\r\n editSkill(skillObj) {\r\n this.editObj = skillObj;\r\n this.btnLabel = 'Update';\r\n this.isEdit = true;\r\n let PautoCompletedObj = { label: skillObj.SkillName, value: skillObj.SkillId };\r\n this.addSkill.get('SkillGroup').disable();\r\n this.addSkill.get('CompetencyAreaCode').disable();\r\n this.addSkill.get('SkillId').disable();\r\n this.addSkill.patchValue({\r\n Id: skillObj.Id,\r\n SkillId: PautoCompletedObj,\r\n ProficiencyLevelId: skillObj.ProficiencyLevelId,\r\n Experience: skillObj.Experience,\r\n LastUsed: skillObj.LastUsed,\r\n IsPrimary: skillObj.IsPrimary,\r\n CompetencyAreaCode: skillObj.CompetencyAreaCode,\r\n SkillGroup: skillObj.SkillGroupName,\r\n EmployeeId: this.id,\r\n Version : skillObj.Version,\r\n CompetencyAreaId : skillObj.CompetencyAreaId,\r\n SkillGroupId:skillObj.SkillGroupId\r\n });\r\n this.UpdatededitObj = {\r\n ProficiencyLevelId: skillObj.ProficiencyLevelId,\r\n Experience: skillObj.Experience,\r\n LastUsed: skillObj.LastUsed,\r\n IsPrimary: skillObj.IsPrimary,\r\n EmployeeId: this.id,\r\n SkillId: skillObj.SkillId,\r\n Id: skillObj.Id,\r\n Version : skillObj.Version,\r\n CompetencyAreaId : skillObj.CompetencyAreaId,\r\n SkillGroupId:skillObj.SkillGroupId\r\n };\r\n }\r\n\r\n displayFn(user: any) {\r\n return user && user.label ? user.label : '';\r\n }\r\n\r\n selectedChangeIds(frmCntrl, item) {\r\n if (frmCntrl== 'SkillId') {\r\n this.selectedSkillId = item.value;\r\n var filterData= this.skillsData.filter(x=>x.SkillId==this.selectedSkillId);\r\n this.addSkill.get('CompetencyAreaCode').setValue(filterData[0].CompetencyAreaName);\r\n this.addSkill.get('SkillGroup').setValue(filterData[0].SkillGroupName);\r\n this.addSkill.get('CompetencyAreaId').setValue(filterData[0].CompetencyAreaId);\r\n this.addSkill.get('SkillGroupId').setValue(filterData[0].SkillGroupId);\r\n\r\n }\r\n }\r\n onSave() {\r\n this.formSubmitted = true;\r\n let skillObj = new GenericType();\r\n let current_year = new Date().getFullYear();\r\n if(this.addSkill.value.LastUsed > current_year){\r\n this._snackBar.open('Year must be less than or equal to current year', 'x', {\r\n panelClass: ['error-alert'],\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return false;\r\n }\r\n\r\n if(!this.isValidVersion()){\r\n this._snackBar.open(\"Version Can't be Zero\", 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }); \r\n return;\r\n } \r\n\r\n\r\n if (this.addSkill.valid == true) {\r\n this.errorMsg = false;\r\n skillObj = this.addSkill.value.SkillId;\r\n \r\n if (this.addSkill.value.IsPrimary == null)\r\n this.addSkill.value.IsPrimary = false;\r\n this.addSkill.value.EmployeeId = this.id;\r\n // if (JSON.parse(sessionStorage['AssociatePortal_UserInformation']).roleName == \"Associate\")\r\n // this.addSkill.value.RoleId = 2;\r\n // else\r\n // this.addSkill.value.RoleId = 0;\r\n if(this.addSkill.value.Version != null){\r\n if(this.addSkill.value.Version[0] == ',' || this.addSkill.value.Version[this.addSkill.value.Version.length -1] == ','){\r\n this._snackBar.open('Version should not end or begin with commas','x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return;\r\n }\r\n\r\n if(this.addSkill.value.Version[0] == '.' || this.addSkill.value.Version[this.addSkill.value.Version.length -1] == '.'){\r\n this._snackBar.open('Version should not end or begin with dot','x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return; \r\n }\r\n \r\n }\r\n\r\n if (this.btnLabel == 'Save') {\r\n this.tempskill = this.addSkill.value;\r\n this.tempskill['SkillId'] = this.selectedSkillId;\r\n this.tempskill['Id']=0;\r\n if(this.addSkill.value.SkillId==null || this.addSkill.value.SkillId== \"\"){\r\n this._snackBar.open('Select skills from the given list', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return false;\r\n }\r\n this.skillService.SaveAssociateSkills(this.tempskill).subscribe(res => {\r\n this._snackBar.open('Skill added Successfully', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n this.cancel();\r\n this.GetEmployeeSkills();\r\n },\r\n (error) => {\r\n this.addSkill.value.SkillId = skillObj;\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n else {\r\n this.tempskill = this.addSkill.value;\r\n this.tempskill['SkillId'] = this.editObj['SkillId'];\r\n if(_.isEqual(this.tempskill, this.UpdatededitObj) ){\r\n this._snackBar.open(\"No changes to Update\", 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n else{\r\n this.skillService.UpdateAssociateSkills(this.tempskill).subscribe(res => {\r\n this._snackBar.open('Skill updated Successfully', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.GetEmployeeSkills();\r\n this.cancel();\r\n },\r\n (error) => {\r\n this.addSkill.value.SkillId = skillObj;\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n }\r\n\r\n }\r\n this.isEdit = false;\r\n }\r\n cancel() {\r\n this.isEdit = false; \r\n this.addSkill.get('SkillId').enable();\r\n this.addSkill.get('SkillId').reset();\r\n this.skillsList=[];\r\n this.IsChecked = false;\r\n this.addSkill.patchValue({\r\n ProficiencyLevelId: this.totalProficiencyLevelsData[this.indexOfBeginner].ProficiencyLevelId\r\n })\r\n this.errorMsg = false;\r\n this.formSubmitted = false;\r\n this.btnLabel = 'Save';\r\n this.showVersionTextBox = false;\r\n this.addSkill.reset();\r\n setTimeout(() => this.formGroupDirective.resetForm(), 0);\r\n }\r\n CheckedIsPrimary(event) {\r\n this.IsChecked = event.checked;\r\n if (this.IsChecked === true) {\r\n if (this.btnLabel === 'Save') {\r\n this.addSkill.patchValue({\r\n ProficiencyLevelId: this.totalProficiencyLevelsData[this.indexOfBasic].ProficiencyLevelId\r\n });\r\n }\r\n }\r\n else {\r\n if (this.btnLabel === 'Save') {\r\n this.addSkill.get('ProficiencyLevelId').reset();\r\n }\r\n }\r\n }\r\n\r\n applyFilter(event: Event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSourcePrimary.filter = filterValue.trim().toLowerCase();\r\n this.dataSourceSecondary.filter = filterValue.trim().toLowerCase();\r\n }\r\n\r\n submitForApproval() {\r\n \r\n let dialogRef= this.dialog.open(AssociateSkillDialogComponent, {\r\n width:'500px',\r\n // disableClose: true ,\r\n data: { data:this.filteredData}\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if(result.event=='Ok')\r\n {\r\n this.skillService.submitForApproval(this.id).subscribe((res: any) => {\r\n this._snackBar.open('Submitted For Approval', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n this.GetEmployeeSkills();\r\n }, (error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n }); \r\n } \r\n });\r\n }\r\n\r\n checkStatus(SkillObj){\r\n if(SkillObj['StatusId'] == 2){\r\n return true;\r\n }\r\n else{\r\n return false;\r\n }\r\n\r\n }\r\n\r\n deleteSkill(element){\r\n this.skillService.deleteSkill(element.Id).subscribe((res)=>{\r\n this.cancel();\r\n if(res){\r\n this.GetEmployeeSkills();\r\n this._snackBar.open('Skill Deleted Successfully', 'x', {\r\n duration: 3000,\r\n panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n else{\r\n this._snackBar.open('Failed Deleting the skill', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }); \r\n }\r\n },(error)=>{\r\n this.cancel();\r\n this._snackBar.open('Error Occurred While Deleting the Skill', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }); \r\n })\r\n\r\n }\r\n\r\n enableVersions(event){\r\n if(event){\r\n this.showVersionTextBox = true;\r\n }\r\n }\r\n\r\n isValidVersion () : boolean {\r\n let version = this.addSkill.get('Version').value;\r\n let values = version?.split(',');\r\n if(values){\r\n for(let i=0;i < values.length;i++){\r\n if(values[i]=='0' || \r\n values[i]=='0.0' || values[i]== '0.00' || values[i]=='00.0' ||\r\n values[i]=='00.00'){\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n // omit_special_char(event:any){\r\n // if((event.charCode >= 32 && event.charCode <= 43)\r\n // || (event.charCode == 45) || (event.charCode == 47)\r\n // || (event.charCode >= 58 && event.charCode <= 126) ){\r\n // event.preventDefault();\r\n // this._snackBar.open('Only Numbers, decimals, commas are Allowed', 'x', {\r\n // duration: 3000,\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // }); \r\n // return\r\n // }\r\n // }\r\n\r\n handleExperience(control) {\r\n // Check the value of the input field\r\n const inputValue = new String(control.value);\r\n let values = inputValue?.split('.');\r\n \r\n if(values && Number(values[1])>11){\r\n \r\n return { experienceError: true };\r\n \r\n }\r\n \r\n return null; // No error\r\n }\r\n\r\n zeroHandler(control){\r\n const inputValue = new String(control.value);\r\n \r\n if(inputValue == '0' || inputValue == '0.00'){\r\n \r\n return { zeroErrorHandler: true };\r\n \r\n }\r\n \r\n return null; // No error\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 Is Primary:\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Note : Version Allows Only Numbers, Decimals, Commas

\r\n
\r\n
\r\n
\r\n
\r\n \r\n Skill*\r\n \r\n \r\n \r\n \r\n {{ option.label }}\r\n \r\n \r\n Skill Required \r\n Please Select Skill from\r\n given\r\n options\r\n \r\n \r\n Skill Group*\r\n \r\n \r\n \r\n Last used*\r\n \r\n Last Used is\r\n required\r\n Last Used is\r\n Invalid\r\n \r\n
\r\n
\r\n \r\n Version\r\n \r\n \r\n \r\n\r\n \r\n Proficiency Level*\r\n \r\n \r\n {{p.label}} \r\n \r\n Proficiency\r\n Level is required\r\n \r\n\r\n
\r\n
\r\n \r\n Competency Area*\r\n \r\n \r\n \r\n Experience*\r\n \r\n Should be in\r\n # or #.# or ##.# or ##.## format! where # is a Number\r\n Experience\r\n is\r\n required\r\n \r\n Months Can't be greater than 11!\r\n \r\n \r\n Experience Can't be Zero!\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 Search\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 \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 \r\n \r\n \r\n \r\n \r\n \r\n
Skill\r\n {{element.SkillCode}} Version\r\n {{element.Version}} \r\n Proficiency {{element.ProficiencyLevelCode}} \r\n Experience(In Years) {{element.Experience}} Last\r\n used {{element.LastUsed}} Status\r\n {{element.StatusName}} Action \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 \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 \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
Submitted Rating \r\n {{element.SubmittedRatingName}} RM Rating \r\n {{element.ReportingManagerRatingName}} \r\n Experience(In Years) {{element.Experience}} Last\r\n used {{element.LastUsed}} Status {{element.StatusName}} Remarks {{element.Remarks}} Requested Date {{element.SubmittedDate |\r\n date:\"MM/dd/yyyy\"}} Approved Date {{element.ApprovedDate |\r\n date:\"MM/dd/yyyy\"}}
\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 \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 \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
Skill\r\n {{element.SkillCode}} Version\r\n {{element.Version}} \r\n Proficiency {{element.ProficiencyLevelCode}} \r\n Experience(In Years) {{element.Experience}} Last\r\n used {{element.LastUsed}} Status\r\n {{element.StatusName}} Action \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 \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 \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
Submitted Rating \r\n {{element.SubmittedRatingName}} RM Rating \r\n {{element.ReportingManagerRatingName}} \r\n Experience(In months) {{element.Experience}} Last\r\n used {{element.LastUsed}} Status {{element.StatusName}} Remarks {{element.Remarks}} Requested Date {{element.SubmittedDate |\r\n date:\"MM/dd/yyyy\"}} Approved Date {{element.ApprovedDate |\r\n date:\"MM/dd/yyyy\"}}
\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 { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { Associate } from '../../models/associate.model';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { AssociateInformationService } from '../../services/associateInformation.service';\r\nimport * as moment from 'moment';\r\nimport { MatPaginator, PageEvent } from '@angular/material/paginator';\r\nimport { NavService } from '../../../master-layout/services/nav.service';\r\nimport { MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { SendEmailComponent } from '../send-email/send-email.component';\r\n@Component({\r\n selector: 'app-associateinformation',\r\n templateUrl: './associateinformation.component.html',\r\n styleUrls: ['./associateinformation.component.scss']\r\n})\r\nexport class AssociateinformationComponent implements OnInit {\r\n associateInfo: any;\r\n private subType: string = \"list\";\r\n associateInfoList : Associate[];\r\n selectedRow : Associate;\r\n private resources = servicePath.API.PagingConfigValue;\r\n displayedColumns: string[] = [\r\n 'EmpCode',\r\n 'EmpName',\r\n 'MobileNo',\r\n 'PersonalEmailAddress',\r\n 'BgvStatus',\r\n 'Edit',\r\n ];\r\n dataSource: MatTableDataSource = new MatTableDataSource();\r\n roleName: String;\r\n TotalCount: number;\r\n pageSize = 10;\r\n currentPage = 0;\r\n pageSizeOptions: number[] = [5, 10, 25, 100];\r\n searchString: any = '';\r\n\r\n @ViewChild(MatPaginator) paginator!: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n\r\n constructor(private _associateinfoService : AssociateInformationService,private _router: Router,private _snackBar: MatSnackBar, public navService: NavService, private spinner: NgxSpinnerService,\r\n public dialog: MatDialog,) { \r\n this.associateInfoList = [];\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n if(responseData) {\r\n this.searchString = (responseData.target as HTMLInputElement).value;\r\n }\r\n else{\r\n this.searchString = ''\r\n }\r\n if(this.searchString == '' || this.searchString.length >= 3){\r\n this.currentPage = 0;\r\n this.getEmployeeCount();\r\n this.getAssociateInformationList();\r\n }\r\n });\r\n }\r\n \r\n \r\n ngOnInit(): void {\r\n this.roleName = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).roleName;\r\n this.getAssociateInformationList();\r\n }\r\n\r\n getEmployeeCount(){\r\n this._associateinfoService.getEmployeeCount(this.searchString).subscribe((res: any) => {\r\n this.TotalCount = res;\r\n });\r\n }\r\n\r\n getAssociateInformationList(){\r\n this.spinner.show();\r\n this._associateinfoService.getAssociates(this.searchString, this.currentPage + 1, this.pageSize).subscribe((res: any) => {\r\n this.associateInfoList = res;\r\n this.associateInfoList.forEach((r: any) => {\r\n if (r.JoinDate != null)\r\n r.JoinDate = moment(r.JoinDate).format('YYYY-MM-DD');\r\n else r.JoinDate = \"\";\r\n });\r\n this.dataSource.data = this.associateInfoList;\r\n this.dataSource.sort = this.sort;\r\n this.spinner.hide();\r\n this.dataSource.sortingDataAccessor = (data: any, sortHeaderId: string): string => {\r\n if (typeof data[sortHeaderId] === 'string') {\r\n return data[sortHeaderId].toLocaleLowerCase();\r\n }\r\n \r\n return data[sortHeaderId];\r\n };\r\n });\r\n }\r\n\r\n \r\n editAssociatejoining(selectedData: any) {\r\n let currentID = selectedData.EmpId;\r\n selectedData.associateType = selectedData.EmpId != 0 ? \"edit\" : \"new\";\r\n this._router.navigate(['/associates/prospectivetoassociate/' + selectedData.associateType + '/' + currentID + '/' + this.subType]);\r\n }\r\n\r\n sendMail(currentAssociate:Associate){\r\n let dialogRef = this.dialog.open(SendEmailComponent, {\r\n width: '60vw', height: '30vw',\r\n disableClose: true,\r\n data: { element: currentAssociate }\r\n }); \r\n dialogRef.afterClosed().subscribe(result => {\r\n \r\n });\r\n }\r\n\r\n syncProspectiveAssociateData(){\r\n this._associateinfoService.syncProspectiveAssociateDataToHRMS().subscribe((data:any) => {\r\n this._snackBar.open(\r\n data.Message,\r\n 'x',\r\n {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n this.getAssociateInformationList();\r\n },(error)=>{\r\n this.spinner.hide();\r\n this._snackBar.open(\r\n 'Some Error Occured While Processing',\r\n 'x',\r\n {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n });\r\n\r\n }\r\n pageChanged(event: PageEvent) {\r\n this.pageSize = event.pageSize;\r\n this.currentPage = event.pageIndex;\r\n this.getAssociateInformationList();\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 \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 Emp Code\r\n \r\n {{ element.EmpCode }}\r\n \r\n Emp Name\r\n \r\n {{ element.EmpName }}\r\n \r\n Mobile Number\r\n \r\n {{ element.MobileNo }}\r\n \r\n Personal Email \r\n \r\n {{ element.PersonalEmailAddress }}\r\n \r\n Bgv Status\r\n \r\n {{ element.BgvStatus }}\r\n \r\n Edit\r\n \r\n edit\r\n
No data
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n

Loading ...

\r\n\r\n","import { Component, OnInit, ViewChild, Inject } from '@angular/core';\r\nimport { Router, ActivatedRoute, } from '@angular/router';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { UploadService } from '../../services/upload.service';\r\nimport * as servicePath from '../../../../core/service-paths';\r\n//import { MessageService } from 'primeng/api';\r\nimport { environment } from '../../../../../environments/environment';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { FormGroup, FormControl } from '@angular/forms';\r\n//import { ConfirmationService } from 'primeng/api';\r\nimport { CommonDialogComponent } from '../../../shared/components/common-dialog/common-dialog.component';\r\nimport {MatDialog} from '@angular/material/dialog';\r\nimport { MessageDialogComponent } from 'src/app/modules/project-life-cycle/components/message-dialog/message-dialog.component';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\n\r\n@Component({\r\n selector: 'app-associateupload',\r\n templateUrl: './associateupload.component.html',\r\n styleUrls: ['./associateupload.component.scss']\r\n})\r\nexport class AssociateuploadComponent implements OnInit {\r\n\r\n uploaddetails: any;\r\n dialogResponse:boolean;\r\n id: number;\r\n filedata: any;\r\n PAstatus: any;\r\n uploaddata: any[] = [];\r\n // private _resources: any;\r\n private _resources = servicePath.API.upload;\r\n // private _serverURL: string;\r\n private _serverURL = environment.EmployeeMicroService;\r\n private selectedUploadDetails: any;\r\n @ViewChild('messageToaster') messageToaster: any;\r\n @ViewChild('fileUpload') fileUpload: any;\r\n @ViewChild('uploadDialog') uploadDialog: any;\r\n @ViewChild('fileInput') fileInputVariable: any;\r\n @ViewChild('fileName') fileNameVariable: any;\r\n index: number;\r\n\r\n selectedFile: String = \"\";\r\n documentDesc: any = { file: \"\" };\r\n displayedColumns: string[] = [\r\n 'Sno',\r\n 'DocumentName',\r\n 'Delete',\r\n ];\r\n fileGroup: FormGroup;\r\n\r\n constructor(\r\n @Inject(HttpClient) private _http: HttpClient, public dialog: MatDialog,\r\n @Inject(UploadService) private _service: UploadService,\r\n @Inject(Router) private _router: Router,\r\n private actRoute: ActivatedRoute, private _snackBar: MatSnackBar,\r\n private spinner: NgxSpinnerService\r\n ) {\r\n\r\n }\r\n\r\n GetFileUploadData() {\r\n this._service.GetUploadData(this.id).subscribe((res: any) => {\r\n this.spinner.hide()\r\n this.uploaddata = res;\r\n },(error)=>{\r\n this.spinner.hide()\r\n });\r\n }\r\n documentUploadChange(fileURL: string) {\r\n this.selectedFile = fileURL.substr(12, fileURL.length);\r\n }\r\n\r\n ngOnInit() {\r\n this.spinner.show()\r\n this.actRoute.params.subscribe(params => { this.id = params['id']; });\r\n // this.id=218;\r\n this.GetFileUploadData();\r\n this.getPAStatus();\r\n this.fileGroup = new FormGroup(\r\n {\r\n SelectedFileShow: new FormControl(null),\r\n uploadselect: new FormControl(null)\r\n }\r\n );\r\n }\r\n\r\n onSave() {\r\n this.filedata = this.fileUpload.nativeElement;\r\n this.GetFileUploadData();\r\n if (this.filedata.files.length > 0) {\r\n for (var count = 0; count < this.uploaddata.length; count++) {\r\n if (this.uploaddata[count].FileName == this.filedata.files[0].name) {\r\n this._snackBar.open(this.uploaddata[count].FileName + ' already exists !', 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n // this.messageService.add({ severity: 'warn', summary: 'Warning Message', detail: this.uploaddata[count].FileName + \" already exists !\" });\r\n // swal(\"\", this.uploaddata[count].FileName + \" already exists !\", \"warning\");\r\n return false;\r\n }\r\n }\r\n let formData: FormData = new FormData(),\r\n xhr: XMLHttpRequest = new XMLHttpRequest();\r\n xhr.onreadystatechange = function () {\r\n if (xhr.readyState == 4) {\r\n if (xhr.responseText === \"true\") {\r\n // alert(\"Document uploaded successfully\");\r\n // this.messageService.add({severity:'success', summary: 'success Message', detail:'Document uploaded successfully'});\r\n // swal(\"\", \"Document uploaded successfully\", \"success\");\r\n return true;\r\n }\r\n else {\r\n // alert(\"Some thing went wrong, please try again later\");\r\n // this.messageService.add({severity:'error', summary: 'error', detail:'Some thing went wrong, please try again later'});\r\n // swal(\"\", \"Some thing went wrong, please try again later\", \"error\");\r\n return true;\r\n }\r\n }\r\n }\r\n formData.append('UploadedFiles', this.filedata.files[0]);\r\n formData.append('FileName', this.filedata.files[0].name);\r\n formData.append('EmployeeId', this.id.toString());\r\n xhr.open('POST', this._serverURL + this._resources.save, false);\r\n // xhr.open('POST', this._serverURL + this._resources.save, false);\r\n if (sessionStorage[\"token\"]) {\r\n xhr.setRequestHeader(\"Authorization\", \"bearer \" + sessionStorage[\"token\"]);\r\n }\r\n xhr.send(formData);\r\n\r\n this.GetFileUploadData();\r\n this.fileInputVariable.nativeElement.value = \"\";\r\n this.fileNameVariable.nativeElement.value = \"\";\r\n return false;\r\n }\r\n else {\r\n this._snackBar.open('Please select file to upload', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //this.messageService.add({ severity: 'warn', summary: 'warning message', detail: 'Please select file to upload' });\r\n // swal(\"\", \"Please select file to upload\", \"warning\");\r\n return false;\r\n }\r\n\r\n }\r\n callMessageService() {\r\n this._snackBar.open('Some thing went wrong, please try again later', 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }); \r\n //this.messageService.add({ severity: 'error', summary: 'error', detail: 'Some thing went wrong, please try again later' });\r\n }\r\n /* OpenConfirmationDialog() { // method to open dialog\r\n this._dialogservice.confirm({\r\n message: 'Are you sure, you want to delete this?',\r\n accept: () => {\r\n this.delete(this.id, this.selectedUploadDetails.Id);\r\n },\r\n reject: () => {\r\n this.onCancel();\r\n\r\n }\r\n });\r\n }*/\r\n\r\n openDialog(Heading,Message,id, selectedUploadDetailsId): void {\r\n const dialogRef = this.dialog.open(CommonDialogComponent, {\r\n width: '300px',\r\n data: {heading: Heading, message: Message},\r\n disableClose: true \r\n });\r\n \r\n dialogRef.afterClosed().subscribe(result => {\r\n this.dialogResponse = result;\r\n if(this.dialogResponse==true){\r\n this.delete(id, selectedUploadDetailsId);\r\n const dialogConf = this.dialog.open(MessageDialogComponent, {\r\n width: '300px',\r\n disableClose: true ,\r\n data: {heading: 'Confirmation', message: 'Uploaded document deleted successfully'}\r\n })\r\n }\r\n });\r\n }\r\n \r\n delete(id: number, selectedUploadDetails: number) {\r\n this._service.Delete(id, selectedUploadDetails).subscribe((data1: any) => {\r\n this.GetFileUploadData();\r\n }, (error) => {\r\n this._snackBar.open('Some thing went wrong, please try again later', 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({ severity: 'error', summary: 'Failure message', detail: 'Something went wrong.\\nPlease try after some time' });\r\n });\r\n //this.uploadDialog.nativeElement.close();\r\n }\r\n\r\n\r\n onDelete(selectedData: any) {\r\n this.selectedUploadDetails = selectedData;\r\n this.openDialog('Confirmation','Do you want to Delete ?',this.id, this.selectedUploadDetails.Id);\r\n }\r\n\r\n\r\n onCancel() {\r\n this.uploadDialog.nativeElement.close();\r\n }\r\n getPAStatus() {\r\n \r\n this._service.GetPAstatus(this.id).subscribe(data => {\r\n this.PAstatus = data;\r\n }, (error) => {\r\n this._snackBar.open('Some thing went wrong, please try again later', 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //this.messageService.add({ severity: 'error', summary: 'Failure message', detail: 'Something went wrong.\\nPlease try after some time' });\r\n });\r\n }\r\n\r\n // submit_approval() {\r\n // var url=this._serverURL + this._resources.submitForApproval + this.id;\r\n // this._http.post(url, {\r\n\r\n // }).subscribe((res) => {\r\n // this.getPAStatus();\r\n // this.messageService.add({severity:'success', summary: 'success message', detail:'Employee profile submitted successfully'});\r\n // // swal(\"\", \"Employee profile submitted successfully\", \"success\");\r\n // }, (error) => {\r\n // this.messageService.add({severity:'error', summary: 'Failure message', detail:'Something went wrong.\\nPlease try after some time'});\r\n // // swal(\"\", \"Something went wrong.\\nPlease try after some time\", \"error\");\r\n // });\r\n // }\r\n submit_approval() {\r\n this.spinner.show()\r\n this._service.SubmitForApproval(this.id).subscribe((res) => {\r\n this.spinner.hide();\r\n this.getPAStatus();\r\n this._snackBar.open('Employee data submitted successfully', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({ severity: 'success', summary: 'success message', detail: 'Employee profile submitted successfully' });\r\n }, (error) => {\r\n this.spinner.hide();\r\n this._snackBar.open('Some thing went wrong, please try again later', 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }); \r\n // this.messageService.add({ severity: 'error', summary: 'Failure message', detail: 'Something went wrong.\\nPlease try after some time' });\r\n // swal(\"\", \"Something went wrong.\\nPlease try after some time\", \"error\");\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

Upload Documents

\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
\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 \r\n \r\n
S.No {{i+1}} Document Name {{element.FileName}} Delete \r\n delete\r\n
No data
\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

Loading ...

\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { AssociateAttendanceReportService } from 'src/app/modules/reports/services/associate-attendance-report.service';\r\nimport { environment } from 'src/environments/environment';\r\nimport { RegularizationService } from '../../services/regularization.service';\r\nimport * as XLSX from 'xlsx'; \r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { DropDownType } from 'src/app/modules/master-layout/models/dropdowntype.model';\r\nimport { DatePipe } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'app-attendance-muster-report',\r\n templateUrl: './attendance-muster-report.component.html',\r\n styleUrls: ['./attendance-muster-report.component.scss'],\r\n \r\n })\r\nexport class AttendanceMusterReportComponent implements OnInit {\r\n\r\n constructor(private associateAttendanceReportService: AssociateAttendanceReportService,private service : RegularizationService,private datePipe: DatePipe) { }\r\nyearsList=[];\r\nminYear:number;\r\nmontsList:Array=[];\r\ndataSource: MatTableDataSource;\r\nYear:FormControl;\r\nMonth:FormControl;\r\ntoday=new Date();\r\nsixMonthsAgo:Date;\r\ncurrentYear=new Date().getFullYear();\r\nselectedMonth=new Date().getMonth()+1;\r\nselectedYear=this.currentYear;\r\nformLists()\r\n{\r\n // year list\r\n this.minYear=environment.minYearOfAttendance;\r\n \r\n for(let year=this.minYear;year<=this.currentYear;year++)\r\n {\r\n this.yearsList.push(year);\r\n }\r\n //month list\r\n let totalMonths = 12; \r\n var endDate =new Date(); \r\n endDate.setMonth(endDate.getMonth() - totalMonths)\r\n\r\n for(var date=this.today;date > endDate;date.setMonth(date.getMonth() - 1)) \r\n { \r\n var month=this.datePipe.transform(date, 'MMMM');\r\n this.montsList.push({label:month ,value:date.getMonth()+1}); \r\n } \r\n}\r\n ngOnInit(): void {\r\n this.formLists();\r\n this.createForm();\r\n \r\n }\r\n // FormControls declarations\r\n createForm()\r\n {\r\nthis.Year = new FormControl(this.selectedYear,[Validators.required]);\r\nthis.Month = new FormControl(this.selectedMonth,[Validators.required]);\r\n }\r\n onSubmit()\r\n {\r\n \r\n this.associateAttendanceReportService.getMusterReport(this.Year.value, this.Month.value).subscribe((res:any)=>{\r\n this.dataSource=new MatTableDataSource(res);\r\n const workSheet = XLSX.utils.json_to_sheet(this.dataSource.data);\r\n const workBook: XLSX.WorkBook = XLSX.utils.book_new();\r\n XLSX.utils.book_append_sheet(workBook, workSheet, 'Attender Muster sheet'); \r\n let month=this.montsList.filter(x=>x.value==this.Month.value)[0].label;\r\n let fileName='AttendanceMusterReport_'+month+'_'+this.Year.value +'.xlsx';\r\n XLSX.writeFile(workBook, fileName);\r\n XLSX.utils.book_append_sheet(workBook, workSheet, 'Attender Muster sheet');\r\n XLSX.writeFile(workBook, 'AttenderMusterReport.xlsx');\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 Year\r\n *\r\n \r\n \r\n {{item}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Month\r\n *\r\n \r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
","import { Component, Inject, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n//import { FullCalendarModule } from \"@fullcalendar/angular\";\r\nimport { CalendarOptions, EventInput } from '@fullcalendar/core'; \r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport {\r\n AttendanceDetailReportData\r\n} from '../../../reports/models/associate-attendance-report.model';\r\n// import Tooltip from 'tooltip.js';\r\nimport { FullCalendarComponent } from '@fullcalendar/angular';\r\n\r\n@Component({\r\n selector: 'app-biometric-attendance-dialog',\r\n templateUrl: './biometric-attendance-dialog.component.html',\r\n styleUrls: ['./biometric-attendance-dialog.component.scss']\r\n})\r\nexport class BiometricAttendanceDialogComponent implements OnInit {\r\n employeeName:string;\r\ndaysWorked:number;\r\ncalendarOptions: CalendarOptions = {\r\n initialView: 'dayGridMonth', \r\n events: [\r\n ],\r\n};\r\n\r\nevents:any;\r\n@ViewChild('calendar') calendarComponent: FullCalendarComponent; // the #calendar in the template\r\n\r\npublic eventData = new BehaviorSubject([]);\r\n\r\nconstructor(\r\n private dialogRef: MatDialogRef\r\n , @Inject(MAT_DIALOG_DATA) public data: AttendanceDetailReportData\r\n ) { \r\n // this.data.eventData = [\r\n // {title: 'Checkin Time: 09:45', date: '2023-06-01',allDay:true},\r\n // {title: 'Checkout Time: null', date: '2023-06-01',allDay:true},\r\n // {title: 'Total Hours: 0', date: '2023-06-01',allDay:true}]\r\n this.eventData.next(data.eventData)\r\n this.getEvents().subscribe(events => { this.events = events.map((event) => {\r\n if(event.title === 'Holiday'){\r\n event['backgroundColor'] = 'Orange'\r\n }\r\n else if(event.title === 'Weekend'){\r\n event['backgroundColor'] = 'gray'\r\n }\r\n else if(event.title ==='Present'){\r\n event['backgroundColor'] = 'green'\r\n }\r\n else if(event.title == 'WFO'){\r\n event['display'] = 'none'\r\n }\r\n\r\n else if(event.title == 'WFH'){\r\n event['backgroundColor'] = '#FCB5AC'\r\n event['textColor'] = 'brown'\r\n \r\n }\r\n\r\n \r\n else {\r\n let title = event.title.split(': ')\r\n // if((title[0] === 'Checkout Time' && title[1] === '') || (title[0] === 'Total Hours' && title[1] === '0') || (title[0] === 'Checkin Time' && title[1] === '')){\r\n // event['backgroundColor'] = '#ea3a5a';\r\n // event['borderColor']='white';\r\n // // event['description']= 'You Missed the punch!!';\r\n // }\r\n if(!((title[0] === 'Checkout Time') || (title[0] === 'Total Hours') || (title[0] === 'Checkin Time'))){\r\n // event['backgroundColor'] = 'red';\r\n if(title[0]=== 'Punches Not In Pair'){\r\n event['backgroundColor'] = 'red';\r\n }\r\n else{\r\n event['display'] ='none'\r\n }\r\n }\r\n }\r\n return event;\r\n })});\r\n this.employeeName = data.filter.EmployeeName; \r\n this.daysWorked = data.daysWorked; \r\n\r\n this.calendarOptions = {\r\n initialView: 'dayGridMonth', \r\n initialDate: data.filter.FromDate,\r\n // height: 850,\r\n events : data.eventData,\r\n eventOrder: 'start',\r\n eventBorderColor: 'white',\r\n // eventRender: (info) => {\r\n // // Check your condition here to determine the background color\r\n // if (info.event.extendedProps.backgroundColor) {\r\n // info.el.style.backgroundColor = info.event.extendedProps.backgroundColor;\r\n // }\r\n // }\r\n // // eventDisplay: this.renderEvents.bind(this),\r\n // eventDidMount: this.eventDidMount.bind(this)\r\n }; \r\n }\r\n\r\n ngOnInit(): void {\r\n \r\n }\r\n\r\n onClose(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n getEvents(): Observable {\r\n return this.eventData.asObservable();\r\n }\r\n\r\n // eventDidMount(info) {\r\n // console.log(info)\r\n // // if(Object.keys(info.event.extendedProps).length > 0){\r\n // // const tooltip = tippy(info.el, {\r\n // // content: info.event.extendedProps.description, // You can customize this with other event properties\r\n // // arrow: true\r\n // // });\r\n // // }\r\n \r\n // }\r\n \r\n\r\n}\r\n","\r\n
\r\n
\r\n {{employeeName}} Attendance   (Total Days: {{daysWorked}})\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 { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-biometric-attendance-found-dialog',\r\n templateUrl: './biometric-attendance-found-dialog.component.html',\r\n styleUrls: ['./biometric-attendance-found-dialog.component.scss']\r\n})\r\nexport class BiometricAttendanceFoundDialogComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n \r\n }\r\n\r\n}\r\n","\r\n

Alert\r\n

\r\n\r\n\r\n error_outline Attendance is already marked\r\n\r\n\r\n\r\n \r\n \r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSnackBar, MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition } from '@angular/material/snack-bar';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport * as moment from 'moment';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { Observable } from 'rxjs';\r\nimport { FileExporterService } from 'src/app/core/services/file-exporter.service';\r\nimport { MasterDataService } from 'src/app/modules/master-layout/services/masterdata.service';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { AttendanceReportDialogComponent } from 'src/app/modules/reports/components/attendance-report-dialog/attendance-report-dialog.component';\r\nimport { AttendanceDetailReport, AttendanceDetailReportData, AttendanceReport, AttendanceReportFilter, SelectItem } from 'src/app/modules/reports/models/associate-attendance-report.model';\r\nimport { AssociateAttendanceReportService } from 'src/app/modules/reports/services/associate-attendance-report.service';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { BiometricAttendanceDialogComponent } from '../biometric-attendance-dialog/biometric-attendance-dialog.component';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Component({\r\n selector: 'app-biometric-attendance-report',\r\n templateUrl: './biometric-attendance-report.component.html',\r\n styleUrls: ['./biometric-attendance-report.component.scss']\r\n})\r\nexport class BiometricAttendanceReportComponent implements OnInit {\r\n\r\n empId:number;\r\n themeAppearence = themeconfig.formfieldappearances;\r\n filter:AttendanceReportFilter;\r\n detailFilter:AttendanceReportFilter;\r\n lstEmployees: AttendanceReport[] = []; \r\n lstAttendance: AttendanceDetailReport[] = []; \r\n componentName: string; myForm: FormGroup;\r\n totalRecordsCount: number;\r\n errorMessage: any[];\r\n searchFormSubmitted: boolean = false; \r\n options: any;\r\n searchData: AttendanceReportFilter; \r\n errorSummary: string = '';\r\n step=0;\r\n loading: boolean;\r\n public reportStatus: boolean = false;\r\n isLoading: boolean = false;\r\n firstDate: Date;\r\n lastDate: Date;\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n roleName :string;\r\n associateName : string;\r\n employeeCode: string;\r\n private resources = servicePath.API.PagingConfigValue;\r\n displayedColumns: string[] = ['EmployeeCode','EmployeeName','ProjectName','ReportingManagerName','TotalDaysWorked','TotalWfoDays','TotalWfhDays', 'TotalLeavesTaken', \"View\"];\r\n projectsList: any[] = [];\r\n filteredProject : Observable;\r\n selectedProjectId:any;\r\n filteredAssociates: Observable;\r\n associatesList: SelectItem[] = [];\r\n selectedEmployeeName: any;\r\n dialogData : AttendanceDetailReportData;\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'right';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n employeedataSource: MatTableDataSource;\r\n minDate : Date;\r\n maxDate : Date;\r\n totalWorkingDays : number;\r\n totalHolidays: number;\r\n isDeliveryDepartment = true;\r\n BiometricAttendanceStartDate:Date;\r\n @ViewChild('sort') sort: MatSort;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n\r\n constructor(private associateAttendanceReportService: AssociateAttendanceReportService,\r\n private fileExporterService: FileExporterService,\r\n public navService: NavService,\r\n private spinner: NgxSpinnerService,\r\n private _snackBar: MatSnackBar,\r\n private fb: FormBuilder,\r\n public dialog: MatDialog,\r\n private masterDataService: MasterDataService,\r\n private router : Router,\r\n private actRoute: ActivatedRoute\r\n ) {\r\nthis.searchData = new AttendanceReportFilter();\r\nthis.PageSize = this.resources.PageSize;\r\nthis.PageDropDown = this.resources.PageDropDown;\r\n\r\n this.BiometricAttendanceStartDate=environment.BiometricAttendanceStartDate;\r\n this.minDate=this.BiometricAttendanceStartDate;\r\n this.maxDate = new Date();\r\n\r\n this.empId = JSON.parse(\r\n sessionStorage.getItem(\"AssociatePortal_UserInformation\")\r\n ).employeeId; \r\n\r\n this.associateAttendanceReportService.IsDeliveryDepartmentforBiometric(this.empId).subscribe(\r\n (response: boolean) => { \r\n this.isDeliveryDepartment = response; \r\n if(this.isDeliveryDepartment === true)\r\nthis.displayedColumns = ['EmployeeCode','EmployeeName','ProjectName','ReportingManagerName','TotalDaysWorked','TotalWfoDays','TotalWfhDays','TotalLeavesTaken',\"View\"];\r\nelse\r\nthis.displayedColumns = ['EmployeeCode','EmployeeName','ReportingManagerName','TotalDaysWorked','TotalWfoDays','TotalWfhDays','TotalLeavesTaken',\"View\"]; \r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees); \r\n this.paginator.pageIndex = 0;\r\n this.employeedataSource.paginator = this.paginator; \r\n // this.employeedataSource.sort = this.sort \r\n \r\n },\r\n (error: any) => { }\r\n ); \r\n\r\nthis.navService.currentSearchBoxData.subscribe(responseData => {\r\nthis.applyFilter(responseData);\r\n});\r\n}\r\nFromDate:Date;\r\nToDate:Date;\r\nAssociateName:string;\r\n ngOnInit(): void { \r\n // this.router.navigate(['/associates/regularization'])\r\n this.actRoute.queryParams.subscribe(params => { this.FromDate = params.fromDate;this.ToDate=params.toDate });\r\n \r\n if (sessionStorage.getItem(\"AssociatePortal_UserInformation\") != null) {\r\n this.roleName = JSON.parse(\r\n sessionStorage.getItem(\"AssociatePortal_UserInformation\")\r\n ).roleName;\r\n \r\n this.empId = JSON.parse(\r\n sessionStorage.getItem(\"AssociatePortal_UserInformation\")\r\n ).employeeId; \r\n this.totalWorkingDays = 0;\r\n this.totalHolidays = 0;\r\n}\r\nthis.associateAttendanceReportService.IsDeliveryDepartmentforBiometric(this.empId).subscribe(\r\n (response: boolean) => { \r\n this.isDeliveryDepartment = response; \r\n },\r\n (error: any) => { }\r\n); \r\n\r\nif(this.isDeliveryDepartment === true)\r\nthis.displayedColumns = ['EmployeeCode','EmployeeName','ProjectName','ReportingManagerName','TotalDaysWorked','TotalWfoDays','TotalWfhDays','TotalLeavesTaken',\"View\"];\r\nelse\r\nthis.displayedColumns = ['EmployeeCode','EmployeeName','ReportingManagerName','TotalDaysWorked','TotalWfoDays','TotalWfhDays','TotalLeavesTaken',\"View\"];\r\n\r\nthis.employeedataSource = new MatTableDataSource(this.lstEmployees); \r\n this.paginator.pageIndex = 0;\r\n this.employeedataSource.paginator = this.paginator; \r\n // this.employeedataSource.sort = this.sort \r\n let fromdate=new Date();\r\n let todate=new Date(); \r\n if(this.FromDate!=null ||this.ToDate!=null)\r\n {\r\n fromdate=new Date(this.FromDate);\r\n todate=new Date(this.ToDate);\r\n }\r\n else\r\n {\r\n // fromdate.setDate(fromdate.getDate()-14);\r\n let date=new Date()\r\n fromdate=new Date(date.getFullYear(),date.getMonth(),1);\r\n if(fromdate {\r\n this.spinner.hide();\r\n this.lstEmployees = response;\r\n response.forEach((res) => {\r\n this.totalWorkingDays = res.TotalWorkingDays;\r\n this.totalHolidays = res.TotalHolidays; \r\n }); \r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees); \r\n this.employeedataSource.paginator = this.paginator; \r\n // this.employeedataSource.sort = this.sort \r\n },\r\n (error: any) => { this.spinner.hide(); }\r\n );\r\n }\r\n\r\n getAttendanceDetail(filter: AttendanceReportFilter) {\r\n this.spinner.show();\r\n this.lstAttendance = [];\r\n this.associateAttendanceReportService.GetBiometricAttendanceDetailReport(filter).subscribe(\r\n (response: AttendanceDetailReport[]) => {\r\n this.spinner.hide();\r\n this.lstAttendance = response; \r\n },\r\n (error: any) => { this.spinner.hide(); }\r\n );\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n if (filterValue) {\r\n this.employeedataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees);\r\n this.employeedataSource.paginator = this.paginator;\r\n // this.employeedataSource.sort = this.sort; \r\n }\r\n } else {\r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees);\r\n this.employeedataSource.paginator = this.paginator;\r\n // this.employeedataSource.sort = this.sort; \r\n }\r\n }\r\n\r\n clearInput(evt: any, fieldName): void {\r\n if(fieldName=='toDate'){\r\n evt.stopPropagation();\r\n this.myForm.get('toDate').reset();\r\n this.clearData();\r\n }\r\n if(fieldName=='fromDate'){\r\n evt.stopPropagation();\r\n this.myForm.get('fromDate').reset();\r\n this.clearData();\r\n }\r\n }\r\n\r\n clearFilter() {\r\n this.myForm.reset();\r\n this.myForm.clearValidators(); \r\n this.searchFormSubmitted = false;\r\n this.errorSummary = ''; \r\n this.searchData = new AttendanceReportFilter();\r\n this.lstEmployees = [];\r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees); \r\n // this.employeedataSource.sort = this.sort; \r\n this.employeedataSource.paginator = this.paginator;\r\n this.totalRecordsCount = this.lstEmployees.length; \r\n this.totalWorkingDays = 0;\r\n this.totalHolidays = 0; \r\n }\r\n\r\n clearData() { \r\n this.lstEmployees = [];\r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees); \r\n // this.employeedataSource.sort = this.sort; \r\n this.paginator.pageIndex = 0;\r\n this.employeedataSource.paginator = this.paginator;\r\n this.totalRecordsCount = this.lstEmployees.length; \r\n this.totalWorkingDays = 0;\r\n this.totalHolidays = 0; \r\n }\r\n \r\n exportAsXLSX() { \r\n this.spinner.show();\r\n if(this.isDeliveryDepartment == true)\r\n {\r\n const columnsForExcel_delivery = this.employeedataSource.data.map(x => ({\r\n \r\n 'ID': x.EmployeeCode,\r\n 'Name': x.EmployeeName, \r\n 'Project': x.ProjectName, \r\n 'Reporting Manager': x.ReportingManagerName, \r\n 'Total Days': x.TotalDaysWorked,\r\n 'Total WFH Days' : x.TotalWFHDays,\r\n 'Total WFO Days' : x.TotalWFODays,\r\n 'Total Leaves' : x.TotalLeaves\r\n\r\n }));\r\n this.fileExporterService.exportToExcel(columnsForExcel_delivery, \"Associate Attendance Report\"); \r\n }\r\n else\r\n {\r\n const columnsForExcel_delivery = this.employeedataSource.data.map(x => ({\r\n 'ID': x.EmployeeCode,\r\n 'Name': x.EmployeeName, \r\n 'Reporting Manager': x.ReportingManagerName, \r\n 'Total Days': x.TotalDaysWorked,\r\n 'Total WFH Days' : x.TotalWFHDays,\r\n 'Total WFO Days' : x.TotalWFODays,\r\n 'Total Leaves' : x.TotalLeaves \r\n }));\r\n this.fileExporterService.exportToExcel(columnsForExcel_delivery, \"Associate Attendance Report\"); \r\n } \r\n this.spinner.hide();\r\n }\r\n\r\n viewAttendanceDetails(employee: AttendanceReport)\r\n {\r\n this.detailFilter = new AttendanceReportFilter();\r\n this.detailFilter.EmployeeName =employee.EmployeeName;\r\n this.detailFilter.EmployeeCode = employee.EmployeeCode;\r\n this.detailFilter.FromDate = this.searchData.FromDate;\r\n this.detailFilter.ToDate = this.searchData.ToDate;\r\n this.detailFilter.ProjectId = 0;\r\n\r\n // this.spinner.show();\r\n this.lstAttendance = [];\r\n this.router.navigate(['associates/viewAttendance'])\r\n this.associateAttendanceReportService.GetBiometricAttendanceDetailReport(this.detailFilter).subscribe(\r\n (response: AttendanceDetailReport[]) => {\r\n // this.spinner.hide();\r\n this.lstAttendance = response; \r\n this.dialogData = new AttendanceDetailReportData();\r\n this.dialogData.eventData = this.lstAttendance;\r\n this.dialogData.filter = this.detailFilter; \r\n this.dialogData.employeeName = employee.EmployeeName;\r\n this.dialogData.daysWorked = employee.TotalDaysWorked;\r\n this.associateAttendanceReportService.attendanceData.next(this.dialogData) \r\n // const dialogRef = this.dialog.open(BiometricAttendanceDialogComponent, {\r\n // width: '1200px',\r\n // disableClose: true,\r\n // data: this.dialogData\r\n // }); \r\n },\r\n (error: any) => { this.spinner.hide(); }\r\n );\r\n \r\n } \r\n\r\n}\r\n","\r\n \r\n \r\n \r\n filter_list Filter Attendance Report\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n From Date *\r\n \r\n \r\n \r\n close\r\n \r\n \r\n \r\n From Date is required\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n To Date *\r\n \r\n \r\n close\r\n \r\n \r\n \r\n To Date is required\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 people List of associates \r\n {{lstEmployees.length}}\r\n
\r\n
\r\n Total Working Days \r\n {{totalWorkingDays}}\r\n
\r\n
\r\n Holidays \r\n {{totalHolidays}}\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 \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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
ID {{element.EmployeeCode}} Name {{element.EmployeeName}} Project {{element.ProjectName}} Reporting Manager {{element.ReportingManagerName}} Total Days Worked {{element.TotalDaysWorked}}\r\n Total WFO Days info {{element.TotalWFODays}}\r\n Total WFH Days info {{element.TotalWFHDays}}\r\n Total Leaves Taken info {{element.TotalLeaves}}\r\n Detail View visibility
No data
\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

Loading ...

\r\n
\r\n\r\n","import { SelectionModel } from '@angular/cdk/collections';\r\nimport { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { themeconfig } from \"../../../../../themeconfig\";\r\nimport { AssignRmToNonDeliveryComponent } from '../assign-rm-to-non-delivery/assign-rm-to-non-delivery.component';\r\nimport { AssignRmForNonDeliveryService } from '../../services/assign-rm-for-non-delivery.service';\r\nimport { EmployeeDetails } from '../../models/changeRM.model';\r\nimport { DepartmentDetails } from 'src/app/modules/master-layout/models/role.model';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { MatSort } from '@angular/material/sort';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-change-rm-for-non-delivery',\r\n templateUrl: './change-rm-for-non-delivery.component.html',\r\n styleUrls: ['./change-rm-for-non-delivery.component.scss']\r\n})\r\nexport class ChangeRmForNonDeliveryComponent implements OnInit {\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n displayedColumns: string[] = ['select', 'EmpName', 'ReportingManager'];\r\n dataSource = new MatTableDataSource();\r\n @ViewChild(MatSort) sort: MatSort;\r\n @ViewChild(MatPaginator,{ static: true }) paginator: MatPaginator;\r\n selection = new SelectionModel(true, []);\r\n nonDeliveryAssociatesByDeptId : EmployeeDetails[] = [];\r\n nonDeliveryDeparmentsList : DepartmentDetails[] =[];\r\n selectedDepartment:number;\r\n departmentId = new FormControl('',[Validators.required]);\r\n\r\n constructor(public dialog:MatDialog,public _service:AssignRmForNonDeliveryService,private _snackBar : MatSnackBar,private spinner: NgxSpinnerService,private navService : NavService) { }\r\n\r\n ngOnInit(): void {\r\n this.getNonDeliveryDepartments();\r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n this.applyFilter(responseData);\r\n })\r\n }\r\n ngAfterViewInit() {\r\n this.dataSource.sort = this.sort;\r\n }\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n if (filterValue) {\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n else {\r\n this.dataSource = new MatTableDataSource(this.nonDeliveryAssociatesByDeptId);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.nonDeliveryAssociatesByDeptId);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n }\r\n\r\n\r\n getNonDeliveryDepartments(){\r\n this._service.getDepartments().subscribe((res : DepartmentDetails[])=>{\r\n this.nonDeliveryDeparmentsList = res; \r\n this.nonDeliveryDeparmentsList = this.nonDeliveryDeparmentsList.filter((department)=>\r\n department.Description.toLowerCase()!=(\"Technology & Delivery\").toLowerCase() && department.Description.toLowerCase()!=(\"Corporate\").toLowerCase())\r\n },(error)=>{\r\n this._snackBar.open(\r\n 'Unable to Fetch Departments',\r\n 'x',\r\n {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n })\r\n }\r\n\r\n onDepartmentChange(event){\r\n this.selection = new SelectionModel(true, []);\r\n this.spinner.show();\r\n this.selectedDepartment = event.value;\r\n this.getServiceDepartmentAssociatesByDeptId();\r\n }\r\n\r\n getServiceDepartmentAssociatesByDeptId(){\r\n this._service.getEmpListByDeptId(this.selectedDepartment).subscribe((res:EmployeeDetails[])=>{\r\n this.spinner.hide();\r\n this.nonDeliveryAssociatesByDeptId = res;\r\n this.dataSource = new MatTableDataSource(this.nonDeliveryAssociatesByDeptId);\r\n this.dataSource.sort = this.sort;\r\n this.dataSource.paginator = this.paginator;\r\n },(error)=>{\r\n this.spinner.hide();\r\n this._snackBar.open(\r\n 'Unable to Fetch Associates',\r\n 'x',\r\n {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n this.dataSource = new MatTableDataSource();\r\n this.dataSource.sort = this.sort;\r\n this.dataSource.paginator = this.paginator;\r\n })\r\n }\r\n\r\n isAllSelected() {\r\n const numSelected = this.selection.selected.length;\r\n const numRows = this.dataSource.data.length;\r\n return numSelected === numRows;\r\n }\r\n\r\n\r\n masterToggle() {\r\n this.isAllSelected() ?\r\n this.selection.clear() :\r\n this.dataSource.data.forEach(row => this.selection.select(row));\r\n }\r\n\r\n assignRM(){\r\n let dialogRef = this.dialog.open(AssignRmToNonDeliveryComponent, {\r\n disableClose: true,\r\n height:'250px',\r\n width:'400px',\r\n data:this.selection.selected\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.getServiceDepartmentAssociatesByDeptId();\r\n this.selection = new SelectionModel(true, []);\r\n });\r\n }\r\n\r\n }\r\n","\r\n
\r\n
\r\n \r\n Department\r\n *\r\n \r\n \r\n {{item.Description}}\r\n \r\n \r\n Department is\r\n Required\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 \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  All\r\n \r\n \r\n \r\n Name {{element.EmpName}} Reporting Manager {{element.ReportingManager}}
No data
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n

Loading ...

\r\n
","import { Component, OnInit, Injector, Inject, ViewChild } from \"@angular/core\";\r\n// import { Http } from \"@angular/http\";\r\nimport * as moment from \"moment\";\r\nimport {\r\n FormBuilder,\r\n Validators,\r\n FormGroup,\r\n FormGroupDirective,\r\n ControlContainer\r\n} from \"@angular/forms\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { EmployeeType } from \"../../models/employeetype.model\";\r\nimport { Grade } from \"../../../admin/models/grade.model\";\r\nimport { Department } from \"../../../admin/models/department.model\";\r\nimport { Designation } from \"../../../admin/models/designation.model\";\r\nimport { Associate } from \"../../models/associate.model\";\r\nimport { GenericType } from \"../../../../modules/master-layout/models/dropdowntype.model\";\r\nimport { ProspectiveAssosiateService } from \"../../services/prospective-assosiate.service\";\r\nimport { MasterDataService } from \"../../../../modules/master-layout/services/masterdata.service\";\r\nimport { ProjectsService } from \"../../services/projects.service\";\r\nimport * as servicePath from \"../../../../core/service-paths\";\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport {\r\n MatSnackBar,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition\r\n} from \"@angular/material/snack-bar\";\r\n// import { FormGroup, NgForm } from \"../../../../../node_modules/@angular/forms\";\r\n//import {Technology} from \"../../admin/models/designation.model\";\r\n//import {HRAdvisor} from \"../../admin/models/designation.model\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { ConfirmCancelComponent } from \"../../../master-layout/components/confirm-cancel/confirm-cancel.component\";\r\nimport { themeconfig } from \"../../../../../themeconfig\";\r\nimport { MatCheckboxChange } from \"@angular/material/checkbox\";\r\nimport { ThrowStmt } from \"@angular/compiler\";\r\n\r\n@Component({\r\n selector: \"app-edit-prospective-associate\",\r\n templateUrl: \"./edit-prospective-associate.component.html\",\r\n styleUrls: [\"./edit-prospective-associate.component.scss\"]\r\n})\r\nexport class EditProspectiveAssociateComponent implements OnInit {\r\n // newAssociate: Associate;\r\n newAssociate: any;\r\n filteredDesignationIds: GenericType[] = [];\r\n designation: Designation;\r\n componentName: string;\r\n ProspectiveAssociateList: Array;\r\n empTypes: any[] = [];\r\n technologies: any[] = [];\r\n departments: any[] = [];\r\n hradvisors: any[] = [];\r\n reportingmanagers: any[] = [];\r\n designationList = [];\r\n id: number;\r\n isRequired: boolean = false;\r\n isDropped: boolean = false;\r\n lastDate: any;\r\n disableReason: boolean = true;\r\n dropped: boolean = false;\r\n isShow: boolean = false;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n newAssocaiteForm: FormGroup;\r\n isSubmitted: boolean = false;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n\r\n constructor(\r\n private _router: Router,\r\n private masterDataService: MasterDataService,\r\n public dialog: MatDialog,\r\n private projectsService: ProjectsService,\r\n private _prospectiveAssociateService: ProspectiveAssosiateService,\r\n private actRoute: ActivatedRoute,\r\n private _snackBar: MatSnackBar,\r\n private _formBuilder: FormBuilder,\r\n private spinner: NgxSpinnerService\r\n ) {\r\n // this.newAssociate = new Associate();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.spinner.show();\r\n this.newAssocaiteForm = this._formBuilder.group({\r\n FirstName: [\"\", [Validators.required]],\r\n MiddleName: [\"\"],\r\n LastName: [\"\", [Validators.required]],\r\n PersonalEmailAddress: [\"\", [Validators.required, Validators.email, , Validators.pattern(/^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/)]],\r\n DateOfJoining: [\"\", [Validators.required]],\r\n MobileNo: [\r\n \"\",\r\n [Validators.required, Validators.pattern(\"^[1-9]{1}[0-9]{9}$\")]\r\n ],\r\n GradeName: [\"\", [Validators.required]],\r\n Designation: [\"\", [Validators.required]],\r\n EmploymentType: [\"\", [Validators.required]],\r\n TechnologyID: [\"\", [Validators.required]],\r\n Department: [\"\", [Validators.required]],\r\n ManagerId: [\"\", [Validators.required]],\r\n HRAdvisorName: [\"\", [Validators.required]],\r\n RecruitedBy: [\"\"],\r\n dropped: [false],\r\n DropOutReason: [\"\", [Validators.required]]\r\n },\r\n // this.validationDropped()\r\n );\r\n\r\n this.getDates();\r\n this.getDesignations();\r\n this.actRoute.params.subscribe(params => {\r\n this.id = params[\"id\"];\r\n });\r\n this.newAssocaiteForm.controls.GradeName.disable();\r\n\r\n this.projectsService\r\n .list(servicePath.API.EmployeeType.list)\r\n .subscribe((res: any[]) => {\r\n this.empTypes = res;\r\n });\r\n this.projectsService\r\n .GetList(servicePath.API.Technology.activelist)\r\n .subscribe((res: any[]) => {\r\n this.technologies = res;\r\n });\r\n this.projectsService\r\n .GetList(servicePath.API.Department.list)\r\n .subscribe((res: any[]) => {\r\n this.departments = res;\r\n });\r\n this.projectsService\r\n .GetList(servicePath.API.HRAdvisor.list)\r\n .subscribe((res: any[]) => (this.hradvisors = res));\r\n this.masterDataService\r\n .GetManagersAndCompetencyLeads()\r\n .subscribe(res => (this.reportingmanagers = res));\r\n this._prospectiveAssociateService.getPADetailsById(this.id).subscribe(\r\n (data: Associate) => {\r\n this.spinner.hide();\r\n if (data != null) {\r\n this.newAssociate = data;\r\n this.newAssocaiteForm.patchValue(data);\r\n this.newAssocaiteForm.controls.Department.setValue(data.DepartmentId);\r\n this.newAssocaiteForm.controls[\"Designation\"].setValue({\r\n Name: this.newAssociate.Designation,\r\n Id: this.newAssociate.DesignationId\r\n });\r\n\r\n this.newAssocaiteForm.controls.Department.setValue(data.DepartmentId);\r\n if (\r\n this.newAssociate.TechnologyID == null ||\r\n this.newAssociate.TechnologyID == \"\"\r\n ) {\r\n this.newAssociate.TechnologyID = \"\";\r\n }\r\n\r\n if (this.newAssociate.DepartmentId == 1) this.isRequired = true;\r\n if (\r\n this.newAssociate.GradeId == null ||\r\n this.newAssociate.GradeId == \"\"\r\n ) {\r\n this.newAssociate.GradeId = \"\";\r\n }\r\n if (\r\n this.newAssociate.DesignationId == null ||\r\n this.newAssociate.DesignationId == 0\r\n ) {\r\n this.newAssociate.DesignationId = 0;\r\n }\r\n if (\r\n this.newAssociate.EmploymentType == null ||\r\n this.newAssociate.EmploymentType == \"\"\r\n ) {\r\n this.newAssociate.EmploymentType = \"\";\r\n }\r\n if (\r\n this.newAssociate.ManagerId == null ||\r\n this.newAssociate.ManagerId == \"\" ||\r\n this.newAssociate.ManagerId == 0\r\n ) {\r\n this.newAssociate.ManagerId = \"\";\r\n }\r\n if (\r\n this.newAssociate.HRAdvisorName == null ||\r\n this.newAssociate.HRAdvisorName == \"\"\r\n ) {\r\n this.newAssociate.HRAdvisorName = \"\";\r\n }\r\n if (\r\n this.newAssociate.DepartmentId == null ||\r\n this.newAssociate.DepartmentId == \"\"\r\n ) {\r\n this.newAssociate.DepartmentId = \"\";\r\n }\r\n this.newAssocaiteForm.controls.TechnologyID.setValue(this.newAssociate.TechnologyID);\r\n } else {\r\n this.spinner.hide();\r\n this._snackBar.open(\r\n \"Failed to get the prospective associate details.\",\r\n \"x\",\r\n {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n }\r\n );\r\n }\r\n //swal(\"\", \"Failed to get the prospective associate details\", \"error\");\r\n },\r\n (error: any) => {\r\n this.spinner.hide();\r\n if (error.error != undefined && error.error != \"\")\r\n this._snackBar.open(\r\n \"Failed to get the prospective associate details.\",\r\n \"x\",\r\n {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n }\r\n );\r\n\r\n // this.messageService.add({severity:'error', summary: 'Failure Message', detail:'Failed to get the prospective associate details'});\r\n }\r\n );\r\n }\r\n\r\n validationDropped() {\r\n return (droppedVal: FormGroup) => {\r\n return droppedVal.value.dropped && droppedVal.value.DropOutReason\r\n ? { required: true }\r\n : null;\r\n };\r\n }\r\n\r\n getDesignations(): void {\r\n this.masterDataService.GetDesignationList().subscribe((data: any[]) => {\r\n this.designationList = data;\r\n });\r\n }\r\n\r\n getDates() {\r\n var date = new Date(),\r\n y = date.getFullYear(),\r\n m = date.getMonth();\r\n this.lastDate = new Date(y, m + 2, 0);\r\n // this.startDate= new Date(y, m - 2, 0)\r\n }\r\n\r\n compareCategoryObjects(object1: any, object2: any) {\r\n return object1 && object2 && object1.id == object2.id;\r\n }\r\n\r\n filteredDesignations(event) {\r\n if (event) {\r\n let suggestionString = event.target.value.toLowerCase();\r\n this.filteredDesignationIds = [];\r\n this.designationList.forEach(v => {\r\n if (\r\n this.filteredDesignationIds.findIndex(\r\n x => x.Name == v.DesignationName\r\n ) === -1 &&\r\n v.DesignationName.toLowerCase().indexOf(suggestionString) > -1\r\n ) {\r\n this.filteredDesignationIds.push({\r\n Id: v.DesignationId,\r\n Name: v.DesignationName\r\n });\r\n }\r\n });\r\n } else {\r\n this.filteredDesignationIds = [];\r\n this.pushFilteredDesignationIds();\r\n }\r\n }\r\n\r\n pushFilteredDesignationIds() {\r\n this.filteredDesignationIds = [];\r\n for (let i = 0; i < this.designationList.length; i++) {\r\n this.filteredDesignationIds.push({\r\n Id: this.designationList[i].DesignationId,\r\n Name: this.designationList[i].DesignationName\r\n });\r\n }\r\n }\r\n\r\n displayFn(designation: any) {\r\n return designation && designation ? designation.Name : \"\";\r\n }\r\n\r\n openDialog(): void {\r\n const dialogRef = this.dialog.open(ConfirmCancelComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n width: \"300px\",\r\n data: { route: \"/associates/prospectiveassociate\" }\r\n });\r\n }\r\n\r\n requiredTechnolgy(event: any) {\r\n var target = event.value;\r\n if (target == 1) this.isRequired = true;\r\n else {\r\n this.isRequired = false;\r\n this.newAssociate.TechnologyID = \"\";\r\n }\r\n }\r\n\r\n onlychar(event: any) {\r\n let k: any;\r\n k = event.charCode; // k = event.keyCode; (Both can be used)\r\n return (k > 64 && k < 91) || (k > 96 && k < 123) || k == 8 || k == 32;\r\n }\r\n\r\n onlyForNumbers(event: any) {\r\n var keys = {\r\n escape: 27,\r\n backspace: 8,\r\n tab: 9,\r\n enter: 13,\r\n \"0\": 48,\r\n \"1\": 49,\r\n \"2\": 50,\r\n \"3\": 51,\r\n \"4\": 52,\r\n \"5\": 53,\r\n \"6\": 54,\r\n \"7\": 55,\r\n \"8\": 56,\r\n \"9\": 57\r\n };\r\n for (var index in keys) {\r\n if (!keys.hasOwnProperty(index)) continue;\r\n if (event.charCode == keys[index] || event.keyCode == keys[index]) {\r\n return; //default event\r\n }\r\n }\r\n event.preventDefault();\r\n }\r\n\r\n onUpdate() {\r\n this.isSubmitted = true;\r\n if (this.newAssocaiteForm.get('dropped').value == true) {\r\n this.newAssocaiteForm.get('DropOutReason').setValidators([Validators.required]);\r\n this.isDropped = true;\r\n }\r\n else {\r\n this.newAssocaiteForm.get(\"DropOutReason\").setErrors(null);\r\n this.newAssocaiteForm.get('DropOutReason').clearValidators();\r\n this.isDropped = false;\r\n }\r\n this.newAssocaiteForm.get('DropOutReason').updateValueAndValidity();\r\n if(this.newAssocaiteForm.get('Department').value!=1)\r\n {\r\n var technology =this.newAssocaiteForm.get('TechnologyID');\r\n technology.reset();\r\n technology.clearValidators();\r\n technology.updateValueAndValidity();\r\n }\r\n if (this.newAssocaiteForm.valid) {\r\n if (this.designation && this.designation.DesignationId) {\r\n this.newAssociate.DesignationId = this.designation.DesignationId;\r\n } else {\r\n this.newAssociate.DesignationId = 0;\r\n this.newAssociate.Gender = \"\";\r\n }\r\n this.newAssociate.JoinDate = this.newAssocaiteForm.value.DateOfJoining; //,'dd/mm/yyyy',true);\r\n this.newAssociate.DateOfJoining = this.newAssocaiteForm.value.DateOfJoining;\r\n this.newAssociate.DepartmentId = this.newAssocaiteForm.value.Department;\r\n this.newAssociate.DesignationId = this.newAssocaiteForm.value.Designation.Id;\r\n this.newAssociate.Designation = this.newAssocaiteForm.value.Designation.Name;\r\n this.newAssociate.dropped = this.newAssocaiteForm.value.dropped;\r\n this.newAssociate.DropOutReason = this.newAssocaiteForm.value.DropOutReason;\r\n this.newAssociate.EmploymentType = this.newAssocaiteForm.value.EmploymentType;\r\n this.newAssociate.FirstName = this.newAssocaiteForm.value.FirstName;\r\n this.newAssociate.MiddleName = this.newAssocaiteForm.value.MiddleName;\r\n this.newAssociate.LastName = this.newAssocaiteForm.value.LastName;\r\n this.newAssociate.HRAdvisorName = this.newAssocaiteForm.value.HRAdvisorName;\r\n this.newAssociate.ManagerId = this.newAssocaiteForm.value.ManagerId;\r\n this.newAssociate.MobileNo = this.newAssocaiteForm.value.MobileNo;\r\n this.newAssociate.PersonalEmailAddress = this.newAssocaiteForm.value.PersonalEmailAddress;\r\n this.newAssociate.RecruitedBy = this.newAssocaiteForm.value.RecruitedBy;\r\n this.newAssociate.TechnologyID = this.newAssocaiteForm.value.TechnologyID;\r\n this.newAssociate.ReasonForDropOut = this.newAssocaiteForm.value.DropOutReason;\r\n\r\n this.newAssociate.EmpName =\r\n this.newAssocaiteForm.value.FirstName +\r\n \" \" +\r\n this.newAssocaiteForm.value.MiddleName\r\n ? this.newAssocaiteForm.value.MiddleName + \" \"\r\n : \"\" + this.newAssocaiteForm.value.LastName;\r\n this.newAssociate.DateofJoining = moment(this.newAssocaiteForm.value.DateOfJoining).format(\"YYYY-MM-DD\");\r\n this.newAssociate.JoinDate = this.newAssociate.DateofJoining;\r\n this.newAssociate.DateOfJoining = this.newAssociate.DateofJoining;\r\n this._prospectiveAssociateService\r\n .UpdatePADetails(this.newAssociate)\r\n .subscribe(\r\n (data: boolean) => {\r\n if (data != null) {\r\n let message = \"Prospective associate details updated successfully.\";\r\n if (this.isDropped)\r\n message = \"Prospective associate details successfully marked for a drop.\";\r\n\r\n this._snackBar.open(\r\n message, \"x\",\r\n {\r\n duration: 3000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n }\r\n );\r\n\r\n setTimeout(() => {\r\n this._router.navigate([\"/associates/prospectiveassociate\"]);\r\n }, 1000);\r\n } else {\r\n this._snackBar.open(\"Failed to update.\", \"x\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n\r\n },\r\n error => {\r\n this._snackBar.open(error.error.title, \"x\", {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n // this.messageService.add({severity:'error', summary: 'Error message', detail:error.error});\r\n }\r\n );\r\n\r\n return true;\r\n }\r\n }\r\n\r\n getGradeByDesignation(designation) {\r\n if (designation && designation.Id) {\r\n this.masterDataService.getGradeByDesignation(designation.Id).subscribe(\r\n (gradeResponse: Grade) => {\r\n if (gradeResponse) {\r\n this.newAssociate.GradeName = gradeResponse.GradeName;\r\n this.newAssociate.GradeId = gradeResponse.GradeId;\r\n this.newAssocaiteForm.controls.GradeName.setValue(\r\n gradeResponse.GradeName\r\n );\r\n }\r\n },\r\n (error: any) => { }\r\n );\r\n } else {\r\n this.newAssociate.GradeName = \"\";\r\n }\r\n }\r\n\r\n onChange(event: any) {\r\n event.stopPropagation();\r\n this.newAssocaiteForm.get(\"DropOutReason\").reset();\r\n if (this.isSubmitted) {\r\n this.newAssocaiteForm.get(\"DropOutReason\").setErrors(null);\r\n this.newAssocaiteForm.get('DropOutReason').clearValidators();\r\n this.newAssocaiteForm.get('DropOutReason').updateValueAndValidity();\r\n }\r\n }\r\n setDepartmentName(e) {\r\n this.newAssociate.Department = e.Description;\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n \r\n First Name\r\n *\r\n \r\n \r\n First Name is Required\r\n \r\n
\r\n
\r\n \r\n Middle Name\r\n \r\n \r\n
\r\n
\r\n \r\n Last Name\r\n *\r\n \r\n \r\n Last Name is Required\r\n \r\n
\r\n
\r\n \r\n Personal Email ID\r\n *\r\n \r\n \r\n Personal Email Address is Required\r\n Enter Valid Email Address\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Mobile Number\r\n *\r\n \r\n \r\n Mobile Number is Required\r\n Enter Valid Mobile Number\r\n \r\n
\r\n
\r\n \r\n Designation\r\n *\r\n \r\n \r\n \r\n \r\n {{item.Name}}\r\n \r\n \r\n \r\n Designation is Required\r\n \r\n
\r\n
\r\n \r\n Grade\r\n *\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Employment Type\r\n *\r\n \r\n \r\n \r\n {{e.EmpType}}\r\n \r\n \r\n Employment Type is Required\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Department\r\n *\r\n \r\n \r\n \r\n {{d.Description}}\r\n \r\n \r\n Department is Required\r\n \r\n
\r\n
\r\n \r\n Technology\r\n *\r\n \r\n \r\n \r\n {{t.PracticeAreaDescription}}\r\n \r\n \r\n Technology is Required\r\n \r\n
\r\n
\r\n \r\n Manager\r\n *\r\n \r\n \r\n \r\n {{rm.EmpName}}\r\n \r\n \r\n Manager is Required\r\n \r\n
\r\n
\r\n \r\n HR Advisor\r\n *\r\n \r\n \r\n \r\n {{hra.Name}}\r\n \r\n \r\n HR Advisor is Required\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Recruited By\r\n \r\n \r\n
\r\n
\r\n Is Dropped\r\n
\r\n
\r\n \r\n Reason for Dropout *\r\n \r\n Reason for Dropout Required/Invalid\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

Loading ...

\r\n
","import { Component, OnInit, Injector, ViewChild, Inject, ChangeDetectorRef, ChangeDetectionStrategy } from '@angular/core';\r\nimport { Qualification } from '../../models/education.model';\r\nimport * as moment from 'moment';\r\nimport { Router, ActivatedRoute, } from '@angular/router';\r\nimport { EducationService } from '../../services/education.service';\r\nimport { CommonService } from '../../../../core/services/common.service';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { AppInjector } from '../../../shared/injector';\r\nimport { Associate } from '../../models/associate.model';\r\nimport { DropDownType } from '../../../master-layout/models/dropdowntype.model';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { FormGroup, FormControl, Validators, FormArray, FormBuilder, FormGroupDirective } from '@angular/forms';\r\nimport { ProgramType } from '../../../master-layout/utility/enums';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { getMultipleValuesInSingleSelectionError } from '@angular/cdk/collections';\r\nimport { MatTable } from '@angular/material/table';\r\nimport {\r\n MatSnackBar,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition,\r\n} from '@angular/material/snack-bar';\r\nimport { CommonDialogComponent } from '../../../shared/components/common-dialog/common-dialog.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MessageDialogComponent } from 'src/app/modules/project-life-cycle/components/message-dialog/message-dialog.component';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\n\r\n@Component({\r\n selector: 'app-education-associate',\r\n templateUrl: './education-associate.component.html',\r\n styleUrls: ['./education-associate.component.scss']\r\n})\r\nexport class EducationAssociateComponent implements OnInit {\r\n added = false;\r\n dialogResponse: boolean;\r\n id: number;\r\n qualifications: Array;\r\n educationAssociate: FormGroup;\r\n EducationalQualification = 'hello';\r\n themeAppearence = themeconfig.formfieldappearances;\r\n _Associate = new Associate();\r\n currentempID: number;\r\n // @ViewChild('messageToaster') messageToaster: any;\r\n @ViewChild('educationDialog') educationDialog: any;\r\n @ViewChild(MatTable) table: MatTable;\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'right';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n _resources: any;\r\n _dataService: Array;\r\n index: number;\r\n newCreateForm: FormGroup;\r\n buttonType: string;\r\n type: string;\r\n ddlQualifications: any[];\r\n ddlGrades: any[];\r\n valueKey: string = 'Qualification';\r\n valueKey1: string = 'GradeType';\r\n programType = new Array();\r\n // programType: any[];\r\n yearRange: string;\r\n is10th: boolean = false;\r\n dataSource: MatTableDataSource;\r\n arr = [];\r\n EducationArray: FormArray;\r\n EducationForm: FormGroup;\r\n @ViewChild('FormGroupDirective') formGroupDirective: FormGroupDirective;\r\n // tslint:disable-next-line:max-line-length\r\n displayedColumns: string[] = ['EducationalQualification', 'ProgramTypeId', 'Specialization', 'AcademicCompletedYear', 'Institution', 'Grade', 'Marks', 'Action', 'Delete'];\r\n isEduFormSubmitted: boolean = false;\r\n // tslint:disable-next-line:variable-name\r\n // tslint:disable-next-line:max-line-length\r\n constructor(public dialog: MatDialog, public fb: FormBuilder, private snackBar: MatSnackBar, @Inject(HttpClient) private _http: HttpClient, private _injector: Injector = AppInjector(),\r\n // tslint:disable-next-line:variable-name\r\n // tslint:disable-next-line:max-line-length\r\n @Inject(EducationService) private _service: EducationService, private _commonService: CommonService,\r\n @Inject(Router) private _router: Router, private actRoute: ActivatedRoute, private changeDetectorRefs: ChangeDetectorRef,private spinner: NgxSpinnerService) {\r\n this.qualifications = new Array();\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.spinner.show()\r\n this.actRoute.params.subscribe(params => { this.id = params.id; });\r\n // this.id = 221;\r\n this.currentempID = this.id;\r\n this.getBusinessValues(this.valueKey);\r\n this.getGrades(this.valueKey1);\r\n this.GetQualifications(this.currentempID);\r\n this.programType.push({ label: 'Full Time', value: 0 });\r\n this.programType.push({ label: 'Part Time', value: 1 });\r\n this.programType.push({ label: 'Distance Education', value: 2 });\r\n\r\n\r\n }\r\n creatForm() {\r\n this.educationAssociate = new FormGroup({\r\n EducationArray: new FormArray([])\r\n });\r\n }\r\n createFormGroup() {\r\n this.EducationArray = new FormArray([]);\r\n this.qualifications.forEach(element => {\r\n this.EducationArray = this.educationAssociate.get('EducationArray') as FormArray;\r\n this.EducationArray.push(this.BuildForm(element));\r\n });\r\n }\r\n BuildForm(element): any {\r\n if (element.EducationalQualification == \"10th\") {\r\n this.is10th = true;\r\n return new FormGroup({\r\n EducationalQualification: new FormControl(element.EducationalQualification, [Validators.required]),\r\n ProgramTypeId: new FormControl(element.ProgramTypeId, [Validators.required]),\r\n Specialization: new FormControl(element.Specialization, [Validators.pattern('^[a-zA-Z ]*$'), Validators.maxLength(100)]),\r\n AcademicCompletedYear: new FormControl(element.AcademicCompletedYear, [Validators.required]),\r\n Institution: new FormControl(element.Institution, [Validators.required, Validators.pattern('^[a-zA-Z ]*$'), Validators.maxLength(100)]),\r\n Grade: new FormControl(element.Grade, [Validators.required]),\r\n Marks: new FormControl(element.Marks, [Validators.required, Validators.pattern('^[0-9.]*$')])\r\n });\r\n }\r\n else {\r\n this.is10th = false;\r\n return new FormGroup({\r\n EducationalQualification: new FormControl(element.EducationalQualification, [Validators.required]),\r\n ProgramTypeId: new FormControl(element.ProgramTypeId, [Validators.required]),\r\n Specialization: new FormControl(element.Specialization, [Validators.required, Validators.pattern('^[a-zA-Z ]*$'), Validators.maxLength(100)]),\r\n AcademicCompletedYear: new FormControl(element.AcademicCompletedYear, [Validators.required]),\r\n Institution: new FormControl(element.Institution, [Validators.required, Validators.pattern('^[a-zA-Z ]*$'), Validators.maxLength(100)]),\r\n Grade: new FormControl(element.Grade, [Validators.required]),\r\n Marks: new FormControl(element.Marks, [Validators.required, Validators.pattern('^[0-9.]*$')])\r\n });\r\n }\r\n }\r\n get testArray(): FormArray {\r\n return this.educationAssociate.get('EducationArray') as FormArray;\r\n }\r\n onlyStrings(event: any) {\r\n let k: any;\r\n k = event.target.value;\r\n return k;\r\n }\r\n\r\n\r\n setValueQualification(i: any) {\r\n this.educationAssociate.get('EducationalQualification').patchValue(this.qualifications[i].EducationalQualification);\r\n\r\n }\r\n setValueSpecialization(i: any) {\r\n console.log(this.is10th)\r\n }\r\n setValueProgramType(i: any) {\r\n this.educationAssociate.get('ProgramTypeId').patchValue(this.qualifications[i].ProgramTypeId);\r\n }\r\n setValueCompletedYear(i: any) {\r\n this.educationAssociate.get('AcademicCompletedYear').patchValue(this.qualifications[i].AcademicCompletedYear);\r\n }\r\n setValueInstitute(i: any) {\r\n this.educationAssociate.get('Institution').patchValue(this.qualifications[i].Institution);\r\n }\r\n setValueGrade(i: any) {\r\n this.educationAssociate.get('Grade').patchValue(this.qualifications[i].Grade);\r\n }\r\n setValueMarks(i: any) {\r\n this.educationAssociate.get('Marks').patchValue(this.qualifications[i].Marks);\r\n }\r\n OnDateChange(event: any) {\r\n }\r\n GetQualifications = function (empId: number): any {\r\n this._service.GetQualifications(empId).subscribe((res: any) => {\r\n this.spinner.hide()\r\n for (let i = 0; i < res.length; i++) {\r\n res[i].AcademicCompletedYear = moment(res[i].AcademicCompletedYear).format('YYYY-MM-DD');\r\n }\r\n\r\n this.qualifications = res;\r\n if (this.qualifications.length !== 0) {\r\n this.type = 'edit';\r\n } else {\r\n this.type = 'new';\r\n }\r\n\r\n if (this.qualifications.length === 0) {\r\n // tslint:disable-next-line:max-line-length\r\n this.qualifications.push({ AcademicCompletedYear: null, EducationalQualification: '', Grade: '', ProgramTypeId: null, Institution: '', Specialization: '', Marks: null });\r\n }\r\n this.creatForm();\r\n this.createFormGroup();\r\n\r\n },(error)=>{\r\n this.spinner.hide()\r\n });\r\n };\r\n getBusinessValues(valueKey: string) {\r\n\r\n this._commonService.GetBusinessValues(valueKey).subscribe((res: any) => { this.ddlQualifications = res });\r\n }\r\n\r\n getGrades(valueKey1: string) {\r\n\r\n this._commonService.GetBusinessValues(valueKey1).subscribe((res: any) => {\r\n this.ddlGrades = res;\r\n });\r\n }\r\n\r\n onNewQualification() {\r\n this.added = true;\r\n if (this.educationAssociate.controls.EducationArray.valid) {\r\n // tslint:disable-next-line:max-line-length\r\n this.qualifications.push({ AcademicCompletedYear: null, EducationalQualification: null, Grade: null, ProgramTypeId: null, Institution: null, Specialization: null, Marks: null });\r\n this.EducationArray = this.educationAssociate.get('EducationArray') as FormArray;\r\n // tslint:disable-next-line:max-line-length\r\n this.EducationArray.push(this.newCreateForm = this.BuildForm({ AcademicCompletedYear: null, EducationalQualification: null, Grade: null, ProgramTypeId: null, Institution: null, Specialization: null, Marks: null }));\r\n this.dynamicEducationValidations('AcademicCompletedYear', this.newCreateForm);\r\n this.dynamicEducationValidations('EducationalQualification', this.newCreateForm);\r\n this.dynamicEducationValidations('Grade', this.newCreateForm);\r\n this.dynamicEducationValidations('ProgramTypeId', this.newCreateForm);\r\n this.dynamicEducationValidations('Institution', this.newCreateForm);\r\n this.dynamicEducationValidations('Specialization', this.newCreateForm);\r\n this.dynamicEducationValidations('Marks', this.newCreateForm);\r\n this.table.renderRows();\r\n return false;\r\n }\r\n else {\r\n return false;\r\n }\r\n\r\n }\r\n\r\n dynamicEducationValidations(eduControl: string, newFormEduValidate: FormGroup) {\r\n newFormEduValidate.controls[eduControl].setErrors(null);\r\n newFormEduValidate.controls[eduControl].clearValidators();\r\n newFormEduValidate.controls[eduControl].updateValueAndValidity();\r\n }\r\n\r\n OpenConfirmationDialog() { // method to open dialog\r\n\r\n this.Delete();\r\n }\r\n\r\n checkqualification(event, i) {\r\n if (event === '10th')\r\n this.setSpecializationValidators('10th', i);\r\n else\r\n this.setSpecializationValidators(event, i);\r\n }\r\n setSpecializationValidators(qual: any, i: number) {\r\n this.is10th = false;\r\n // tslint:disable-next-line:max-line-length\r\n this.EducationArray.controls[i].get('Specialization').setValidators([Validators.required, Validators.pattern('^[a-zA-Z ]*$')]);\r\n if (qual === '10th') {\r\n this.is10th = true;\r\n this.EducationArray.controls[i].get('Specialization').setValidators([Validators.pattern('^[a-zA-Z ]*$')]);\r\n }\r\n this.EducationArray.controls[i].get('Specialization').updateValueAndValidity();\r\n }\r\n onDelete(index: number) {\r\n this.index = index;\r\n this.openDialog('Confirmation', 'Do you want to Delete ?', index);\r\n this.index = index;\r\n }\r\n\r\n clearInput(evt: any, fieldName, i): void {\r\n if (fieldName == 'AcademicCompletedYear') {\r\n evt.stopPropagation();\r\n this.testArray.controls[i].get('AcademicCompletedYear').reset();\r\n }\r\n }\r\n\r\n Delete() {\r\n this.qualifications.splice(this.index, 1);\r\n // tslint:disable-next-line:no-var-keyword\r\n // tslint:disable-next-line:prefer-for-of\r\n for (let i = 0; i < this.qualifications.length; i++) {\r\n if (this.qualifications.length === 1) {\r\n if (this.qualifications[i].EducationalQualification === '10th') {\r\n this.is10th = true;\r\n }\r\n }\r\n }\r\n this.EducationArray.removeAt(this.index);\r\n this.table.renderRows();\r\n }\r\n\r\n openDialog(Heading, Message, index): void {\r\n const dialogRef = this.dialog.open(CommonDialogComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n width: '300px',\r\n data: { heading: Heading, message: Message }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.dialogResponse = result;\r\n if (this.dialogResponse == true) {\r\n this.Delete();\r\n const dialogConf = this.dialog.open(MessageDialogComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n width: '300px',\r\n data: { heading: 'Confirmation', message: 'Education Details deleted successfully' }\r\n })\r\n }\r\n });\r\n }\r\n\r\n\r\n onCancel() {\r\n this.educationDialog.nativeElement.close();\r\n }\r\n\r\n // tslint:disable-next-line:only-arrow-functions\r\n IsValidDate = function (fromDate: any, toDate: any) {\r\n if (Date.parse(fromDate) <= Date.parse(toDate)) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n OnSubmit(qualification: Qualification[]) {\r\n if (this.type === 'new') {\r\n this.buttonType = 'Save';\r\n }\r\n else {\r\n this.buttonType = 'Update';\r\n }\r\n if (this.buttonType === 'Save' || this.buttonType === 'Update') {\r\n return this.onSaveorUpdate(this.qualifications);\r\n }\r\n\r\n }\r\n OnUpdate() {\r\n this.buttonType = 'Update';\r\n }\r\n\r\n OnSave() {\r\n this.buttonType = 'Save';\r\n }\r\n setonNewQualification() {\r\n this.buttonType = 'NewQualification';\r\n }\r\n\r\n setEducationRequiredValidations(eduFormControl: string, newEduDetails: FormGroup) {\r\n newEduDetails.controls[eduFormControl].setValidators([Validators.required])\r\n newEduDetails.controls[eduFormControl].updateValueAndValidity();\r\n if (eduFormControl === 'Marks')\r\n this.isEduFormSubmitted = false\r\n else if (eduFormControl === 'Institution') {\r\n newEduDetails.controls[eduFormControl].setValidators([Validators.required, Validators.pattern('^[a-zA-Z ]*$'), Validators.maxLength(100)])\r\n newEduDetails.controls[eduFormControl].updateValueAndValidity();\r\n }\r\n else if (eduFormControl === 'Marks') {\r\n newEduDetails.controls[eduFormControl].setValidators([Validators.required, Validators.pattern('^[0-9.]*$')])\r\n newEduDetails.controls[eduFormControl].updateValueAndValidity();\r\n }\r\n else if (eduFormControl == ''){\r\n newEduDetails.controls[eduFormControl].setValidators([Validators.pattern('^[a-zA-Z ]*$'), Validators.maxLength(100), Validators.required])\r\n newEduDetails.controls[eduFormControl].updateValueAndValidity();\r\n }\r\n }\r\n\r\n onSaveorUpdate(qual: Array) {\r\n if (this.type === 'new') {\r\n this.buttonType = 'Save';\r\n }\r\n else {\r\n this.buttonType = 'Update';\r\n }\r\n if (this.newCreateForm !== undefined) {\r\n this.isEduFormSubmitted = true;\r\n this.setEducationRequiredValidations('AcademicCompletedYear', this.newCreateForm);\r\n this.setEducationRequiredValidations('EducationalQualification', this.newCreateForm);\r\n this.setEducationRequiredValidations('Grade', this.newCreateForm);\r\n this.setEducationRequiredValidations('Specialization', this.newCreateForm);\r\n this.setEducationRequiredValidations('ProgramTypeId', this.newCreateForm);\r\n this.setEducationRequiredValidations('Institution', this.newCreateForm);\r\n this.setEducationRequiredValidations('Marks', this.newCreateForm);\r\n }\r\n let today: any = new Date();\r\n // tslint:disable-next-line:prefer-for-of\r\n for (let i = 0; i < qual.length; i++) {\r\n\r\n if (qual[i].EducationalQualification === '10th') {\r\n // tslint:disable-next-line:max-line-length\r\n if ((qual[i].EducationalQualification.length === 0 || !qual[i].EducationalQualification) || !qual[i].Grade || !qual[i].Institution || !qual[i].Marks || !qual[i].AcademicCompletedYear) {\r\n return true;\r\n }\r\n\r\n }\r\n\r\n if (qual[i].EducationalQualification !== '10th') {\r\n // tslint:disable-next-line:max-line-length\r\n if ((!qual[i].EducationalQualification) || !qual[i].Grade || !qual[i].Institution || !qual[i].Specialization || !qual[i].Marks || !qual[i].AcademicCompletedYear) {\r\n // this.messageService.add({severity:'warn', summary: 'Warning Message', detail:'Please complete education details'});\r\n return true;\r\n }\r\n }\r\n\r\n if (qual[i].Grade === 'Percentage') {\r\n // this.messageService.add({severity:'warn', summary: 'Warning Message', detail:'Percentage should not be greater than 100'});\r\n if (qual[i].Marks > 100) {\r\n this.snackBar.open('Percentage should not be greater than 100', 'x', {\r\n duration: 1000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n return true;\r\n }\r\n else if (qual[i].Marks == 0) {\r\n this.snackBar.open('Percentage should not be zero', 'x', {\r\n duration: 1000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n return true;\r\n }\r\n }\r\n if ((qual[i].Grade == 'CPI' || qual[i].Grade == 'GPI')) {\r\n // this.messageService.add({severity:'warn', summary: 'Warning Message', detail:'CPI/GPA should not be greater than 10'});\r\n if (qual[i].Marks > 10) {\r\n this.snackBar.open('CPI/GPA should not be greater than 10', 'x', {\r\n duration: 1000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n return true;\r\n }\r\n else if (qual[i].Marks == 0) {\r\n this.snackBar.open('CPI/GPA should not be zero', 'x', {\r\n duration: 1000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n return true;\r\n }\r\n }\r\n\r\n if (this.IsValidDate(today, qual[i].AcademicCompletedYear)) {\r\n // tslint:disable-next-line:max-line-length\r\n // this.messageService.add({severity:'warn', summary: 'Warning Message', detail:'Completed Year should not be greater than or equal to todays date'});\r\n this.snackBar.open('Completed Year should not be greater than or equal to todays date', 'x', {\r\n duration: 1000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n return true;\r\n }\r\n\r\n qual[i].AcademicCompletedYear = qual[i].AcademicCompletedYear;\r\n }\r\n\r\n let IsDuplicate = 0;\r\n let duplicate = false;\r\n // tslint:disable-next-line:prefer-for-of\r\n for (let i = 0; i < qual.length; i++) {\r\n if (!duplicate) {\r\n IsDuplicate = 0;\r\n // tslint:disable-next-line:prefer-for-of\r\n for (let q = 0; q < qual.length; q++) {\r\n if (qual[i].EducationalQualification === qual[q].EducationalQualification && qual[i].EducationalQualification != 'Post Graduation' && qual[i].EducationalQualification != 'Graduation') {\r\n IsDuplicate++;\r\n if (IsDuplicate > 1) {\r\n duplicate = true;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (IsDuplicate > 1) {\r\n // this.messageService.add({severity:'warn', summary: 'Warning Message', detail:'Same qualification is selected multiple times'});\r\n this.snackBar.open('Same qualification is selected multiple times', 'x', {\r\n duration: 1000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n return true;\r\n }\r\n else {\r\n this._Associate.Qualifications = [];\r\n // tslint:disable-next-line:prefer-for-of\r\n for (let i = 0; i < qual.length; i++) {\r\n this._Associate.Qualifications.push(qual[i]);\r\n }\r\n this._Associate.EmpId = this.currentempID;\r\n this._service.SaveEducationDetails(this._Associate).subscribe((data) => {\r\n // this.messageService.add({severity:'success', summary: 'Success Message', detail:'Qualifications saved successfully'});\r\n if (this.buttonType == 'Save') {\r\n this.snackBar.open('Qualifications saved successfully', 'x', {\r\n duration: 1000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n }\r\n else {\r\n this.snackBar.open('Qualifications updated successfully', 'x', {\r\n duration: 1000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n }\r\n // this.EducationArray.reset();\r\n this.GetQualifications(this.currentempID);\r\n }, (error) => {\r\n if (error._body !== undefined && error._body !== '') {\r\n // this.messageService.add({severity:'error', summary: 'Failure Message', detail:''});\r\n }\r\n else {\r\n this.snackBar.open('Failed to save qualifications', 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n // this.messageService.add({severity:'error', summary: 'Failure Message', detail:'Failed to save qualifications'});\r\n }\r\n });\r\n this.is10th = false;\r\n return false;\r\n }\r\n }\r\n\r\n onlyNumbers(event: any) {\r\n this._commonService.onlyNumbers(event);\r\n }\r\n formateDate(givenDate?: string): string {\r\n let formatedDate = '';\r\n if (givenDate !== '' && typeof (givenDate) !== 'undefined' && givenDate != null) {\r\n formatedDate = givenDate.split('T')[0];\r\n }\r\n return formatedDate;\r\n }\r\n\r\n}\r\n","
\r\n
\r\n

Education Details

\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 \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 \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
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
Qualification\r\n *\r\n \r\n \r\n \r\n \r\n {{q.ValueName}}\r\n \r\n \r\n Qualification is Required\r\n \r\n Program Type\r\n *\r\n \r\n \r\n \r\n \r\n {{option.label}}\r\n \r\n \r\n Program Type is Required\r\n \r\n Specialization\r\n *\r\n \r\n \r\n \r\n\r\n Specialization is required\r\n Maximum 100 characters are allowed\r\n Only Alphabets are allowed\r\n\r\n \r\n Completed Year\r\n *\r\n \r\n \r\n Choose a date\r\n \r\n \r\n close\r\n \r\n \r\n \r\n Completed Year is required\r\n \r\n Institute/University\r\n *\r\n \r\n \r\n \r\n Institute/University is required\r\n Maximum 100 characters are allowed\r\n Only Alphabets are allowed\r\n \r\n Grade\r\n *\r\n \r\n \r\n \r\n {{g.ValueName}}\r\n \r\n \r\n Grade is required\r\n \r\n Marks/Percentage\r\n *\r\n \r\n \r\n \r\n Marks/Percentage is required\r\n Maximum 5 characters are allowed\r\n Only Numbers are allowed\r\n \r\n Action \r\n \r\n \r\n \r\n delete\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

Loading ...

\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { ProspectiveToAssociateComponent } from '../prospective-to-associate/prospective-to-associate.component';\r\nimport { EmergencyContactDetail, Relation } from '../../models/family.model';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { CommonService } from '../../../master-layout/services/common.service';\r\nimport * as moment from 'moment';\r\nimport { FamilyService } from '../../services/family.service';\r\nimport { Associate } from '../../models/associate.model';\r\nimport { FormGroup, FormControl, Validators, FormGroupDirective, FormArray, FormBuilder } from '@angular/forms';\r\nimport { NavService } from '../../../master-layout/services/nav.service';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { MatTable } from '@angular/material/table';\r\nimport {MatDialog} from '@angular/material/dialog';\r\nimport { CommonDialogComponent } from '../../../shared/components/common-dialog/common-dialog.component';\r\nimport { DatePipe } from '@angular/common';\r\n\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\n@Component({\r\n selector: 'app-family-associate',\r\n templateUrl: './family-associate.component.html',\r\n styleUrls: ['./family-associate.component.scss'],\r\n providers: [CommonService]\r\n})\r\nexport class FamilyAssociateComponent implements OnInit {\r\n minDate: Date;\r\n maxDate: Date;\r\n relationshipForm: FormGroup;\r\n dialogResponse:boolean;\r\n relationshipFormData: any;\r\n emergencydetails: FormGroup;\r\n savedmsg:string\r\n // emergencytwodetails: FormGroup;\r\n added = false;\r\n id: number;\r\n currentempID: number;\r\n isPrimary: boolean;\r\n _Associate = new Associate();\r\n AssociateRelationsInfo: Array;\r\n relationsForm: FormGroup;\r\n // contactDetailsOne = new EmergencyContactDetail();\r\n // contactDetailsTwo = new EmergencyContactDetail();\r\n relationvalue: any[];\r\n themeAppearence = themeconfig.formfieldappearances;\r\n selectedFamilyDetails: any;\r\n type: string = \"new\";\r\n valueKey: string = \"Relation\";\r\n valueKey1: string = \"Country\";\r\n ddlRelations: any[];\r\n ddlCountries: any[];\r\n birthDate: Date;\r\n shortYearCutoff: any = '+10';\r\n mobileErrorMessage: string;\r\n formSubmitted: boolean = false;\r\n firstcontactzipLength: number;\r\n secondcontactzipLength: number;\r\n rship;\r\n relationtable: FormArray;\r\n isClearClicked:Boolean=false;\r\n\r\n //isNew:boolean=true;\r\n @ViewChild('familyDialog') familyDialog: any;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n @ViewChild(MatTable) table: MatTable;\r\n submitAttempt: boolean = false;\r\n //dataSource: MatTableDataSource;\r\n dataSource = new MatTableDataSource();\r\n // dataSource = this.AssociateRelationsInfo;\r\n displayedColumns: string[] = ['S.no', 'RelationShip', 'Name', 'DateOfBirth', 'Occupation', 'Action'];\r\n constructor(public dialog: MatDialog,private formBuilder: FormBuilder, private _snackBar: MatSnackBar, private _commonService: CommonService, private _service: FamilyService, private router: Router, private actRoute: ActivatedRoute, private datePipe: DatePipe, private spinner: NgxSpinnerService) {\r\n this.AssociateRelationsInfo = new Array();\r\n\r\n\r\n const currentYear = new Date().getFullYear();\r\n this.minDate = new Date(currentYear - 100, 0, 1);\r\n this.maxDate = new Date();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.spinner.show()\r\n this.actRoute.params.subscribe(params => { this.id = params['id']; });\r\n this.currentempID = Math.floor(this.id);\r\n\r\n\r\n this.relationshipForm = new FormGroup({\r\n contactDetailsOne: this.createContactsForm(),\r\n contactDetailsTwo: this.createContactsForm(),\r\n RelationsInfo: new FormArray([this.CreateNewRelationshipForm()]),\r\n EmployeeId: new FormControl(null, [Validators.required]),\r\n });\r\n\r\n this.getRelations(this.valueKey);\r\n this.getCountries(this.valueKey1);\r\n this.getFamilydetails(this.currentempID);\r\n this.getDates();\r\n\r\n this.isPrimary = false;\r\n\r\n this._Associate.contactDetailsOne = new EmergencyContactDetail();\r\n this._Associate.contactDetailsTwo = new EmergencyContactDetail();\r\n this.relationshipForm.controls['EmployeeId'].setValue(this.currentempID);\r\n this.dataSource.data = this.relationshipForm['controls']['RelationsInfo']['controls'];\r\n }\r\n\r\n CreateNewRelationshipForm(): FormGroup {\r\n return this.formBuilder.group({\r\n Id: new FormControl(0),\r\n BirthDate: new FormControl(null),\r\n Name: new FormControl('', [Validators.required]),\r\n Occupation: new FormControl('', [Validators.required]),\r\n RelationShip: new FormControl('', [Validators.required]),\r\n DateOfBirth: new FormControl('', [Validators.required]),\r\n EmployeeId: new FormControl(this.currentempID, [Validators.required]),\r\n });\r\n }\r\n\r\n addNewRelationshipForm() {\r\n (this.relationshipForm.controls['RelationsInfo'] as FormArray).push(this.CreateNewRelationshipForm());\r\n }\r\n\r\n createContactsForm() {\r\n return new FormGroup({\r\n Id: new FormControl(0),\r\n IsPrimary: new FormControl(null),\r\n EmployeeId: new FormControl(this.currentempID, [Validators.required]),\r\n ContactType: new FormControl(null),\r\n ContactName: new FormControl(null, [Validators.required]),\r\n Relationship: new FormControl(null, [Validators.required]),\r\n AddressLine1: new FormControl(null, [Validators.required, Validators.maxLength(200)]),\r\n AddressLine2: new FormControl(null, [Validators.maxLength(200)]),\r\n City: new FormControl(null, [Validators.required]),\r\n State: new FormControl(null, [Validators.required]),\r\n Country: new FormControl(null, [Validators.required]),\r\n PostalCode: new FormControl(null, [Validators.required,Validators.pattern('^[0-9]*$')]),\r\n TelePhoneNo: new FormControl(null, [Validators.pattern('^(?:(?:\\\\+|0{0,2})91(\\\\s*[\\\\ -]\\\\s*)?|[0]?)?[789]\\\\d{9}|(\\\\d[ -]?){10}\\\\d$'), Validators.minLength(11), Validators.maxLength(12)]),\r\n MobileNo: new FormControl(null, [Validators.required, Validators.minLength(10), Validators.maxLength(10)]),\r\n EmailAddress: new FormControl(null, [Validators.maxLength(50)]),\r\n });\r\n }\r\n\r\n onClear() {\r\n this.isClearClicked=true;\r\n this.relationshipForm.reset();\r\n setTimeout(() => this.formGroupDirective.resetForm(), 0);\r\n this.formSubmitted=false;\r\n }\r\n getRelations(valueKey: string) {\r\n this._commonService.GetBusinessValues(valueKey).subscribe((res: any) => {\r\n this.ddlRelations = res\r\n });\r\n }\r\n compareCategoryObjects(object1: any, object2: any) {\r\n return object1 && object2 && object1.id == object2.id;\r\n }\r\n getCountries(valueKey1: string) {\r\n this._commonService.GetBusinessValues(valueKey1).subscribe((res: any) => {\r\n this.ddlCountries = res\r\n });\r\n }\r\n\r\n selectedDate(selectedDate: Date): Boolean {\r\n var today: any = new Date();\r\n today = today.getFullYear();\r\n selectedDate = moment(selectedDate).toDate();\r\n var selDate = selectedDate.getFullYear();\r\n var diff = Math.round(Math.abs(selDate - today));\r\n if (diff >= 100) {\r\n\r\n this._snackBar.open('Please select a valid date', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n return;\r\n }\r\n }\r\n getDates() {\r\n var date = new Date(),\r\n y = date.getFullYear(),\r\n m = date.getMonth(),\r\n d = date.getDate();\r\n this.birthDate = new Date(y, m, d - 1);\r\n }\r\n checkValidations = function () {\r\n this.submitAttempt = false;\r\n\r\n if (this._Associate.contactDetailsOne.IsPrimary == true) {\r\n // if (this._Associate.contactDetailsOne.ContactName == undefined || this._Associate.contactDetailsOne.ContactName == \"\" ||\r\n // this._Associate.contactDetailsOne.Relationship == undefined || this._Associate.contactDetailsOne.Relationship == \"\" ||\r\n // this._Associate.contactDetailsOne.AddressLine1 == undefined || this._Associate.contactDetailsOne.AddressLine1 == \"\" ||\r\n // this._Associate.contactDetailsOne.City == undefined || this._Associate.contactDetailsOne.City == \"\" ||\r\n // this._Associate.contactDetailsOne.State == undefined || this._Associate.contactDetailsOne.State == \"\" ||\r\n // this._Associate.contactDetailsOne.PostalCode == undefined || this._Associate.contactDetailsOne.PostalCode == \"\" ||\r\n // this._Associate.contactDetailsOne.Country == undefined || this._Associate.contactDetailsOne.Country == \"\" ||\r\n // this._Associate.contactDetailsOne.MobileNo == undefined || this._Associate.contactDetailsOne.MobileNo == \"\")\r\n\r\n if (this.emergencydetails.value.ContactOnefirstcontactname || this.emergencydetails.value.ContactOnerelation || this.emergencydetails.value.ContactOneAddressLine1 || this.emergencydetails.value.ContactOneCity ||\r\n this.emergencydetails.value.ContactOneState || this.emergencydetails.value.ContactOnecountry || this.emergencydetails.value.ContactOneZip || this.emergencydetails.value.ContactOneMobileNumber)\r\n this.submitAttempt = false;\r\n else {\r\n this.submitAttempt = true;\r\n }\r\n\r\n }\r\n else if (this._Associate.contactDetailsTwo.IsPrimary == true) {\r\n\r\n // if (this._Associate.contactDetailsTwo.ContactName == undefined || this._Associate.contactDetailsTwo.ContactName == \"\" ||\r\n // this._Associate.contactDetailsTwo.Relationship == undefined || this._Associate.contactDetailsTwo.AddressLine1 == undefined ||\r\n // this._Associate.contactDetailsTwo.AddressLine1 == \"\" || this._Associate.contactDetailsTwo.City == undefined ||\r\n // this._Associate.contactDetailsTwo.City == \"\" || this._Associate.contactDetailsTwo.State == undefined ||\r\n // this._Associate.contactDetailsTwo.State == \"\" || this._Associate.contactDetailsTwo.PostalCode == undefined ||\r\n // this._Associate.contactDetailsTwo.Country == undefined || this._Associate.contactDetailsTwo.MobileNo == undefined ||\r\n // this._Associate.contactDetailsTwo.ContactName == \"\" || this._Associate.contactDetailsTwo.Relationship == \"\" ||\r\n // this._Associate.contactDetailsTwo.PostalCode == null || this._Associate.contactDetailsTwo.Country == \"\" ||\r\n // this._Associate.contactDetailsTwo.MobileNo == \"\")\r\n if (this.emergencydetails.value.ContactTwofirstcontactname || this.emergencydetails.value.ContactTworelation || this.emergencydetails.value.ContactTwoAddressLine1 || this.emergencydetails.value.ContactTwoCity ||\r\n this.emergencydetails.value.ContactTwoState || this.emergencydetails.value.ContactTwocountry || this.emergencydetails.value.ContactTwoZip || this.emergencydetails.value.ContactTwoMobileNumber)\r\n\r\n this.submitAttempt = false;\r\n else {\r\n this.submitAttempt = true;\r\n }\r\n }\r\n if (this.emergencydetails.value.ContactOneTelephoneNumber && this.emergencydetails.value.ContactOneTelephoneNumber.length! >= 10)\r\n this.submitAttempt = false;\r\n else {\r\n this.submitAttempt = true;\r\n }\r\n if (this.emergencydetails.value.ContactOneMobileNumber && this.emergencydetails.value.ContactOneMobileNumber.length >= 10)\r\n this.submitAttempt = false;\r\n else {\r\n this.submitAttempt = true;\r\n }\r\n if (this.emergencydetails.value.ContactOneTelephoneNumber && this.emergencydetails.value.ContactOneTelephoneNumber.length >= 10)\r\n this.submitAttempt = false;\r\n else {\r\n this.submitAttempt = true;\r\n }\r\n if (this.emergencydetails.value.ContactTwoMobileNumber && this.emergencydetails.value.ContactTwoMobileNumber.length >= 10)\r\n this.submitAttempt = false;\r\n else {\r\n this.submitAttempt = true;\r\n }\r\n if (this.emergencydetails.value.ContactOneZip && this.emergencydetails.value.ContactOneZip.length == this.firstcontactzipLength)\r\n this.submitAttempt = false;\r\n else {\r\n this.submitAttempt = true;\r\n }\r\n if (this.emergencydetails.value.ContactTwoZip && this.emergencydetails.value.ContactTwoZip.length == this.firstcontactzipLength)\r\n this.submitAttempt = false;\r\n else {\r\n this.submitAttempt = true;\r\n }\r\n\r\n }\r\n //this.emergencydetails.controls.ContactTwoZip.setvalue(x)\r\n\r\n getFamilydetails = function (empID: number) {\r\n this._service.GetFamilyDetails(this.id).subscribe((res: any) => {\r\n this.spinner.hide()\r\n if (res.Item.RelationsInfo.length != 0 || res.Item.contactDetailsOne || res.Item.contactDetailsTwo) {\r\n this.type = \"edit\";\r\n //this.isNew=false;\r\n }\r\n for (var i = 0; i < res.Item.RelationsInfo.length; i++) {\r\n\r\n res.Item.RelationsInfo[i].BirthDate = res.Item.RelationsInfo[i].DateOfBirth.replace(\"T11:00:00+05:30\", '');\r\n if(!this.formSubmitted){\r\n if (i >= 1) {\r\n this.addNewRelationshipForm();\r\n }\r\n }\r\n\r\n this.relationshipForm['controls']['RelationsInfo']['controls'][i]['controls']['Id'].setValue(res.Item.RelationsInfo[i].Id);\r\n this.relationshipForm['controls']['RelationsInfo']['controls'][i]['controls']['EmployeeId'].setValue(this.currentempID);\r\n this.relationshipForm['controls']['RelationsInfo']['controls'][i]['controls']['BirthDate'].setValue(res.Item.RelationsInfo[i].BirthDate);\r\n this.relationshipForm['controls']['RelationsInfo']['controls'][i]['controls']['Name'].setValue(res.Item.RelationsInfo[i].Name);\r\n this.relationshipForm['controls']['RelationsInfo']['controls'][i]['controls']['Occupation'].setValue(res.Item.RelationsInfo[i].Occupation);\r\n this.relationshipForm['controls']['RelationsInfo']['controls'][i]['controls']['RelationShip'].setValue(parseInt(res.Item.RelationsInfo[i].RelationShip));\r\n this.relationshipForm['controls']['RelationsInfo']['controls'][i]['controls']['DateOfBirth'].setValue(res.Item.RelationsInfo[i].BirthDate);\r\n }\r\n this._Associate.RelationsInfo = res.Item.RelationsInfo;\r\n\r\n\r\n if (res.Item.contactDetailsOne != null && res.Item.contactDetailsOne != undefined) {\r\n this._Associate.contactDetailsOne = res.Item.contactDetailsOne;\r\n this.relationshipForm.controls['contactDetailsOne']['controls']['Id'].setValue(this._Associate.contactDetailsOne.Id);\r\n this.relationshipForm.controls['contactDetailsOne']['controls']['EmployeeId'].setValue(this.currentempID);\r\n this.relationshipForm.controls['contactDetailsOne']['controls']['ContactType'].setValue(this._Associate.contactDetailsOne.ContactType);\r\n this.relationshipForm.controls['contactDetailsOne']['controls']['AddressLine1'].setValue(this._Associate.contactDetailsOne.AddressLine1);\r\n this.relationshipForm.controls['contactDetailsOne']['controls']['AddressLine2'].setValue(this._Associate.contactDetailsOne.AddressLine2);\r\n this.relationshipForm.controls['contactDetailsOne']['controls']['City'].setValue(this._Associate.contactDetailsOne.City);\r\n this.relationshipForm.controls['contactDetailsOne']['controls']['ContactName'].setValue(this._Associate.contactDetailsOne.ContactName);\r\n this.relationshipForm.controls['contactDetailsOne']['controls']['Country'].setValue(this._Associate.contactDetailsOne.Country);\r\n this.relationshipForm.controls['contactDetailsOne']['controls']['EmailAddress'].setValue(this._Associate.contactDetailsOne.EmailAddress);\r\n this.relationshipForm.controls['contactDetailsOne']['controls']['IsPrimary'].setValue(this._Associate.contactDetailsOne.IsPrimary);\r\n this.relationshipForm.controls['contactDetailsOne']['controls']['MobileNo'].setValue(this._Associate.contactDetailsOne.MobileNo);\r\n this.relationshipForm.controls['contactDetailsOne']['controls']['PostalCode'].setValue(this._Associate.contactDetailsOne.PostalCode);\r\n this.relationshipForm.controls['contactDetailsOne']['controls']['Relationship'].setValue(this._Associate.contactDetailsOne.Relationship);\r\n this.relationshipForm.controls['contactDetailsOne']['controls']['State'].setValue(this._Associate.contactDetailsOne.State);\r\n this.relationshipForm.controls['contactDetailsOne']['controls']['TelePhoneNo'].setValue(this._Associate.contactDetailsOne.TelePhoneNo);\r\n \r\n if (this._Associate.contactDetailsOne.Country == \"India\")\r\n this.firstcontactzipLength = 6;\r\n else this.firstcontactzipLength = 5;\r\n }\r\n if (res.Item.contactDetailsTwo != null && res.Item.contactDetailsTwo != undefined) {\r\n this._Associate.contactDetailsTwo = res.Item.contactDetailsTwo;\r\n this.relationshipForm.controls['contactDetailsTwo']['controls']['Id'].setValue(this._Associate.contactDetailsTwo.Id);\r\n this.relationshipForm.controls['contactDetailsTwo']['controls']['EmployeeId'].setValue(this.currentempID);\r\n this.relationshipForm.controls['contactDetailsTwo']['controls']['ContactType'].setValue(this._Associate.contactDetailsTwo.ContactType);\r\n this.relationshipForm.controls['contactDetailsTwo']['controls']['AddressLine1'].setValue(this._Associate.contactDetailsTwo.AddressLine1);\r\n this.relationshipForm.controls['contactDetailsTwo']['controls']['AddressLine2'].setValue(this._Associate.contactDetailsTwo.AddressLine2);\r\n this.relationshipForm.controls['contactDetailsTwo']['controls']['City'].setValue(this._Associate.contactDetailsTwo.City);\r\n this.relationshipForm.controls['contactDetailsTwo']['controls']['ContactName'].setValue(this._Associate.contactDetailsTwo.ContactName);\r\n this.relationshipForm.controls['contactDetailsTwo']['controls']['Country'].setValue(this._Associate.contactDetailsTwo.Country);\r\n this.relationshipForm.controls['contactDetailsTwo']['controls']['EmailAddress'].setValue(this._Associate.contactDetailsTwo.EmailAddress);\r\n this.relationshipForm.controls['contactDetailsTwo']['controls']['IsPrimary'].setValue(this._Associate.contactDetailsTwo.IsPrimary);\r\n this.relationshipForm.controls['contactDetailsTwo']['controls']['MobileNo'].setValue(this._Associate.contactDetailsTwo.MobileNo);\r\n this.relationshipForm.controls['contactDetailsTwo']['controls']['PostalCode'].setValue(this._Associate.contactDetailsTwo.PostalCode);\r\n this.relationshipForm.controls['contactDetailsTwo']['controls']['Relationship'].setValue(this._Associate.contactDetailsTwo.Relationship);\r\n this.relationshipForm.controls['contactDetailsTwo']['controls']['State'].setValue(this._Associate.contactDetailsTwo.State);\r\n this.relationshipForm.controls['contactDetailsTwo']['controls']['TelePhoneNo'].setValue(this._Associate.contactDetailsTwo.TelePhoneNo);\r\n\r\n if (this._Associate.contactDetailsTwo.Country == \"India\")\r\n this.secondcontactzipLength = 6;\r\n else this.secondcontactzipLength = 5;\r\n\r\n\r\n this.dataSource.data = this.relationshipForm['controls']['RelationsInfo']['controls'];\r\n this.relationshipForm.value;\r\n\r\n }\r\n if (this._Associate.RelationsInfo.length == 0)\r\n this._Associate.RelationsInfo.push({\r\n BirthDate: null,\r\n Name: \"\",\r\n Occupation: \"\",\r\n RelationShip: \"\"\r\n });\r\n if (this._Associate.contactDetailsOne == null)\r\n this._Associate.contactDetailsOne = new EmergencyContactDetail();\r\n if (this._Associate.contactDetailsTwo == null)\r\n this._Associate.contactDetailsTwo = new EmergencyContactDetail();\r\n },(error)=>{\r\n this.spinner.hide()\r\n });\r\n\r\n\r\n }\r\n\r\n\r\n\r\n updateSelection(isprimaryname: string) {\r\n if (isprimaryname == 'contactDetailsOne') {\r\n this.relationshipForm.controls['contactDetailsTwo']['controls']['IsPrimary'].setValue(false);\r\n this.relationshipForm.controls['contactDetailsOne']['controls']['IsPrimary'].setValue(true);\r\n }\r\n else if (isprimaryname == 'contactDetailsTwo') {\r\n this.relationshipForm.controls['contactDetailsTwo']['controls']['IsPrimary'].setValue(true);\r\n this.relationshipForm.controls['contactDetailsOne']['controls']['IsPrimary'].setValue(false);\r\n }\r\n };\r\n\r\n\r\n clearInput(evt: any, fieldName, i): void {\r\n if(fieldName=='DateOfBirth'){\r\n evt.stopPropagation();\r\n this.relationshipForm.controls['RelationsInfo']['controls'][i].get('DateOfBirth').reset();\r\n }\r\n }\r\n\r\n onNewRelation(index) {\r\n \r\n this.added = true;\r\n if(this.relationshipForm.controls.RelationsInfo.valid){\r\n const add = this.relationshipForm.get('RelationsInfo') as FormArray;\r\n add.push(this.CreateNewRelationshipForm());\r\n this.table.renderRows();\r\n return false;\r\n }\r\n else{\r\n return false;\r\n }\r\n\r\n }\r\n\r\n \r\n\r\n onDelete(i) {\r\n this.openDialog('Confirmation','Do you want to Delete ?',i);\r\n }\r\n\r\n\r\n onRelationChange(event: any, index: number) {\r\n let relationShip = event.value;\r\n let count = 0;\r\n if( this.relationshipForm['controls']['RelationsInfo']['controls'][index]['controls']['EmployeeId']['value']==null)\r\n { this.relationshipForm['controls']['RelationsInfo']['controls'][index]['controls']['Id'].setValue(index);\r\n this.relationshipForm['controls']['RelationsInfo']['controls'][index]['controls']['EmployeeId'].setValue(this.currentempID);\r\n }\r\n\r\n if (relationShip) {\r\n\r\n let i, j: number;\r\n i = 0, j = 1;\r\n // do {\r\n // let relationshipName = this.AssociateRelationsInfo[i].relationship;\r\n // if (relationshipName == \"Mother\" || relationshipName == \"Father\" || relationshipName == \"Spouse\" ||\r\n // relationshipName == \"Mother-in-Law\" || relationshipName == \"Father-in-Law\") {\r\n // j = i + 1;\r\n // while (j < this.AssociateRelationsInfo.length + 1) {\r\n // if (this.AssociateRelationsInfo[j].relationship &&\r\n // (relationshipName == this.AssociateRelationsInfo[j].relationship)) {\r\n // event.target.value = \"\";\r\n // this.messageService.add({ severity: 'warn', summary: 'Warn Message', detail: 'You cant select same relationship twice' });\r\n // return;\r\n // }\r\n // j++;\r\n // }\r\n // }\r\n // else i++;\r\n // } while (i < this.AssociateRelationsInfo.length)\r\n if (relationShip == \"Mother\" || relationShip == \"Father\" || relationShip == \"Spouse\" ||\r\n relationShip == \"Mother-in-Law\" || relationShip == \"Father-in-Law\") {\r\n for (i = 0; i < this.AssociateRelationsInfo.length; i++) {\r\n if (i != index) {\r\n let relationshipName = this.AssociateRelationsInfo[i].RelationShip;\r\n if (relationShip == relationshipName) {\r\n event.target.value = \"\";\r\n this.AssociateRelationsInfo[index].RelationShip = \"\";\r\n // this.messageService.add({ severity: 'warn', summary: 'Warn Message', detail: 'You cant select same relationship twice' });\r\n this._snackBar.open('You cant select same relationship twice', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n onSaveorUpdate() {\r\n if(this.isClearClicked){\r\n this.relationshipForm.controls['EmployeeId'].setValue(this.currentempID);\r\n this.relationshipForm.controls['contactDetailsOne']['controls']['Id'].setValue(0);\r\n this.relationshipForm.controls['contactDetailsOne']['controls']['EmployeeId'].setValue(this.currentempID);\r\n this.relationshipForm.controls['contactDetailsTwo']['controls']['Id'].setValue(0);\r\n this.relationshipForm.controls['contactDetailsTwo']['controls']['EmployeeId'].setValue(this.currentempID);\r\n }\r\n\r\n this.formSubmitted=true;\r\n this.relationshipFormData = this.relationshipForm.value;\r\n this.type;\r\n for (var i = 0; i < this.relationshipFormData.RelationsInfo.length; i++){\r\n // this.relationshipFormData.RelationsInfo[i].DateOfBirth = this.relationshipFormData.RelationsInfo[i].DateOfBirth.toString().substring(0, 10);\r\n var temp=this.relationshipFormData.RelationsInfo[i].DateOfBirth\r\n var set=this.datePipe.transform(temp,\"yyyy-MM-dd\")\r\n this.relationshipFormData.RelationsInfo[i].DateOfBirth=set;\r\n this.relationshipFormData.RelationsInfo[i].BirthDate=this.relationshipFormData.RelationsInfo[i].DateOfBirth\r\n }\r\n this.relationshipFormData.contactDetailsOne.EmployeeId = this.currentempID;\r\n this.relationshipFormData.contactDetailsTwo.EmployeeId = this.currentempID;\r\n if(!this.relationshipForm['controls']['contactDetailsOne']['controls']['IsPrimary'].value && !this.relationshipForm['controls']['contactDetailsTwo']['controls']['IsPrimary'].value){\r\n this._snackBar.open('Please select atleast one primary', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return false;\r\n }\r\n\r\n if (this.relationshipForm['controls']['contactDetailsOne']['controls']['IsPrimary'].value && !this.relationshipForm['controls']['contactDetailsTwo']['controls']['IsPrimary'].value) {\r\n this.removemyValidators('contactDetailsTwo');\r\n this.DynamicValidators('contactDetailsOne');\r\n }\r\n if (!this.relationshipForm['controls']['contactDetailsOne']['controls']['IsPrimary'].value && this.relationshipForm['controls']['contactDetailsTwo']['controls']['IsPrimary'].value) {\r\n this.removemyValidators('contactDetailsOne');\r\n this.DynamicValidators('contactDetailsTwo')\r\n }\r\n // this.checkValidations();\r\n if (this.relationshipForm.valid) {\r\n this._service.SaveFamilyDetails(this.relationshipFormData).subscribe((data) => {\r\n if(this.type == \"new\"){\r\n this.savedmsg ='Family details saved successfully'\r\n }\r\n else{\r\n this.savedmsg ='Family details updated successfully'\r\n }\r\n this.submitAttempt = false;\r\n this.isClearClicked=false;\r\n this._snackBar.open(this.savedmsg, 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n // this.onClear();\r\n this.getFamilydetails(this.currentempID);\r\n }, (error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n else {\r\n this._snackBar.open(\"Please correct the fields highlighted in red colour\",\r\n \"!\", {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n }\r\n OpenConfirmationDialog(editMode: number) { // method to open dialog\r\n // this.confirmationService.confirm({\r\n // message: 'Do you want to Delete ?',\r\n // accept: () => {\r\n // this.Delete();\r\n // },\r\n // reject: () => {\r\n\r\n // }\r\n // });\r\n }\r\n\r\n\r\n\r\n onCancel() {\r\n this.familyDialog.nativeElement.close();\r\n }\r\n\r\n onlyNumbers(event: any) {\r\n this._commonService.onlyNumbers(event);\r\n }\r\n\r\n onlychar(event: any) {\r\n let k: any;\r\n k = event.charCode;\r\n // k = event.keyCode; (Both can be used)\r\n return ((k > 64 && k < 91) || (k > 96 && k < 123) || k == 8 || k == 32);\r\n }\r\n forAddress(event: any) {\r\n let k: any;\r\n k = event.charCode;\r\n // k = event.keyCode; (Both can be used)\r\n return ((k > 64 && k < 91) || (k > 96 && k < 123) || k == 8 || k == 32 || k == 92 || k == 35 || (k >= 44 && k <= 57));\r\n }\r\n\r\n onlyForNumbers(event: any) {\r\n var keys = { 'escape': 27, 'backspace': 8, 'tab': 9, 'enter': 13, '0': 48, '1': 49, '2': 50, '3': 51, '4': 52, '5': 53, '6': 54, '7': 55, '8': 56, '9': 57 };\r\n for (var index in keys) {\r\n if (!keys.hasOwnProperty(index))\r\n continue;\r\n if (event.charCode == keys[index] || event.keyCode == keys[index]) {\r\n return; //default event\r\n }\r\n }\r\n event.preventDefault();\r\n };\r\n\r\n phoneNumbers(event: any) {\r\n var keys = { 'escape': 27, 'backspace': 8, 'tab': 9, 'enter': 13, '-': 45, '0': 48, '1': 49, '2': 50, '3': 51, '4': 52, '5': 53, '6': 54, '7': 55, '8': 56, '9': 57 };\r\n for (var index in keys) {\r\n if (!keys.hasOwnProperty(index))\r\n continue;\r\n if (event.charCode == keys[index] || event.keyCode == keys[index]) {\r\n return; //default event\r\n }\r\n }\r\n event.preventDefault();\r\n };\r\n\r\n setfirstcontactzipLength(event: any) {\r\n const removeFrom = this.relationshipForm.get('contactDetailsOne') as FormArray;\r\n if (event.value == \"India\") {\r\n this.firstcontactzipLength = 6\r\n removeFrom['controls']['PostalCode'].setValidators([Validators.required,Validators.minLength(6), Validators.maxLength(6),Validators.pattern('^[0-9]*$')]);\r\n removeFrom['controls']['PostalCode'].updateValueAndValidity();\r\n } \r\n else {\r\n this.firstcontactzipLength=5\r\n removeFrom['controls']['PostalCode'].setValidators([Validators.required,Validators.minLength(5), Validators.maxLength(5),Validators.pattern('^[0-9]*$')]);\r\n removeFrom['controls']['PostalCode'].updateValueAndValidity();\r\n }\r\n }\r\n\r\n setsecondcontactzipLength(event: any) {\r\n const removeFrom = this.relationshipForm.get('contactDetailsTwo') as FormArray;\r\n if (event.value == \"India\") {\r\n this.secondcontactzipLength = 6\r\n removeFrom['controls']['PostalCode'].setValidators([Validators.required,Validators.minLength(6), Validators.maxLength(6),Validators.pattern('^[0-9]*$')]);\r\n removeFrom['controls']['PostalCode'].updateValueAndValidity();\r\n } \r\n else {\r\n this.secondcontactzipLength=5\r\n removeFrom['controls']['PostalCode'].setValidators([Validators.required,Validators.minLength(5), Validators.maxLength(5),Validators.pattern('^[0-9]*$')]);\r\n removeFrom['controls']['PostalCode'].updateValueAndValidity();\r\n }\r\n }\r\n\r\n \r\n\r\n openDialog(Heading,Message,index): void {\r\n const dialogRef = this.dialog.open(CommonDialogComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n width: '300px',\r\n data: {heading: Heading, message: Message}\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.dialogResponse = result;\r\n if(this.dialogResponse==true){\r\n const remove = this.relationshipForm.get('RelationsInfo') as FormArray;\r\n remove.removeAt(index);\r\n this.added = false;\r\n this.table.renderRows();\r\n }\r\n });\r\n }\r\n\r\n\r\n removemyValidators(formName){\r\n const removeFrom = this.relationshipForm.get(formName) as FormArray;\r\n removeFrom['controls']['AddressLine1'].setValidators([Validators.maxLength(200)]);\r\n removeFrom['controls']['AddressLine1'].updateValueAndValidity();\r\n removeFrom['controls']['City'].setValidators([]);\r\n removeFrom['controls']['City'].updateValueAndValidity();\r\n removeFrom['controls']['ContactName'].setValidators([]);\r\n removeFrom['controls']['ContactName'].updateValueAndValidity();\r\n removeFrom['controls']['Country'].setValidators([]);\r\n removeFrom['controls']['Country'].updateValueAndValidity();\r\n removeFrom['controls']['EmployeeId'].setValidators([]);\r\n removeFrom['controls']['EmployeeId'].updateValueAndValidity();\r\n removeFrom['controls']['EmployeeId'].setValidators([]);\r\n removeFrom['controls']['EmployeeId'].updateValueAndValidity();\r\n removeFrom['controls']['MobileNo'].setValidators([Validators.minLength(10), Validators.maxLength(10)]);\r\n removeFrom['controls']['MobileNo'].updateValueAndValidity();\r\n removeFrom['controls']['PostalCode'].setValidators([Validators.pattern('^[0-9]*$')]);\r\n removeFrom['controls']['PostalCode'].updateValueAndValidity();\r\n removeFrom['controls']['Relationship'].setValidators([]);\r\n removeFrom['controls']['Relationship'].updateValueAndValidity();\r\n removeFrom['controls']['State'].setValidators([]);\r\n removeFrom['controls']['State'].updateValueAndValidity();\r\n }\r\n DynamicValidators(formName){\r\n const addvalidation = this.relationshipForm.get(formName) as FormArray;\r\n addvalidation['controls']['AddressLine1'].setValidators([Validators.required,Validators.maxLength(200)]);\r\n addvalidation['controls']['AddressLine1'].updateValueAndValidity();\r\n addvalidation['controls']['City'].setValidators([Validators.required]);\r\n addvalidation['controls']['City'].updateValueAndValidity();\r\n addvalidation['controls']['ContactName'].setValidators([Validators.required]);\r\n addvalidation['controls']['ContactName'].updateValueAndValidity();\r\n addvalidation['controls']['Country'].setValidators([Validators.required]);\r\n addvalidation['controls']['Country'].updateValueAndValidity();\r\n addvalidation['controls']['EmployeeId'].setValue(this.currentempID);\r\n addvalidation['controls']['EmployeeId'].setValidators([Validators.required]);\r\n addvalidation['controls']['EmployeeId'].updateValueAndValidity();\r\n addvalidation['controls']['MobileNo'].setValidators([Validators.required,Validators.minLength(10), Validators.maxLength(10)]);\r\n addvalidation['controls']['MobileNo'].updateValueAndValidity();\r\n addvalidation['controls']['PostalCode'].setValidators([Validators.required,Validators.pattern('^[0-9]*$')]);\r\n addvalidation['controls']['PostalCode'].updateValueAndValidity();\r\n addvalidation['controls']['Relationship'].setValidators([Validators.required]);\r\n addvalidation['controls']['Relationship'].updateValueAndValidity();\r\n addvalidation['controls']['State'].setValidators([Validators.required]);\r\n addvalidation['controls']['State'].updateValueAndValidity();\r\n }\r\n}\r\n\r\n","
\r\n
\r\n
\r\n

Family Details

\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 \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
No data
S.No \r\n {{i+1}}\r\n RelationShip\r\n *\r\n \r\n \r\n \r\n \r\n \r\n {{r.ValueName}}\r\n \r\n \r\n \r\n \r\n Name\r\n *\r\n \r\n \r\n \r\n \r\n \r\n \r\n DateOfBirth\r\n *\r\n \r\n \r\n \r\n \r\n \r\n close\r\n \r\n \r\n \r\n \r\n \r\n Occupation\r\n *\r\n \r\n \r\n \r\n \r\n \r\n Action \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n

Emergency Contact Details

\r\n
\r\n\r\n
\r\n\r\n
\r\n Is Primary Contact\r\n
\r\n\r\n
\r\n
\r\n \r\n First Contact Name\r\n *\r\n \r\n \r\n Firstname Required \r\n \r\n
\r\n
\r\n \r\n Relation\r\n *\r\n \r\n \r\n {{r.ValueName}}\r\n \r\n \r\n Relation Required\r\n \r\n
\r\n
\r\n \r\n Address Line1\r\n *\r\n \r\n \r\n Address Line 1 Required\r\n \r\n
\r\n
\r\n \r\n Address Line2\r\n \r\n \r\n
\r\n
\r\n \r\n City\r\n *\r\n \r\n \r\n City Required\r\n \r\n
\r\n
\r\n \r\n \r\n State\r\n *\r\n \r\n \r\n State Required\r\n \r\n
\r\n
\r\n \r\n \r\n Country\r\n *\r\n \r\n \r\n {{c.ValueName}}\r\n \r\n \r\n Country Required\r\n \r\n
\r\n
\r\n \r\n \r\n Zip\r\n *\r\n \r\n \r\n Zip Required/Invalid\r\n \r\n
\r\n
\r\n \r\n \r\n Telephone Number\r\n \r\n \r\n Invalid Telephone Number \r\n \r\n
\r\n
\r\n \r\n \r\n Mobile Number\r\n *\r\n \r\n \r\n Mobile Number required/Invalid\r\n \r\n
\r\n
\r\n \r\n \r\n Email ID\r\n \r\n \r\n Please enter valid Email Id\r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n Is Primary Contact\r\n
\r\n\r\n
\r\n
\r\n \r\n First Contact Name\r\n *\r\n \r\n \r\n Firstname Required \r\n \r\n
\r\n
\r\n \r\n Relation\r\n *\r\n \r\n \r\n {{r.ValueName}}\r\n \r\n \r\n Relation Required\r\n \r\n
\r\n
\r\n \r\n Address Line1\r\n *\r\n \r\n \r\n Address Line 1 Required\r\n \r\n
\r\n
\r\n \r\n Address Line2\r\n \r\n \r\n
\r\n
\r\n \r\n City\r\n *\r\n \r\n \r\n City Required\r\n \r\n
\r\n
\r\n \r\n \r\n State\r\n *\r\n \r\n \r\n State Required\r\n \r\n
\r\n
\r\n \r\n \r\n Country\r\n *\r\n \r\n \r\n {{c.ValueName}}\r\n \r\n \r\n Country Required\r\n \r\n
\r\n
\r\n \r\n \r\n Zip\r\n *\r\n \r\n \r\n Zip Required/Invalid\r\n \r\n
\r\n
\r\n \r\n \r\n Telephone Number\r\n \r\n \r\n Invalid Telephone Number \r\n \r\n
\r\n
\r\n \r\n \r\n Mobile Number\r\n *\r\n \r\n \r\n Mobile Number required/Invalid\r\n \r\n
\r\n
\r\n \r\n \r\n Email ID\r\n \r\n \r\n Please enter valid Email Id\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

Loading ...

\r\n
","import { Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { AssociateAttendanceReportService } from '../../../reports/services/associate-attendance-report.service';\r\nimport {\r\n AttendanceReport,\r\n AttendanceReportFilter,\r\n AttendanceDetailReport, \r\n SelectItem,\r\n AttendanceDetailReportData\r\n} from '../../../reports/models/associate-attendance-report.model';\r\n//import { GenericType, GenericModel } from '../../../../modules/master-layout/models/dropdowntype.model';\r\nimport { Validators, FormGroup, FormBuilder, FormGroupDirective } from '@angular/forms';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport {\r\n HttpClient,\r\n HttpHeaders,\r\n HttpErrorResponse,\r\n} from '@angular/common/http';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { take } from 'rxjs/operators';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport {\r\n MatSnackBar,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition,\r\n} from '@angular/material/snack-bar';\r\n\r\nimport { Chart } from 'chart.js';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { AllColorCodes } from '../../../../core/color-codes';\r\nimport { NavService } from '../../../master-layout/services/nav.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { FileExporterService } from 'src/app/core/services/file-exporter.service';\r\nimport { ReportsData } from '../../../reports/models/reportsdata.model';\r\nimport * as moment from 'moment';\r\nimport { AttendanceReportDialogComponent } from 'src/app/modules/reports/components/attendance-report-dialog/attendance-report-dialog.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ProjectDetails } from '../../../onboarding/models/projects.model';\r\nimport { MasterDataService } from '../../../master-layout/services/masterdata.service';\r\nimport { Observable } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { MatOption } from '@angular/material/core';\r\nimport { DropDownType, GenericType, GenericModel } from '../../../master-layout/models/dropdowntype.model';\r\nimport { BiometricAttendanceDialogComponent } from '../biometric-attendance-dialog/biometric-attendance-dialog.component';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-manager-biometric-attendance-report',\r\n templateUrl: './manager-biometric-attendance-report.component.html',\r\n styleUrls: ['./manager-biometric-attendance-report.component.scss']\r\n})\r\nexport class ManagerBiometricAttendanceReportComponent implements OnInit {\r\n\r\n themeAppearence = themeconfig.formfieldappearances;\r\n empId : number; \r\n filter:AttendanceReportFilter;\r\n detailFilter:AttendanceReportFilter;\r\n lstEmployees: AttendanceReport[] = []; \r\n lstAttendance: AttendanceDetailReport[] = []; \r\n componentName: string; myForm: FormGroup;\r\n totalRecordsCount: number;\r\n errorMessage: any[];\r\n searchFormSubmitted: boolean = false; \r\n options: any;\r\n searchData: AttendanceReportFilter; \r\n errorSummary: string = '';\r\n step=0;\r\n loading: boolean;\r\n public reportStatus: boolean = false;\r\n isLoading: boolean = false;\r\n firstDate: Date;\r\n lastDate: Date;\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n roleName :string;\r\n associateName : string;\r\n private resources = servicePath.API.PagingConfigValue;\r\n displayedColumns: string[] = ['EmployeeCode','EmployeeName','ProjectName','ReportingManagerName','TotalDaysWorked','TotalWfoDays','TotalWfhDays','TotalLeavesTaken',\"View\"];\r\n projectsList: any[] = [];\r\n filteredProject : Observable;\r\n selectedProjectId:any;\r\n filteredAssociates: Observable;\r\n associatesList: SelectItem[] = [];\r\n selectedEmployeeName: any;\r\n dialogData : AttendanceDetailReportData;\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'right';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n employeedataSource: MatTableDataSource;\r\n minDate : Date;\r\n maxDate : Date;\r\n totalWorkingDays : number;\r\n totalHolidays: number;\r\n IsLeadership = false;\r\n projectId = 0;\r\n isDeliveryDepartment = true;\r\n FromDate:Date;\r\n ToDate:Date;\r\n BiometricAttendanceStartDate:Date;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n constructor(private associateAttendanceReportService: AssociateAttendanceReportService,\r\n private fileExporterService: FileExporterService,\r\n public navService: NavService,\r\n private spinner: NgxSpinnerService,\r\n private _snackBar: MatSnackBar,\r\n private fb: FormBuilder,\r\n public dialog: MatDialog,\r\n private masterDataService: MasterDataService,\r\n private router : Router,\r\n private actRoute: ActivatedRoute\r\n ) { \r\nthis.searchData = new AttendanceReportFilter();\r\nthis.PageSize = this.resources.PageSize;\r\nthis.PageDropDown = this.resources.PageDropDown;\r\nthis.navService.currentSearchBoxData.subscribe(responseData => {\r\nthis.applyFilter(responseData);\r\n});\r\n this.BiometricAttendanceStartDate=environment.BiometricAttendanceStartDate;\r\n this.minDate = this.BiometricAttendanceStartDate;\r\n this.maxDate = new Date();\r\n\r\n if (sessionStorage.getItem(\"AssociatePortal_UserInformation\") != null) {\r\n this.roleName = JSON.parse(\r\n sessionStorage.getItem(\"AssociatePortal_UserInformation\")\r\n ).roleName;\r\n \r\n this.empId = JSON.parse(\r\n sessionStorage.getItem(\"AssociatePortal_UserInformation\")\r\n ).employeeId; \r\n}\r\n\r\n this.associateAttendanceReportService.IsDeliveryDepartmentforBiometric(this.empId).subscribe(\r\n (response: boolean) => { \r\n this.isDeliveryDepartment = response; \r\n if(this.roleName === \"HRA\" || this.roleName === \"HRM\")\r\n this.displayedColumns = ['EmployeeCode','EmployeeName','DepartmentName','ReportingManagerName','TotalDaysWorked','TotalWfoDays','TotalWfhDays','TotalLeavesTaken',\"View\"];\r\n else if(this.isDeliveryDepartment === true)\r\nthis.displayedColumns = ['EmployeeCode','EmployeeName','ProjectName','ReportingManagerName','TotalDaysWorked','TotalWfoDays','TotalWfhDays','TotalLeavesTaken',\"View\"];\r\nelse\r\nthis.displayedColumns = ['EmployeeCode','EmployeeName','ReportingManagerName','TotalDaysWorked','TotalWfoDays','TotalWfhDays','TotalLeavesTaken',\"View\"]; \r\nthis.employeedataSource = new MatTableDataSource(this.lstEmployees); \r\n this.paginator.pageIndex = 0;\r\n this.employeedataSource.paginator = this.paginator; \r\n this.employeedataSource.sort = this.sort \r\n },\r\n (error: any) => { }\r\n ); \r\n }\r\n\r\n ngOnInit(): void {\r\n this.actRoute.queryParams.subscribe(params => { this.FromDate = params.fromDate;this.ToDate=params.toDate });\r\n \r\n if (sessionStorage.getItem(\"AssociatePortal_UserInformation\") != null) {\r\n this.roleName = JSON.parse(\r\n sessionStorage.getItem(\"AssociatePortal_UserInformation\")\r\n ).roleName;\r\n \r\n this.empId = JSON.parse(\r\n sessionStorage.getItem(\"AssociatePortal_UserInformation\")\r\n ).employeeId; \r\n}\r\nthis.associateAttendanceReportService.IsDeliveryDepartmentforBiometric(this.empId).subscribe(\r\n (response: boolean) => { \r\n this.isDeliveryDepartment = response; \r\n if(this.roleName === \"HRA\" || this.roleName === \"HRM\")\r\n this.displayedColumns = ['EmployeeCode','EmployeeName','DepartmentName','ReportingManagerName','TotalDaysWorked','TotalWfoDays','TotalWfhDays','TotalLeavesTaken',\"View\"];\r\n else if(this.isDeliveryDepartment === true)\r\nthis.displayedColumns = ['EmployeeCode','EmployeeName','ProjectName','ReportingManagerName','TotalDaysWorked','TotalWfoDays','TotalWfhDays','TotalLeavesTaken',\"View\"];\r\nelse\r\nthis.displayedColumns = ['EmployeeCode','EmployeeName','ReportingManagerName','TotalDaysWorked','TotalWfoDays','TotalWfhDays','TotalLeavesTaken',\"View\"];\r\nthis.employeedataSource = new MatTableDataSource(this.lstEmployees); \r\nthis.paginator.pageIndex = 0;\r\nthis.employeedataSource.paginator = this.paginator; \r\nthis.employeedataSource.sort = this.sort \r\n },\r\n (error: any) => { }\r\n); \r\n \r\n\r\n\r\n\r\n this.getProjects(this.empId, this.roleName);\r\n this.getAssociates(this.empId, this.roleName, this.projectId, this.IsLeadership);\r\n let fromdate=new Date();\r\n let todate=new Date(); \r\n if(this.FromDate!=null ||this.ToDate!=null)\r\n {\r\n fromdate=new Date(this.FromDate);\r\n todate=new Date(this.ToDate);\r\n }\r\n else\r\n {\r\n // fromdate.setDate(fromdate.getDate()-14);\r\n let date=new Date();\r\n fromdate=new Date(date.getFullYear(),date.getMonth(),1);\r\n if(fromdate {\r\n this.spinner.hide();\r\n this.lstEmployees = response;\r\n response.forEach((res) => {\r\n this.totalWorkingDays = res.TotalWorkingDays;\r\n this.totalHolidays = res.TotalHolidays; \r\n }); \r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees); \r\n this.paginator.pageIndex = 0;\r\n this.employeedataSource.paginator = this.paginator; \r\n this.employeedataSource.sort = this.sort \r\n },\r\n (error: any) => { this.spinner.hide(); }\r\n );\r\n }\r\n\r\n getAttendanceDetail(filter: AttendanceReportFilter) {\r\n this.spinner.show();\r\n this.lstAttendance = [];\r\n this.associateAttendanceReportService.GetBiometricAttendanceDetailReport(filter).subscribe(\r\n (response: AttendanceDetailReport[]) => {\r\n this.spinner.hide();\r\n this.lstAttendance = response; \r\n },\r\n (error: any) => { this.spinner.hide(); }\r\n );\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n if (filterValue) {\r\n this.employeedataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees);\r\n this.paginator.pageIndex = 0;\r\n this.employeedataSource.paginator = this.paginator;\r\n this.employeedataSource.sort = this.sort; \r\n }\r\n } else {\r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees);\r\n this.paginator.pageIndex = 0;\r\n this.employeedataSource.paginator = this.paginator;\r\n this.employeedataSource.sort = this.sort; \r\n }\r\n }\r\n\r\n clearInput(evt: any, fieldName): void {\r\n if(fieldName=='toDate'){\r\n evt.stopPropagation();\r\n this.myForm.get('toDate').reset();\r\n this.clearData();\r\n }\r\n if(fieldName=='fromDate'){\r\n evt.stopPropagation();\r\n this.myForm.get('fromDate').reset();\r\n this.clearData();\r\n }\r\n }\r\n\r\n clearFilter() {\r\n this.myForm.reset();\r\n this.myForm.clearValidators(); \r\n this.searchFormSubmitted = false;\r\n this.errorSummary = ''; \r\n this.searchData = new AttendanceReportFilter();\r\n this.lstEmployees = [];\r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees); \r\n this.employeedataSource.sort = this.sort; \r\n this.paginator.pageIndex = 0;\r\n this.employeedataSource.paginator = this.paginator;\r\n this.totalRecordsCount = this.lstEmployees.length; \r\n this.totalWorkingDays = 0;\r\n this.totalHolidays = 0; \r\n this.projectId = 0;\r\n this.IsLeadership = false;\r\n this.getProjects(this.empId, this.roleName);\r\n this.getAssociates(this.empId, this.roleName, this.projectId, this.IsLeadership);\r\n }\r\n\r\n clearData() { \r\n this.lstEmployees = [];\r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees); \r\n this.employeedataSource.sort = this.sort; \r\n this.paginator.pageIndex = 0;\r\n this.employeedataSource.paginator = this.paginator;\r\n this.totalRecordsCount = this.lstEmployees.length; \r\n this.totalWorkingDays = 0;\r\n this.totalHolidays = 0; \r\n }\r\n \r\n exportAsXLSX() { \r\n this.spinner.show();\r\n\r\n if(this.roleName === \"HRA\" || this.roleName === \"HRM\")\r\n {\r\n const columnsForExcel = this.employeedataSource.data.map(x => ({\r\n 'ID': x.EmployeeCode,\r\n 'Name': x.EmployeeName, \r\n 'Department': x.DepartmentName, \r\n 'Reporting Manager': x.ReportingManagerName, \r\n 'Total Days': x.TotalDaysWorked,\r\n 'Total WFH Days' : x.TotalWFHDays,\r\n 'Total WFO Days' : x.TotalWFODays,\r\n 'Total Leaves' : x.TotalLeaves\r\n })); \r\n this.fileExporterService.exportToExcel(columnsForExcel, \"Associate Attendance Report\"); \r\n }\r\n else if(this.isDeliveryDepartment === true)\r\n {\r\n const columnsForExcel = this.employeedataSource.data.map(x => ({\r\n 'ID': x.EmployeeCode,\r\n 'Name': x.EmployeeName, \r\n 'Project': x.ProjectName, \r\n 'Reporting Manager': x.ReportingManagerName, \r\n 'Total Days': x.TotalDaysWorked,\r\n 'Total WFH Days' : x.TotalWFHDays,\r\n 'Total WFO Days' : x.TotalWFODays,\r\n 'Total Leaves' : x.TotalLeaves \r\n })); \r\n this.fileExporterService.exportToExcel(columnsForExcel, \"Associate Attendance Report\"); \r\n }\r\n else\r\n {\r\n const columnsForExcel = this.employeedataSource.data.map(x => ({\r\n 'ID': x.EmployeeCode,\r\n 'Name': x.EmployeeName, \r\n 'Reporting Manager': x.ReportingManagerName, \r\n 'Total Days': x.TotalDaysWorked,\r\n 'Total WFH Days' : x.TotalWFHDays,\r\n 'Total WFO Days' : x.TotalWFODays \r\n })); \r\n this.fileExporterService.exportToExcel(columnsForExcel, \"Associate Attendance Report\"); \r\n }\r\n this.spinner.hide();\r\n }\r\n\r\n viewAttendanceDetails(employee: AttendanceReport)\r\n {\r\n this.detailFilter = new AttendanceReportFilter();\r\n this.detailFilter.EmployeeName =employee.EmployeeName;\r\n this.detailFilter.EmployeeCode = employee.EmployeeCode;\r\n this.detailFilter.FromDate = this.searchData.FromDate;\r\n this.detailFilter.ToDate = this.searchData.ToDate;\r\n this.detailFilter.ProjectId = 0;\r\n \r\n this.spinner.show();\r\n this.lstAttendance = [];\r\n\r\n this.router.navigate([],\r\n {\r\n queryParamsHandling: 'merge',\r\n replaceUrl: true\r\n }).then(\r\n () => {\r\n this.router.navigate(['associates/viewAttendance'], { queryParams: {'employeeName':employee.EmployeeName} });\r\n }\r\n );\r\n this.associateAttendanceReportService.GetBiometricAttendanceDetailReport(this.detailFilter).subscribe(\r\n (response: AttendanceDetailReport[]) => {\r\n this.spinner.hide();\r\n this.lstAttendance = response; \r\n this.dialogData = new AttendanceDetailReportData();\r\n this.dialogData.eventData = this.lstAttendance;\r\n this.dialogData.filter = this.detailFilter; \r\n this.dialogData.employeeName = employee.EmployeeName;\r\n this.dialogData.daysWorked = employee.TotalDaysWorked;\r\n this.associateAttendanceReportService.attendanceData.next(this.dialogData) \r\n // const dialogRef = this.dialog.open(BiometricAttendanceDialogComponent, {\r\n // height: '700px',\r\n // width: '1200px',\r\n // disableClose: true,\r\n // data: this.dialogData\r\n // }); \r\n },\r\n (error: any) => { this.spinner.hide(); }\r\n );\r\n \r\n }\r\n\r\n getProjects(employeeId:number, roleName:string): void {\r\n this.associateAttendanceReportService.GetProjectsForBiometricAttendance(employeeId,roleName).subscribe((res: GenericType[]) => {\r\n let projList: any[] = [];\r\n this.projectsList = [];\r\n // projList.push({ label: '', value: null });\r\n res.forEach((element: GenericType) => {\r\n projList.push({ label: element.Name, value: element.Id });\r\n });\r\n this.projectsList = projList.filter(\r\n (project, index, arr) => arr.findIndex(t => t.value === project.value) === index);\r\n\r\n this.filteredProject = this.myForm.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterProject(value))\r\n ); \r\n },\r\n (error: any) => {\r\n this.errorMessage = [];\r\n this._snackBar.open('Failed to Get Project List!', 'x', {\r\n duration: 5000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n }\r\n );\r\n }\r\n\r\n private _filterProject(value) { \r\n let filterValue;\r\n if (value && value.ProjectId) {\r\n filterValue = value.ProjectId.toLowerCase();\r\n return this.projectsList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.projectsList;\r\n }\r\n }\r\n\r\n clearField(fieldName) { \r\n\r\n if (fieldName == 'EmployeeName') {\r\n this.myForm.controls.EmployeeName.setValue(null); \r\n this.searchData.EmployeeName = null;\r\n this.searchData.EmployeeId = 0;\r\n this.clearData();\r\n }\r\n \r\n if (fieldName == 'ProjectId') {\r\n this.myForm.controls.ProjectId.setValue(null);\r\n this.searchData.ProjectId = null; \r\n this.projectId = 0;\r\n this.getAssociates(this.empId, this.roleName, this.projectId, this.IsLeadership);\r\n this.clearData(); \r\n }\r\n } \r\n\r\n clearAssociateField()\r\n {\r\n this.myForm.controls.ProjectId.setValue(null);\r\n this.searchData.ProjectId = null; \r\n this.projectId = 0; \r\n this.clearData(); \r\n }\r\n\r\n selectedChangeIds(frmCntrl, item) {\r\n if (frmCntrl == 'EmployeeName') {\r\n this.selectedEmployeeName = item.label;\r\n this.searchData.EmployeeName = this.selectedEmployeeName;\r\n this.searchData.EmployeeId = item.value;\r\n this.clearData(); \r\n }\r\n \r\n else if (frmCntrl == 'ProjectId') {\r\n this.selectedProjectId = item.value;\r\n this.searchData.ProjectId = this.selectedProjectId;\r\n this.projectId = this.selectedProjectId; \r\n this.getAssociates(this.empId, this.roleName, this.projectId, this.IsLeadership);\r\n this.clearData(); \r\n }\r\n }\r\n\r\n private filterAssociates(value) {\r\n let filterValue;\r\n if (value && value.EmployeeName) {\r\n filterValue = value.EmployeeName.toLowerCase();\r\n return this.associatesList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.associatesList;\r\n }\r\n } \r\n\r\n getAssociates(employeeId:number, roleName:string, projectId:number, isLeadership:boolean): void {\r\n this.associatesList = [];\r\n this.associateAttendanceReportService.GetAssociatesForBiometricAttendance(employeeId,roleName, projectId, isLeadership).subscribe((associateResponse: GenericType[]) => {\r\n associateResponse.forEach((associateResponse: GenericType) => { \r\n this.associatesList.push({ label: associateResponse.Name, value: associateResponse.Id });\r\n });\r\n\r\n this.filteredAssociates = this.myForm.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this.filterAssociates(value))\r\n );\r\n }),\r\n (error: any) => {\r\n if (error._body != undefined && error._body != \"\")\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 1000, panelClass: ['Failed to get Associate List'], horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n };\r\n\r\n }\r\n\r\n CheckIsLeadership(event){\r\n this.IsLeadership = event.checked;\r\n this.clearAssociateField();\r\n this.clearField('EmployeeName');\r\n this.projectId = 0;\r\n this.getAssociates(this.empId, this.roleName, this.projectId, this.IsLeadership);\r\n this.searchData.isLeadership = this.IsLeadership;\r\n } \r\n\r\n}\r\n","\r\n \r\n \r\n \r\n filter_list Filter Attendance Report\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n From Date *\r\n \r\n \r\n \r\n close\r\n \r\n \r\n \r\n From Date is required\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n To Date *\r\n \r\n \r\n close\r\n \r\n \r\n \r\n To Date is required\r\n \r\n
\r\n
\r\n
\r\n \r\n Project\r\n \r\n \r\n \r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n Associate\r\n \r\n \r\n \r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n Customized Attendance Data\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 people List of associates \r\n {{lstEmployees.length}}\r\n
\r\n
\r\n Total Working Days \r\n {{totalWorkingDays}}\r\n
\r\n
\r\n Holidays \r\n {{totalHolidays}}\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 \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 \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
ID {{element.EmployeeCode}} Name {{element.EmployeeName}} Department {{element.DepartmentName}} Project {{element.ProjectName}} Reporting Manager {{element.ReportingManagerName}} Total Days Worked {{element.TotalDaysWorked}} Total WFO Days  info {{element.TotalWFODays}}\r\n Total WFH Days  info {{element.TotalWFHDays}}\r\n Total Leaves Taken info {{element.TotalLeaves}}\r\n Detail View visibility
No data
\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

Loading ...

\r\n
\r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-onboarding',\r\n templateUrl: './onboarding.component.html',\r\n styleUrls: ['./onboarding.component.scss']\r\n})\r\nexport class OnboardingComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","\r\n
\r\n \r\n
\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewChild,\r\n EventEmitter,\r\n Output,\r\n Input,\r\n} from \"@angular/core\";\r\nimport { MatSnackBar } from \"@angular/material/snack-bar\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport {\r\n FormBuilder,\r\n FormGroup,\r\n FormControl,\r\n Validators,\r\n FormArray,\r\n} from \"@angular/forms\";\r\nimport * as moment from \"moment\";\r\nimport { Observable } from \"rxjs\";\r\nimport { map, startWith } from \"rxjs/operators\";\r\n\r\nimport { PersonalService } from \"../../services/personal.service\";\r\nimport { PersonalDetails } from \"../../../master-layout/utility/enums\";\r\nimport { themeconfig } from \"../../../../../themeconfig\";\r\nimport { Associate, ContactDetails } from \"../../models/associate.model\";\r\nimport { GenericType } from \"../../../master-layout/models/dropdowntype.model\";\r\nimport { Designation } from \"../../../../modules/admin/models/designation.model\";\r\nimport { CommonService } from \"../../../../core/services/common.service\";\r\nimport { MasterDataService } from \"../../../master-layout/services/masterdata.service\";\r\nimport { RoleService } from \"../../../../modules/admin/services/role.service\";\r\nimport { DepartmentDetails } from \"../../../master-layout/models/role.model\";\r\nimport { KraRoleData } from \"../../../master-layout/models/kraRoleData.model\";\r\nimport { Grade } from \"../../../../modules/admin/models/grade.model\";\r\nimport { AssignReportingManagerService } from \"../../../project-life-cycle/services/assign-reporting-manager.service\";\r\nimport { NgxSpinnerService } from \"ngx-spinner\";\r\n\r\n@Component({\r\n selector: \"app-personal-details\",\r\n templateUrl: \"./personal-details.component.html\",\r\n styleUrls: [\"./personal-details.component.scss\"],\r\n})\r\nexport class PersonalDetailsComponent implements OnInit {\r\n minDate: Date;\r\n maxDate: Date;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n personelDetailsForm: FormGroup;\r\n contactDetails: FormArray;\r\n allAssociatesList: any[] = [];\r\n allGradessList: any;\r\n RoleTypesByGradeList:any;\r\n isCheckedSameAddress: boolean;\r\n isProspectivetoAssociateEdit: boolean = false;\r\n isProspectivetoAssociateNew: boolean = false;\r\n isAssociateInformationEdit: boolean = false;\r\n AsoociateDataFormData: any;\r\n id: number;\r\n @Input() type: string = \"new\";\r\n currentempID: number;\r\n _Associate: Associate;\r\n _Contacts: ContactDetails;\r\n _CurrentContacts: ContactDetails;\r\n _PermanentContacts: ContactDetails;\r\n managers: any[];\r\n ddlCountries: any[];\r\n ddlBloodGrp: any[];\r\n ddlBGVStatus: any[];\r\n ddlGender: any[];\r\n ddlMaritalStatus: any[];\r\n ddlDepartmentDetails: any[] = [];\r\n ddlGradesDetails: any[];\r\n ddlHRAdvisors: any[];\r\n ddlEmpTypes: any[];\r\n ddltechnologies: any[];\r\n valueKey: string = \"Country\";\r\n valueKey1: string = \"BloodGroup\";\r\n valueKey2: string = \"BGVStatus\";\r\n valueKey3: string = \"Gender\";\r\n valueKey4: string = \"MaritalStatus\";\r\n isRequired: boolean = false;\r\n isDisabled: boolean = false;\r\n todisableKRA: boolean = false;\r\n public kraRoleList: any[] = [];\r\n lastDate: Date;\r\n birthDate: Date;\r\n filteredDesignationIds: Observable;\r\n allDesignationsList: any[] = [];\r\n private componentName: string;\r\n designation: Designation;\r\n zipLengthone: number;\r\n zipLengthtwo: number;\r\n roleNames: any[] = [];\r\n deptId: number;\r\n isInEditMode: boolean;\r\n\r\n today = new Date();\r\n\r\n buttonType: string;\r\n @Output() onAssociateSave = new EventEmitter();\r\n @ViewChild(\"pANNumberInput\") pANNumberInputVariable: any;\r\n @ViewChild(\"passportNumberInput\") passportNumberVariable: any;\r\n @ViewChild(\"pfNumberInput\") pfNumberVariable: any;\r\n pattern: string;\r\n maxJoiningDate: Date;\r\n minJoiningDate: Date;\r\n pageload: boolean=false;\r\n\r\n constructor(\r\n private fb: FormBuilder,\r\n private _service: PersonalService,\r\n private _commonService: CommonService,\r\n private actRoute: ActivatedRoute,\r\n private _snackBar: MatSnackBar,\r\n private masterDataService: MasterDataService,\r\n private router: Router,\r\n private rolesServiceObj: RoleService,\r\n private spinner: NgxSpinnerService\r\n ) {\r\n this._Associate = new Associate();\r\n this.pattern = \"^[0-9]+(.[0-9]{1,2})?$\";\r\n\r\n\r\n const currentYear = new Date().getFullYear();\r\n this.minDate = new Date(currentYear - 100, 0, 1);\r\n this.maxDate = new Date(currentYear - 18, 11, 31);\r\n\r\n\r\n this.today.setDate(this.today.getDate());\r\n\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.spinner.show()\r\n this.type == \"edit\"\r\n ? (this.isInEditMode = true)\r\n : (this.isInEditMode = false);\r\n this.createPersonelDetailsForm();\r\n\r\n this.rolesServiceObj.selectedDepartment.subscribe((data) => {\r\n this._Associate.DepartmentId = data;\r\n this.deptId = this._Associate.DepartmentId;\r\n });\r\n this.getDepartmentList();\r\n this.getAllGradesList();\r\n\r\n this.actRoute.params.subscribe((params) => {\r\n this.id = params[\"id\"];\r\n });\r\n this.actRoute.params.subscribe((params) => {\r\n this.type = params[\"type\"];\r\n });\r\n\r\n this.currentempID = this.id;\r\n this._Contacts = new ContactDetails();\r\n this.kraRoleList = [];\r\n this.kraRoleList.push({ label: \"\", value: null });\r\n this.getKraRoles();\r\n this.GetHRAdvisors();\r\n this.GetEmpTypes();\r\n this.getTechnologies();\r\n this.getCountries(this.valueKey);\r\n this.getBloodGroup(this.valueKey1);\r\n this.getBGVStatus(this.valueKey2);\r\n this.getGender(this.valueKey3);\r\n this.getMaritalStatus(this.valueKey4);\r\n this.GetManagersAndLeads();\r\n var date = new Date();\r\n this.minJoiningDate = new Date(date.getFullYear(), date.getMonth(), 1);\r\n this.maxJoiningDate = new Date(date.getFullYear(), date.getMonth() + 1, 0);\r\n this.getDates();\r\n\r\n\r\n this.getAllDesignationsList();\r\n\r\n this.filteredDesignationIds = this.personelDetailsForm.valueChanges.pipe(\r\n startWith(\"\"),\r\n map((value) => this._filter(value))\r\n );\r\n }\r\n\r\n createPersonelDetailsForm() {\r\n this.personelDetailsForm = new FormGroup({\r\n ID: new FormControl(null),\r\n Id: new FormControl(null),\r\n EmpId: new FormControl(null),\r\n EmpCode: new FormControl(null),\r\n EmploymentType: new FormControl(null),\r\n Designation: new FormControl(null, [Validators.required]),\r\n TechnologyId: new FormControl(null),\r\n GradeName: new FormControl({ value: null, disabled: this.isInEditMode }, [\r\n Validators.required,\r\n ]),\r\n KRARoleId: new FormControl(null),\r\n contacts: this.createContactsForm(),\r\n contactDetails: this.fb.array([\r\n this.createCurrentAddress(),\r\n this.createPermanentAdd(),\r\n ]),\r\n RelationsInfo: new FormControl(null),\r\n contactDetailsOne: new FormControl(null),\r\n contactDetailsTwo: new FormControl(null),\r\n EmployeeId: new FormControl(null),\r\n EmployeeCode: new FormControl(\r\n { value: null, disabled: this.isInEditMode },\r\n [Validators.required, Validators.pattern('[ANC][0-9]*'), Validators.minLength(5), Validators.maxLength(5)]\r\n ),\r\n FirstName: new FormControl({ value: null, disabled: this.isInEditMode }, [\r\n Validators.required, Validators.pattern('^[a-zA-Z]+$')\r\n ]),\r\n MiddleName: new FormControl({ value: null, disabled: this.isInEditMode }, [Validators.pattern('^[a-zA-Z]+$')\r\n ]),\r\n // MiddleName: new FormControl({ value: null, disabled: this.isInEditMode }),\r\n LastName: new FormControl({ value: null, disabled: this.isInEditMode }, [\r\n Validators.required, Validators.pattern('^[a-zA-Z]+$')\r\n ]),\r\n Photograph: new FormControl(null),\r\n AccessCardNo: new FormControl(null),\r\n Gender: new FormControl(null, [Validators.required]),\r\n GradeId: new FormControl(null),\r\n DesignationId: new FormControl(null),\r\n MaritalStatus: new FormControl(null),\r\n Qualification: new FormControl(null),\r\n TelephoneNo: new FormControl(null, [Validators.pattern('^(?:(?:\\\\+|0{0,2})91(\\\\s*[\\\\ -]\\\\s*)?|[0]?)?[789]\\\\d{9}|(\\\\d[ -]?){10}\\\\d$'), Validators.minLength(11)]),\r\n MobileNo: new FormControl(null, [Validators.required, Validators.pattern('[1-9]{1}[0-9]{9}')]),\r\n WorkEmailAddress: new FormControl(null),\r\n PersonalEmailAddress: new FormControl(null, [Validators.required, Validators.email, Validators.pattern(/^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/)]),\r\n DateofBirth: new FormControl(null),\r\n JoinDate: new FormControl(null),\r\n ConfirmationDate: new FormControl(null),\r\n RelievingDate: new FormControl(null),\r\n BloodGroup: new FormControl(null, [Validators.required]),\r\n Nationality: new FormControl(null, [Validators.pattern('^[a-zA-Z ]*$')]),\r\n Pannumber: new FormControl(null, [Validators.required,Validators.pattern('^[A-Z]{5}[0-9]{4}[A-Z]{1}$'), Validators.minLength(10)]),\r\n PassportNumber: new FormControl(null, [Validators.minLength(8), Validators.pattern('^[A-PR-WYa-pr-wy][1-9]\\\\d\\\\s?\\\\d{4}[1-9]$')]),\r\n PassportIssuingOffice: new FormControl(null, [Validators.pattern('^[a-zA-Z ]*$')]),\r\n PassportDateValidUpto: new FormControl(null),\r\n ReportingManager: new FormControl(null, [Validators.required]),\r\n ProgramManager: new FormControl(null),\r\n DepartmentId: new FormControl(null, [Validators.required]),\r\n DocumentsUploadFlag: new FormControl(null),\r\n CubicalNumber: new FormControl(null),\r\n AlternateMobileNo: new FormControl(null),\r\n StatusId: new FormControl(null),\r\n BgvinitiatedDate: new FormControl(null),\r\n BgvCompletionDate: new FormControl(null),\r\n BgvcompletionDate: new FormControl(null),\r\n BgvstatusId: new FormControl(null),\r\n Experience: new FormControl(null),\r\n CompetencyGroup: new FormControl(null),\r\n BgvtargetDate: new FormControl(null),\r\n EmployeeTypeId: new FormControl(null, [Validators.required]),\r\n UserId: new FormControl(null),\r\n ResignationDate: new FormControl(null),\r\n Bgvstatus: new FormControl(null),\r\n BgvStatus: new FormControl(null),\r\n Paid: new FormControl(null),\r\n Hradvisor: new FormControl(null, [Validators.required]),\r\n Uannumber: new FormControl(null, [Validators.minLength(12)]),\r\n AadharNumber: new FormControl(null, [Validators.minLength(12)]),\r\n Pfnumber: new FormControl(null, [Validators.minLength(22)]),\r\n Remarks: new FormControl(null),\r\n EmploymentStartDate: new FormControl(null),\r\n CareerBreak: new FormControl(null, [Validators.pattern('^[0-9]+$'), Validators.minLength(1)]),\r\n TotalExperience: new FormControl(null),\r\n ExperienceExcludingCareerBreak: new FormControl(null),\r\n CurrentUser: new FormControl(null),\r\n CreatedDate: new FormControl(null),\r\n ModifiedDate: new FormControl(null),\r\n SystemInfo: new FormControl(null),\r\n IsActive: new FormControl(null),\r\n CreatedBy: new FormControl(null),\r\n ModifiedBy: new FormControl(null),\r\n Birthdate: new FormControl(null, [Validators.required]),\r\n DateofJoining: new FormControl(null, [Validators.required]),\r\n BgvStartDate: new FormControl(null),\r\n StartDateofEmployment: new FormControl(null, [Validators.required]),\r\n RoleTypeId: new FormControl(null)\r\n });\r\n }\r\n\r\n clearInput(evt: any, fieldName): void {\r\n if (fieldName == 'BgvCompletionDate') {\r\n evt.stopPropagation();\r\n this.personelDetailsForm.get('BgvCompletionDate').reset();\r\n }\r\n if (fieldName == 'BgvStartDate') {\r\n evt.stopPropagation();\r\n this.personelDetailsForm.get('BgvStartDate').reset();\r\n }\r\n if (fieldName == 'DateofJoining') {\r\n evt.stopPropagation();\r\n this.personelDetailsForm.get('DateofJoining').reset();\r\n }\r\n if (fieldName == 'StartDateofEmployment') {\r\n evt.stopPropagation();\r\n this.personelDetailsForm.get('StartDateofEmployment').reset();\r\n }\r\n if (fieldName == 'PassportDateValidUpto') {\r\n evt.stopPropagation();\r\n this.personelDetailsForm.get('PassportDateValidUpto').reset();\r\n }\r\n if (fieldName == 'Birthdate') {\r\n evt.stopPropagation();\r\n this.personelDetailsForm.get('Birthdate').reset();\r\n }\r\n }\r\n createCurrentAddress() {\r\n return this.fb.group({\r\n ID: [],\r\n addressType: [\"CurrentAddress\"],\r\n currentAddCity: [],\r\n currentAddCountry: [],\r\n currentAddState: [],\r\n currentAddZip: [],\r\n currentAddress1: [],\r\n currentAddress2: [],\r\n permanentAddCity: [],\r\n permanentAddCountry: [],\r\n permanentAddState: [],\r\n permanentAddZip: [],\r\n permanentAddress1: [],\r\n permanentAddress2: [],\r\n });\r\n }\r\n\r\n createContactsForm() {\r\n return this.fb.group({\r\n currentAddCity: [],\r\n currentAddCountry: [],\r\n currentAddState: [],\r\n currentAddZip: [],\r\n currentAddress1: [],\r\n currentAddress2: [],\r\n permanentAddCity: [],\r\n permanentAddCountry: [],\r\n permanentAddState: [],\r\n permanentAddZip: [],\r\n permanentAddress1: [],\r\n permanentAddress2: [],\r\n address: this.isCheckedSameAddress,\r\n });\r\n }\r\n\r\n createPermanentAdd() {\r\n return this.fb.group({\r\n ID: [],\r\n addressType: [\"PermanentAddress\"],\r\n currentAddCity: [],\r\n currentAddCountry: [],\r\n currentAddState: [],\r\n currentAddZip: [],\r\n currentAddress1: [],\r\n currentAddress2: [],\r\n permanentAddCity: [],\r\n permanentAddCountry: [],\r\n permanentAddState: [],\r\n permanentAddZip: [],\r\n permanentAddress1: [],\r\n permanentAddress2: [],\r\n });\r\n }\r\n\r\n getDepartmentList(): void {\r\n this.rolesServiceObj\r\n .getDepartmentList()\r\n .subscribe((res: DepartmentDetails[]) => {\r\n this.ddlDepartmentDetails.push({\r\n label: \"Select Department\",\r\n value: -1,\r\n });\r\n res.forEach((element) => {\r\n this.ddlDepartmentDetails.push({\r\n label: element.Description,\r\n value: element.DepartmentId,\r\n });\r\n });\r\n });\r\n }\r\n\r\n private getKraRoles() {\r\n this.masterDataService.GetKraRoles().subscribe(\r\n (res: KraRoleData[]) => {\r\n this.kraRoleList = [];\r\n this._Associate.KRARoleId = null;\r\n this.kraRoleList.push({ label: \"Select KRA Role\", value: null });\r\n res.forEach((element: KraRoleData) => {\r\n this.kraRoleList.push({\r\n label: element.KRARoleName,\r\n value: element.KRARoleID,\r\n });\r\n });\r\n },\r\n (error: any) => {\r\n // this._snackBar.open(\"Failed to get KRA Roles list.\", \"\", {\r\n // duration: 1000,\r\n // horizontalPosition: \"right\",\r\n // verticalPosition: \"top\",\r\n // });\r\n }\r\n );\r\n }\r\n\r\n onlyNumbers(event: any) {\r\n this._commonService.onlyNumbers(event);\r\n }\r\n\r\n getBloodGroup(valueKey1: string) {\r\n this._commonService.GetBusinessValues(valueKey1).subscribe((res: any) => {\r\n this.ddlBloodGrp = res;\r\n });\r\n }\r\n\r\n getBGVStatus(valueKey2: string) {\r\n this._commonService.GetBusinessValues(valueKey2).subscribe((res: any) => {\r\n this.ddlBGVStatus = res;\r\n });\r\n }\r\n\r\n getGender(valueKey3: string) {\r\n this._commonService.GetBusinessValues(valueKey3).subscribe((res: any) => {\r\n this.ddlGender = res;\r\n });\r\n }\r\n\r\n getMaritalStatus(valueKey4: string) {\r\n this._commonService.GetBusinessValues(valueKey4).subscribe((res: any) => {\r\n this.ddlMaritalStatus = res;\r\n });\r\n }\r\n\r\n getGradeByDesignation(designation) {\r\n this.personelDetailsForm.controls.DesignationId.setValue(designation.DesignationId);\r\n this.personelDetailsForm.controls.RoleTypeId.reset();\r\n this.filteredDesignationIds = null;\r\n if (this.designation && this.designation.DesignationId) {\r\n this.masterDataService\r\n .getGradeByDesignation(designation.DesignationId)\r\n .subscribe(\r\n (gradeResponse: Grade) => {\r\n // this._Associate.GradeName = gradeResponse.GradeName;\r\n // this._Associate.GradeId = gradeResponse.GradeId;\r\n this.personelDetailsForm.controls.GradeId.setValue(\r\n gradeResponse.GradeId\r\n );\r\n this.personelDetailsForm.controls.GradeName.setValue(gradeResponse.GradeName);\r\n this.getRoleTypesByGrade(gradeResponse.GradeId);\r\n },\r\n (error: any) => {\r\n if (error.error != undefined && error.error != \"\")\r\n this._commonService\r\n .LogError(this.componentName, error.error)\r\n .subscribe((data: any) => { });\r\n }\r\n );\r\n } else {\r\n // this._Associate.GradeName = \"\";\r\n // this._Associate.GradeId = null;\r\n // this.personelDetailsForm.controls.GradeName.setValue(null);\r\n }\r\n }\r\n\r\n GetEmployeePersonalDetails(): void {\r\n\r\n this._service.GetEmployeePersonalDetails(this.id).subscribe((res: any) => {\r\n this.spinner.hide()\r\n if (res.DateofBirth && res.DateofBirth !== null)\r\n res.DateofBirth = moment(res.DateofBirth).format(\"YYYY-MM-DD\");\r\n if (res.JoinDate)\r\n res.JoinDate = moment(res.JoinDate).format(\"YYYY-MM-DD\");\r\n if (res.BgvinitiatedDate)\r\n res.BgvinitiatedDate = moment(res.BgvinitiatedDate).format(\r\n \"YYYY-MM-DD\"\r\n );\r\n if (res.BgvcompletionDate)\r\n res.BgvcompletionDate = moment(res.BgvcompletionDate).format(\r\n \"YYYY-MM-DD\"\r\n );\r\n if (res.EmploymentStartDate)\r\n res.EmploymentStartDate = moment(res.EmploymentStartDate).format(\r\n \"YYYY-MM-DD\"\r\n );\r\n\r\n this._Associate = res;\r\n \r\n this._Associate.RoleTypeId={\r\n value:res.RoleTypeId,\r\n label:res.RoleTypeName\r\n \r\n }\r\n this.GetManagersAndLead(this._Associate.DepartmentId);\r\n this.personelDetailsForm.controls.ID.setValue(res.ID);\r\n\r\n //this._Associate.Designation = res.designation;\r\n if (this._Associate.Designation && this._Associate.DesignationId) {\r\n this.designation = new Designation();\r\n this.designation.DesignationId = this._Associate.DesignationId;\r\n this.designation.DesignationName = this._Associate.Designation;\r\n\r\n this.getGradeByDesignation(this.designation);\r\n }\r\n\r\n //Assign dates\r\n this._Associate.Birthdate = res.DateofBirth;\r\n\r\n this._Associate.DateofJoining = res.JoinDate;\r\n this._Associate.BgvStartDate = res.BgvinitiatedDate;\r\n this._Associate.BgvCompletionDate = res.BgvcompletionDate;\r\n this._Associate.StartDateofEmployment = res.EmploymentStartDate;\r\n this._Associate.CareerBreak = res.CareerBreak;\r\n\r\n this.disableBGVDates(this._Associate.Bgvstatus);\r\n this.disableKRA(this._Associate.Bgvstatus);\r\n\r\n if (this._Associate.DepartmentId == 1) this.isRequired = true;\r\n\r\n if (\r\n this._Associate.TechnologyId == null ||\r\n this._Associate.TechnologyId == \"\"\r\n ) {\r\n this._Associate.TechnologyId = \"\";\r\n }\r\n\r\n this.personelDetailsForm.controls.TechnologyId.setValue(\r\n this._Associate.TechnologyId\r\n );\r\n\r\n if (\r\n this._Associate.contactDetails != null &&\r\n this._Associate.contactDetails.length != 0\r\n ) {\r\n this.type = \"edit\";\r\n for (var i = 0; i < this._Associate.contactDetails.length; i++) {\r\n if (\r\n this._Associate.contactDetails[i].addressType == \"CurrentAddress\"\r\n ) {\r\n this._Contacts.currentAddCity = this._Associate.contactDetails[\r\n i\r\n ].currentAddCity;\r\n this._Contacts.currentAddCountry = this._Associate.contactDetails[\r\n i\r\n ].currentAddCountry;\r\n this._Contacts.currentAddress1 = this._Associate.contactDetails[\r\n i\r\n ].currentAddress1;\r\n this._Contacts.currentAddress2 = this._Associate.contactDetails[\r\n i\r\n ].currentAddress2;\r\n this._Contacts.currentAddState = this._Associate.contactDetails[\r\n i\r\n ].currentAddState;\r\n this._Contacts.currentAddZip = this._Associate.contactDetails[\r\n i\r\n ].currentAddZip;\r\n }\r\n if (\r\n this._Associate.contactDetails[i].addressType == \"PermanentAddress\"\r\n ) {\r\n this._Contacts.permanentAddCity = this._Associate.contactDetails[\r\n i\r\n ].permanentAddCity;\r\n this._Contacts.permanentAddCountry = this._Associate.contactDetails[\r\n i\r\n ].permanentAddCountry;\r\n this._Contacts.permanentAddress1 = this._Associate.contactDetails[\r\n i\r\n ].permanentAddress1;\r\n this._Contacts.permanentAddress2 = this._Associate.contactDetails[\r\n i\r\n ].permanentAddress2;\r\n this._Contacts.permanentAddState = this._Associate.contactDetails[\r\n i\r\n ].permanentAddState;\r\n this._Contacts.permanentAddZip = this._Associate.contactDetails[\r\n i\r\n ].permanentAddZip;\r\n }\r\n }\r\n if (\r\n this._Contacts.currentAddCity != null ||\r\n this._Contacts.currentAddCountry != null ||\r\n this._Contacts.currentAddress1 != null ||\r\n this._Contacts.currentAddress2 != null ||\r\n this._Contacts.currentAddState != null ||\r\n this._Contacts.currentAddZip != null\r\n ) {\r\n if (\r\n this._Contacts.currentAddCity == this._Contacts.permanentAddCity &&\r\n this._Contacts.currentAddCountry ==\r\n this._Contacts.permanentAddCountry &&\r\n this._Contacts.currentAddress1 ==\r\n this._Contacts.permanentAddress1 &&\r\n this._Contacts.currentAddress2 ==\r\n this._Contacts.permanentAddress2 &&\r\n this._Contacts.currentAddState ==\r\n this._Contacts.permanentAddState &&\r\n this._Contacts.currentAddZip == this._Contacts.permanentAddZip\r\n ) {\r\n this._Contacts.address = true;\r\n }\r\n }\r\n }\r\n this.assignPersonalDetails();\r\n },(error)=>{\r\n this.spinner.hide()\r\n });\r\n }\r\n\r\n GetPersonalDetails(): void {\r\n let DateOfJoining: Date;\r\n this._service.GetPersonalDetails(this.id).subscribe((res) => {\r\n this.spinner.hide()\r\n if (res.DateofJoining) {\r\n res.DateofJoining = moment(res.DateofJoining).format(\"YYYY-MM-DD\");\r\n }\r\n this._Associate = res;\r\n this._Associate.DateofJoining = res.DateOfJoining;\r\n this._Associate.ReportingManager = res.ReportingManager;\r\n this._Associate.ManagerId = res.ManagerId;\r\n this._Associate.TechnologyId = res.TechnologyID;\r\n this._Associate.Hradvisor = res.HRAdvisorName;\r\n\r\n if (this._Associate.Designation && this._Associate.DesignationId) {\r\n this.designation = new Designation();\r\n this.designation.DesignationId = this._Associate.DesignationId;\r\n this.designation.DesignationName = this._Associate.Designation;\r\n }\r\n if (this._Associate.DepartmentId == 1) this.isRequired = true;\r\n\r\n if (\r\n this._Associate.TechnologyId == null ||\r\n this._Associate.TechnologyId == \"\"\r\n ) {\r\n this._Associate.TechnologyId = \"\";\r\n }\r\n this.ddlEmpTypes.forEach((empType) => {\r\n if (empType.EmpType == res.EmploymentType)\r\n this._Associate.EmployeeTypeId = empType.EmployeeTypeId;\r\n });\r\n this.assignPersonalDetails();\r\n },(error)=>{\r\n this.spinner.hide()\r\n });\r\n }\r\n GetManagersAndLeads() {\r\n this.masterDataService\r\n .GetManagersAndCompetencyLeads()\r\n .subscribe((res: GenericType[]) => {\r\n this.managers = res;\r\n if (res) {\r\n if (this.type == \"new\") {\r\n this.GetPersonalDetails();\r\n } else {\r\n this.GetEmployeePersonalDetails();\r\n }\r\n }\r\n });\r\n }\r\n\r\n GetHRAdvisors() {\r\n this._service.GetHRAdvisors().subscribe((res: any) => {\r\n this.ddlHRAdvisors = res;\r\n });\r\n }\r\n\r\n GetEmpTypes() {\r\n this._service.GetEmpTypes().subscribe((res: any) => {\r\n this.ddlEmpTypes = res;\r\n });\r\n }\r\n\r\n getTechnologies() {\r\n this._service.GetTechnologies().subscribe((res: any) => {\r\n this.ddltechnologies = res;\r\n });\r\n }\r\n\r\n getCountries(valueKey: string) {\r\n this._commonService.GetBusinessValues(valueKey).subscribe((res: any) => {\r\n this.ddlCountries = res;\r\n });\r\n }\r\n\r\n getAssociateDsgId() {\r\n if (this.designation && this.designation.DesignationId) {\r\n this._Associate.DesignationId = this.designation.DesignationId;\r\n } else {\r\n this._Associate.DesignationId = 0;\r\n //this._Associate.Gender = \"\";\r\n }\r\n }\r\n\r\n validateInputData(): boolean {\r\n var today: any = new Date();\r\n let mm = today.getMonth() + 1;\r\n let dd = today.getDate();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n today = today.getFullYear() + \"-\" + mm + \"-\" + dd;\r\n\r\n if (!this.personelDetailsForm.value.Birthdate) {\r\n this._snackBar.open(\"Please enter Date of birth\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n });\r\n return false;\r\n }\r\n\r\n if (\r\n moment(this.personelDetailsForm.value.Birthdate).isSameOrAfter(new Date())\r\n ) {\r\n this._snackBar.open(\"Date of birth should be less than today\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n });\r\n return false;\r\n }\r\n\r\n if (this.personelDetailsForm.value.AadharNumber) {\r\n if (this.personelDetailsForm.value.AadharNumber.includes(\"000000000000\")) {\r\n this._snackBar.open(\"Please enter valid Aadhar Number\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n });\r\n return false;\r\n }\r\n }\r\n\r\n if (\r\n this.personelDetailsForm.value.DateofJoining == \"\" ||\r\n this.personelDetailsForm.value.DateofJoining == undefined\r\n ) {\r\n this._snackBar.open(\"Please enter joining date\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n });\r\n return false;\r\n }\r\n if (\r\n Date.parse(this.personelDetailsForm.value.Birthdate) >\r\n Date.parse(this.personelDetailsForm.value.DateofJoining)\r\n ) {\r\n this._snackBar.open(\r\n \"Employee's birth date should not greater than joining date\",\r\n \"\",\r\n {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n }\r\n );\r\n return false;\r\n }\r\n\r\n if (\r\n this.personelDetailsForm.value.StartDateofEmployment == \"\" ||\r\n this.personelDetailsForm.value.StartDateofEmployment == undefined\r\n ) {\r\n this._snackBar.open(\"Please enter employment start date\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n });\r\n return false;\r\n }\r\n\r\n if (this.personelDetailsForm.value.EmploymentStartDate > today.toString()) {\r\n this._snackBar.open(\r\n \"Employement start date should not greater than today's date \",\r\n \"\",\r\n {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n }\r\n );\r\n return false;\r\n }\r\n\r\n if (\r\n Date.parse(this.personelDetailsForm.value.StartDateofEmployment) <\r\n Date.parse(this.personelDetailsForm.value.Birthdate)\r\n ) {\r\n this._snackBar.open(\r\n \"Employement start date should be greater than birth date\",\r\n \"\",\r\n {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n }\r\n );\r\n return false;\r\n }\r\n if (\r\n Date.parse(this.personelDetailsForm.value.StartDateofEmployment) >\r\n Date.parse(this.personelDetailsForm.value.DateofJoining)\r\n ) {\r\n this._snackBar.open(\r\n \"Employement start date should not be greater than joining date\",\r\n \"\",\r\n {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n }\r\n );\r\n return false;\r\n }\r\n\r\n if (this.personelDetailsForm.value.PassportDateValidUpto) {\r\n if (\r\n Date.parse(this.personelDetailsForm.value.DateofBirth) >\r\n Date.parse(this.personelDetailsForm.value.PassportDateValidUpto)\r\n ) {\r\n this._snackBar.open(\r\n \"Passport Valid Date should be greater than or equal to Birth Date\",\r\n \"\",\r\n {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n }\r\n );\r\n return false;\r\n }\r\n }\r\n\r\n if (this.personelDetailsForm.value.Pfnumber) {\r\n let i = 0,\r\n j = 0;\r\n for (i = 0; i < this.personelDetailsForm.value.Pfnumber.length; i++) {\r\n if (this.personelDetailsForm.value.Pfnumber[i].includes(\"0\")) {\r\n j++;\r\n }\r\n }\r\n if (i == j) {\r\n this._snackBar.open(\"Please enter valid PF Number\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n });\r\n return false;\r\n }\r\n }\r\n if (this.personelDetailsForm.value.BgvStartDate) {\r\n if (\r\n !this.IsValidDate(\r\n this.personelDetailsForm.value.DateofJoining,\r\n this.personelDetailsForm.value.BgvStartDate\r\n )\r\n ) {\r\n this._snackBar.open(\r\n \"BGV Start Date should be greater than joining Date\",\r\n \"\",\r\n {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n }\r\n );\r\n return false;\r\n }\r\n\r\n // if (\r\n // Date.parse(this.personelDetailsForm.value.BgvStartDate) >\r\n // Date.parse(this.personelDetailsForm.value.BgvCompletionDate)\r\n // )\r\n // {\r\n // this._snackBar.open(\r\n // \"BGV Start Date should be greater than joining Date\",\r\n // \"\",\r\n // {\r\n // duration: 1000,\r\n // horizontalPosition: \"right\",\r\n // verticalPosition: \"top\",\r\n // }\r\n // );\r\n // return false;\r\n // }\r\n }\r\n\r\n if (\r\n this.personelDetailsForm.value.Bgvstatus == \"Verified\" &&\r\n this.personelDetailsForm.value.Bgvstatus != undefined\r\n ) {\r\n if (\r\n this.personelDetailsForm.value.BgvStartDate == \"\" ||\r\n this.personelDetailsForm.value.BgvStartDate == undefined ||\r\n this.personelDetailsForm.value.BgvCompletionDate == \"\" ||\r\n this.personelDetailsForm.value.BgvCompletionDate == undefined\r\n ) {\r\n this._snackBar.open(\r\n \"Please enter BGV Start Date and BGV Completed Date\",\r\n \"\",\r\n {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n }\r\n );\r\n return false;\r\n }\r\n\r\n }\r\n\r\n if (\r\n this.personelDetailsForm.value.BgvStartDate &&\r\n this.personelDetailsForm.value.BgvCompletionDate\r\n ) {\r\n if (\r\n !this.IsValidDate(this.personelDetailsForm.value.BgvStartDate,\r\n this.personelDetailsForm.value.BgvCompletionDate\r\n\r\n )\r\n ) {\r\n this._snackBar.open(\r\n \"BGV Completed Date should be greater than BGV Start Date\",\r\n \"\",\r\n {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n }\r\n );\r\n return false;\r\n }\r\n if (\r\n Date.parse(this.personelDetailsForm.value.BgvStartDate) >=\r\n Date.parse(this.personelDetailsForm.value.BgvCompletionDate)\r\n ) {\r\n this._snackBar.open(\r\n \"BGV Completed Date should be greater than BGV Start Date\",\r\n \"\",\r\n {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n }\r\n );\r\n return false;\r\n }\r\n }\r\n\r\n if (!this.personelDetailsForm.value.Designation) {\r\n this._snackBar.open(\"Please select Designation\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n });\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n onSavePersonalDetails() {\r\n\r\n this.AsoociateDataFormData = this.personelDetailsForm.value;\r\n if(this.AsoociateDataFormData.RoleTypeId!=null)\r\n {\r\n this.AsoociateDataFormData.RoleTypeId = this.AsoociateDataFormData.RoleTypeId.value\r\n }\r\n else{\r\n this.AsoociateDataFormData.RoleTypeId = this.AsoociateDataFormData.RoleTypeId\r\n }\r\n this.AsoociateDataFormData.Id = this._Associate.Id;\r\n this.AsoociateDataFormData.ID = this._Associate.Id;\r\n this.AsoociateDataFormData.EmployeeId = 0;\r\n this.AsoociateDataFormData.EmpId = this.currentempID;\r\n this.AsoociateDataFormData.DateofBirth = this.AsoociateDataFormData.Birthdate;\r\n this.AsoociateDataFormData.BgvStatus = this.AsoociateDataFormData.Bgvstatus;\r\n\r\n this.AsoociateDataFormData.BgvcompletionDate = this.AsoociateDataFormData.BgvCompletionDate;\r\n this.AsoociateDataFormData.BgvinitiatedDate = this.AsoociateDataFormData.BgvStartDate;\r\n\r\n\r\n this.AsoociateDataFormData.EmpCode = this.AsoociateDataFormData.EmployeeCode;\r\n\r\n this.AsoociateDataFormData.contactDetails[0].ID = 0;\r\n this.AsoociateDataFormData.contactDetails[1].ID = 0;\r\n this.AsoociateDataFormData.contacts.currentAddCity = this.AsoociateDataFormData.contactDetails[0].currentAddCity;\r\n this.AsoociateDataFormData.contacts.currentAddCountry = this.AsoociateDataFormData.contactDetails[0].currentAddCountry;\r\n this.AsoociateDataFormData.contacts.currentAddress1 = this.AsoociateDataFormData.contactDetails[0].currentAddress1;\r\n this.AsoociateDataFormData.contacts.currentAddress2 = this.AsoociateDataFormData.contactDetails[0].currentAddress2;\r\n this.AsoociateDataFormData.contacts.currentAddState = this.AsoociateDataFormData.contactDetails[0].currentAddState;\r\n this.AsoociateDataFormData.contacts.currentAddZip = this.AsoociateDataFormData.contactDetails[0].currentAddZip;\r\n this.AsoociateDataFormData.contacts.permanentAddCity = this.AsoociateDataFormData.contactDetails[1].permanentAddCity;\r\n this.AsoociateDataFormData.contacts.permanentAddCountry = this.AsoociateDataFormData.contactDetails[1].permanentAddCountry;\r\n this.AsoociateDataFormData.contacts.permanentAddress1 = this.AsoociateDataFormData.contactDetails[1].permanentAddress1;\r\n this.AsoociateDataFormData.contacts.permanentAddress2 = this.AsoociateDataFormData.contactDetails[1].permanentAddress2;\r\n this.AsoociateDataFormData.contacts.permanentAddState = this.AsoociateDataFormData.contactDetails[1].permanentAddState;\r\n this.AsoociateDataFormData.contacts.permanentAddZip = this.AsoociateDataFormData.contactDetails[1].permanentAddZip;\r\n this.AsoociateDataFormData.contacts.address = this.isCheckedSameAddress;\r\n\r\n this.AsoociateDataFormData.EmpName = this.AsoociateDataFormData.FirstName + \" \" + this.AsoociateDataFormData.LastName;\r\n this.AsoociateDataFormData.EncryptedMobileNumber = null;\r\n this.AsoociateDataFormData.RoleName = null;\r\n this.AsoociateDataFormData.WorkEmail = null;\r\n this.AsoociateDataFormData.Dob = null;\r\n this.AsoociateDataFormData.Department = null;\r\n this.AsoociateDataFormData.ProjectId = 0;\r\n this.AsoociateDataFormData.joiningStatusID = null;\r\n this.AsoociateDataFormData.ProjectName = null;\r\n this.AsoociateDataFormData.LeadId = 0;\r\n this.AsoociateDataFormData.ManagerId = null;\r\n this.AsoociateDataFormData.ManagerFirstName = null;\r\n this.AsoociateDataFormData.ManagerLastName = null;\r\n this.AsoociateDataFormData.ManagerName = null;\r\n this.AsoociateDataFormData.LeadFirstName = null;\r\n this.AsoociateDataFormData.LeadLastName = 0;\r\n this.AsoociateDataFormData.LeadName = null;\r\n this.AsoociateDataFormData.EmailAddress = null;\r\n this.AsoociateDataFormData.Year = null;\r\n this.AsoociateDataFormData.RoleId = 0;\r\n this.AsoociateDataFormData.LastWorkingDate = null;\r\n this.AsoociateDataFormData.DropOutReason = null;\r\n delete this.AsoociateDataFormData.ID;\r\n\r\n this.getAssociateDsgId();\r\n if (this._Contacts.address == true) {\r\n let isValid = this.validateAddresses(this._Contacts.address);\r\n if (isValid == false) {\r\n this._snackBar.open(\"Please enter current address details\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n });\r\n return false;\r\n }\r\n }\r\n this._Associate.contacts = this._Contacts;\r\n this._Associate.JoinDate = new Date(this._Associate.DateofJoining);\r\n this._Associate.DateofBirth = new Date(this._Associate.DateofBirth);\r\n this._Associate.BgvinitiatedDate = new Date(this._Associate.BgvStartDate);\r\n this._Associate.BgvcompletionDate = new Date(\r\n this._Associate.BgvCompletionDate\r\n );\r\n this._Associate.EmploymentStartDate = new Date(\r\n this._Associate.StartDateofEmployment\r\n );\r\n this.AsoociateDataFormData.TechnologyId = this._Associate.TechnologyId;\r\n this.AsoociateDataFormData.JoinDate = this._Associate.JoinDate;\r\n this.AsoociateDataFormData.StartDateofEmployment = this._Associate.StartDateofEmployment;\r\n this.AsoociateDataFormData.EmploymentStartDate = this._Associate.StartDateofEmployment;\r\n let validData = this.validateInputData();\r\n\r\n if (this.selectedDate(this.AsoociateDataFormData.Birthdate) == false)\r\n return;\r\n if (this.validateInputData() == false) {\r\n this.personelDetailsForm.valid == false;\r\n return;\r\n\r\n }\r\n\r\n if (this.personelDetailsForm.valid) {\r\n this._service\r\n .SavePersonalDetails(this.AsoociateDataFormData)\r\n .subscribe(\r\n (data: any) => {\r\n if (data.EmployeeId > 0) {\r\n this.type = \"edit\";\r\n this.onAssociateSave.emit(this.type);\r\n this.currentempID = data.EmployeeId;\r\n this._snackBar.open(\"Personal details saved successfully\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n });\r\n setTimeout(() => {\r\n this.router.navigate([\r\n \"/associates/prospectivetoassociate/edit/\" +\r\n data.EmployeeId +\r\n \"/\" +\r\n \"profile\",\r\n ]);\r\n }, 1000);\r\n } else if (data.length > 0) {\r\n let errorMessage = this.validatePersonalDetails(data);\r\n this._snackBar.open(errorMessage + \" already exists\", \"\", {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n });\r\n }\r\n },\r\n (error) => {\r\n if (error.error != undefined && error.error != \"\") {\r\n this._snackBar.open(error.error, \"\", {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n });\r\n } else {\r\n this._snackBar.open(\"Failed to save personal details\", \"\", {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n });\r\n }\r\n }\r\n );\r\n } else {\r\n this._snackBar.open(\r\n \"Please correct the fields highlighted in red colour\",\r\n \"!\",\r\n {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n }\r\n );\r\n }\r\n }\r\n\r\n onUpdatePersonalDetails() {\r\n this.personelDetailsForm.controls.EmployeeId.setValue(this.currentempID);\r\n\r\n if ((window.location.href.indexOf(\"associates/prospectivetoassociate/edit/\") > -1) && (window.location.href.indexOf(\"/list\") > -1) || (window.location.href.indexOf(\"associates/prospectivetoassociate/edit/\") > -1) && (window.location.href.indexOf(\"/profileupdate\") > -1) || (window.location.href.indexOf(\"associates/prospectivetoassociate/edit/\") > -1) && (window.location.href.indexOf(\"/EPU\") > -1)) {\r\n this.AsoociateDataFormData = this.personelDetailsForm.getRawValue();\r\n if(this.AsoociateDataFormData.RoleTypeId!=null)\r\n {\r\n this.AsoociateDataFormData.RoleTypeId = this.AsoociateDataFormData.RoleTypeId.value\r\n }\r\n else{\r\n this.AsoociateDataFormData.RoleTypeId = this.AsoociateDataFormData.RoleTypeId\r\n }\r\n this.AsoociateDataFormData.BgvStatus = this.AsoociateDataFormData.Bgvstatus;\r\n this.AsoociateDataFormData.BgvcompletionDate = this.AsoociateDataFormData.BgvCompletionDate;\r\n this.AsoociateDataFormData.BgvinitiatedDate = this.AsoociateDataFormData.BgvStartDate;\r\n this.AsoociateDataFormData.DateofBirth = this.AsoociateDataFormData.Birthdate;\r\n this.AsoociateDataFormData.EmploymentStartDate = this.AsoociateDataFormData.StartDateofEmployment;\r\n this.AsoociateDataFormData.JoinDate = this.AsoociateDataFormData.DateofJoining;\r\n this.AsoociateDataFormData.contacts.currentAddress1 = this.AsoociateDataFormData.contactDetails[0].currentAddress1;\r\n this.AsoociateDataFormData.contacts.currentAddress2 = this.AsoociateDataFormData.contactDetails[0].currentAddress2;\r\n this.AsoociateDataFormData.contacts.currentAddCity = this.AsoociateDataFormData.contactDetails[0].currentAddCity;\r\n this.AsoociateDataFormData.contacts.currentAddState = this.AsoociateDataFormData.contactDetails[0].currentAddState;\r\n this.AsoociateDataFormData.contacts.currentAddCountry = this.AsoociateDataFormData.contactDetails[0].currentAddCountry;\r\n this.AsoociateDataFormData.contacts.currentAddZip = this.AsoociateDataFormData.contactDetails[0].currentAddZip;\r\n this.AsoociateDataFormData.contacts.permanentAddress1 = this.AsoociateDataFormData.contactDetails[1].permanentAddress1;\r\n this.AsoociateDataFormData.contacts.permanentAddress2 = this.AsoociateDataFormData.contactDetails[1].permanentAddress2;\r\n this.AsoociateDataFormData.contacts.permanentAddCity = this.AsoociateDataFormData.contactDetails[1].permanentAddCity;\r\n this.AsoociateDataFormData.contacts.permanentAddState = this.AsoociateDataFormData.contactDetails[1].permanentAddState;\r\n this.AsoociateDataFormData.contacts.permanentAddCountry = this.AsoociateDataFormData.contactDetails[1].permanentAddCountry;\r\n this.AsoociateDataFormData.contacts.permanentAddZip = this.AsoociateDataFormData.contactDetails[1].permanentAddZip;\r\n this.AsoociateDataFormData.contacts.permanentAddZip = this.AsoociateDataFormData.contactDetails[1].permanentAddZip;\r\n this.AsoociateDataFormData.contacts.address = this.isCheckedSameAddress;\r\n delete this.AsoociateDataFormData['Id'];\r\n delete this.AsoociateDataFormData['EmpId'];\r\n delete this.AsoociateDataFormData['EmpCode'];\r\n this.AsoociateDataFormData.contactDetails = null;\r\n } else if ((window.location.href.indexOf(\"associates/prospectivetoassociate/edit/\") > -1) && (window.location.href.indexOf(\"/profileupdate\") > -1)) {\r\n this.AsoociateDataFormData = this.personelDetailsForm.getRawValue();\r\n\r\n if (this._Associate.contactDetails) {\r\n this.AsoociateDataFormData.contactDetails[0].ID = this._Associate.contactDetails[0].ID;\r\n this.AsoociateDataFormData.contactDetails[1].ID = this._Associate.contactDetails[1].ID;\r\n }\r\n else {\r\n this.AsoociateDataFormData.contactDetails[0].ID = 0;\r\n this.AsoociateDataFormData.contactDetails[1].ID = 0;\r\n }\r\n\r\n\r\n delete this.AsoociateDataFormData['Id'];\r\n delete this.AsoociateDataFormData['EmpId'];\r\n delete this.AsoociateDataFormData['EmpCode'];\r\n }\r\n let validdata = this.validateInputData();\r\n if (this.validateInputData() == false) {\r\n this.personelDetailsForm.valid == false;\r\n return;\r\n\r\n }\r\n if (this.selectedDate(this.AsoociateDataFormData.Birthdate) == false) return;\r\n\r\n if (this.personelDetailsForm.valid) {\r\n this._service.UpdatePersonalDetails(this.AsoociateDataFormData).subscribe(\r\n (data: any) => {\r\n if (data.IsSuccessful == true) {\r\n this.type = \"edit\";\r\n this._snackBar.open(\"Personal details updated successfully\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n });\r\n } else if (data.length > 0) {\r\n let errorMessage = this.validatePersonalDetails(data);\r\n this._snackBar.open(errorMessage + \" already exists\", \"\", {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n });\r\n }\r\n },\r\n (error) => {\r\n if (error != undefined && error != \"\") {\r\n this._snackBar.open(error.error, \"\", {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n });\r\n } else {\r\n this._snackBar.open(\"Failed to update personal details\", \"\", {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n });\r\n }\r\n }\r\n );\r\n } else {\r\n this._snackBar.open(\r\n \"Please correct the fields highlighted in red colour\",\r\n \"!\",\r\n {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n }\r\n );\r\n }\r\n }\r\n\r\n private validatePersonalDetails(resultData: any): string {\r\n if (resultData.length > 0) {\r\n let errorMessage: string = \"\";\r\n resultData.forEach((ele: any) => {\r\n if (ele.Id == PersonalDetails.PersonalEmailAddress)\r\n errorMessage != \"\"\r\n ? (errorMessage += \"Personal Email Id\")\r\n : (errorMessage = \"Personal Email Id\");\r\n if (ele.Id == PersonalDetails.MobileNo)\r\n errorMessage != \"\"\r\n ? (errorMessage += \", Mobile Number\")\r\n : (errorMessage = \"Mobile Number\");\r\n if (ele.Id == PersonalDetails.AadharNumber)\r\n errorMessage != \"\"\r\n ? (errorMessage += \", Aadhar Number\")\r\n : (errorMessage = \"Aadhar Number\");\r\n if (ele.Id == PersonalDetails.PANNumber)\r\n errorMessage != \"\"\r\n ? (errorMessage += \", PAN Number\")\r\n : (errorMessage = \"PAN Number\");\r\n if (ele.Id == PersonalDetails.UANNumber)\r\n errorMessage != \"\"\r\n ? (errorMessage += \", UAN Number\")\r\n : (errorMessage = \"UAN Number\");\r\n if (ele.Id == PersonalDetails.PFNumber)\r\n errorMessage != \"\"\r\n ? (errorMessage += \", PF Number\")\r\n : (errorMessage = \"PF Number\");\r\n if (ele.Id == PersonalDetails.PassportNumber)\r\n errorMessage != \"\"\r\n ? (errorMessage += \", Passport Number\")\r\n : (errorMessage = \"Passport Number\");\r\n });\r\n return errorMessage;\r\n }\r\n }\r\n\r\n private validateAddresses(isaddress: boolean): boolean {\r\n if (isaddress) {\r\n if (\r\n (this._Contacts.currentAddCity != null &&\r\n this._Contacts.currentAddCity != \"\" &&\r\n this._Contacts.currentAddCity.trim().length > 0) ||\r\n (this._Contacts.currentAddCountry != null &&\r\n this._Contacts.currentAddCountry != \"\") ||\r\n (this._Contacts.currentAddress1 != null &&\r\n this._Contacts.currentAddress1 != \"\" &&\r\n this._Contacts.currentAddress1.trim().length > 0) ||\r\n (this._Contacts.currentAddress2 != null &&\r\n this._Contacts.currentAddress2 != \"\" &&\r\n this._Contacts.currentAddress2.trim().length > 0) ||\r\n (this._Contacts.currentAddState != null &&\r\n this._Contacts.currentAddState != \"\" &&\r\n this._Contacts.currentAddState.trim().length > 0) ||\r\n (this._Contacts.currentAddZip != null &&\r\n this._Contacts.currentAddZip != \"\")\r\n ) {\r\n\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][1].controls.permanentAddress1.setValue(\r\n this._Contacts.currentAddress1\r\n );\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][1].controls.permanentAddress2.setValue(\r\n this._Contacts.currentAddress2\r\n );\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][1].controls.permanentAddCity.setValue(\r\n this._Contacts.currentAddCity\r\n );\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][1].controls.permanentAddState.setValue(\r\n this._Contacts.currentAddState\r\n );\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][1].controls.permanentAddCountry.setValue(\r\n this._Contacts.currentAddCountry\r\n );\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][1].controls.permanentAddZip.setValue(\r\n this._Contacts.currentAddZip\r\n );\r\n return true;\r\n } else {\r\n this._Contacts.permanentAddCity = \"\";\r\n this._Contacts.permanentAddCountry = \"\";\r\n this._Contacts.permanentAddress1 = \"\";\r\n this._Contacts.permanentAddress2 = \"\";\r\n this._Contacts.permanentAddState = \"\";\r\n this._Contacts.permanentAddZip = \"\";\r\n this._snackBar.open(\"Please enter current address details\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n });\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n phoneNumbers(event: any) {\r\n var keys = {\r\n escape: 27,\r\n backspace: 8,\r\n tab: 9,\r\n enter: 13,\r\n \"-\": 45,\r\n \"0\": 48,\r\n \"1\": 49,\r\n \"2\": 50,\r\n \"3\": 51,\r\n \"4\": 52,\r\n \"5\": 53,\r\n \"6\": 54,\r\n \"7\": 55,\r\n \"8\": 56,\r\n \"9\": 57,\r\n };\r\n for (var index in keys) {\r\n if (!keys.hasOwnProperty(index)) continue;\r\n if (event.charCode == keys[index] || event.keyCode == keys[index]) {\r\n return; //default event\r\n }\r\n }\r\n event.preventDefault();\r\n }\r\n\r\n omit_special_char(event: any) {\r\n let k: any;\r\n k = event.charCode; // k = event.keyCode; (Both can be used)\r\n return (\r\n (k > 64 && k < 91) ||\r\n (k > 96 && k < 123) ||\r\n k == 8 ||\r\n k == 32 ||\r\n (k >= 48 && k <= 57)\r\n );\r\n }\r\n\r\n onlychar(event: any) {\r\n let k: any;\r\n k = event.charCode; // k = event.keyCode; (Both can be used)\r\n return (k > 64 && k < 91) || (k > 96 && k < 123) || k == 8 || k == 32;\r\n }\r\n\r\n forAddress(event: any) {\r\n let k: any;\r\n k = event.charCode; // k = event.keyCode; (Both can be used)\r\n return (\r\n (k > 64 && k < 91) ||\r\n (k > 96 && k < 123) ||\r\n k == 8 ||\r\n k == 32 ||\r\n k == 92 ||\r\n k == 35 ||\r\n (k >= 44 && k <= 57)\r\n );\r\n }\r\n\r\n forPfNumber(event: any) {\r\n let k: any;\r\n k = event.charCode; // k = event.keyCode; (Both can be used)\r\n return (\r\n (k > 64 && k < 91) ||\r\n (k > 96 && k < 123) ||\r\n (k > 47 && k < 58) ||\r\n k == 8 ||\r\n k == 47\r\n );\r\n }\r\n\r\n requiredTechnolgy(event: any) {\r\n var target = event.target.value;\r\n if (target == 1) {\r\n this.isRequired = true;\r\n } else {\r\n this.isRequired = false;\r\n this._Associate.TechnologyId = \"\";\r\n }\r\n }\r\n\r\n selectedDate(selectedDate): Boolean {\r\n var today: any = new Date();\r\n today = today.getFullYear();\r\n selectedDate = moment(selectedDate).toDate();\r\n var selDate = selectedDate.getFullYear();\r\n var diff = Math.round(Math.abs(selDate - today));\r\n if (diff >= 100 || diff < 18) {\r\n this._snackBar.open(\"Please select a valid birth date\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n });\r\n return false;\r\n }\r\n }\r\n disableBGVDates(event: any) {\r\n if (event) {\r\n var bgvstatus = event.value ? event.value : event;\r\n this._Associate.Bgvstatus = bgvstatus;\r\n if (bgvstatus == \"NotVerified\") {\r\n this.personelDetailsForm.controls.BgvStartDate.setValidators([]);\r\n this.personelDetailsForm.controls.BgvCompletionDate.setValidators([]);\r\n this.personelDetailsForm.controls.BgvStartDate.setValue(\"\");\r\n this.personelDetailsForm.controls.BgvCompletionDate.setValue(\"\");\r\n this.isDisabled = true;\r\n } else {\r\n this.isDisabled = false;\r\n this.personelDetailsForm.controls.BgvStartDate.setValidators([Validators.required]);\r\n this.personelDetailsForm.controls.BgvCompletionDate.setValidators([Validators.required]);\r\n }\r\n } else {\r\n this.isDisabled = false;\r\n }\r\n }\r\n\r\n disableKRA(event: any) {\r\n if (event == \"Verified\") this.todisableKRA = true;\r\n else this.todisableKRA = false;\r\n }\r\n\r\n IsValidDate = function (fromDate: any, toDate: any) {\r\n if (Date.parse(fromDate) <= Date.parse(toDate)) return true;\r\n return false;\r\n };\r\n\r\n getDates() {\r\n var date = new Date(),\r\n y = date.getFullYear(),\r\n m = date.getMonth(),\r\n d = date.getDate();\r\n this.lastDate = new Date(y, m + 2, 0);\r\n this.birthDate = new Date(y, m, d - 1);\r\n }\r\n upperCase() {\r\n this._Associate.Pannumber = this.pANNumberInputVariable.nativeElement.value.toUpperCase();\r\n this._Associate.PassportNumber = this.passportNumberVariable.nativeElement.value.toUpperCase();\r\n this._Associate.Pfnumber = this.pfNumberVariable.nativeElement.value.toUpperCase();\r\n }\r\n\r\n setZipLengthone(event: any) {\r\n // this._Contacts.currentAddZip = null;\r\n if (event.value == \"India\") {\r\n this.zipLengthone = 6;\r\n }\r\n else { this.zipLengthone = 5; }\r\n }\r\n setZipLengthtwo(event: any) {\r\n // this._Contacts.currentAddZip = null;\r\n if (event.value == \"India\") {\r\n this.zipLengthtwo = 6;\r\n\r\n }\r\n else {\r\n this.zipLengthtwo = 5;\r\n }\r\n }\r\n sameAddress(e) {\r\n if (e.checked == true) {\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][1].controls.permanentAddress1.setValue(\r\n this.personelDetailsForm.get(\"contactDetails\")[\"controls\"][0].controls\r\n .currentAddress1.value\r\n );\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][1].controls.permanentAddress2.setValue(\r\n this.personelDetailsForm.get(\"contactDetails\")[\"controls\"][0].controls\r\n .currentAddress2.value\r\n );\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][1].controls.permanentAddCity.setValue(\r\n this.personelDetailsForm.get(\"contactDetails\")[\"controls\"][0].controls\r\n .currentAddCity.value\r\n );\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][1].controls.permanentAddState.setValue(\r\n this.personelDetailsForm.get(\"contactDetails\")[\"controls\"][0].controls\r\n .currentAddState.value\r\n );\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][1].controls.permanentAddCountry.setValue(\r\n this.personelDetailsForm.get(\"contactDetails\")[\"controls\"][0].controls\r\n .currentAddCountry.value\r\n );\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][1].controls.permanentAddZip.setValue(\r\n this.personelDetailsForm.get(\"contactDetails\")[\"controls\"][0].controls\r\n .currentAddZip.value\r\n );\r\n this.isCheckedSameAddress = true;\r\n } else {\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][1].controls.permanentAddress1.setValue(\"\");\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][1].controls.permanentAddress2.setValue(\"\");\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][1].controls.permanentAddCity.setValue(\"\");\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][1].controls.permanentAddState.setValue(\"\");\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][1].controls.permanentAddCountry.setValue(\"\");\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][1].controls.permanentAddZip.setValue(\"\");\r\n this.isCheckedSameAddress = false;\r\n }\r\n }\r\n\r\n onlyForNumbers(event: any) {\r\n var keys = {\r\n escape: 27,\r\n backspace: 8,\r\n tab: 9,\r\n enter: 13,\r\n \"0\": 48,\r\n \"1\": 49,\r\n \"2\": 50,\r\n \"3\": 51,\r\n \"4\": 52,\r\n \"5\": 53,\r\n \"6\": 54,\r\n \"7\": 55,\r\n \"8\": 56,\r\n \"9\": 57,\r\n };\r\n for (var index in keys) {\r\n if (!keys.hasOwnProperty(index)) continue;\r\n if (event.charCode == keys[index] || event.keyCode == keys[index]) {\r\n return; //default event\r\n }\r\n }\r\n event.preventDefault();\r\n }\r\n\r\n assignPersonalDetails() {\r\n this.personelDetailsForm.controls.FirstName.setValue(\r\n this._Associate.FirstName\r\n );\r\n this.personelDetailsForm.controls.MiddleName.setValue(\r\n this._Associate.MiddleName\r\n );\r\n this.personelDetailsForm.controls.LastName.setValue(\r\n this._Associate.LastName\r\n );\r\n this.personelDetailsForm.controls.Gender.setValue(this._Associate.Gender);\r\n this.personelDetailsForm.controls.Birthdate.setValue(\r\n this._Associate.Birthdate\r\n );\r\n this.personelDetailsForm.controls.DateofBirth.setValue(\r\n this._Associate.DateofBirth\r\n );\r\n this.personelDetailsForm.controls.MaritalStatus.setValue(\r\n this._Associate.MaritalStatus\r\n );\r\n this.personelDetailsForm.controls.BloodGroup.setValue(\r\n this._Associate.BloodGroup\r\n );\r\n this.personelDetailsForm.controls.Nationality.setValue(\r\n this._Associate.Nationality\r\n );\r\n this.personelDetailsForm.controls.TelephoneNo.setValue(\r\n this._Associate.TelephoneNo\r\n );\r\n this.personelDetailsForm.controls.MobileNo.setValue(\r\n this._Associate.MobileNo\r\n );\r\n this.personelDetailsForm.controls.PersonalEmailAddress.setValue(\r\n this._Associate.PersonalEmailAddress\r\n );\r\n this.personelDetailsForm.controls.AadharNumber.setValue(\r\n this._Associate.AadharNumber\r\n );\r\n this.personelDetailsForm.controls.Pannumber.setValue(\r\n this._Associate.Pannumber\r\n );\r\n this.personelDetailsForm.controls.PassportNumber.setValue(\r\n this._Associate.PassportNumber\r\n );\r\n this.personelDetailsForm.controls.PassportIssuingOffice.setValue(\r\n this._Associate.PassportIssuingOffice\r\n );\r\n this.personelDetailsForm.controls.PassportDateValidUpto.setValue(\r\n this._Associate.PassportDateValidUpto\r\n );\r\n this.personelDetailsForm.controls.Uannumber.setValue(\r\n this._Associate.Uannumber\r\n );\r\n this.personelDetailsForm.controls.Pfnumber.setValue(\r\n this._Associate.Pfnumber\r\n );\r\n this.personelDetailsForm.controls.StartDateofEmployment.setValue(\r\n this._Associate.StartDateofEmployment\r\n );\r\n this.personelDetailsForm.controls.EmploymentStartDate.setValue(\r\n this._Associate.StartDateofEmployment\r\n );\r\n this.personelDetailsForm.controls.EmployeeCode.setValue(\r\n this._Associate.EmployeeCode\r\n );\r\n\r\n this.personelDetailsForm.controls.CareerBreak.setValue(\r\n this._Associate.CareerBreak\r\n );\r\n\r\n this.personelDetailsForm.controls.DateofJoining.setValue(\r\n this._Associate.DateofJoining\r\n );\r\n this.personelDetailsForm.controls.JoinDate.setValue(\r\n this._Associate.DateofJoining\r\n );\r\n\r\n this.personelDetailsForm.controls.Hradvisor.setValue(\r\n this._Associate.Hradvisor\r\n );\r\n this.personelDetailsForm.controls.Designation.setValue(\r\n this._Associate.Designation\r\n );\r\n this.personelDetailsForm.controls.GradeName.setValue(\r\n this._Associate.GradeName\r\n );\r\n this.personelDetailsForm.controls.GradeId.setValue(this._Associate.GradeId);\r\n if (this._Associate.RoleTypeId != null){\r\n this.personelDetailsForm.controls.RoleTypeId.setValue(\r\n this._Associate.RoleTypeId\r\n ); \r\n } \r\n this.getRoleTypesByGrade(this._Associate.GradeId);\r\n this.personelDetailsForm.controls.UserId.setValue(this._Associate.UserId);\r\n this.personelDetailsForm.controls.EmployeeTypeId.setValue(\r\n this._Associate.EmployeeTypeId\r\n );\r\n this.personelDetailsForm.controls.EmploymentType.setValue(\r\n this._Associate.EmploymentType\r\n );\r\n this.personelDetailsForm.controls.DepartmentId.setValue(\r\n this._Associate.DepartmentId\r\n );\r\n this.personelDetailsForm.controls.TechnologyId.setValue(\r\n this._Associate.TechnologyId\r\n )\r\n\r\n if (this._Associate.ReportingManager == null) {\r\n this.personelDetailsForm.controls.ReportingManager.setValue(\r\n this._Associate.ManagerId\r\n );\r\n this._Associate.ReportingManager = this._Associate.ManagerId;\r\n }\r\n else {\r\n this.personelDetailsForm.controls.ReportingManager.setValue(\r\n this._Associate.ReportingManager\r\n );\r\n }\r\n\r\n let isRMidIsExist;\r\n if (this.managers) {\r\n let rmID = this._Associate.ReportingManager;\r\n isRMidIsExist = this.managers.some(function (el) {\r\n return el.EmpId == rmID;\r\n });\r\n }\r\n if (isRMidIsExist) {\r\n this.personelDetailsForm.controls.ReportingManager.setValue(\r\n this._Associate.ReportingManager\r\n );\r\n }\r\n else {\r\n this.personelDetailsForm.controls.ReportingManager.setValue(null);\r\n }\r\n this.personelDetailsForm.controls.Bgvstatus.setValue(\r\n this._Associate.Bgvstatus\r\n );\r\n\r\n this.personelDetailsForm.controls.BgvStartDate.setValue(\r\n this._Associate.BgvStartDate\r\n );\r\n this.personelDetailsForm.controls.BgvCompletionDate.setValue(\r\n this._Associate.BgvCompletionDate\r\n );\r\n\r\n this.personelDetailsForm.controls.DesignationId.setValue(\r\n this._Associate.DesignationId\r\n );\r\n this.personelDetailsForm\r\n .get(\"contacts\")\r\n [\"controls\"].currentAddress1.setValue(this._Contacts.currentAddress1);\r\n this.personelDetailsForm\r\n .get(\"contacts\")\r\n [\"controls\"].currentAddress2.setValue(this._Contacts.currentAddress2);\r\n this.personelDetailsForm\r\n .get(\"contacts\")\r\n [\"controls\"].currentAddCity.setValue(this._Contacts.currentAddCity);\r\n this.personelDetailsForm\r\n .get(\"contacts\")\r\n [\"controls\"].currentAddState.setValue(this._Contacts.currentAddState);\r\n this.personelDetailsForm\r\n .get(\"contacts\")\r\n [\"controls\"].currentAddCountry.setValue(this._Contacts.currentAddCountry);\r\n this.personelDetailsForm\r\n .get(\"contacts\")\r\n [\"controls\"].currentAddZip.setValue(this._Contacts.currentAddZip);\r\n this.personelDetailsForm\r\n .get(\"contacts\")\r\n [\"controls\"].permanentAddress1.setValue(this._Contacts.permanentAddress1);\r\n this.personelDetailsForm\r\n .get(\"contacts\")\r\n [\"controls\"].permanentAddress2.setValue(this._Contacts.permanentAddress2);\r\n this.personelDetailsForm\r\n .get(\"contacts\")\r\n [\"controls\"].permanentAddCity.setValue(this._Contacts.permanentAddCity);\r\n this.personelDetailsForm\r\n .get(\"contacts\")\r\n [\"controls\"].permanentAddState.setValue(this._Contacts.permanentAddState);\r\n this.personelDetailsForm\r\n .get(\"contacts\")\r\n [\"controls\"].permanentAddCountry.setValue(\r\n this._Contacts.permanentAddCountry\r\n );\r\n this.personelDetailsForm\r\n .get(\"contacts\")\r\n [\"controls\"].permanentAddZip.setValue(this._Contacts.permanentAddZip);\r\n\r\n if (this._Associate.contactDetails) {\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][0].controls.ID.setValue(\r\n this._Associate.contactDetails[0].ID\r\n );\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][0].controls.currentAddress1.setValue(\r\n this._Contacts.currentAddress1\r\n );\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][0].controls.currentAddress2.setValue(\r\n this._Contacts.currentAddress2\r\n );\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][0].controls.currentAddCity.setValue(\r\n this._Contacts.currentAddCity\r\n );\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][0].controls.currentAddState.setValue(\r\n this._Contacts.currentAddState\r\n );\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][0].controls.currentAddCountry.setValue(\r\n this._Contacts.currentAddCountry\r\n );\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][0].controls.currentAddZip.setValue(\r\n this._Contacts.currentAddZip\r\n );\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][1].controls.ID.setValue(\r\n this._Associate.contactDetails[1].ID\r\n );\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][1].controls.permanentAddress1.setValue(\r\n this._Contacts.permanentAddress1\r\n );\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][1].controls.permanentAddress2.setValue(\r\n this._Contacts.permanentAddress2\r\n );\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][1].controls.permanentAddCity.setValue(\r\n this._Contacts.permanentAddCity\r\n );\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][1].controls.permanentAddState.setValue(\r\n this._Contacts.permanentAddState\r\n );\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][1].controls.permanentAddCountry.setValue(\r\n this._Contacts.permanentAddCountry\r\n );\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][1].controls.permanentAddZip.setValue(\r\n this._Contacts.permanentAddZip\r\n );\r\n }\r\n\r\n if (\r\n this.personelDetailsForm.get(\"contactDetails\")[\"controls\"][0].controls\r\n .currentAddress1.value\r\n ) {\r\n if (\r\n this.type == \"edit\" &&\r\n this.personelDetailsForm.get(\"contactDetails\")[\"controls\"][0].controls\r\n .currentAddress1.value ==\r\n this.personelDetailsForm.get(\"contactDetails\")[\"controls\"][1].controls\r\n .permanentAddress1.value\r\n ) {\r\n this.isCheckedSameAddress = true;\r\n } else {\r\n this.isCheckedSameAddress = false;\r\n }\r\n }\r\n\r\n this.personelDetailsForm.updateValueAndValidity();\r\n }\r\n\r\n private _filter(value) {\r\n let filterValue;\r\n if (value && value.Designation) {\r\n filterValue = value.Designation.toLowerCase();\r\n return this.allDesignationsList.filter((option) =>\r\n option.DesignationName.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.allDesignationsList;\r\n }\r\n }\r\n\r\n getAllDesignationsList() {\r\n this._service.getAllDesignationsList().subscribe((resp: GenericType[]) => {\r\n this.allDesignationsList = [];\r\n this.allDesignationsList = resp;\r\n });\r\n }\r\n\r\n clearFields(e, event: any) {\r\n if (e == \"Designation\") {\r\n event.stopPropagation();\r\n this.personelDetailsForm.controls.Designation.reset();\r\n this.RoleTypesByGradeList = [];\r\n this.personelDetailsForm.controls.RoleTypeId.reset();\r\n }\r\n if (e == \"RoleTypeId\") {\r\n event.stopPropagation();\r\n this.personelDetailsForm.controls.RoleTypeId.reset();\r\n }\r\n this.getFilteredDesignationsIds();\r\n\r\n }\r\n\r\n getFilteredDesignationsIds() {\r\n this.filteredDesignationIds = this.personelDetailsForm.valueChanges.pipe(\r\n startWith(\"\"),\r\n map((value) => this._filter(value))\r\n );\r\n }\r\n\r\n getAllGradesList() {\r\n this._service.getAllGradesList().subscribe((resp: GenericType[]) => {\r\n this.allGradessList = [];\r\n this.allGradessList = resp;\r\n });\r\n }\r\n displayFn(user: any) {\r\n return user && user.label ? user.label : '';\r\n }\r\n \r\n getRoleTypesByGrade(grade) {\r\n return;\r\n //COMMENTED BY KALYAN PENUMUTCHU ON 25MAY2024 AS PART OF AWS CLOUD MIGRATION. THIS NEEDS TO BE OPENED UP ONCE KRA MODULE IS DEPLOYED TO CLOUD\r\n /*this.masterDataService.GetRoleTypesByGrade(grade).subscribe((resp: GenericType[]) => {\r\n this.RoleTypesByGradeList = [];\r\n resp['Items'].forEach(element => {\r\n this.RoleTypesByGradeList.push({label:element.RoleTypeName, value: element.RoleTypeId})\r\n \r\n });\r\n },(error) => {\r\n this._snackBar.open(error.error), \"\", {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n }\r\n }); */\r\n }\r\n\r\n getGradeNameAndID(e) {\r\n this.personelDetailsForm.controls.GradeId.setValue(e.GradeId);\r\n this.getRoleTypesByGrade(e.GradeId)\r\n }\r\n\r\n getEmployementTypeeNameNID(e) {\r\n this.personelDetailsForm.controls.EmploymentType.setValue(\r\n e.EmployeeTypeCode\r\n );\r\n }\r\n\r\n showTechnologyField(e) {\r\n if (e.value === 1) {\r\n this.isRequired = true\r\n this.personelDetailsForm.controls.TechnologyId.setValidators([Validators.required]);\r\n }\r\n else {\r\n this.isRequired = false\r\n this.personelDetailsForm.controls.TechnologyId.setValidators([]);\r\n this.personelDetailsForm.controls.TechnologyId.setValue(null\r\n );\r\n }\r\n this.personelDetailsForm.controls['ReportingManager'].reset();\r\n this.GetManagersAndLead(this.personelDetailsForm.controls.DepartmentId.value);\r\n\r\n \r\n }\r\n async GetManagersAndLead(departmentId:number) {\r\n await this.masterDataService\r\n .GetManagersAndCompetencyLeads(departmentId)\r\n .subscribe((res: GenericType[]) => {\r\n this.managers = res;\r\n this.personelDetailsForm.controls.ReportingManager.setValue(this._Associate.ReportingManager);\r\n \r\n });\r\n }\r\n\r\n changeTextToUppercase(field) {\r\n let value = this.personelDetailsForm.controls[field].value.toUpperCase();\r\n this.personelDetailsForm.controls.Pannumber.setValue(value);\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n

Personal Details

\r\n
\r\n
\r\n \r\n First Name*\r\n \r\n First Name is Required\r\n \r\n \r\n
\r\n
\r\n \r\n Middle Name\r\n \r\n \r\n
\r\n
\r\n \r\n Last Name\r\n *\r\n \r\n \r\n Last Name is Required\r\n \r\n \r\n
\r\n
\r\n \r\n Gender\r\n *\r\n \r\n \r\n {{item.ValueName}}\r\n \r\n \r\n Gender is Required\r\n \r\n \r\n
\r\n
\r\n \r\n Birth Date\r\n *\r\n \r\n \r\n \r\n close\r\n \r\n \r\n \r\n Birth Date is Required\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Marital Status\r\n \r\n {{item.ValueName}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Blood Group\r\n *\r\n \r\n \r\n {{item.ValueName}}\r\n \r\n \r\n Blood Group is Required\r\n \r\n \r\n
\r\n
\r\n \r\n Nationality\r\n \r\n Invalid Nationality \r\n \r\n
\r\n
\r\n \r\n Telephone Number\r\n \r\n Invalid Telephone Number \r\n \r\n
\r\n
\r\n \r\n Mobile Number\r\n *\r\n \r\n \r\n Mobile Number is Required\r\n \r\n Mobile Number is Invalid\r\n \r\n \r\n
\r\n
\r\n \r\n Personal Email ID\r\n *\r\n \r\n \r\n Personal Email ID Required/Invalid\r\n \r\n \r\n
\r\n
\r\n \r\n Aadhar Number\r\n \r\n Minimum length should be 12\r\n \r\n
\r\n
\r\n \r\n PAN Number\r\n *\r\n \r\n \r\n Required/Should be 10 characters. Starting with capital letter\r\n \r\n
\r\n
\r\n \r\n Passport Number\r\n \r\n Should be 8 characters. Starting with a capital letter\r\n \r\n
\r\n
\r\n \r\n Passport Issuing Office\r\n \r\n Invalid Passport Issuing Office\r\n \r\n
\r\n
\r\n \r\n Passport Valid Upto\r\n \r\n \r\n close\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n UAN Number\r\n \r\n Should be 12 characters length\r\n \r\n
\r\n
\r\n \r\n PF Number\r\n \r\n Minimum length should be 22\r\n \r\n
\r\n
\r\n \r\n Employment Start Date\r\n *\r\n \r\n \r\n \r\n close\r\n \r\n \r\n \r\n Employment Start Date is Required\r\n \r\n \r\n
\r\n
\r\n \r\n Career Break(In Months Only)\r\n \r\n Invalid Career Break \r\n \r\n
\r\n
\r\n \r\n Employee Code\r\n *\r\n \r\n \r\n Emp Code is Required\r\n Emp Code should be in N/A/C#### Format & minlength is 5 chars\r\n \r\n
\r\n
\r\n \r\n Joining Date\r\n *\r\n \r\n \r\n \r\n close\r\n \r\n \r\n \r\n Joining Date is Required\r\n \r\n \r\n
\r\n
\r\n \r\n HR Advisor\r\n *\r\n \r\n \r\n {{item.Name}}\r\n \r\n HR Advisor is Required\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Designation\r\n *\r\n \r\n \r\n \r\n \r\n \r\n {{item.DesignationName}}\r\n \r\n \r\n \r\n Designation is Required\r\n \r\n \r\n
\r\n
\r\n \r\n Grade\r\n *\r\n \r\n \r\n {{item.GradeName}}\r\n \r\n Grade is Required\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n RoleType\r\n \r\n \r\n \r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Employment Type\r\n *\r\n \r\n \r\n {{item.EmpType}}\r\n \r\n Employment Type * is Required\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Department\r\n *\r\n \r\n \r\n {{item.label}}\r\n \r\n Department is Required\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Reporting Manager\r\n *\r\n \r\n \r\n {{item.EmpName}}\r\n \r\n \r\n Reporting Manager is Required\r\n \r\n \r\n
\r\n
\r\n \r\n BGV Status\r\n \r\n {{bvg.ValueName}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n BGV Start Date\r\n \r\n \r\n close\r\n \r\n \r\n \r\n BGV Start Date is Required\r\n \r\n \r\n
\r\n
\r\n \r\n BGV Completed Date\r\n \r\n \r\n close\r\n \r\n \r\n \r\n BGV Completed Date is Required\r\n \r\n \r\n
\r\n
\r\n \r\n Technology\r\n *\r\n \r\n \r\n {{item.PracticeAreaDescription}}\r\n \r\n \r\n Technology is Required\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n

Current Address

\r\n
\r\n
\r\n
\r\n
\r\n \r\n Address Line1\r\n \r\n \r\n
\r\n
\r\n \r\n Address Line2\r\n \r\n \r\n
\r\n
\r\n \r\n City\r\n \r\n \r\n
\r\n
\r\n \r\n State\r\n \r\n \r\n
\r\n
\r\n \r\n Country\r\n \r\n India\r\n USA\r\n \r\n \r\n
\r\n
\r\n \r\n Zip\r\n \r\n Enter valid Zip\r\n \r\n
\r\n
\r\n
\r\n
\r\n

Permanent Address

\r\n Same As Current Address\r\n
\r\n
\r\n \r\n Address Line1\r\n \r\n \r\n
\r\n
\r\n \r\n Address Line2\r\n \r\n \r\n
\r\n
\r\n \r\n City\r\n \r\n \r\n
\r\n
\r\n \r\n State\r\n \r\n \r\n
\r\n
\r\n \r\n Country\r\n \r\n India\r\n USA\r\n \r\n \r\n
\r\n
\r\n \r\n Zip\r\n \r\n Enter valid Zip\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

Loading ...

\r\n
\r\n","import { Component, OnInit, Inject, ViewChild, Injector } from '@angular/core';\r\n\r\nimport { Projects } from '../../models/assosiateproject.model';\r\nimport { Associate } from '../../models/associate.model';\r\nimport { HttpClient } from '@angular/common/http';\r\n// import { Http } from \"@angular/http\";\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { ProjectassosiateService } from '../../services/projectassosiate.service';\r\n// import { DataStore } from \"../../../shared/datastore\";\r\nimport * as moment from 'moment';\r\nimport { CommonService } from '../../../../core/services/common.service';\r\nimport { MasterDataService } from '../../../../core/services/masterdata.service';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { FormGroup, FormControl, Validators, FormArray, FormGroupDirective } from '@angular/forms';\r\nimport { MatTable } from '@angular/material/table';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { CommonDialogComponent } from '../../../shared/components/common-dialog/common-dialog.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MessageDialogComponent } from 'src/app/modules/project-life-cycle/components/message-dialog/message-dialog.component';\r\nimport { I } from '@angular/cdk/keycodes';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\n\r\ninterface SelectItem {\r\n value: number;\r\n label: string;\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'app-projectassociate',\r\n templateUrl: './projectassociate.component.html',\r\n styleUrls: ['./projectassociate.component.scss'],\r\n providers: [ProjectassosiateService, CommonService, MasterDataService]\r\n})\r\nexport class ProjectassociateComponent implements OnInit {\r\n newCreatedForm: FormGroup;\r\n id: number;\r\n projects: Array;\r\n _Associate = new Associate();\r\n currentempID: number;\r\n // @ViewChild(\"messageToaster\") messageToaster: any;\r\n _resources: any;\r\n _dataService: Array;\r\n private _serverURL: string;\r\n roles: any[] = [];\r\n submitted = false;\r\n type: string = \"new\";\r\n index: number;\r\n buttonType: string;\r\n domainList: SelectItem[] = [];\r\n filterDuplicates: boolean = false;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n addproject: FormGroup;\r\n projectarray: FormArray;\r\n dialogResponse: boolean;\r\n savedmsg: string\r\n displayedColumns: string[] = ['Id', 'DomainId', 'OrganizationName', 'ProjectName', 'Duration', 'KeyAchievements', 'Actions', 'Action'];\r\n //dataSource = USER_INFO;\r\n dataSource;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n iter = 0;\r\n @ViewChild(\"projectsForm\") projectsForm: any;\r\n //@ViewChild(\"projectDialog\") projectDialog: any;\r\n @ViewChild(MatTable) table: MatTable;\r\n\r\n constructor(public dialog: MatDialog,\r\n // @Inject(Http) private _http: Http,\r\n // private _injector: Injector = AppInjector(),\r\n @Inject(ProjectassosiateService) private _service: ProjectassosiateService,\r\n private _commonService: CommonService,\r\n private _snackBar: MatSnackBar,\r\n\r\n private masterDataService: MasterDataService,\r\n @Inject(Router) private _router: Router,\r\n private actRoute: ActivatedRoute,\r\n private spinner: NgxSpinnerService\r\n\r\n ) {\r\n this.projects = new Array();\r\n\r\n this.dataSource = this.projects;\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.spinner.show()\r\n this.actRoute.params.subscribe(params => {\r\n this.id = params.id;\r\n });\r\n // this.id = 218;\r\n this.currentempID = this.id;\r\n this.masterDataService.GetDomains().subscribe((res: any[]) => {\r\n res.forEach((element: any) => {\r\n this.domainList.push({\r\n label: element.DomainName,\r\n value: element.DomainID\r\n });\r\n }\r\n\r\n );\r\n this._service.GetAssociateProjects(this.id).subscribe((res: any) => {\r\n this.spinner.hide()\r\n this.projects = res;\r\n if (this.projects.length !== 0) {\r\n this.type = 'edit';\r\n }\r\n if (this.projects.length === 0) {\r\n this.type = 'new';\r\n }\r\n if (this.projects.length == 0) {\r\n this.projects.push({\r\n Id: 0,\r\n Duration: null,\r\n RoleMasterId: '',\r\n OrganizationName: '',\r\n ProjectName: '',\r\n RoleName: '',\r\n KeyAchievements: '',\r\n DomainId: null\r\n });\r\n }\r\n this.createInitialform();\r\n this.createFormGroup();\r\n this.dataSource = this.projects;\r\n },(error)=>{\r\n this.spinner.hide()\r\n });\r\n },(error)=>{\r\n this.spinner.hide()\r\n });\r\n this.createInitialform();\r\n\r\n }\r\n createInitialform() {\r\n this.addproject = new FormGroup({\r\n projectarray: new FormArray([])\r\n });\r\n }\r\n\r\n createFormGroup() {\r\n this.projectarray = new FormArray([]);\r\n this.projects.forEach(element => {\r\n this.projectarray = this.addproject.get('projectarray') as FormArray;\r\n this.projectarray.push(this.BuildForm(element));\r\n });\r\n }\r\n\r\n BuildForm(element): any {\r\n // tslint:disable-next-line:max-line-length\r\n element = element || { Id: 0, Duration: null, RoleMasterId: '', OrganizationName: '', ProjectName: '', RoleName: '', KeyAchievements: '', DomainId: null };\r\n return new FormGroup({\r\n DomainID: new FormControl(element.DomainId, [Validators.required]),\r\n OrganizationName: new FormControl(element.OrganizationName, [Validators.required, Validators.maxLength(100)]),\r\n ProjectName: new FormControl(element.ProjectName, [Validators.required, Validators.maxLength(25), Validators.pattern('[a-zA-Z0-9 ]+')]),\r\n duration: new FormControl(element.Duration, [Validators.required, Validators.maxLength(3), Validators.pattern('^[1-9][0-9]*$')]),\r\n keyAchievement: new FormControl(element.KeyAchievements, [Validators.required, Validators.pattern('[a-zA-Z ]+')]),\r\n\r\n });\r\n }\r\n\r\n get testArray(): FormArray {\r\n return this.addproject.get('projectarray') as FormArray;\r\n }\r\n\r\n setValueDomainID(i: any) {\r\n this.addproject.get('DomainID').patchValue(this.projects[i].DomainId);\r\n\r\n }\r\n setValueOrganizationName(i: any) {\r\n this.addproject.get('OrganizationName').patchValue(this.projects[i].OrganizationName);\r\n }\r\n setValueProjectName(i: any) {\r\n this.addproject.get('ProjectName').patchValue(this.projects[i].ProjectName);\r\n }\r\n setValueduration(i: any) {\r\n this.addproject.get('duration').patchValue(this.projects[i].Duration);\r\n }\r\n setValuekeyAchievement(i: any) {\r\n this.addproject.get('keyAchievement').patchValue(this.projects[i].KeyAchievements);\r\n }\r\n\r\n\r\n getDomainList() {\r\n\r\n this.masterDataService.GetDomains().subscribe((res: any[]) => {\r\n res.forEach((element: any) => {\r\n this.domainList.push({\r\n label: element.DomainName,\r\n value: element.DomainID\r\n });\r\n }\r\n\r\n );\r\n });\r\n if (this.projects.length !== 0) {\r\n this.type = 'edit';\r\n } else {\r\n this.type = 'new';\r\n }\r\n }\r\n\r\n filterProjectDuplicates(project: Projects): boolean {\r\n if (\r\n this.projects.length > 0 &&\r\n project &&\r\n project.DomainId != null &&\r\n project.OrganizationName !== '' &&\r\n project.ProjectName !== ''\r\n ) {\r\n project.OrganizationName = project.OrganizationName.trim();\r\n project.ProjectName = project.ProjectName.trim();\r\n let projectList: Projects[] = this.projects.filter((projectOfList: Projects) => {\r\n return (\r\n projectOfList.DomainId == project.DomainId &&\r\n projectOfList.OrganizationName.toLowerCase() === project.OrganizationName.toLowerCase() &&\r\n projectOfList.ProjectName.toLowerCase() === project.ProjectName.toLowerCase()\r\n );\r\n })\r\n if (projectList.length > 1) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n OnSubmit(project: Projects[]) {\r\n if (project.length > 0) {\r\n this.filterDuplicates = this.filterProjectDuplicates(\r\n project[project.length - 1]\r\n );\r\n }\r\n // if (project.length >= 1) {\r\n // this.type='edit'\r\n // }\r\n if (this.type === 'new') {\r\n this.buttonType = 'Save';\r\n }\r\n else {\r\n this.type = 'edit'\r\n this.buttonType = 'Update';\r\n }\r\n\r\n if (this.filterDuplicates === true) {\r\n alert('warn check dup project details');\r\n // this.messageService.add({ severity: 'warn', summary: 'Warning Message', detail: 'Please check Duplicates projects details' });\r\n // swal(\"Please check Duplicates\", \"\", \"error\");\r\n return false;\r\n }\r\n\r\n if (this.buttonType === \"Save\" || this.buttonType === \"Update\") {\r\n this.onSaveorUpdate(this.projects);\r\n return true;\r\n }\r\n\r\n }\r\n\r\n OnUpdate() {\r\n this.buttonType = \"Update\";\r\n }\r\n\r\n OnSave() {\r\n this.buttonType = \"Save\";\r\n }\r\n\r\n setNewProjectButtonType() {\r\n this.buttonType = \"AddNewProject\";\r\n }\r\n\r\n onNewProject() {\r\n if (this.newCreatedForm != undefined) {\r\n this.newCreatedForm.markAllAsTouched();\r\n this.setProjectRequiredValidations('DomainID', this.newCreatedForm);\r\n this.setProjectRequiredValidations('OrganizationName', this.newCreatedForm);\r\n this.setProjectRequiredValidations('ProjectName', this.newCreatedForm);\r\n this.setProjectRequiredValidations('duration', this.newCreatedForm);\r\n this.setProjectRequiredValidations('keyAchievement', this.newCreatedForm);\r\n }\r\n if (this.addproject.controls.projectarray.valid) {\r\n this.projects.push({\r\n Id: 0,\r\n Duration: null,\r\n RoleMasterId: \"\",\r\n OrganizationName: \"\",\r\n ProjectName: \"\",\r\n RoleName: \"\",\r\n KeyAchievements: \"\",\r\n DomainId: null\r\n });\r\n this.projectarray = this.addproject.get('projectarray') as FormArray;\r\n this.projectarray.push(this.newCreatedForm = this.BuildForm({\r\n Id: 0,\r\n Duration: null,\r\n RoleMasterId: \"\",\r\n OrganizationName: \"\",\r\n ProjectName: \"\",\r\n RoleName: \"\",\r\n KeyAchievements: \"\",\r\n DomainId: null\r\n }));\r\n this.dynamicProjectValidations('DomainID', this.newCreatedForm);\r\n this.dynamicProjectValidations('OrganizationName', this.newCreatedForm);\r\n this.dynamicProjectValidations('ProjectName', this.newCreatedForm);\r\n this.dynamicProjectValidations('duration', this.newCreatedForm);\r\n this.dynamicProjectValidations('keyAchievement', this.newCreatedForm);\r\n this.dataSource = this.projects;\r\n this.table.renderRows();\r\n return false;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n dynamicProjectValidations(projControl: string, newFormProjValidate: FormGroup) {\r\n newFormProjValidate.controls[projControl].setErrors(null);\r\n newFormProjValidate.controls[projControl].clearValidators();\r\n newFormProjValidate.controls[projControl].updateValueAndValidity();\r\n }\r\n\r\n setProjectRequiredValidations(projFormControl: string, newProjDetails: FormGroup) {\r\n newProjDetails.controls[projFormControl].setValidators([Validators.required])\r\n newProjDetails.controls[projFormControl].updateValueAndValidity();\r\n if (projFormControl === 'DomainID') {\r\n newProjDetails.controls[projFormControl].setValidators([Validators.required])\r\n newProjDetails.controls[projFormControl].updateValueAndValidity();\r\n }\r\n else if (projFormControl === 'OrganizationName') {\r\n newProjDetails.controls[projFormControl].setValidators([Validators.required, Validators.maxLength(100)])\r\n newProjDetails.controls[projFormControl].updateValueAndValidity();\r\n }\r\n else if (projFormControl === 'ProjectName') {\r\n newProjDetails.controls[projFormControl].setValidators([Validators.required, Validators.maxLength(25), Validators.pattern('[a-zA-Z0-9 ]+')])\r\n newProjDetails.controls[projFormControl].updateValueAndValidity();\r\n }\r\n else if (projFormControl === 'duration') {\r\n newProjDetails.controls[projFormControl].setValidators([Validators.required, Validators.maxLength(3), Validators.pattern('^[1-9][0-9]*$')])\r\n newProjDetails.controls[projFormControl].updateValueAndValidity();\r\n }\r\n else if (projFormControl === 'keyAchievement') {\r\n newProjDetails.controls[projFormControl].setValidators([Validators.required, Validators.pattern('[a-zA-Z ]+')])\r\n newProjDetails.controls[projFormControl].updateValueAndValidity();\r\n }\r\n }\r\n\r\n onSaveorUpdate(qual: Array) {\r\n if (this.type === 'new') {\r\n this.buttonType = 'Save';\r\n }\r\n else {\r\n this.buttonType = 'Update';\r\n }\r\n if (this.newCreatedForm !== undefined) {\r\n this.setProjectRequiredValidations('DomainID', this.newCreatedForm);\r\n this.setProjectRequiredValidations('OrganizationName', this.newCreatedForm);\r\n this.setProjectRequiredValidations('ProjectName', this.newCreatedForm);\r\n this.setProjectRequiredValidations('duration', this.newCreatedForm);\r\n this.setProjectRequiredValidations('keyAchievement', this.newCreatedForm);\r\n }\r\n for (var i = 0; i < qual.length; i++) {\r\n if (\r\n !qual[i].ProjectName ||\r\n !qual[i].OrganizationName ||\r\n !qual[i].Duration ||\r\n qual[i].Duration == 0 ||\r\n qual[i].Duration.toString().charAt(0) == '0' ||\r\n !qual[i].KeyAchievements || qual[i].KeyAchievements.trim().length == 0 ||\r\n !qual[i].DomainId\r\n ) {\r\n // this.messageService.add({ severity: 'warn', summary: 'Warning Message', detail: 'Please provide complete details' });\r\n // swal(\"Please provide complete details\", \"\", \"error\");\r\n return false;\r\n }\r\n }\r\n if (this.filterDuplicates === true) {\r\n this._snackBar.open('Please check Duplicates project details', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({ severity: 'warn', summary: 'Warning Message', detail: 'Please check Duplicates projects details' });\r\n // swal(\"Please check Duplicates\", \"\", \"error\");\r\n return false;\r\n }\r\n this._Associate.EmpId = this.currentempID;\r\n this._Associate.Projects = [];\r\n for (var i = 0; i < qual.length; i++) {\r\n this._Associate.Projects.push(qual[i]);\r\n }\r\n\r\n this._service.SaveProjectDetails(this._Associate).subscribe(\r\n data => {\r\n if (this.type == \"new\")\r\n this.savedmsg = \"Project details saved successfully.\"\r\n else\r\n this.savedmsg = \"Project details updated successfully.\"\r\n\r\n this._snackBar.open(this.savedmsg, 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.getDomainList();\r\n\r\n },\r\n error => {\r\n this._snackBar.open('Failed to save projects details', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n }\r\n );\r\n\r\n // return false;\r\n }\r\n\r\n Delete(index: number) {\r\n this.index = index;\r\n this.openDialog('Confirmation', 'Do you want to Delete ?', index);\r\n }\r\n\r\n\r\n openDialog(Heading, Message, index): void {\r\n const dialogRef = this.dialog.open(CommonDialogComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n width: '300px',\r\n data: { heading: Heading, message: Message }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.dialogResponse = result;\r\n if (this.dialogResponse == true) {\r\n this.projects.splice(this.index, 1);\r\n this.dataSource = this.projects;\r\n this.projectarray.removeAt(this.index);\r\n this.table.renderRows();\r\n const dialogConf = this.dialog.open(MessageDialogComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n width: '300px',\r\n data: { heading: 'Confirmation', message: 'Project details deleted successfully' }\r\n })\r\n }\r\n });\r\n }\r\n\r\n\r\n onlyNumbers(event: any) {\r\n this._commonService.onlyNumbers(event);\r\n }\r\n\r\n onRoleChage(event: any, selectedProject: any) {\r\n let roleId = event.target.value;\r\n let count = this.validate(selectedProject.projectName, roleId);\r\n if (count == 1) {\r\n event.target.value = \"\";\r\n this._snackBar.open('Duplicate projects are not allowed', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({ severity: 'warn', summary: 'warning Message', detail: 'Duplicate project are not allowed' });\r\n // swal(\"\", \"Duplicate project are not allowed\", \"warning\");\r\n }\r\n }\r\n onProjectChange(event: any, selectedProject: any) {\r\n let count = this.validate(\r\n selectedProject.projectName,\r\n selectedProject.roleID\r\n );\r\n if (count == 2) {\r\n selectedProject.projectName = \"\";\r\n this._snackBar.open('Duplicate projetcs are not allowed', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({ severity: 'warn', summary: 'warning Message', detail: 'Duplicate project are not allowed' });\r\n // swal(\"\", \"Duplicate project are not allowed\", \"warning\");\r\n }\r\n }\r\n validate(projectName: any, roleId: any): number {\r\n let count = 0;\r\n\r\n this.projects.forEach((p: any) => {\r\n if (\r\n p.projectName.toUpperCase() === projectName.toUpperCase() &&\r\n p.roleID === roleId\r\n ) {\r\n count++;\r\n }\r\n });\r\n return count;\r\n }\r\n\r\n omit_special_char(event: any) {\r\n let k: any;\r\n k = event.charCode; // k = event.keyCode; (Both can be used)\r\n return (\r\n (k > 64 && k < 91) ||\r\n (k > 96 && k < 123) ||\r\n k === 8 ||\r\n k === 32 ||\r\n k === 46 ||\r\n k === 44 ||\r\n (k >= 48 && k <= 57)\r\n );\r\n }\r\n\r\n}\r\n\r\n","
\r\n
\r\n

Projects

\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 \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 \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
S.no {{i+1}} Domain Name *\r\n \r\n \r\n \r\n {{g.label}}\r\n \r\n Domain Name is Required\r\n \r\n Organisation Name *\r\n \r\n \r\n Organization Name is Required\r\n \r\n Project Name * \r\n \r\n \r\n Project Name is Required\r\n Maximum 25 characters allowed\r\n Enter Valid Project Name\r\n\r\n \r\n Duration(months) *\r\n \r\n \r\n Duration is Required\r\n Should be more than 0 and should not start with 0\r\n\r\n \r\n Key Achievements *\r\n \r\n \r\n Key achievements is Required\r\n Enter Valid Key achievements\r\n\r\n \r\n Actions \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

Loading ...

\r\n
\r\n \r\n ","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { ProspectiveAssosiateService } from '../../services/prospective-assosiate.service';\r\nimport { NavService } from '../../../master-layout/services/nav.service';\r\nimport { Associate } from '../../models/associate.model';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\n\r\nimport { FormGroupDirective } from '@angular/forms';\r\n\r\nimport * as moment from 'moment';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\n@Component({\r\n selector: 'app-prospective-associate',\r\n templateUrl: './prospective-associate.component.html',\r\n styleUrls: ['./prospective-associate.component.scss']\r\n})\r\nexport class ProspectiveAssociateComponent implements OnInit {\r\n prosAssociatesList: any[];\r\n\r\n displayedColumns: string[] = [\r\n 'EmpName',\r\n 'Designation',\r\n 'Department',\r\n 'JoiningDate',\r\n 'HRAdvisorName',\r\n 'Edit',\r\n 'Confirm'\r\n ];\r\n\r\n dataSource: MatTableDataSource;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n constructor(private _ProspectiveAssosiateService: ProspectiveAssosiateService, public navService: NavService, private _router: Router, private spinner: NgxSpinnerService) {\r\n this.getprosAssociatesDetails();\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getprosAssociatesDetails();\r\n }\r\n getprosAssociatesDetails() {\r\n this.spinner.show();\r\n this._ProspectiveAssosiateService.list().subscribe((res: any) => {\r\n this.prosAssociatesList = res;\r\n this.prosAssociatesList.forEach((r: any) => {\r\n r.joiningDate = moment(r.joiningDate, 'DD/MM/YYYY').format('YYYY-MM-DD');\r\n });\r\n\r\n this.dataSource = new MatTableDataSource(this.prosAssociatesList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.spinner.hide();\r\n // this.dataSource.sortingDataAccessor = (data, header) => data[header].toLowerCase();\r\n this.dataSource.sortingDataAccessor = (data: any, sortHeaderId: string): string => {\r\n if (typeof data[sortHeaderId] === 'string') {\r\n return data[sortHeaderId].toLocaleLowerCase();\r\n }\r\n \r\n return data[sortHeaderId];\r\n };\r\n\r\n });\r\n }\r\n\r\n onEdit(selectedData: any) {\r\n this._router.navigate(['/associates/editprospectiveassociate/' + selectedData.Id]);\r\n }\r\n\r\n onAdd() {\r\n this._router.navigate(['/associates/addprospectiveassociate']);\r\n }\r\n onConfirm(currentAssociate: Associate) {\r\n let subType = \"profile\";\r\n currentAssociate.associateType = currentAssociate.EmpId != 0 ? \"edit\" : \"new\";\r\n currentAssociate.Id = currentAssociate.EmpId == 0 ? currentAssociate.Id : currentAssociate.EmpId;\r\n this._router.navigate(['/associates/prospectivetoassociate/' + currentAssociate.associateType + '/' + currentAssociate.Id + '/' + subType]);\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n if (filterValue) {\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n else {\r\n this.dataSource = new MatTableDataSource(this.prosAssociatesList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n // this.dataSource.sortingDataAccessor = (data, header) => data[header].toLowerCase();\r\n this.dataSource.sortingDataAccessor = (data: any, sortHeaderId: string): string => {\r\n if (typeof data[sortHeaderId] === 'string') {\r\n return data[sortHeaderId].toLocaleLowerCase();\r\n }\r\n \r\n return data[sortHeaderId];\r\n };\r\n }\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.prosAssociatesList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n // this.dataSource.sortingDataAccessor = (data, header) => data[header].toLowerCase();\r\n this.dataSource.sortingDataAccessor = (data: any, sortHeaderId: string): string => {\r\n if (typeof data[sortHeaderId] === 'string') {\r\n return data[sortHeaderId].toLocaleLowerCase();\r\n }\r\n \r\n return data[sortHeaderId];\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 \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 \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
Name {{prospEmp.EmpName}} Designation {{prospEmp.Designation}} Department {{prospEmp.DepartmentDesc}} Joining Date {{prospEmp.JoiningDate}} Advisor {{prospEmp.HRAdvisorName}} Edit \r\n edit\r\n Confirm \r\n \r\n
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n

Loading ...

\r\n
","import {Component, OnInit, Input, ChangeDetectorRef, ViewChild, ElementRef} from '@angular/core';\r\nimport {FormBuilder, FormGroup, Validators} from '@angular/forms';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { MatStepper } from '@angular/material/stepper';\r\nimport { StepperSelectionEvent } from '@angular/cdk/stepper';\r\n\r\n\r\n@Component({\r\n selector: 'app-prospective-to-associate',\r\n templateUrl: './prospective-to-associate.component.html',\r\n styleUrls: ['./prospective-to-associate.component.scss']\r\n})\r\nexport class ProspectiveToAssociateComponent implements OnInit {\r\n\r\n items: any[];\r\n private subType: string;\r\n activeIndex: number = 0;\r\n public Type: string;\r\n\r\n @ViewChild('step1') step1;\r\n @ViewChild('step8') step8;\r\n isLinear = false;\r\n\r\n\r\n constructor(private _formBuilder: FormBuilder,private _router: Router, private actRoute: ActivatedRoute, private cdr: ChangeDetectorRef) {}\r\n\r\n ngOnInit() {\r\n\r\n this.actRoute.params.subscribe(params => { this.Type = params['type']; });\r\n this.actRoute.params.subscribe(params => { this.subType = params['subtype']; });\r\n if(this.Type === 'new')\r\n {\r\n this.isLinear = true;\r\n }\r\n else{\r\n this.isLinear = false;\r\n }\r\n\r\n }\r\n ngAfterViewChecked(){\r\n this.cdr.detectChanges();\r\n }\r\n stepChanged(event) {\r\n if (this.Type === 'edit'){\r\n event.previouslySelectedStep.interacted = false;\r\n this.activeIndex = event.selectedIndex;\r\n\r\n }\r\n if(event.selectedIndex === 7){\r\n this.step8.getPAStatus();\r\n }\r\n }\r\n onSelect(event) {\r\n if (this.Type === 'new') {\r\n this.activeIndex = 0;\r\n event.selectedStep._editable = 'false';\r\n return;\r\n }\r\n this.activeIndex = event.selectedIndex;\r\n}\r\n\r\n\r\nonAssociateSave(data: any) {\r\n this.Type = 'edit';\r\n this.isLinear = false;\r\n}\r\nonBack() {\r\n if (this.subType == \"profile\") this._router.navigate(['/associates/prospectiveassociate']);\r\n else if (this.subType == \"profileupdate\") this._router.navigate(['/associates/associatejoining']);\r\n else if (this.subType == \"list\") this._router.navigate(['/associates/associateinformation']);\r\n else if (this.subType == \"EPU\") this._router.navigate([\"/shared/dashboard\"]);\r\n else this._router.navigate([\"/associates/prospectiveassociate/list\"]);\r\n}\r\n\r\ngoBack(stepper: MatStepper){\r\n stepper.previous();\r\n}\r\n\r\ngoForward(stepper: MatStepper){\r\n stepper.next();\r\n}\r\n}","\r\n
\r\n \r\n\r\n \r\n\r\n \r\n
\r\n \r\n \r\n Personal\r\n \r\n \r\n \r\n \r\n \r\n Family\r\n \r\n \r\n \r\n \r\n \r\n Education\r\n \r\n \r\n \r\n \r\n \r\n Employment\r\n \r\n \r\n \r\n \r\n \r\n Professional\r\n \r\n \r\n \r\n \r\n \r\n Projects\r\n \r\n \r\n \r\n \r\n \r\n Skills\r\n \r\n \r\n \r\n \r\n \r\n Upload Documents\r\n \r\n \r\n \r\n \r\n \r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { FormArray, FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { Router } from '@angular/router';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { AssociateAttendanceReportService } from 'src/app/modules/reports/services/associate-attendance-report.service';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { NotPunchInDate, AttendanceRegularization } from '../../models/regularization.model';\r\nimport { RegularizationService } from '../../services/regularization.service'\r\n\r\n@Component({\r\n selector: 'app-regulariation',\r\n templateUrl: './regulariation.component.html',\r\n styleUrls: ['./regulariation.component.scss']\r\n})\r\nexport class RegulariationComponent implements OnInit {\r\n Locations = ['Work From Home'];\r\n regularizationForm : FormGroup;\r\n dateWiseRegularization : FormArray;\r\n toBeRegularizedDays = [];\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n exportFromTime = { hour: 9, minute: 1, meriden: 'PM', format: 24 };\r\n exportToTime = { hour: 18, minute: 1, meriden: 'PM', format: 24 };\r\n reportingManagers = [{label : '', value : null}]\r\n notPunchInReqObj : NotPunchInDate = new NotPunchInDate();\r\n applyRegularization : AttendanceRegularization = new AttendanceRegularization();\r\n employeeCode : string;\r\n startDate:string;\r\n endDate:string;\r\n private unsubscribe$: Subject = new Subject();\r\n\r\n constructor(private formBuilder : FormBuilder, \r\n private service : RegularizationService,\r\n private _snackBar : MatSnackBar,\r\n private associateAttendanceReport : AssociateAttendanceReportService,\r\n private router : Router) { }\r\n\r\n ngOnInit(): void {\r\n this.employeeCode = JSON.parse(\r\n sessionStorage.AssociatePortal_UserInformation\r\n ).employeeCode;\r\n this.createForm();\r\n // this.getAbsentDays();\r\n this.getDatesRange();\r\n }\r\n\r\n getDatesRange(){\r\n this.associateAttendanceReport.attendanceDataObservable.pipe(takeUntil(this.unsubscribe$)).subscribe((res:any)=>{\r\n if(Object.keys(res).length > 0){\r\n this.startDate = res.filter.FromDate;\r\n this.endDate = res.filter.ToDate;\r\n this.getAbsentDays();\r\n } \r\n }) \r\n }\r\n\r\n createForm(){\r\n this.regularizationForm = new FormGroup({\r\n reportingManager : new FormControl(1,[Validators.required]),\r\n remarksByReportingManager : new FormControl(),\r\n dateWiseRegularization : new FormArray([]),\r\n })\r\n \r\n }\r\n \r\n \r\n applyDateWiseRegularization(): FormGroup {\r\n return this.formBuilder.group({\r\n Location: new FormControl({value: 'Work From Home', disabled:true},[Validators.required]),\r\n date : new FormControl(),\r\n fromTime:new FormControl(\"09:01\",[Validators.required]),\r\n toTime : new FormControl(\"18:01\",Validators.required),\r\n Remarks : new FormControl()\r\n });\r\n }\r\n\r\n onDelete(index:number){\r\n const remove = this.regularizationForm.get('dateWiseRegularization') as FormArray;\r\n remove.removeAt(index);\r\n console.log(this.regularizationForm,index,remove.length)\r\n if(index == 0 && remove.length == 0){\r\n this.toBeRegularizedDays = [];\r\n }\r\n\r\n }\r\n\r\n getAbsentDays(){\r\n this.toBeRegularizedDays = [];\r\n this.notPunchInReqObj = new NotPunchInDate();\r\n this.notPunchInReqObj.associateId = this.employeeCode;\r\n // this.notPunchInReqObj.fromDate = \"2023-09-6T07:13:06.671Z\";\r\n // this.notPunchInReqObj.toDate = \"2023-09-26T07:13:06.671Z\";\r\n this.notPunchInReqObj.fromDate = this.startDate;\r\n this.notPunchInReqObj.toDate = this.endDate;\r\n this.service.GetNotPunchInDate(this.notPunchInReqObj).subscribe((res:any)=>{\r\n this.reportingManagers[0].label =res.ReportingManager;\r\n this.reportingManagers[0].value = res.ReportingManagerId\r\n this.toBeRegularizedDays = res.AttendanceRegularizationDates;\r\n this.buildForm();\r\n })\r\n // let res = { \r\n // \"ReportingManagerId\": 172, \r\n // \"reportingManager\": \"Kalyan Penumutchu\", \r\n // \"AttendanceRegularizationDates\": \r\n // [ \r\n // \"2023-09-01\", \r\n // \"2023-09-02\", \r\n // \"2023-09-03\",\r\n // \"2023-09-04\", \r\n // \"2023-09-05\",\r\n // \"2023-09-06\", \r\n // \"2023-09-07\", \r\n // \"2023-09-08\", \r\n // \"2023-09-09\", \r\n // \"2023-09-10\", \r\n // \"2023-09-11\" \r\n // ]\r\n // }\r\n // this.toBeRegularizedDays = res.AttendanceRegularizationDates;\r\n // this.buildForm();\r\n \r\n }\r\n\r\n buildForm(){\r\n this.regularizationForm = new FormGroup({\r\n reportingManager : new FormControl(this.reportingManagers[0].value,[Validators.required]),\r\n remarksByReportingManager : new FormControl(),\r\n dateWiseRegularization : new FormArray([]),\r\n })\r\n\r\n for(let i=0;i {\r\n let reqObj = new AttendanceRegularization();\r\n reqObj.RegularizationAppliedDate = element.date; \r\n var location=this.dateWiseRegularization.controls[0][\"controls\"].Location.value;\r\n if(location == 'Work From Home'){\r\n reqObj.Location = 'WFH'\r\n } \r\n reqObj.InTime = element.fromTime;\r\n reqObj.OutTime = element.toTime;\r\n reqObj.Remarks = element.Remarks;\r\n reqObj.RemarksByRM = this.regularizationForm.value.remarksByReportingManager;\r\n reqObj.SubmittedTo = this.regularizationForm.value.reportingManager;\r\n reqObj.SubmittedBy = this.employeeCode\r\n saveAttendanceRegularization.push(reqObj);\r\n });\r\n this.service.saveAttendanceRegularizationDetails(saveAttendanceRegularization).subscribe((res)=>{\r\n this.getAbsentDays();\r\n this._snackBar.open(\r\n 'Sucessfully Applied Regularization',\r\n 'x',\r\n {\r\n duration: 3000,\r\n panelClass : ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n },\r\n (error)=>{\r\n this.getAbsentDays();\r\n this._snackBar.open(\r\n 'Failed Applying Regularization',\r\n 'x',\r\n {\r\n duration: 3000,\r\n panelClass : ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n })\r\n }\r\n\r\n goBack(){\r\n this.router.navigate(['/associates/viewAttendance'])\r\n }\r\n\r\n}\r\n","
\r\n\r\n
\r\n

Hurray! No Actions To Perform

\r\n
\r\n
\r\n
0\">\r\n\r\n\r\n\r\n\r\n\r\n \r\n
\r\n arrow_back

Reporting Manager : {{reportingManagers[0].label}}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n Date\r\n *\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Location\r\n *\r\n \r\n \r\n {{item}}\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
\r\n \r\n Remarks\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 { Component, ContentChildren, ElementRef, Inject, OnInit, QueryList, ViewChild } from '@angular/core';\r\nimport { FormBuilder, Validators } from '@angular/forms';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { title } from 'process';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { SendMailModel } from '../../models/sendmail.model';\r\nimport { AssociateInformationService } from '../../services/associateInformation.service';\r\n@Component({\r\n selector: 'app-send-email',\r\n templateUrl: './send-email.component.html',\r\n styleUrls: ['./send-email.component.scss']\r\n})\r\nexport class SendEmailComponent implements OnInit {\r\n element:any;\r\n image:string;\r\n formData:FormData;\r\n uploadForm:any;\r\n imageView:any;\r\n isEditClicked:boolean = false;\r\n isEmpNameEdit:boolean = false;\r\n isDesignationEdit:boolean = false;\r\n isHighQualificationEdit:boolean=false;\r\n isInstitutionEdit:boolean=false;\r\n isExperienceEdit:boolean=false;\r\n isPrevEmpDesignationEdit:boolean=false;\r\n isSkillNameEdit:boolean=false;\r\n isDepartmentEdit:boolean=false;\r\n isPrevEmpDetailsEdit:boolean=false;\r\n isPronoun:string;\r\n isPossessivePronoun:string;\r\n isJoiningDateEdit:boolean=false;\r\n joiningDate:any;\r\n saluation: string;\r\n empfirstName: string;\r\n emplastName: string;\r\n skillLists:string[]=[];\r\n certificationList=[];\r\n bioContent:string;\r\n myTable:string;\r\n emptyValue:string=' ';\r\n isReportingEditClicked:boolean = false;\r\n reportingManagerName:string;\r\n @ViewChild('emailcontent') content;\r\n @ViewChild('emailsubject') subject;\r\n @ViewChild('sendmailcontent') sendmailcontent;\r\n @ViewChild('joinDate') joinDate;\r\n welcomeMessage:string='Welcome to Seneca Global';\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n emailStr: string;\r\n fileToUpload: File;\r\n files: any;\r\n constructor(\r\n private fb: FormBuilder,\r\n public dialogRef: MatDialogRef,\r\n private associateInformationService:AssociateInformationService,\r\n private _snackBar: MatSnackBar,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n ) { \r\n if (data.element) {\r\n this.element = this.data.element;\r\n this.isPronoun = this.element.Gender==='Male'?'He':'She';\r\n this.saluation = this.element.Gender==='Male'?'Mr.':'Ms.';\r\n const nameSplit:number=this.element.EmpName.lastIndexOf(' ');\r\n this.empfirstName = this.element.EmpName.slice(0,nameSplit);\r\n this.emplastName = this.element.EmpName.slice(nameSplit+1,this.element.EmpName.length);\r\n const qualificationObj:any={'CertificationName':'','Specialization':''};\r\n qualificationObj.CertificationName=this.element.HighestQualification;\r\n qualificationObj.Specialization=this.element.Institution;\r\n this.certificationList.push(qualificationObj);\r\n this.element.SkillName.map((element)=>{\r\n this.skillLists.push(element.Skillname)\r\n })\r\n \r\n this.element.CertificationList.map((element)=>{\r\n this.certificationList.push(element);\r\n })\r\n this.myTable = \"\";\r\n for(var i=0;i

'+\r\n ''+this.certificationList[i].CertificationName+'

'+\r\n '

'+this.certificationList[i].Specialization+'

';\r\n this.myTable=this.myTable+td;\r\n }\r\n\r\n this.isPossessivePronoun = this.element.Gender==='Male'?'him':'her';\r\n //this.joinDate = new Date(this.element.JoiningDate);\r\n const joiningDate = this.element.JoiningDate.split('-');\r\n this.joiningDate = joiningDate[1]+'/'+joiningDate[0]+'/'+joiningDate[2];\r\n\r\n }\r\n }\r\n\r\n\r\n ngOnInit(): void {\r\n this.uploadForm = this.fb.group({\r\n avatar: ['',Validators.required]\r\n })\r\n }\r\n\r\n onFileChange(event) {\r\n\r\n if (event.target.files.length > 0) {\r\n\r\n this.files = event.target.files[0];\r\n if(this.files.type==='image/png'||this.files.type==='image/jpg'\r\n ||this.files.type==='image/jpeg'){\r\n this.uploadForm.get('avatar').setValue(this.files);\r\n if (event.target.files && event.target.files[0]) {\r\n var reader = new FileReader();\r\n \r\n reader.readAsDataURL(event.target.files[0]); // read file as data url\r\n \r\n reader.onload = (event) => { // called once readAsDataURL is completed\r\n this.imageView = event.target.result;\r\n }\r\n }\r\n }else{\r\n this._snackBar.open('Please upload image(jpg/png/jpeg) files only.'), \"x\", {\r\n duration: 5000,\r\n horizontalPosition: \"right\",\r\n panelClass: ['error-alert'],\r\n verticalPosition: \"top\",\r\n }\r\n }\r\n \r\n\r\n }\r\n // this._snackBar.open(error.error), \"\", {\r\n // duration: 1000,\r\n // panelClass:['error-alert'],\r\n // horizontalPosition: \"right\",\r\n // verticalPosition: \"top\",\r\n // }\r\n // });\r\n\r\n }\r\n\r\n cancel(){\r\n this.dialogRef.close();\r\n }\r\n onUploadBanner(e) {\r\n this.fileToUpload = e.target.files[0];\r\n}\r\n\r\nonSelectFile(event) {\r\n this.fileToUpload = event.target.files[0];\r\n this.formData = new FormData();\r\n this.formData.append('fileName',this.fileToUpload.name);\r\n this.formData.append('fileType',this.fileToUpload.type);\r\n this.formData.forEach(function(index,value){\r\n console.log(index +' '+value);\r\n});\r\n if (event.target.files && event.target.files[0]) {\r\n var reader = new FileReader();\r\n\r\n reader.readAsDataURL(event.target.files[0]); // read file as data url\r\n\r\n reader.onload = (event) => { // called once readAsDataURL is completed\r\n this.imageView = event.target.result;\r\n }\r\n }\r\n}\r\n\r\nisReportingEdit(e){\r\nthis.isReportingEditClicked = true;\r\n}\r\n\r\nreportingManagerEdit(e){\r\n this.isReportingEditClicked = false;\r\n}\r\n\r\nisQualificationEdit(e){\r\n this.isEditClicked = true;\r\n this.isEmpNameEdit=e.target.title==='Emp Name'?true:false;\r\n this.isDesignationEdit=e.target.title==='Designation'?true:false;\r\n this.isHighQualificationEdit=e.target.title==='HighestQualification'?true:false;\r\n this.isInstitutionEdit=e.target.title==='Institution'?true:false;\r\n this.isExperienceEdit=e.target.title==='Experience'?true:false;\r\n this.isPrevEmpDesignationEdit=e.target.title==='PrevEmploymentDesignation'?true:false;\r\n this.isSkillNameEdit=e.target.title==='SkillName'?true:false;\r\n this.isDepartmentEdit=e.target.title==='Department'?true:false;\r\n this.isPrevEmpDetailsEdit=e.target.title==='PrevEmployeeDetails'?true:false;\r\n this.isJoiningDateEdit=e.target.title==='JoiningDate'?true:false;\r\n}\r\nqualificationEdits(e){\r\n const targetValue:any=e.target.value;\r\n const targetName:string=e.target.name;\r\n this.element.EmpName=targetName==='Emp Name'?targetValue:this.element.EmpName;\r\n this.element.Designation=targetName==='Designation'?targetValue:this.element.Designation;\r\n this.element.HighestQualification=targetName==='HighestQualification'?targetValue:this.element.HighestQualification;\r\n this.element.Institution=targetName==='Institution'?targetValue:this.element.Institution;\r\n this.element.Experience=targetName==='Experience'?targetValue:this.element.Experience;\r\n this.element.PrevEmploymentDesignation=targetName==='PrevEmploymentDesignation'?targetValue:this.element.PrevEmploymentDesignation;\r\n this.element.SkillName=targetName==='SkillName'?targetValue:this.element.SkillName;\r\n this.element.Department=targetName==='Department'?targetValue:this.element.Department;\r\n this.element.PrevEmployeeDetails=targetName==='PrevEmployeeDetails'?targetValue:this.element.PrevEmployeeDetails;\r\n this.element.JoiningDate=targetName==='JoiningDate'?targetValue:this.element.JoiningDate;\r\n this.isEditClicked = false;\r\n if(targetName==='JoiningDate'){\r\n const joiningDate = targetValue.split('-');\r\n this.joiningDate = joiningDate[1]+'/'+joiningDate[0]+'/'+joiningDate[2];\r\n }\r\n}\r\n send(){\r\n // if(this.uploadForm.value.avatar===''){\r\n // this._snackBar.open('Please upload associate image file.'), \"x\", {\r\n // duration: 1000,\r\n // panelClass:['error-alert'],\r\n // horizontalPosition: \"right\",\r\n // verticalPosition: \"top\",\r\n // }\r\n // }\r\n // else{\r\n const obj: SendMailModel = new SendMailModel();\r\n // this.emailStr=\r\n // ''+\r\n // '

Dear Associates,


'+\r\n // '

'+ \r\n // ''+this.element.EmpName +' has joined the organization as '+this.element.Designation+' on.'+this.isPronoun+' holds '+this.element.HighestQualification+' from '+this.element.Institution+'.'+'

'+\r\n // ''+this.isPronoun +' brings along with '+this.isPossessivePronoun+' '+this.element.Experience+'+ years of experience as '+this.element.PrevEmploymentDesignation+'.'+''+\r\n // ''+this.isPronoun +' has good exposure '+this.element.SkillName+'.'+\r\n // ' Prior to us,'+this.isPronoun +' worked as '+this.element.PrevEmploymentDesignation+' with '+\r\n // this.element.PrevEmployeeDetails+'.'+\r\n // '

On behalf of all of us, I extend a hearty welcome to '+this.isPossessivePronoun+' and wish a long and successful career with Seneca Global.

'+\r\n // ''\r\n this.emailStr=''+\r\n '

'+this.saluation+' '+this.empfirstName+''+' '+this.emplastName+'

Joined As

'+this.element.Designation+'

Reporting to

'+this.reportingManagerName+'

KEY SKILLS

'+this.skillLists+'

' +this.myTable+ '

Education

Bio

'+this.bioContent+'

On behalf of all of us, I extend'+this.emptyValue+'hearty welcome'+this.emptyValue+'to '+this.isPossessivePronoun+' and wish a long and'+this.emptyValue+'successful career'+this.emptyValue+'with'+this.emptyValue+'SenecaGlobal.

'+\r\n ''\r\n \r\n obj.FormMailContent = this.emailStr;\r\n obj.FormMailEmpId = this.element.EmpId;\r\n obj.FormMailSubject = this.subject.nativeElement.innerText.trim();\r\n obj.FormMailCC = this.element.WorkEmail;\r\n let sendMailInfoDetails = JSON.stringify(obj);\r\n this.formData = new FormData();\r\n this.formData.append('file', this.uploadForm.get('avatar').value);\r\n this.formData.append('data', sendMailInfoDetails);\r\n console.log(this.formData);\r\n this.associateInformationService.sendWelcomeEmail(this.formData).subscribe((res: any) => {\r\n if (res) {\r\n this._snackBar.open('Email sent successfully.', \"\", {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n });\r\n this.dialogRef.close();\r\n }\r\n }, (error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n this.dialogRef.close();\r\n })\r\n }\r\n\r\n \r\n }\r\n \r\n\r\n//}\r\n","\r\n \r\n
\r\n Welcome to New {{element.Designation}} : {{element.EmpName}}\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 \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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n

{{this.saluation}} {{this.empfirstName}}\r\n \r\n {{this.emplastName}}

\r\n
\r\n
\r\n
\r\n

Joined As

\r\n

{{this.element.Designation}}

\r\n
\r\n
\r\n
\r\n

Reporting toedit

\r\n

\r\n \r\n \r\n \r\n \r\n

\r\n {{reportingManagerName}}\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

KEY SKILLS

\r\n

{{skillLists}}\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 \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n

Education

\r\n
\r\n
\r\n
\r\n

{{element.CertificationName}}\r\n

\r\n

{{element.Specialization}}\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 \r\n \r\n
\r\n
\r\n

Bioedit

\r\n

\r\n \r\n \r\n \r\n {{bioContent}}\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 \r\n \r\n
\r\n
\r\n

\r\n On behalf of all of us, I extend a\r\n hearty welcome to her and wish a long and\r\n successful career with \r\n SenecaGlobal.

\r\n
\r\n
\r\n \r\n \r\n
{{emailStr}}\r\n Mr. Vaibhav Thummala has joined the organization as IT Support Engineer in Tree House Foods - Helpdesk project and will report to Mr. Vinod Pedamallu. Vaibhav holds Bachelor of Technology (Electronics & Communications Engineering) from KL University, Hyderabad, Telangana.\r\n\r\n Murthy brings along with him 5+ years of experience as full stack Python developer. He has good exposure JavaScript, PHP, Core Java, Flask, Vue JS, jQuery, Selenium, Apache, Mango DB, My SQL etc. Prior to joining us, Murthy had worked as Software Engineer with Infor, Hyderabad.\r\n\r\n Vaibhav brings along with him 2+ years of experience in Customer Support. Prior to joining us, Vaibhav had worked as a Fraud Investigator & Dispute Resolution Specialist, with Uber, Hyderabad and as Transaction Risk Investigator with Amazon, Hyderabad.\r\n \r\n \r\n \r\n On behalf of all of us, I extend a hearty welcome to him and wish a long and successful career with Seneca Global.\r\n \r\n \r\n \r\n Thanks,\r\n
\r\n\r\n\r\n
\r\n \r\n \r\n
\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormGroup, FormBuilder, Validators, FormControl, FormGroupDirective } from '@angular/forms';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { CommonService } from '../../../../core/services/common.service';\r\nimport { GenericType } from '../../../master-layout/models/dropdowntype.model';\r\nimport { SkillsService } from '../../services/skills.service';\r\nimport { SkillData } from '../../../../modules/master-layout/models/skills.model';\r\nimport { MasterDataService } from '../../../../core/services/masterdata.service';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { Subscription, Observable } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { EmployeeSkillDetails, Skill } from '../../../../modules/master-layout/models/associate-skills.model';\r\nimport { BooleanToStringPipe } from '../../pipes/BooleanToStringPipe';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\ninterface SelectItem {\r\n value: number;\r\n label: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-skills',\r\n templateUrl: './skills.component.html',\r\n styleUrls: ['./skills.component.scss'],\r\n providers: [BooleanToStringPipe]\r\n})\r\nexport class SkillsComponent implements OnInit {\r\n showDropdown = true\r\n tempskill: any;\r\n editedskillobj: any;\r\n btnLabel = '';\r\n errorMsg = false;\r\n IsChecked = false;\r\n showSubmitButton: boolean = false;\r\n submitData: EmployeeSkillDetails;\r\n showRequired: boolean;\r\n checked: boolean;\r\n id;\r\n totalProficiencyLevelsData;\r\n indexOfBasic = 0;\r\n indexOfBeginner = 0;\r\n skillsData: any[];\r\n addSkill: FormGroup;\r\n skillsList: GenericType[];\r\n proficiencyLevels: SelectItem[] = [];\r\n formSubmitted = false;\r\n filteredSkillsList;\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n private resources = servicePath.API.PagingConfigValue;\r\n SkillsGridData: any[] = [];\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n filteredMultipleSkill: Observable;\r\n showVersionTextBox : boolean = false\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n displayedColumns: string[] = [\r\n 'SkillName',\r\n 'Experience',\r\n 'IsPrimary',\r\n 'LastUsed',\r\n // 'Edit',\r\n ];\r\n dataSource: MatTableDataSource;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n constructor(\r\n private actRoute: ActivatedRoute,\r\n private yesNoPipe: BooleanToStringPipe,\r\n private commonService: CommonService,\r\n private masterService: MasterDataService,\r\n private skillService: SkillsService,\r\n private _snackBar: MatSnackBar,\r\n private spinner: NgxSpinnerService\r\n ) {\r\n this.PageSize = this.resources.PageSize;\r\n this.PageDropDown = this.resources.PageDropDown;\r\n this.actRoute.params.subscribe(params => { this.id = params.id; });\r\n this.CreateForm();\r\n this.GetSkills();\r\n this.GetProficiencyList();\r\n this.GetEmployeeSkills();\r\n }\r\n roleName=JSON.parse(sessionStorage['AssociatePortal_UserInformation']).roleName;\r\n ngOnInit() {\r\n // this.actRoute.params.subscribe(params => { this.id = params['id']; });\r\n // this.id = \"218\";\r\n this.spinner.show()\r\n this.CreateForm();\r\n this.GetSkills();\r\n this.GetProficiencyList();\r\n this.GetEmployeeSkills();\r\n this.getFilteredskills()\r\n\r\n }\r\n\r\n private _filterskill(value) {\r\n\r\n let filterValue;\r\n if (typeof value.SkillId === 'number') {\r\n return this.skillsList;\r\n }\r\n if (value && value.SkillId) {\r\n if (typeof value.SkillId === 'string') {\r\n filterValue = value.SkillId.toLowerCase();\r\n }\r\n else {\r\n if (value.SkillId !== null) {\r\n filterValue = value.SkillId.Name.toLowerCase();\r\n }\r\n }\r\n return this.skillsList.filter((option) =>\r\n option.Name.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.skillsList;\r\n }\r\n }\r\n cols = [\r\n { field: 'SkillName', header: 'Skill' },\r\n { field: 'Experience', header: 'Experience (in months)' },\r\n { field: 'IsPrimary', header: 'Is Primary', type: this.yesNoPipe },\r\n { field: 'LastUsed', header: 'Last Used' }\r\n\r\n ]\r\n displayFn(user: any) {\r\n return user && user ? user.Name : '';\r\n }\r\n isEdit() {\r\n if (this.btnLabel == 'Save')\r\n return false;\r\n return true;\r\n }\r\n CreateForm() {\r\n this.errorMsg = false;\r\n this.showRequired = false;\r\n this.formSubmitted = false;\r\n // this.requiredmsg=false;\r\n this.btnLabel = 'Save';\r\n this.addSkill = new FormGroup({\r\n SkillId: new FormControl(null, [Validators.required]),\r\n ProficiencyLevelId: new FormControl(null, Validators.required),\r\n // Experience: new FormControl(null, [Validators.required, Validators.pattern('[1-9]|[1-9][0-9]|[0-9][1-9]|[1-9][0-9][0-9]|[0-9][0-9][1-9]|[1-9][0-9][0-9]')]),\r\n Experience: new FormControl(null, [Validators.required, \r\n Validators.pattern(/^(?:\\d{1,2}(?:\\.\\d{1,2})?|99(?:\\.99)?|0\\d(?:\\.\\d{1,2})?)$/),\r\n this.handleExperience,this.zeroHandler]),\r\n LastUsed: new FormControl(null, [Validators.required, Validators.pattern('(19|20)[0-9]{2}$'), Validators.maxLength(4), Validators.minLength(4)]),\r\n IsPrimary: new FormControl(false),\r\n CompetencyAreaId: new FormControl(null),\r\n SkillGroupId: new FormControl(null),\r\n RoleId: new FormControl(null),\r\n EmployeeId: new FormControl(null),\r\n Id: new FormControl(0),\r\n RoleName:new FormControl(null),\r\n Version : new FormControl(null)\r\n });\r\n }\r\n onlyForNumbers(event: any) {\r\n this.commonService.onlyNumbers(event);\r\n }\r\n\r\n GetEmployeeSkills() {\r\n this.skillService.GetAssociateSkillsById(this.id,this.roleName).subscribe((res: any) => {\r\n this.spinner.hide()\r\n this.SkillsGridData = res;\r\n this.dataSource = new MatTableDataSource(this.SkillsGridData);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n },(error)=>{\r\n this.spinner.hide();\r\n });\r\n }\r\n GetSkills() {\r\n this.skillService.getSkills().subscribe((skills: any[]) => {\r\n this.skillsData = skills;\r\n this.skillsList = [];\r\n for (var i = 0; i < skills.length; i++) {\r\n this.skillsList[i] = new GenericType();\r\n this.skillsList[i].Name = skills[i].SkillCode;\r\n this.skillsList[i].Id = skills[i].SkillId;\r\n }\r\n });\r\n this.filteredMultipleSkill = this.addSkill.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterskill(value))\r\n );\r\n\r\n }\r\n getFilteredskills(){\r\n this.filteredMultipleSkill = this.addSkill.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterskill(value))\r\n );\r\n }\r\n GetProficiencyList() {\r\n\r\n this.masterService.GetProficiencyLevels().subscribe(res => {\r\n this.proficiencyLevels = [];\r\n this.totalProficiencyLevelsData = [];\r\n this.totalProficiencyLevelsData = res;\r\n this.totalProficiencyLevelsData = res;\r\n this.indexOfBasic = this.totalProficiencyLevelsData.findIndex((x: any) => x.ProficiencyLevelCode === 'Basic');\r\n for (let i = 0; i < res.length; i++) {\r\n this.proficiencyLevels.push({\r\n label: res[i][\"ProficiencyLevelCode\"],\r\n value: res[i][\"ProficiencyLevelId\"]\r\n });\r\n }\r\n });\r\n }\r\n editSkill(skillObj) {\r\n this.btnLabel = 'Update';\r\n let PautoCompletedObj = { Name: skillObj.SkillName, Id: skillObj.SkillId }\r\n this.addSkill.patchValue({\r\n Id: skillObj.Id,\r\n SkillId: PautoCompletedObj,\r\n ProficiencyLevelId: skillObj.ProficiencyLevelId,\r\n Experience: String(skillObj.Experience),\r\n LastUsed: skillObj.LastUsed,\r\n IsPrimary: skillObj.IsPrimary,\r\n CompetencyAreaId: skillObj.CompetencyAreaId,\r\n SkillGroupId: skillObj.SkillGroupId,\r\n RoleName:this.roleName,\r\n Version : skillObj.Version\r\n });\r\n this.editedskillobj = this.addSkill.value;\r\n this.CheckedIsPrimary(false);\r\n }\r\n filteredMultipleSkills(event: any): void {\r\n let suggestionString = event.query;\r\n this.filteredSkillsList = this.filteredSkills(\r\n suggestionString,\r\n this.skillsList);\r\n\r\n }\r\n\r\n filteredSkills(suggestionString: string, skillsList: GenericType[]): GenericType[] {\r\n let filtered: GenericType[] = [];\r\n for (let i = 0; i < skillsList.length; i++) {\r\n let skillList = skillsList[i];\r\n if (skillList.Name.toLowerCase().includes(suggestionString.toLowerCase()) == true) {\r\n filtered.push(skillList);\r\n }\r\n }\r\n return filtered;\r\n }\r\n GetCompetencyAreaCodeAndSkillGroupId() {\r\n\r\n let length = this.skillsData.length;\r\n let selectedSkillId = this.addSkill.value.SkillId;\r\n for (var i = 0; i < length; i++) {\r\n if (this.skillsData[i].SkillId == selectedSkillId) {\r\n this.addSkill.value.CompetencyAreaId = this.skillsData[i].CompetencyArea.CompetencyAreaId;\r\n this.addSkill.value.SkillGroupId = this.skillsData[i].SkillGroup.SkillGroupId;\r\n break;\r\n }\r\n }\r\n }\r\n onSave() {\r\n this.formSubmitted = true;\r\n let skillObj = new GenericType();\r\n\r\n if(!this.isValidVersion()){\r\n this._snackBar.open(\"Version Can't be Zero\", 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }); \r\n return;\r\n }\r\n\r\n if (this.addSkill.valid == true) {\r\n this.errorMsg = false;\r\n skillObj = this.addSkill.value.SkillId;\r\n this.addSkill.value.SkillId = this.addSkill.value.SkillId.Id ? this.addSkill.value.SkillId.Id : this.addSkill.value.SkillId;\r\n if (this.addSkill.value.IsPrimary == null)\r\n this.addSkill.value.IsPrimary = false;\r\n this.addSkill.value.EmployeeId = this.id;\r\n if (this.roleName == \"Associate\")\r\n this.addSkill.value.RoleId = 2;\r\n else\r\n this.addSkill.value.RoleId = 0;\r\n if (this.btnLabel == \"Save\")\r\n this.GetCompetencyAreaCodeAndSkillGroupId();\r\n let maxYear = (new Date()).getFullYear()\r\n if(this.addSkill.value.LastUsed > maxYear){\r\n this._snackBar.open('Last Used Year should not be greater than current year', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return false;\r\n }\r\n\r\n if(this.addSkill.value.Version != null){\r\n if(this.addSkill.value.Version[0] == ',' || this.addSkill.value.Version[this.addSkill.value.Version.length -1] == ','){\r\n this._snackBar.open('Version should not end or begin with commas','x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return;\r\n }\r\n\r\n if(this.addSkill.value.Version[0] == '.' || this.addSkill.value.Version[this.addSkill.value.Version.length -1] == '.'){\r\n this._snackBar.open('Version should not end or begin with dot','x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return; \r\n }\r\n \r\n }\r\n \r\n if (this.btnLabel == 'Save') {\r\n this.tempskill = this.addSkill.value;\r\n this.addSkill.patchValue({\r\n SkillId: this.tempskill.SkillId,\r\n ProficiencyLevelId: this.tempskill.ProficiencyLevelId,\r\n Experience: this.tempskill.Experience,\r\n LastUsed: this.tempskill.LastUsed,\r\n IsPrimary: this.tempskill.IsPrimary,\r\n CompetencyAreaId: this.tempskill.CompetencyAreaId,\r\n SkillGroupId: this.tempskill.SkillGroupId,\r\n RoleId: this.tempskill.RoleId,\r\n RoleName:this.roleName,\r\n EmployeeId: this.tempskill.EmployeeId,\r\n Id: 0,\r\n Version : this.tempskill.Version\r\n });\r\n if(this.addSkill.value.SkillId==null || this.addSkill.value.SkillId== \"\"){\r\n this._snackBar.open('Select skills from the given list', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return false;\r\n }\r\n this.skillService.SaveAssociateSkills(this.addSkill.value).subscribe(res => {\r\n this._snackBar.open('Skill added successfully.', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n this.cancel();\r\n this.GetEmployeeSkills();\r\n },\r\n (error) => {\r\n this.addSkill.value.SkillId = skillObj;\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n this.showDropdown = true\r\n } else {\r\n if (this.editedskillobj.SkillId == this.addSkill.value.SkillId && this.editedskillobj.ProficiencyLevelId == this.addSkill.value.ProficiencyLevelId && \r\n this.editedskillobj.LastUsed == this.addSkill.value.LastUsed && this.editedskillobj.Experience == this.addSkill.value.Experience && this.editedskillobj.Version == this.addSkill.value.Version){\r\n this._snackBar.open('No changes to update', 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n else{\r\n this.skillService.UpdateAssociateSkills(this.addSkill.value).subscribe(res => {\r\n this._snackBar.open('Skill updated successfully.', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.GetEmployeeSkills();\r\n this.cancel();\r\n },\r\n (error) => {\r\n this.addSkill.value.SkillId = skillObj;\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n this.showDropdown = true\r\n }\r\n\r\n }\r\n\r\n }\r\n cancel() {\r\n this.showVersionTextBox = false\r\n this.IsChecked = false;\r\n this.addSkill.patchValue({\r\n ProficiencyLevelId: this.totalProficiencyLevelsData[this.indexOfBeginner].ProficiencyLevelId\r\n })\r\n this.showDropdown = true\r\n this.errorMsg = false;\r\n this.showRequired = false;\r\n this.formSubmitted = false;\r\n this.btnLabel = 'Save';\r\n this.addSkill.reset();\r\n setTimeout(() => this.formGroupDirective.resetForm(), 0);\r\n }\r\n CheckedIsPrimary(bool: boolean) {\r\n if (this.addSkill.controls.IsPrimary.value !== null) {\r\n if (bool) {\r\n this.IsChecked = !this.addSkill.controls.IsPrimary.value;\r\n }\r\n else {\r\n this.IsChecked = this.addSkill.controls.IsPrimary.value;\r\n }\r\n }\r\n else {\r\n this.IsChecked = true;\r\n }\r\n if (this.IsChecked === true) {\r\n this.showRequired = true;\r\n if (this.btnLabel === 'Save') {\r\n this.addSkill.patchValue({\r\n ProficiencyLevelId: this.totalProficiencyLevelsData[this.indexOfBasic].ProficiencyLevelId\r\n });\r\n this.showDropdown = false;\r\n }\r\n }\r\n else {\r\n this.showRequired = false;\r\n this.showDropdown = true;\r\n if (this.btnLabel === 'Save') {\r\n this.addSkill.patchValue({\r\n proficiencyLevelId: null\r\n });\r\n }\r\n }\r\n }\r\n\r\n applyFilter(event: Event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n\r\n clearInput(event : any, fieldName: string){ \r\n if (fieldName == 'SkillId'){\r\n this.showVersionTextBox = false;\r\n this.addSkill.get('SkillId').reset();\r\n this.addSkill.get('Version').reset();\r\n event.stopPropagation();\r\n }\r\n}\r\n\r\nenableVersions(event){\r\n if(event){\r\n this.showVersionTextBox = true;\r\n }\r\n }\r\n\r\nisValidVersion () : boolean {\r\n let version = this.addSkill.get('Version').value;\r\n let values = version?.split(',');\r\n if(values){\r\n for(let i=0;i < values.length;i++){\r\n if(values[i]=='0' || \r\n values[i]=='0.0' || values[i]== '0.00' || values[i]=='00.0' ||\r\n values[i]=='00.00'){\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n}\r\n\r\n// omit_special_char(event:any){\r\n// if((event.charCode >= 32 && event.charCode <= 43)\r\n// || (event.charCode == 45) || (event.charCode == 47)\r\n// || (event.charCode >= 58 && event.charCode <= 126) ){\r\n// event.preventDefault();\r\n// this._snackBar.open('Only Numbers, decimals, commas are Allowed', 'x', {\r\n// duration: 3000,\r\n// horizontalPosition: 'right',\r\n// verticalPosition: 'top',\r\n// }); \r\n// return\r\n// }\r\n// }\r\n\r\nhandleExperience(control) {\r\n // Check the value of the input field\r\n const inputValue = new String(control.value);\r\n let values = inputValue?.split('.');\r\n \r\n if(values && Number(values[1])>11){\r\n \r\n return { experienceError: true };\r\n \r\n }\r\n\r\n return null; // No error\r\n}\r\n\r\nzeroHandler(control){\r\n const inputValue = new String(control.value);\r\n \r\n if(inputValue == '0' || inputValue == '0.00'){\r\n \r\n return { zeroErrorHandler: true };\r\n \r\n }\r\n\r\n return null; // No error\r\n}\r\n\r\n}\r\n\r\n\r\n\r\n","
\r\n
\r\n

Skills

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Is Primary:\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n warning\r\n

\r\n Ensure Atleast one skill should be primary\r\n \r\n

\r\n
\r\n
\r\n
\r\n \r\n Skill*\r\n \r\n \r\n \r\n \r\n {{ option.Name }}\r\n \r\n \r\n Skill Required \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Version\r\n \r\n \r\n \r\n

Note : Version Allows Only Numbers, Decimals, Commas

\r\n \r\n
\r\n
\r\n \r\n Proficiency Level*\r\n \r\n \r\n {{p.label}} \r\n \r\n Proficiency Level is required\r\n \r\n
\r\n
\r\n \r\n Last used(Year)*\r\n \r\n Last Used is required\r\n \r\n Last Used is Invalid\r\n \r\n
\r\n
\r\n \r\n Experience(In Years)*\r\n \r\n Should be in\r\n # or #.# or ##.# or ##.## format! where # is a number\r\n Experience is required\r\n \r\n Months Can't be greater than 11!\r\n \r\n \r\n Experience Can't be Zero!\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 \r\n Search\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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Skill {{element.SkillCode}} Experience {{element.Experience}} IsPrimary {{element.IsPrimary}} Last used {{element.LastUsed}}
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n

Loading ...

\r\n
","import { HttpClient, HttpEventType } from '@angular/common/http';\r\nimport { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { Subscription } from 'rxjs';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { FileExporterService } from 'src/app/core/services/file-exporter.service';\r\nimport { environment } from '../../../../../environments/environment';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { RegularizationService } from '../../services/regularization.service';\r\nimport * as FileSaver from 'file-saver';\r\n\r\n@Component({\r\n selector: 'app-upload-leave-data',\r\n templateUrl: './upload-leave-data.component.html',\r\n styleUrls: ['./upload-leave-data.component.scss']\r\n})\r\n\r\n\r\nexport class UploadLeaveDataComponent implements OnInit {\r\n progress : number;\r\n fileName='';\r\n uploadSub: Subscription;\r\n formData = new FormData(); \r\n fileUploaded : boolean =false;\r\n\r\n serverUrl =environment.EmployeeMicroService;\r\n resourceUrl = servicePath.API.uploadLeaveData\r\n \r\n \r\n @ViewChild('fileUpload') fileUpload: any;\r\n\r\n constructor(private http : HttpClient,\r\n private _snackBar : MatSnackBar,\r\n private service : RegularizationService,\r\n private fileExporterService : FileExporterService) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n onFileSelected(event) {\r\n this.formData = new FormData();\r\n const file:File = event.target.files[0];\r\n\r\n if (file) {\r\n this.fileName = file.name;\r\n this.formData.append(\"file\",file);\r\n }\r\n}\r\n\r\nuploadFile(){\r\n this.fileUploaded = true;\r\n const upload$ = this.http.post(this.serverUrl + this.resourceUrl.UploadLeaveData, this.formData\r\n)\r\n.pipe(\r\n finalize(() => this.reset())\r\n);\r\n\r\nthis.uploadSub = upload$.subscribe(event => {\r\n this._snackBar.open(\r\n 'File Uploaded Successfully',\r\n 'x',\r\n {\r\n duration: 3000,\r\n panelClass : ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n},(error)=>{\r\n this._snackBar.open(\r\n error.error,\r\n 'x',\r\n {\r\n duration: 3000,\r\n panelClass : ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n})\r\n}\r\n\r\ncancelUpload() {\r\n if(this.uploadSub){\r\n this.uploadSub.unsubscribe();\r\n }\r\n this.reset();\r\n}\r\n\r\nreset() {\r\n this.fileUploaded = false;\r\n this.fileName = null;\r\n this.uploadSub = null;\r\n}\r\n\r\ndownloadTemplate(){\r\n this.service.getTemplateFile().subscribe((res:any)=>{\r\n\r\n const source = 'data:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64,' + res.Content;\r\n\r\n const link = document.createElement(\"a\");\r\n\r\n link.href = source;\r\n\r\n link.download = res.FileName;\r\n\r\n link.click(); \r\n\r\n })\r\n}\r\n}\r\n\r\n","\r\n
\r\n \r\n
\r\n\r\n
\r\n

Click on 'Browse File' to Select the File

\r\n\r\n \r\n\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n {{fileName}}\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 { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { FullCalendarComponent } from '@fullcalendar/angular';\r\nimport { CalendarOptions } from '@fullcalendar/core';\r\nimport { BehaviorSubject } from 'rxjs/internal/BehaviorSubject';\r\nimport { takeUntil } from 'rxjs/internal/operators/takeUntil';\r\nimport { Subject } from 'rxjs/internal/Subject';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { AssociateAttendanceReportService } from 'src/app/modules/reports/services/associate-attendance-report.service';\r\n\r\n@Component({\r\n selector: 'app-view-biometric-attendance',\r\n templateUrl: './view-biometric-attendance.component.html',\r\n styleUrls: ['./view-biometric-attendance.component.scss']\r\n})\r\nexport class ViewBiometricAttendanceComponent implements OnInit {\r\n calendarOptions: CalendarOptions = {\r\n initialView: 'dayGridMonth', \r\n events: [\r\n ],\r\n };\r\n startDate:Date;\r\n endDate:Date;\r\n eventsData:any;\r\n employeeName:string;\r\n daysWorked:number=0;\r\n roleName:string;\r\n public eventData = new BehaviorSubject([]);\r\n @ViewChild('calender') calendarComponent: FullCalendarComponent;\r\n private unsubscribe$: Subject = new Subject();\r\n\r\n\r\n constructor(private associateAttendanceReport : AssociateAttendanceReportService,private router : Router,private actRoute: ActivatedRoute) { }\r\n\r\n ngOnInit(): void {\r\n this.actRoute.queryParams.subscribe(params => { this.employeeName = params.employeeName }); \r\n this.roleName= JSON.parse(sessionStorage.AssociatePortal_UserInformation).roleName;\r\n this.associateAttendanceReport.attendanceDataObservable.pipe(takeUntil(this.unsubscribe$)).subscribe((res:any)=>{\r\n if(Object.keys(res).length > 0){\r\n this.startDate = new Date(res.filter.FromDate);\r\n this.endDate = new Date(res.filter.ToDate);\r\n this.eventsData = res.eventData;\r\n this.employeeName = res.filter.EmployeeName; \r\n this.daysWorked = res.daysWorked; \r\n this.eventData.next(res.eventData)\r\n // this.eventData = res.eventData\r\n this.updateCalender();\r\n } \r\n }) \r\n }\r\n\r\n updateCalender(){\r\n this.getEvents().pipe(takeUntil(this.unsubscribe$)).subscribe(events => { events.map((event) => {\r\n if(event.title === 'Holiday'){\r\n event['backgroundColor'] = 'Orange'\r\n }\r\n else if(event.title === 'Weekend'){\r\n event['backgroundColor'] = 'gray'\r\n }\r\n else if(event.title!=null && event.title.toUpperCase().includes(\"Leave\".toUpperCase())){\r\n event['backgroundColor'] = 'pink'\r\n event['textColor'] = 'black'\r\n }\r\n else if(event.title ==='Present'){\r\n event['backgroundColor'] = 'green'\r\n }\r\n else if(event.title == 'WFO'){\r\n event['display'] = 'none'\r\n }\r\n\r\n else if(event.title == 'WFH'){\r\n event['backgroundColor'] = '#FCB5AC'\r\n event['textColor'] = 'brown'\r\n \r\n }\r\n else if(event.title == null){\r\n event['display'] = 'none'\r\n }\r\n else if(event.title == \"Regularized\"){\r\n event['backgroundColor'] = '#748cab'\r\n event['color'] = 'edf2f4';\r\n }\r\n else if(event.title=='Absent')\r\n {\r\n event['backgroundColor']='#66dfe3'\r\n event['textColor'] = 'red';\r\n }\r\n\r\n \r\n else {\r\n let title = event.title.split(': ')\r\n // if((title[0] === 'Checkout Time' && title[1] === '') || (title[0] === 'Total Hours' && title[1] === '0') || (title[0] === 'Checkin Time' && title[1] === '')){\r\n // event['backgroundColor'] = '#ea3a5a';\r\n // event['borderColor']='white';\r\n // // event['description']= 'You Missed the punch!!';\r\n // }\r\n if(!((title[0] === 'Checkout Time') || (title[0] === 'Total Hours') || (title[0] === 'Checkin Time'))){\r\n // event['backgroundColor'] = 'red';\r\n if(title[0]=== 'Punches Not In Pair'){\r\n event['backgroundColor'] = 'red';\r\n }\r\n else{\r\n event['display'] ='none'\r\n }\r\n }\r\n }\r\n return event;\r\n })});\r\n \r\n this.calendarOptions = {\r\n initialView: 'dayGridMonth', \r\n initialDate: this.startDate,\r\n events : this.eventsData,\r\n eventOrder: 'start',\r\n eventBorderColor: 'white',\r\n validRange: {\r\n start: this.startDate,\r\n end: this.endDate\r\n }\r\n }; \r\n }\r\n\r\n getEvents(): Observable {\r\n return this.eventData.asObservable();\r\n }\r\n\r\n ApplyRegularization(){\r\n this.router.navigate(['/associates/regularization'])\r\n }\r\n\r\n goBack(){\r\n \r\n if(this.roleName==\"Associate\")\r\n {\r\n this.router.navigate([],\r\n {\r\n queryParamsHandling: 'merge',\r\n replaceUrl: true\r\n }).then(\r\n () => {\r\n this.router.navigate(['/associates/biometricattendance'], { queryParams: {'fromDate':this.startDate, 'toDate':this.endDate } });\r\n }\r\n );\r\n \r\n }\r\n else{\r\n this.router.navigate([],\r\n {\r\n queryParamsHandling: 'merge',\r\n replaceUrl: true\r\n }).then(\r\n () => {\r\n this.router.navigate(['/associates/biometricattendancereport'], { queryParams: {'fromDate':this.startDate, 'toDate':this.endDate } });\r\n }\r\n );\r\n // this.router.navigate(['/associates/biometricattendancereport'])\r\n }\r\n }\r\n\r\n}\r\n\r\n","
\r\n
\r\n
\r\n arrow_back

Total Days Worked: {{daysWorked}}

\r\n
\r\n
\r\n Associate Name: {{employeeName}} \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 { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { Route, Router } from '@angular/router';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { Associate } from '../../models/associate.model';\r\nimport { AttendanceRegularization } from '../../models/regularization.model';\r\nimport { RegularizationService } from '../../services/regularization.service';\r\n\r\n@Component({\r\n selector: 'app-view-regularization-applied-associates',\r\n templateUrl: './view-regularization-applied-associates.component.html',\r\n styleUrls: ['./view-regularization-applied-associates.component.scss']\r\n})\r\nexport class ViewRegularizationAppliedAssociatesComponent implements OnInit {\r\n\r\n _dataSource = new MatTableDataSource();\r\n EmployeesList : AttendanceRegularization[] = [];\r\n displayedColumns: string[] = ['empcode', 'name', 'project', 'View', 'Days'];\r\n @ViewChild('regularizationsPaginator', { static: false }) regularizationsPaginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n EmpId : number;\r\n roleName : string;\r\n\r\n constructor(private router : Router,private service : RegularizationService,public navService: NavService) { }\r\n\r\n ngOnInit(): void {\r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n this.applyFilter(responseData);\r\n })\r\n this.EmpId = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).employeeId;\r\n this.roleName = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).roleName;\r\n this.getRegularizationAppliedAssociates();\r\n \r\n\r\n }\r\n\r\n ViewAppliedRegularizationDays(element){\r\n this.router.navigate(['/associates/viewDays/'+element.SubmittedBy,element.AssociateName]);\r\n }\r\n\r\n getRegularizationAppliedAssociates(){\r\n this.EmployeesList = []; \r\n this._dataSource = new MatTableDataSource(this.EmployeesList);\r\n this.service.GetAllAssociateSubmittedAttendanceRegularization(this.EmpId,this.roleName).subscribe((res : AttendanceRegularization[])=>{\r\n this.EmployeesList = res\r\n this._dataSource = new MatTableDataSource(this.EmployeesList);\r\n this._dataSource.paginator = this.regularizationsPaginator;\r\n this._dataSource.sort = this.sort;\r\n })\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n if (filterValue) {\r\n this._dataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n else {\r\n this._dataSource = new MatTableDataSource(this.EmployeesList);\r\n this._dataSource.paginator = this.regularizationsPaginator;\r\n this._dataSource.sort = this.sort;\r\n }\r\n } else {\r\n this._dataSource = new MatTableDataSource(this.EmployeesList);\r\n this._dataSource.paginator = this.regularizationsPaginator;\r\n this._dataSource.sort = this.sort;\r\n }\r\n }\r\n\r\n}\r\n","\r\n \r\n Regularization(s)\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 \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 Employee Code\r\n \r\n {{ element.SubmittedBy }}\r\n Employee Name\r\n \r\n {{ element.AssociateName }}\r\n Project\r\n \r\n {{ element.ProjectName }}\r\n Days\r\n \r\n {{ element.RegularizationCount }}\r\n \r\n View\r\n \r\n visibility\r\n
No Record is available
\r\n
\r\n \r\n \r\n
\r\n
\r\n
","import { SelectionModel } from '@angular/cdk/collections';\r\nimport { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { ActivatedRoute, Route, Router } from '@angular/router';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { RejectDialogComponent } from 'src/app/modules/shared/components/reject-dialog/reject-dialog.component';\r\nimport { AttendanceRegularization } from '../../models/regularization.model';\r\nimport { RegularizationService } from '../../services/regularization.service';\r\n\r\n@Component({\r\n selector: 'app-view-regularization-applied-days',\r\n templateUrl: './view-regularization-applied-days.component.html',\r\n styleUrls: ['./view-regularization-applied-days.component.scss']\r\n})\r\nexport class ViewRegularizationAppliedDaysComponent implements OnInit {\r\n\r\n dataSource = new MatTableDataSource();\r\n displayedColumns: string[] = [\r\n 'select',\r\n 'RegularizationAppliedDate',\r\n 'InTime',\r\n 'OutTime',\r\n 'Location',\r\n 'Remarks'\r\n ];\r\n id:string;\r\n AssociateName:string;\r\n regularizedDays: AttendanceRegularization[] =[];\r\n EmpId: number;\r\n roleName:string;\r\n @ViewChild(MatPaginator, { static: false }) Paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n \r\n selection = new SelectionModel(true, []);\r\n approveOrRejectRequestObj : AttendanceRegularization = new AttendanceRegularization()\r\n\r\n\r\n \r\n constructor( private actRoute: ActivatedRoute,\r\n private service : RegularizationService,\r\n private _snackBar : MatSnackBar,\r\n private router : Router,\r\n private dialog : MatDialog,public navService: NavService) { }\r\n\r\n ngOnInit(): void {\r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n this.applyFilter(responseData);\r\n })\r\n this.EmpId = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).employeeId;\r\n this.roleName = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).roleName;\r\n this.actRoute.params.subscribe(params => { this.id = params.id;this.AssociateName=params.associateName });\r\n this.GetAssociateSubmittedAttendanceRegularizationById();\r\n }\r\n\r\n ApproveOrReject(buttonName : string){\r\n this.approveOrRejectRequestObj = new AttendanceRegularization()\r\n this.approveOrRejectRequestObj.SubmittedBy = this.id;\r\n this.approveOrRejectRequestObj.ApprovedBy = this.EmpId;\r\n this.approveOrRejectRequestObj.RegularizationDates=[];\r\n this.selection.selected.forEach(s => {console.log(s),\r\n this.approveOrRejectRequestObj.RegularizationDates.push(s.RegularizationAppliedDate)\r\n });\r\n\r\n if(this.approveOrRejectRequestObj.RegularizationDates.length ===0){\r\n this._snackBar.open('Please Select the Records', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return;\r\n }\r\n\r\n if(buttonName === 'Approve'){\r\n this.approveOrRejectRequestObj.IsApproved = true;\r\n this.approveOrRejectRegularizations(buttonName);\r\n }\r\n else if(buttonName === 'Reject'){\r\n const dialogRef = this.dialog.open(RejectDialogComponent,{\r\n width:'400px',\r\n disableClose: true,\r\n \r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n // this.closeProject();\r\n if(result){\r\n this.approveOrRejectRequestObj.RemarksByRM = result.rejectReason;\r\n this.approveOrRejectRequestObj.IsApproved = false;\r\n this.approveOrRejectRequestObj.RejectedBy=JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).employeeId;\r\n this.approveOrRejectRequestObj.RejectedDate=new Date();\r\n this.approveOrRejectRegularizations(buttonName);\r\n }\r\n });\r\n }\r\n }\r\n\r\n GetAssociateSubmittedAttendanceRegularizationById(){\r\n this.regularizedDays = [];\r\n this.service.GetAssociateSubmittedAttendanceRegularizationById(this.id,this.roleName).subscribe((res : AttendanceRegularization[])=>{\r\n this.regularizedDays = res;\r\n this.dataSource = new MatTableDataSource(this.regularizedDays);\r\n this.dataSource.paginator = this.Paginator;\r\n this.dataSource.sort = this.sort;\r\n if(this.regularizedDays.length ==0){\r\n this.onBackClick();\r\n }\r\n },\r\n (error)=>{\r\n this.regularizedDays = [];\r\n this.dataSource = new MatTableDataSource(this.regularizedDays);\r\n this.dataSource.paginator = this.Paginator;\r\n this.dataSource.sort = this.sort;\r\n if(this.regularizedDays.length ==0){\r\n this.onBackClick();\r\n }\r\n })\r\n\r\n }\r\n\r\n onBackClick(){\r\n this.router.navigate(['/shared/dashboard'])\r\n }\r\n\r\n isAllSelected() {\r\n const numSelected = this.selection.selected.length;\r\n const numRows = this.dataSource.filteredData.length;\r\n return numSelected === numRows;\r\n }\r\n\r\n /** Selects all rows if they are not all selected; otherwise clear selection. */\r\n masterToggle() {\r\n this.isAllSelected() ?\r\n this.selection.clear() :\r\n this.dataSource.filteredData.forEach(row => this.selection.select(row));\r\n }\r\n\r\n approveOrRejectRegularizations(buttonName:string){\r\n this.service.ApproveOrRejectAttendanceRegularizationDetails(this.approveOrRejectRequestObj).subscribe((res:any)=>{\r\n if(res.IsSuccessful){\r\n if(buttonName === 'Approve'){\r\n this._snackBar.open(\r\n 'Approved Regularization',\r\n 'x',\r\n {\r\n duration: 3000,\r\n panelClass : ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n }\r\n else if(buttonName === 'Reject'){\r\n this._snackBar.open(\r\n 'Rejected Regularization',\r\n 'x',\r\n {\r\n duration: 3000,\r\n panelClass : ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n }\r\n // this.onBackClick();\r\n this.GetAssociateSubmittedAttendanceRegularizationById();\r\n this.navService.changeSearchBoxData('');\r\n this.selection.clear();\r\n }\r\n else{\r\n this._snackBar.open(\r\n 'Failed Updating Records',\r\n 'x',\r\n {\r\n duration: 3000,\r\n panelClass : ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n this.GetAssociateSubmittedAttendanceRegularizationById();\r\n this.navService.changeSearchBoxData('');\r\n this.selection.clear();\r\n }\r\n },\r\n (error)=>{\r\n this._snackBar.open(\r\n 'Failed Updating Records',\r\n 'x',\r\n {\r\n duration: 3000,\r\n panelClass : ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n this.navService.changeSearchBoxData('');\r\n this.GetAssociateSubmittedAttendanceRegularizationById();\r\n this.selection.clear();\r\n })\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n if (filterValue) {\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n else {\r\n this.dataSource = new MatTableDataSource(this.regularizedDays);\r\n this.dataSource.paginator = this.Paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.regularizedDays);\r\n this.dataSource.paginator = this.Paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n }\r\n\r\n}\r\n","\r\n \r\n
\r\n
\r\n \r\n arrow_back\r\n \r\n \r\n
\r\n
\r\n Associate Name: {{AssociateName}}\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 \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 \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n Date\r\n \r\n {{ element.RegularizationAppliedDate | date: 'dd/MM/yyyy'}}\r\n In Time\r\n \r\n {{ element.InTime }}\r\n Out Time\r\n \r\n {{ element.OutTime}}\r\n Location\r\n \r\n {{ element.Location }}\r\n Remarks {{element.Remarks}}\r\n
No Record is available
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { Associate } from '../../models/associate.model';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { AssociateInformationService } from '../../services/associateInformation.service';\r\nimport * as moment from 'moment';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { NavService } from '../../../master-layout/services/nav.service';\r\nimport { MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { SendEmailComponent } from '../send-email/send-email.component';\r\n\r\n@Component({\r\n selector: 'app-welcome-associate-email',\r\n templateUrl: './welcome-associate-email.component.html',\r\n styleUrls: ['./welcome-associate-email.component.scss']\r\n})\r\nexport class WelcomeAssociateEmailComponent implements OnInit {\r\n\r\n associateInfo: any;\r\n private subType: string = \"list\";\r\n associateInfoList : Associate[];\r\n selectedRow : Associate;\r\n private resources = servicePath.API.PagingConfigValue;\r\n displayedColumns: string[] = [\r\n 'EmpCode',\r\n 'EmpName',\r\n 'JoiningDate',\r\n 'SendMail'\r\n ];\r\n dataSource: MatTableDataSource;\r\n roleName: String;\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n\r\n constructor(private _associateinfoService : AssociateInformationService,private _router: Router,private _snackBar: MatSnackBar, public navService: NavService, private spinner: NgxSpinnerService,\r\n public dialog: MatDialog,) { \r\n this.associateInfo = [];\r\n this._associateinfoService.WelcomeEmail().subscribe((data) => {\r\n this.associateInfo = data;\r\n this.getAssociateInformationList();\r\n\r\n });\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n \r\n \r\n ngOnInit(): void {\r\n this.roleName = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).roleName;\r\n this.getAssociateInformationList();\r\n }\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n if (filterValue){\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n else{\r\n this.dataSource = new MatTableDataSource(this.associateInfoList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.dataSource.sortingDataAccessor = (data: any, sortHeaderId: string): string => {\r\n if (typeof data[sortHeaderId] === 'string') {\r\n return data[sortHeaderId].toLocaleLowerCase();\r\n }\r\n \r\n return data[sortHeaderId];\r\n };\r\n }\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.associateInfoList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.dataSource.sortingDataAccessor = (data: any, sortHeaderId: string): string => {\r\n if (typeof data[sortHeaderId] === 'string') {\r\n return data[sortHeaderId].toLocaleLowerCase();\r\n }\r\n \r\n return data[sortHeaderId];\r\n };\r\n }\r\n }\r\n getAssociateInformationList(){\r\n this.spinner.show();\r\n this._associateinfoService.WelcomeEmail().subscribe((res: any) => {\r\n this.associateInfoList = res;\r\n this.associateInfoList.forEach((r: any) => {\r\n if (r.JoiningDate != null){\r\n r.JoiningDate = moment(r.JoiningDate).format('YYYY-MM-DD');\r\n console.log(r.JoiningDate)\r\n }\r\n else r.JoiningDate = \"\";\r\n });\r\n this.dataSource = new MatTableDataSource(res);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.spinner.hide();\r\n this.dataSource.sortingDataAccessor = (data: any, sortHeaderId: string): string => {\r\n if (typeof data[sortHeaderId] === 'string') {\r\n return data[sortHeaderId].toLocaleLowerCase();\r\n }\r\n \r\n return data[sortHeaderId];\r\n };\r\n });\r\n }\r\n \r\n editAssociatejoining(selectedData: any) {\r\n let currentID = selectedData.EmpId;\r\n selectedData.associateType = selectedData.EmpId != 0 ? \"edit\" : \"new\";\r\n this._router.navigate(['/associates/prospectivetoassociate/' + selectedData.associateType + '/' + currentID + '/' + this.subType]);\r\n }\r\n\r\n sendMail(currentAssociate:Associate){\r\n let dialogRef = this.dialog.open(SendEmailComponent, {\r\n width: '70vw', height: '50vw',\r\n disableClose: true,\r\n data: { element: currentAssociate }\r\n }); \r\n dialogRef.afterClosed().subscribe(result => {\r\n this.getAssociateInformationList();\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 \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 Emp Code\r\n \r\n {{ element.EmpCode }}\r\n \r\n Emp Name\r\n \r\n {{ element.EmpName }}\r\n Joining Date {{asstJoin.JoiningDate}} \r\n SendMail Email \r\n \r\n edit\r\n
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n

Loading ...

\r\n\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport {wfhAttendance} from 'src/app/modules/onboarding/models/wfhAttendance.model';\r\nimport { WfhAttendanceService } from 'src/app/modules/onboarding/services/wfh-attendance.service';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { BiometricAttendanceDialogComponent } from '../biometric-attendance-dialog/biometric-attendance-dialog.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { BiometricAttendanceFoundDialogComponent } from '../biometric-attendance-found-dialog/biometric-attendance-found-dialog.component';\r\nimport { Router } from '@angular/router';\r\nimport { AssignReportingManagerService } from 'src/app/modules/project-life-cycle/services/assign-reporting-manager.service';\r\n\r\n\r\nenum AttendanceSigningCode {\r\n Initial = 0,\r\n SignedIn = 1,\r\n SignedOut = 2,\r\n SignIn = 'Sign In',\r\n SignOut = 'Sign Out'\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'app-wfh-attendance',\r\n templateUrl: './wfh-attendance.component.html',\r\n styleUrls: ['./wfh-attendance.component.scss']\r\n})\r\n\r\n\r\nexport class WfhAttendanceComponent implements OnInit {\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n locations = ['Work From Office', 'Work From Home'];\r\n location = new FormControl({value:\"Work From Home\",disabled:true}, [Validators.required]);\r\n remarks = new FormControl(null);\r\n saveSignIn : wfhAttendance = new wfhAttendance();\r\n dataSource: MatTableDataSource = new MatTableDataSource();\r\n btnLabel:string;\r\n diasbaleButton:boolean = false;\r\n empCode : string;\r\n empName :string;\r\n empId:number;\r\n projectDetails:any;\r\n isDisabled=true;\r\n\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort;\r\n selectedColumns = ['Employee_Code','punch-In-time','punch-out-time','Date','Summary'];\r\n punchesInfo=[];\r\n punchesData = []\r\n \r\n\r\n constructor(private _service : WfhAttendanceService,private _snackBar: MatSnackBar,public dialog: MatDialog,private router : Router,private service: AssignReportingManagerService) { }\r\n\r\n ngOnInit(): void {\r\n \r\n this.empCode = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).employeeCode;\r\n this.empName = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).fullName;\r\n this.empId = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).employeeId;\r\n this.getLoginStatus(); \r\n this.GetAssociateProject(); \r\n }\r\n GetAssociateProject()\r\n {\r\n this.service.GetProjects(this.empId).subscribe((res: any) => {\r\n this.projectDetails=res;\r\n let project= this.projectDetails.filter(x=>x.ProjectName.toLowerCase()==\"THF IT Helpdesk\".toLowerCase());\r\n if(project.length!=0)\r\n {\r\n if(!this.isDisabled)\r\n {\r\n this.location.enable();\r\n }\r\n else{\r\n this.location.disable();\r\n }\r\n this.location.setValue(\"Work From Office\");\r\n }\r\n });\r\n }\r\n\r\n getLoginStatus(){\r\n this._service.GetloginStatus(this.empCode).subscribe((res:any)=>{\r\n this.diasbaleButton =false\r\n if((res.Item == AttendanceSigningCode.Initial)){\r\n this.btnLabel = AttendanceSigningCode.SignIn;\r\n this.isDisabled=false;\r\n }\r\n else if(res.Item == AttendanceSigningCode.SignedIn){\r\n this.isDisabled=true;\r\n this.btnLabel = AttendanceSigningCode.SignOut; \r\n this.getAttendanceDetails();\r\n }\r\n\r\n else if(res.Item == AttendanceSigningCode.SignedOut){\r\n this.btnLabel = AttendanceSigningCode.SignIn;\r\n \r\n this.getAttendanceDetails();\r\n }\r\n else{\r\n let dialogRef = this.dialog.open(BiometricAttendanceFoundDialogComponent, {\r\n // height: '400px',\r\n // width: '600px',\r\n });\r\n dialogRef.afterClosed().subscribe(() => {\r\n this.router.navigate(['/associates/biometricattendance'])\r\n \r\n });\r\n }\r\n\r\n },(error)=>{\r\n this.btnLabel = AttendanceSigningCode.SignIn\r\n this.diasbaleButton = true\r\n this._snackBar.open('Error Ocurred, Please try again!', 'x', {\r\n duration: 1000, \r\n panelClass: ['error-alert'], \r\n horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n })\r\n }\r\n onButtonClick(event){\r\n this.saveSignIn = new wfhAttendance()\r\n if(event.target.innerText == AttendanceSigningCode.SignIn){\r\n this.saveSignIn.SignedStatus = AttendanceSigningCode.SignedIn;\r\n }\r\n else if(event.target.innerText == AttendanceSigningCode.SignOut){\r\n this.saveSignIn.SignedStatus = AttendanceSigningCode.SignedOut;\r\n }\r\n\r\n this.saveAttendanceDetails();\r\n }\r\n\r\n getAttendanceDetails(){\r\n this._service.GetAttendanceDetails(this.empCode).subscribe((res:any)=>{\r\n let attendanceData =[];\r\n this.punchesInfo =[];\r\n this.punchesData = [];\r\n this.remarks.setValue(res.Item.Remarks)\r\n if(!(res.Item.SUMMARY == 'Punches Not In Pair')){\r\n res.Item.SUMMARY = ' - '\r\n }\r\n attendanceData.push(res.Item); \r\n this.punchesInfo = res.Item.PunchInfoLog.split(',');\r\n // this.punchesInfo = [\"Signed In : 12:09$Location : WFH\",\"Signed_Out : 14:49$Location : WFH\"]\r\n this.punchesInfo.forEach((element)=>{\r\n let val = element.split(\"$\");\r\n let SignedStatus = val[0];\r\n let location = val[1].split(\":\");\r\n this.punchesData.push({label: SignedStatus,value:location[1]})\r\n })\r\n this.dataSource.data = attendanceData;\r\n\r\n },(error)=>{\r\n\r\n })\r\n }\r\n\r\n saveAttendanceDetails(){\r\n //doint the same for sign in and signout\r\n // if(this.location.value == null){\r\n // this._snackBar.open('Please select location!', 'x', {\r\n // duration: 1000,\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top'\r\n // });\r\n // return\r\n // }\r\n this.saveSignIn.asscociateId = this.empCode;\r\n this.saveSignIn.asscociateName = this.empName;\r\n this.saveSignIn.remarks = this.remarks.value;\r\n if(this.location.value == 'Work From Home'){\r\n this.saveSignIn.location = 'WFH';\r\n }\r\n else if(this.location.value == 'Client Location'){\r\n this.saveSignIn.location = 'CL';\r\n }\r\n else if(this.location.value=='Work From Office')\r\n {\r\n this.saveSignIn.location = 'WFO';\r\n }\r\n else{\r\n this.saveSignIn.location = this.location.value\r\n }\r\n \r\n this._service.SaveAttendanceDetais(this.saveSignIn).subscribe((res:any)=>{\r\n this.getLoginStatus();\r\n this.clearFormData();\r\n if(!res.IsSuccessful){\r\n this._snackBar.open('Failed' + this.btnLabel + '!', 'x', {\r\n duration: 1000, \r\n panelClass: ['error-alert'], \r\n horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n }\r\n else{\r\n if(this.btnLabel == AttendanceSigningCode.SignIn){\r\n this.location.disable();\r\n this._snackBar.open('Signed-in Successfully!', 'x', {\r\n duration: 1000, \r\n panelClass: ['success-alert'], \r\n horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n }\r\n else if(this.btnLabel == AttendanceSigningCode.SignOut && res.IsSuccessful){\r\n this._snackBar.open('Signed-out Successfully!', 'x', {\r\n duration: 1000, \r\n panelClass: ['success-alert'], \r\n horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n }\r\n }\r\n },(error)=>{\r\n this.clearFormData();\r\n this._snackBar.open('Failed' + AttendanceSigningCode.SignOut +'!', 'x', {\r\n duration: 1000, \r\n panelClass: ['error-alert'], \r\n horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n\r\n })\r\n }\r\n clearFormData(){\r\n // this.location.reset();\r\n this.remarks.reset();\r\n }\r\n\r\n}\r\n","\r\n \r\n
\r\n \r\n
\r\n

Location for Sign In / Sign Out

\r\n
\r\n \r\n
\r\n \r\n \r\n Location\r\n *\r\n \r\n \r\n \r\n {{item}}\r\n \r\n \r\n Location is Required\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Remarks\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n

Sign In / Sign Out History

\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
Signed History
Not Yet Signed In
{{status.label}}
\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 \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 \r\n \r\n \r\n\r\n\r\n
Employee Code {{element.AsscociateId}} \r\n \r\n Sign In Time  info {{element.InTime}} Sign Out Time \r\n  info\r\n {{element.OutTime}} Date {{element.Punch1_Date | date: 'dd/MM/yyyy'}} Summary
{{element.SUMMARY}}
Not Yet Signed In
\r\n\r\n\r\n\r\n\r\n
","import { EmergencyContactDetail } from \"./family.model\";\r\n\r\n// import { Qualification } from './education.model'\r\n// import { AssociateSkill } from './associate-skills.model'\r\n\r\nexport class Associate {\r\n public Id: number;\r\n public KRARoleId: number;\r\n //public EmpCode: string;//needs to be removed\r\n public EmployeeCode: string;\r\n public EmpId: number;\r\n public Year: number;\r\n public roleId: number;\r\n get name(): string {\r\n return this.FirstName + \" \" + this.MiddleName + \" \" + this.LastName;\r\n }\r\n public FirstName: string;\r\n public MiddleName: string;\r\n public LastName: string;\r\n public Gender: string;\r\n public PersonalEmailAddress: string;\r\n public JoinDate: Date;\r\n public DateofJoining: string;\r\n public DateOfJoining: string;\r\n public Birthdate: string;\r\n public DateofBirth: Date;\r\n public MaritalStatus: string;\r\n public BloodGroup: string;\r\n public Nationality: string;\r\n public Pannumber: string;\r\n public PassportNumber: string;\r\n public PassportIssuingOffice: string;\r\n public AadharNumber: string;\r\n public Uannumber: string;\r\n public Bgvstatus: string;\r\n public BgvStatusId: number;\r\n public BgvinitiatedDate: Date;\r\n public BgvStartDate: string;\r\n public BgvcompletionDate: Date;\r\n public BgvCompletionDate: string;\r\n public Pfnumber: string;\r\n public joiningStatusID: number; //needs to be removed\r\n public GradeId: any;\r\n public GradeName: string;\r\n public DesignationId: number;\r\n public Designation: string;\r\n public EmploymentType: string;\r\n public EmployeeTypeId: number;\r\n public Technology: string;\r\n public TechnologyID: any;\r\n public TechnologyId: any;\r\n public DepartmentId: any;\r\n public DepartmentDesc: string;\r\n public HRAdvisorName: string;\r\n public Hradvisor: string;\r\n public ManagerId: any;\r\n public ReportingManager: number;\r\n public ReasonForDropOut: string;\r\n public EmploymentStartDate: Date;\r\n public StartDateofEmployment: string;\r\n public CareerBreak: number;\r\n public Qualifications: any[];\r\n public PrevEmploymentDetails: any[];\r\n public ProfReferences: any[];\r\n public RelationsInfo: any[];\r\n public Projects: any[];\r\n public contactDetails: any[];\r\n public contacts: any;\r\n public contactDetailsOne: any;\r\n public contactDetailsTwo: any;\r\n // public contactDetailsOne: EmergencyContactDetail;\r\n // public contactDetailsTwo: EmergencyContactDetail;\r\n public contactDetailsThird: any;\r\n public RecruitedBy: string;\r\n public MobileNo: number;\r\n public TelephoneNo: number;\r\n public associateType: string; //needs to be removed\r\n public EmployeeId: number;\r\n public PassportDateValidUpto: string;\r\n public UserId: number;\r\n public RoleTypeId :any; \r\n public associateState: string; \r\n}\r\n\r\n\r\nexport class ContactDetails {\r\n public addressType: string;\r\n public currentAddress1: string;\r\n public currentAddress2: string;\r\n public currentAddCity: string;\r\n public currentAddState: string;\r\n public currentAddZip: string;\r\n public currentAddCountry: string;\r\n public permanentAddress1: string;\r\n public permanentAddress2: string;\r\n public permanentAddCity: string;\r\n public permanentAddState: string;\r\n public permanentAddZip: string;\r\n public permanentAddCountry: string;\r\n // public address : string;\r\n public address: any;\r\n}\r\n","export class BookParkingSlot {\r\n emailID: string;\r\n vehicleNumber: string;\r\n placeName: string;\r\n}\r\n\r\nexport class parkingReportData {\r\n Email: string;\r\n VehicleNumber: string;\r\n BookedDate: string;\r\n BookedTime: string;\r\n Location: string;\r\n}\r\n\r\nexport class parkingReportObj {\r\n startDate: string;\r\n enddate: string;\r\n location: string;\r\n}\r\n\r\nexport class parkingReportResponse {\r\n Items :parkingReportData[];\r\n}","\r\nexport class EmployeeDetails {\r\n EmployeeId: number;\r\n EmpName: string;\r\n ReportingManagerId: number;\r\n ReportingManager: string;\r\n }\r\n\r\nexport class NonDeliveryAssociates {\r\n Id: number;\r\n Name: string;\r\n DepartmentId: number;\r\n}\r\n\r\nexport class updateAssociateRMDetais extends EmployeeDetails {\r\n // reportingManagerId: number;\r\n associates: EmployeeDetails[];\r\n}","export interface Relation {\r\n Name: string;\r\n RelationShip: string;\r\n DateOfBirth?: Date;\r\n BirthDate: string;\r\n Occupation: string;\r\n}\r\n\r\nexport class EmergencyContactDetail {\r\n // isPrimary: boolean;\r\n // empID: number;\r\n // contactName: string;\r\n // contactType: string;\r\n // birthDate: Date;\r\n // occupation: string;\r\n // relationship: string;\r\n // addressLine1: string;\r\n // addressLine2: string;\r\n // city: string;\r\n // country: string;\r\n // state: string;\r\n // zip: number;\r\n // telephoneNo: number;\r\n // MobileNo: number;\r\n // emailAddress:string;\r\n //above needs to be removed\r\n Id: number;\r\n EmployeeId:number;\r\n ContactType:string;\r\n ContactName:string;\r\n Relationship:string;\r\n AddressLine1:string;\r\n AddressLine2:string;\r\n TelePhoneNo:string;\r\n MobileNo:number;\r\n EmailAddress:string;\r\n City:string;\r\n Country:string;\r\n PostalCode:string;\r\n State:string;\r\n IsPrimary:boolean;\r\n}","class ProfessionalDetail {\r\n Id:number;\r\n EmployeeId:number;\r\n ProgramType: number;\r\n Institution: string;\r\n Specialization: string;\r\n ValidFrom: number;\r\n ValidUpto: number;\r\n}\r\nclass Certification extends ProfessionalDetail {\r\n SkillGroupId: number;\r\n SkillGroupName:string;\r\n SkillName:string;\r\n CertificationId: number;\r\n}\r\nclass MemberShip extends ProfessionalDetail {\r\n ProgramTitle: string;\r\n}\r\nclass Professional extends ProfessionalDetail {\r\n SkillGroupId: number;\r\n CertificationId: number;\r\n ProgramTitle: string;\r\n}\r\n\r\nexport { Certification, MemberShip, Professional }\r\n","export class NotPunchInDate {\r\n associateId:string;\r\n fromDate : string;\r\n toDate : string;\r\n}\r\n\r\nexport class AttendanceRegularization {\r\n RegularizationAppliedDate : string;\r\n SubmittedBy : string;\r\n Location : string;\r\n InTime : string;\r\n OutTime : string;\r\n SubmittedTo : number;\r\n RemarksByRM:string;\r\n Remarks : string;\r\n AssociateName?: string;\r\n ProjectName?: string;\r\n EmployeeId?: number;\r\n Status?: number;\r\n ApprovedBy?: number;\r\n IsActive?: boolean;\r\n IsApproved?:boolean;\r\n RegularizationDates: Array;\r\n RegularizationCount : number;\r\n RejectedBy:number;\r\n RejectedDate:Date\r\n}\r\n","export class SendMailModel {\r\nFormMailContent:string;\r\nFormMailSubject:string;\r\nFormMailCC:string;\r\nFormMailEmpId:number;\r\n}","export class wfhAttendance {\r\n Id : number;\r\n AsscociateId :string;\r\n AsscociateName : string;\r\n Punch1_Date : string;\r\n Punch2_Date : string;\r\n InTime : string;\r\n OutTime : string;\r\n WorkTime_HHMM : string;\r\n SUMMARY : string;\r\n Location : string;\r\n SignedStatus : number;\r\n PunchInfoLog : string; \r\n asscociateId : string;\r\n asscociateName: string;\r\n location:string\r\n remarks:string;\r\n}","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { ProspectiveAssociateComponent } from './components/prospective-associate/prospective-associate.component';\r\nimport { AssociateinformationComponent } from '../onboarding/components/associateinformation/associateinformation.component';\r\nimport { AssociateJoiningComponent } from '../onboarding/components/associate-joining/associate-joining.component';\r\nimport { ProspectiveToAssociateComponent } from '../onboarding/components/prospective-to-associate/prospective-to-associate.component';\r\nimport { ProjectassociateComponent } from '../onboarding/components/projectassociate/projectassociate.component';\r\nimport { AssociateuploadComponent } from '../onboarding/components/associateupload/associateupload.component';\r\nimport { AddProspectiveAssociateComponent } from '../onboarding/components/add-prospective-associate/add-prospective-associate.component';\r\nimport { PersonalDetailsComponent } from '../onboarding/components/personal-details/personal-details.component';\r\nimport { FamilyAssociateComponent } from '../onboarding/components/family-associate/family-associate.component';\r\n// tslint:disable-next-line:max-line-length\r\nimport { EditProspectiveAssociateComponent } from '../onboarding/components/edit-prospective-associate/edit-prospective-associate.component';\r\nimport { SkillsComponent } from '../onboarding/components/skills/skills.component';\r\nimport { OnboardingComponent } from '../onboarding/components/onboarding/onboarding.component';\r\nimport { AssociateSkillsComponent } from './components/associate-skills/associate-skills.component';\r\nimport { WelcomeAssociateEmailComponent } from './components/welcome-associate-email/welcome-associate-email.component';\r\nimport { ChangeRmForNonDeliveryComponent } from './components/change-rm-for-non-delivery/change-rm-for-non-delivery.component';\r\nimport { AssociateParkingComponent } from './components/associate-parking/associate-parking.component';\r\nimport { BiometricAttendanceReportComponent } from './components/biometric-attendance-report/biometric-attendance-report.component';\r\nimport { ManagerAttendanceReportComponent } from '../reports/components/manager-attendance-report/manager-attendance-report.component';\r\nimport { ManagerBiometricAttendanceReportComponent } from './components/manager-biometric-attendance-report/manager-biometric-attendance-report.component';\r\nimport { ParkingSlotReportComponent } from './parking-slot-report/parking-slot-report.component';\r\nimport { WfhAttendanceComponent } from './components/wfh-attendance/wfh-attendance.component';\r\nimport { RegulariationComponent } from './components/regulariation/regulariation.component';\r\nimport { ViewRegularizationAppliedDaysComponent } from './components/view-regularization-applied-days/view-regularization-applied-days.component';\r\nimport { ViewBiometricAttendanceComponent } from './components/view-biometric-attendance/view-biometric-attendance.component';\r\nimport { UploadLeaveDataComponent } from './components/upload-leave-data/upload-leave-data.component';\r\nimport { AttendanceMusterReportComponent } from './components/attendance-muster-report/attendance-muster-report.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: OnboardingComponent,\r\n children: [\r\n {path: 'prospectivetoassociate/:type/:id/:subtype', component: ProspectiveToAssociateComponent, data: { title: 'Profile Update' }},\r\n {path: 'prospectiveassociate', component: ProspectiveAssociateComponent, data: { title: 'Prospective Associates' }},\r\n {path: 'addprospectiveassociate', component: AddProspectiveAssociateComponent, data: { title: 'Prospective Associate' }},\r\n {path: 'associateinformation', component: AssociateinformationComponent, data: { title: 'Associate Information' }},\r\n {path: 'associatejoining', component: AssociateJoiningComponent, data: { title: 'Associate Joining' }},\r\n {path: 'projectassociate', component: ProjectassociateComponent},\r\n {path: 'assosiateupload', component: AssociateuploadComponent},\r\n { path : 'personaldetails/:type/:id', component : PersonalDetailsComponent},\r\n {path: 'associatejoining', component: AssociateJoiningComponent},\r\n {path: 'family-associate/:id', component: FamilyAssociateComponent},\r\n {path: 'editprospectiveassociate', component: EditProspectiveAssociateComponent, data: { title: 'Edit Prospective Associate' }},\r\n {path: 'skills/:id', component: SkillsComponent},\r\n {path: 'skill', component: AssociateSkillsComponent, data:{title: 'Skills'}},\r\n // {path:'edit-prospective-associate',component:EditProspectiveAssociateComponent}\r\n {path: 'editprospectiveassociate/:id', component: EditProspectiveAssociateComponent, data: { title: 'Edit Prospective Associate' }},\r\n {path: 'sendwelcomeemail', component: WelcomeAssociateEmailComponent, data: { title: 'Send Email' }},\r\n {path: 'changeRM', component: ChangeRmForNonDeliveryComponent, data: { title: 'Assign RM to Service Departments' }},\r\n {path: 'bookparkingslot', component: AssociateParkingComponent, data: { title: 'Parking Slots'}},\r\n {path: 'biometricattendance', component: BiometricAttendanceReportComponent, data: { title: 'Attendance Report'}},\r\n {path: 'biometricattendancereport',component:ManagerBiometricAttendanceReportComponent,data: { title: 'Attendance Report'}},\r\n {path: 'parkingslotreport', component: ParkingSlotReportComponent, data: { title: 'Parking Slots Report'}},\r\n {path: 'workfromhomeSignIn', component: WfhAttendanceComponent, data: { title: 'Work From Home'}},\r\n {path: 'regularization', component: RegulariationComponent, data: { title: 'Apply Regularization'}},\r\n {path: 'viewDays/:id/:associateName', component :ViewRegularizationAppliedDaysComponent, data : {title : 'View Regularizations'}},\r\n {path: 'viewAttendance', component: ViewBiometricAttendanceComponent, data: { title: 'Attendance'}},\r\n {path: 'associateleave', component : UploadLeaveDataComponent, data : {title:'Upload Leave Data'}},\r\n {path: 'attendancemusterreport', component : AttendanceMusterReportComponent, data : {title:'Attendance Muster'}}\r\n\r\n ]}\r\n\r\n];\r\n\r\n@NgModule({\r\n imports:\r\n [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class OnboardingRoutingModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule, DatePipe } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { OnboardingRoutingModule } from './onboarding-routing.module';\r\nimport { AllAngularMaterialModule } from '../plugins/all-angular-material/all-angular-material.module';\r\nimport { AddProspectiveAssociateComponent } from './components/add-prospective-associate/add-prospective-associate.component';\r\nimport { AssociateEmploymentComponent } from './components/associate-employment/associate-employment.component';\r\nimport { AssociateJoiningComponent } from './components/associate-joining/associate-joining.component';\r\nimport { AssociateProfessionalComponent } from './components/associate-professional/associate-professional.component';\r\nimport { AssociateinformationComponent } from './components/associateinformation/associateinformation.component';\r\nimport { AssociateuploadComponent } from './components/associateupload/associateupload.component';\r\nimport { EditProspectiveAssociateComponent } from './components/edit-prospective-associate/edit-prospective-associate.component';\r\nimport { EducationAssociateComponent } from './components/education-associate/education-associate.component';\r\nimport { FamilyAssociateComponent } from './components/family-associate/family-associate.component';\r\nimport { PersonalDetailsComponent } from './components/personal-details/personal-details.component';\r\nimport { ProjectassociateComponent } from './components/projectassociate/projectassociate.component';\r\nimport { ProspectiveAssociateComponent } from './components/prospective-associate/prospective-associate.component';\r\nimport { ProspectiveToAssociateComponent } from './components/prospective-to-associate/prospective-to-associate.component';\r\nimport { SkillsComponent } from './components/skills/skills.component';\r\nimport {OnboardingComponent} from './components/onboarding/onboarding.component';\r\nimport {MasterLayoutModule} from '../master-layout/master-layout.module'\r\nimport { ValidationsDirectiveModule } from 'src/app/validations.directive';\r\nimport { AssociateSkillsComponent } from './components/associate-skills/associate-skills.component';\r\nimport { DropDownSuggestionDirectiveModule } from 'src/app/drop-down-suggestion.directive';\r\nimport { RequirematchDirectiveModule } from 'src/app/requirematch.directive';\r\nimport { NgxSpinnerModule } from 'ngx-spinner';\r\nimport { SendEmailComponent } from './components/send-email/send-email.component';\r\nimport { WelcomeAssociateEmailComponent } from './components/welcome-associate-email/welcome-associate-email.component';\r\nimport { AssociateSkillDialogComponent } from './components/associate-skill-dialog/associate-skill-dialog.component';\r\nimport { ChangeRmForNonDeliveryComponent } from './components/change-rm-for-non-delivery/change-rm-for-non-delivery.component';\r\nimport { AssignRmToNonDeliveryComponent } from './components/assign-rm-to-non-delivery/assign-rm-to-non-delivery.component';\r\nimport {MatSortModule} from '@angular/material/sort';\r\nimport { NgxMatSelectSearchModule } from 'ngx-mat-select-search';\r\nimport { AssociateParkingComponent } from './components/associate-parking/associate-parking.component';\r\nimport { BiometricAttendanceReportComponent } from './components/biometric-attendance-report/biometric-attendance-report.component';\r\nimport { FullCalendarModule } from '@fullcalendar/angular';\r\nimport dayGridPlugin from '@fullcalendar/daygrid';\r\nimport { MatTableExporterModule } from 'mat-table-exporter';\r\nimport { BiometricAttendanceDialogComponent } from './components/biometric-attendance-dialog/biometric-attendance-dialog.component';\r\nimport { ManagerBiometricAttendanceReportComponent } from './components/manager-biometric-attendance-report/manager-biometric-attendance-report.component';\r\nimport { ParkingSlotReportComponent } from './parking-slot-report/parking-slot-report.component';\r\nimport { WfhAttendanceComponent } from './components/wfh-attendance/wfh-attendance.component';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { BiometricAttendanceFoundDialogComponent } from './components/biometric-attendance-found-dialog/biometric-attendance-found-dialog.component';\r\nimport { RegulariationComponent } from './components/regulariation/regulariation.component';\r\n\r\nimport { ViewRegularizationAppliedAssociatesComponent } from './components/view-regularization-applied-associates/view-regularization-applied-associates.component';\r\nimport { ViewRegularizationAppliedDaysComponent } from './components/view-regularization-applied-days/view-regularization-applied-days.component';\r\nimport { ViewBiometricAttendanceComponent } from './components/view-biometric-attendance/view-biometric-attendance.component';\r\nimport {NgxMaterialTimepickerModule} from 'ngx-material-timepicker';\r\nimport { UploadLeaveDataComponent } from './components/upload-leave-data/upload-leave-data.component';\r\nimport {MatProgressBarModule} from '@angular/material/progress-bar';\r\nimport { AttendanceMusterReportComponent } from './components/attendance-muster-report/attendance-muster-report.component'\r\n\r\nFullCalendarModule.registerPlugins([ \r\n dayGridPlugin \r\n]);\r\n@NgModule({\r\n // tslint:disable-next-line:max-line-length\r\n declarations: [OnboardingComponent, AddProspectiveAssociateComponent, AssociateEmploymentComponent, AssociateJoiningComponent, AssociateProfessionalComponent, \r\n AssociateinformationComponent, AssociateuploadComponent, \r\n EditProspectiveAssociateComponent, EducationAssociateComponent, \r\n FamilyAssociateComponent, PersonalDetailsComponent, ProjectassociateComponent, \r\n ProspectiveAssociateComponent, ProspectiveToAssociateComponent, \r\n SkillsComponent, AssociateSkillsComponent,SendEmailComponent, \r\n WelcomeAssociateEmailComponent, AssociateSkillDialogComponent, \r\n ChangeRmForNonDeliveryComponent, AssignRmToNonDeliveryComponent, \r\n AssociateParkingComponent, BiometricAttendanceReportComponent, \r\n BiometricAttendanceDialogComponent, ManagerBiometricAttendanceReportComponent,\r\n ParkingSlotReportComponent, WfhAttendanceComponent, BiometricAttendanceFoundDialogComponent, \r\n RegulariationComponent, ViewRegularizationAppliedAssociatesComponent, \r\n ViewRegularizationAppliedDaysComponent,ViewBiometricAttendanceComponent, UploadLeaveDataComponent, AttendanceMusterReportComponent],\r\n \r\n imports: [\r\n CommonModule,\r\n OnboardingRoutingModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n AllAngularMaterialModule,\r\n MasterLayoutModule,\r\n ValidationsDirectiveModule,\r\n DropDownSuggestionDirectiveModule,\r\n RequirematchDirectiveModule,\r\n NgxSpinnerModule,\r\n MatSortModule,\r\n NgxMatSelectSearchModule,\r\n FullCalendarModule, \r\n MatTableExporterModule,\r\n FlexLayoutModule,\r\n NgxMaterialTimepickerModule,\r\n MatProgressBarModule\r\n \r\n \r\n \r\n ],\r\n exports : [ViewRegularizationAppliedAssociatesComponent],\r\n providers:[DatePipe],\r\n entryComponents:[AssociateSkillDialogComponent]\r\n})\r\nexport class OnboardingModule { }\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { FileExporterService } from 'src/app/core/services/file-exporter.service';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { parkingReportData, parkingReportObj, parkingReportResponse } from '../models/bookParking.model';\r\nimport { ParkingServiceService } from '../services/parking-service.service';\r\n\r\n@Component({\r\n selector: 'app-parking-slot-report',\r\n templateUrl: './parking-slot-report.component.html',\r\n styleUrls: ['./parking-slot-report.component.scss']\r\n})\r\nexport class ParkingSlotReportComponent implements OnInit {\r\n parkingFilterForm : FormGroup;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n today = new Date();\r\n parkingReportData : parkingReportData[] = [];\r\n displayColumns = ['Email','VehicleNumber','BookedDate', 'BookedTime','Location'];\r\n dataSource : MatTableDataSource = new MatTableDataSource([]);\r\n parkingReportObj:parkingReportObj;\r\n parkingLocations = ['GALAXY'];\r\n\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @ViewChild(MatSort) matSort: MatSort;\r\n\r\n constructor(private fileExporterService:FileExporterService,private service:ParkingServiceService, private _snackBar : MatSnackBar,private spinner: NgxSpinnerService ) { }\r\n\r\n ngOnInit(): void {\r\n this.createParkingFilter();\r\n }\r\n createParkingFilter(){\r\n this.parkingFilterForm = new FormGroup({\r\n startDate : new FormControl(null),\r\n endDate : new FormControl(null),\r\n location : new FormControl(null),\r\n })\r\n }\r\n\r\n applyFilter() {\r\n this.parkingReportObj = new parkingReportObj();\r\n this.parkingReportObj.startDate = this.parkingFilterForm.value.startDate;\r\n this.parkingReportObj.enddate = this.parkingFilterForm.value.endDate;\r\n this.parkingReportObj.location = this.parkingFilterForm.value.location;\r\n this.spinner.show();\r\n this.service.getParkingSlotsReport(this.parkingReportObj).subscribe((res:parkingReportResponse)=>{\r\n this.parkingReportData = res.Items;\r\n this.dataSource = new MatTableDataSource(this.parkingReportData);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.matSort;\r\n this.spinner.hide();\r\n },(error)=>{\r\n this.spinner.hide();\r\n if(error.error.Items.length == 0){\r\n this._snackBar.open('No Records Found', 'x', {\r\n duration: 5000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n else{\r\n this._snackBar.open('Failed to fetch the data', 'x', {\r\n duration: 5000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n this.parkingReportData = [];\r\n this.dataSource = new MatTableDataSource(null);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.matSort;\r\n })\r\n }\r\n\r\n clearInput(){\r\n this.parkingFilterForm.reset();\r\n this.parkingReportData = [];\r\n this.dataSource = new MatTableDataSource(null);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.matSort;\r\n }\r\n\r\n exportToExcel() {\r\n const columnsForExcel = this.parkingReportData.map(x => ({\r\n 'Email': x.Email,\r\n 'Vehicle Number': x.VehicleNumber,\r\n 'Booked Date': x.BookedDate,\r\n 'Booked Time': x.BookedTime,\r\n 'Location': x.Location\r\n }));\r\n this.fileExporterService.exportToExcel(columnsForExcel, 'Parking Slots Report');\r\n }\r\n\r\n}\r\n","\r\n \r\n Filter Parking Slots Data\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n Start Date\r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n \r\n End Date\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Choose Location\r\n \r\n {{location |\r\n titlecase}}\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 \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 \r\n \r\n \r\n \r\n \r\n \r\n\r\n
Email {{element.Email}} Vehicle Number {{element.VehicleNumber}} Booked Date {{element.BookedDate}} Booked Time {{element.BookedTime}} Location {{element.Location | titlecase}}
No Records Found
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n\r\n\r\n\r\n

Loading ...

\r\n
","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'booleanToString' })\r\nexport class BooleanToStringPipe implements PipeTransform {\r\n transform(value: boolean): string {\r\n if(value == null)\r\n {\r\n return null;\r\n }\r\n return ( value == true || value.toString().toLowerCase() == \"true\" ) ? 'Yes' : 'No'\r\n }; \r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { environment } from 'src/environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { DepartmentDetails } from \"../../master-layout/models/role.model\";\r\nimport { EmployeeDetails } from \"../../onboarding/models/changeRM.model\";\r\nimport { NonDeliveryAssociates } from \"../../onboarding/models/changeRM.model\"\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AssignRmForNonDeliveryService {\r\n\r\n private employeeServiceUrl = environment.EmployeeMicroService;\r\n private adminServiceUrl = environment.AdminMicroService;\r\n private resources = servicePath.API.ChangeRmForNonDelivery;\r\n\r\n constructor(private httpClient : HttpClient) { }\r\n\r\n public getDepartments(){\r\n let url = this.adminServiceUrl + this.resources.GetAllDepartment;\r\n return this.httpClient.get(url)\r\n\r\n }\r\n\r\n public getEmpListByDeptId(departmentId:number){\r\n let url = this.employeeServiceUrl + this.resources.GetAssociateRMDetailsByDepartmentId + departmentId;\r\n return this.httpClient.get(url)\r\n\r\n }\r\n\r\n public getNonDeliveryAssociates(){\r\n let url = this.employeeServiceUrl + this.resources.GetNonDeleveryAssociates;\r\n return this.httpClient.get(url)\r\n }\r\n\r\n public assignRmByDeptOrByAssociate(updateRmObj){\r\n let url = this.employeeServiceUrl + this.resources.UpdateAssociateRMDetails;\r\n return this.httpClient.post(url,updateRmObj)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { environment } from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class AssociateInformationService {\r\n private _serviceUrl = environment.ServerUrl;\r\n private EmployeeMicroService = environment.EmployeeMicroService; \r\n private resources = servicePath.API.AssociateInformation;\r\n private empSendMail = servicePath.API.WelcomeEmail;\r\n httpOptionsForFormDataRegister = {\r\n headers: new HttpHeaders(\r\n { \r\n 'Accept': 'multipart/form-data' \r\n }), \r\n responseType : 'text' as 'json'\r\n \r\n };\r\n \r\n constructor(private httpClient : HttpClient ) { }\r\n\r\n public getAssociates(searchstring: string, pageIndex: number, pageSize: number){\r\n return this.httpClient.get(this.EmployeeMicroService + this.resources.getInfoAssociates+'?searchString='+searchstring+'&pageIndex='+pageIndex+'&pageSize='+pageSize)\r\n }\r\n\r\n public WelcomeEmail(){\r\n return this.httpClient.get(this.EmployeeMicroService + this.empSendMail.WelcomeEmail);\r\n }\r\n\r\n public sendWelcomeEmail(reqObj){\r\n return this.httpClient.post(this.EmployeeMicroService + this.empSendMail.SendWelcomeEmail,reqObj,this.httpOptionsForFormDataRegister)\r\n }\r\n\r\n public syncProspectiveAssociateDataToHRMS(){\r\n return this.httpClient.get(this.EmployeeMicroService + this.resources.prospectiveToHrms)\r\n }\r\n\r\n public getEmployeeCount(searchString = ''){\r\n return this.httpClient.get(this.EmployeeMicroService + this.resources.getEmployeeCount+searchString)\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { environment } from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AssociatejoiningService {\r\n private EmployeeMicroService = environment.EmployeeMicroService; \r\n private resources = servicePath.API.AssociateJoining;\r\n constructor(private httpClient : HttpClient ) { }\r\n\r\n public getAssociates(){\r\n return this.httpClient.get(this.EmployeeMicroService + this.resources.getJoinedAssociates)\r\n }\r\n\r\n}\r\n","import { Injectable,Inject } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { environment } from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { Associate } from '../models/associate.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EducationService {\r\n private _resources: any;\r\n private _serverURL = environment.ServerUrl;\r\n private EmployeeMicroService = environment.EmployeeMicroService;\r\n constructor( @Inject(HttpClient) private _httpClient: HttpClient) {\r\n this._resources = servicePath.API.education;\r\n}\r\n\r\n\r\nSaveEducationDetails(details: Associate)\r\n{ \r\n let url = this.EmployeeMicroService + this._resources.save;\r\n return this._httpClient.post(url,details) \r\n }\r\n\r\n\r\n public GetQualifications(empId : number){\r\n var url = this.EmployeeMicroService + this._resources.list + empId;\r\n return this._httpClient.get(url)\r\n}\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { Associate } from '../models/associate.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EmploymentService {\r\n private _resources: any;\r\n private _serverURL: string;\r\n private EmployeeMicroService = environment.EmployeeMicroService;\r\n constructor(private _httpclient: HttpClient) {\r\n this._serverURL = environment.ServerUrl;\r\n this._resources = servicePath.API.employment;\r\n }\r\n\r\n public GetEmploymentDetails(id: number){\r\n var url = this.EmployeeMicroService + this._resources.GetEmploymentDetails + id;\r\n return this._httpclient.get(url);\r\n \r\n}\r\n\r\n\r\npublic GetProfReferenceDetails(id: number){\r\n var url = this.EmployeeMicroService + this._resources.GetProfReferenceDetails + id;\r\n return this._httpclient.get(url);\r\n\r\n}\r\n\r\nSaveEmploymentDetails(details: Associate) {\r\n let _url = this.EmployeeMicroService + this._resources.SaveEmployementDetails;\r\n return this._httpclient.post(_url, details); \r\n}\r\n\r\n}\r\n\r\n\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Associate } from '../models/associate.model';\r\nimport { environment } from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\n \r\n @Injectable({ \r\n providedIn: 'root'\r\n })\r\n \r\nexport class FamilyService \r\n{ \r\n private _resources = servicePath.API.family;\r\n private _serverURL: string;\r\n private EmployeeMicroService = environment.EmployeeMicroService; \r\n \r\n constructor(private httpClient: HttpClient) {}\r\n \r\n public GetFamilyDetails(id: number) \r\n {\r\n return this.httpClient.get(this.EmployeeMicroService + this._resources.list + id);\r\n }\r\n\r\n public SaveFamilyDetails(details: Associate) \r\n { \r\n let _url = this.EmployeeMicroService + this._resources.save;\r\n return this.httpClient.post(_url, details);\r\n \r\n }\r\n public DeleteFamilyDetails(familyDetailsID: number) \r\n {\r\n //let _url = this._serverURL + this._resources.deleteFamilyDetails + familyDetailsID;\r\n //return this._http.post(_url, familyDetailsID ); \r\n }\r\n \r\n}\r\n \r\n \r\n \r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { environment } from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ParkingServiceService {\r\n private employeeMicroService = environment.EmployeeMicroService;\r\n private serverUrl = servicePath.API.ParkingBookingSlot;\r\n\r\n constructor(private http : HttpClient) { }\r\n\r\n public bookSlot(saveObj){\r\n let url = this.employeeMicroService + this.serverUrl.BookParkingSlot;\r\n return this.http.post(url,saveObj);\r\n }\r\n\r\n public getSlots(selectedPlace:string){\r\n let url = this.employeeMicroService + this.serverUrl.GetSlotDetails + selectedPlace;\r\n return this.http.get(url);\r\n }\r\n\r\n public getAssociateBookingInfoByEmailId(email : string){\r\n let url = this.employeeMicroService + this.serverUrl.GetSlotDetailsByEmailID + email;\r\n return this.http.get(url);\r\n }\r\n\r\n public releaseParkingSlot(email : string){\r\n let url = this.employeeMicroService + this.serverUrl.ReleaseParkingSlot + email;\r\n return this.http.post(url,null);\r\n }\r\n\r\n public getParkingSlotsReport(parkingReportObj){\r\n let url = this.employeeMicroService + this.serverUrl.GetParkingSlotReport;\r\n return this.http.post(url,parkingReportObj);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Associate } from '../models/associate.model';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { environment } from '../../../../environments/environment';\r\nimport 'rxjs/Rx';\r\nimport { env } from 'process';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PersonalService {\r\n\r\n private _serviceUrl = environment.ServerUrl;\r\n private EmployeeMicroService = environment.EmployeeMicroService;\r\n private AdmintMicroService = environment.AdminMicroService;\r\n private resources = servicePath.API.personal;\r\n\r\n private designation = servicePath.API.Designation;\r\n private grades = servicePath.API.Grades;\r\n constructor(private httpClient: HttpClient ) { }\r\n\r\n public GetBusinessValues(valueKey: string){\r\n return this.httpClient.get(this.EmployeeMicroService + this.resources.getBusinessValues + valueKey);\r\n}\r\n\r\n public GetHRAdvisors() {\r\n return this.httpClient.get(this.AdmintMicroService + this.resources.getHRAdvisors);\r\n }\r\n\r\n public GetEmpTypes() {\r\n return this.httpClient.get(this.EmployeeMicroService + this.resources.getEmpTypes);\r\n }\r\n\r\n public GetTechnologies() {\r\n return this.httpClient.get(this.AdmintMicroService + this.resources.getTechnologies);\r\n }\r\n\r\n public GetPersonalDetails(id: number): Observable {\r\n return this.httpClient.get(this.EmployeeMicroService + this.resources.getByPAId + id);\r\n }\r\n\r\n\r\n\r\n public GetEmployeePersonalDetails(id: number): Observable {\r\n return this.httpClient.get(this.EmployeeMicroService + this.resources.getByEmpId + id);\r\n }\r\n\r\n// public GetManagersAndLeads() {\r\n// var url = this._serviceUrl + this._resources.getManagersAndLeads;\r\n// return this.httpClient.get(url);\r\n// // .catch((err) => Util.handleError(err));\r\n// }\r\n\r\n\r\n// public GetDesignations(gradeID: number) {\r\n// var url = this._serviceUrl + this._resources.getDesignations + gradeID;\r\n// return this.httpClient.get(url);\r\n// // .catch((err) => Util.handleError(err));\r\n// }\r\n\r\n// public GetGradesDetails() {\r\n// var url = this._serviceUrl + this._resources.getGradesDetails;\r\n// return this.httpClient.get(url);\r\n// // .catch((err) => Util.handleError(err));\r\n// }\r\n\r\n SavePersonalDetails(details: Associate) {\r\n let _url = this.EmployeeMicroService + this.resources.save;\r\n return this.httpClient.post(_url, details );\r\n \r\n }\r\n\r\n UpdatePersonalDetails(details: Associate) {\r\n let _url = this.EmployeeMicroService + this.resources.update;\r\n return this.httpClient.post(_url, details);\r\n \r\n }\r\n\r\n public getAllDesignationsList() {\r\n return this.httpClient.get(this.AdmintMicroService + this.designation.list);\r\n}\r\n\r\npublic getAllGradesList() {\r\n return this.httpClient.get(this.AdmintMicroService + this.grades.list);\r\n}\r\n\r\n\r\n}\r\n\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { Certification, MemberShip } from '../models/professionaldetails.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProfessionalService {\r\n\r\n private _resources: any;\r\n private _serverURL: string;\r\n constructor(private _httpclient: HttpClient) {\r\n // this._serverURL = environment.ServerUrl;\r\n this._serverURL = environment.EmployeeMicroService;\r\n this._resources = servicePath.API.professional;\r\n }\r\n getSkillGroupCertificate(){\r\n var url = environment.AdminMicroService + this._resources.getSkillGroupCertificate;\r\n return this._httpclient.get(url);\r\n }\r\n\r\n \r\n getProfessionalDetails(employeeID: number) {\r\n var url = this._serverURL + this._resources.getProfessionalDetails + employeeID;\r\n return this._httpclient.get(url);\r\n }\r\n\r\n \r\n addCertificationDetails(certificationDetails: Certification) {\r\n let _url = this._serverURL + this._resources.addCertificationDetails;\r\n return this._httpclient.post(_url, certificationDetails); \r\n }\r\n\r\n addMembershipDetails(membershipDetails: MemberShip) {\r\n let _url = this._serverURL + this._resources.addMembershipDetails;\r\n return this._httpclient.post(_url, membershipDetails); \r\n }\r\n updateCertificationDetails(certificationDetails: Certification){\r\n let _url = this._serverURL + this._resources.updateCertificationDetails;\r\n return this._httpclient.post(_url, certificationDetails);\r\n }\r\n\r\n updateMembershipDetails(membershipDetails: MemberShip){\r\n let _url = this._serverURL + this._resources.updateMembershipDetails;\r\n return this._httpclient.post(_url, membershipDetails);\r\n }\r\n deleteProfessionalDetails(id: number, programType: number) {\r\n let _url = this._serverURL + this._resources.deleteMembershipDetails + id + \"/\" + programType;\r\n return this._httpclient.delete(_url);\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\nimport {Injectable, Inject} from '@angular/core';\r\nimport { Associate} from '../models/associate.model';\r\nimport { Projects} from '../models/assosiateproject.model';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { Observable } from 'rxjs';\r\nimport { environment } from '../../../../environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProjectassosiateService {\r\n private _resources: any;\r\n // private _serviceUrl = environment.ServerUrl;\r\n private _serviceUrl = environment.EmployeeMicroService;\r\n \r\n roles:any[]=[];\r\n \r\n constructor(@Inject(HttpClient) private httpClient: HttpClient) {\r\n \r\n this._resources = servicePath.API.associateprojects;\r\n \r\n }\r\n \r\n public GetAssociateProjects(id: number): Observable {\r\n var url = this._serviceUrl + this._resources.get +id;\r\n return this.httpClient.get(url); \r\n // ).map((res) => res.json())\r\n }\r\n \r\n SaveProjectDetails(details: Associate) {\r\n let _url = this._serviceUrl + this._resources.update;\r\n return this.httpClient.post(_url, details ); \r\n \r\n } \r\n \r\n }","import { Injectable } from '@angular/core';\r\nimport { ProjectsData } from '../models/projects.model';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { environment } from '../../../../environments/environment';\r\nimport 'rxjs/Rx';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n\r\n})\r\n\r\nexport class ProjectsService {\r\n // private resources:any;\r\n private _resources: any;\r\n private resource: any;\r\n private _config: any;\r\n private _serviceUrl = environment.ServerUrl;\r\n private _employeeService = environment.EmployeeMicroService;\r\n private _adminMicroService = environment.AdminMicroService;\r\n private _projectMicroService = environment.ProjMicroService;\r\n private _api: any;\r\n\r\n constructor(private httpClient: HttpClient) {\r\n this._resources = servicePath.API.projects;\r\n this.resource = servicePath.API.PAssociate;\r\n\r\n }\r\n\r\n public GetProjectTypes(): Observable {\r\n var url = this._serviceUrl + this._resources.getProjectTypes;\r\n return this.httpClient.get(url);\r\n\r\n }\r\n\r\n // public GetClientBillingRoles(projectId : number): Observable{\r\n // var url = this._serverURL + this._api.AssociateAllocation.GetClientBillingRolesByProjectId + 2;\r\n // return this._http.get(url);\r\n // }\r\n public getManagersLists() {\r\n var url = this._adminMicroService + this._resources.getManagers;\r\n return this.httpClient.get(url);\r\n }\r\n public getProgramManagers() {\r\n var url = this._projectMicroService + this._resources.getProgrammangers;\r\n return this.httpClient.get(url);\r\n }\r\n\r\n public getReportingManagers() {\r\n var url = this._employeeService + this._resources.getEmpList;\r\n return this.httpClient.get(url);\r\n }\r\n\r\n public getCustomers() {\r\n var url = this._adminMicroService + this._resources.getClients;\r\n return this.httpClient.get(url);\r\n }\r\n public getStatus() {\r\n var url = this._adminMicroService + this._resources.getStatusDetails;\r\n return this.httpClient.get(url);\r\n }\r\n AddProjectDetails(details: ProjectsData) {\r\n let _url = this._projectMicroService + this._resources.addProject;\r\n return this.httpClient.post(_url, details);\r\n }\r\n\r\n updateProjectDetails(details: ProjectsData) {\r\n let _url = this._projectMicroService + this._resources.updateProject;\r\n return this.httpClient.post(_url, details);\r\n\r\n }\r\n public GetProjectDetailsbyID(ProjectId: number) {\r\n var url = this._projectMicroService + this._resources.getProjectbyID + ProjectId;\r\n return this.httpClient.get(url);\r\n // .catch((err) => Util.handleError(err));\r\n }\r\n getById(id: number) {\r\n if (!this._resources.getById) {\r\n throw new Error(\"getById resource not provided!\");\r\n }\r\n var url = this._serviceUrl + this._resources.getById;\r\n return this.httpClient.get(url);\r\n\r\n }\r\n\r\n getByCode(code: string) {\r\n if (!this._resources.getByCode) {\r\n throw new Error(\"getById resource not provided!\");\r\n }\r\n var url = this._serviceUrl + this._resources.getByCode;\r\n return this.httpClient.get(url);\r\n\r\n }\r\n\r\n update(obj: any) {\r\n if (!this._resources.update) {\r\n // swal(\"update resource not provided!\", \"\", \"error\");\r\n return Observable.throw(\"update resource not provided!\");\r\n }\r\n var url = this._serviceUrl + this._resources.update;\r\n return this.httpClient.post(url, obj);\r\n\r\n }\r\n\r\n\r\n delete(id: number) {\r\n if (!this._resources.delete) {\r\n throw new Error(\"delete resource not provided!\");\r\n }\r\n\r\n var url = this._serviceUrl + this._resources.delete;\r\n return this.httpClient.get(url);\r\n\r\n }\r\n create(obj: any) {\r\n\r\n var url = this._employeeService + this.resource.create;\r\n return this.httpClient.post(url, obj);\r\n }\r\n list(listname) {\r\n var url = this._employeeService + listname;\r\n\r\n return this.httpClient.get(url);\r\n\r\n }\r\n GetList(listname) {\r\n var url = this._adminMicroService + listname;\r\n return this.httpClient.get(url);\r\n }\r\n\r\n}\r\n\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { Associate } from '../models/associate.model';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { Observable } from 'rxjs';\r\nimport { environment } from '../../../../environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProspectiveAssosiateService {\r\n // private _serverURL: string;\r\n private _resources: any;\r\n private _assosiateresources:any;\r\n private EmployeeMicroService : any;\r\n private _serviceUrl = environment.ServerUrl;\r\n constructor(private httpClient: HttpClient) {\r\n this._resources = servicePath.API.PAssociate;\r\n this._assosiateresources = servicePath.API.associates; \r\n this.EmployeeMicroService = environment.EmployeeMicroService; \r\n }\r\n\r\n public list(): Observable { \r\n var url = this.EmployeeMicroService + this._resources.list;\r\n\r\n return this.httpClient.get(url);\r\n }\r\n\r\n public GetAssociateDetailslist(): Observable { \r\n var url = this._serviceUrl + this._resources.getAssociateDetails;\r\n\r\n return this.httpClient.get(url);\r\n }\r\n\r\n public GetAssociateDetailsByEmpID(empID: number, roleName: string): Observable {\r\n var url = this._serviceUrl + this._resources.getAssociateDetailsByEmpID + empID + \"&roleName=\" + roleName;\r\n return this.httpClient.get(url);\r\n }\r\n \r\n\r\n public DeletePA(empID:number,reason:string){\r\n var url=this._serviceUrl+this._resources.deletePA+empID+\"&reason=\"+reason \r\n return this.httpClient.get(url);\r\n }\r\n\r\n getPADetailsById(id:number) { \r\n let _url = this.EmployeeMicroService + this._resources.get+id;\r\n return this.httpClient.get(_url); \r\n}\r\n\r\n public GetJoinedAssoicates(){\r\n var url = this._serviceUrl + this._resources.getJoinedAssociates;\r\n\r\n return this.httpClient.get(url);\r\n }\r\n\r\n UpdatePADetails(newAssociate:Associate) { \r\n let _url = this.EmployeeMicroService + this._resources.update;\r\n return this.httpClient.post(_url, newAssociate);\r\n \r\n}\r\n}\r\n\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { environment } from 'src/environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { AttendanceRegularization, NotPunchInDate } from '../models/regularization.model';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RegularizationService {\r\n private _resources: any;\r\n private leaveResource : any;\r\n\r\n constructor(private _http: HttpClient) { \r\n this._resources = servicePath.API.attendanceRegularization;\r\n this.leaveResource = servicePath.API.uploadLeaveData\r\n }\r\n\r\n public GetNotPunchInDate(reqObj:NotPunchInDate) {\r\n var url = environment.EmployeeMicroService + this._resources.GetNotPunchInDate;\r\n return this._http.post(url,reqObj);\r\n }\r\n\r\n public saveAttendanceRegularizationDetails(reqObj){\r\n var url = environment.EmployeeMicroService + this._resources.SaveAttendanceRegularizationDetails;\r\n return this._http.post(url,reqObj);\r\n }\r\n\r\n public GetAllAssociateSubmittedAttendanceRegularization(Id:number,roleName:string){\r\n var url = environment.EmployeeMicroService + this._resources.GetAllAssociateSubmittedAttendanceRegularization + Id +\"/\"+ roleName;\r\n return this._http.get(url);\r\n }\r\n\r\n public GetAssociateSubmittedAttendanceRegularizationById(associateId : string, roleName:string){\r\n var url = environment.EmployeeMicroService + this._resources.GetAssociateSubmittedAttendanceRegularization + associateId +\"/\"+roleName;\r\n return this._http.get(url);\r\n }\r\n\r\n public ApproveOrRejectAttendanceRegularizationDetails(reqObj : AttendanceRegularization){\r\n var url = environment.EmployeeMicroService + this._resources.ApproveOrRejectAttendanceRegularizationDetails;\r\n return this._http.post(url,reqObj);\r\n }\r\n\r\n public uploadLeaveData(data:FormData){\r\n var url = environment.EmployeeMicroService + this.leaveResource.UploadLeaveData;\r\n \r\n return this._http.post(url,data);\r\n }\r\n\r\n public getTemplateFile(){\r\n\r\n var url = environment.EmployeeMicroService + this.leaveResource.GetTemplateFile;\r\n\r\n return this._http.get(url,{ headers: {\r\n\r\n 'Content-type': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'\r\n\r\n } });\r\n\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { Skill } from '../../../modules/master-layout/models/associate-skills.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SkillsService {\r\n private _resources: any;\r\n private _resource: any;\r\n private skill_workflow_resource: any;\r\n private _serverURL: string;\r\n constructor(private _http: HttpClient) {\r\n\r\n this._serverURL = environment.ServerUrl;\r\n this._resources = servicePath.API.associateSkills;\r\n this._resource = servicePath.API.SkillSearch;\r\n this.skill_workflow_resource = servicePath.API.EmployeeSkillWorkFlow;\r\n\r\n }\r\n public getCompetencyArea(){\r\n return this._http.get(environment.AdminMicroService + servicePath.API.CompetencyArea.list);\r\n }\r\n\r\n public getSkillGroupByCompetencyArea(competencyAreaId: number){\r\n return this._http.get(environment.AdminMicroService + servicePath.API.SkillGroup.getSkillGroupsByCompetenctArea + competencyAreaId);\r\n }\r\n\r\n public getSkillsBySkillGroup(SkillId: number){\r\n return this._http.get(environment.AdminMicroService + servicePath.API.Skills.getSkillsBySkillGroup + SkillId);\r\n }\r\n \r\n public GetSkillsBySearchString(skillSearchString: string){\r\n return this._http.get(environment.AdminMicroService + servicePath.API.Skills.GetSkillsBySearchString + skillSearchString);\r\n }\r\n\r\n public GetAssociateSkillsById(id: number ,roleName:string) {\r\n var url = environment.EmployeeMicroService + this._resources.getSkillsById + id +\"/\"+roleName;\r\n return this._http.get(url);\r\n }\r\n public GetAllSkillDetails(id: number) {\r\n var url = this._serverURL + this._resource.getAllSkillDetails + id;\r\n return this._http.get(url);\r\n }\r\n public GetPracticeArea() {\r\n var url = this._serverURL + this._resources.getPracticeAreas;\r\n return this._http.get(url);\r\n }\r\n public GetProficiencyLevel() {\r\n var url = environment.EmployeeMicroService + this._resources.getProficiencyLevels;\r\n return this._http.get(url);\r\n }\r\n public GetSkillByCompetenctAreaAndSkillGroup(SkillGroup: number, CompetencyArea: number) {\r\n var url = this._serverURL + this._resources.getSkillsByCompetenctAreaAndSkillGroup + SkillGroup + \"&competencyAreaID=\" + CompetencyArea;\r\n return this._http.get(url)\r\n\r\n }\r\n\r\n public GetSkillsByCompetenctArea(CompetencyArea: number) {\r\n var url = this._serverURL + this._resources.getSkillsByCompetenctArea + CompetencyArea;\r\n return this._http.get(url);\r\n }\r\n public DeleteAssociateSkills(Id: number) {\r\n let _url = this._serverURL + this._resources.DeleteAssociateSkills + Id;\r\n return this._http.post(_url, Id)\r\n }\r\n\r\n SaveAssociateSkills(details: Skill) {\r\n let _url = environment.EmployeeMicroService + this._resources.SaveAssociateSkills;\r\n return this._http.post(_url, details)\r\n }\r\n UpdateAssociateSkills(details: Skill) {\r\n let _url = environment.EmployeeMicroService + this._resources.UpdateAssociateSkills;\r\n return this._http.post(_url, details)\r\n }\r\n\r\n public getSkills() {\r\n return this._http.get(environment.AdminMicroService + this._resources.getSkillsList)\r\n }\r\n\r\n public SubmitAssociateSkills(skillsArray) {\r\n const _url = this._serverURL + this._resources.SubmitAssociateSkills;\r\n return this._http.post(_url, skillsArray)\r\n\r\n } \r\n\r\n public submitForApproval(Id) {\r\n var url = environment.EmployeeMicroService + this.skill_workflow_resource.Create + Id;\r\n return this._http.post(url, Id, {responseType: 'text'});\r\n }\r\n \r\n public getSkillSubmittedEmployees(Id) {\r\n var url = environment.EmployeeMicroService + this.skill_workflow_resource.getSkillSubmittedEmps + Id;\r\n return this._http.get(url);\r\n }\r\n\r\n public getNewSkillsByEmployee(Id) {\r\n var url = environment.EmployeeMicroService + this.skill_workflow_resource.getAllSubmittedSkillsByEmpid + Id;\r\n return this._http.get(url);\r\n }\r\n\r\n public UpdateEmpSkillProficienyByRM(SkillObj) {\r\n var url = environment.EmployeeMicroService + this.skill_workflow_resource.UpdateEmpSkillProficienyByRM;\r\n return this._http.post(url, SkillObj, {responseType: 'text'});\r\n }\r\n \r\n\r\n public updateEmpSkillDetailsByRM(Id) {\r\n var url = environment.EmployeeMicroService + this.skill_workflow_resource.updateEmpSkillDetailsByRM + Id;\r\n return this._http.post(url, Id, {responseType: 'text'});\r\n }\r\n\r\n public ApproveSkillRM(Id) {\r\n var url = environment.EmployeeMicroService + this.skill_workflow_resource.SkillStatusApprovedByRM + Id;\r\n return this._http.post(url, Id, {responseType: 'text'});\r\n }\r\n\r\n public GetEmployeeSkillHistory(EmpId, SkillId) {\r\n var url = environment.EmployeeMicroService + this.skill_workflow_resource.GetEmployeeSkillHistory + EmpId + '?ID=' + SkillId;\r\n return this._http.get(url);\r\n }\r\n\r\n public deleteSkill(id : number){\r\n var url = environment.EmployeeMicroService + this._resources.deleteSkill + id;\r\n return this._http.delete(url);\r\n }\r\n \r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { Certification } from '../models/professionaldetail.model';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { Observable } from 'rxjs';\r\nimport { environment } from '../../../../environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UploadService {\r\n private _resources: any;\r\n private _serviceUrl = environment.EmployeeMicroService;\r\n constructor(@Inject(HttpClient) private httpClient: HttpClient) {\r\n this._resources = servicePath.API.upload;\r\n }\r\n public GetUploadData(id: number): Observable {\r\n var url = this._serviceUrl + this._resources.list + id;\r\n return this.httpClient.get(url);\r\n }\r\n\r\n public GetPAstatus(id: number) {\r\n var url = this._serviceUrl + this._resources.GetPAstatus + id;\r\n return this.httpClient.get(url);\r\n }\r\n public save(data){\r\n var url = this._serviceUrl + this._resources.save;\r\n return this.httpClient.post(url,data);\r\n }\r\n public SubmitForApproval(id: number) {\r\n let ids = {\"EmpId\":id}\r\n let empProfile = {\r\n EmpId: id,\r\n Status: \"Approved\"\r\n };\r\n let rolename=JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).roleName;\r\n var url:any;\r\n if(rolename==\"HRM\")\r\n {\r\n url=this._serviceUrl + servicePath.API.PAssociate.profileApproval;\r\n return this.httpClient.post(url, empProfile);\r\n }\r\n else{\r\n url = this._serviceUrl + this._resources.submitForApproval;\r\n return this.httpClient.post(url, ids);\r\n }\r\n \r\n }\r\n public Delete(employeeId: number, id: number) {\r\n var url = this._serviceUrl + this._resources.delete + id + \"/\" + employeeId;\r\n return this.httpClient.delete(url);\r\n }\r\n}\r\n\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { environment } from 'src/environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class WfhAttendanceService {\r\n private _resources: any;\r\n \r\n\r\n constructor(private _http: HttpClient) {\r\n this._resources = servicePath.API.wfhAttendance;\r\n }\r\n public GetloginStatus(empId:string) {\r\n var url = environment.EmployeeMicroService + this._resources.GetloginStatus + empId;\r\n return this._http.get(url);\r\n }\r\n\r\n public SaveAttendanceDetais(saveReqObj) {\r\n var url = environment.EmployeeMicroService + this._resources.SaveAttendanceDetails;\r\n return this._http.post(url,saveReqObj);\r\n }\r\n\r\n public GetAttendanceDetails(empId:string) {\r\n var url = environment.EmployeeMicroService + this._resources.GetAttendanceDetails + empId;\r\n return this._http.get(url);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\n//Angular Material Components\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatSliderModule } from '@angular/material/slider';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatNativeDateModule } from '@angular/material/core';\r\n\r\n\r\nexport const allAnglrModules = [ MatCheckboxModule, MatButtonModule, MatInputModule, MatAutocompleteModule, MatDatepickerModule, MatFormFieldModule, MatRadioModule, MatSelectModule, MatSliderModule, MatSlideToggleModule, MatMenuModule, MatSidenavModule, MatToolbarModule, MatListModule, MatGridListModule, MatCardModule, MatStepperModule, MatTabsModule, MatExpansionModule, MatButtonToggleModule, MatChipsModule, MatIconModule, MatProgressSpinnerModule, MatProgressBarModule, MatDialogModule, MatTooltipModule, MatSnackBarModule, MatTableModule, MatSortModule, MatPaginatorModule, MatNativeDateModule];\r\n\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: allAnglrModules,\r\n exports: allAnglrModules,\r\n})\r\nexport class AllAngularMaterialModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router } from '@angular/router';\r\nimport { Location } from '@angular/common';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CheckUsersGuard implements CanActivate {\r\n constructor(private route: Router, private location: Location){}\r\n canActivate(\r\n next: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot): boolean { \r\n // let role = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).roleName; \r\n // if(role == \"Program Manager\" || role == \"Department Head\" || role == \"HRA\" || role == \"HRM\")\r\n // return true;\r\n // //this.location.back();\r\n // else{\r\n // this.route.navigate(['']);\r\n // return false;\r\n // }\r\n return true;\r\n }\r\n}\r\n","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n//import { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { ResourceAllocationDetails } from '../../../reports/models/resourcereportbyproject.model';\r\n\r\n@Component({\r\n selector: 'app-allocated-resources-dialog',\r\n templateUrl: './allocated-resources-dialog.component.html',\r\n styleUrls: ['./allocated-resources-dialog.component.scss']\r\n})\r\nexport class AllocatedResourcesDialogComponent implements OnInit {\r\n\r\n allocatedResourcesDataSource: MatTableDataSource;\r\n // @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n displayedColumns: string[] = ['AssociateCode','AssociateName','ClientBillingRoleName','AllocationPercentage','IsPrimaryProject','IsCriticalResource'];\r\n\r\n constructor(private dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any ) { }\r\n\r\n ngOnInit(): void {\r\n this.allocatedResourcesDataSource = this.data.datasource;\r\n // this.allocatedResourcesDataSource.paginator = this.paginator;\r\n this.allocatedResourcesDataSource.sort = this.sort;\r\n }\r\n\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","
\r\n
\r\n

Allocated Resources

\r\n
\r\n
\r\n close\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\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 \r\n\r\n
Associate Code{{allocatedResources.AssociateCode}}Associate Name{{allocatedResources.AssociateName}}Client Billing Role{{allocatedResources.ClientBillingRoleName}}Allocation %{{allocatedResources.AllocationPercentage}}Primary{{allocatedResources.IsPrimaryProject}}Critical{{allocatedResources.IsCriticalResource}}
No data
\r\n
\r\n\r\n \r\n\r\n
\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormBuilder, Validators, FormGroup, FormGroupDirective } from '@angular/forms';\r\nimport { MasterDataService } from '../../../master-layout/services/masterdata.service';\r\nimport { GenericType } from '../../../master-layout/models/dropdowntype.model';\r\nimport { Employee } from '../../models/assign-manager-to-project.model';\r\nimport { AssignManagerToProjectService } from '../../services/assign-manager-to-project.service';\r\nimport { EmployeeStatusService } from '../../../admin/services/employeestatus.service';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { Observable } from 'rxjs';\r\nimport { startWith,map } from 'rxjs/operators';\r\nimport * as moment from 'moment';\r\n\r\n\r\n@Component({\r\n selector: 'app-assign-manager-to-project',\r\n templateUrl: './assign-manager-to-project.component.html',\r\n styleUrls: ['./assign-manager-to-project.component.scss'],\r\n providers: [EmployeeStatusService]\r\n})\r\nexport class AssignManagerToProjectComponent implements OnInit {\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n filteredOptions: Observable;\r\n\r\n\r\n formSubmitted: boolean = false;\r\n reportingManagerList: any[];\r\n programManagerList: any[];\r\n isDisable: Boolean;\r\n projectList: any[];\r\n projectsData: any[];\r\n selectDisabled: Boolean;\r\n employee: Employee;\r\n assignManagerToProject: FormGroup;\r\n filteredManagersIds: GenericType[] = [];\r\n componentName: string;\r\n errorMessage: any[] = [];\r\n associateList: any[] = [];\r\n employeeList: any[] = [];\r\n employeeId:number;\r\n userRole:string;\r\n today = new Date();\r\n firstDate: Date;\r\n isDateError:boolean = false\r\n dateErrorMessage:string;\r\n\r\n selectedChangeProgramManager:any;\r\n selectedChangeReportingManager:any;\r\n selectedChangeLeadManager:any;\r\n\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n\r\n constructor(private fb: FormBuilder,\r\n private masterDataService: MasterDataService,\r\n private service: AssignManagerToProjectService,\r\n private _empService: EmployeeStatusService,private _snackBar: MatSnackBar) { }\r\n\r\n ngOnInit() {\r\n this.userRole = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).roleName;\r\n this.today.setDate(this.today.getDate());\r\n this.employeeId = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).employeeId;\r\n this.getDates();\r\n this.CreateForm();\r\n this.getEmployees();\r\n this.getProjects();\r\n }\r\n\r\n getDates() {\r\n var date = new Date(), y = date.getFullYear(), m = date.getMonth()\r\n this.firstDate = new Date(y, m, 0);\r\n if(this.firstDate.getDay()===6){\r\n this.firstDate.setDate(this.firstDate.getDate() - 1);\r\n }\r\n else if(this.firstDate.getDay()===0){\r\n this.firstDate.setDate(this.firstDate.getDate() - 2);\r\n }\r\n\r\n }\r\n\r\n getEmployees(): void {\r\n this._empService.GetAssociateNames().subscribe((data: any[]) => {\r\n this.associateList = data;\r\n this.associateList.forEach(element => {\r\n if (this.employeeList.findIndex(x => x.label == element.EmpName) == -1)\r\n this.employeeList.push({ label: element.EmpName, value: element.EmpId });\r\n });\r\n });\r\n }\r\n\r\n filteredManagers(event: any): void {\r\n if(event){\r\n let suggestionString = event.target.value.toLowerCase();\r\n //this.masterDataService.GetEmployeesAndManagers(suggestionString).subscribe((managersResponse: GenericType[]) => {\r\n this.filteredManagersIds = [];\r\n this.associateList.forEach((v) => {\r\n if (this.filteredManagersIds.findIndex(x => x.Name == v.EmpName) === -1 && v.EmpName.toLowerCase().indexOf(suggestionString) > -1) {\r\n this.filteredManagersIds.push({ Id: v.EmpId, Name: v.EmpName });\r\n }\r\n });\r\n }\r\n else {\r\n this.filteredManagersIds=[];\r\n this.pushFilteredManagersIds();\r\n }\r\n }\r\n\r\n CreateForm() {\r\n this.formSubmitted = false;\r\n this.assignManagerToProject = this.fb.group({\r\n ddlProgramManager: [''],\r\n ddlProject: ['', [Validators.required]],\r\n ddlReportingManager: [''],\r\n ddlLead: [''],\r\n EffectiveDate:['', Validators.required]\r\n });\r\n this.employee = new Employee();\r\n }\r\n\r\n getManagersByProject(event) {\r\n\r\n let tempProjectID=event.value;\r\n\r\n if (tempProjectID) {\r\n this.employee.ProjectId = tempProjectID;\r\n this.service.GetManagersByProjectId(tempProjectID).subscribe((response: any) => {\r\n if(response){\r\n this.assignManagerToProject.patchValue(response);\r\n if (response.ProgramManagerName) {\r\n this.employee.ManagerId = response.ProgramManagerId;\r\n this.employee.ProgramManagerName = response.ProgramManagerName;\r\n }\r\n else{\r\n this.employee.ProgramManagerName = \"\";\r\n }\r\n if (response.ReportingManagerName) {\r\n this.employee.ReportingManagerId = response.ReportingManagerId;\r\n this.employee.ReportingManagerName = response.ReportingManagerName;\r\n }\r\n else{\r\n this.employee.ReportingManagerName = \"\";\r\n }\r\n if (response.LeadName) {\r\n this.employee.LeadId = response.LeadId;\r\n this.employee.LeadName = response.LeadName;\r\n }\r\n else{\r\n this.employee.LeadName = \"\";\r\n }\r\n }\r\n },\r\n (error)=>{\r\n this.emptyEmployee();\r\n });\r\n this.filteredManagers('');\r\n }\r\n else {\r\n this.formSubmitted = false;\r\n this.emptyEmployee();\r\n this.filteredManagers('');\r\n }\r\n }\r\n\r\n onChangeEvent(event: any){\r\n if(event.target.value == ''){\r\n this.clearValues();\r\n }\r\n }\r\n\r\n clearValues() {\r\n this.assignManagerToProject.reset();\r\n this.isDateError=false\r\n setTimeout(() => this.formGroupDirective.resetForm(), 0);\r\n this.emptyEmployee();\r\n }\r\n\r\n assignManagers(): void {\r\n if (this.assignManagerToProject.value.EffectiveDate){\r\n this.employee.EffectiveDate = moment(this.assignManagerToProject.value.EffectiveDate).format('YYYY-MM-DD')\r\n }\r\n if(this.selectedChangeProgramManager!=null)\r\n this.employee.ManagerId = this.selectedChangeProgramManager.Id;\r\n else\r\n this.employee.ManagerId;\r\n if(this.selectedChangeReportingManager!=null)\r\n if(this.selectedChangeReportingManager!=null)\r\n if(this.selectedChangeReportingManager!=null)\r\n this.employee.ReportingManagerId = this.selectedChangeReportingManager.Id;\r\n else\r\n this.employee.ReportingManagerId;\r\n if(this.selectedChangeLeadManager)\r\n if(this.selectedChangeLeadManager)\r\n if(this.selectedChangeLeadManager)\r\n this.employee.LeadId = this.selectedChangeLeadManager.Id;\r\n else\r\n this.employee.LeadId;\r\n this.employee.LeadId;\r\n this.employee.LeadId;\r\n if(this.employee.ManagerId == null){\r\n this.assignManagerToProject.get('ddlProgramManager').setValidators([Validators.required])\r\n this.assignManagerToProject.get('ddlProgramManager').updateValueAndValidity();\r\n }\r\n else{\r\n this.assignManagerToProject.get('ddlProgramManager').setErrors(null)\r\n this.assignManagerToProject.get('ddlProgramManager').clearValidators();\r\n this.assignManagerToProject.get('ddlProgramManager').updateValueAndValidity();\r\n }\r\n if (this.assignManagerToProject.valid && this.employee.ManagerId) {\r\n this.service.AssignReportingManagerToProject(this.employee).subscribe((response: any) => {\r\n let message = response == true ? 'Managers Assigned successfully' : response;\r\n this._snackBar.open(message, '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.clearValues();\r\n this.getProjects();\r\n }, (error) => {\r\n let message;\r\n if (error._body != undefined && error._body != \"\")\r\n {\r\n message = 'Error message'\r\n this._snackBar.open(message, '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n else\r\n {\r\n if(error.error.text.includes('Invalid date. Effective date should be greater than are eqaul to')){\r\n this.isDateError = true\r\n this.dateErrorMessage=error.error.text\r\n }\r\n else if (error.error.text == \"Record already exists.\"){\r\n message = \"Record already exists\"\r\n this._snackBar.open(message, '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n else{\r\n message = 'Failed to assign manager'\r\n this._snackBar.open(message, '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n /* else\r\n {\r\n this._snackBar.open('Failed to assign manager', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n*/\r\n }\r\n\r\n getProjects() {\r\n this.masterDataService.GetProjectsList().subscribe((projectlist: any) => {\r\n this.projectList = [];\r\n let resultData: any[] = projectlist\r\n this.projectList.push({ label: '', value: null });\r\n resultData.forEach(element => {\r\n if(element.ProgramManagerId === this.employeeId){\r\n if (this.projectList.findIndex(x => x.label == element.ProjectName) == -1)\r\n {this.projectList.push({ label: element.ProjectName, value: element.ProjectId });\r\n }\r\n }\r\n if(this.userRole.toUpperCase() === 'HRA'){\r\n if (this.projectList.findIndex(x => x.label == element.ProjectName) == -1)\r\n {this.projectList.push({ label: element.ProjectName, value: element.ProjectId });\r\n }\r\n }\r\n });\r\n this.filteredOptions = this.assignManagerToProject.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filter(value))\r\n );\r\n\r\n });\r\n }\r\n\r\n private _filter(value) {\r\n let filterValue;\r\n if (value && value.ddlProject) {\r\n filterValue = value.ddlProject.toLowerCase();\r\n return this.projectList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.projectList;\r\n }\r\n }\r\n emptyEmployee(){\r\n this.employee.ManagerId=null\r\n this.employee.ReportingManagerId=null\r\n this.employee.LeadId=null\r\n this.employee.ReportingManagerName = \"\";\r\n this.employee.LeadName = \"\";\r\n this.employee.ProgramManagerName = \"\";\r\n }\r\n cliearField(event : any, fieldName) {\r\n if(fieldName=='ddlProject'){\r\n this.assignManagerToProject.controls.ddlProject.reset();\r\n event.stopPropagation();\r\n this.clearValues();\r\n }\r\n else if(fieldName=='ddlProgramManager'){\r\n this.assignManagerToProject.controls.ddlProgramManager.reset();\r\n event.stopPropagation();\r\n }\r\n else if(fieldName=='ddlReportingManager'){\r\n this.assignManagerToProject.controls.ddlReportingManager.reset();\r\n event.stopPropagation();\r\n }\r\n else if(fieldName=='ddlLead'){\r\n this.assignManagerToProject.controls.ddlLead.reset();\r\n event.stopPropagation();\r\n }\r\n }\r\n\r\n getProjectIDbyName(projectName) {\r\n if (this.projectList) {\r\n return this.projectList.filter(x => x.label == projectName);\r\n }\r\n }\r\n getEmpIDbyName(empName) {\r\n if (this.projectList) {\r\n let x = this.filteredManagersIds.filter(x => x.Name == empName);\r\n return x[0].Id;\r\n }\r\n }\r\n pushFilteredManagersIds(){\r\n this.filteredManagersIds=[];\r\n for (let i = 0; i < this.associateList.length; i++) {\r\n this.filteredManagersIds.push({ Id: this.associateList[i].EmpId, Name: this.associateList[i].EmpName });\r\n }\r\n }\r\n\r\n selectedChangeIds(frmCntrl, item) {\r\n if (frmCntrl== 'ddlProgramManager') {\r\n this.selectedChangeProgramManager = item;\r\n }\r\n else if (frmCntrl == 'ddlReportingManager') {\r\n this.selectedChangeReportingManager = item;\r\n }\r\n else if (frmCntrl == 'ddlLead') {\r\n this.selectedChangeLeadManager = item;\r\n }\r\n }\r\n\r\n clearInput(evt: any, fieldName): void {\r\n if (fieldName == 'EffectiveDate') {\r\n this.isDateError=false\r\n evt.stopPropagation();\r\n this.assignManagerToProject.get('EffectiveDate').reset();\r\n }\r\n }\r\n\r\n removeDateErrorMessage(){\r\n this.isDateError=false\r\n }\r\n}\r\n\r\n","\r\n
\r\n
\r\n
\r\n \r\n Project Name *\r\n \r\n \r\n \r\n No Matching value found\r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n Project Name Required\r\n \r\n \r\n Select project from given options\r\n \r\n \r\n
\r\n
\r\n \r\n {{employee.ProgramManagerName}}\r\n \r\n Change Program Manager *\r\n Select Program Manager *\r\n \r\n \r\n \r\n No Matching value found\r\n \r\n {{item.Name}}\r\n \r\n \r\n \r\n Program Manager Name Required\r\n \r\n \r\n Select Program Manager from given options\r\n \r\n \r\n
\r\n
\r\n \r\n {{employee.ReportingManagerName}}\r\n \r\n Change Reporting Manager\r\n Select Reporting Manager\r\n \r\n \r\n \r\n No Matching value found\r\n \r\n {{item.Name}}\r\n \r\n \r\n \r\n Select Reporting Manager from given options\r\n \r\n \r\n
\r\n
\r\n \r\n {{employee.LeadName}}\r\n \r\n Change Lead\r\n Select Lead\r\n \r\n \r\n \r\n No Matching value found\r\n \r\n {{item.Name}}\r\n \r\n \r\n \r\n Select Lead from given options\r\n \r\n \r\n
\r\n
\r\n \r\n Effective Date*\r\n \r\n \r\n close\r\n \r\n \r\n \r\n \r\n \r\n Effective Date Required.\r\n \r\n \r\n \r\n No empty spaces allowed\r\n \r\n \r\n
\r\n \r\n {{dateErrorMessage}}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormBuilder, Validators, FormGroup, FormGroupDirective } from \"@angular/forms\";\r\nimport { MasterDataService } from \"../../../master-layout/services/masterdata.service\";\r\nimport { CommonService } from \"../../../master-layout/services/common.service\";\r\nimport { Employee, DepartmentAssociates } from '../../models/assign-manager-to-project.model';\r\nimport { GenericType } from '../../../master-layout/models/dropdowntype.model';\r\nimport { AssignReportingManagerService } from '../../services/assign-reporting-manager.service';\r\nimport { ResouceReleaseService } from '../../services/resouce-release.service';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { Observable } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { EmployeeStatusService } from '../../../admin/services/employeestatus.service';\r\nimport * as moment from 'moment';\r\n//declare var _: any;\r\n\r\n@Component({\r\n selector: 'app-assign-reporting-manager',\r\n templateUrl: './assign-reporting-manager.component.html',\r\n styleUrls: ['./assign-reporting-manager.component.scss'],\r\n providers: [EmployeeStatusService]\r\n})\r\n\r\nexport class AssignReportingManagerComponent implements OnInit {\r\n projId: any;\r\n form_Submitted: boolean = false;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n associatesList: any[];\r\n allAssociatesList: any[];\r\n reportingManagerList: any[] = [];\r\n isDisable: Boolean;\r\n projectsList: any[];\r\n employeeList: any[] = [];\r\n nonDeliveryEmployeeList: any[] = [];\r\n projectsData: any[];\r\n selectDisabled: Boolean;\r\n employee: Employee;\r\n assignReportingManagerForm: FormGroup;\r\n formSubmitted: boolean = false;\r\n empId: number;\r\n projectId: number;\r\n filteredOptions: Observable;\r\n associateList: any[] = [];\r\n filteredManagersIds: GenericType[] = [];\r\n filteredRMManagersIds: GenericType[] = [];\r\n componentName: string;\r\n isDelivery: boolean = true;\r\n isChecked = true;\r\n associateResultData: DepartmentAssociates[] = [];\r\n resultData: any[] = [];\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n selectedcurrentproject: any;\r\n selectedChangeProgramManager: any;\r\n selectedChangeReportingManager: any;\r\n selectedChangeLeadManager: any;\r\n today = new Date();\r\n firstDate: Date;\r\n isDateError:boolean=false\r\n dateErrorMessage:string\r\n //filteredmanagers: Observable;\r\n\r\n constructor(private _http: HttpClient, private fb: FormBuilder, private _service: ResouceReleaseService, private service: AssignReportingManagerService, private masterDataService: MasterDataService, private _empService: EmployeeStatusService, private _snackBar: MatSnackBar) { }\r\n\r\n ngOnInit() {\r\n this.today.setDate(this.today.getDate());\r\n this.getDates()\r\n this.createForm();\r\n this.getEmployees();\r\n this.getAssociates();\r\n this.getAllAssociatesList();\r\n\r\n }\r\n\r\n getDates() {\r\n var date = new Date(), y = date.getFullYear(), m = date.getMonth()\r\n this.firstDate = new Date(y, m, 0);\r\n if(this.firstDate.getDay()===6){\r\n this.firstDate.setDate(this.firstDate.getDate() - 1);\r\n }\r\n else if(this.firstDate.getDay()===0){\r\n this.firstDate.setDate(this.firstDate.getDate() - 2);\r\n }\r\n }\r\n\r\n createForm() {\r\n this.assignReportingManagerForm = this.fb.group({\r\n ddlDelivery: [true],\r\n ddlEmployee: [null, Validators.required],\r\n ddlProject: [null, Validators.required],\r\n ddlReportingManager: [''],\r\n ddlProgramManager: [''],\r\n ddlLead: [''],\r\n EffectiveDate:['',Validators.required]\r\n });\r\n\r\n this.employee = new Employee();\r\n this.isDelivery = true;\r\n }\r\n getAssociates() {\r\n this.isDisable = false;\r\n this.service.GetAllocatedAssociates().subscribe(\r\n (res:any) => {\r\n this.associatesList = [];\r\n this.associateResultData = [];\r\n if(this.isDelivery==true){\r\n this.resultData = res.filter(associate => associate.DepartmentId == 1);\r\n this.associatesList = this.resultData.map(element => {\r\n return { label: element.EmployeeName, value: element.EmployeeId };\r\n });\r\n }\r\n else{\r\n this.resultData = this.nonDeliveryEmployeeList.filter(associate => associate.DepartmentId != 1);\r\n this.associatesList = this.resultData.map(element => {\r\n return { label: element.EmpName, value: element.EmpId };\r\n });\r\n }\r\n this.associateList = this.associatesList;\r\n this.projectsList = [];\r\n this.projectsList.splice(0, 0, {\r\n label: \"\",\r\n value: null\r\n });\r\n this.filteredOptions = this.assignReportingManagerForm.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filter(value))\r\n );\r\n },\r\n error => {\r\n this._snackBar.open(error.error, '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n getEmployees(): void {\r\n this._empService.GetAssociateNames().subscribe((data: any[]) => {\r\n this.allAssociatesList = data;\r\n this.nonDeliveryEmployeeList = data;\r\n this.allAssociatesList.forEach(element => {\r\n if (this.employeeList.findIndex(x => x.label == element.EmpName) == -1)\r\n this.employeeList.push({ label: element.EmpName, value: element.EmpId });\r\n });\r\n\r\n if (this.allAssociatesList) {\r\n this.pushFilteredManagersIds();\r\n }\r\n });\r\n }\r\n\r\n filteredManagers(event: any): void {\r\n if (event) {\r\n let suggestionString = event.target.value.toLowerCase();\r\n //this.masterDataService.GetEmployeesAndManagers(suggestionString).subscribe((managersResponse: GenericType[]) => {\r\n this.filteredManagersIds = [];\r\n this.allAssociatesList.forEach((v) => {\r\n if (this.filteredManagersIds.findIndex(x => x.Name == v.EmpName) === -1 && v.EmpName.toLowerCase().indexOf(suggestionString) > -1) {\r\n this.filteredManagersIds.push({ Id: v.EmpId, Name: v.EmpName });\r\n }\r\n });\r\n }\r\n else {\r\n this.filteredManagersIds = [];\r\n this.pushFilteredManagersIds();\r\n }\r\n }\r\n\r\n AllLeadsAndManagers(event: any): void {\r\n let suggestionString = event.query;\r\n this.service.GetAllLeadsManagers(suggestionString).subscribe((managersResponse: GenericType[]) => {\r\n this.filteredRMManagersIds = [];\r\n this.filteredRMManagersIds = managersResponse;\r\n },\r\n (error: any) => {\r\n // if (error._body != undefined && error._body != \"\")\r\n // this._commonService\r\n // .LogError(this.componentName, error._body)\r\n // .then((data: any) => { });\r\n // this.errorMessage = [];\r\n // this.errorMessage.push({\r\n // severity: \"error\",\r\n // summary: \"Failed to get All Lead Manager List!\"\r\n // });\r\n }\r\n );\r\n }\r\n assignReportingManager(): void {\r\n this.formSubmitted = true;\r\n if (this.assignReportingManagerForm.value.EffectiveDate){\r\n this.employee.EffectiveDate = moment(this.assignReportingManagerForm.value.EffectiveDate).format('YYYY-MM-DD')\r\n }\r\n if(this.isDelivery == true){\r\n this.assignReportingManagerForm.get('ddlProgramManager').setValidators([Validators.required])\r\n this.assignReportingManagerForm.get('ddlProgramManager').updateValueAndValidity();\r\n if(this.employee.ManagerId || this.assignReportingManagerForm.value.ddlProgramManager){\r\n this.assignReportingManagerForm.get('ddlProgramManager').setErrors(null)\r\n this.assignReportingManagerForm.get('ddlProgramManager').clearValidators();\r\n this.assignReportingManagerForm.get('ddlProgramManager').updateValueAndValidity();\r\n }\r\n }\r\n if((this.assignReportingManagerForm.value.ddlReportingManager || this.employee.ReportingManagerId )&& this.isDelivery == false){\r\n this.assignReportingManagerForm.get('ddlReportingManager').setErrors(null)\r\n this.assignReportingManagerForm.get('ddlReportingManager').clearValidators();\r\n this.assignReportingManagerForm.get('ddlReportingManager').updateValueAndValidity();\r\n }\r\n if(this.isDelivery == false){\r\n this.assignReportingManagerForm.get('ddlProject').setErrors(null)\r\n this.assignReportingManagerForm.get('ddlProject').clearValidators();\r\n this.assignReportingManagerForm.get('ddlProject').updateValueAndValidity();\r\n }\r\n if (this.assignReportingManagerForm.valid) {\r\n if (this.assignReportingManagerForm.value.ddlProgramManager && this.selectedChangeProgramManager) {\r\n this.employee.ManagerId = this.selectedChangeProgramManager.Id;\r\n this.employee.ProgramManagerName = this.selectedChangeProgramManager.Name;\r\n }\r\n else { this.employee.ManagerId; }\r\n if (this.assignReportingManagerForm.value.ddlReportingManager && this.selectedChangeReportingManager) {\r\n this.employee.ReportingManagerId = this.selectedChangeReportingManager.Id;\r\n this,this.employee.ReportingManagerName = this.selectedChangeReportingManager.Name;\r\n }\r\n else { this.employee.ReportingManagerId; }\r\n if (this.assignReportingManagerForm.value.ddlLead && this.selectedChangeLeadManager) {\r\n this.employee.LeadId = this.selectedChangeLeadManager.Id;\r\n this.employee.LeadName = this.selectedChangeLeadManager.Name;\r\n }\r\n else { this.employee.LeadId; }\r\n this.service.AssignReportingManager(this.employee, this.isDelivery).subscribe(\r\n data => {\r\n this._snackBar.open('Managers are assigned to associate successfully', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.isDelivery = true;\r\n this.formSubmitted = false;\r\n this.clearAllForm();\r\n },\r\n error => {\r\n if (error.error.includes('Invalid date. Effective date should be greater than are eqaul to')) {\r\n this.isDateError = true\r\n this.dateErrorMessage = error.error\r\n }\r\n else {\r\n this._snackBar.open('Managers are failed to assign', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n }\r\n );\r\n }\r\n // else {\r\n // this._snackBar.open('Managers are failed to assign', '', {\r\n // duration: 1000,\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // });\r\n // }\r\n }\r\n getManagerName(event) {\r\n this.getCurrentManagers(event.value, this.empId);\r\n }\r\n getCurrentManagers(projectId: number, employeeId: number) {\r\n this.service.GetManagerName(projectId, employeeId).subscribe((res: any) => {\r\n this.employee.ProgramManagerName = \"\";\r\n this.employee.ReportingManagerName = \"\";\r\n this.employee.LeadName = \"\";\r\n this.employee.ProjectId = projectId;\r\n this.employee.EmployeeId = employeeId;\r\n if (res[0] && res[0].ProgramManagerName) {\r\n this.employee.ManagerId = res[0].ProgramManagerId;\r\n this.employee.ProgramManagerName = res[0].ProgramManagerName;\r\n }\r\n else{\r\n this.employee.ProgramManagerName = '';\r\n }\r\n if (res[0] && res[0].ReportingManagerName) {\r\n this.employee.ReportingManagerId = res[0].ReportingManagerId;\r\n this.employee.ReportingManagerName = res[0].ReportingManagerName;\r\n }\r\n else{\r\n this.employee.ReportingManagerName = '';\r\n }\r\n if (res[0] && res[0].LeadName) {\r\n this.employee.LeadId = res[0].LeadId;\r\n this.employee.LeadName = res[0].LeadName;\r\n }\r\n else{\r\n this.employee.LeadName = '';\r\n }\r\n }, error => {\r\n this.employee.ProjectId = projectId;\r\n this.employee.EmployeeId = employeeId;\r\n this.getEmptyEmployee();\r\n }\r\n );\r\n }\r\n\r\n getEmptyEmployee() {\r\n this.employee.LeadName = '';\r\n this.employee.ReportingManagerName = '';\r\n this.employee.ProgramManagerName = '';\r\n }\r\n\r\n onChangeEvent(event: any){\r\n if(event.target.value == ''){\r\n this.clearAllFormall();\r\n }\r\n }\r\n\r\n getProjects(data: any) {\r\n this.empId = data.value;\r\n this.formSubmitted = false;\r\n if (data != null) {\r\n this.service.GetProjects(data.value).subscribe((res: any) => {\r\n this.projectsData = [];\r\n this.projectsData = res;\r\n this.projectsList = [];\r\n\r\n this.projectsList = this.projectsData.map(element => {\r\n return { label: element.ProjectName, value: element.ProjectId };\r\n });\r\n this.projectsList.splice(0, 0, {\r\n label: \"\",\r\n value: null\r\n });\r\n if (this.projectsData.length == 1) {\r\n this.selectDisabled = true;\r\n // this.employee.ProjectId = this.projectsData[0].ProjectId;\r\n this.getCurrentManagers(this.projectsData[0].ProjectId, this.empId);\r\n this.projectsList = [{ label: this.projectsData[0].ProjectName, value: this.projectsData[0].ProjectId }];\r\n this.assignReportingManagerForm.controls.ddlProject.setValue(this.projectsData[0].ProjectId);\r\n } else {\r\n this.employee.ProgramManagerName = \"\";\r\n this.employee.ReportingManagerName = \"\";\r\n this.employee.LeadName = \"\";\r\n this.assignReportingManagerForm.controls.ddlProject.reset()\r\n this.employee = new Employee();\r\n this.employee.EmployeeId = this.empId;\r\n this.selectDisabled = false;\r\n }\r\n });\r\n } else {\r\n this.employee.ProgramManagerName = \"\";\r\n this.employee.ReportingManagerName = \"\";\r\n this.employee.LeadName = \"\";\r\n this.projectsList = [];\r\n this.employee.EmployeeId = this.empId;\r\n this.formSubmitted = false;\r\n }\r\n }\r\n\r\n getProjectsprogrammanagers(data: any) {\r\n this.projId = data.value;\r\n // this.formSubmitted = false;\r\n if (data != null) {\r\n // this.service.GetProjects(data.Id).subscribe((res: any) => {\r\n // this.projectsData = [];\r\n // this.projectsData = res;\r\n // this.projectsList = [];\r\n\r\n // this.projectsList = this.projectsData.map(element => {\r\n // return { label: element.ProjectName, value: element.ProjectId };\r\n // });\r\n // this.projectsList.splice(0, 0, {\r\n // label: \"\",\r\n // value: null\r\n // });\r\n // if (this.projectsData.length == 1) {\r\n // this.selectDisabled = true;\r\n // this.employee.ProjectId = this.projectsData[0].ProjectId;\r\n this.getCurrentManagers(this.projId, this.empId);\r\n // this.projectsList = [{ label: this.projectsData[0].ProjectName, value: this.projectsData[0].ProjectId }];\r\n // this.assignReportingManagerForm.controls.ddlProject.setValue(this.projectsData[0].ProjectId);\r\n // } else {\r\n // this.employee.ProjectId = null;\r\n // this.employee.ProgramManagerName = \"\";\r\n // this.employee.ReportingManagerName = \"\";\r\n // this.employee.LeadName = \"\";\r\n // this.selectDisabled = false;\r\n // // }\r\n // });\r\n // } else {\r\n // this.employee.ProgramManagerName = \"\";\r\n // this.employee.ReportingManagerName = \"\";\r\n // this.employee.LeadName = \"\";\r\n // this.projectsList = [];\r\n // this.formSubmitted = false;\r\n }\r\n }\r\n onDeliveryChange(event: any) {\r\n let x = event.checked;\r\n this.clearAll(x);\r\n this.isChecked = event.checked\r\n if(this.isChecked === true){\r\n this.assignReportingManagerForm.controls.ddlDelivery.setValue(true);\r\n }\r\n else{\r\n this.assignReportingManagerForm.controls.ddlDelivery.setValue(false);\r\n this.assignReportingManagerForm.get('ddlReportingManager').setValidators([Validators.required])\r\n this.assignReportingManagerForm.get('ddlReportingManager').updateValueAndValidity();\r\n }\r\n this.getAssociates();\r\n }\r\n clearAll(isDelivery: boolean) {\r\n this.isDelivery = isDelivery;\r\n this.assignReportingManagerForm.controls[\"ddlEmployee\"].reset();\r\n this.assignReportingManagerForm.controls[\"ddlProject\"].reset();\r\n this.assignReportingManagerForm.controls[\"ddlReportingManager\"].reset();\r\n this.assignReportingManagerForm.controls[\"ddlProgramManager\"].reset();\r\n this.assignReportingManagerForm.controls[\"ddlLead\"].reset();\r\n this.projectsList.push({ label: '', value: null });\r\n this.selectDisabled = false;\r\n this.employee.ProgramManagerName = \"\";\r\n this.employee.ReportingManagerName = \"\";\r\n this.employee.LeadName = \"\";\r\n }\r\n\r\n clearAllForm() {\r\n this.employee = new Employee();\r\n this.assignReportingManagerForm.reset();\r\n setTimeout(() => {\r\n this.formGroupDirective.resetForm();\r\n this.assignReportingManagerForm.controls.ddlDelivery.setValue(true);\r\n this.assignReportingManagerForm.controls.ddlDelivery.updateValueAndValidity();\r\n this.isDelivery = true;\r\n }, 0);\r\n }\r\n clearAllFormall(){\r\n this.isDateError=false\r\n this.employee = new Employee();\r\n if(!this.assignReportingManagerForm.value.ddlDelivery){\r\n this.assignReportingManagerForm.reset();\r\n setTimeout(() => {\r\n this.formGroupDirective.resetForm();\r\n }, 0);\r\n this.isDelivery = false;\r\n }\r\n else\r\n this.clearAllForm();\r\n }\r\n\r\n private _filter(value) {\r\n let filterValue;\r\n if (value && value.ddlEmployee) {\r\n filterValue = value.ddlEmployee.toLowerCase();\r\n return this.associatesList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.associatesList;\r\n }\r\n }\r\n\r\n cliearField(event : any, fieldName) {\r\n if (fieldName == 'ddlEmployee') {\r\n this.clearAllFormall();\r\n event.stopPropagation();\r\n }\r\n else if (fieldName == 'ddlProgramManager') {\r\n this.assignReportingManagerForm.controls.ddlProgramManager.reset();\r\n event.stopPropagation();\r\n }\r\n else if (fieldName == 'ddlReportingManager') {\r\n this.assignReportingManagerForm.controls.ddlReportingManager.reset();\r\n event.stopPropagation();\r\n }\r\n else if (fieldName == 'ddlLead') {\r\n this.assignReportingManagerForm.controls.ddlLead.reset();\r\n event.stopPropagation();\r\n }\r\n }\r\n\r\n pushFilteredManagersIds() {\r\n this.filteredManagersIds = [];\r\n for (let i = 0; i < this.allAssociatesList.length; i++) {\r\n this.filteredManagersIds.push({ Id: this.allAssociatesList[i].EmpId, Name: this.allAssociatesList[i].EmpName });\r\n }\r\n }\r\n\r\n getAllAssociatesList() {\r\n this.service.GetAllAssociatesList().subscribe((resp: GenericType[]) => {\r\n this.allAssociatesList = [];\r\n this.allAssociatesList = resp;\r\n });\r\n }\r\n\r\n\r\n selectedChangeIds(frmCntrl, item) {\r\n if (frmCntrl == 'ddlProgramManager') {\r\n this.selectedChangeProgramManager = item;\r\n }\r\n else if (frmCntrl == 'ddlReportingManager') {\r\n this.selectedChangeReportingManager = item;\r\n }\r\n else if (frmCntrl == 'ddlLead') {\r\n this.selectedChangeLeadManager = item;\r\n }\r\n }\r\n\r\n clearInput(evt: any, fieldName): void {\r\n if (fieldName == 'EffectiveDate') {\r\n this.isDateError=false\r\n evt.stopPropagation();\r\n this.assignReportingManagerForm.get('EffectiveDate').reset();\r\n }\r\n }\r\n removeDateErrorMessage(){\r\n this.isDateError=false\r\n }\r\n}\r\n\r\n\r\n","\r\n
\r\n
\r\n
\r\n Delivery\r\n
\r\n
\r\n \r\n Employee *\r\n \r\n \r\n \r\n \r\n No matching value found\r\n \r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n Employee Name Required\r\n \r\n \r\n Only characters allowed\r\n \r\n \r\n Only 100 characters\r\n \r\n \r\n Select Employee from given options\r\n \r\n \r\n {{employee.ReportingManagerName}}\r\n \r\n Change Reporting Manager \r\n Select Reporting Manager \r\n \r\n \r\n \r\n \r\n No matching value found\r\n \r\n \r\n {{item.Name}}\r\n \r\n \r\n \r\n \r\n Reporting Manager Required\r\n \r\n \r\n \r\n Select Reporting Manager from given options\r\n \r\n \r\n \r\n {{employee.LeadName}}\r\n \r\n Change Lead \r\n Select Lead \r\n \r\n \r\n \r\n \r\n No matching value found\r\n \r\n \r\n {{item.Name}}\r\n \r\n \r\n \r\n Select Lead from given options\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n Select Current Project *\r\n \r\n \r\n {{item.label}}\r\n \r\n \r\n Project Required\r\n \r\n \r\n \r\n\r\n {{employee.ProgramManagerName}}\r\n \r\n Change Program Manager \r\n Select Program Manager *\r\n \r\n \r\n \r\n \r\n No matching value found\r\n \r\n \r\n {{item.Name}}\r\n \r\n \r\n \r\n Select Program Manager from given options\r\n \r\n \r\n Program Manager Required\r\n \r\n \r\n\r\n \r\n\r\n \r\n Effective Date*\r\n \r\n \r\n close\r\n \r\n \r\n \r\n \r\n \r\n Effective Date Required.\r\n \r\n \r\n \r\n No empty spaces allowed\r\n \r\n \r\n
\r\n \r\n {{dateErrorMessage}}\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 { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { from, Subscription } from 'rxjs';\r\nimport { ActivityData, ActivityDetails, ActivityList } from 'src/app/modules/project-life-cycle/models/activities.model';\r\nimport { ProjectCreationService } from 'src/app/modules/project-life-cycle/services/project-creation.service';\r\nimport { ProjectClosureService } from 'src/app/modules/project-life-cycle/services/project-closure.service';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\n\r\n@Component({\r\n selector: 'app-checklist-tab',\r\n templateUrl: './checklist-tab.component.html',\r\n styleUrls: ['./checklist-tab.component.scss']\r\n})\r\nexport class ChecklistTabComponent implements OnInit {\r\n\r\n projectId: number;\r\n projectIdSubscription: Subscription;\r\n activityData: ActivityData;\r\n dashboard: string;\r\n hideBack: boolean = false;\r\n showback: boolean = true;\r\n pageload: boolean = false;\r\n\r\n constructor(private projectCreationService: ProjectCreationService,\r\n private router: Router,\r\n public dialog: MatDialog,\r\n private actRoute: ActivatedRoute,\r\n private _snackBar: MatSnackBar,\r\n private projectClosureService: ProjectClosureService,\r\n private spinner: NgxSpinnerService) { \r\n }\r\n\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n\r\n serviceDeptID: number;\r\n checklist: Map = new Map();\r\n displayedColumns: string[];\r\n EmpId: number;\r\n projectState: string;\r\n projectStateSubscription: Subscription;\r\n fullName: string;\r\n roleName:string;\r\n checklistForm: FormGroup;\r\n\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort; \r\n \r\n ngOnInit():void {\r\n this.spinner.show();\r\n this.EmpId = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).employeeId;\r\n this.fullName = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).fullName;\r\n this.roleName = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).roleName;\r\n \r\n switch(this.roleName){\r\n case(\"Admin Manager\"):{\r\n this.serviceDeptID=2;\r\n break;\r\n }\r\n case(\"IT Manager\"):{\r\n this.serviceDeptID=3;\r\n break;\r\n }\r\n case(\"Finance Manager\"):{\r\n this.serviceDeptID=4;\r\n break;\r\n }\r\n case(\"Quality and Information Security Manager\"):{\r\n this.serviceDeptID=5;\r\n break;\r\n }\r\n }\r\n this.actRoute.params.subscribe(params => { this.dashboard = params[\"id\"]; });\r\n this.projectStateSubscription = this.projectCreationService.GetProjectState().subscribe(data => {\r\n this.projectState = data;\r\n });\r\n this.projectIdSubscription = this.projectCreationService.GetProjectId().subscribe(data => {\r\n this.projectId = data;\r\n });\r\n\r\n this.checklistForm = new FormGroup({});\r\n this.getClosureActivityByDepartment(this.serviceDeptID); //using promises to handle the data\r\n \r\n }\r\n\r\n getClosureActivityByDepartment(departmentId: number){\r\n this.projectClosureService.getClosureActivitiesByDepartment(departmentId)\r\n .toPromise().then((activitylist: ActivityList[])=>{\r\n for(let i=0;i{\r\n this.getActivitiesByProjectIdAndDepartmentId(this.projectId);\r\n }); \r\n }).catch(\r\n error=>{\r\n this.spinner.hide();\r\n this._snackBar.open(\"Error while getting the closure activities by department\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n })\r\n });\r\n }\r\n\r\n getActivitiesByProjectIdAndDepartmentId(projectId: number){\r\n this.projectClosureService.getActivitiesByProjectIdAndDepartmentId(this.projectId,this.serviceDeptID).toPromise()\r\n .then((activitydata: ActivityData)=>{\r\n //this.activityData = activitydata;\r\n this.activityData.Remarks = activitydata.Remarks;\r\n for(let i=0;i{\r\n this.spinner.hide();\r\n this._snackBar.open(\"Error while Getting Activity Checklist\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }); \r\n }\r\n\r\n CreateActivityChecklist(){\r\n let actDetails: ActivityDetails[] = [];\r\n for(let id of this.checklist.keys()){\r\n actDetails.push({\r\n ActivityId: id,\r\n Value: \"no\",\r\n Remarks: \"\",\r\n value_bool: false,\r\n createdBy: this.fullName,\r\n modifiedBy: \"\"\r\n });\r\n }\r\n this.activityData = {\r\n ProjectId: this.projectId,\r\n DepartmentId: this.serviceDeptID,\r\n Remarks: \"\",\r\n type: \"create\",\r\n ActivityDetails: actDetails\r\n }\r\n return Promise.resolve();\r\n }\r\n\r\n populateFormControl(){\r\n for(let i=0;i{\r\n this._snackBar.open(\"Successfully saved\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }).catch(error=>{\r\n this._snackBar.open(\"Error while saving!\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n\r\n clearValidators(){\r\n Object.keys(this.checklistForm.controls).forEach(key => {\r\n this.checklistForm.get(key).clearValidators();\r\n this.checklistForm.get(key).updateValueAndValidity();\r\n });\r\n }\r\n\r\n UpdateActivityChecklist(){\r\n let remark = this.checklistForm.get('Remarks').value;\r\n if(remark===\"\"){\r\n this.activityData.Remarks = null;\r\n } else{\r\n this.activityData.Remarks = remark;\r\n } \r\n for(let i=0;i{\r\n this._snackBar.open(\"Activities Submitted Successfully\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }).afterDismissed().subscribe(res=>{\r\n this.onBack();\r\n });\r\n }).catch(error=>{\r\n this._snackBar.open(\"Error while submitting!\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n\r\n onBack() {\r\n this.router.navigate(['shared/dashboard']);\r\n this.showback = false;\r\n }\r\n\r\n}\r\n","
\r\n\r\n\r\n\r\n\r\n
\r\n \r\n
\r\n

Activities

\r\n
\r\n
\r\n
\r\n \r\n \r\n {{ checklist.get(element.ActivityId) }}\r\n \r\n \r\n
\r\n
\r\n \r\n Comments\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n Remarks\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 { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, FormGroupDirective, Validators } from '@angular/forms';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport * as moment from 'moment';\r\nimport { Subscription } from 'rxjs';\r\nimport { CommonService } from 'src/app/core/services/common.service';\r\nimport { PercentageDropDown } from 'src/app/modules/master-layout/models/associateallocation.model';\r\nimport { ProjectsData } from 'src/app/modules/master-layout/models/projects.model';\r\nimport { MasterDataService } from 'src/app/modules/master-layout/services/masterdata.service';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { ClientBillingRoleDetails } from '../../models/client-billing-role.model';\r\nimport { ClientBillingRoleService } from '../../services/client-billing-roles.service';\r\nimport { ProjectCreationService } from '../../services/project-creation.service';\r\nimport { AllocationDetails, ResourceAllocationDetails } from '../../../reports/models/resourcereportbyproject.model';\r\nimport { ResourceReportService } from '../../../reports/services/resource-report.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { CloseCbrDialogComponent } from '../close-cbr-dialog/close-cbr-dialog.component';\r\nimport { MessageDialogComponent } from '../message-dialog/message-dialog.component';\r\nimport { AllocatedResourcesDialogComponent } from '../allocated-resources-dialog/allocated-resources-dialog.component';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { DeleteDialogComponent } from '../delete-dialog/delete-dialog.component';\r\nimport { ConfirmDialogComponent } from '../confirm-dialog/confirm-dialog.component';\r\n\r\ninterface SelectItem {\r\n value: number;\r\n label: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-client-billing-role',\r\n templateUrl: './client-billing-role.component.html',\r\n styleUrls: ['./client-billing-role.component.scss']\r\n})\r\nexport class ClientBillingRoleComponent implements OnInit {\r\n\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n\r\n projectsList: SelectItem[];\r\n clientBillingRoleOptions: SelectItem[] = [];\r\n\r\n formSubmitted: boolean = false;\r\n saveRoleData: boolean = true;\r\n displayDialog: boolean = false;\r\n editMode: boolean;\r\n isDrafted: boolean = false;\r\n disableProject: boolean = false;\r\n submitted = false;\r\n\r\n clientBillingRolesForm: FormGroup;\r\n closeRoleData: FormGroup;\r\n\r\n projectStartDate: string;\r\n projectState: string;\r\n currentRole = \"\";\r\n projectId: number;\r\n dashboard: string;\r\n cancelBtnLabel = \"Clear\";\r\n positions: number;\r\n displayCloseRoleErrorDialog = false;\r\n displayCloseCBRDialog: boolean = false;\r\n showAllocatedPositionsList: boolean = false;\r\n\r\n closableRole = new ClientBillingRoleDetails();\r\n\r\n clientBillingRoleData: ClientBillingRoleDetails[];\r\n billableResourceAllocationList: ResourceAllocationDetails[] = [];\r\n\r\n clientBillingRole: ClientBillingRoleDetails;\r\n selectedBillingRole: ClientBillingRoleDetails;\r\n\r\n minDate = new Date();\r\n minClientBillingStartDate = new Date();\r\n maxClientBillingStartDate = new Date();\r\n\r\n submitBtnLabel = \"Review and Submit\";\r\n\r\n editModeSubscription: Subscription;\r\n projectStateSubscription: Subscription;\r\n projectIdSubscription: Subscription;\r\n\r\n disablestyles = { 'opacity': '0.6', 'pointer-events': 'none' }\r\n\r\n displayedColumns: string[];\r\n\r\n dataSource: MatTableDataSource;\r\n allocatedResourcesDataSource: MatTableDataSource;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n\r\n constructor(private fb: FormBuilder,\r\n private _commonService: CommonService,\r\n private _snackBar: MatSnackBar,\r\n private _clientBillingRoleService: ClientBillingRoleService,\r\n private _projectCreationService: ProjectCreationService,\r\n private _masterDataService: MasterDataService,\r\n private _resourceReportsService: ResourceReportService,\r\n public dialog: MatDialog,\r\n public navService: NavService) {\r\n\r\n this.navService.changeSearchBoxData('');\r\n\r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.createCloseRoleform();\r\n this.editModeSubscription = this._projectCreationService.GetEditMode().subscribe(data => {\r\n this.editMode = data;\r\n });\r\n \r\n this.currentRole = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"])\r\n .roleName;\r\n this.projectStateSubscription = this._projectCreationService.GetProjectState().subscribe(data => {\r\n this.projectState = data;\r\n if(this.currentRole == 'Department Head'){\r\n this.dashboard = 'ProjectDashboard';\r\n if(this.projectState == 'SubmittedForApproval'){\r\n this.dashboard = 'DHDashboard'\r\n }\r\n }\r\n else{\r\n this.dashboard = 'ProjectDashboard';\r\n }\r\n \r\n });\r\n this.initiateForm();\r\n this.projectIdSubscription = this._projectCreationService.GetProjectId().subscribe((data: any) => {\r\n\r\n this.projectId = data;\r\n if (this.projectId > 0) {\r\n this.getClientBillingRolesByProjectId(this.projectId);\r\n this.getProjectsList();\r\n }\r\n });\r\n \r\n if (this.currentRole !== 'Department Head')\r\n this.submitBtnLabel = \"Review and Submit\";\r\n else {\r\n if (this.projectState == \"SubmittedForApproval\")\r\n this.submitBtnLabel = \"Review and Approve\";\r\n else\r\n this.submitBtnLabel = \"Review and Save\"; \r\n }\r\n this.getProjectsList();\r\n this.getClientBillingRolePercentages();\r\n }\r\n\r\n getdisplayedColumns(): string[] {\r\n if (this.canEditOrDelete()) {\r\n this.displayedColumns = ['ClientBillingRoleName', 'NoOfPositions', 'AllocationCount', 'AvailablePositions', 'StartDate', 'EndDate', 'ClientBillingPercentage', 'Edit', 'Delete', 'CloseRole', 'Clone'];\r\n return this.displayedColumns;\r\n }\r\n else {\r\n this.displayedColumns = ['ClientBillingRoleName', 'NoOfPositions', 'AllocationCount', 'AvailablePositions', 'StartDate', 'EndDate', 'ClientBillingPercentage', 'CloseRole', 'Clone'];\r\n return this.displayedColumns;\r\n }\r\n }\r\n\r\n createCloseRoleform() {\r\n var date = new Date(), y = date.getFullYear(), m = date.getMonth();\r\n this.minDate = new Date(y, m - 1, 1); //new Date(this.closableRole.StartDate);\r\n this.minClientBillingStartDate = new Date(y, m - 1, 1);\r\n this.maxClientBillingStartDate = new Date();\r\n this.closeRoleData = new FormGroup({\r\n BillingEndDate: new FormControl(null, [Validators.required]),\r\n Reason: new FormControl(null, Validators.required)\r\n });\r\n }\r\n\r\n CloneData(cBRData: ClientBillingRoleDetails) {\r\n\r\n this.patchDataToForm(cBRData);\r\n }\r\n\r\n initiateForm() {\r\n //to initiate the form\r\n this.clientBillingRolesForm = this.fb.group({\r\n ProjectId: [null, [Validators.required]],\r\n ClientBillingRoleName: [null, [Validators.required,\r\n Validators.pattern(\"^(?!.*--)^(?!-[0-9])[A-Za-z0-9-.()&/, ]+$\")]],\r\n NoOfPositions: [, [Validators.required, Validators.pattern(\"^[1-9][0-9]*\")]],\r\n StartDate: [null, [Validators.required]],\r\n EndDate: [null],\r\n ClientBillingPercentage: ['', [Validators.required]]\r\n })\r\n }\r\n\r\n getProjectsList(): void {\r\n //to get list of all projects\r\n let userRole = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"])\r\n .roleName;\r\n let employeeId = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).employeeId;\r\n this.projectsList = [];\r\n \r\n // this.dashboard = 'ProjectDashboard'; \r\n //this.projectsList.push({ label: \"Select Project \", value: null });\r\n if (userRole != \"\" && employeeId > 0) {\r\n this._projectCreationService\r\n .GetProjectsList(userRole, employeeId, this.dashboard)\r\n .subscribe((res: ProjectsData[]) => {\r\n if (res.length > 0) {\r\n res.forEach(e => {\r\n this.projectsList.push({\r\n label: e.ProjectName,\r\n value: e.ProjectId\r\n });\r\n\r\n if (this.projectId > 0 && e.ProjectId == this.projectId)\r\n this.projectStartDate = e.ActualStartDate != null ? moment(e.ActualStartDate).format(\"YYYY-MM-DD\") : null;\r\n if (\r\n e.ProjectId == this.projectId &&\r\n e.ProjectState == \"Drafted\"\r\n ) {\r\n this.isDrafted = true;\r\n }\r\n });\r\n if (this.projectId > 0) {\r\n this.clientBillingRolesForm.patchValue({\r\n ProjectId: this.projectId\r\n });\r\n this.disableProject = true;\r\n }\r\n }\r\n }),\r\n error => { };\r\n }\r\n }\r\n\r\n\r\n getClientBillingRolesByProjectId(projectId: number) {\r\n\r\n //To get client billing roles based on project\r\n if (projectId > 0) {\r\n\r\n this.clientBillingRoleData = new Array();\r\n this._clientBillingRoleService\r\n .GetClientBillingRolesByProjectId(projectId)\r\n .subscribe((res: ClientBillingRoleDetails[]) => {\r\n\r\n if (res.length > 0) {\r\n this.clientBillingRoleData = res;\r\n this.clientBillingRoleData.forEach(\r\n (d: ClientBillingRoleDetails) => {\r\n if (d.IsActive == true)\r\n d.AvailablePositions = d.NoOfPositions - d.AllocationCount;\r\n else\r\n d.AvailablePositions = 0;\r\n d.StartDate =\r\n d.StartDate != null\r\n ? moment(d.StartDate).format(\"MM/DD/YYYY\")\r\n : null;\r\n d.EndDate =\r\n d.EndDate != null\r\n ? moment(d.EndDate).format(\"MM/DD/YYYY\")\r\n : null;\r\n }\r\n );\r\n }\r\n this.dataSource = new MatTableDataSource(this.clientBillingRoleData);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.dataSource.sortingDataAccessor = (data: any, sortHeaderId: string): string => {\r\n if (typeof data[sortHeaderId] === 'string') {\r\n return data[sortHeaderId].toLocaleLowerCase();\r\n }\r\n \r\n return data[sortHeaderId];\r\n };\r\n }),\r\n error => { };\r\n }\r\n }\r\n\r\n private getClientBillingRolePercentages(): void {\r\n //to populate client billing role percentage drop-down\r\n this._masterDataService.GetAllocationPercentages().subscribe(\r\n (res: PercentageDropDown[]) => {\r\n this.clientBillingRoleOptions = [];\r\n this.clientBillingRoleOptions.push({\r\n label: \"Select Client Billing %\",\r\n value: null\r\n });\r\n res.forEach((element) => {\r\n this.clientBillingRoleOptions.push({\r\n label: JSON.stringify(element.Percentage),\r\n value: element.AllocationPercentageId\r\n });\r\n });\r\n },\r\n error => {\r\n this._snackBar.open('Failed to get Client Billing Role Percentages', 'x', {\r\n duration: 3000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n\r\n\r\n clearInput(evt: any, fieldName): void {\r\n if(fieldName=='StartDate'){\r\n evt.stopPropagation();\r\n this.clientBillingRolesForm.get('StartDate').reset();\r\n }\r\n if(fieldName=='EndDate'){\r\n evt.stopPropagation();\r\n this.clientBillingRolesForm.get('EndDate').reset();\r\n }\r\n }\r\n \r\n onEmpty(event : any){\r\n if (event.target.value.length === 0)\r\n this.clientBillingRolesForm.controls.ClientBillingRoleName.patchValue(null);\r\n }\r\n\r\n addClientBillingRole() {\r\n //to add client billing roles\r\n this.formSubmitted = true;\r\n if (this.clientBillingRolesForm.valid) {\r\n this.clientBillingRolesForm.value.StartDate =\r\n this.clientBillingRolesForm.value.StartDate != null\r\n ? moment(this.clientBillingRolesForm.value.StartDate).format(\r\n \"YYYY-MM-DD\"\r\n )\r\n : null;\r\n this.clientBillingRolesForm.value.EndDate =\r\n this.clientBillingRolesForm.value.EndDate != null\r\n ? moment(this.clientBillingRolesForm.value.EndDate).format(\r\n \"YYYY-MM-DD\"\r\n )\r\n : null;\r\n if (\r\n !this._commonService.IsValidDate(\r\n this.projectStartDate,\r\n this.clientBillingRolesForm.value.StartDate\r\n )\r\n ) {\r\n\r\n this._snackBar.open('Client billing Start date should be greater than or equal to Project Start date', 'x', {\r\n duration: 3000,\r\n // panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return;\r\n }\r\n if (\r\n this.clientBillingRolesForm.value.StartDate != null &&\r\n this.clientBillingRolesForm.value.EndDate != null\r\n ) {\r\n\r\n if (\r\n !this._commonService.IsValidDate(\r\n this.clientBillingRolesForm.value.StartDate,\r\n this.clientBillingRolesForm.value.EndDate\r\n )\r\n ) {\r\n\r\n this._snackBar.open('Client Billing Start Date should be less than or equal to Client Billing End Date', 'x', {\r\n duration: 3000,\r\n // panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return;\r\n }\r\n }\r\n this._clientBillingRoleService\r\n .SaveClientBillingRole(this.clientBillingRolesForm.value)\r\n .subscribe(res => {\r\n if (res == 1) {\r\n this.getClientBillingRolesByProjectId(\r\n this.clientBillingRolesForm.value.ProjectId\r\n );\r\n this._snackBar.open('Client Billing Role added successfully.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this._projectCreationService.SetSeletedTab(2);\r\n this.reset();\r\n }\r\n else if (res == -1) {\r\n this._snackBar.open('Client Billing Role Already Exists', 'x', {\r\n duration: 3000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return;\r\n }\r\n // this.reset();\r\n }),\r\n error => {\r\n this._snackBar.open('Unable to add Client Billing Role', 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n };\r\n // this.reset();\r\n } else return;\r\n }\r\n\r\n\r\n updateClientBillingRole() {\r\n //to update client billing roles\r\n this.formSubmitted = true;\r\n if (this.clientBillingRolesForm.valid) {\r\n this.clientBillingRole = new ClientBillingRoleDetails();\r\n this.clientBillingRole.ClientBillingRoleId = this.selectedBillingRole.ClientBillingRoleId;\r\n this.clientBillingRole.ProjectId = this.selectedBillingRole.ProjectId;\r\n this.clientBillingRole.ClientBillingRoleName = this.clientBillingRolesForm.value.ClientBillingRoleName;\r\n this.clientBillingRole.NoOfPositions = this.clientBillingRolesForm.value.NoOfPositions;\r\n this.clientBillingRole.ClientBillingPercentage = this.clientBillingRolesForm.value.ClientBillingPercentage;\r\n this.clientBillingRole.StartDate =\r\n this.clientBillingRolesForm.value.StartDate != null\r\n ? moment(this.clientBillingRolesForm.value.StartDate).format(\r\n \"YYYY-MM-DD\"\r\n )\r\n : null;\r\n this.clientBillingRole.EndDate =\r\n this.clientBillingRolesForm.value.EndDate != null\r\n ? moment(this.clientBillingRolesForm.value.EndDate).format(\r\n \"YYYY-MM-DD\"\r\n )\r\n : null;\r\n\r\n if (\r\n !this._commonService.IsValidDate(\r\n this.projectStartDate,\r\n this.clientBillingRole.StartDate\r\n )\r\n ) {\r\n this._snackBar.open('Client billing Start date should be greater than or equal to Project Start date', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return;\r\n }\r\n if (\r\n this.clientBillingRole.StartDate != null &&\r\n this.clientBillingRole.EndDate != null\r\n ) {\r\n if (\r\n !this._commonService.IsValidDate(\r\n this.clientBillingRole.StartDate,\r\n this.clientBillingRole.EndDate\r\n )\r\n ) {\r\n this._snackBar.open('Start Date should be less than or equal to End Date', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return;\r\n }\r\n }\r\n if (this.projectState == \"Drafted\") {\r\n this.updateClientBillingDetails(this.clientBillingRole);\r\n }\r\n else {\r\n if (this.clientBillingRolesForm.dirty == true) {\r\n this.displayDialog = true;\r\n\r\n const dialogRef = this.dialog.open(MessageDialogComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n data: { heading: \"Confirmation\", message: \"Update SOW details, if available.\" }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.isSowPresent();\r\n });\r\n\r\n }\r\n else {\r\n this._snackBar.open('Nothing to save', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n };\r\n this.reset();\r\n }\r\n }\r\n\r\n isSowPresent() {\r\n //when sow details are present \r\n this._projectCreationService.SetSeletedTab(1);\r\n this.updateClientBillingDetails(this.clientBillingRole);\r\n this.reset();\r\n this.displayDialog = false;\r\n return true;\r\n }\r\n\r\n updateClientBillingDetails(clientBillingRole) {\r\n\r\n //service call to update client billing role\r\n this._clientBillingRoleService\r\n .UpdateClientBillingRole(clientBillingRole)\r\n .subscribe(res => {\r\n if (res >= 1) {\r\n this._snackBar.open('Client Billing Role updated successfully.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.getClientBillingRolesByProjectId(\r\n this.clientBillingRolesForm.value.ProjectId\r\n );\r\n\r\n this.reset();\r\n } else if (res == 0) {\r\n this._snackBar.open('No. of positions cannot be decreased', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n else if (res == -1) {\r\n this._snackBar.open('Client Billing Role already exists', 'x', {\r\n duration: 3000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n else if (res == -2) {\r\n this._snackBar.open('Cannot decrease positions', 'x', {\r\n duration: 3000,\r\n // panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n }),\r\n error => {\r\n this._snackBar.open('Unable to update Client Billing Role', 'x', {\r\n duration: 3000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n };\r\n }\r\n\r\n getResourceReportByProjectId(projectId: number, roleId: number): void {\r\n this.billableResourceAllocationList = [];\r\n this.showAllocatedPositionsList = false;\r\n this._resourceReportsService.GetResourceReportByProjectId(projectId).subscribe((resourceReportResponse: AllocationDetails) => {\r\n this.billableResourceAllocationList = resourceReportResponse.lstBillableResources;\r\n if (resourceReportResponse) {\r\n this.showAllocatedPositionsList = true;\r\n if (resourceReportResponse.lstBillableResources && resourceReportResponse.lstBillableResources.length > 0) {\r\n this.billableResourceAllocationList = resourceReportResponse.lstBillableResources.filter(p => p.ClientBillingRoleId === roleId)\r\n }\r\n }\r\n else {\r\n this._snackBar.open('No records found.', 'x', {\r\n duration: 3000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n this.allocatedResourcesDataSource = new MatTableDataSource(this.billableResourceAllocationList);\r\n this.allocatedResourcesDataSource.paginator = this.paginator;\r\n this.allocatedResourcesDataSource.sort = this.sort;\r\n this.allocatedResourcesDataSource.sortingDataAccessor = (data: any, sortHeaderId: string): string => {\r\n if (typeof data[sortHeaderId] === 'string') {\r\n return data[sortHeaderId].toLocaleLowerCase();\r\n }\r\n \r\n return data[sortHeaderId];\r\n };\r\n const dialogRef = this.dialog.open(AllocatedResourcesDialogComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n height: '400px',\r\n width: '800px',\r\n data: { datasource: this.allocatedResourcesDataSource, paginator: this.allocatedResourcesDataSource.paginator, sort: this.allocatedResourcesDataSource.sort }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n });\r\n\r\n }),\r\n (error: any) => {\r\n this._snackBar.open('Failed to get Client details.', 'x', {\r\n duration: 3000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n };\r\n }\r\n\r\n\r\n canEditOrDelete() {\r\n if (this.projectState == 'Drafted' || this.projectState == 'Created')\r\n return true;\r\n if (this.projectState == 'SubmittedForApproval' && this.currentRole == 'Department Head')\r\n return true;\r\n\r\n return false;\r\n }\r\n\r\n disableEditAndDelete(cBRData: ClientBillingRoleDetails) {\r\n if ((cBRData.IsActive != undefined || cBRData.IsActive != null) && cBRData.IsActive == false)\r\n return this.disablestyles;\r\n return { 'cursor': 'pointer' };\r\n\r\n }\r\n\r\n editBillingRole(billingRoleData: ClientBillingRoleDetails) {\r\n\r\n //invokes when we click on edit button\r\n this.saveRoleData = false;\r\n this.disableProject = true;\r\n this.cancelBtnLabel = \"Cancel\";\r\n this.patchDataToForm(billingRoleData);\r\n\r\n }\r\n\r\n patchDataToForm(billingRoleData: ClientBillingRoleDetails) {\r\n\r\n // if(billingRoleData.StartDate != null)\r\n // billingRoleData.StartDate = new Date(moment(billingRoleData.StartDate).format(\"MM/DD/YYY\")).toString();\r\n this.clientBillingRolesForm.patchValue({\r\n ClientBillingRoleName: billingRoleData.ClientBillingRoleName,\r\n NoOfPositions: billingRoleData.NoOfPositions,\r\n\r\n ClientBillingPercentage: (billingRoleData.ClientBillingPercentage) / 25,\r\n StartDate:\r\n billingRoleData.StartDate != null\r\n ? new Date(moment(billingRoleData.StartDate).format(\"MM/DD/YYYY\"))\r\n : null,\r\n EndDate:\r\n billingRoleData.EndDate != null\r\n ? new Date(moment(billingRoleData.EndDate).format(\"MM/DD/YYYY\"))\r\n : null\r\n });\r\n if (billingRoleData.ClientBillingPercentage == 0) {\r\n this.clientBillingRolesForm.patchValue({\r\n ClientBillingPercentage: 5\r\n })\r\n }\r\n this.selectedBillingRole = billingRoleData;\r\n this.positions = this.clientBillingRolesForm.value.NoOfPositions;\r\n }\r\n\r\n canCloseRole() {\r\n if (this.projectState == 'Drafted' || this.projectState == 'SubmittedForApproval')\r\n return false;\r\n return true;\r\n }\r\n\r\n canShowActions(cBRData: ClientBillingRoleDetails) {\r\n if ((cBRData.IsActive != undefined || cBRData.IsActive != null) && cBRData.IsActive == false) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n closeCBRData(cBRData: ClientBillingRoleDetails) {\r\n if (cBRData.AllocationCount > 0) {\r\n this.displayCloseRoleErrorDialog = true;\r\n const dialogRef = this.dialog.open(MessageDialogComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n data: { heading: \"Close Client Billing Record\", message: \"This Role has active allocation(s). First Release associate(s)\" }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n });\r\n return;\r\n }\r\n this.closableRole = cBRData;\r\n\r\n if (this.closableRole.EndDate != null) {\r\n let date = new Date(moment(this.closableRole.EndDate).format(\"YYYY-MM-DD\"));\r\n this.closeRoleData.patchValue({\r\n BillingEndDate: date\r\n })\r\n }\r\n this.displayCloseCBRDialog = true;\r\n\r\n\r\n const dialogRef = this.dialog.open(CloseCbrDialogComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n data: { BillingEndDate: this.closableRole.EndDate, BillingStartDate: this.closableRole.StartDate }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.closeRoleData.value.BillingEndDate = result.BillingEndDate;\r\n this.closeRoleData.value.Reason=result.Reason;\r\n this.closeClientBillingRecord();\r\n });\r\n }\r\n\r\n closeClientBillingRecord() {\r\n\r\n this.submitted = true;\r\n if (this.closeRoleData.value.BillingEndDate != null) {\r\n\r\n this.closeRoleData.value.BillingEndDate = moment(this.closeRoleData.value.BillingEndDate).format(\"YYYY-MM-DD\");\r\n this._clientBillingRoleService.closeClientBillingRecord(this.closableRole.ClientBillingRoleId, this.closeRoleData.value.BillingEndDate, this.closeRoleData.value.Reason).subscribe(res => {\r\n if (res > 0) {\r\n this.reset();\r\n this.getClientBillingRolesByProjectId(this.projectId);\r\n this._snackBar.open('Closed Client Billing Role Successfully.', 'x', {\r\n duration: 3000,\r\n // panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n }\r\n if (res == -1) {\r\n this.reset();\r\n this._snackBar.open('There are active allocations you can close it.', 'x', {\r\n duration: 3000,\r\n // panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n },\r\n (error) => {\r\n this.reset();\r\n this._snackBar.open('Closing Failed.', 'x', {\r\n duration: 3000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.projectIdSubscription.unsubscribe();\r\n this.editModeSubscription.unsubscribe();\r\n this.projectStateSubscription.unsubscribe();\r\n }\r\n\r\n deleteDialog(rowData) {\r\n // method to open delete dialog\r\n const dialogRef = this.dialog.open(DeleteDialogComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n data: {message: \"Do you want to delete Client Billing Role?\" }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result)\r\n this.deleteBillingRole(rowData);\r\n });\r\n\r\n }\r\n\r\n\r\n deleteBillingRole(rowData) {\r\n //to delete a client billing role.\r\n this._clientBillingRoleService\r\n .DeleteClientBillingRole(rowData.ClientBillingRoleId)\r\n .subscribe((res: boolean) => {\r\n if (res == true) {\r\n this.getClientBillingRolesByProjectId(\r\n this.clientBillingRolesForm.value.ProjectId\r\n );\r\n this._snackBar.open('Deleted Client Billing Role.', 'x', {\r\n duration: 3000,\r\n // panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n } else\r\n this._snackBar.open('Deleting Failed.', 'x', {\r\n duration: 3000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.reset();\r\n });\r\n }\r\n\r\n clearClientDialog(){\r\n let clearMessage: string = 'Do you want to clear?';\r\n if (this.cancelBtnLabel == 'Cancel'){\r\n clearMessage = 'Do you want to cancel?'\r\n }\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent,{\r\n disableClose: true,\r\n hasBackdrop: true,\r\n data:{\r\n message: clearMessage, \r\n }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if(result){\r\n this.reset();\r\n }\r\n });\r\n }\r\n\r\n\r\n reset() {\r\n //reset all the values\r\n this.formSubmitted = false;\r\n this.saveRoleData = true;\r\n this.cancelBtnLabel = \"Clear\";\r\n this.clientBillingRolesForm.reset({\r\n // ClientBillingPercentage: this.clientBillingRolesForm.get('ClientBillingPercentage').value,\r\n ProjectId: this.clientBillingRolesForm.get('ProjectId').value\r\n });\r\n this.formGroupDirective.resetForm({\r\n // ClientBillingPercentage: this.clientBillingRolesForm.get('ClientBillingPercentage').value,\r\n ProjectId: this.clientBillingRolesForm.get('ProjectId').value\r\n });\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.clientBillingRoleData);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n\r\n }\r\n }\r\n\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n \r\n Projects\r\n \r\n {{project.label}}\r\n \r\n \r\n Project is required.\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Client Billing Role Name *\r\n \r\n \r\n Client Billing Role Required.\r\n \r\n \r\n Only characters allowed.\r\n \r\n \r\n
\r\n
\r\n \r\n No. of positions*\r\n \r\n \r\n No. of Positions Required.\r\n \r\n \r\n Should not be Zero\r\n \r\n \r\n
\r\n
\r\n \r\n Client Billing %*\r\n \r\n {{billingPercent.label}}\r\n \r\n \r\n Client Billing % Required.\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n Billing Start Date*\r\n \r\n \r\n close\r\n \r\n \r\n \r\n \r\n Billing Start Date Required\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Billing End Date\r\n \r\n \r\n close\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 \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 \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 \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\r\n
Client Billing Role{{clientBillingRole.ClientBillingRoleName}} Total Position(s){{clientBillingRole.NoOfPositions}}Allocated Position(s) \r\n 0\" role=\"button\" style=\"cursor:pointer; color: #169af1;\" (click)=\"getResourceReportByProjectId(clientBillingRole.ProjectId, clientBillingRole.ClientBillingRoleId)\">{{clientBillingRole.AllocationCount}}\r\n {{clientBillingRole.AllocationCount}}Open Position(s){{clientBillingRole.AvailablePositions}}Start Date{{clientBillingRole.StartDate}}End Date{{clientBillingRole.EndDate}}Client Billing %{{clientBillingRole.ClientBillingPercentage}} Edit \r\n edit\r\n Delete \r\n delete\r\n Close RolecloseClonecontent_copy
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport * as moment from 'moment';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { CommonService } from '../../../../core/services/common.service';\r\n\r\n@Component({\r\n selector: 'app-close-cbr-dialog',\r\n templateUrl: './close-cbr-dialog.component.html',\r\n styleUrls: ['./close-cbr-dialog.component.scss']\r\n})\r\nexport class CloseCbrDialogComponent implements OnInit {\r\n\r\n closeRoleData: FormGroup;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n submitted = false;\r\n\r\n minCBRCloseDate = new Date();\r\n maxCBRCloseDate = new Date();\r\n\r\n constructor(private dialogRef: MatDialogRef, \r\n private _commonService: CommonService,\r\n private _snackBar: MatSnackBar,\r\n @Inject(MAT_DIALOG_DATA) public data: any ) { }\r\n\r\n ngOnInit(): void {\r\n this.createCloseRoleform();\r\n }\r\n\r\n clearInput(evt: any, fieldName): void {\r\n if(fieldName=='BillingEndDate'){\r\n evt.stopPropagation();\r\n this.closeRoleData.get('BillingEndDate').reset();\r\n }\r\n }\r\n createCloseRoleform() {\r\n var date = new Date(), y = date.getFullYear(), m = date.getMonth();\r\n this.minCBRCloseDate = new Date(y, m, 1); //new Date(this.closableRole.StartDate);\r\n this.closeRoleData = new FormGroup({\r\n BillingEndDate: new FormControl(null, [Validators.required]),\r\n Reason: new FormControl(null, [Validators.required])\r\n });\r\n\r\n if (this.data.BillingEndDate != null) {\r\n let date = new Date(moment(this.data.BillingEndDate).format(\"YYYY-MM-DD\"));\r\n this.closeRoleData.patchValue({\r\n BillingEndDate: date\r\n })\r\n }\r\n }\r\n\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n save() {\r\n this.submitted = true;\r\n if(this.closeRoleData.value.BillingEndDate!=null)\r\n { \r\n this.closeRoleData.value.BillingEndDate = new Date(moment(this.closeRoleData.value.BillingEndDate).format(\"YYYY-MM-DD\"));\r\n if (\r\n !this._commonService.IsValidDate(\r\n this.data.BillingStartDate,\r\n this.closeRoleData.value.BillingEndDate\r\n )\r\n ) {\r\n this._snackBar.open('Client Billing Start Date should be less than or equal to Client Billing End Date', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return;\r\n }\r\n\r\n if(this.closeRoleData.valid)\r\n this.dialogRef.close(this.closeRoleData.value);\r\n }\r\n}\r\n\r\n}\r\n","

Close Client Billing Record

\r\n \r\n
\r\n
\r\n
\r\n \r\n Billing End Date*\r\n \r\n \r\n close\r\n \r\n \r\n \r\n \r\n Billing End Date Required\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Reason*\r\n \r\n Reason required\r\n \r\n
\r\n
\r\n
\r\n
\r\n Note : Only one month back date is allowed\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 { Component, Inject } from '@angular/core';\r\nimport { MatDialogRef, MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nexport interface DialogData {\r\n message: string;\r\n }\r\n@Component({\r\n selector: 'confirm-dialog',\r\n templateUrl: './confirm-dialog.component.html',\r\n styleUrls: ['./confirm-dialog.component.css']\r\n})\r\nexport class ConfirmDialogComponent {\r\n message: string = \"Do you want to add SOW?\"\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) private data: any,\r\n private dialogRef: MatDialogRef) {\r\n if(data){\r\n this.message = data.message || this.message;\r\n }\r\n }\r\n\r\n onConfirmClick(): void {\r\n this.dialogRef.close(true);\r\n }\r\n\r\n onCancelClick(): void {\r\n this.dialogRef.close(true);\r\n }\r\n\r\n\r\n}","\r\n\t

\r\n\t\t{{message}}\r\n\t

\r\n
\r\n\r\n\t\r\n\t\r\n","import { Component, Inject, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport * as moment from 'moment';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { CdkTextareaAutosize } from '@angular/cdk/text-field';\r\n@Component({\r\n selector: 'date-dialog',\r\n templateUrl: './date-dialog.component.html',\r\n styleUrls: ['./date-dialog.component.css'],\r\n})\r\nexport class DateDialogComponent implements OnInit {\r\n public closeProjectData: FormGroup;\r\n public projectName: any;\r\n public startDate: any;\r\n public validFromErrorMessage: string;\r\n public isgreater = false;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n minClosureStartDate = new Date();\r\n maxClosureEndDate = new Date();\r\n constructor(\r\n private dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private _snackBar: MatSnackBar\r\n ) {\r\n this.closeProjectData = new FormGroup({\r\n ActualEndDate: new FormControl(null, Validators.required),\r\n Remarks: new FormControl(null, Validators.required),\r\n });\r\n }\r\n \r\n @ViewChild('autosize', {static: false}) autosize: CdkTextareaAutosize;\r\n\r\n ngOnInit() {\r\n this.dialogRef.updateSize('50%', '65%');\r\n if (this.data.BillingEndDate != null) {\r\n let date = new Date(\r\n moment(this.data.BillingEndDate).format('YYYY-MM-DD')\r\n );\r\n this.closeProjectData.patchValue({\r\n ActualEndDate: date,\r\n });\r\n }\r\n this.projectName = this.data.ProjectName;\r\n this.startDate = this.data.StartDate;\r\n var date = new Date(), year = date.getFullYear(), month = date.getMonth();\r\n this.minClosureStartDate = new Date(year, month, 1);\r\n this.maxClosureEndDate = new Date();\r\n }\r\n\r\n clearInput(evt: any, fieldName): void {\r\n if(fieldName=='ActualEndDate'){\r\n evt.stopPropagation();\r\n this.closeProjectData.get('ActualEndDate').reset();\r\n }\r\n }\r\n\r\n validFromYear(datevalue: any) {\r\n this.validFromErrorMessage = '';\r\n\r\n if (Date.parse(datevalue) < Date.parse(this.startDate)) {\r\n this._snackBar.open('End Date should be greater than Start Date', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.validFromErrorMessage = 'End Date should be greater than Start Date';\r\n this.isgreater = true;\r\n return false;\r\n }\r\n if (\r\n this.validFromErrorMessage == '' ||\r\n this.validFromErrorMessage == null\r\n ) {\r\n this.isgreater = false;\r\n }\r\n }\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n save() {\r\n if (this.isgreater) {\r\n return;\r\n }\r\n this.dialogRef.close(this.closeProjectData.value);\r\n }\r\n\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","
\r\n

Project Closure

\r\n

Project Name : {{projectName}}

\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n \r\n End Date\r\n *\r\n \r\n \r\n \r\n close\r\n \r\n \r\n \r\n \r\n End Date Required\r\n \r\n \r\n {{validFromErrorMessage}}\r\n \r\n\r\n \r\n\r\n
\r\n
\r\n \r\n Remarks\r\n *\r\n \r\n \r\n \r\n Remarks is Required\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 { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { DialogData } from '../confirm-dialog/confirm-dialog.component';\r\n\r\n@Component({\r\n selector: 'app-delete-dialog',\r\n templateUrl: './delete-dialog.component.html',\r\n styleUrls: ['./delete-dialog.component.scss']\r\n})\r\nexport class DeleteDialogComponent implements OnInit {\r\n\r\n constructor( public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n \r\n onConfirm(): void {\r\n // Close the dialog, return true\r\n this.dialogRef.close(true);\r\n}\r\n\r\nonDismiss(): void {\r\n // Close the dialog, return false\r\n this.dialogRef.close(false);\r\n}\r\n}\r\n","
\r\n

\r\n {{data.heading}}\r\n

\r\n
\r\n\r\n\r\n
\r\n

{{data.message}}

\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-message-dialog',\r\n templateUrl: './message-dialog.component.html',\r\n styleUrls: ['./message-dialog.component.scss']\r\n})\r\nexport class MessageDialogComponent implements OnInit {\r\n\r\n constructor(private dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any ) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n}\r\n","

{{data.heading}}

\r\n\r\n
\r\n {{data.message}}\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ProjectCreationService } from '../../services/project-creation.service';\r\nimport { ProjectsData } from '../../../master-layout/models/projects.model';\r\nimport * as servicePath from \"../../../../core/service-paths\";\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport * as moment from \"moment\";\r\nimport { Subscription } from 'rxjs';\r\nimport { ProjectClosureReport} from '../../models/projects.model';\r\nimport{ProjectClosureService} from '../../services/project-closure.service';\r\nimport {MatSnackBar} from '@angular/material/snack-bar';\r\nimport * as fileSaver from 'file-saver';\r\nimport 'rxjs/Rx' ;\r\nimport { ActivityData, ActivityList } from '../../models/activities.model';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { take } from 'rxjs/operators';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { RemarksTeamleadComponent } from '../remarks-teamlead.component';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport{ProjectClosureReject} from '../../models/projects.model'\r\n\r\n@Component({\r\n selector: 'app-pm-closure-dashboard',\r\n templateUrl: './pm-closure-dashboard.component.html',\r\n styleUrls: ['./pm-closure-dashboard.component.scss']\r\n})\r\nexport class PMClosureDashboardComponent implements OnInit {\r\n submitdisbale:boolean=false;\r\n tlfilled:boolean=false;\r\n tlnotfilled:boolean=false;\r\n displayCloseProject = false;\r\n projectId: number;\r\n FileType:string;\r\n PageSize: number = 0;\r\n PageDropDown: number[] = [];\r\n resources = servicePath.API.PagingConfigValue;\r\n projectStateSubscription: Subscription;\r\n projectState: string;\r\n selectedTabSubscription: Subscription;\r\n clientBillingRoleData = [];\r\n // SOWData: SOW[] = [];\r\n projectclosurereport: ProjectClosureReport;\r\n dashboard: string;\r\n isDrafted: boolean = false;\r\n projectIdSubscription: Subscription;\r\n canApprove: boolean;\r\n EmpId: number;\r\n hideBack: boolean = false;\r\n showback: boolean = false;\r\n activityData = [];\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n checklist: Map = new Map();\r\n roleName: string=\"\";\r\n pageload: boolean = false;\r\n projectData: ProjectsData;\r\n projectclosurereject:ProjectClosureReject;\r\n closeProjectData : FormGroup;\r\n closingProjectData:ProjectClosureReport;\r\n constructor(private projectCreationService: ProjectCreationService,\r\n private actRoute: ActivatedRoute, private router: Router,\r\n private _snackBar: MatSnackBar,\r\n private projectClosureService: ProjectClosureService,\r\n private spinner: NgxSpinnerService, private dialog?: MatDialog) {//this.projectData = new ProjectsData();\r\n this.projectclosurereport=new ProjectClosureReport();\r\n this.projectclosurereject=new ProjectClosureReject(); }\r\n\r\n ngOnInit(): void {\r\n \r\n this.spinner.show();\r\n this.CreateCloseProjectForm();\r\n this.EmpId = parseInt(JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).employeeId);\r\n this.actRoute.params.subscribe(params => { this.dashboard = params[\"id\"]; });\r\n this.roleName = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).roleName;\r\n let winpath = window.location.pathname.split(\";\")[0].split(\"/\").reverse()[0];\r\n this.showback = true;\r\n // if(winpath === 'PMDashboard' || window.location.pathname === '/project/view/DHDashboard' || window.location.pathname === '/project/view/projectDashboard' || window.location.pathname === '/project/viewteamlead/TLDashboard' ){\r\n // this.showback = true;\r\n // }\r\n\r\n this.projectStateSubscription = this.projectCreationService.GetProjectState().subscribe(data => {\r\n this.projectState = data;\r\n });\r\n this.projectIdSubscription = this.projectCreationService.GetProjectId().subscribe(data => {\r\n this.projectId = data;\r\n });\r\n this.GetProjectDetails(); //to get the project state. The code above doesn't work\r\n this.selectedTabSubscription = this.projectCreationService.GetSelectedTab().subscribe(data => {\r\n if (data == 3)\r\n this.hideBack = true;\r\n this.GetTeamLeadData(); // we need to get refreshed data every time \r\n });\r\n \r\n for(let i=2;i<=5;i++){\r\n this.getClosureActivityByDepartment(i);\r\n }\r\n this.getActivitiesByProjectIdForPM();\r\n }\r\n CreateCloseProjectForm(){\r\n this.closeProjectData = new FormGroup({\r\n \r\n 'rejectRemarks' : new FormControl(null, Validators.required)\r\n })\r\n }\r\n getClosureActivityByDepartment(departmentId: number){\r\n this.projectClosureService.getClosureActivitiesByDepartment(departmentId)\r\n .toPromise().then((activitylist: ActivityList[])=>{\r\n for(let i=0;i{\r\n this.spinner.hide();\r\n this._snackBar.open(\"Error while getting the closure activities by department\", 'x', {\r\n duration: 2000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n })\r\n });\r\n }\r\n\r\n getActivitiesByProjectIdForPM(){\r\n this.projectClosureService.GetActivitiesByProjectIdForPM(this.projectId).toPromise()\r\n .then((response: ActivityData[])=>{\r\n this.activityData= response;\r\n for(let department of this.activityData){\r\n if(department===''||department===null || department.StatusDescription!==\"Completed\"){\r\n this.submitdisbale=true;\r\n break;\r\n }\r\n }\r\n this.spinner.hide();\r\n }).catch(error=>{\r\n this.spinner.hide();\r\n // this._snackBar.open('An error has occurred. Please contact administration.', 'x', {\r\n // duration: 2000,\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // });\r\n });\r\n }\r\n\r\n GetTeamLeadData(){\r\n if (this.projectId > 0) {\r\n this.GetProjectTeamLeadInfoByID(this.projectId);\r\n }\r\n }\r\n GetProjectTeamLeadInfoByID(curProjectID: number){\r\n this.projectClosureService.GetClosureReportByProjectID(curProjectID).toPromise().then((res:ProjectClosureReport ) => {\r\n this.projectclosurereport=res[0];\r\n if(this.projectclosurereport.StatusId===24)//StatusId 25 -> Completed or In Progress\r\n {\r\n this.tlfilled=false;\r\n this.tlnotfilled=true;\r\n this.submitdisbale=true;\r\n }\r\n else{\r\n this.tlfilled=true;\r\n this.tlnotfilled=false;\r\n }\r\n }).catch(error=>{\r\n this.spinner.hide();\r\n this.pageload = true;\r\n // this._snackBar.open('An error has occurred. Please contact administration.', 'x', {\r\n // duration: 2000,\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // });\r\n });;\r\n }\r\n\r\n downloadclient(){\r\n \r\n this.FileType=\"ClientFeedback\";\r\n \r\n this.projectClosureService.DownloadProjectClosureFileUpload(this.FileType,this.projectId).subscribe(response => {\r\n let blob:any = new Blob([response], { type: 'application/pdf' });\r\n \r\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n window.navigator.msSaveOrOpenBlob(blob);\r\n return;\r\n }\r\n const url = window.URL.createObjectURL(blob);\r\n \r\n fileSaver.saveAs(blob, this.projectclosurereport.ClientFeedbackFile);\r\n }), error => console.log('Error downloading the file'),\r\n () => console.info('File downloaded successfully');\r\n }\r\n \r\n downloaddelivery(){\r\n this.FileType=\"DeliveryPerformance\";\r\n \r\n this.projectClosureService.DownloadProjectClosureFileUpload(this.FileType,this.projectId).subscribe(response => {\r\n let blob:any = new Blob([response], { type: 'application/pdf' });\r\n \r\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n window.navigator.msSaveOrOpenBlob(blob);\r\n return;\r\n }\r\n const url = window.URL.createObjectURL(blob);\r\n \r\n fileSaver.saveAs(blob, this.projectclosurereport.DeliveryPerformanceFile);\r\n }), error => console.log('Error downloading the file'),\r\n () => console.info('File downloaded successfully');\r\n \r\n }\r\n \r\n Reject(){\r\n \r\n // this.projectClosureService.Reject(this.projectId).toPromise().then((res:any)=>{\r\n // this._snackBar.open(\"Project Closure report rejected\", 'x', {\r\n // duration: 1000,\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // }).afterDismissed().toPromise().then(()=>{\r\n // this.GetTeamLeadData();\r\n // });\r\n // }).catch((error)=>{\r\n // this._snackBar.open(\"Error while rejecting\", 'x', {\r\n // duration: 1000,\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // });\r\n // });\r\n \r\n this.displayCloseProject = true;\r\n const dialogRef = this.dialog.open(RemarksTeamleadComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n data: {rejectRemarks:this.projectclosurereport.rejectRemarks},\r\n\r\n });\r\n \r\n dialogRef.afterClosed().subscribe(result => {\r\n \r\n \r\n if(result.rejectRemarks){\r\n \r\n this.closeProjectData.value.rejectRemarks = result.rejectRemarks;\r\n \r\n // this.closeProject();\r\n var createObj = new ProjectClosureReport();\r\n createObj.ProjectId=this.projectId;\r\n createObj.rejectRemarks=this.closeProjectData.value.rejectRemarks ;\r\n this.projectClosureService.Reject(createObj).subscribe(\r\n (res:any) => {\r\n if(res>0){\r\n this._snackBar.open('Project Closure Rejected', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.GetTeamLeadData();\r\n \r\n }\r\n else{ \r\n this._snackBar.open('Error occured while rejecting', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n });\r\n } \r\n });\r\n this.closingProjectData = this.projectclosurereport;\r\n \r\n this.closeProjectData.patchValue({\r\n \r\n 'rejectRemarks' : new String(this.projectclosurereport.rejectRemarks)\r\n })\r\n\r\n \r\n }\r\n\r\n SubmitForClosureByDH(){\r\n //Validation\r\n let isValid = true;\r\n \r\n for(let department of this.activityData){\r\n if(department===null || department.StatusDescription!==\"Completed\"){\r\n isValid = false;\r\n break;\r\n }\r\n }\r\n if(isValid && this.tlfilled){\r\n let projectSubmitData = {\r\n \"projectId\": this.projectId,\r\n \"status\": \"Approve\",\r\n \"employeeId\": this.EmpId\r\n }\r\n \r\n this.projectClosureService.ApproveOrRejectClosureByDH(projectSubmitData).toPromise()\r\n .then(()=>{\r\n this._snackBar.open(\"Approved Successfully\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }).afterDismissed().subscribe(res=>{\r\n this.onBack();\r\n });\r\n }).catch(error=>{\r\n this._snackBar.open(\"Error while approving!\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n } else {\r\n this._snackBar.open(\"All departments activities and team lead data not received!\", 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n }\r\n \r\n SubmitForClosureApproval(){\r\n //Validation\r\n let isValid = true;\r\n \r\n for(let department of this.activityData){\r\n if(department===null || department.StatusDescription!==\"Completed\"){\r\n isValid = false;\r\n break;\r\n }\r\n }\r\n if(isValid && this.tlfilled){\r\n let projectSubmitData = {\r\n \"projectId\": this.projectId,\r\n \"userRole\": this.roleName,\r\n \"employeeId\": this.EmpId\r\n }\r\n \r\n this.projectClosureService.SubmitForClosureApproval(projectSubmitData).toPromise()\r\n .then(res=>{\r\n this._snackBar.open(\"Successfully submitted\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }).afterDismissed().subscribe(res=>{\r\n this.onBack();\r\n });;\r\n }).catch(error=>{\r\n this._snackBar.open(\"Error while submitting!\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n } else{\r\n this._snackBar.open(\"All departments activities and team lead data not received!\", 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n \r\n }\r\n\r\n onBack(){\r\n this.showback = false;\r\n this.router.navigate(['/dashboard']);\r\n }\r\n\r\n GetProjectDetails() {\r\n if (this.projectId > 0) {\r\n this.GetProjectByID(this.projectId);\r\n }\r\n }\r\n private GetProjectByID(currentProjectID: number): void {\r\n this.projectCreationService\r\n .GetProjectDetailsbyID(currentProjectID)\r\n .toPromise().then(\r\n (projectdata: ProjectsData) => {\r\n this.projectData = projectdata;\r\n this.projectState=this.projectData.ProjectState;\r\n this.pageload = true;\r\n }).catch(\r\n error => {\r\n this._snackBar.open(\"Error while getting the project details\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\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 \r\n Project Closure Report\r\n \r\n \r\n \r\n \r\n \r\nNo Data\r\n\r\n\r\n
\r\n\r\n\r\n
\r\n\r\n \r\n \r\n \r\n Project Closure Report\r\n \r\n \r\n check_circle\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

CLIENT FEEDBACK:

\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n

PROJECT EXECUTION AND DELIVERY PERFORMANCE:

\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n

VALUE DELIVERED TO THE CLIENT:

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

PROJECT EXECUTION CHALLENGES:

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Project Management Challenges Faced During Execution of the Project:
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Technology Challenges Faced During Execution of the Project:
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Software Engineering Challenges Faced During Execution of the Project:
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

BEST PRACTICES, LESSONS LEARNT, REUSABLE ARTEFACTS, AND PROCESS IMPROVEMENTS:

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Best Practices Implemented:
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Lessons Learnt:
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Reusable Artefacts:
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Process Improvements:
\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

PROJECT TEAM ACHIEVEMENTS:

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Awards and Rewards:
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
New Technology Skills Acquired:
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
New Tools Used:
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

REMARKS FROM TEAM LEAD:

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Remarks From Team Lead:
\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 Department-{{department.DepartmentName}}\r\n \r\n \r\n check_circle\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n {{ checklist.get(element.ActivityId) }}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Comments\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n Remarks\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n This activity is yet to be submitted...\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n\r\n","import { Component, OnInit, ChangeDetectorRef, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators, FormControl, FormGroupDirective } from '@angular/forms';\r\nimport { editorConfig } from \"../../../../core/angularEditorConfiguratioan\";\r\nimport { MatStepper } from '@angular/material/stepper';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { StepperSelectionEvent } from '@angular/cdk/stepper';\r\nimport { ProjectClosureReport } from '../../models/projects.model';\r\nimport { ProjectCreationService } from '../../services/project-creation.service';\r\nimport { ProjectClosureService } from '../../services/project-closure.service';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { Subscription } from 'rxjs';\r\nimport { ProjectsData } from '../../../master-layout/models/projects.model';\r\nimport { environment } from '../../../../../environments/environment';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport * as fileSaver from 'file-saver';\r\nimport 'rxjs/Rx';\r\nimport { MatTable } from '@angular/material/table';\r\nimport { UrlService } from 'src/app/modules/shared/services/url.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ConfirmDialogComponent } from '../confirm-dialog/confirm-dialog.component';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\n@Component({\r\n selector: 'app-project-closure-report',\r\n templateUrl: './project-closure-report.component.html',\r\n styleUrls: ['./project-closure-report.component.scss']\r\n})\r\nexport class ProjectClosureReportComponent implements OnInit {\r\n\r\n projectId: number;\r\n projectIdSubscription: Subscription;\r\n type: string;\r\n FileType: string;\r\n fileclientdata: any;\r\n filedeliverydata: any;\r\n editorConfig = editorConfig;\r\n selectedFileclient: String = \"\";\r\n documentDescclient: any = { file: \"\" };\r\n selectedFiledelivery: String = \"\";\r\n documentDescdelivery: any = { file: \"\" };\r\n firstFormGroup: FormGroup;\r\n secondFormGroup: FormGroup;\r\n thirdFormGroup: FormGroup;\r\n fourthFormGroup: FormGroup;\r\n fifthFormGroup: FormGroup;\r\n sixthFormGroup: FormGroup;\r\n seventhFormGroup: FormGroup;\r\n // eighthFormGroup: FormGroup;\r\n // ninethFormGroup: FormGroup;\r\n formSave = false;\r\n activeIndex: number = 0;\r\n clientuploadeddata: any[] = [];\r\n deliveryuploadeddata: any[] = [];\r\n projectclosurereportdata: ProjectClosureReport[];\r\n clientInfo: any[] = [];\r\n deliveryInfo: any[] = [];\r\n projectclosuredataclient: ProjectClosureReport;\r\n projectclosuredatadelivery: ProjectClosureReport;\r\n clientdataSource = new MatTableDataSource();\r\n deliverydataSource = new MatTableDataSource();\r\n firstFormGroupvalid: boolean = false;\r\n secondFormGroupvalid: boolean = false;\r\n formSaveone: boolean = false;\r\n formSavetwo: boolean = false;\r\n private selectedUploadDetails: any;\r\n pageload: boolean = false;\r\n ifremarks: boolean = false;\r\n Remarkspm: FormGroup;\r\n\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild('fileUploadclient') fileUploadclient: any;\r\n @ViewChild('fileUploaddelivery') fileUploaddelivery: any;\r\n @ViewChild('deliverytable') table: MatTable;\r\n @ViewChild('clienttable') tablee: MatTable;\r\n @ViewChild('fileInputclient') fileInputVarclient: any;\r\n @ViewChild('fileInputdelivery') fileInputVardelivery: any;\r\n displayedColumns: string[] = [\r\n 'Sno',\r\n 'DocumentName',\r\n 'Download',\r\n 'Delete'\r\n ];\r\n\r\n\r\n\r\n\r\n previousUrl: string;\r\n showback: boolean = true;\r\n constructor(private _router: Router, private cdr: ChangeDetectorRef,\r\n private serviceObj: ProjectCreationService,\r\n private _snackBar: MatSnackBar,\r\n public navService: NavService,\r\n private projectClosureService: ProjectClosureService,\r\n private urlService: UrlService, private spinner: NgxSpinnerService,\r\n private dialog?: MatDialog\r\n\r\n ) {\r\n\r\n }\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n\r\n\r\n documentUploadChangeClient(fileURL: string) {\r\n this.selectedFileclient = fileURL.substr(12, fileURL.length);\r\n }\r\n documentUploadChangeDelivery(fileURL: string) {\r\n this.selectedFiledelivery = fileURL.substr(12, fileURL.length);\r\n }\r\n\r\n toastMessageClient() {\r\n this._snackBar.open('Please select a PDF/Word file', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n\r\n toastMessageDelivery() {\r\n this._snackBar.open('Please select a Excel file', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.spinner.show();\r\n this.urlService.previousUrl$.subscribe((previousUrl: string) => {\r\n this.previousUrl = previousUrl;\r\n });\r\n this.projectIdSubscription = this.serviceObj.GetProjectId().subscribe(data => {\r\n this.projectId = data;\r\n });\r\n\r\n this.GetProjectClosureReport(this.projectId);\r\n\r\n this.firstFormGroup = new FormGroup({\r\n\r\n SelectedFileShowclient: new FormControl(null),\r\n uploadselectclient: new FormControl(null, [Validators.required])\r\n\r\n\r\n });\r\n this.secondFormGroup = new FormGroup({\r\n\r\n SelectedFileShowdelivery: new FormControl(null),\r\n uploadselectdelivery: new FormControl(null, [Validators.required])\r\n });\r\n this.thirdFormGroup = new FormGroup({\r\n ValueDelivered: new FormControl(null, [Validators.required]),\r\n });\r\n\r\n this.fourthFormGroup = new FormGroup({\r\n ManagementChallenges: new FormControl(null, [Validators.required]),\r\n TechnologyChallenges: new FormControl(null, [Validators.required]),\r\n EngineeringChallenges: new FormControl(null, [Validators.required]),\r\n\r\n\r\n });\r\n this.fifthFormGroup = new FormGroup({\r\n BestPractices: new FormControl(null, [Validators.required]),\r\n LessonsLearned: new FormControl(null, [Validators.required]),\r\n ReusableArtifacts: new FormControl(null, [Validators.required]),\r\n ProcessImprovements: new FormControl(null, [Validators.required]),\r\n\r\n });\r\n this.sixthFormGroup = new FormGroup({\r\n Awards: new FormControl(null, [Validators.required]),\r\n NewTechnicalSkills: new FormControl(null, [Validators.required]),\r\n NewTools: new FormControl(null, [Validators.required]),\r\n\r\n });\r\n\r\n this.seventhFormGroup = new FormGroup({\r\n Remarks: new FormControl(null, [Validators.required]),\r\n });\r\n\r\n this.Remarkspm = new FormGroup({\r\n Remarksfrompm: new FormControl(null)\r\n });\r\n\r\n this.GetClientFeedbackUpload();\r\n this.GetDeliveryUpload();\r\n\r\n }\r\n ngAfterViewChecked() {\r\n this.cdr.detectChanges();\r\n }\r\n\r\n saveClientFeedback() {\r\n this.fileclientdata = this.fileUploadclient.nativeElement;\r\n this.GetClientFeedbackUpload();\r\n let _resources = servicePath.API.projects;\r\n let _serverURL = environment.ProjMicroService;\r\n let formData: FormData = new FormData(),\r\n\r\n xhr: XMLHttpRequest = new XMLHttpRequest();\r\n formData.append('UploadedFiles', this.fileclientdata.files[0]);\r\n formData.append('ClientFeedbackFile', this.fileclientdata.files[0].name);\r\n\r\n for (var count = 0; count < this.clientInfo.length; count++) {\r\n let str: string = this.fileclientdata.files[count].name;\r\n let l = this.fileclientdata.files[count].name.length;\r\n //console.log(str.substring(l-3,l+1));\r\n let extension = str.substring(l - 3, l + 1);\r\n if (!(extension == 'pdf' || extension == 'txt' || extension == 'rtf' || extension == 'docx' || extension == 'doc')) {\r\n this.toastMessageClient();\r\n return;\r\n }\r\n\r\n if (this.clientInfo[count] == this.fileclientdata.files[0].name) {\r\n this._snackBar.open(this.clientInfo[count] + ' already exists !', 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return false;\r\n }\r\n }\r\n\r\n formData.append('ProjectId', this.projectId.toString());\r\n formData.append('FileType', 'ClientFeedback');\r\n xhr.open('POST', _serverURL + _resources.savefiles, false);\r\n if (sessionStorage[\"token\"]) {\r\n xhr.setRequestHeader(\"Authorization\", \"bearer \" + sessionStorage[\"token\"]);\r\n }\r\n xhr.send(formData);\r\n\r\n this.GetClientFeedbackUpload();\r\n this.fileInputVarclient.nativeElement.value = \"\";\r\n\r\n }\r\n saveDeliveryPerformance() {\r\n this.GetDeliveryUpload();\r\n this.filedeliverydata = this.fileUploaddelivery.nativeElement;\r\n let _resources = servicePath.API.projects;\r\n let _serverURL = environment.ProjMicroService;\r\n let formData: FormData = new FormData(),\r\n xhr: XMLHttpRequest = new XMLHttpRequest();\r\n formData.append('UploadedFiles', this.filedeliverydata.files[0]);\r\n formData.append('DeliveryPerformanceFile', this.filedeliverydata.files[0].name);\r\n let str: string = this.filedeliverydata.files[0].name;\r\n let l = this.filedeliverydata.files[0].name.length;\r\n //console.log(str.substring(l-4,l+1));\r\n let extension = str.substring(l - 4, l + 1);\r\n if (!(extension == 'xlsx' || extension == 'xls')) {\r\n this.toastMessageDelivery();\r\n return;\r\n }\r\n formData.append('ProjectId', this.projectId.toString());\r\n formData.append('FileType', 'DeliveryPerformance');\r\n xhr.open('POST', _serverURL + _resources.savefiles, false);\r\n if (sessionStorage[\"token\"]) {\r\n xhr.setRequestHeader(\"Authorization\", \"bearer \" + sessionStorage[\"token\"]);\r\n }\r\n xhr.send(formData);\r\n\r\n this.GetDeliveryUpload();\r\n this.fileInputVardelivery.nativeElement.value = \"\";\r\n\r\n }\r\n GetClientFeedbackUpload() {\r\n this.projectClosureService.GetClosureReportByProjectID(this.projectId).subscribe((res: ProjectClosureReport) => {\r\n this.clientInfo[0] = res[0].ClientFeedbackFile;\r\n this.projectclosuredataclient = res[0];\r\n if (res[0].ClientFeedbackFile == '') {\r\n this.clientInfo = [];\r\n }\r\n this.clientdataSource = new MatTableDataSource(this.clientInfo);\r\n if (this.clientdataSource.data.length != 0) {\r\n this.firstFormGroupvalid = true;\r\n this.formSaveone = false;\r\n }\r\n });\r\n this.cdr.detectChanges();\r\n }\r\n GetDeliveryUpload() {\r\n this.projectClosureService.GetClosureReportByProjectID(this.projectId).subscribe((res: ProjectClosureReport) => {\r\n this.deliveryInfo[0] = res[0].DeliveryPerformanceFile;\r\n this.projectclosuredatadelivery = res[0];\r\n if (res[0].DeliveryPerformanceFile == '') {\r\n this.deliveryInfo = [];\r\n }\r\n\r\n this.deliverydataSource = new MatTableDataSource(this.deliveryInfo);\r\n if (this.deliverydataSource.data.length != 0) {\r\n this.secondFormGroupvalid = true;\r\n this.formSavetwo = false;\r\n }\r\n });\r\n this.cdr.detectChanges();\r\n }\r\n downloadclient() {\r\n\r\n this.FileType = \"ClientFeedback\";\r\n\r\n this.projectClosureService.DownloadProjectClosureFileUpload(this.FileType, this.projectId).subscribe(response => {\r\n let blob: any = new Blob([response], { type: 'application/pdf' });\r\n\r\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n window.navigator.msSaveOrOpenBlob(blob);\r\n return;\r\n }\r\n const url = window.URL.createObjectURL(blob);\r\n fileSaver.saveAs(blob, this.projectclosuredataclient.ClientFeedbackFile);\r\n }), error => console.log('Error downloading the file'),\r\n () => console.info('File downloaded successfully');\r\n }\r\n downloaddelivery() {\r\n this.FileType = \"DeliveryPerformance\";\r\n\r\n this.projectClosureService.DownloadProjectClosureFileUpload(this.FileType, this.projectId).subscribe(response => {\r\n let blob: any = new Blob([response], { type: 'application/vnd.ms.excel' });\r\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n window.navigator.msSaveOrOpenBlob(blob);\r\n return;\r\n }\r\n const url = window.URL.createObjectURL(blob);\r\n fileSaver.saveAs(blob, this.projectclosuredatadelivery.DeliveryPerformanceFile);\r\n }), error => console.log('Error downloading the file'),\r\n () => console.info('File downloaded successfully');\r\n }\r\n deleteclient(id: number, type: string) {\r\n\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n data: { message: 'Are you sure you want to delete?' },\r\n\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n if (result == true) {\r\n this.projectClosureService.Delete(id, type).toPromise().then((data1: any) => {\r\n\r\n this.GetClientFeedbackUpload();\r\n this.tablee.renderRows();\r\n this._snackBar.open('File Deleted', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.firstFormGroupvalid = false;\r\n }\r\n ).catch((error) => {\r\n this._snackBar.open('Some thing went wrong, please try again later', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n })\r\n });\r\n\r\n }\r\n\r\n });\r\n\r\n }\r\n onDeleteclient() {\r\n\r\n this.FileType = \"ClientFeedback\";\r\n this.deleteclient(this.projectId, this.FileType);\r\n }\r\n\r\n deletedelivery(id: number, type: string) {\r\n\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n data: { message: 'Are you sure you want to delete?' },\r\n\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result == true) {\r\n this.projectClosureService.Delete(id, type).toPromise().then((data1: any) => {\r\n\r\n this.GetDeliveryUpload();\r\n this.table.renderRows();\r\n this._snackBar.open('File Deleted', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.secondFormGroupvalid = false;\r\n }\r\n ).catch((error) => {\r\n this._snackBar.open('Some thing went wrong, please try again later', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n })\r\n });\r\n }\r\n });\r\n }\r\n\r\n onDeletedelivery() {\r\n this.FileType = \"DeliveryPerformance\";\r\n this.deletedelivery(this.projectId, this.FileType);\r\n }\r\n\r\n onSave() {\r\n\r\n this.type = 'update';\r\n\r\n var createObj = new ProjectClosureReport();\r\n createObj.ProjectId = this.projectId;\r\n createObj.type = this.type;\r\n createObj.ValueDelivered = this.thirdFormGroup.value.ValueDelivered;\r\n createObj.ManagementChallenges = this.fourthFormGroup.value.ManagementChallenges;\r\n createObj.TechnologyChallenges = this.fourthFormGroup.value.TechnologyChallenges;\r\n createObj.EngineeringChallenges = this.fourthFormGroup.value.EngineeringChallenges;\r\n createObj.BestPractices = this.fifthFormGroup.value.BestPractices;\r\n createObj.LessonsLearned = this.fifthFormGroup.value.LessonsLearned;\r\n createObj.ReusableArtifacts = this.fifthFormGroup.value.ReusableArtifacts;\r\n createObj.ProcessImprovements = this.fifthFormGroup.value.ProcessImprovements;\r\n createObj.Awards = this.sixthFormGroup.value.Awards;\r\n createObj.NewTechnicalSkills = this.sixthFormGroup.value.NewTechnicalSkills;\r\n createObj.NewTools = this.sixthFormGroup.value.NewTools;\r\n createObj.Remarks = this.seventhFormGroup.value.Remarks;\r\n\r\n this.projectClosureService.UpdateProjectClosureReport(createObj).subscribe(\r\n (res: any) => {\r\n\r\n if (res) {\r\n\r\n this._snackBar.open('Data Saved Successfully', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.GetProjectClosureReport(this.projectId);\r\n }\r\n },\r\n error => {\r\n this._snackBar.open('Failed to Save Data', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n\r\n GetProjectClosureReport(projectId: number) {\r\n\r\n this.projectClosureService.GetClosureReportByProjectID(this.projectId).toPromise().then((res: ProjectClosureReport) => {\r\n if (res[0].RejectRemarks == '' || res[0].RejectRemarks == undefined || res[0].RejectRemarks == null) {\r\n this.thirdFormGroup.controls.ValueDelivered.patchValue(res[0].ValueDelivered);\r\n this.fourthFormGroup.controls.ManagementChallenges.patchValue(res[0].ManagementChallenges);\r\n this.fourthFormGroup.controls.TechnologyChallenges.patchValue(res[0].TechnologyChallenges);\r\n this.fourthFormGroup.controls.EngineeringChallenges.patchValue(res[0].EngineeringChallenges);\r\n this.fifthFormGroup.controls.BestPractices.patchValue(res[0].BestPractices);\r\n this.fifthFormGroup.controls.LessonsLearned.patchValue(res[0].LessonsLearned);\r\n\r\n this.fifthFormGroup.controls.ReusableArtifacts.patchValue(res[0].ReusableArtifacts);\r\n\r\n this.fifthFormGroup.controls.ProcessImprovements.patchValue(res[0].ProcessImprovements);\r\n this.sixthFormGroup.controls.Awards.patchValue(res[0].Awards);\r\n this.sixthFormGroup.controls.NewTechnicalSkills.patchValue(res[0].NewTechnicalSkills);\r\n this.sixthFormGroup.controls.NewTools.patchValue(res[0].NewTools);\r\n this.seventhFormGroup.controls.Remarks.patchValue(res[0].Remarks);\r\n this.pageload = true;\r\n this.spinner.hide();\r\n this.ifremarks = false;\r\n }\r\n else {\r\n this.thirdFormGroup.controls.ValueDelivered.patchValue(res[0].ValueDelivered);\r\n this.fourthFormGroup.controls.ManagementChallenges.patchValue(res[0].ManagementChallenges);\r\n this.fourthFormGroup.controls.TechnologyChallenges.patchValue(res[0].TechnologyChallenges);\r\n this.fourthFormGroup.controls.EngineeringChallenges.patchValue(res[0].EngineeringChallenges);\r\n this.fifthFormGroup.controls.BestPractices.patchValue(res[0].BestPractices);\r\n this.fifthFormGroup.controls.LessonsLearned.patchValue(res[0].LessonsLearned);\r\n\r\n this.fifthFormGroup.controls.ReusableArtifacts.patchValue(res[0].ReusableArtifacts);\r\n\r\n this.fifthFormGroup.controls.ProcessImprovements.patchValue(res[0].ProcessImprovements);\r\n this.sixthFormGroup.controls.Awards.patchValue(res[0].Awards);\r\n this.sixthFormGroup.controls.NewTechnicalSkills.patchValue(res[0].NewTechnicalSkills);\r\n this.sixthFormGroup.controls.NewTools.patchValue(res[0].NewTools);\r\n this.seventhFormGroup.controls.Remarks.patchValue(res[0].Remarks);\r\n this.Remarkspm.controls.Remarksfrompm.patchValue(res[0].RejectRemarks);\r\n this.pageload = true;\r\n this.spinner.hide();\r\n this.ifremarks = true;\r\n\r\n }\r\n }).catch(error => {\r\n this.spinner.hide();\r\n this.pageload = true;\r\n // this._snackBar.open('An error has occurred. Please contact administration.', 'x', {\r\n // duration: 2000,\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // });\r\n });\r\n\r\n\r\n }\r\n\r\n stepChanged(event) {\r\n\r\n event.previouslySelectedStep.interacted = false;\r\n this.activeIndex = event.selectedIndex;\r\n //this.formSave=false;\r\n //event.selectedStep.interacted=false;\r\n }\r\n onSelect(event) {\r\n\r\n this.activeIndex = event.selectedIndex;\r\n // this.formSave=false;\r\n }\r\n onSubmit() {\r\n this.formSave = true;\r\n this.type = 'submit';\r\n if (this.firstFormGroupvalid == false) {\r\n this.formSaveone = true;\r\n }\r\n if (this.secondFormGroupvalid == false) {\r\n this.formSavetwo = true;\r\n }\r\n\r\n var createObj = new ProjectClosureReport();\r\n createObj.ProjectId = this.projectId;\r\n createObj.type = this.type;\r\n createObj.ValueDelivered = this.thirdFormGroup.value.ValueDelivered;\r\n createObj.ManagementChallenges = this.fourthFormGroup.value.ManagementChallenges;\r\n createObj.TechnologyChallenges = this.fourthFormGroup.value.TechnologyChallenges;\r\n createObj.EngineeringChallenges = this.fourthFormGroup.value.EngineeringChallenges;\r\n createObj.BestPractices = this.fifthFormGroup.value.BestPractices;\r\n createObj.LessonsLearned = this.fifthFormGroup.value.LessonsLearned;\r\n createObj.ReusableArtifacts = this.fifthFormGroup.value.ReusableArtifacts;\r\n createObj.ProcessImprovements = this.fifthFormGroup.value.ProcessImprovements;\r\n createObj.Awards = this.sixthFormGroup.value.Awards;\r\n createObj.NewTechnicalSkills = this.sixthFormGroup.value.NewTechnicalSkills;\r\n createObj.NewTools = this.sixthFormGroup.value.NewTools;\r\n createObj.Remarks = this.seventhFormGroup.value.Remarks;\r\n if (this.firstFormGroupvalid && this.secondFormGroupvalid && this.thirdFormGroup.valid && this.fourthFormGroup.valid && this.fifthFormGroup.valid && this.sixthFormGroup.valid && this.seventhFormGroup.valid) {\r\n this.projectClosureService.UpdateProjectClosureReport(createObj).subscribe(\r\n (res: any) => {\r\n\r\n\r\n if (res) {\r\n\r\n this._snackBar.open('Project Closure Report Submitted Successfully', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }).afterDismissed().toPromise().then(() => {\r\n this.onBack();\r\n });\r\n this.Reset();\r\n }\r\n else {\r\n this._snackBar.open('Failed to Submit Data', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n }\r\n\r\n },\r\n error => {\r\n this._snackBar.open('error.error', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n else {\r\n this._snackBar.open('Fill the details in all the tabs', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n }\r\n }\r\n onBack() {\r\n this._router.navigate([this.previousUrl]);\r\n this.showback = false;\r\n }\r\n // ngOnDestroy() {\r\n // this.projectIdSubscription.unsubscribe();\r\n // }\r\n Reset() {\r\n this.formSave = false;\r\n this.firstFormGroup.reset();\r\n this.secondFormGroup.reset();\r\n this.thirdFormGroup.reset();\r\n this.fourthFormGroup.reset();\r\n this.fifthFormGroup.reset();\r\n this.sixthFormGroup.reset();\r\n this.seventhFormGroup.reset();\r\n setTimeout(() => this.formGroupDirective.resetForm(), 0);\r\n }\r\n}\r\n","\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n Reason For Rejection\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n CLIENT FEEDBACK\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n Client Feedback required\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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
S.No {{i+1}} Document Name {{element}} Download \r\n vertical_align_bottom\r\n Delete \r\n delete\r\n
No data
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n PROJECT EXECUTION AND DELIVERY PERFORMANCE\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n Project execution and delivery performance required \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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
S.No {{i+1}} Document Name {{element}} Download \r\n vertical_align_bottom\r\n Delete \r\n delete\r\n
No data
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n VALUE DELIVERED TO THE CLIENT\r\n
\r\n
\r\n

Value Delivered to the Client:*

\r\n \r\n \r\n Value Delivered to the client required\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n PROJECT EXECUTION CHALLENGES\r\n
\r\n
\r\n

Project Management Challenges Faced During Execution of the Project:*

\r\n \r\n \r\n Project management challenges faced during execution of project required\r\n \r\n \r\n
\r\n\r\n
\r\n

Technology Challenges Faced During Execution of the Project:*

\r\n \r\n \r\n Technology challenges faced during execution of the project required\r\n \r\n \r\n
\r\n
\r\n

Software Engineering Challenges Faced During Execution of the Project:*

\r\n \r\n \r\n Software engineering challenges faced during execution of project required\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n BEST PRACTICES, LESSONS LEARNT, REUSABLE ARTEFACTS, AND PROCESS IMPROVEMENTS\r\n
\r\n
\r\n

Best Practices Implemented:*

\r\n \r\n \r\n Best practices implemented required\r\n \r\n \r\n
\r\n
\r\n

Lessons Learnt:*

\r\n \r\n \r\n Lessons learnt\r\n \r\n \r\n
\r\n
\r\n

Reusable Artefacts:*

\r\n \r\n \r\n Re-usable artifacts required\r\n \r\n \r\n
\r\n
\r\n

Process Improvements:*

\r\n \r\n \r\n Process improvements required\r\n \r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n PROJECT TEAM ACHIEVEMENTS\r\n
\r\n
\r\n

Awards and Rewards:*

\r\n \r\n \r\n Awards and rewards required\r\n \r\n \r\n
\r\n
\r\n

New Technology Skills Acquired:*

\r\n \r\n \r\n New technology skills acquired required\r\n \r\n \r\n
\r\n
\r\n

New Tools Used:*

\r\n \r\n \r\n New tools used required\r\n \r\n \r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n\r\n
\r\n REMARKS FROM TEAM LEAD\r\n
\r\n

Remarks from Team Lead:*

\r\n \r\n \r\n Remarks from Team Lead required\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
\r\n\r\n","import { Component, ComponentFactoryResolver, OnInit,ViewChild, Inject } from \"@angular/core\";\r\nimport { FormGroup, FormControl, Validators,FormGroupDirective, ValidationErrors, AsyncValidatorFn } from \"@angular/forms\";\r\n// import { SelectItem, MessageService } from \"primeng/api\";\r\nimport { ProjectCreationService } from \"../../services/project-creation.service\";\r\nimport { Client } from \"../../../admin/models/client.model\";\r\nimport { MasterDataService } from \"../../../../core/services/masterdata.service\";\r\nimport { ProjectsData } from \"../../../master-layout/models/projects.model\";\r\n// import { ConfirmationService } from \"primeng/api\";\r\nimport * as moment from \"moment\";\r\nimport { Observable, Subscription } from \"rxjs\";\r\nimport { CommonService } from \"../../../../core/services/common.service\";\r\nimport { DomainMasterData } from \"../../../admin/models/domainmasterdata.model\";\r\nimport { Department } from \"../../../admin/models/department.model\";\r\nimport { ProjectTypeData, } from \"../../../admin/models/projecttype.model\";\r\nimport { PracticeArea } from \"../../../master-layout/models/associate-skills.model\";\r\nimport { ActivatedRoute } from \"../../../../../../node_modules/@angular/router\";\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport {MatDialog, MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog';\r\nimport {\r\n MatSnackBar,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition,\r\n} from '@angular/material/snack-bar';\r\nimport { ConfirmDialogComponent } from '../confirm-dialog/confirm-dialog.component';\r\nimport { GenericType } from \"../../../master-layout/models/dropdowntype.model\";\r\nimport { map, startWith } from \"rxjs/operators\";\r\nimport { MatAutocompleteTrigger } from \"@angular/material/autocomplete\";\r\nimport { element } from \"protractor\";\r\nimport { SelectorListContext } from \"@angular/compiler\";\r\n\r\n\r\nexport interface DialogData {\r\n masg : string;\r\n status: string; \r\n}\r\n\r\ninterface SelectItem {\r\n value : number;\r\n label : string;\r\n}\r\n\r\n@Component({\r\n selector: \"app-project-creation\",\r\n templateUrl: \"./project-creation.component.html\",\r\n styleUrls: [\"./project-creation.component.scss\"],\r\n providers: []\r\n})\r\n\r\n\r\n\r\nexport class ProjectCreationComponent implements OnInit {\r\n @ViewChild('inputAutoComplete') inputAutoComplete: any;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n dialogMsg = \"\";\r\n isEndDateRequired = false;\r\n stateDisable = true;\r\n displayCBR = false;\r\n btnLabel = \"\";\r\n formSubmitted = false;\r\n showDropdown = false;\r\n addProject: FormGroup;\r\n projectTypes: SelectItem[] = [];\r\n statusList: SelectItem[] = [];\r\n clientsList: SelectItem[] = [];\r\n managersList: SelectItem[] = [];\r\n practiceAreaList: SelectItem[] = [];\r\n domainList: SelectItem[] = [];\r\n projectId: number = 0;\r\n updatedProjectData = new ProjectsData();\r\n addProjectData = new ProjectsData();\r\n UserRole: string;\r\n EmpId: number;\r\n editMode: boolean;\r\n departmentsList: SelectItem[] = [];\r\n matchList:SelectItem[];\r\n projectIdSubscription: Subscription;\r\n hideProjectState: boolean = false;\r\n msg : string;\r\n status : string;\r\n controlName: string;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n\r\n filteredPracticeArea : Observable;\r\n filteredProjectType : Observable;\r\n filteredClient : Observable;\r\n filteredDomain : Observable;\r\n\r\n selectedProjectTypeId:any;\r\n selectedPracticeAreaId:any;\r\n selectedClientId:any;\r\n selectedDomainId:any;\r\n domainListLabels: string[];\r\n isSave: boolean = false;\r\n\r\n minStartDate = new Date();\r\n maxStartDate = new Date();\r\n \r\n\r\n \r\n constructor(\r\n private actRoute: ActivatedRoute,\r\n private projectCreationService: ProjectCreationService,\r\n private commonService: CommonService,\r\n private masterService: MasterDataService,\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n // private messageService: MessageService,\r\n // private confirmationService: ConfirmationService\r\n ) {\r\n \r\n }\r\n\r\n ngOnInit() {\r\n this.projectIdSubscription = this.projectCreationService\r\n .GetProjectId()\r\n .subscribe(data => {\r\n // subscribing to ProjectId observable so that we can get the changed data every time\r\n this.projectId = data;\r\n if (this.projectId > 0) {\r\n this.btnLabel = \"Update\";\r\n }\r\n \r\n });\r\n \r\n this.CreateForm();\r\n this.GetProgramManagers();\r\n this.getDateRange();\r\n }\r\n\r\n getDateRange() : void{\r\n var date = new Date(), year = date.getFullYear(), month = date.getMonth();\r\n this.minStartDate = new Date(year, month - 1, 1);\r\n this.maxStartDate = new Date();\r\n }\r\n\r\n GetProjectStates(): void {\r\n this.projectCreationService.GetProjectStates().subscribe((res: any) => {\r\n res.forEach(element => {\r\n if (\r\n element.StatusCode == \"Halted\" ||\r\n element.StatusCode == \"Execution\" ||\r\n element.StatusCode == \"Closed\"\r\n )\r\n this.statusList.push({\r\n label: element.StatusCode,\r\n value: element.StatusId\r\n });\r\n });\r\n });\r\n }\r\n\r\n CreateForm(): void {\r\n // instalize the form\r\n this.GetProjectStates();\r\n this.GetProjectTypes();\r\n this.GetClients();\r\n this.GetPracticeAreas();\r\n this.SetUserRoleName();\r\n this.GetProgramManagers();\r\n this.GetDepartments();\r\n this.GetDomains();\r\n if (this.projectId > 0)\r\n this.btnLabel = \"Update\";\r\n else\r\n this.btnLabel = \"Save\";\r\n this.addProject = new FormGroup({\r\n ProjectCode: new FormControl(null, [\r\n Validators.required,\r\n Validators.pattern(\"^(?!.*--)^(?!-[0-9])[A-Za-z0-9-.()&/, ]+$\")\r\n ]),\r\n ProjectTypeId: new FormControl(null, [Validators.required, this.requireMatch.bind(this)]),\r\n ProjectName: new FormControl(null, [\r\n Validators.required,\r\n // Validators.pattern(\"^(?!-)(?!.*--)^(?![0-9])[A-Za-z0-9- ]+$\")\r\n Validators.pattern(\"^(?!.*--)^(?!-[0-9])[A-Za-z0-9-.()&/, ]+$\")\r\n ]),\r\n DomainId: new FormControl(null, [this.requireMatch.bind(this)]),\r\n ProjectStateId: new FormControl(null),\r\n ClientId: new FormControl(null, [Validators.required, this.requireMatch.bind(this)]),\r\n ManagerId: new FormControl(null), // required disabled: this.showDropdown\r\n PracticeAreaId: new FormControl(null, [Validators.required, this.requireMatch.bind(this)]),\r\n ActualStartDate: new FormControl(null, [Validators.required]),\r\n ActualEndDate: new FormControl(null),\r\n DepartmentId: new FormControl(1) //required\r\n });\r\n if (this.UserRole == \"Department Head\")\r\n // add validation to Program manager dropdown if login user is department head\r\n { this.addProject.controls['ManagerId'].setValidators(\r\n Validators.required\r\n );\r\n }\r\n else{\r\n this.addProject.patchValue({\r\n DepartmentId: 1\r\n });\r\n\r\n this.EmpId = Number(this.EmpId);\r\n this.addProject.patchValue({\r\n ManagerId : this.EmpId\r\n });\r\n } \r\n }\r\n\r\n GetDomains() {\r\n this.projectCreationService\r\n .GetDomains()\r\n .subscribe((res: DomainMasterData[]) => {\r\n res.forEach((element: DomainMasterData) => {\r\n this.domainList.push({\r\n label: element.DomainName,\r\n value: element.DomainID\r\n });\r\n \r\n });\r\n // this.getDomainsLabels();\r\n this.filteredDomain = this.addProject.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterDomain(value))\r\n );\r\n });\r\n }\r\n // getDomainsLabels(){\r\n // this.domainList.forEach((element: domainList) => {\r\n // this.domainListLabels.push(element.DomainName);\r\n // });\r\n // } \r\n\r\n private _filterDomain(value) {\r\n \r\n let filterValue;\r\n if (value && value.DomainId) {\r\n filterValue = value.DomainId.toLowerCase();\r\n return this.domainList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.domainList;\r\n }\r\n }\r\n getFormControl(value:any){\r\n this.controlName = value;\r\n }\r\n \r\n private requireMatch(control: FormControl): ValidationErrors | null {\r\n const selection: any = control.value;\r\n switch (this.controlName){\r\n case 'DomainId': this.matchList = this.domainList;\r\n break;\r\n\r\n case 'ClientId': this.matchList = this.clientsList;\r\n break;\r\n\r\n case 'PracticeAreaId': this.matchList = this.practiceAreaList;\r\n break;\r\n\r\n case 'ProjectTypeId': this.matchList = this.projectTypes;\r\n break;\r\n\r\n }\r\n if (this.matchList && this.matchList.findIndex(x => x.label === selection) < 0 && !(selection === '' || selection === null) && !this.isSave) {\r\n return { requireMatch: true };\r\n }\r\n return null;\r\n }\r\n\r\n GetDepartments(): void {\r\n this.masterService.GetDepartments().subscribe((res: Department[]) => {\r\n res.forEach((element: Department) => {\r\n this.departmentsList.push({\r\n label: element.DepartmentCode,\r\n value: element.DepartmentId\r\n });\r\n });\r\n let index = this.departmentsList.findIndex(x => x.label === \"Delivery\");\r\n this.addProject.patchValue({\r\n DepartmentId: this.departmentsList[index].value\r\n });\r\n if (this.projectId > 0) {\r\n // for update functionality\r\n this.GetProjectByID(this.projectId); // we call this method once we got all dropdowns data\r\n }\r\n });\r\n }\r\n\r\n canEnableProjectState() {\r\n let exlabel = this.statusList.find(\r\n (x: any) => x.value == this.updatedProjectData.ProjectStateId\r\n );\r\n if (exlabel == undefined) this.stateDisable = true;\r\n else if (\r\n exlabel.label == \"Execution\" ||\r\n exlabel.label == \"Halted\" ||\r\n exlabel.label == \"Closed\"\r\n )\r\n this.stateDisable = false;\r\n }\r\n // makeEndDateMandatory(): void {\r\n // this.isEndDateRequired = true;\r\n // this.addProject.controls[\"ActualEndDate\"].setValidators([Validators.required]);\r\n // this.addProject.controls[\"ActualEndDate\"].updateValueAndValidity();\r\n // }\r\n GetProjectTypes(): void {\r\n // to get all the project types from DB\r\n //this.projectTypes.push({ label: \"Select Project Type\", value: null });\r\n this.masterService.GetProjectTypes().subscribe((res: ProjectTypeData[]) => {\r\n res.forEach(e => {\r\n this.projectTypes.push({\r\n label: e.ProjectTypeCode,\r\n value: e.ProjectTypeId\r\n });\r\n });\r\n this.filteredProjectType = this.addProject.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterProjectType(value))\r\n ); \r\n });\r\n }\r\n\r\n private _filterProjectType(value) {\r\n \r\n let filterValue;\r\n if (value && value.ProjectTypeId) {\r\n filterValue = value.ProjectTypeId.toLowerCase();\r\n return this.projectTypes.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.projectTypes;\r\n }\r\n }\r\n\r\n GetClients(): void {\r\n // to get all available clients from DB\r\n //this.clientsList.push({ label: \"Select Client\", value: null });\r\n this.masterService.GetClientList().subscribe((res: GenericType[]) => {\r\n res.forEach(e => {\r\n this.clientsList.push({ label: e.Name, value: e.Id });\r\n });\r\n this.filteredClient = this.addProject.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterClient(value))\r\n );\r\n });\r\n }\r\n\r\n private _filterClient(value) {\r\n \r\n let filterValue;\r\n if (value && value.ClientId) {\r\n filterValue = value.ClientId.toLowerCase();\r\n return this.clientsList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.clientsList;\r\n }\r\n }\r\n\r\n GetProgramManagers(): void {\r\n // to get all available Program managers from DB\r\n if (this.UserRole === \"Department Head\") {\r\n // this.managersList.push({ label: \"Select Program Manager\", value: null });\r\n }\r\n this.projectCreationService\r\n .GetProgramManagers(this.UserRole, this.EmpId)\r\n .subscribe((res: any) => {\r\n if (this.UserRole === \"Department Head\") {\r\n res.forEach(e => {\r\n this.managersList.push({\r\n label: e.ManagerName,\r\n value: e.EmployeeId\r\n });\r\n });\r\n } else {\r\n this.managersList = [\r\n { label: res[0].ManagerName, value: res[0].EmployeeId }\r\n ];\r\n this.addProject.patchValue({\r\n ManagerId: res[0].EmployeeId\r\n });\r\n }\r\n });\r\n }\r\n\r\n GetPracticeAreas(): void {\r\n // to get all available practice areas from DB\r\n //this.practiceAreaList.push({ label: \"Select Technology\", value: null });\r\n this.masterService.GetPractiseAreas().subscribe((res: GenericType[]) => {\r\n res.forEach(e => {\r\n this.practiceAreaList.push({\r\n label: e.Name,\r\n value: e.Id\r\n });\r\n });\r\n this.filteredPracticeArea = this.addProject.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterPracticeArea(value))\r\n ); \r\n });\r\n }\r\n\r\n private _filterPracticeArea(value) {\r\n \r\n let filterValue;\r\n if (value && value.PracticeAreaId) {\r\n filterValue = value.PracticeAreaId.toLowerCase();\r\n return this.practiceAreaList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.practiceAreaList;\r\n }\r\n }\r\n\r\n selectedChangeIds(frmCntrl, item) {\r\n if (frmCntrl== 'ProjectTypeId') {\r\n this.selectedProjectTypeId = item.value;\r\n }\r\n else if (frmCntrl == 'PracticeAreaId') {\r\n this.selectedPracticeAreaId = item.value;\r\n }\r\n else if (frmCntrl == 'ClientId') {\r\n this.selectedClientId = item.value;\r\n }\r\n else if (frmCntrl == 'DomainId') {\r\n this.selectedDomainId = item.value;\r\n }\r\n }\r\n\r\n openOrClosePanel(evt: any, trigger: MatAutocompleteTrigger): void {\r\n evt.stopPropagation();\r\n if(trigger.panelOpen)\r\n trigger.closePanel();\r\n else\r\n trigger.openPanel();\r\n }\r\n\r\n clearInput(evt: any, fieldName): void {\r\n if(fieldName=='ProjectTypeId'){\r\n evt.stopPropagation();\r\n this.addProject.get('ProjectTypeId').reset();\r\n }\r\n if(fieldName=='PracticeAreaId'){\r\n evt.stopPropagation();\r\n this.addProject.get('PracticeAreaId').reset();\r\n } \r\n if(fieldName=='ClientId'){\r\n evt.stopPropagation();\r\n this.addProject.get('ClientId').reset();\r\n } \r\n if(fieldName=='DomainId'){\r\n evt.stopPropagation();\r\n this.addProject.get('DomainId').reset();\r\n this.selectedDomainId = null;\r\n } \r\n\r\n if(fieldName=='ActualEndDate'){\r\n evt.stopPropagation();\r\n this.addProject.get('ActualEndDate').reset();\r\n }\r\n\r\n if(fieldName=='ActualStartDate'){\r\n evt.stopPropagation();\r\n this.addProject.get('ActualStartDate').reset();\r\n }\r\n }\r\n\r\n SaveProjectData() {\r\n this.addProjectData.ProjectCode = this.addProject.value.ProjectCode;\r\n this.addProjectData.ProjectName = this.addProject.value.ProjectName;\r\n this.addProjectData.ProjectTypeId = this.selectedProjectTypeId;\r\n this.addProjectData.ProjectStateId = this.addProject.value.ProjectStateId;\r\n this.addProjectData.ClientId = this.selectedClientId;\r\n this.addProjectData.ManagerId = this.addProject.value.ManagerId;\r\n this.addProjectData.PracticeAreaId = this.selectedPracticeAreaId;\r\n this.addProjectData.ActualStartDate = this.addProject.value.ActualStartDate;\r\n this.addProjectData.ActualEndDate = this.addProject.value.ActualEndDate;\r\n this.addProjectData.DepartmentId = this.addProject.value.DepartmentId;\r\n this.addProjectData.DomainId = this.selectedDomainId;\r\n this.isSave = true;\r\n\r\n this.projectCreationService.SaveProject(this.addProjectData).subscribe(\r\n (res: number) => {\r\n this.formSubmitted = false;\r\n if (res > 0) {\r\n this._snackBar.open('Successfully created', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.GetProjectByID(res);\r\n this.projectId = res;\r\n this.projectCreationService.SetProjectId(res);\r\n // update project id\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent,{\r\n disableClose: true,\r\n hasBackdrop: true,\r\n data:{\r\n message: 'Do you want to add SOW?',\r\n }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if(result){\r\n this.projectCreationService.SetSeletedTab(1);\r\n }else{\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent,{\r\n disableClose: true,\r\n hasBackdrop: true,\r\n data:{\r\n message: 'Do you want to create client billing roles?',\r\n }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n \r\n if(result){\r\n this.projectCreationService.SetSeletedTab(2);\r\n }else\r\n this.projectCreationService.SetSeletedTab(3);\r\n });\r\n\r\n }\r\n });\r\n this.btnLabel = \"Update\";\r\n }\r\n else {\r\n this._snackBar.open('Unable to save project', 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n \r\n }\r\n },\r\n error => {\r\n this._snackBar.open(\"Project already exists\", 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n\r\n \r\n\r\n\r\n SaveProject(): void {\r\n this.addProject.value.ActualStartDate =\r\n this.addProject.value.ActualStartDate != null\r\n ? moment(this.addProject.value.ActualStartDate).format(\"YYYY-MM-DD\")\r\n : null;\r\n this.addProject.value.ActualEndDate =\r\n this.addProject.value.ActualEndDate != null\r\n ? moment(this.addProject.value.ActualEndDate).format(\"YYYY-MM-DD\")\r\n : null;\r\n\r\n this.addProject.value.DepartmentId = 1; // set department to delivery (disabled field not setting its value so set it manually)\r\n if (this.UserRole != \"Department Head\")\r\n this.addProject.value.ManagerId = this.EmpId; // set mangerId if he is not department head\r\n this.formSubmitted = true; // variable for validation purpose\r\n if (this.addProject.valid === true) {\r\n // Check for all fields are validity\r\n\r\n if (\r\n this.addProject.value.ActualStartDate &&\r\n this.addProject.value.ActualEndDate\r\n ) {\r\n if (!this.IsValidDate(\r\n this.addProject.value.ActualStartDate,\r\n this.addProject.value.ActualEndDate\r\n )\r\n ) {\r\n this._snackBar.open('End date cannot be less than Start date', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return;\r\n }\r\n }\r\n if (this.projectId <= 0) {\r\n // projectId ==0 if it is new project so call save method\r\n this.SaveProjectData();\r\n } else {\r\n // projectId > 0 so we are updating existing project call update mehtod \r\n this.AssignUpdatedFormData();\r\n this.UpdateProject(); \r\n \r\n }\r\n }\r\n }\r\n \r\n UpdateProject() {\r\n this.projectCreationService\r\n .updateProjectDetails(this.updatedProjectData)\r\n .subscribe(\r\n res => {\r\n this.formSubmitted = false;\r\n if (res == 1) {\r\n this.projectCreationService.SetProjectId(\r\n this.updatedProjectData.ProjectId\r\n ); // update project id\r\n this._snackBar.open('Successfully Updated', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n } else if (res == 2627) {\r\n this._snackBar.open('Entered Duplicate Data', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n } else if (res == -2) {\r\n this._snackBar.open('Either associates are allocated to this project or Requisition is raised against this project.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n else {\r\n this._snackBar.open('Unable to update project', 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n },\r\n error => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n \r\n\r\n AssignUpdatedFormData(): void {\r\n // here we are assigning user updated details to an object and will send that object to update method\r\n this.updatedProjectData.ProjectId = this.projectId;\r\n this.updatedProjectData.ProjectCode = this.addProject.value.ProjectCode;\r\n this.updatedProjectData.ProjectName = this.addProject.value.ProjectName;\r\n if(this.selectedProjectTypeId)\r\n this.updatedProjectData.ProjectTypeId = this.selectedProjectTypeId;\r\n this.updatedProjectData.ProjectStateId = this.addProject.value.ProjectStateId;\r\n if(this.selectedClientId)\r\n this.updatedProjectData.ClientId = this.selectedClientId;\r\n this.updatedProjectData.ManagerId = this.addProject.value.ManagerId;\r\n if(this.selectedPracticeAreaId)\r\n this.updatedProjectData.PracticeAreaId = this.selectedPracticeAreaId;\r\n this.updatedProjectData.ActualStartDate = this.addProject.value.ActualStartDate;\r\n this.updatedProjectData.ActualEndDate = this.addProject.value.ActualEndDate;\r\n this.updatedProjectData.DepartmentId = this.addProject.value.DepartmentId;\r\n this.updatedProjectData.UserRole = this.UserRole;\r\n if(this.selectedDomainId || this.selectedDomainId == null)\r\n this.updatedProjectData.DomainId = this.selectedDomainId;\r\n\r\n }\r\n\r\n //method to check date validation\r\n IsValidDate(fromDate: any, toDate: any): boolean {\r\n if (Date.parse(fromDate) <= Date.parse(toDate)) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n // method to reset form, labels\r\n Reset() {\r\n this.btnLabel = \"Save\";\r\n this.CreateForm();\r\n this.addProject.reset({\r\n ManagerId: this.addProject.get('ManagerId').value, \r\n DepartmentId:this.addProject.get('DepartmentId').value\r\n });\r\n this.formGroupDirective.resetForm();\r\n this.isEndDateRequired = false;\r\n }\r\n\r\n onEmpty(event : any, controlName : string){\r\n if (event.target.value.length === 0 && controlName === 'ProjectCode')\r\n this.addProject.controls.ProjectCode.patchValue(null);\r\n \r\n else if (event.target.value.length === 0 && controlName === 'ProjectName')\r\n this.addProject.controls.ProjectName.patchValue(null); \r\n \r\n }\r\n\r\n\r\n ClearForm() {\r\n this.projectCreationService.SetProjectId(0);\r\n this.projectCreationService.SetSeletedTab(0); // to clear\r\n this.Reset();\r\n }\r\n\r\n OpenConfirmation() {\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent,{\r\n disableClose: true,\r\n hasBackdrop: true,\r\n data:{\r\n message: 'Do you want to clear?',\r\n }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if(result){\r\n this.formSubmitted = false;\r\n this.ClearForm();\r\n }\r\n });\r\n }\r\n\r\n // method to get empId and user role from session\r\n SetUserRoleName(): void {\r\n if (sessionStorage.getItem(\"AssociatePortal_UserInformation\") != null) {\r\n const currentRole = JSON.parse(\r\n sessionStorage.getItem(\"AssociatePortal_UserInformation\")\r\n ).roleName;\r\n this.UserRole = currentRole;\r\n this.EmpId = JSON.parse(\r\n sessionStorage.getItem(\"AssociatePortal_UserInformation\")\r\n ).employeeId;\r\n if (currentRole == \"Department Head\") {\r\n this.showDropdown = true;\r\n // this.addProject.controls['ManagerId'].setValidators(\r\n // Validators.required\r\n // );\r\n } else {\r\n\r\n this.showDropdown = false;\r\n }\r\n }\r\n }\r\n\r\n // modify date format to display in p-calender control...(from back end we are gettng date as string so convert it to date)\r\n ModifyDateFormat(date: string): Date {\r\n if (date != null) {\r\n return new Date(moment(date).format(\"MM/DD/YYYY\"));\r\n }\r\n return null;\r\n }\r\n // method to populate form with existing project details\r\n PopulateForm(): void {\r\n if (this.updatedProjectData != null) {\r\n this.addProject.patchValue({\r\n ProjectCode: this.updatedProjectData.ProjectCode,\r\n ProjectName: this.updatedProjectData.ProjectName,\r\n ClientId: this.updatedProjectData.ClientName,\r\n ManagerId: this.updatedProjectData.ManagerId,\r\n ProjectTypeId: this.updatedProjectData.ProjectTypeCode,\r\n ProjectStateId: this.updatedProjectData.ProjectStateId,\r\n PracticeAreaId: this.updatedProjectData.PracticeAreaCode,\r\n ActualStartDate: this.ModifyDateFormat(\r\n this.updatedProjectData.ActualStartDate\r\n ),\r\n ActualEndDate: this.ModifyDateFormat(\r\n this.updatedProjectData.ActualEndDate\r\n ),\r\n DomainId: this.updatedProjectData.DomainName,\r\n ProgramManagerName: this.updatedProjectData.ManagerName\r\n });\r\n }\r\n }\r\n\r\n //when user clicks on edit we get that projectId so here we are getting project details by thta id..\r\n GetProjectByID(currentProjectID: number): void {\r\n this.projectCreationService\r\n .GetProjectDetailsbyID(currentProjectID)\r\n .subscribe(\r\n (projectdata: ProjectsData) => {\r\n this.updatedProjectData = projectdata;\r\n this.projectCreationService.SetProjectState(this.updatedProjectData.ProjectState);\r\n if (this.updatedProjectData.ProjectState == \"SubmittedForApproval\") {\r\n this.hideProjectState = true;\r\n }\r\n this.PopulateForm();\r\n },\r\n error => {\r\n this._snackBar.open('Error while fetching the project', 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n ngOnDestroy() {\r\n this.projectIdSubscription.unsubscribe();\r\n }\r\n}\r\n","\r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n Project Code *\r\n \r\n \r\n \r\n Project Code *\r\n \r\n \r\n Project Code Required\r\n \r\n \r\n Invalid Project code.\r\n \r\n \r\n No special characters are allowed expect one hyphen\r\n \r\n \r\n
\r\n
\r\n \r\n Project Name *\r\n\r\n \r\n \r\n Project Name Required\r\n \r\n \r\n No special characters are allowed expect one hyphen\r\n \r\n \r\n
\r\n
\r\n \r\n Project Type *\r\n \r\n\r\n \r\n \r\n keyboard_arrow_down\r\n \r\n \r\n No matching value found\r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n Project Type Required\r\n \r\n \r\n Select Project Type from given options\r\n \r\n \r\n
\r\n
\r\n \r\n Technology Area *\r\n \r\n\r\n \r\n \r\n keyboard_arrow_down\r\n \r\n \r\n No matching value found\r\n \r\n {{item.label}}\r\n \r\n \r\n\r\n \r\n Technology Area Required\r\n \r\n \r\n Select Technology Area from given options\r\n \r\n \r\n
\r\n
\r\n \r\n Client *\r\n \r\n\r\n \r\n \r\n keyboard_arrow_down\r\n \r\n \r\n No matching value found\r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n Client Required\r\n \r\n \r\n Select Client from given options\r\n \r\n \r\n
\r\n
\r\n \r\n Domain\r\n \r\n\r\n \r\n \r\n keyboard_arrow_down\r\n \r\n \r\n No matching value found\r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n Select Domain from given options\r\n \r\n \r\n
\r\n
\r\n \r\n Program Manager *\r\n \r\n {{option.label}}\r\n \r\n \r\n Program Manager Required\r\n \r\n \r\n
\r\n
\r\n \r\n Departments\r\n \r\n {{option.label}}\r\n \r\n \r\n Department Id Required\r\n \r\n \r\n
\r\n
\r\n \r\n Start Date *\r\n \r\n \r\n close\r\n \r\n \r\n \r\n \r\n Start Date Required\r\n \r\n \r\n
\r\n
\r\n \r\n End Date *\r\n\r\n \r\n\r\n \r\n close\r\n \r\n\r\n \r\n \r\n\r\n \r\n End Date Required\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
\r\n\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MasterDataService } from '../../../master-layout/services/masterdata.service';\r\nimport { ProjectsData } from '../../../master-layout/models/projects.model';\r\nimport { Router } from '@angular/router';\r\nimport { ProjectCreationService } from '../../services/project-creation.service';\r\nimport * as moment from 'moment';\r\nimport * as servicePath from '../../../../core/service-paths';\r\n// import { MessageService } from 'primeng/api';\r\n// import { ConfirmationService } from 'primeng/components/common/confirmationservice';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { take } from 'rxjs/operators';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { DateDialogComponent } from '../date-dialog/date-dialog.component';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-project-dashboard',\r\n templateUrl: './project-dashboard.component.html',\r\n styleUrls: ['./project-dashboard.component.scss'],\r\n providers: []\r\n})\r\nexport class ProjectDashboardComponent implements OnInit {\r\n projectstate: string;\r\n display: boolean;\r\n ProjectsList: ProjectsData[];\r\n UserRole: string;\r\n EmpId: number;\r\n isDelivaryHead = false;\r\n hideEdit: boolean = false;;\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n dashboard: string;\r\n roleName : string;\r\n displayCloseProject = false;\r\n cols = [];\r\n showCol = false;\r\n PrevDate = new Date();\r\n startDate = new Date();\r\n submitted = false;\r\n closeProjectData : FormGroup;\r\n enddate : any;\r\n // disablestyles = { 'opacity': '0.6', 'cursor':'not-allowed'}\r\n disablestyles = { 'opacity': '0.6', 'pointer-events': 'none'}\r\n dataSource = new MatTableDataSource();\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort; \r\n \r\n closingProjectData : ProjectsData;\r\n resources = servicePath.API.PagingConfigValue;\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.dataSource.data);\r\n }\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.dataSource.sortingDataAccessor = (data: any, sortHeaderId: string): string => {\r\n if (typeof data[sortHeaderId] === 'string') {\r\n return data[sortHeaderId].toLocaleLowerCase();\r\n }\r\n \r\n return data[sortHeaderId];\r\n }\r\n \r\n }\r\n constructor( private route: Router,\r\n private projectCreationService: ProjectCreationService, private _snackBar: MatSnackBar,\r\n public navService: NavService, private spinner: NgxSpinnerService, private dialog?: MatDialog) {\r\n this.PageSize = this.resources.PageSize;\r\n this.PageDropDown = this.resources.PageDropDown;\r\n this.PrevDate.setDate(this.PrevDate.getDate() - 1);\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n colDH: string[] = [\r\n 'ProjectName',\r\n 'ManagerName',\r\n 'PracticeAreaCode',\r\n 'ClientName',\r\n 'ActualStartDate',\r\n 'ActualEndDate',\r\n 'ProjectState',\r\n 'ProjectDetails',\r\n 'AllocationDetails',\r\n 'Action'\r\n ];\r\n colPM: string[] = [\r\n 'ProjectName',\r\n 'PracticeAreaCode',\r\n 'ClientName',\r\n 'ActualStartDate',\r\n 'ActualEndDate',\r\n 'ProjectState',\r\n 'ProjectDetails',\r\n 'AllocationDetails',\r\n 'Action'\r\n ];\r\n // colPM = [\r\n // { field: 'ProjectName', header: 'Name' },\r\n // { field: 'PracticeAreaCode', header: 'Technology' },\r\n // { field: 'ClientName', header: 'Client' },\r\n // { field: 'ActualStartDate', header: 'Start Date' },\r\n // { field: 'ActualEndDate', header: 'End Date' },\r\n // { field: 'ProjectState', header: 'Status' }\r\n // ];\r\n\r\n // colDH = [\r\n // { field: 'ProjectName', header: 'Name' },\r\n // { field: 'ManagerName', header: 'Manager' },\r\n // { field: 'PracticeAreaCode', header: 'Technology' },\r\n // { field: 'ClientName', header: 'Client' },\r\n // { field: 'ActualStartDate', header: 'Start Date' },\r\n // { field: 'ActualEndDate', header: 'End Date' },\r\n // { field: 'ProjectState', header: 'Status' }\r\n // ];\r\n\r\n ngOnInit() {\r\n this.spinner.show();\r\n this.CreateCloseProjectForm();\r\n this.EmpId = JSON.parse(sessionStorage['AssociatePortal_UserInformation']).employeeId;\r\n this.roleName = JSON.parse(sessionStorage['AssociatePortal_UserInformation']).roleName;\r\n this.projectCreationService.SetProjectId(0);\r\n this.projectCreationService.SetSeletedTab(0); \r\n this.projectCreationService.SetEditMode(false);\r\n this.GetProjectsList();\r\n this.cols=this.colDH;\r\n this.showCol = true;\r\n if(this.roleName == 'Program Manager'){\r\n this.cols = this.colPM;\r\n this.showCol = false;\r\n }\r\n else if(this.roleName == 'Department Head'){\r\n\r\n this.cols = this.colDH;\r\n this.showCol = true;\r\n }\r\n\r\n }\r\n\r\n CreateProject(): void {\r\n this.route.navigate(['/project/addproject/projectDashboard']);\r\n }\r\n EditProject(ProjectObject: ProjectsData): void {\r\n this.projectCreationService.SetSeletedTab(0);\r\n this.projectCreationService.SetEditMode(true);\r\n this.projectCreationService.SetProjectId(ProjectObject.ProjectId);\r\n this.route.navigate(['/project/addproject/projectDashboard']);\r\n }\r\n canClose(projectdata : ProjectsData){\r\n if(projectdata.ProjectState == 'ClosureInitiated' ||projectdata.ProjectState == 'SubmittedForClosureApproval' || projectdata.ProjectState == 'Closed' || projectdata.ProjectState === 'Drafted' || projectdata.ProjectState === 'SubmittedForApproval')\r\n return this.disablestyles;\r\n\r\n return { 'cursor':'pointer' };\r\n }\r\n canViewAllocation(projectdata : ProjectsData){\r\n if(projectdata.ProjectState =='Execution' )\r\n return { 'cursor':'pointer' };\r\n\r\n return this.disablestyles;\r\n }\r\n CanEdit(projectdata : ProjectsData){\r\n if(projectdata.ProjectState == 'ClosureInitiated' ||projectdata.ProjectState == 'SubmittedForClosureApproval' || projectdata.ProjectState == 'Closed')\r\n return this.disablestyles;\r\n\r\n return { 'cursor':'pointer' };\r\n }\r\n\r\n // DeleteProject(projectId: number,projectName : string): void {\r\n // this.confirmationService.confirm({\r\n // message: 'Do you want to delete the project?',\r\n // accept: () => {\r\n // this.projectCreationService.deleteProjectDetails(projectId).subscribe((res: boolean) => {\r\n // if (res == true) {\r\n // this.messageService.add({ severity: 'success', summary: 'Deletion Success!', detail: 'Project deleted successfully' });\r\n // this.GetProjectsList();\r\n // }\r\n // else\r\n // this.messageService.add({ severity: 'error', summary: 'Deletion Failed!', detail: 'Failed to delete the project' });\r\n // },\r\n // (error: any) => {\r\n // this.messageService.add({ severity: 'error', summary: 'Deletion Failed!', detail: 'Failed to delete the project' });\r\n // });\r\n // },\r\n // reject: () => { }\r\n // });\r\n\r\n // }\r\n\r\n // after getting all the projects list modify date format else it we display with HH:MM:SS format\r\n ModifyDateFormat(data: ProjectsData[]): void {\r\n data.forEach(e => {\r\n if (e.ActualStartDate != null) {\r\n e.ActualStartDate = moment(e.ActualStartDate).format('MM/DD/YYYY');\r\n }\r\n if (e.ActualEndDate != null) {\r\n e.ActualEndDate = moment(e.ActualEndDate).format('MM/DD/YYYY');\r\n } \r\n })\r\n this.ProjectsList = data;\r\n\r\n }\r\n canShowActions(projectData : ProjectsData){\r\n let endDate = projectData.ActualEndDate != null ? new Date(projectData.ActualEndDate).getDate() : null;\r\n let nextDate = new Date().getDate() + 1;\r\n if( endDate != null && (endDate === nextDate || endDate < new Date().getDate())){\r\n \r\n return false;\r\n }\r\n return true;\r\n }\r\n CreateCloseProjectForm(){\r\n this.closeProjectData = new FormGroup({\r\n 'ActualEndDate' : new FormControl(null,Validators.required),\r\n 'Remarks' : new FormControl(null, Validators.required)\r\n })\r\n }\r\n\r\n canCloseProject(projectData : ProjectsData){\r\n \r\n this.projectCreationService.canCloseProject(projectData.ProjectId).pipe(\r\n take(1)).subscribe( res =>{\r\n \r\n if(res == 0)\r\n {\r\n // if (this.closeProjectData.EndDate != null) {\r\n // let date = new Date(moment(this.closableRole.EndDate).format(\"YYYY-MM-DD\"));\r\n // this.closeRoleData.patchValue({\r\n // BillingEndDate: date\r\n // })\r\n // }\r\n\r\n this.displayCloseProject = true;\r\n const dialogRef = this.dialog.open(DateDialogComponent, {\r\n data: {BillingEndDate : projectData.ActualEndDate, StartDate: new Date(projectData.ActualStartDate), ProjectName: projectData.ProjectName},\r\n disableClose: true,\r\n hasBackdrop: true,\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n \r\n // projectData.ActualEndDate = moment(result.ActualEndDate).format('MM/DD/YYYY');\r\n if(result && result.ActualEndDate && result.Remarks){\r\n this.closeProjectData.value.ActualEndDate = result.ActualEndDate;\r\n this.closeProjectData.value.Remarks = result.Remarks;\r\n this.closeProject();\r\n this.closeProjectData.value.ActualEndDate = result.ActualEndDate;\r\n this.closeProjectData.value.Remarks = result.Remarks;\r\n }\r\n \r\n \r\n });\r\n this.closingProjectData = projectData;\r\n if(projectData.ActualEndDate != null)\r\n this.closeProjectData.patchValue({\r\n 'ActualEndDate' : new Date(projectData.ActualEndDate),\r\n 'Remarks' : new String(projectData.Remarks)\r\n })\r\n this.startDate = new Date(projectData.ActualStartDate);\r\n }\r\n else if(res == -1){\r\n this._snackBar.open('Project has no Team Lead - Please Assign Team Lead', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n else{\r\n this.display = true\r\n this._snackBar.open('Project has active Client billing roles, close them to continue.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({ severity: 'error', detail: 'Project has active Client billing roles, close them to continue' });\r\n }\r\n \r\n });\r\n \r\n \r\n }\r\n \r\n canEdit(projectData : ProjectsData){\r\n if(projectData.ProjectState == 'Closed'){\r\n return false; \r\n }\r\n return true;\r\n }\r\n // method to get all projets list\r\n GetProjectsList(): void {\r\n let currentRole = JSON.parse(sessionStorage['AssociatePortal_UserInformation']).roleName;\r\n if (currentRole === 'Department Head') {\r\n this.isDelivaryHead = true;\r\n } // to display reject and approvaloptions in ui.\r\n \r\n this.dashboard = 'ProjectDashboard'; \r\n\r\n this.UserRole = currentRole;\r\n this.projectCreationService.GetProjectsList(this.UserRole, this.EmpId, this.dashboard)\r\n .toPromise().then((res: ProjectsData[]) => {\r\n this.ModifyDateFormat(res);\r\n this.dataSource.data = res;\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.dataSource.sortingDataAccessor = (data: any, sortHeaderId: string): string => {\r\n if (typeof data[sortHeaderId] === 'string') {\r\n return data[sortHeaderId].toLocaleLowerCase();\r\n }\r\n \r\n return data[sortHeaderId];\r\n }\r\n this.spinner.hide();\r\n }).catch(error=>{\r\n this.spinner.hide();\r\n // this._snackBar.open('An error has occurred. Please contact administration.', 'x', {\r\n // duration: 2000,\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // });\r\n });\r\n }\r\n\r\n ViewProject(ProjectObject: ProjectsData) {\r\n this.projectstate =ProjectObject.ProjectState;\r\n if(this.projectstate === \"ClosureInitiated\" ||\r\n this.projectstate === \"Closed\" || this.projectstate === \"SubmittedForClosureApproval\"){\r\n this.projectCreationService.SetProjectId(ProjectObject.ProjectId);\r\n this.route.navigate([\"/project/projectclosure/\"+ this.dashboard]);\r\n \r\n }\r\n else{\r\n \r\n this.projectCreationService.SetProjectId(ProjectObject.ProjectId);\r\n this.route.navigate([\"/project/view/\" + this.dashboard]);\r\n }\r\n // this.projectCreationService.SetProjectId(ProjectObject.ProjectId);\r\n // this.route.navigate(['/project/view/' + 'projectDashboard']);\r\n \r\n }\r\n\r\n ViewAllocationDetails(ProjectDetails : ProjectsData){\r\n this.route.navigate(['/reports/resourcereportsbyproject/'+ ProjectDetails.ProjectId]);\r\n }\r\n\r\n closeProject(){\r\n this.submitted = true;\r\n if(this.closeProjectData.value.ActualEndDate != null && this.closeProjectData.value.Remarks){\r\n this.closingProjectData.ActualEndDate = this.closeProjectData.value.ActualEndDate;\r\n this.closingProjectData.Remarks = this.closeProjectData.value.Remarks;\r\n this.projectCreationService.ProjectClosureInitiation(this.closingProjectData).pipe(\r\n take(1)).subscribe( res=>{\r\n if(res >= 1){\r\n this.displayCloseProject = false;\r\n this._snackBar.open('Project Closure Initiated Successfully', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({ severity: 'success', summary: 'Close Success!', detail: 'Project closed successfully' });\r\n this.GetProjectsList();\r\n }\r\n else{\r\n this.displayCloseProject = false;\r\n this._snackBar.open('Project cannot be closed.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({ severity: 'error', detail: 'Project Could not be closed!' });\r\n }\r\n },\r\n (error)=>{\r\n this.displayCloseProject = false;\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({ severity: 'error', detail: error.error });\r\n\r\n });\r\n }\r\n}\r\n\r\n clearData(){\r\n this.submitted = false;\r\n this.displayCloseProject = false;\r\n }\r\n\r\n\r\n}\r\n\r\n\r\n"," \r\n
\r\n

Projects Dashboard\r\n \r\n

\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Project Name\r\n \r\n \r\n {{ element.ProjectName }}\r\n \r\n \r\n \r\n \r\n \r\n Project Manager\r\n \r\n \r\n {{ element.ManagerName }}\r\n \r\n \r\n \r\n \r\n \r\n Technology\r\n \r\n \r\n {{ element.PracticeAreaCode }}\r\n \r\n \r\n \r\n \r\n \r\n Client Name\r\n \r\n \r\n {{ element.ClientName }}\r\n \r\n \r\n \r\n \r\n Start Date\r\n \r\n \r\n {{ element.ActualStartDate }}\r\n \r\n \r\n \r\n \r\n End Date\r\n \r\n \r\n {{ element.ActualEndDate }}\r\n \r\n \r\n \r\n \r\n Status\r\n \r\n \r\n {{ element.ProjectState }}\r\n \r\n \r\n \r\n \r\n \r\n Project Details\r\n \r\n \r\n visibility\r\n \r\n \r\n \r\n \r\n Allocation Details\r\n \r\n \r\n visibility\r\n \r\n \r\n \r\n \r\n Action\r\n \r\n \r\n
\r\n
\r\n edit\r\n
\r\n
\r\n close\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n No data\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 { Component, OnInit } from '@angular/core';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { ActivatedRoute, NavigationEnd, Router, RoutesRecognized } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\nimport { filter } from 'rxjs-compat/operator/filter';\r\nimport { ProjectsData } from 'src/app/modules/master-layout/models/projects.model';\r\nimport { ProjectCreationService } from 'src/app/modules/project-life-cycle/services/project-creation.service';\r\nimport { UrlService } from 'src/app/modules/shared/services/url.service';\r\n\r\n@Component({\r\n selector: 'app-project-details',\r\n templateUrl: './project-details.component.html',\r\n styleUrls: ['./project-details.component.scss']\r\n})\r\nexport class ProjectDetailsComponent implements OnInit {\r\n \r\n EmpId: number;\r\n fullName: string;\r\n roleName:string;\r\n dashboard: string;\r\n projectId: number;\r\n showback: boolean = true;\r\n pageload: boolean = false;\r\n\r\n projectIdSubscription: Subscription;\r\n projectData: ProjectsData;\r\n projectState: string;\r\n projectStateSubscription: Subscription;\r\n previousUrl: string;\r\n\r\n constructor(private actRoute: ActivatedRoute,\r\n private projectCreationService: ProjectCreationService,\r\n private _snackBar: MatSnackBar,\r\n private router: Router,\r\n private urlService: UrlService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.urlService.previousUrl$.subscribe((previousUrl: string) => {\r\n this.previousUrl = previousUrl;\r\n });\r\n this.EmpId = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).employeeId;\r\n this.fullName = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).fullName;\r\n this.roleName = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).roleName;\r\n\r\n this.actRoute.params.subscribe(params => { this.dashboard = params[\"id\"]; });\r\n this.projectStateSubscription = this.projectCreationService.GetProjectState().subscribe(data => {\r\n this.projectState = data;\r\n });\r\n this.projectIdSubscription = this.projectCreationService.GetProjectId().subscribe(data => {\r\n this.projectId = data;\r\n });\r\n\r\n this.GetProjectDetails();\r\n }\r\n\r\n GetProjectDetails() {\r\n if (this.projectId > 0) {\r\n this.GetProjectByID(this.projectId);\r\n }\r\n }\r\n private GetProjectByID(currentProjectID: number): void {\r\n this.projectCreationService\r\n .GetProjectDetailsbyID(currentProjectID)\r\n .toPromise().then(\r\n (projectdata: ProjectsData) => {\r\n this.projectData = projectdata;\r\n this.pageload = true;\r\n }).catch(\r\n error => {\r\n this._snackBar.open(\"Error while getting the project details\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n\r\n onBack() {\r\n this.router.navigate([this.previousUrl]);\r\n this.showback = false;\r\n }\r\n\r\n}\r\n","\r\n
\r\n
\r\n Project Details\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Project Code
\r\n
: {{projectData.ProjectCode }}
\r\n
\r\n
\r\n
\r\n
\r\n
Project Name
\r\n
: {{projectData.ProjectName }}
\r\n
\r\n
\r\n
\r\n
\r\n
Project Type
\r\n
: {{projectData.ProjectTypeDescription }}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Technology Area
\r\n
: {{projectData.PracticeAreaCode }}
\r\n
\r\n
\r\n
\r\n
\r\n
Client
\r\n
: {{projectData.ClientName }}
\r\n
\r\n
\r\n
\r\n
\r\n
Domain
\r\n
: {{projectData.DomainName }}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Program Manager
\r\n
: {{projectData.ManagerName }}
\r\n
\r\n
\r\n
\r\n
\r\n
Department
\r\n
: {{projectData.DepartmentCode }}
\r\n
\r\n
\r\n
\r\n
\r\n
Project State
\r\n
: {{projectData.ProjectState }}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Start Date
\r\n
: {{projectData.ActualStartDate | date: 'mediumDate'}}
\r\n
\r\n
\r\n
\r\n
\r\n
End Date
\r\n
: {{projectData.ActualEndDate | date: 'mediumDate'}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-project-life-cycle',\r\n templateUrl: './project-life-cycle.component.html',\r\n styleUrls: ['./project-life-cycle.component.scss']\r\n})\r\nexport class ProjectLifeCycleComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n \r\n
\r\n\r\n\r\n\r\n\r\n

Loading ...

\r\n","import { Component, OnInit, ViewChild, QueryList, ViewChildren } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport * as servicePath from '../../../../../core/service-paths';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { GenericType } from 'src/app/modules/master-layout/models/dropdowntype.model';\r\nimport { AssociateSkillSearch } from 'src/app/modules/project-life-cycle/models/associateSkillSearch.model';\r\nimport { SkillsData } from 'src/app/modules/master-layout/models/project-role.model';\r\nimport { AssociateAllocation } from 'src/app/modules/master-layout/models/associateallocation.model';\r\nimport { TagAssociateList } from 'src/app/modules/project-life-cycle/models/tag-associate.model';\r\nimport { AssociateskillsearchService } from 'src/app/modules/project-life-cycle/services/associateskillsearch.service';\r\nimport { TagAssociateService } from 'src/app/modules/project-life-cycle/services/tag-associate.service';\r\nimport { SkillsService } from 'src/app/modules/admin/services/skills.service';\r\nimport { MatTableDataSource, MatTable } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { map } from 'rxjs-compat/operator/map';\r\nimport { startWith } from 'rxjs/operators';\r\nimport { FormGroup, FormBuilder, Validators, FormGroupDirective, FormControl } from '@angular/forms';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\nimport { DailogTagListComponent } from '../dailog-tag-list/dailog-tag-list.component';\r\nimport { MatDialog, MatDialogConfig, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { SkillDataListComponent } from '../skill-data-list/skill-data-list.component';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableExporterModule } from 'mat-table-exporter';\r\nimport { TableUtil } from \"../../../table.util\";\r\nimport { ProjectHistoryListComponent } from '../project-history-list/project-history-list.component';\r\n\r\n\r\nexport interface SkillAssociate {\r\n label: string;\r\n value: number;\r\n}\r\n\r\n@Component({\r\n selector: 'app-associateskillsearch',\r\n templateUrl: './associateskillsearch.component.html',\r\n styleUrls: ['./associateskillsearch.component.scss']\r\n})\r\nexport class AssociateskillsearchComponent implements OnInit {\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n \r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n resources = servicePath.API.PagingConfigValue;\r\n skillData: GenericType;\r\n filteredSkills: GenericType[];\r\n resultData: GenericType[];\r\n options: SkillAssociate[];\r\n associateSkillSearchData: AssociateSkillSearch[];\r\n associateSearchData: AssociateSkillSearch[];\r\n associateSkillSearchObject = new AssociateSkillSearch();\r\n selectedSkillIds: any = [];\r\n skillsearchForm: FormGroup;\r\n formSubmitted: boolean;\r\n\r\n selectedAssociateSkillSearch: AssociateSkillSearch[];\r\n isPrimary: boolean = false;\r\n isSecondary: boolean = false;\r\n isBillable = false;\r\n isNonBillable = false;\r\n isCritical = false;\r\n isNonCritical = false;\r\n recordsPerPage = 5;\r\n first: number = 0;\r\n gridMessage: string = \"No records found\";\r\n totalRecords: number = 0;\r\n displaySkills: boolean;\r\n skillsData: SkillsData[] = [];\r\n filteredOptions: Observable;\r\n Ids = [];\r\n step=0;\r\n // can't send listing need Id'sfonSkillSelected\r\n isLoading: boolean = false;\r\n\r\n EmployeeId: number;\r\n displayProjectDetails: boolean = false;\r\n employeeProjectData: AssociateAllocation[];\r\n headerOfProjectDetails: string = \"\";\r\n skillDetailsHeader: string = \"\";\r\n isDisplay = false;\r\n isSearch = false;\r\n selectedChangeSkill: any;\r\n skillList: GenericType[];\r\n isTagButton = true;\r\n \r\n dataSource : MatTableDataSource;\r\n\r\n @ViewChild('table') table: MatTable;\r\n\r\n selection = new SelectionModel(true, []);\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n // @ViewChildren(MatPaginator) paginator = new QueryList();\r\n // @ViewChildren(MatSort) sort = new QueryList();\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n \r\n\r\n \r\n displayedColumns: string[] = [ 'EmployeeName', 'Experience', 'PrimarySkill', 'SecondarySkill',\r\n 'Allocationpercentage', 'IsBillable', 'IsCritical', 'ManagerName', 'LeadName'\r\n ,'Designation', 'Grade', 'ProjectDetails'];\r\n\r\n displayedColumnsForExcel: string[] = [ 'EmployeeName', 'Experience', 'PrimarySkill', 'SecondarySkill',\r\n 'Allocationpercentage', 'IsBillable', 'IsCritical', 'ManagerName', 'LeadName'\r\n ,'Designation', 'Grade'];\r\n\r\n \r\n //Tag list fields\r\n tagListDetails: TagAssociateList[] = [];\r\n selectedTagListData: TagAssociateList = new TagAssociateList();\r\n tagListNames = [];\r\n tagListData: TagAssociateList = new TagAssociateList();\r\n displayTagList: boolean = false;\r\n loginUserId = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).employeeId;\r\n isNewTagList: string = \"0\";\r\n selectedrows: any = [];\r\n isLoad: boolean = false;\r\n\r\n // @ViewChild(\"dt1\") table: any;\r\n fileNameDialogRef: MatDialogRef;\r\n constructor(\r\n private associateSkillSearchService: AssociateskillsearchService,\r\n \r\n public navService: NavService,\r\n private snackBar: MatSnackBar,\r\n private dialog: MatDialog,\r\n private skillservice: SkillsService,\r\n private tagAssociateService: TagAssociateService,\r\n private route: Router, private fb: FormBuilder,\r\n ) {\r\n \r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n \r\n }\r\n \r\n \r\n \r\n ngOnInit() {\r\n // this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n // this.applyFilter(responseData);\r\n // });\r\n this.skillsearchForm = this.fb.group({\r\n 'selectedSkillIds': ['',[ Validators.required]],\r\n 'IsPrimary': [false],\r\n 'IsSecondary': [false],\r\n 'IsBillable': [false],\r\n 'IsnonBillable': [false],\r\n 'IsCritical': [false],\r\n 'IsnonCritical':[false],\r\n \r\n \r\n });\r\n \r\n \r\n this.associateSkillSearchService.GetActiveSkillsForDropdown().subscribe(res => {\r\n res;\r\n this.skillList = res;\r\n \r\n })\r\n this.associateSkillSearchObject.selectedSkillIds = [];\r\n // this.getTagListNames();\r\n \r\n }\r\n\r\n\r\n exporter() {\r\n TableUtil.exportTableToExcel(\"ExampleMaterialTable\");\r\n }\r\n ngAfterViewInit() { \r\n // this.dataSource.sort = this.sort.toArray()[0]; \r\n }\r\n \r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n if (filterValue){\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n else{\r\n this.dataSource = new MatTableDataSource(this.associateSkillSearchData);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.associateSkillSearchData);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n }\r\n\r\n \r\n \r\n \r\n onRowChange(event: any, element: any) {\r\n if (event.checked == true && element) {\r\n this.selectedAssociateSkillSearch.push(element);\r\n if (this.selectedAssociateSkillSearch.length > 0) {\r\n this.isTagButton = false;\r\n }\r\n }\r\n else {\r\n if (event.checked == false && element) {\r\n let index = this.selectedAssociateSkillSearch.findIndex(ele => ele.EmployeeId == element.EmployeeId);\r\n this.selectedAssociateSkillSearch.splice(index, 1);\r\n if (this.selectedAssociateSkillSearch.length == 0) {\r\n this.isTagButton = true;\r\n }\r\n }\r\n }\r\n }\r\n openDialog(): void {\r\n this.saveToTagList();\r\n let dialogRef;\r\n if(this.tagListData){\r\n dialogRef = this.dialog.open(DailogTagListComponent, {\r\n \r\n width: '800px', height: '600',\r\n data: {\r\n selectedAssociateSkillSearch: this.selectedAssociateSkillSearch,\r\n }\r\n \r\n });\r\n }\r\n \r\n \r\n dialogRef.afterClosed().subscribe(result => {\r\n console.log(result);\r\n \r\n });\r\n }\r\n \r\n \r\n \r\n canDisableCheckBox(): boolean {\r\n if (this.associateSkillSearchObject.selectedSkillIds.length === 0) {\r\n // this.skillsearchForm.value.IsPrimary = false;\r\n // this.skillsearchForm.value.IsSecondary = false;\r\n return false;\r\n }\r\n else\r\n return true;\r\n }\r\n \r\n clearData(): void {\r\n \r\n\r\n this.skillData = null;\r\n }\r\n \r\n getStyles(type: string) {\r\n if (type == 'number') {\r\n return { 'text-align': 'right', 'width': '120px' };\r\n }\r\n if (type == 'needLessSpace') {\r\n return { 'width': '100px' };\r\n }\r\n if (type == 'boolean') {\r\n return { 'text-align': 'center' };\r\n }\r\n }\r\n \r\n \r\n GetProjectDetailsOfEmployee(employeeData) {\r\n this.displayProjectDetails = true;\r\n this.associateSkillSearchService.GetProjectDetailByEmployeeId(employeeData.EmployeeId).subscribe((res: AssociateAllocation[]) => {\r\n this.employeeProjectData = res;\r\n this.headerOfProjectDetails = \"Project details of \" + this.employeeProjectData[0].AssociateName;\r\n });\r\n }\r\n \r\n \r\n // html option.value\r\n search($event) {\r\n const id = this.skillList.find(_ => _.Name === $event);\r\n // this.skillsearchForm.value.selectedSkillIds += id;\r\n }\r\n \r\n onSkillSelected(item: any) {\r\n this.selectedSkillIds = [];\r\n this.selectedSkillIds.push(item);\r\n this.isSearch = true;\r\n }\r\n GetActiveSkillsForDropdown(event: any): void {\r\n if (event) {\r\n let searchString = event.target.value.toLowerCase();\r\n //let searchString = event.target;\r\n \r\n if (searchString === '') {\r\n this.filteredSkills = this.skillList;\r\n }\r\n //this.masterDataService.GetEmployeesAndManagers(suggestionString).subscribe((managersResponse: GenericType[]) => {\r\n this.filteredSkills = [];\r\n \r\n // this.filteredSkills = this.skillList.filter(_ => _.Name.toLowerCase().includes(searchString.toLowerCase()))\r\n this.skillList.forEach((v) => {\r\n // if (this.filteredSkills.findIndex(x => x.Name == v.Name) === -1 && v.Name.toLowerCase().indexOf(searchString) > -1) {\r\n // this.filteredSkills.push({ Id: v.Id, Name: v.Name });\r\n // }\r\n if (this.filteredSkills.findIndex(x => x.Name == v.Name) === -1 && v.Name.toLowerCase().indexOf(searchString) > -1) {\r\n this.filteredSkills.push({ Id: v.Id, Name: v.Name });\r\n }\r\n });\r\n }\r\n else {\r\n // this.filteredSkills=[];\r\n // this.pushFilteredManagersIds();\r\n }\r\n }\r\n cliearField(fieldName) {\r\n if (fieldName == 'selectedSkillIds') {\r\n this.skillsearchForm.controls.selectedSkillIds.setValue('');\r\n this.filteredSkills = [];\r\n }\r\n \r\n }\r\n\r\n\r\n searchData() {\r\n this.isDisplay = true;\r\n this.paginator.firstPage();\r\n \r\n \r\n this.associateSkillSearchData = [];\r\n this.selectedAssociateSkillSearch = [];\r\n this.totalRecords = 0;\r\n this.first = 0;\r\n \r\n \r\n let search_skill_object: AssociateSkillSearch = new AssociateSkillSearch();\r\n search_skill_object.selectedSkillIds = this.skillsearchForm.value.selectedSkillIds;\r\n this.isDisplay = true;\r\n \r\n //need to change in API start\r\n search_skill_object.IsPrimary = (this.skillsearchForm.value.IsPrimary === null ? false : this.skillsearchForm.value.IsPrimary) ;\r\n search_skill_object.IsSecondary = (this.skillsearchForm.value.IsSecondary === null ? false : this.skillsearchForm.value.IsSecondary) ;\r\n search_skill_object.IsBillable = (this.skillsearchForm.value.IsBillable === null ? false : this.skillsearchForm.value.IsBillable) ;\r\n search_skill_object.IsnonBillable = (this.skillsearchForm.value.IsnonBillable === null ? false : this.skillsearchForm.value.IsnonBillable) ;\r\n search_skill_object.IsCritical = (this.skillsearchForm.value.IsCritical === null ? false : this.skillsearchForm.value.IsCritical) ;\r\n search_skill_object.IsnonCritical = (this.skillsearchForm.value.IsnonCritical === null ? false : this.skillsearchForm.value.IsnonCritical) ;\r\n search_skill_object.SkillIds = this.skillsearchForm.value.selectedSkillIds.Id\r\n // if (this.selectedSkillIds != null && this.selectedSkillIds.length > 0) {\r\n // search_skill_object.SkillIds = this.selectedSkillIds.map(p => p.Id).join(\",\");\r\n \r\n // }\r\n // else {\r\n // search_skill_object.SkillIds = null;\r\n \r\n // return false;\r\n \r\n\r\n \r\n // } \r\n \r\n this.isLoad = true;\r\n this.associateSkillSearchService.GetEmployeeDetailsBySkill(search_skill_object).subscribe(\r\n (res: AssociateSkillSearch[]) => {\r\n this.isLoad = false;\r\n this.associateSkillSearchData = res;\r\n \r\n if (!this.associateSkillSearchData || this.associateSkillSearchData.length <= 0) {\r\n\r\n this.snackBar.open('No records found', '', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() =>\r\n this.formGroupDirective.resetForm(), 0)\r\n // this.messageService.add({ severity: 'info', summary: 'Information Message', detail: 'No records found' })\r\n this.gridMessage = \"No records found\";\r\n this.clear();\r\n }\r\n else\r\n this.gridMessage = \"\";\r\n this.totalRecords = this.associateSkillSearchData.length;\r\n this.dataSource = new MatTableDataSource(this.associateSkillSearchData);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n },\r\n error => {\r\n this.snackBar.open('Unable to get Employees', '', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() =>\r\n this.formGroupDirective.resetForm(), 0)\r\n // this.messageService.add({ severity: 'error', summary: 'Error Message', detail: 'Unable to get Employees' })\r\n }\r\n \r\n )\r\n // this.skilldata.paginator = this.paginator;\r\n \r\n }\r\n \r\n getRows(event): void {\r\n this.recordsPerPage = event.rows;\r\n }\r\n\r\n displayFn(skill: any) {\r\n return skill && skill ? skill.Name : '';\r\n }\r\n \r\n clear() {\r\n this.isLoad = false;\r\n this.isSearch = false;\r\n this.skillsearchForm.reset();\r\n this.associateSkillSearchObject = new AssociateSkillSearch();\r\n this.dataSource = new MatTableDataSource([]);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n // this.dataSource.paginator = this.paginator;\r\n // this.dataSource.sort = this.sort;\r\n \r\n \r\n this.selectedAssociateSkillSearch = [];\r\n this.associateSkillSearchObject.selectedSkillIds = [];\r\n this.associateSkillSearchData = [];\r\n this.totalRecords = 0;\r\n this.gridMessage = \"No records found\";\r\n this.isDisplay = false;\r\n // this.search(event);\r\n this.filteredSkills = [];\r\n }\r\n \r\n \r\n \r\n \r\n \r\n //Tag list\r\n addToTagList(): void {\r\n //check the grid selection and open the popup.\r\n this.selectedTagListData = new TagAssociateList();\r\n if (this.selectedAssociateSkillSearch && this.selectedAssociateSkillSearch.length > 0) {\r\n \r\n this.isTagButton = false;\r\n this.displayTagList = true;\r\n this.selectedTagListData = new TagAssociateList();\r\n }\r\n else {\r\n this.snackBar.open('Select assoiciates to tag', '', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() =>\r\n this.formGroupDirective.resetForm(), 0)\r\n // this.messageService.add({ severity: 'warn', summary: 'Warn Message', detail: 'Select assoiciates to tag' });\r\n }\r\n }\r\n \r\n viewTagList(): void {\r\n //navigate to Tag list screen\r\n this.route.navigate(['/project/tagAssociate']);\r\n }\r\n \r\n tagListOnChange(event): void {\r\n this.selectedTagListData.TagListId = event.value;\r\n let names = this.tagListNames.filter(p => p.value == event.value);\r\n if (names.length > 0) {\r\n this.selectedTagListData.TagListName = names[0].label;\r\n }\r\n }\r\n \r\n \r\n saveToTagList(): void {\r\n this.tagListDetails = [];\r\n if (this.selectedAssociateSkillSearch && this.selectedAssociateSkillSearch.length > 0) {\r\n this.selectedAssociateSkillSearch.forEach(element => {\r\n this.tagListData = new TagAssociateList();\r\n this.tagListData.EmployeeId = element.EmployeeId;\r\n this.tagListData.ManagerId = this.loginUserId;\r\n this.tagListData.ProjectId = element.ProjectId;\r\n if (this.selectedTagListData.TagListId > 0) {\r\n this.tagListData.TagListId = this.selectedTagListData.TagListId;\r\n this.tagListData.TagListName = this.selectedTagListData.TagListName;\r\n }\r\n else if (this.selectedTagListData.TagListName) {\r\n this.tagListData.TagListName = this.selectedTagListData.TagListName;\r\n this.tagListData.TagListId = 0;\r\n }\r\n else {\r\n // this.messageService.add({ severity: 'warn', summary: 'Warn Message', detail: 'Select or enter Tagged listname' });\r\n return;\r\n }\r\n this.tagListDetails.push(this.tagListData);\r\n });\r\n \r\n //update\r\n if (this.selectedTagListData.TagListId > 0) {\r\n this.tagAssociateService.UpdateTagList(this.tagListDetails).subscribe(((res: number) => {\r\n if (res == 1) {\r\n this.cleartheTagListData();\r\n // this.messageService.add({ severity: 'success', summary: 'Success Message', detail: 'Tag list updated successfully.' })\r\n this.searchData();\r\n this.getTagListNames();\r\n }\r\n else if (res == -1) {\r\n // this.messageService.add({ severity: 'error', summary: 'Error Message', detail: 'Associates already assigned to the selected taglist' })\r\n }\r\n }),\r\n error => {\r\n // this.messageService.add({ severity: 'error', summary: 'Error Message', detail: 'Unable to save the Tag list' })\r\n });\r\n }\r\n \r\n //create\r\n else if (this.selectedTagListData.TagListName) {\r\n this.tagAssociateService.CreateTagList(this.tagListDetails).subscribe(((res: number) => {\r\n if (res == 1) {\r\n this.cleartheTagListData();\r\n // this.messageService.add({ severity: 'success', summary: 'Success Message', detail: 'Tag list created successfully.' })\r\n this.searchData();\r\n this.getTagListNames();\r\n }\r\n else if (res == -1)\r\n console.log('Tag list name already exists')\r\n // this.messageService.add({ severity: 'error', summary: 'Error Message', detail: 'Tag list name already exists for respective Reporting manager/delivery head.' })\r\n }),\r\n error => {\r\n // this.messageService.add({ severity: 'error', summary: 'Error Message', detail: 'Unable to save the Tag list' })\r\n });\r\n }\r\n }\r\n }\r\n \r\n CancelTagList(): void {\r\n this.displayTagList = false;\r\n this.tagListDetails = [];\r\n this.cleartheTagListData();\r\n }\r\n \r\n getTagListNames(): void {\r\n this.tagListNames = [];\r\n this.tagListNames.push({ label: \"Select list\", value: 0 });\r\n this.tagAssociateService.GetTagListNamesByManagerId(this.loginUserId).subscribe((res: TagAssociateList[]) => {\r\n res.forEach(element => {\r\n this.tagListNames.push({ label: element.TagListName, value: element.Id })\r\n })\r\n },\r\n error => {\r\n // this.messageService.add({ severity: 'error', summary: 'Error Message', detail: 'Unable to get Tag list names' })\r\n });\r\n }\r\n \r\n cleartheTagListData() {\r\n this.displayTagList = false;\r\n this.selectedTagListData = new TagAssociateList();\r\n this.tagListDetails = [];\r\n this.tagListData = new TagAssociateList();\r\n }\r\n \r\n onRadioClick(): void {\r\n if (this.isNewTagList == \"1\") {\r\n this.selectedTagListData.TagListName = \"\";\r\n }\r\n else {\r\n this.selectedTagListData = new TagAssociateList();\r\n }\r\n }\r\n selectedChangeIds(frmCntrl, item) {\r\n if (frmCntrl == 'ddlProgramManager') {\r\n this.selectedChangeSkill = item;\r\n }\r\n \r\n }\r\n onChange(id: number, isChecked: boolean) {\r\n if (isChecked) {\r\n this.Ids.push(id);\r\n } else {\r\n const index = this.Ids.indexOf(id);\r\n if (index > -1) {\r\n this.Ids.splice(index, 1);\r\n }\r\n }\r\n \r\n }\r\n openSkillDialog(empID, skillType): void {\r\n this.ViewAllSkills(empID, skillType);\r\n // this.dataSource.paginator = this.paginator;\r\n\t\t\t// this.dataSource.sort = this.sort;\r\n \r\n }\r\n \r\n \r\n ViewAllSkills(empID, skillType: string): void {\r\n let index_1 = 0, isPrimary = false;\r\n this.displaySkills = true;\r\n if (skillType == 'PrimarySkill') {\r\n isPrimary = true;\r\n }\r\n this.skillsData = [];\r\n this.skillservice.GetAllSkillDetails(empID).subscribe((res: SkillsData[]) => {\r\n this.skillDetailsHeader = \"Skill details of \" + res[0].EmployeeName;\r\n res.forEach((e) => {\r\n if (e.IsPrimary == isPrimary)\r\n this.skillsData[index_1++] = e;\r\n })\r\n let dialogRef;\r\n if(this.displaySkills){\r\n dialogRef = this.dialog.open(SkillDataListComponent, {\r\n \r\n width: '800px', height: '600',\r\n data: {\r\n skillsData: this.skillsData,\r\n }\r\n \r\n });\r\n }\r\n dialogRef.afterClosed().subscribe(result => {\r\n console.log('The dialog was closed');\r\n });\r\n });\r\n \r\n }\r\n\r\n openProjectHistory(EmpId: number, EmpName: string){\r\n let projectDetailsDailog = this.dialog.open(ProjectHistoryListComponent, {\r\n \r\n width: '800px',\r\n data: {\r\n EmployeeId: EmpId,\r\n EmployeeName: EmpName\r\n }\r\n\r\n });\r\n }\r\n }","\r\n \r\n \r\n \r\n filter_list Filter Associate Skill Data\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n Skill Search *\r\n \r\n \r\n \r\n \r\n {{item.Name}}\r\n \r\n \r\n\r\n \r\n Skill Name Required\r\n \r\n \r\n
\r\n \r\n
\r\n Primary\r\n Secondary\r\n Billable\r\n Non-Billable\r\n Critical\r\n Non-Critical\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 Total Records:\r\n {{totalRecords}}\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 \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 \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 \r\n \r\n \r\n \r\n \r\n \r\n
Employee Name {{element.EmployeeName}} Designation {{element.Designation}} Grade {{element.Grade}} Experience {{element.Experience}} Primary Skill\r\n {{element.PrimarySkill}}\r\n \r\n \r\n Secondary Skill\r\n {{element.SecondarySkill}}\r\n \r\n Allocation % {{element.Allocationpercentage}} Billable\r\n check\r\n close\r\n Critical\r\n check\r\n close\r\n Manager Name {{element.ManagerName}} Lead Name {{element.LeadName}} ProjectsView
\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 \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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Employee Name {{element.EmployeeName}} Designation {{element.Designation}} Grade {{element.Grade}} Experience {{element.Experience}} Primary Skill\r\n {{element.PrimarySkill}}\r\n Secondary Skill\r\n {{element.SecondarySkill}}\r\n Allocation % {{element.Allocationpercentage}} Billable{{element.IsBillable ? 'Yes' : 'No'}}\r\n Critical{{element.IsCritical ? 'Yes' : 'No'}}\r\n Manager Name {{element.ManagerName}} Lead Name {{element.LeadName}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Loading.....\r\n \r\n
\r\n
\r\n
","import { Component, OnInit, ViewChild, Inject } from '@angular/core';\r\nimport { AssociateSkillSearch } from 'src/app/modules/project-life-cycle/models/associateSkillSearch.model';\r\nimport { AssociateskillsearchService } from 'src/app/modules/project-life-cycle/services/associateskillsearch.service';\r\n// import { BooleanToStringPipe } from '../../pipes/booleantostringpipe';\r\nimport { Router } from '@angular/router';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { SkillsService } from 'src/app/modules/admin/services/skills.service';\r\nimport { SkillsData } from 'src/app/modules/master-layout/models/project-role.model';\r\nimport { TagAssociateList } from 'src/app/modules/project-life-cycle/models/tag-associate.model';\r\nimport { TagAssociateService } from 'src/app/modules/project-life-cycle/services/tag-associate.service';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { Validators, FormGroup, FormBuilder, FormGroupDirective } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\n@Component({\r\n selector: 'app-dailog-tag-list',\r\n templateUrl: './dailog-tag-list.component.html',\r\n styleUrls: ['./dailog-tag-list.component.scss']\r\n})\r\nexport class DailogTagListComponent implements OnInit {\r\n\r\n \r\n themeConfigInput = themeconfig.formfieldappearances;\r\n\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n selectedAssociateSkillSearch: AssociateSkillSearch[] = [];\r\n private selectedEmpInfo: any;\r\n displaySkills: boolean;\r\n loginUserId = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).employeeId;\r\n isNewTagList: string;\r\nalign = 'start';\r\n skillsData: SkillsData[] = [];\r\n EmployeeId: number;\r\n displayProjectDetails: boolean = false;\r\n displayTagList: boolean = false;\r\n tagListNames = [];\r\n tagListDetails: TagAssociateList[] = [];\r\n tagListData: TagAssociateList = new TagAssociateList();\r\n selectedEmployeeId: number;\r\n skillsearchForm: FormGroup;\r\n headerOfProjectDetails: string = \"\";\r\n skillDetailsHeader: string = \"\";\r\n isDisplay: boolean = false;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private snackBar: MatSnackBar,\r\n private skillservice: SkillsService,\r\n private tagAssociateService: TagAssociateService,\r\n private route: Router, private fb: FormBuilder,\r\n ) {\r\nthis.selectedAssociateSkillSearch =this.data.selectedAssociateSkillSearch;\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.skillsearchForm = this.fb.group({\r\n 'TagListId': [null, Validators.required],\r\n 'TagListName': [null, Validators.required],\r\n\r\n });\r\n this.isNewTagList = '0';\r\n this.getTagListNames();\r\n\r\n }\r\n\r\n viewTagList(): void {\r\n //navigate to Tag list screen\r\n this.route.navigate(['/project/tagAssociate']);\r\n }\r\n\r\n clientbillingRoleSelected(clientbillingroleinfo: any){\r\n this.selectedEmpInfo = clientbillingroleinfo;\r\n\r\n }\r\n saveToTagList(): void {\r\n this.tagListDetails = [];\r\n if (this.selectedAssociateSkillSearch && this.selectedAssociateSkillSearch.length > 0) {\r\n this.selectedAssociateSkillSearch.forEach(element => {\r\n\r\n this.tagListData = new TagAssociateList();\r\n this.tagListData.EmployeeId = element.EmployeeId;\r\n this.tagListData.ManagerId = this.loginUserId;\r\n this.tagListData.ProjectId = element.ProjectId;\r\n if (this.skillsearchForm.value.TagListId > 0) {\r\n this.tagListData.TagListId = this.skillsearchForm.value.TagListId;\r\n this.tagListData.TagListName = this.skillsearchForm.value.TagListName;\r\n }\r\n else if (this.skillsearchForm.value.TagListName) {\r\n this.tagListData.TagListName = this.skillsearchForm.value.TagListName;\r\n this.tagListData.TagListId = 0;\r\n }\r\n else {\r\n this.snackBar.open('Select or enter Tagged listname', '', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() => \r\n this.formGroupDirective.resetForm(), 0)\r\n return;\r\n }\r\n this.tagListDetails.push(this.tagListData);\r\n });\r\n\r\n //update\r\n if (this.skillsearchForm.value.TagListId > 0) {\r\n this.tagAssociateService.UpdateTagList(this.tagListDetails).subscribe(((res: number) => {\r\n if (res == 1) {\r\n this.cleartheTagListData();\r\n this.snackBar.open('Tag list updated successfully', '', {\r\n duration: 1000,\r\n panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() => \r\n this.formGroupDirective.resetForm(), 0)\r\n // this.searchData();\r\n this.getTagListNames();\r\n }\r\n else if (res == -1) {\r\n this.snackBar.open('Associates already assigned to the selected taglist', '', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() => \r\n this.formGroupDirective.resetForm(), 0)\r\n // this.messageService.add({ severity: 'error', summary: 'Error Message', detail: 'Associates already assigned to the selected taglist' })\r\n }\r\n }),\r\n error => {\r\n this.snackBar.open('Unable to save the Tag list', '', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() => \r\n this.formGroupDirective.resetForm(), 0)\r\n // this.messageService.add({ severity: 'error', summary: 'Error Message', detail: 'Unable to save the Tag list' })\r\n });\r\n }\r\n\r\n //create\r\n else if (this.skillsearchForm.value.TagListName) {\r\n this.tagAssociateService.CreateTagList(this.tagListDetails).subscribe(((res: number) => {\r\n if (res == 1) {\r\n this.cleartheTagListData();\r\n this.snackBar.open('Tag list created successfully.', '', {\r\n duration: 1000,\r\n panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() => \r\n this.formGroupDirective.resetForm(), 0)\r\n // this.searchData();\r\n this.getTagListNames();\r\n }\r\n else if (res == -1)\r\n this.snackBar.open('Tag list name already exists', '', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() => \r\n this.formGroupDirective.resetForm(), 0)\r\n // this.messageService.add({ severity: 'error', summary: 'Error Message', detail: 'Tag list name already exists for respective Reporting manager/delivery head.' })\r\n }),\r\n error => {\r\n this.snackBar.open('Unable to save the Tag list', '', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() => \r\n this.formGroupDirective.resetForm(), 0)\r\n // this.messageService.add({ severity: 'error', summary: 'Error Message', detail: 'Unable to save the Tag list' })\r\n });\r\n }\r\n }\r\n }\r\n\r\n CancelTagList(): void {\r\n this.displayTagList = false;\r\n this.tagListDetails = [];\r\n this.cleartheTagListData();\r\n }\r\n\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n getTagListNames(): void {\r\n this.tagListNames = [];\r\n this.tagListNames.push({ label: \"Select list\", value: 0 });\r\n this.tagAssociateService.GetTagListNamesByManagerId(this.loginUserId).subscribe((res: TagAssociateList[]) => {\r\n res.forEach(element => {\r\n this.tagListNames.push({ label: element.TagListName, value: element.Id })\r\n })\r\n },\r\n error => {\r\n this.snackBar.open('Unable to get Tag list names', '', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() =>\r\n this.formGroupDirective.resetForm(), 0)\r\n });\r\n }\r\n\r\n cleartheTagListData() {\r\n this.skillsearchForm.reset();\r\n this.displayTagList = false;\r\n // this.selectedTagListData = new TagAssociateList();\r\n this.tagListDetails = [];\r\n this.tagListData = new TagAssociateList();\r\n }\r\n\r\n onRadioClick(): void {\r\n if (this.isNewTagList == \"1\") {\r\n this.skillsearchForm.controls['TagListName'].setValue(\"\");\r\n }\r\n else {\r\n this.skillsearchForm.controls['TagListId'].setValue(0);\r\n this.skillsearchForm.controls['TagListName'].setValue(\"\");\r\n }\r\n }\r\n}\r\n\r\n","

Tag List

\r\n
\r\n \r\n New Tag List\r\n Existing Tag\r\n \r\n\r\n
\r\n
\r\n \r\n List Name*\r\n \r\n \r\n {{user.label}}\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 { Component, OnInit, Inject, ViewChild } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { ProjectsData } from '../../../models/projects.model';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { AssociateAllocationService } from 'src/app/modules/TalentMangment/services/associate-allocation.service';\r\n\r\n@Component({\r\n selector: 'app-project-history-list',\r\n templateUrl: './project-history-list.component.html',\r\n styleUrls: ['./project-history-list.component.scss']\r\n})\r\nexport class ProjectHistoryListComponent implements OnInit {\r\n\r\n dataSource = new MatTableDataSource();\r\n ProjectsData : any;\r\n empId: number;\r\n empName: string;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n displayedColumns1: string[] = [\r\n 'ProjectName',\r\n 'ClientName',\r\n 'EffectiveDate',\r\n 'ReleaseDate',\r\n 'IsBillable'\r\n ];\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data:{EmployeeId:number, EmployeeName: string}, public allocationService: AssociateAllocationService) { }\r\n\r\n ngOnInit(): void {\r\n this.empId = this.data.EmployeeId;\r\n this.empName = this.data.EmployeeName;\r\n this.allocationService.GetAllAllocationByEmployeeId(this.empId).subscribe(res => {\r\n this.ProjectsData = res['Items'];\r\n this.ProjectsData.forEach((record) => { \r\n record.IsBillable = (record.IsBillable == true) ? 'Yes' : 'No'; \r\n });\r\n this.dataSource = new MatTableDataSource(this.ProjectsData);\r\n })\r\n }\r\n\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","
\r\n
\r\n
Project Details of {{empName}}
\r\n
\r\n
\r\n close \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n Current Project\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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n
ProjectName {{element.ProjectName}} Client Name {{element.ClientName }} Effective From {{element.EffectiveDate }} Release Date {{element.ReleaseDate }} IsBillable {{element.IsBillable }}
\r\n
\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { ProjectCreationService } from '../../services/project-creation.service';\r\nimport { Subscription } from 'rxjs';\r\n// import { MessageService } from 'primeng/api';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { SowComponent } from '../sow/sow.component';\r\n\r\n@Component({\r\n selector: 'app-project',\r\n templateUrl: './project.component.html',\r\n styleUrls: ['./project.component.scss'],\r\n providers: []\r\n})\r\n\r\nexport class ProjectComponent implements OnInit {\r\n SelectedTab = 0;\r\n isNewProject = true;\r\n canSubmit = false;\r\n selectedTabSubscription: Subscription;\r\n projectIdSubscription: Subscription;\r\n subscriptionProjectState: Subscription;\r\n projectId = 0;\r\n EmpId : number;\r\n currentRole = \"\";\r\n btnLabel = \"\";\r\n canShow = true;\r\n dashboard : string;\r\n projectState: string = \"\";\r\n @ViewChild(SowComponent) sowcomponent: SowComponent;\r\n constructor(private actRoute: ActivatedRoute,private router: Router, private ProjectCreationServiceObj: ProjectCreationService,private _snackBar: MatSnackBar) { }\r\n\r\n ngOnInit() {\r\n this.ProjectCreationServiceObj.SetProjectState(null);\r\n this.actRoute.params.subscribe(params => { this.dashboard = params[\"id\"]; });\r\n this.currentRole = JSON.parse(sessionStorage['AssociatePortal_UserInformation']).roleName;\r\n this.EmpId = JSON.parse(sessionStorage['AssociatePortal_UserInformation']).employeeId;\r\n this.subscriptionProjectState = this.ProjectCreationServiceObj.GetProjectState().subscribe((state: string) => {\r\n this.projectState = state;\r\n if(this.projectState != null){\r\n if (this.currentRole == \"Program Manager\" && this.projectState == \"Drafted\") {\r\n this.canSubmit = true;\r\n this.btnLabel = \"Submit For Approval\";\r\n }\r\n else {\r\n if(this.currentRole == \"Department Head\" && this.dashboard != \"DHDashboard\")\r\n this.btnLabel = \"Save\";\r\n else\r\n this.canShow = false;\r\n }\r\n }\r\n });\r\n \r\n \r\n \r\n this.projectIdSubscription = this.ProjectCreationServiceObj.GetProjectId().subscribe(data => {\r\n if (data === 0) {\r\n this.isNewProject = true;\r\n }\r\n else {\r\n this.projectId = data;\r\n this.isNewProject = false;\r\n }\r\n });\r\n this.selectedTabSubscription = this.ProjectCreationServiceObj.GetSelectedTab().subscribe((data) => {\r\n // subscribe to observable to get selected tab by user or by system\r\n this.SelectedTab = data;\r\n })\r\n }\r\n setSelectedTab(event) {\r\n this.ProjectCreationServiceObj.SetSeletedTab(event.index);\r\n }\r\n\r\n SubmitProject() {\r\n var msg=\"\"\r\n this.ProjectCreationServiceObj.submitForApproval(this.projectId , this.currentRole, this.EmpId ).subscribe(res => {\r\n if (res > 0) {\r\n if (this.btnLabel == \"Submit For Approval\"){\r\n msg = \"Submitted for approval\"\r\n }\r\n if(this.btnLabel == \"Save\"){\r\n msg = \"Project created successfully\"\r\n }\r\n // if( this.canSubmit == true )\r\n // this.messageService.add({ severity: 'success', summary: 'Success Message', detail: 'Succesfully submitted the project' })\r\n // else\r\n // this.messageService.add({ severity: 'success', summary: 'Success Message', detail: 'Project created succesfully' })\r\n this._snackBar.open(msg, 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n \r\n setTimeout(() => \r\n {\r\n this.router.navigate(['project/dashboard']);\r\n }, 1000);\r\n \r\n }\r\n // else {\r\n // if( this.canSubmit == true )\r\n // this.messageService.add({ severity: 'error', summary: 'Error Message', detail: 'Failed to submitted the project' });\r\n // else\r\n // this.messageService.add({ severity: 'error', summary: 'Error Message', detail: 'Failed to create the project' });\r\n\r\n // }\r\n },\r\n error => {\r\n // this.messageService.add({ severity: 'error', summary: 'Error Message', detail: error.error });\r\n\r\n })\r\n }\r\n\r\n onBack() {\r\n if(this.dashboard == \"DHDashboard\" || this.dashboard == \"PMDashboard\" )\r\n this.router.navigate(['shared/dashboard']) \r\n else\r\n this.router.navigate(['project/dashboard'])\r\n }\r\n\r\n ngOnDestroy() {\r\n this.ProjectCreationServiceObj.SetSeletedTab(0);\r\n this.selectedTabSubscription.unsubscribe();\r\n this.projectIdSubscription.unsubscribe();\r\n this.subscriptionProjectState.unsubscribe();\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 { Component, OnInit, ViewChild, Inject } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport * as servicePath from '../../../../../core/service-paths';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { GenericType } from 'src/app/modules/master-layout/models/dropdowntype.model';\r\nimport { AssociateSkillSearch } from 'src/app/modules/project-life-cycle/models/associateSkillSearch.model';\r\nimport { SkillsData } from 'src/app/modules/master-layout/models/project-role.model';\r\nimport { AssociateAllocation } from 'src/app/modules/master-layout/models/associateallocation.model';\r\nimport { TagAssociateList } from 'src/app/modules/project-life-cycle/models/tag-associate.model';\r\nimport { AssociateskillsearchService } from 'src/app/modules/project-life-cycle/services/associateskillsearch.service';\r\nimport { TagAssociateService } from 'src/app/modules/project-life-cycle/services/tag-associate.service';\r\nimport { SkillsService } from 'src/app/modules/admin/services/skills.service';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { map } from 'rxjs-compat/operator/map';\r\nimport { startWith } from 'rxjs/operators';\r\nimport { FormGroup, FormBuilder, Validators, FormGroupDirective, FormControl } from '@angular/forms';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\nimport { DailogTagListComponent } from '../dailog-tag-list/dailog-tag-list.component';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\n\r\n@Component({\r\n selector: 'app-skill-data-list',\r\n templateUrl: './skill-data-list.component.html',\r\n styleUrls: ['./skill-data-list.component.scss']\r\n})\r\nexport class SkillDataListComponent implements OnInit {\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n // filteredSkills: GenericType[] = [];\r\n // associateSkillSearchData: AssociateSkillSearch[] = [];\r\n // associateSkillSearchObject: AssociateSkillSearch = new AssociateSkillSearch();\r\n selectedAssociateSkillSearch: AssociateSkillSearch[] = [];\r\n private selectedEmpInfo: any;\r\n\r\n displaySkills: boolean;\r\n loginUserId = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).employeeId;\r\n // isNewTagList = 0;\r\n isNewTagList: string;\r\nalign = 'start';\r\n // isNewTagList: number ;\r\n skillsData: SkillsData[];\r\n EmployeeId: number;\r\n displayProjectDetails: boolean = false;\r\n displayTagList: boolean = false;\r\n tagListNames = [];\r\n tagListDetails: TagAssociateList[] = [];\r\n tagListData: TagAssociateList = new TagAssociateList();\r\n selectedEmployeeId: number;\r\n skillsearchForm: FormGroup;\r\n headerOfProjectDetails: string = \"\";\r\n skillDetailsHeader: string = \"\";\r\n isDisplay: boolean = false;\r\n resources = servicePath.API.PagingConfigValue;\r\n\r\n\r\n\r\n dataSource: MatTableDataSource;\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n\r\n\r\n displayedColumns: string[] = ['SkillName','ProficiencyLevelCode',\r\n 'SkillExperience','LastUsed'];\r\n\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data:{skillsData:SkillsData[]},\r\n private skillservice: SkillsService,\r\n\r\n ) {\r\n\r\n\r\n\r\n this.skillsData = data.skillsData;\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n \r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n}","\r\n

Skill Details

\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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
SkillName {{element.SkillName}} ProficiencyLevelCode {{element.ProficiencyLevelCode }} SkillExperience {{element.SkillExperience }} LastUsed {{element.LastUsed }}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
","import { Component, Inject, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport * as moment from 'moment';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { themeconfig } from '../../../../app/../themeconfig';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n@Component({\r\n selector: 'app-remarks-teamlead',\r\n templateUrl: './remarks-teamlead.component.html',\r\n styleUrls: ['./remarks-teamlead.component.scss'],\r\n})\r\nexport class RemarksTeamleadComponent implements OnInit {\r\n public closeProjectData: FormGroup;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n constructor(\r\n private dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private _snackBar: MatSnackBar\r\n ) {\r\n this.closeProjectData = new FormGroup({\r\n rejectRemarks: new FormControl(null, Validators.required),\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.dialogRef.updateSize('50%', '40%');\r\n }\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n save() {\r\n this.dialogRef.close(this.closeProjectData.value);\r\n }\r\n\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","
\r\n

Remarks

\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n Remarks\r\n *\r\n \r\n \r\n \r\n Remarks is Required\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 { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormControl, FormGroup, FormGroupDirective, ValidationErrors, Validators } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport * as moment from 'moment';\r\nimport { Subscription } from 'rxjs';\r\nimport { CommonService } from 'src/app/core/services/common.service';\r\nimport { SOW } from 'src/app/modules/admin/models/sow.model';\r\nimport { ProjectsData } from 'src/app/modules/master-layout/models/projects.model';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { ProjectCreationService } from '../../services/project-creation.service';\r\nimport { SowService } from '../../services/sow.service';\r\nimport { ConfirmDialogComponent } from '../confirm-dialog/confirm-dialog.component';\r\nimport { DeleteDialogComponent } from '../delete-dialog/delete-dialog.component';\r\nimport { ProjectCreationComponent } from '../project-creation/project-creation.component'\r\n\r\ninterface SelectItem {\r\n value: number;\r\n label: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-sow',\r\n templateUrl: './sow.component.html',\r\n styleUrls: ['./sow.component.scss']\r\n})\r\nexport class SowComponent implements OnInit {\r\n\r\n editMode = false;\r\n sowSignedDate: any;\r\n startSOWSignedDate:any;\r\n sowlist: SelectItem[] = [];\r\n sowSignedDates: any[] = []\r\n projectsList: SelectItem[];\r\n SOWData: SOW[] = [];\r\n isSow = 1;\r\n state: string = \"\";\r\n disableAddendum: boolean = false;\r\n currentRole = \"\";\r\n projectId: any;\r\n projectIdSubscription: Subscription;\r\n subscriptionProjectState: Subscription;\r\n formSubmitted = false;\r\n AddendumformSubmitted = false;\r\n AddendumData: any[] = [];\r\n\r\n btnLabel = \"Add\";\r\n CancelBtnLabelSOW = \"Clear\";\r\n CancelBtnLabelAddendum = \"Clear\";\r\n addButton = \"Add\";\r\n\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n\r\n addSOW: FormGroup;\r\n addAddendum: FormGroup;\r\n\r\n displayedColumnsSOW: string[] = ['SOWId', 'SOWFileName', 'SOWSignedDate', 'Edit', 'Delete'];\r\n displayedColumnsAddendum: string[] = ['AddendumNo', 'AddendumDate', 'RecipientName', 'Note', 'Edit'];\r\n\r\n dataSourceSOW: MatTableDataSource;\r\n dataSourceAddendum: MatTableDataSource;\r\n\r\n @ViewChild(MatSort, { static: false }) sort: MatSort;\r\n @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator;\r\n\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n startdate: any;\r\n\r\n\r\n\r\n constructor(private _sowService: SowService,\r\n private _commonService: CommonService,\r\n private _projectCreationService: ProjectCreationService,\r\n private _snackBar: MatSnackBar,\r\n public navService: NavService,\r\n public dialog: MatDialog,) {\r\n\r\n this.navService.changeSearchBoxData('');\r\n\r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n this.applyFilter(responseData);\r\n });\r\n\r\n }\r\n \r\n ngOnInit(): void {\r\n \r\n this.currentRole = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).roleName;\r\n this.CreateSowForm();\r\n this.CreateAddendumForm();\r\n this.projectIdSubscription = this._projectCreationService.GetProjectId().subscribe(data => {\r\n this.projectId = data;\r\n if (this.projectId > 0) {\r\n this.GetSowByProjectId(this.projectId);\r\n this.GetProjectsList();\r\n }\r\n });\r\n this.btnLabel = \"Add\";\r\n this.GetProjectsList();\r\n this.disableAddendumOption();\r\n }\r\n\r\n CreateSowForm() {\r\n //to initialize SOW form\r\n this.addSOW = new FormGroup({\r\n SOW: new FormControl(true),\r\n ProjectId: new FormControl(null, [Validators.required]),\r\n SOWId: new FormControl(null, [Validators.required,\r\n Validators.maxLength(50)]),\r\n SOWSignedDate: new FormControl(null, [Validators.required, this.ValidationDateSOW.bind(this)]),\r\n SOWFileName: new FormControl(null, [Validators.required,\r\n Validators.maxLength(50)]),\r\n RoleName: new FormControl(null),\r\n Id: new FormControl(null)\r\n });\r\n if (this.projectId > 0) {\r\n this.addSOW.patchValue({\r\n ProjectId: this.projectId\r\n });\r\n }\r\n if (this.currentRole) {\r\n this.addSOW.patchValue({\r\n RoleName: this.currentRole\r\n });\r\n }\r\n }\r\n\r\n CreateAddendumForm() {\r\n //to initialize addendum form\r\n this.addAddendum = new FormGroup({\r\n Addendum: new FormControl(true),\r\n ProjectId: new FormControl(null),\r\n SOWId: new FormControl(null),\r\n AddendumNo: new FormControl(null, [\r\n Validators.required,\r\n //Validators.pattern(\"^[0-9]*$\")\r\n ]),\r\n RecipientName: new FormControl(null, [\r\n Validators.required,\r\n Validators.pattern(\"[a-zA-Z ]*$\")\r\n ]),\r\n Note: new FormControl(null, [Validators.required],),\r\n AddendumDate: new FormControl(null, [Validators.required]),\r\n Id: new FormControl(null, [Validators.required]),\r\n RoleName: new FormControl(null),\r\n AddendumId: new FormControl(null)\r\n });\r\n if (this.projectId > 0) {\r\n this.addAddendum.patchValue({\r\n ProjectId: this.projectId\r\n });\r\n }\r\n }\r\n\r\n clearInput(evt: any, fieldName): void {\r\n if(fieldName=='AddendumDate'){\r\n evt.stopPropagation();\r\n this.addAddendum.get('AddendumDate').reset();\r\n }\r\n if(fieldName=='SOWSignedDate'){\r\n evt.stopPropagation();\r\n this.addSOW.get('SOWSignedDate').reset();\r\n }\r\n }\r\n\r\n GetProjectsList(): void {\r\n //to get the list of projects\r\n this.projectsList = [];\r\n this._projectCreationService.GetProjectDetailsbyID(this.projectId).subscribe(\r\n (res: ProjectsData) => {\r\n this.startdate = res.ActualStartDate;\r\n this.projectsList.push({\r\n label: res.ProjectName,\r\n value: res.ProjectId\r\n });\r\n\r\n if (this.projectId > 0) {\r\n this.addSOW.patchValue({\r\n ProjectId: this.projectId\r\n });\r\n this.addAddendum.patchValue({\r\n ProjectId: this.projectId\r\n });\r\n }\r\n }\r\n ),\r\n error => {\r\n };\r\n }\r\n\r\n disableAddendumOption(): void {\r\n //to disable Addendum radio button\r\n this.subscriptionProjectState = this._projectCreationService.GetProjectState().subscribe((state: string) => {\r\n this.state = state;\r\n if (this.state == \"Drafted\" || this.state == \"SubmittedForApproval\")\r\n this.disableAddendum = true;\r\n else if (this.state == \"Created\") {\r\n if (this.SOWData.length == 0) {\r\n this.disableAddendum = true;\r\n }\r\n }\r\n else\r\n this.disableAddendum = false;\r\n });\r\n }\r\n\r\n\r\n GetSowByProjectId(currentProjectId: number) {\r\n //to get SOW based on ProjectID\r\n this.editMode = false;\r\n if (currentProjectId != null) {\r\n this.sowlist = [];\r\n this._sowService.GetSowByProjectId(currentProjectId).subscribe(\r\n (response: any[]) => {\r\n this.SOWData = response;\r\n this.SOWData.forEach((d: any) => {\r\n this.sowlist.push({ label: d.SOWId, value: d.Id });\r\n this.sowSignedDates.push({ label: d.Id, value: d.SOWSignedDate });\r\n d.SOWSignedDate = moment(d.SOWSignedDate).format(\"YYYY-MM-DD\");\r\n });\r\n this.ChangeFormat(this.SOWData);\r\n this.EnableDisableAddendum();\r\n this.dataSourceSOW = new MatTableDataSource(this.SOWData);\r\n this.dataSourceSOW.paginator = this.paginator\r\n this.dataSourceSOW.sort = this.sort;\r\n this.dataSourceSOW.sortingDataAccessor = (data, header) => data[header].toLowerCase();\r\n }\r\n\r\n );\r\n }\r\n }\r\n\r\n GetSows(event) {\r\n //to get SOW's by Project Id\r\n this.GetSowByProjectId(event.value);\r\n }\r\n\r\n ChangeFormat(SowData): void {\r\n //to change date format\r\n let i;\r\n if (this.isSow == 1)\r\n for (i = 0; i < SowData.length; i++) {\r\n if (SowData[i].SOWSignedDate != null)\r\n SowData[i].SOWSignedDate = moment(SowData[i].SOWSignedDate).format(\r\n \"MM/DD/YYYY\"\r\n );\r\n }\r\n else\r\n for (i = 0; i < SowData.length; i++) {\r\n if (SowData[i].AddendumDate != null)\r\n SowData[i].AddendumDate = moment(SowData[i].AddendumDate).format(\r\n \"MM/DD/YYYY\"\r\n );\r\n }\r\n }\r\n\r\n EnableDisableAddendum() {\r\n //Enable Addendum when SOWs are >= 1\r\n if (this.state == \"Created\") {\r\n if (this.SOWData.length == 0)\r\n this.disableAddendum = true;\r\n else\r\n this.disableAddendum = false;\r\n }\r\n }\r\n\r\n canEnableSowId() {\r\n //to make SOWID editable or not\r\n if ((this.state == \"Drafted\" || this.state == \"SubmittedForApproval\") && this.currentRole == 'Department Head')\r\n return false;\r\n if ((this.state == \"Drafted\") && this.currentRole != 'Department Head')\r\n return false;\r\n return true;\r\n }\r\n\r\n ValidationDateSOW(control: FormControl) : ValidationErrors | null{\r\n const selection: any = control.value;\r\n if (Date.parse(moment(selection).format(\"DD-MM-YYYY\")) < Date.parse(moment(this.startdate).format(\"DD-MM-YYYY\"))) {\r\n return { ValidationDateSOW: true };\r\n }\r\n return null;\r\n }\r\n\r\n setSOWDateDynamic(){\r\n const selection: any = this.addSOW.controls.SOWSignedDate.value;\r\n if (Date.parse(moment(selection).format(\"DD-MM-YYYY\")) < Date.parse(moment(this.startdate).format(\"DD-MM-YYYY\"))) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n AddSOW(): any {\r\n //invokes when add button is clicked in SOW form\r\n this.formSubmitted = true;\r\n this.setSOWRequiredValidations('SOWId', this.addSOW);\r\n this.setSOWRequiredValidations('SOWSignedDate', this.addSOW);\r\n this.setSOWRequiredValidations('SOWFileName', this.addSOW);\r\n if (this.editMode == false) {\r\n this.addSOW.value.SOWSignedDate = moment(\r\n this.addSOW.value.SOWSignedDate\r\n ).format(\"YYYY-MM-DD\");\r\n if (this.addSOW.valid == true && this.isSow == 1) {\r\n this.saveSOW();\r\n }\r\n }\r\n else {\r\n // edit was clicked\r\n this.addSOW.value.SOWSignedDate = moment(\r\n this.addSOW.value.SOWSignedDate\r\n ).format(\"YYYY-MM-DD\");\r\n if (this.addSOW.valid == true && this.isSow == 1) {\r\n this.updateSOW();\r\n }\r\n\r\n }\r\n }\r\n\r\n saveSOW() {\r\n //to save SOW\r\n let proId = this.addSOW.value.ProjectId;\r\n\r\n if (this.addSOW.value.Id == null) {\r\n this.addSOW.value.Id = 0;\r\n }\r\n this._sowService.SaveSOW(this.addSOW.value).subscribe(res => {\r\n if (res == 1) {\r\n this.GetSowByProjectId(proId);\r\n this.EnableDisableAddendum();\r\n this._snackBar.open('SOW saved successfully.', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.ResetSow();\r\n }\r\n else if (res == -1) {\r\n this._snackBar.open('SOW already exist', 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n }\r\n else if (res == 2627) {\r\n this._snackBar.open('SOW already exist', 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n else {\r\n this._snackBar.open('Unable to save SOW.', 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n error => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n };\r\n });\r\n }\r\n\r\n updateSOW() {\r\n //to update SOW\r\n let proId = this.addSOW.value.ProjectId;\r\n this.addSOW.value.RoleName = this.currentRole;\r\n this._sowService.UpdateSOWDetails(\r\n this.addSOW.value\r\n ).subscribe(res => {\r\n if (res == 1) {\r\n this.sowSignedDates=[];\r\n this.GetSowByProjectId(proId);\r\n\r\n this._snackBar.open('SOW updated successfully.', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.ResetSow();\r\n }\r\n else if (res == -1) {\r\n this._snackBar.open('SOW already exist', 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n else if (res == 2627) {\r\n this._snackBar.open('SOW already exist', 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n else {\r\n this._snackBar.open('Unable to update SOW.', 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n error => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n };\r\n });\r\n // this.ResetSow();\r\n }\r\n\r\n setSOWRequiredValidations(sowFormControl: string, newSOWDetails: FormGroup) {\r\n newSOWDetails.controls[sowFormControl].setValidators([Validators.required])\r\n newSOWDetails.controls[sowFormControl].updateValueAndValidity();\r\n if (sowFormControl === 'RecipientName') {\r\n newSOWDetails.controls[sowFormControl].setValidators([Validators.required, Validators.pattern(\"[a-zA-Z ]*$\")])\r\n }\r\n else if (sowFormControl === 'SOWSignedDate'){\r\n if (this.setSOWDateDynamic()){\r\n newSOWDetails.controls[sowFormControl].setErrors({invalidNumber:true});\r\n }\r\n }\r\n }\r\n\r\n\r\n EditSOW(SowObj): void {\r\n //to edit SOW details\r\n this.editMode = true;\r\n\r\n if (this.isSow == 1) {\r\n this.addButton = \"Update\";\r\n this.CancelBtnLabelSOW = \"Cancel\";\r\n }\r\n else {\r\n this.btnLabel = \"Update\";\r\n this.CancelBtnLabelAddendum = \"Cancel\";\r\n }\r\n if (this.isSow == 1) {\r\n // edit sow\r\n this._sowService.GetSowDetails(\r\n this.projectId,\r\n SowObj.Id,\r\n this.currentRole\r\n ).subscribe((res: any) => {\r\n this.PopulateSowForm(res);\r\n });\r\n } else {\r\n // edit addendum\r\n this._sowService.GetAddendumDetailsById(\r\n this.projectId,\r\n SowObj.AddendumId,\r\n this.currentRole\r\n ).subscribe(res => {\r\n this.PopulateAddendum(res);\r\n });\r\n }\r\n }\r\n\r\n cancelDialog() {\r\n let messageInfo: string;\r\n if (this.editMode) {\r\n messageInfo = 'Do you want to cancel?';\r\n }\r\n else {\r\n messageInfo = 'Do you want to clear?';\r\n }\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n data: {\r\n message: messageInfo,\r\n }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n this.ResetSow();\r\n }\r\n });\r\n }\r\n\r\n\r\n deleteDialog(rowData) {\r\n // method to open delete dialog\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n data: { message: \"Do you want to delete SOW?\" }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result)\r\n this.deleteSOW(rowData);\r\n });\r\n\r\n }\r\n\r\n\r\n deleteSOW(SOW) {\r\n //to delete SOW\r\n this._sowService.DeleteSow(SOW.Id).subscribe((res:any) => {\r\n console.log(res)\r\n if (res[\"IsSuccessful\"]) {\r\n this.GetSowByProjectId(this.projectId);\r\n // this.ResetSow();\r\n this._snackBar.open(res[\"Message\"], 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n else{\r\n this._snackBar.open(res[\"Message\"], 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n }\r\n );\r\n }\r\n\r\n PopulateSowForm(res) {\r\n //to populate SOW form\r\n this.addSOW.patchValue({\r\n SOW: true,\r\n ProjectId: res.ProjectId,\r\n SOWId: res.SOWId,\r\n SOWSignedDate:\r\n res.SOWSignedDate != null\r\n ? new Date(moment(res.SOWSignedDate).format(\"MM/DD/YYYY\"))\r\n : null,\r\n SOWFileName: res.SOWFileName,\r\n Id: res.Id,\r\n RoleName: this.currentRole\r\n });\r\n }\r\n\r\n\r\n ResetSow() {\r\n //to Reset Sow\r\n this.editMode = false;\r\n this.addButton = \"Add\";\r\n this.CancelBtnLabelSOW = \"Clear\";\r\n this.addSOW.get('SOWId').enable();\r\n this.formSubmitted = false;\r\n this.CreateSowForm();\r\n this.dynamicSOWValidations('SOWId', this.addSOW);\r\n this.dynamicSOWValidations('SOWSignedDate', this.addSOW);\r\n this.dynamicSOWValidations('SOWFileName', this.addSOW);\r\n }\r\n\r\n dynamicSOWValidations(sowControl: string, newFormSOWValidate: FormGroup) {\r\n newFormSOWValidate.controls[sowControl].setErrors(null);\r\n newFormSOWValidate.controls[sowControl].clearValidators();\r\n newFormSOWValidate.controls[sowControl].updateValueAndValidity();\r\n }\r\n\r\n GetLabelOfSow(id: number): string {\r\n //to get SOWs\r\n var i, label;\r\n for (i = 0; i < this.sowlist.length; i++) {\r\n if (id == this.sowlist[i].value) {\r\n return this.sowlist[i].label;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n GetSowSignedDate(id) {\r\n var i;\r\n for (i = 0; i < this.sowSignedDates.length; i++) {\r\n if (id == this.sowSignedDates[i].label) {\r\n return this.sowSignedDates[i].value;\r\n }\r\n }\r\n }\r\n\r\n GetAddendumsBySOWId(event): void {\r\n this.dynamicSOWValidations('Note', this.addAddendum);\r\n this.dynamicSOWValidations('AddendumNo', this.addAddendum);\r\n this.dynamicSOWValidations('RecipientName', this.addAddendum);\r\n this.dynamicSOWValidations('AddendumDate', this.addAddendum);\r\n this.addAddendum.controls.Note.setValue('')\r\n this.addAddendum.controls.AddendumNo.setValue('')\r\n this.addAddendum.controls.RecipientName.setValue('')\r\n this.addAddendum.controls.AddendumDate.setValue('')\r\n //to get SOW based on SOWID\r\n this.sowSignedDate = this.GetSowSignedDate(event.value)\r\n this._sowService.GetAddendumsBySOWId(event.value, this.projectId).subscribe(\r\n (res: any[]) => {\r\n this.AddendumData = res;\r\n this.ChangeFormat(this.AddendumData);\r\n this.dataSourceAddendum = new MatTableDataSource(this.AddendumData);\r\n this.dataSourceAddendum.paginator = this.paginator;\r\n this.dataSourceAddendum.sort = this.sort;\r\n this.dataSourceAddendum.sortingDataAccessor = (data, header) => data[header].toLowerCase();\r\n\r\n }\r\n );\r\n }\r\n\r\n AddAddendum() {\r\n //invokes when add button in clicked in Addendum form\r\n this.AddendumformSubmitted = true;\r\n this.setSOWRequiredValidations('Note', this.addAddendum);\r\n this.setSOWRequiredValidations('AddendumNo', this.addAddendum);\r\n this.setSOWRequiredValidations('RecipientName', this.addAddendum);\r\n this.setSOWRequiredValidations('AddendumDate', this.addAddendum);\r\n this.setSOWRequiredValidations('Id', this.addAddendum);\r\n if (this.isSow == 0 && this.editMode == false && this.addAddendum.valid) {\r\n this.saveAddendum();\r\n }\r\n else if (this.isSow == 0) {\r\n // edit is clicked\r\n console.log(\"Update\")\r\n this.addAddendum.value.RoleName = this.currentRole;\r\n this.addAddendum.value.SOWId = this.GetLabelOfSow(this.addAddendum.value.Id);\r\n this.addAddendum.value.AddendumDate = moment(this.addAddendum.value.AddendumDate).format(\"YYYY-MM-DD\");\r\n if (this.addAddendum.valid == true) {\r\n this.updateAddendum();\r\n }\r\n }\r\n }\r\n\r\n saveAddendum() {\r\n //to save Addendum\r\n this.addAddendum.value.RoleName = this.currentRole;\r\n this.addAddendum.value.ProjectId = this.projectId;\r\n this.addAddendum.value.SOWId = this.GetLabelOfSow(\r\n this.addAddendum.value.Id\r\n );\r\n if (this.addAddendum.value.AddendumId == null) {\r\n this.addAddendum.value.AddendumId = 0;\r\n }\r\n let Id = this.addAddendum.value.Id;\r\n this.addAddendum.value.AddendumDate = moment(\r\n this.addAddendum.value.AddendumDate\r\n ).format(\"YYYY-MM-DD\");\r\n if (this.addAddendum.valid == true) {\r\n this._sowService.CreateAddendum(this.addAddendum.value).subscribe(\r\n res => {\r\n if (res == true) {\r\n this.GetAddendumsBySOWId({ value: Id });\r\n this._snackBar.open('Addendum saved successfully.', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //this.ResetAddendum();\r\n }\r\n this.ResetAddendum();\r\n },\r\n error => {\r\n var sMessage =\"Addendum No. Already Exists\";\r\n var sfMsg =\"Unable to update Addendum.\";\r\n if(error.error.text==sMessage)\r\n {\r\n sfMsg = error.error.text;\r\n\r\n }\r\n this._snackBar.open(sfMsg, 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n // this.ResetAddendum();\r\n }\r\n }\r\n\r\n updateAddendum() {\r\n //to update Addendum\r\n let duplicateaddno=false\r\n let Id = this.addAddendum.value.Id;\r\n let addendumid = this.addAddendum.value.AddendumId\r\n\r\n \r\n this.AddendumData.forEach(element => {\r\n if(element.AddendumId!=addendumid && element.AddendumNo==this.addAddendum.value.AddendumNo){\r\n duplicateaddno=true\r\n return; \r\n }\r\n });\r\n \r\n if(!duplicateaddno){\r\n this._sowService.UpdateAddendumDetails(\r\n this.addAddendum.value\r\n ).subscribe(\r\n res => {\r\n if (res == true) {\r\n this.GetAddendumsBySOWId({ value: Id });\r\n this._snackBar.open('Addendum updated successfully.', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n if (res == false) {\r\n this._snackBar.open('Unable to update Addendum.', 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n this.ResetAddendum();\r\n },\r\n error => {\r\n var sMessage = \"Addendum No. Already Exists\";\r\n var sfMsg = \"Unable to update Addendum.\";\r\n if (error.error.text == sMessage) {\r\n sfMsg = error.error.text;\r\n\r\n }\r\n\r\n this._snackBar.open(sfMsg, 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n else{\r\n this._snackBar.open('Addendum No. already exists', 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n // this.ResetAddendum();\r\n }\r\n\r\n PopulateAddendum(res) {\r\n //to populate addendum form\r\n this.addAddendum.patchValue({\r\n Addendum: true,\r\n ProjectId: res.ProjectId,\r\n SOWId: res.SOWId,\r\n AddendumNo: res.AddendumNo,\r\n RecipientName: res.RecipientName,\r\n Note: res.Note,\r\n AddendumDate:\r\n res.AddendumDate != null\r\n ? new Date(moment(res.AddendumDate).format(\"MM/DD/YYYY\"))\r\n : null,\r\n Id: res.Id,\r\n AddendumId: res.AddendumId,\r\n RoleName: this.currentRole\r\n });\r\n }\r\n\r\n\r\n ResetAddendum() {\r\n //to Reset Addendum\r\n this.CancelBtnLabelAddendum = \"Clear\";\r\n this.editMode = false;\r\n this.btnLabel = \"Add\";\r\n this.AddendumformSubmitted = false;\r\n this.CreateAddendumForm();\r\n this.dynamicSOWValidations('Note', this.addAddendum);\r\n this.dynamicSOWValidations('AddendumNo', this.addAddendum);\r\n this.dynamicSOWValidations('RecipientName', this.addAddendum);\r\n this.dynamicSOWValidations('AddendumDate', this.addAddendum);\r\n this.dynamicSOWValidations('Id', this.addAddendum);\r\n }\r\n\r\n cancelAddendumDialog() {\r\n let messageInfo: string;\r\n if (this.editMode) {\r\n messageInfo = 'Do you want to cancel?';\r\n }\r\n else {\r\n messageInfo = 'Do you want to clear?';\r\n }\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n data: {\r\n message: messageInfo,\r\n }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n this.ResetAddendum();\r\n }\r\n });\r\n }\r\n\r\n\r\n radioChange(event: Event) {\r\n if (this.isSow == 0) {\r\n this.dataSourceSOW = new MatTableDataSource(this.SOWData);\r\n this.dataSourceSOW.paginator = this.paginator;\r\n // this.dataSourceSOW.sort = this.sort;\r\n }\r\n else {\r\n this.dataSourceAddendum = new MatTableDataSource(this.AddendumData);\r\n this.dataSourceAddendum.paginator = this.paginator;\r\n // this.dataSourceAddendum.sort = this.sort;\r\n }\r\n\r\n }\r\n onEmpty(event : any, controlName : string){\r\n if (event.target.value.length === 0 && controlName === 'SOWId')\r\n this.addSOW.controls.SOWId.patchValue(null);\r\n \r\n else if (event.target.value.length === 0 && controlName === 'SOWFileName')\r\n this.addSOW.controls.SOWFileName.patchValue(null);\r\n \r\n else if (event.target.value.length === 0 && controlName === 'AddendumNo')\r\n this.addAddendum.controls.AddendumNo.patchValue(null);\r\n\r\n else if (event.target.value.length === 0 && controlName === 'RecipientName')\r\n this.addAddendum.controls.RecipientName.patchValue(null); \r\n \r\n else if (event.target.value.length === 0 && controlName === 'Note')\r\n this.addAddendum.controls.Note.patchValue(null); \r\n \r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n if (this.isSow == 1)\r\n this.dataSourceSOW.filter = filterValue.trim().toLowerCase();\r\n if (this.isSow == 0)\r\n this.dataSourceAddendum.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSourceSOW = new MatTableDataSource(this.SOWData);\r\n this.dataSourceSOW.paginator = this.paginator;\r\n this.dataSourceSOW.sort = this.sort;\r\n\r\n this.dataSourceAddendum = new MatTableDataSource(this.AddendumData);\r\n this.dataSourceAddendum.paginator = this.paginator;\r\n this.dataSourceAddendum.sort = this.sort;\r\n this.dataSourceSOW.sortingDataAccessor = (data, header) => data[header].toLowerCase();\r\n this.dataSourceAddendum.sortingDataAccessor = (data, header) => data[header].toLowerCase();\r\n }\r\n }\r\n\r\n\r\n}\r\n","\r\n \r\n
\r\n
\r\n \r\n SOW\r\n Addendum\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Projects\r\n \r\n {{project.label}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n SOW ID *\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n SOW ID Required\r\n \r\n
\r\n
\r\n
\r\n \r\n SOW File Name *\r\n \r\n \r\n SOW File Name Required\r\n \r\n \r\n 50 Characters allowed.\r\n \r\n \r\n
\r\n
\r\n \r\n Signed Date*\r\n \r\n \r\n close\r\n \r\n \r\n \r\n \r\n Signed Date Required\r\n \r\n \r\n Should be greater than the project start date\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 SOW Id*\r\n \r\n {{sow.label}}\r\n \r\n \r\n SOW Id Required.\r\n \r\n \r\n
\r\n
\r\n \r\n Addendum No. *\r\n \r\n \r\n Addendum Number Required\r\n \r\n \r\n
\r\n
\r\n \r\n Addendum Signed Date*\r\n \r\n \r\n close\r\n \r\n \r\n \r\n \r\n Addendum Signed Date Required\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Recipient Name *\r\n \r\n \r\n Recipient Name Required.\r\n \r\n \r\n Only characters allowed.\r\n \r\n \r\n
\r\n
\r\n \r\n Comments *\r\n \r\n \r\n Comments Required.\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 \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 \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
SOW ID {{SOW.SOWId}} SOW File Name {{SOW.SOWFileName}} Signed Date {{SOW.SOWSignedDate}} Edit \r\n edit\r\n Delete \r\n delete\r\n
No data
\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 \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 \r\n
Addendum No. {{Addendum.AddendumNo}} Addendum Signed Date {{Addendum.AddendumDate}} Recipient Name {{Addendum.RecipientName}} Comments {{Addendum.Note}} Edit \r\n edit\r\n
No data
\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 { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-view-project-teamlead',\r\n templateUrl: './view-project-teamlead.component.html',\r\n styleUrls: ['./view-project-teamlead.component.scss']\r\n})\r\nexport class ViewProjectTeamleadComponent implements OnInit {\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","\r\n\r\n\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { ProjectCreationService } from '../../services/project-creation.service';\r\nimport { ProjectsData } from '../../../master-layout/models/projects.model';\r\nimport { ClientBillingRoleService } from '../../services/client-billing-roles.service';\r\nimport * as moment from \"moment\";\r\nimport { SowService } from '../../services/sow.service';\r\nimport { SOW } from '../../../admin/models/sow.model';\r\nimport { ClientBillingRoleDetails } from '../../models/client-billing-role.model';\r\nimport { Subscription } from 'rxjs';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { DeliveryHeadService } from '../../../shared/services/delivery-head.service';\r\nimport * as servicePath from \"../../../../core/service-paths\";\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { ConfirmDialogComponent } from '../confirm-dialog/confirm-dialog.component';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\n\r\n@Component({\r\n selector: 'app-view-project',\r\n templateUrl: './view-project.component.html',\r\n styleUrls: ['./view-project.component.scss'],\r\n providers: []\r\n})\r\nexport class ViewProjectComponent implements OnInit {\r\n projectId: number;\r\n PageSize: number = 0;\r\n PageDropDown: number[] = [];\r\n resources = servicePath.API.PagingConfigValue;\r\n projectData: ProjectsData;\r\n projectStateSubscription: Subscription;\r\n projectState: string;\r\n selectedTabSubscription: Subscription;\r\n clientBillingRoleData = [];\r\n SOWData: SOW[] = [];\r\n dashboard: string;\r\n isDrafted: boolean = false;\r\n projectIdSubscription: Subscription;\r\n canApprove: boolean;\r\n EmpId: number;\r\n hideBack: boolean = false;\r\n showback: boolean = false;\r\n displayedColumnsSOW: string[] = ['SOWId', 'SOWFileName', 'SOWSignedDate'];\r\n displayedColumnsClient: string[] = ['ClientBillingRoleName', 'NoOfPositions', 'ClientBillingPercentage', 'StartDate', 'EndDate', \"Position\"];\r\n // @ViewChild('sowPaginator') sowPaginator: MatPaginator;\r\n // @ViewChild('clientPaginator') clientPaginator: MatPaginator;\r\n @ViewChild('sowPaginator', { static: false }) sowPaginator: MatPaginator;\r\n @ViewChild('clientPaginator', { static: false }) clientPaginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n dataSourceSOW = new MatTableDataSource();\r\n dataSourceClient = new MatTableDataSource();\r\n\r\n constructor(private projectCreationService: ProjectCreationService,\r\n private actRoute: ActivatedRoute, private router: Router,\r\n // private confirmationService: ConfirmationService,\r\n private clientBillingRoleService: ClientBillingRoleService,\r\n private _deliveryHeadService: DeliveryHeadService,\r\n private _snackBar: MatSnackBar,\r\n public dialog: MatDialog,\r\n // private messageService: MessageService,\r\n private SowService: SowService) {\r\n this.projectData = new ProjectsData();\r\n this.PageSize = this.resources.PageSize;\r\n this.PageDropDown = this.resources.PageDropDown;\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.dataSourceSOW.paginator = this.sowPaginator;\r\n this.dataSourceClient.paginator = this.clientPaginator;\r\n }\r\n\r\n ngOnInit() {\r\n this.EmpId = this.EmpId = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).employeeId;\r\n this.actRoute.params.subscribe(params => { this.dashboard = params[\"id\"]; });\r\n let winpath = window.location.pathname.split(\";\")[0].split(\"/\").reverse()[0];\r\n if (winpath === 'PMDashboard' || window.location.pathname === '/project/view/DHDashboard' || window.location.pathname === '/project/view/projectDashboard') {\r\n this.showback = true;\r\n }\r\n\r\n\r\n this.projectStateSubscription = this.projectCreationService.GetProjectState().subscribe(data => {\r\n this.projectState = data;\r\n });\r\n this.projectIdSubscription = this.projectCreationService.GetProjectId().subscribe(data => {\r\n this.projectId = data;\r\n });\r\n this.selectedTabSubscription = this.projectCreationService.GetSelectedTab().subscribe(data => {\r\n if (data == 3)\r\n this.hideBack = true;\r\n this.GetProjectDetails(); // we need to get refreshed data every time \r\n });\r\n\r\n if (this.dashboard == \"DHDashboard\") {\r\n this.canApprove = true;\r\n }\r\n else {\r\n this.canApprove = false;\r\n }\r\n this.dataSourceClient.paginator = this.clientPaginator;\r\n this.dataSourceSOW.paginator = this.sowPaginator;\r\n\r\n }\r\n\r\n canShowActions(cBRData: ClientBillingRoleDetails) {\r\n if ((cBRData.IsActive != undefined || cBRData.IsActive != null) && cBRData.IsActive == false) {\r\n return false;\r\n }\r\n if (cBRData.IsActive == true && cBRData.AvailablePositions == 0) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n GetProjectDetails() {\r\n if (this.projectId > 0) {\r\n this.GetProjectByID(this.projectId);\r\n this.GetClientBillingRolesByProjectId(this.projectId);\r\n this.GetSOWDetailsById(this.projectId);\r\n }\r\n }\r\n private GetProjectByID(currentProjectID: number): void {\r\n this.projectCreationService\r\n .GetProjectDetailsbyID(currentProjectID)\r\n .subscribe(\r\n (projectdata: ProjectsData) => {\r\n this.projectData = projectdata;\r\n if (this.projectData.ProjectState == \"Drafted\")\r\n this.isDrafted = true;\r\n },\r\n error => {\r\n this._snackBar.open(\"Error while getting the project details\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({\r\n // severity: \"error\",\r\n // summary: \"Error message\",\r\n // detail: \"Error while getting the project details\"\r\n // });\r\n }\r\n );\r\n }\r\n\r\n private GetClientBillingRolesByProjectId(projectId: number) {\r\n if (projectId > 0) {\r\n this.clientBillingRoleData = new Array();\r\n this.clientBillingRoleService.GetClientBillingRolesByProjectId(projectId).subscribe((res: ClientBillingRoleDetails[]) => {\r\n if (res.length > 0) {\r\n this.clientBillingRoleData = res;\r\n this.clientBillingRoleData.forEach(\r\n (d: ClientBillingRoleDetails) => {\r\n if (d.IsActive == true)\r\n d.AvailablePositions = d.NoOfPositions - d.AllocationCount;\r\n else\r\n d.AvailablePositions = 0;\r\n }\r\n );\r\n this.clientBillingRoleData.forEach((d: ClientBillingRoleDetails) => {\r\n d.StartDate = d.StartDate != null ? moment(d.StartDate).format('YYYY-MM-DD') : null;\r\n d.EndDate = d.EndDate != null ? moment(d.EndDate).format('YYYY-MM-DD') : null;\r\n });\r\n }\r\n this.dataSourceClient.data = res;\r\n this.dataSourceClient.paginator = this.clientPaginator;\r\n this.dataSourceClient.sort = this.sort;\r\n }),\r\n (error) => {\r\n\r\n };\r\n }\r\n }\r\n\r\n private GetSOWDetailsById(currentProjectId: number): void {\r\n if (currentProjectId != null) {\r\n this.SowService.GetSowByProjectId(currentProjectId).subscribe((response: any[]) => {\r\n this.SOWData = response;\r\n this.SOWData.forEach((d: SOW) => {\r\n d.SOWSignedDate = d.SOWSignedDate != null ? moment(d.SOWSignedDate).format('YYYY-MM-DD') : null;\r\n });\r\n this.dataSourceSOW.data = response;\r\n this.dataSourceSOW.paginator = this.sowPaginator;\r\n this.dataSourceSOW.sort = this.sort;\r\n });\r\n\r\n }\r\n }\r\n\r\n ShowCBR(): boolean {\r\n return this.clientBillingRoleData.length > 0;\r\n\r\n }\r\n\r\n ShowSOW(): boolean {\r\n return this.SOWData.length > 0;\r\n }\r\n\r\n onBack() {\r\n this.showback = false;\r\n if (this.dashboard == \"DHDashboard\" || this.dashboard == \"PMDashboard\")\r\n this.router.navigate(['shared/dashboard'])\r\n else\r\n this.router.navigate(['project/dashboard'])\r\n }\r\n\r\n ApproveOrRejectByDH() {\r\n this._deliveryHeadService.ApproveOrRejectByDH(this.projectData.ProjectId, \"Approve\", this.EmpId).subscribe(res => {\r\n if (res > 0) {\r\n this._snackBar.open(\"Succesfully approved the project\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n // this.messageService.add({\r\n // severity: 'success',\r\n // summary: 'Success Message',\r\n // detail: 'Succesfully approved the project'\r\n // });\r\n setTimeout(() => {\r\n this.router.navigate(['shared/dashboard'])\r\n }, 1000);\r\n\r\n\r\n }\r\n else {\r\n this._snackBar.open(\"Failed to approve the project\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({\r\n // severity: 'error',\r\n // summary: 'Failed Message',\r\n // detail: 'Failed to approve the project'\r\n // });\r\n }\r\n },\r\n error => {\r\n this._snackBar.open(\"Failed to approve the project\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n\r\n RollbackDialog() {\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n data: {\r\n message: 'Do you want Delete project details?',\r\n }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n this.Rollback();\r\n }\r\n // else\r\n // this.router.navigate([\"project/dashboard\"]);\r\n });\r\n\r\n }\r\n // this.confirmationService.confirm({\r\n // message: \"Do you want to Rollback project details?\",\r\n // header: \"Confirmation\",\r\n // icon: \"pi pi-exclamation-triangle\",\r\n // accept: () => {\r\n // this.Rollback();\r\n // },\r\n // reject: () => {\r\n // // this.router.navigate([\"project/dashboard\"]);\r\n // }\r\n // });\r\n\r\n Rollback() {\r\n this.projectCreationService\r\n .deleteProjectDetails(this.projectId)\r\n .subscribe((res: boolean) => {\r\n if (res == true) {\r\n this._snackBar.open(\"Project deleted successfully\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() => {\r\n this.router.navigate([\"project/dashboard\"]);\r\n }, 1000);\r\n } else\r\n this._snackBar.open(\"Rollback failed\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.projectIdSubscription.unsubscribe();\r\n this.selectedTabSubscription.unsubscribe();\r\n }\r\n\r\n}\r\n","
\r\n
\r\n  \r\n \r\n  \r\n
\r\n
\r\n\r\n PROJECT DETAILS\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Project Code
\r\n
: {{projectData.ProjectCode }}
\r\n
\r\n
\r\n
\r\n
\r\n
Project Name
\r\n
: {{projectData.ProjectName }}
\r\n
\r\n
\r\n
\r\n
\r\n
Project Type
\r\n
: {{projectData.ProjectTypeCode }}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Technology Area
\r\n
: {{projectData.PracticeAreaCode }}
\r\n
\r\n
\r\n
\r\n
\r\n
Client
\r\n
: {{projectData.ClientName }}
\r\n
\r\n
\r\n
\r\n
\r\n
Domain
\r\n
: {{projectData.DomainName }}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Program Manager
\r\n
: {{projectData.ManagerName }}
\r\n
\r\n
\r\n
\r\n
\r\n
Department
\r\n
: {{projectData.DepartmentCode }}
\r\n
\r\n
\r\n
\r\n
\r\n
Project State
\r\n
: {{projectData.ProjectState }}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Start Date
\r\n
: {{projectData.ActualStartDate | date: 'mediumDate'}}
\r\n
\r\n
\r\n
\r\n
\r\n
End Date
\r\n
: {{projectData.ActualEndDate | date: 'mediumDate'}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n SOW\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
\r\n SOW ID\r\n \r\n {{ element.SOWId }}\r\n \r\n SOW File Name\r\n \r\n {{ element.SOWFileName }}\r\n \r\n SOW Signed Date\r\n \r\n {{ element.SOWSignedDate }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n Client Billing Roles\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 \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 Role\r\n \r\n {{ element.ClientBillingRoleName }}\r\n \r\n Total Position(s)\r\n \r\n {{ element.NoOfPositions }}\r\n \r\n Billing %\r\n \r\n {{ element.ClientBillingPercentage }}\r\n \r\n Billing Start Date\r\n \r\n {{ element.StartDate }}\r\n \r\n Billing End Date\r\n \r\n {{ element.EndDate }}\r\n \r\n Position\r\n \r\n Closed \r\n Opened \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
","import { GenericType } from \"../../master-layout/models/dropdowntype.model\";\r\n//import { GenericType } from '../models/index'\r\n\r\nexport class Employee {\r\n public EmployeeId: number;\r\n public ManagerId: number;\r\n public ProjectId: number;\r\n public ReportingManagerId: number;\r\n public LeadId: number;\r\n public ProgramManager: GenericType;\r\n public ReportingManager: GenericType;\r\n public Lead: GenericType;\r\n public LeadName: string;\r\n public ReportingManagerName: string;\r\n public ProgramManagerName: string;\r\n public EffectiveDate:string;\r\n}\r\n\r\nexport class DepartmentAssociates {\r\n public EmployeeId: number;\r\n public AssociateName: string;\r\n public DepartmentId: number;\r\n public EmployeeName: string;\r\n}\r\n","export class AssociateSkillSearch {\r\n IsBillable: boolean;\r\n IsCritical: boolean;\r\n IsnonBillable: boolean;\r\n IsnonCritical: boolean;\r\n IsPrimary: boolean;\r\n IsSecondary: boolean;\r\n\r\n SkillID:number;\r\n SkillIds:string; \r\n selectedSkillIds?:Skill[];\r\n\r\n EmployeeId: number;\r\n Experience: number;\r\n ProjectId: number;\r\n\r\n Designation: string;\r\n EmployeeName: string;\r\n Grade: string;\r\n LeadName: string;\r\n PrimarySkill: string;\r\n ProjectName: string;\r\n ManagerName: string;\r\n SecondarySkill: string;\r\n Allocationpercentage:number;\r\n}\r\n\r\nexport class Skill{\r\n Id:string;\r\n value:string\r\n}\r\n","export class ClientBillingRoleDetails {\r\n ClientBillingRoleId: number;\r\n // ClientBillingRoleCode: string;\r\n ClientBillingRoleName: string;\r\n ProjectId: number;\r\n ProjectName: string;\r\n NoOfPositions: number;\r\n StartDate: string;\r\n EndDate: string;\r\n AllocatedPositions: number;\r\n AvailablePositions: number;\r\n ClientBillingPercentage : number;\r\n Percentage : number;\r\n AllocationCount : number;\r\n IsActive : boolean;\r\n}\r\nexport class ClientBillingRole {\r\n ClientBillingRoleId: number;\r\n ClientBillingRoleCode: string;\r\n ClientBillingRoleName: string;\r\n ClientId: number;\r\n ClientName:string; \r\n \r\n}","import { GenericType } from \"../../master-layout/models/dropdowntype.model\";\r\n\r\nexport class ProjectDetails {\r\n ProjectId: number;\r\n ProjectCode: string;\r\n ProjectName: string;\r\n ProjectType:number;\r\n}\r\nexport class ProjectsData extends ProjectDetails {\r\n\r\n ActualStartDate: string;\r\n ActualEndDate: string;\r\n PlannedEndDate: string;\r\n PlannedStartDate: string;\r\n CustomerId: number;\r\n PracticeAreaId: number;\r\n ReportingManagerId: number;\r\n ManagerId: number; //ProgramManagerId\r\n LeadId: any;\r\n ReportingManager: GenericType;\r\n ProgramManager: GenericType;\r\n Lead: GenericType;\r\n ProgramManagerName: string;\r\n ReportingManagerName: string;\r\n LeadName: string;\r\n IsActive: boolean;\r\n EmpCode: number;\r\n actualStartDate: Date;\r\n actualEndDate: Date;\r\n plannedEndDate: Date;\r\n plannedStartDate: Date;\r\n DepartmentId: number;\r\n RoleIds: any[];\r\n DeletedRoleIds: any[];\r\n CustomerName : string;\r\n}\r\nexport class ProjectClosureReport {\r\n\r\n \r\n ProjectId: number;\r\n // clientFeedback: string;\r\n // deliveryPerformance: string;\r\n rejectRemarks:string;\r\n type:string;\r\n ValueDelivered: string;\r\n ManagementChallenges: string;\r\n TechnologyChallenges: string;\r\n EngineeringChallenges: string;\r\n BestPractices : string ;\r\n LessonsLearned : string ;\r\n ReusableArtifacts : string ;\r\n ProcessImprovements : string ;\r\n Awards : string ;\r\n NewTechnicalSkills : string ;\r\n NewTools : string ;\r\n Remarks : string ;\r\n // caseStudy : string ;\r\n StatusId : number;\r\n CurrentUser : string ;\r\n CreatedDate : Date ;\r\n ModifiedDate : Date ;\r\n SystemInfo : string ;\r\n IsActive : boolean;\r\n CreatedBy : string ;\r\n ModifiedBy : string;\r\n ClientFeedbackFile:any;\r\n DeliveryPerformanceFile:any;\r\n\r\n }\r\n\r\n export class ProjectClosureReject{\r\n ProjectId: number;\r\n rejectRemarks:string;\r\n\r\n }","export class TagAssociateList{\r\n EmployeeId:number; \r\n Id:number;\r\n ManagerId:number;\r\n TagListId:number;\r\n ProjectId: number;\r\n ProjectName : string;\r\n AllocatedPercentage : number;\r\n TagListName:string;\r\n EmployeeName:string;\r\n Designation:string;\r\n Available : number;\r\n}","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { from } from 'rxjs';\r\nimport { ProjectLifeCycleComponent } from './components/project-life-cycle/project-life-cycle.component';\r\nimport { SowComponent } from './components/sow/sow.component';\r\nimport { ViewProjectComponent } from './components/view-project/view-project.component';\r\nimport { ProjectComponent } from './components/project/project.component';\r\nimport { ProjectDashboardComponent } from './components/project-dashboard/project-dashboard.component';\r\nimport { CheckUsersGuard } from './check-users.guard';\r\nimport { AssignManagerToProjectComponent } from './components/assign-manager-to-project/assign-manager-to-project.component';\r\nimport { AssignReportingManagerComponent } from './components/assign-reporting-manager/assign-reporting-manager.component';\r\nimport { AssociateskillsearchComponent } from './components/project/associateskillsearch/associateskillsearch.component';\r\nimport { ProjectClosureReportComponent } from './components/project-closure-report/project-closure-report.component';\r\nimport { ViewProjectTeamleadComponent } from './components/view-project-teamlead/view-project-teamlead.component';\r\nimport { PMClosureDashboardComponent } from './components/pm-closure-dashboard/pm-closure-dashboard.component';\r\nimport { ChecklistTabComponent } from './components/checklist-tab/checklist-tab.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '', component: ProjectLifeCycleComponent, children: [\r\n { path: 'view/:id', component: ViewProjectComponent, data: { title: 'View' } } ,\r\n { path: 'addproject/:id', component: ProjectComponent ,data: { title:'Add Project'}, canActivate : [CheckUsersGuard] , },\r\n { path: 'dashboard', component: ProjectDashboardComponent , } , \r\n\r\n\r\n { path: \"associateSkillSearch\", component: AssociateskillsearchComponent, data: { title: 'Associate Skill Search' } },\r\n\r\n \r\n\r\n { path: \"assignmanagertoproject\", component: AssignManagerToProjectComponent, data: { title: 'Assign Manager To Project' } }, \r\n { path: \"assignreportingmanager\", component: AssignReportingManagerComponent, data: { title: 'Assign Reporting Manager' } }, \r\n { path: \"projectclosurereport\", component: ProjectClosureReportComponent, data: { title: 'Project Closure Report' } }, \r\n { path: 'viewteamlead/:id', component: ViewProjectTeamleadComponent, data: { title: 'Project Closure Report' } },\r\n { path: \"projectclosure/:id\", component: PMClosureDashboardComponent, data: { title: 'Project Closure Dashboard' } },\r\n { path: 'checklist', component: ChecklistTabComponent, data: { title: 'Department Activities Report' },}\r\n\r\n ],\r\n \r\n },\r\n \r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class ProjectLifeCycleRoutingModule { }","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SowComponent } from './components/sow/sow.component';\r\nimport { ClientBillingRoleComponent } from './components/client-billing-role/client-billing-role.component';\r\nimport { ProjectLifeCycleComponent } from './components/project-life-cycle/project-life-cycle.component';\r\nimport { ViewProjectComponent } from './components/view-project/view-project.component';\r\nimport { AllAngularMaterialModule } from '../plugins/all-angular-material/all-angular-material.module';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { ProjectLifeCycleRoutingModule } from './project-life-cycle-routing.module';\r\nimport { RouterModule } from '@angular/router';\r\nimport { ProjectComponent } from './components/project/project.component';\r\nimport { ProjectCreationComponent } from './components/project-creation/project-creation.component';\r\nimport { ProjectDashboardComponent } from './components/project-dashboard/project-dashboard.component';\r\nimport { DateDialogComponent } from './components/date-dialog/date-dialog.component';\r\nimport { ConfirmDialogComponent } from './components/confirm-dialog/confirm-dialog.component';\r\nimport { AssignManagerToProjectComponent } from './components/assign-manager-to-project/assign-manager-to-project.component';\r\nimport { AssignReportingManagerComponent } from './components/assign-reporting-manager/assign-reporting-manager.component';\r\nimport { CloseCbrDialogComponent } from './components/close-cbr-dialog/close-cbr-dialog.component';\r\nimport { MessageDialogComponent } from './components/message-dialog/message-dialog.component';\r\nimport { AllocatedResourcesDialogComponent } from './components/allocated-resources-dialog/allocated-resources-dialog.component';\r\nimport { AssociateskillsearchComponent } from './components/project/associateskillsearch/associateskillsearch.component';\r\nimport { DailogTagListComponent } from './components/project/dailog-tag-list/dailog-tag-list.component';\r\n// import { ViewTagAssociateComponent } from './components/project/view-tag-associate/view-tag-associate.component';\r\nimport { SkillDataListComponent } from './components/project/skill-data-list/skill-data-list.component';\r\nimport { DeleteDialogComponent } from './components/delete-dialog/delete-dialog.component';\r\nimport { ProjectClosureReportComponent } from './components/project-closure-report/project-closure-report.component';\r\nimport { AngularEditorModule } from '@kolkov/angular-editor';\r\nimport { ViewProjectTeamleadComponent } from './components/view-project-teamlead/view-project-teamlead.component';\r\nimport { PMClosureDashboardComponent } from './components/pm-closure-dashboard/pm-closure-dashboard.component';\r\nimport { NgxSpinnerModule } from 'ngx-spinner';\r\nimport { ChecklistTabComponent } from './components/checklist-tab/checklist-tab.component';\r\nimport { ProjectDetailsComponent } from './components/project-details/project-details.component';\r\nimport { RemarksTeamleadComponent } from './components/remarks-teamlead.component';\r\nimport { DropDownSuggestionDirectiveModule } from 'src/app/drop-down-suggestion.directive';\r\nimport { RequirematchDirectiveModule } from 'src/app/requirematch.directive';\r\nimport { EmptySpacesValidationsDirectiveModule } from 'src/app/empty-spaces-validations.directive';\r\nimport { ProjectHistoryListComponent } from './components/project/project-history-list/project-history-list.component';\r\n\r\n\r\n@NgModule({\r\n declarations: [ConfirmDialogComponent,AssignReportingManagerComponent,DateDialogComponent,ViewProjectComponent,ProjectDashboardComponent,ProjectCreationComponent, SowComponent, ClientBillingRoleComponent, ProjectLifeCycleComponent, ProjectComponent, AssignManagerToProjectComponent, CloseCbrDialogComponent, MessageDialogComponent, AllocatedResourcesDialogComponent, AssociateskillsearchComponent, DailogTagListComponent, SkillDataListComponent,DeleteDialogComponent, ProjectClosureReportComponent, ViewProjectTeamleadComponent, PMClosureDashboardComponent, ChecklistTabComponent, ProjectDetailsComponent, RemarksTeamleadComponent, ProjectHistoryListComponent],\r\n imports: [\r\n RouterModule,\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n FlexLayoutModule,\r\n ProjectLifeCycleRoutingModule,\r\n AllAngularMaterialModule,\r\n AngularEditorModule,\r\n NgxSpinnerModule,\r\n DropDownSuggestionDirectiveModule,\r\n RequirematchDirectiveModule,\r\n EmptySpacesValidationsDirectiveModule \r\n ],\r\n exports: [ProjectClosureReportComponent],\r\n \r\n})\r\nexport class ProjectLifeCycleModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Employee } from '../models/assign-manager-to-project.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AssignManagerToProjectService {\r\n serviceUrl = environment.ServerUrl;\r\n _employeeMicroService = environment.EmployeeMicroService;\r\n _projMicroService = environment.ProjMicroService;\r\n _adminMicroService = environment.AdminMicroService;\r\n resources = servicePath.API.AssignReportingManager;\r\n\r\n constructor(private httpClient: HttpClient) {\r\n }\r\n public GetManagersByProjectId(projectId:number){\r\n let _url = this._projMicroService + this.resources.GetManagersByProjectId + projectId;\r\n return this.httpClient.get(_url);\r\n }\r\n public AssignReportingManagerToProject(employee:Employee) {\r\n let _url = this._projMicroService + this.resources.AssignReportingManager;\r\n return this.httpClient.post(_url, employee);\r\n }\r\n\r\n public GetProjectsList(userRole : string, empId : number) {\r\n let _url = this._projMicroService+ servicePath.API.projects.getProjectList + userRole +\"&employeeId=\"+ empId;\r\n return this.httpClient.get(_url)\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Employee } from '../models/assign-manager-to-project.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AssignReportingManagerService {\r\n serviceUrl = environment.ServerUrl;\r\n\r\n projectMicroService = environment.ProjMicroService;\r\n employeeMicroService = environment.EmployeeMicroService;\r\n resources = servicePath.API.AssignReportingManager;\r\n employees = servicePath.API.projects;\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n public AssignReportingManager(employee: Employee, isDelivery: boolean) {\r\n let _url = this.projectMicroService + this.resources.UpdateReportingManagerToAssociate + isDelivery;\r\n return this.httpClient.post(_url, employee);\r\n }\r\n public GetManagerName(projectId: number, employeeId: number) {\r\n var url = this.projectMicroService + this.resources.getManagerName + projectId + \"/\" + employeeId;\r\n return this.httpClient.get(url)\r\n }\r\n\r\n public GetAllocatedAssociates() {\r\n var url = this.projectMicroService + this.resources.getAllocatedAssociates;\r\n return this.httpClient.get(url)\r\n }\r\n\r\n GetEmployeesAndManagers(suggestionString: string) {\r\n let url = this.employeeMicroService + this.resources.getEmployeesAndManagers + suggestionString;\r\n return this.httpClient.get(url);\r\n }\r\n\r\n public GetProjects(empId: number) {\r\n var url = this.projectMicroService + this.resources.getProjectDetails + empId;\r\n return this.httpClient.get(url);\r\n }\r\n\r\n GetAllLeadsManagers(suggestionString: string) {\r\n let url = this.projectMicroService + this.resources.getAllLeadsManagers + suggestionString;\r\n return this.httpClient.get(url);\r\n }\r\n\r\n GetAllAssociatesList(){\r\n let url = this.employeeMicroService + this.employees.getEmpList;\r\n return this.httpClient.get(url);\r\n }\r\n}\r\n","import {Injectable} from '@angular/core'\r\nimport { environment } from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { AssociateSkillSearch } from '../models/associateSkillSearch.model'\r\nimport { GenericType } from '../../master-layout/models/dropdowntype.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AssociateskillsearchService {\r\n\r\n \r\n serviceUrl = environment.ServerUrl;\r\n resources = servicePath.API.SkillSearch;\r\n resource = servicePath.API.Reports;\r\nreportUrl = environment.ReportMicroService;\r\nadminUrl = environment.AdminMicroService;\r\n\r\n constructor(private httpClient : HttpClient){\r\n\r\n }\r\n\r\n // http://sg-srv-kas:2025/report/api/v1/Reports/GetEmployeeDetailsBySkill\r\n\r\n public GetEmployeeDetailsBySkill(skillData: AssociateSkillSearch) {\r\n var url = this.reportUrl + this.resource.GetEmployeeDetailsBySkill;\r\n return this.httpClient.post(url, skillData)\r\n }\r\n\r\n // public GetSkillsBySearchString(searchString: string){\r\n // let _url = this.adminUrl + this.resources.GetSkillsBySearchString + searchString;\r\n // return this.httpClient.get(_url);\r\n // }\r\n\r\n public GetActiveSkillsForDropdown(){\r\n let _url = this.adminUrl + this.resources.GetActiveSkillsForDropdown;\r\n return this.httpClient.get(_url);\r\n }\r\n public GetProjectDetailByEmployeeId(empId : number){\r\n let _url = this.serviceUrl + this.resources.GetProjectDetailByEmployeeId + empId ;\r\n return this.httpClient.get(_url);\r\n\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { ClientBillingRoleDetails } from '../models/client-billing-role.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ClientBillingRoleService {\r\n serviceUrl = environment.ServerUrl;\r\n _projectMicroService = environment.ProjMicroService;\r\n resources = servicePath.API.ClientBillingRole;\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n public SaveClientBillingRole(clientBillingRoleData: ClientBillingRoleDetails) {\r\n let url = this._projectMicroService + this.resources.create;\r\n return this.httpClient.post(url, clientBillingRoleData);\r\n }\r\n\r\n public UpdateClientBillingRole(clientBillingRoleData: ClientBillingRoleDetails) {\r\n let url = this._projectMicroService + this.resources.update;\r\n return this.httpClient.post(url, clientBillingRoleData);\r\n }\r\n\r\n public GetClientBillingRolesByProjectId(projectId: number) {\r\n var url = this._projectMicroService + this.resources.getClientBillingRolesByProjectId + projectId;\r\n return this.httpClient.get(url);\r\n }\r\n\r\n public DeleteClientBillingRole(clientBillingRoleId: number) {\r\n let url = this._projectMicroService + this.resources.delete + clientBillingRoleId;\r\n return this.httpClient.post(url, null);\r\n }\r\n public closeClientBillingRecord(cBRId : number , endDate: string, reason: string){\r\n let url = this._projectMicroService + this.resources.CloseClientBillingRole + cBRId + \"/\" + endDate+\"/\"+ reason;\r\n return this.httpClient.get(url);\r\n }\r\n\r\n\r\n}\r\n","import { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { ProjectDetails } from '../../master-layout/models/projects.model';\r\nimport { ProjectsData } from '../../master-layout/models/projects.model';\r\nimport{ProjectClosureReject} from '../models/projects.model';\r\nimport { ProjectClosureReport } from '../models/projects.model';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { ActivityData } from '../models/activities.model';\r\nimport {Observable} from 'rxjs';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProjectClosureService {\r\n\r\n resources = servicePath.API.Activity;\r\n resourcesClosure = servicePath.API.ProjectClosure;\r\n re_sources = servicePath.API.projects;\r\n adminMicroService = environment.AdminMicroService;\r\n serviceUrl = environment.ServerUrl;\r\n projectMicroService = environment.ProjMicroService;\r\n selectedTab = new BehaviorSubject(0);\r\n ProjectState = new BehaviorSubject(null);\r\n EditMode = new BehaviorSubject(false);\r\n ProjectId = new BehaviorSubject(0);\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n getClosureActivitiesByDepartment(departmentId: number){\r\n const url = this.adminMicroService+this.resources.GetClosureActivitiesByDepartment+departmentId;\r\n return this.httpClient.get(url);\r\n }\r\n\r\n public GetClosureReportByProjectID(ProjectId: number) {\r\n var url = this.projectMicroService + this.re_sources.getclosurereportbyprojectid + ProjectId;\r\n return this.httpClient.get(url);\r\n \r\n }\r\n public CreateProjectClosureReport(details: ProjectClosureReport) {\r\n let _url = this.projectMicroService + this.re_sources.createprojectclosurereport;\r\n return this.httpClient.post(_url, details);\r\n }\r\n public UpdateProjectClosureReport(details: ProjectClosureReport) {\r\n let _url = this.projectMicroService + this.re_sources.updateprojectclosurereport;\r\n return this.httpClient.post(_url, details);\r\n }\r\n public DownloadProjectClosureFileUpload(FileType: string, projectId: number): any {\r\n let _url = this.projectMicroService + this.re_sources.download+\"Filetype=\"+FileType+\"&projectId=\"+projectId;\r\n return this.httpClient.get(_url,{responseType: 'blob'});\r\n }\r\n \r\n public Delete(projectId: number,FileType:string) {\r\n var url = this.projectMicroService + this.re_sources.delete + FileType + \"/\"+ projectId ;\r\n return this.httpClient.delete(url);\r\n }\r\n\r\n getActivitiesByProjectIdAndDepartmentId(projectId: number,departmentId){\r\n const url = this.projectMicroService+this.resources.getActivitiesByProjectIdAndDepartmentId+projectId+'&DepartmentId='+departmentId;\r\n return this.httpClient.get(url);\r\n }\r\n\r\n CreateActivityChecklist(activityData: ActivityData){\r\n const url = this.projectMicroService+this.resources.CreateActivityChecklist;\r\n return this.httpClient.post(url,activityData);\r\n }\r\n\r\n UpdateActivityChecklist(activityData: ActivityData){\r\n const url = this.projectMicroService+this.resources.UpdateActivityChecklist;\r\n return this.httpClient.post(url,activityData);\r\n }\r\n\r\n GetActivitiesByProjectIdForPM(projectId: number){\r\n const url = this.projectMicroService+this.resources.GetActivitiesByProjectIdForPM+projectId;\r\n return this.httpClient.get(url);\r\n }\r\n \r\n SubmitForClosureApproval(projectSubmitData){\r\n const url = this.projectMicroService + this.resourcesClosure.SubmitForClosureApproval;\r\n return this.httpClient.post(url,projectSubmitData);\r\n }\r\n Reject(details: ProjectClosureReport){\r\n var url = this.projectMicroService + this.resourcesClosure.reject;\r\n return this.httpClient.post(url,details);\r\n }\r\n ApproveOrRejectClosureByDH(projectSubmitData){\r\n const url = this.projectMicroService + this.resourcesClosure.ApproveOrRejectClosureByDH;\r\n return this.httpClient.post(url,projectSubmitData);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { ProjectDetails } from '../../master-layout/models/projects.model';\r\nimport { ProjectsData } from '../../master-layout/models/projects.model';\r\nimport { ProjectClosureReport } from '../models/projects.model';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProjectCreationService {\r\n serviceUrl = environment.ServerUrl;\r\n adminMicroService = environment.AdminMicroService;\r\n projectMicroService = environment.ProjMicroService;\r\n resources = servicePath.API.projects;\r\n selectedTab = new BehaviorSubject(0);\r\n ProjectState = new BehaviorSubject(null);\r\n EditMode = new BehaviorSubject(false);\r\n ProjectId = new BehaviorSubject(0);\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n public SaveProject(newProject) {\r\n const url = this.projectMicroService + this.resources.addProject;\r\n return this.httpClient.post(url, newProject);\r\n }\r\n\r\n public SetEditMode(editMode : boolean){\r\n this.EditMode.next(editMode);\r\n }\r\n\r\n public GetProjectState(){\r\n return this.ProjectState.asObservable();\r\n }\r\n\r\n public SetProjectState(projectState : string){\r\n this.ProjectState.next(projectState);\r\n }\r\n\r\n public GetEditMode(){\r\n return this.EditMode.asObservable();\r\n }\r\n\r\n public SetSeletedTab(tabIndex: number) {\r\n this.selectedTab.next(tabIndex);\r\n }\r\n\r\n public GetSelectedTab() {\r\n return this.selectedTab.asObservable();\r\n }\r\n\r\n public SetProjectId(projectId: number) {\r\n this.ProjectId.next(projectId);\r\n }\r\n\r\n public GetProjectId() {\r\n \r\n return this.ProjectId.asObservable();\r\n }\r\n\r\n public GetProjectDetailsbyID(ProjectId: number) {\r\n const url = this.projectMicroService + this.resources.getProjectbyID + ProjectId;\r\n return this.httpClient.get(url);\r\n }\r\n\r\n public GetProjectStates(){\r\n const url = this.adminMicroService + this.resources.GetProjectsStatuses ;\r\n return this.httpClient.get(url);\r\n }\r\n updateProjectDetails(project: ProjectsData) {\r\n const url = this.projectMicroService + this.resources.updateProject;\r\n return this.httpClient.post(url, project);\r\n }\r\n\r\n deleteProjectDetails(projectId) {\r\n const url = this.projectMicroService + this.resources.deleteProject + projectId;\r\n return this.httpClient.post(url, projectId);\r\n }\r\n\r\n GetProjectsList(userRole: string, empId: number, dashboard : string) {\r\n const _url = this.projectMicroService + this.resources.getProjectList + userRole + \"&employeeId=\" + empId + \"&dashboard=\" + dashboard;\r\n return this.httpClient.get(_url);\r\n }\r\n GetProgramManagers(userRole: string, empId: number) {\r\n \r\n const _url = this.adminMicroService + this.resources.getManagers + userRole + \"&employeeId=\" + empId;\r\n return this.httpClient.get(_url);\r\n }\r\n\r\n public GetDomains(){\r\n return this.httpClient.get(this.adminMicroService + servicePath.API.Domain.list)\r\n }\r\n\r\n public submitForApproval(projectId : number, userRole : string, EmpId : number){\r\n const url = this.projectMicroService + this.resources.submitForApproval + projectId + \"/\" + userRole + \"/\" + EmpId;\r\n return this.httpClient.get(url);\r\n }\r\n \r\n public ApproveOrRejectByDH(projectId : number, status : string, EmpId : number){\r\n return this.httpClient.get(this.projectMicroService + this.resources.approveOrRejectByDH + projectId + \"/\" + status + \"/\" + EmpId);\r\n\r\n }\r\n\r\n public canCloseProject(projectId : number){\r\n const url = this.projectMicroService + this.resources.canCloseProject + \"?projectId=\" + projectId;\r\n return this.httpClient.get(url);\r\n }\r\n\r\n public ProjectClosureInitiation(projectData : ProjectsData){\r\n const url = this.projectMicroService + this.resources.closeProject ;\r\n return this.httpClient.post(url,projectData);\r\n }\r\n\r\n// public GetClosureReportByProjectID(ProjectId: number) {\r\n// var url = this.projectMicroService + this.resources.getclosurereportbyprojectid + ProjectId;\r\n// return this.httpClient.get(url);\r\n \r\n// }\r\n// public CreateProjectClosureReport(details: ProjectClosureReport) {\r\n// let _url = this.projectMicroService + this.resources.createprojectclosurereport;\r\n// return this.httpClient.post(_url, details);\r\n// }\r\n// public UpdateProjectClosureReport(details: ProjectClosureReport) {\r\n// let _url = this.projectMicroService + this.resources.updateprojectclosurereport;\r\n// return this.httpClient.post(_url, details);\r\n// }\r\n \r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { environment } from '../../../../environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ResouceReleaseService {\r\n serviceUrl = environment.ServerUrl;\r\n resources = servicePath.API.ResourceRelease;\r\n \r\n constructor(private httpClient: HttpClient) { }\r\n public GetAssociates() \r\n {\r\n var url = this.serviceUrl + this.resources.getAssociates; \r\n return this.httpClient.get(url)\r\n }\r\n public GetProjects(empId: number)\r\n {\r\n var url = this.serviceUrl + this.resources.getProjectDetails + empId; \r\n return this.httpClient.get(url);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { ProjectDetails } from '../../master-layout/models/projects.model';\r\nimport { SOW } from '../../admin/models/sow.model';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SowService {\r\n serviceUrl = environment.ServerUrl;\r\n _projectMicroService = environment.ProjMicroService;\r\n resources = servicePath.API.sow;\r\n constructor(private httpClient: HttpClient) { }\r\n SOWData : SOW[] = [];\r\n\r\n public SaveSOW(newSOW){ // data type\r\n let url = this._projectMicroService + this.resources.createSOW;\r\n return this.httpClient.post(url,newSOW ) \r\n }\r\n public GetSowByProjectId(projectId: number) {\r\n var url = this._projectMicroService + this.resources.getSOWDetailsById+projectId;\r\n return this.httpClient.get(url )\r\n}\r\npublic GetProjectsList(userRole : string, empId : number) {\r\n let _url = this._projectMicroService+ servicePath.API.projects.getProjectList + userRole +\"&employeeId=\"+ empId;\r\n return this.httpClient.get(_url)\r\n } \r\n public CreateAddendum(newAddendum){\r\n let url = this._projectMicroService + this.resources.createAddendum;\r\n return this.httpClient.post(url,newAddendum ) \r\n }\r\n public GetAddendumsBySOWId(ID: number , projectId : number) {\r\n var url = this._projectMicroService + this.resources.GetAddendumsBySOWId+ID + \"&projectId=\" + projectId;\r\n return this.httpClient.get(url)\r\n}\r\npublic GetSowDetails(projectId : number, Id : number , roleName : string){\r\n var url = this._projectMicroService + this.resources.GetSowDetails+Id + \"&projectId=\" + projectId + \"&roleName=\" + roleName;\r\n return this.httpClient.get(url )\r\n}\r\n\r\npublic GetAddendumDetailsById(projectId : number, Id : number , roleName : string){\r\n var url = this._projectMicroService + this.resources.GetAddendumDetailsById+Id + \"&projectId=\" + projectId + \"&roleName=\" + roleName;\r\n return this.httpClient.get(url )\r\n}\r\n\r\npublic UpdateSOWDetails(updateSowObj){\r\n let url = this._projectMicroService + this.resources.updateSOWDetails;\r\n return this.httpClient.post(url,updateSowObj ) \r\n}\r\npublic UpdateAddendumDetails(updateSowObj){\r\n let url = this._projectMicroService + this.resources.UpdateAddendumDetails;\r\n return this.httpClient.post(url,updateSowObj ) \r\n}\r\n\r\n// public UpdateSOWAndAddendumDetails(updateSowObj){\r\n// let url = this.serviceUrl + this.resources.UpdateSOWAndAddendumDetails;\r\n// return this.httpClient.post(url,updateSowObj ) \r\n// }\r\n\r\npublic DeleteSow(Id){\r\n let url = this._projectMicroService + this.resources.delete+\"?id=\"+Id;\r\n return this.httpClient.delete(url) \r\n}\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { environment } from \"src/environments/environment\";\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { TagAssociateList } from \"../models/tag-associate.model\";\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TagAssociateService {\r\n\r\n serviceUrl = environment.ServerUrl;\r\n resources = servicePath.API.TagAssociate;\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n public GetTagListDetailsByManagerId(managerId: number) {\r\n let url = this.serviceUrl + this.resources.GetTagListDetailsByManagerId + managerId;\r\n return this.httpClient.get(url)\r\n }\r\n\r\n public GetTagListNamesByManagerId(managerId: number) {\r\n let url = this.serviceUrl + this.resources.GetTagListNamesByManagerId + managerId;\r\n return this.httpClient.get(url);\r\n }\r\n\r\n public CreateTagList(wistLists: TagAssociateList[]) {\r\n let url = this.serviceUrl + this.resources.CreateTagList;\r\n return this.httpClient.post(url, wistLists);\r\n }\r\n\r\n public UpdateTagList(tagLists: TagAssociateList[]) {\r\n let url = this.serviceUrl + this.resources.UpdateTagList;\r\n return this.httpClient.post(url, tagLists);\r\n }\r\n\r\n public DeleteTagList(tagAssociateId: number) {\r\n let url = this.serviceUrl + this.resources.DeleteTagAssociate + tagAssociateId;\r\n return this.httpClient.post(url,null);\r\n }\r\n\r\n public DeleteWholeTagList(tagListName: string, managerId : number) {\r\n let url = this.serviceUrl + this.resources.DeleteTagList + tagListName + '&managerId=' + managerId ;\r\n return this.httpClient.post(url,null);\r\n }\r\n\r\n\r\n}\r\n","import * as XLSX from \"xlsx\";\r\n\r\nconst getFileName = (name: string) => {\r\n let timeSpan = new Date().toISOString();\r\n let sheetName = name || \"Skill Search Report\";\r\n let fileName = `${sheetName}-${timeSpan}`;\r\n return {\r\n sheetName,\r\n fileName\r\n };\r\n};\r\nexport class TableUtil {\r\n static exportTableToExcel(tableId: string, name?: string) {\r\n let { sheetName, fileName } = getFileName(name);\r\n let targetTableElm = document.getElementById(tableId);\r\n let wb = XLSX.utils.table_to_book(targetTableElm, {\r\n sheet: sheetName\r\n });\r\n XLSX.writeFile(wb, `${fileName}.xlsx`);\r\n }\r\n static exportArrayToExcel(arr: any[], name?: string) {\r\n let { sheetName, fileName } = getFileName(name);\r\n\r\n var wb = XLSX.utils.book_new();\r\n var ws = XLSX.utils.json_to_sheet(arr);\r\n XLSX.utils.book_append_sheet(wb, ws, sheetName);\r\n XLSX.writeFile(wb, `${fileName}.xlsx`);\r\n }\r\n}\r\n","import { Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { AssociateAttendanceReportService } from '../../services/associate-attendance-report.service';\r\nimport {\r\n AttendanceReport,\r\n AttendanceReportFilter,\r\n AttendanceDetailReport, \r\n SelectItem,\r\n AttendanceDetailReportData\r\n} from '../../models/associate-attendance-report.model';\r\n//import { GenericType, GenericModel } from '../../../../modules/master-layout/models/dropdowntype.model';\r\nimport { Validators, FormGroup, FormBuilder, FormGroupDirective } from '@angular/forms';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport {\r\n HttpClient,\r\n HttpHeaders,\r\n HttpErrorResponse,\r\n} from '@angular/common/http';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { take } from 'rxjs/operators';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport {\r\n MatSnackBar,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition,\r\n} from '@angular/material/snack-bar';\r\n\r\nimport { Chart } from 'chart.js';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { AllColorCodes } from '../../../../core/color-codes';\r\nimport { NavService } from '../../../master-layout/services/nav.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { FileExporterService } from 'src/app/core/services/file-exporter.service';\r\nimport { ReportsData } from '../../models/reportsdata.model';\r\nimport * as moment from 'moment';\r\nimport { AttendanceReportDialogComponent } from 'src/app/modules/reports/components/attendance-report-dialog/attendance-report-dialog.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ProjectDetails } from '../../../onboarding/models/projects.model';\r\nimport { MasterDataService } from '../../../master-layout/services/masterdata.service';\r\nimport { Observable } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { MatOption } from '@angular/material/core';\r\nimport { DropDownType, GenericType, GenericModel } from '../../../master-layout/models/dropdowntype.model';\r\nimport { Console } from 'console';\r\n@Component({\r\n selector: 'app-associate-attendance-report',\r\n templateUrl: './associate-attendance-report.component.html',\r\n styleUrls: ['./associate-attendance-report.component.scss']\r\n})\r\nexport class AssociateAttendanceReportComponent implements OnInit { \r\n \r\n empId:number;\r\n themeAppearence = themeconfig.formfieldappearances;\r\n filter:AttendanceReportFilter;\r\n detailFilter:AttendanceReportFilter;\r\n lstEmployees: AttendanceReport[] = []; \r\n lstAttendance: AttendanceDetailReport[] = []; \r\n componentName: string; myForm: FormGroup;\r\n totalRecordsCount: number;\r\n errorMessage: any[];\r\n searchFormSubmitted: boolean = false; \r\n options: any;\r\n searchData: AttendanceReportFilter; \r\n errorSummary: string = '';\r\n step=0;\r\n loading: boolean;\r\n public reportStatus: boolean = false;\r\n isLoading: boolean = false;\r\n firstDate: Date;\r\n lastDate: Date;\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n roleName :string;\r\n associateName : string;\r\n employeeCode: string;\r\n private resources = servicePath.API.PagingConfigValue;\r\n displayedColumns: string[] = ['EmployeeCode','EmployeeName','ProjectName','ReportingManagerName','TotalDaysWorked',\"View\"];\r\n projectsList: any[] = [];\r\n filteredProject : Observable;\r\n selectedProjectId:any;\r\n filteredAssociates: Observable;\r\n associatesList: SelectItem[] = [];\r\n selectedEmployeeName: any;\r\n dialogData : AttendanceDetailReportData;\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'right';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n employeedataSource: MatTableDataSource;\r\n minDate : Date;\r\n maxDate : Date;\r\n totalWorkingDays : number;\r\n totalHolidays: number;\r\n isDeliveryDepartment = true;\r\n @ViewChild('sort') sort: MatSort;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n\r\n constructor(private associateAttendanceReportService: AssociateAttendanceReportService,\r\n private fileExporterService: FileExporterService,\r\n public navService: NavService,\r\n private spinner: NgxSpinnerService,\r\n private _snackBar: MatSnackBar,\r\n private fb: FormBuilder,\r\n public dialog: MatDialog,\r\n private masterDataService: MasterDataService\r\n ) {\r\nthis.searchData = new AttendanceReportFilter();\r\nthis.PageSize = this.resources.PageSize;\r\nthis.PageDropDown = this.resources.PageDropDown;\r\n\r\nlet date: Date = new Date();\r\ndate.setDate(date.getDate() - 7);\r\n this.minDate = new Date(2022, 6, 1);\r\n this.maxDate = date;\r\n\r\n this.associateAttendanceReportService.GetAttendanceMaxDate().subscribe(\r\n (response: Date) => { \r\n this.maxDate = response; \r\n },\r\n (error: any) => { }\r\n );\r\n\r\n this.empId = JSON.parse(\r\n sessionStorage.getItem(\"AssociatePortal_UserInformation\")\r\n ).employeeId; \r\n\r\n this.associateAttendanceReportService.IsDeliveryDepartment(this.empId).subscribe(\r\n (response: boolean) => { \r\n this.isDeliveryDepartment = response; \r\n if(this.isDeliveryDepartment === true)\r\nthis.displayedColumns = ['EmployeeCode','EmployeeName','ProjectName','ReportingManagerName','TotalDaysWorked',\"View\"];\r\nelse\r\nthis.displayedColumns = ['EmployeeCode','EmployeeName','ReportingManagerName','TotalDaysWorked',\"View\"]; \r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees); \r\n this.paginator.pageIndex = 0;\r\n this.employeedataSource.paginator = this.paginator; \r\n this.employeedataSource.sort = this.sort \r\n \r\n },\r\n (error: any) => { }\r\n ); \r\n\r\nthis.navService.currentSearchBoxData.subscribe(responseData => {\r\nthis.applyFilter(responseData);\r\n});\r\n}\r\n\r\n ngOnInit(): void { \r\n \r\n if (sessionStorage.getItem(\"AssociatePortal_UserInformation\") != null) {\r\n this.roleName = JSON.parse(\r\n sessionStorage.getItem(\"AssociatePortal_UserInformation\")\r\n ).roleName;\r\n \r\n this.empId = JSON.parse(\r\n sessionStorage.getItem(\"AssociatePortal_UserInformation\")\r\n ).employeeId; \r\n this.totalWorkingDays = 0;\r\n this.totalHolidays = 0;\r\n}\r\nthis.associateAttendanceReportService.IsDeliveryDepartment(this.empId).subscribe(\r\n (response: boolean) => { \r\n this.isDeliveryDepartment = response; \r\n },\r\n (error: any) => { }\r\n); \r\n\r\nif(this.isDeliveryDepartment === true)\r\nthis.displayedColumns = ['EmployeeCode','EmployeeName','ProjectName','ReportingManagerName','TotalDaysWorked',\"View\"];\r\nelse\r\nthis.displayedColumns = ['EmployeeCode','EmployeeName','ReportingManagerName','TotalDaysWorked',\"View\"];\r\n\r\nthis.employeedataSource = new MatTableDataSource(this.lstEmployees); \r\n this.paginator.pageIndex = 0;\r\n this.employeedataSource.paginator = this.paginator; \r\n this.employeedataSource.sort = this.sort \r\n\r\n this.myForm = this.fb.group({\r\n fromDate: ['', [Validators.required]],\r\n toDate: ['', [Validators.required]] , \r\n }); \r\n }\r\n\r\n fetchAttendanceReport() {\r\n if (sessionStorage.getItem(\"AssociatePortal_UserInformation\") != null) {\r\n this.roleName = JSON.parse(\r\n sessionStorage.getItem(\"AssociatePortal_UserInformation\")\r\n ).roleName;\r\n \r\n this.associateName = JSON.parse(\r\n sessionStorage.getItem(\"AssociatePortal_UserInformation\")\r\n ).fullName;\r\n\r\n this.employeeCode = JSON.parse(\r\n sessionStorage.getItem(\"AssociatePortal_UserInformation\")\r\n ).employeeCode;\r\n }\r\n \r\n if(this.myForm.valid){\r\n this.step = 1;\r\n } \r\n this.isLoading = true;\r\n this.searchFormSubmitted = true;\r\n if (this.myForm.controls.fromDate.value === '' || this.myForm.controls.toDate.value === '' || this.myForm.controls.fromDate.value === null || this.myForm.controls.toDate.value === null) {\r\n this.isLoading = false; \r\n return;\r\n } \r\n \r\n this.spinner.show()\r\n if (this.searchData.FromDate != null && this.searchData.ToDate != null) {\r\n this.errorSummary = '';\r\n if (moment(this.searchData.FromDate).isAfter(new Date())) {\r\n this.errorSummary = 'From date should be less than today';\r\n this.isLoading = false;\r\n this.spinner.hide()\r\n this._snackBar.open('From date should be less than today', 'x', {\r\n duration: 5000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n return false;\r\n }\r\n if (moment(this.searchData.ToDate).isAfter(new Date())) {\r\n this.errorSummary = 'To date should be less than today';\r\n this.isLoading = false;\r\n this.spinner.hide()\r\n this._snackBar.open('To date should be less than today', 'x', {\r\n duration: 5000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return false;\r\n }\r\n if (moment(this.searchData.FromDate).isAfter(this.searchData.ToDate)) {\r\n this.errorSummary = 'From Date should be less than To Date';\r\n this.isLoading = false;\r\n this.spinner.hide()\r\n this._snackBar.open('From Date should be less than To Date', 'x', {\r\n duration: 5000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return false;\r\n } \r\n \r\n this.searchData.FromDate = moment(this.searchData.FromDate).format('YYYY-MM-DD');\r\n this.searchData.ToDate = moment(this.searchData.ToDate).format('YYYY-MM-DD'); \r\n this.searchData.EmployeeName = this.associateName;\r\n this.searchData.EmployeeCode = this.employeeCode;\r\n this.searchData.EmployeeId = this.empId;\r\n this.searchData.ManagerName = this.associateName;\r\n this.searchData.RoleName = this.roleName; \r\n this.getAttendanceSummary(this.searchData); \r\n }\r\n }\r\n\r\n getAttendanceSummary(filter: AttendanceReportFilter) {\r\n this.spinner.show();\r\n \r\n this.lstEmployees = [];\r\n this.associateAttendanceReportService.GetAttendanceSummaryReport(filter).subscribe(\r\n (response: AttendanceReport[]) => {\r\n this.spinner.hide();\r\n this.lstEmployees = response;\r\n response.forEach((res) => {\r\n this.totalWorkingDays = res.TotalWorkingDays;\r\n this.totalHolidays = res.TotalHolidays; \r\n }); \r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees); \r\n this.employeedataSource.paginator = this.paginator; \r\n this.employeedataSource.sort = this.sort \r\n },\r\n (error: any) => { this.spinner.hide(); }\r\n );\r\n }\r\n\r\n getAttendanceDetail(filter: AttendanceReportFilter) {\r\n this.spinner.show();\r\n this.lstAttendance = [];\r\n this.associateAttendanceReportService.GetAttendanceDetailReport(filter).subscribe(\r\n (response: AttendanceDetailReport[]) => {\r\n this.spinner.hide();\r\n this.lstAttendance = response; \r\n },\r\n (error: any) => { this.spinner.hide(); }\r\n );\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n if (filterValue) {\r\n this.employeedataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees);\r\n this.employeedataSource.paginator = this.paginator;\r\n this.employeedataSource.sort = this.sort; \r\n }\r\n } else {\r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees);\r\n this.employeedataSource.paginator = this.paginator;\r\n this.employeedataSource.sort = this.sort; \r\n }\r\n }\r\n\r\n clearInput(evt: any, fieldName): void {\r\n if(fieldName=='toDate'){\r\n evt.stopPropagation();\r\n this.myForm.get('toDate').reset();\r\n this.clearData();\r\n }\r\n if(fieldName=='fromDate'){\r\n evt.stopPropagation();\r\n this.myForm.get('fromDate').reset();\r\n this.clearData();\r\n }\r\n }\r\n\r\n clearFilter() {\r\n this.myForm.reset();\r\n this.myForm.clearValidators(); \r\n this.searchFormSubmitted = false;\r\n this.errorSummary = ''; \r\n this.searchData = new AttendanceReportFilter();\r\n this.lstEmployees = [];\r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees); \r\n this.employeedataSource.sort = this.sort; \r\n this.employeedataSource.paginator = this.paginator;\r\n this.totalRecordsCount = this.lstEmployees.length; \r\n this.totalWorkingDays = 0;\r\n this.totalHolidays = 0; \r\n }\r\n\r\n clearData() { \r\n this.lstEmployees = [];\r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees); \r\n this.employeedataSource.sort = this.sort; \r\n this.paginator.pageIndex = 0;\r\n this.employeedataSource.paginator = this.paginator;\r\n this.totalRecordsCount = this.lstEmployees.length; \r\n this.totalWorkingDays = 0;\r\n this.totalHolidays = 0; \r\n }\r\n \r\n exportAsXLSX() { \r\n this.spinner.show();\r\n if(this.isDeliveryDepartment == true)\r\n {\r\n const columnsForExcel_delivery = this.employeedataSource.data.map(x => ({\r\n 'ID': x.EmployeeCode,\r\n 'Name': x.EmployeeName, \r\n 'Project': x.ProjectName, \r\n 'Reporting Manager': x.ReportingManagerName, \r\n 'Total Days': x.TotalDaysWorked \r\n }));\r\n this.fileExporterService.exportToExcel(columnsForExcel_delivery, \"Associate Attendance Report\"); \r\n }\r\n else\r\n {\r\n const columnsForExcel_delivery = this.employeedataSource.data.map(x => ({\r\n 'ID': x.EmployeeCode,\r\n 'Name': x.EmployeeName, \r\n 'Reporting Manager': x.ReportingManagerName, \r\n 'Total Days': x.TotalDaysWorked \r\n }));\r\n this.fileExporterService.exportToExcel(columnsForExcel_delivery, \"Associate Attendance Report\"); \r\n } \r\n this.spinner.hide();\r\n }\r\n\r\n viewAttendanceDetails(employee: AttendanceReport)\r\n {\r\n this.detailFilter = new AttendanceReportFilter();\r\n this.detailFilter.EmployeeName =employee.EmployeeName;\r\n this.detailFilter.EmployeeCode = employee.EmployeeCode;\r\n this.detailFilter.FromDate = this.searchData.FromDate;\r\n this.detailFilter.ToDate = this.searchData.ToDate;\r\n this.detailFilter.ProjectId = 0;\r\n\r\n this.spinner.show();\r\n this.lstAttendance = [];\r\n this.associateAttendanceReportService.GetAttendanceDetailReport(this.detailFilter).subscribe(\r\n (response: AttendanceDetailReport[]) => {\r\n this.spinner.hide();\r\n this.lstAttendance = response; \r\n this.dialogData = new AttendanceDetailReportData();\r\n this.dialogData.eventData = this.lstAttendance;\r\n this.dialogData.filter = this.detailFilter; \r\n this.dialogData.employeeName = employee.EmployeeName;\r\n this.dialogData.daysWorked = employee.TotalDaysWorked; \r\n const dialogRef = this.dialog.open(AttendanceReportDialogComponent, {\r\n width: '1100px',\r\n disableClose: true,\r\n data: this.dialogData\r\n }); \r\n },\r\n (error: any) => { this.spinner.hide(); }\r\n );\r\n \r\n } \r\n}\r\n","\r\n \r\n \r\n \r\n filter_list Filter Attendance Report\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n From Date *\r\n \r\n \r\n \r\n close\r\n \r\n \r\n \r\n From Date is required\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n To Date *\r\n \r\n \r\n close\r\n \r\n \r\n \r\n To Date is required\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 people List of associates \r\n {{lstEmployees.length}}\r\n
\r\n
\r\n Total Working Days \r\n {{totalWorkingDays}}\r\n
\r\n
\r\n Holidays \r\n {{totalHolidays}}\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 \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
ID {{element.EmployeeCode}} Name {{element.EmployeeName}} Project {{element.ProjectName}} Reporting Manager {{element.ReportingManagerName}} Total Days {{element.TotalDaysWorked}} Detail View visibility
No data
\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

Loading ...

\r\n
\r\n\r\n","import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { AssociateExitReportRequestForPm, AssociateExitReportResponse } from '../../models/associate-exit-report.model';\r\nimport { MatTableDataSource, MatTable } from '@angular/material/table';\r\nimport { AssociateExitReportService } from '../../services/associate-exit-report.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatOption } from '@angular/material/core';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { ReplaySubject, Subject } from 'rxjs';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { DatePipe } from '@angular/common';\r\nimport * as moment from 'moment';\r\nimport { TableUtil } from \"../../services/exportUtil\";\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { FileExporterService } from 'src/app/core/services/file-exporter.service';\r\n\r\n@Component({\r\n selector: 'app-associate-exit-report',\r\n templateUrl: './associate-exit-report.component.html',\r\n styleUrls: ['./associate-exit-report.component.scss']\r\n})\r\nexport class AssociateExitReportComponent implements OnInit {\r\n reportDetails: AssociateExitReportResponse[] = [];\r\n dataSource: MatTableDataSource;\r\n Role:string;\r\n exitReportForm:FormGroup;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n exitReportRequestObj:AssociateExitReportRequestForPm = new AssociateExitReportRequestForPm();\r\n isProgramManager:boolean = true;\r\n private resources = servicePath.API.PagingConfigValue; \r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n displayedColumns: string[] = ['AssociateCode','AssociateName','Grade','Gender','Department','TechnologyGroup', 'JoinDate',\"ExitDate\", 'Project', 'ProgramManager','ReportingManager', 'ExitType', 'ExitCause', 'RehireEligibility', 'LegalExit','ImpactOnClientDelivery','ServiceTenure','ServiceTenureWithSG','ServiceTenurePriorToSG','ServiceTenureRange','ServiceTenureWithSGRange','FinancialYear','Quarter'];\r\n constructor(private associateExitReportService: AssociateExitReportService, \r\n private _snackBar: MatSnackBar,\r\n public navService: NavService,\r\n private fileExporterService:FileExporterService,\r\n private spinner: NgxSpinnerService,private formBuilder:FormBuilder) { }\r\n\r\n ngOnInit(): void {\r\n this.Role = JSON.parse(\r\n sessionStorage.AssociatePortal_UserInformation\r\n ).roleName\r\n\r\n if(this.Role == 'Program Manager'){\r\n this.createAssociateExitReportForm();\r\n this.isProgramManager = true;\r\n }\r\n else{\r\n this.GetAssociateExitReportDetails();\r\n this.isProgramManager = false;\r\n } \r\n }\r\n\r\n createAssociateExitReportForm(){\r\n this.exitReportForm = this.formBuilder.group({\r\n startDate: [null, Validators.required],\r\n endDate: [null, Validators.required],\r\n })\r\n }\r\n GetAssociateExitReportDetailsForPM(): void {\r\n if(this.exitReportForm.valid){\r\n this.exitReportRequestObj.FromDate = moment(this.exitReportForm.value.startDate).format('YYYY-MM-DD');\r\n this.exitReportRequestObj.ToDate = moment(this.exitReportForm.value.endDate).format('YYYY-MM-DD');\r\n\r\n this.spinner.show();\r\n this.associateExitReportService.GetAssociateExitReportForPM(this.exitReportRequestObj).subscribe(\r\n (res: AssociateExitReportResponse[]) => {\r\n if(res.length > 0 && res != null) { \r\n this.reportDetails = res; \r\n this.dataSource = new MatTableDataSource(this.reportDetails);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.spinner.hide();\r\n }\r\n else { \r\n this.reportDetails = [];\r\n this.dataSource = new MatTableDataSource(this.reportDetails);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.spinner.hide();\r\n this._snackBar.open('No records found', 'x', {\r\n duration: 1000,\r\n panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n },\r\n (error: any) => { \r\n this.reportDetails = [];\r\n this.dataSource = new MatTableDataSource(this.reportDetails);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort; \r\n this.spinner.hide();\r\n this._snackBar.open('Unable to get Associate Exit details', 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n\r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n else{\r\n this._snackBar.open('Please Select Start Date and End Date', 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n }\r\n GetAssociateExitReportDetails(): void{ \r\n this.spinner.show();\r\n this.associateExitReportService.GetAssociateExitReport().subscribe(\r\n (res: AssociateExitReportResponse[]) => {\r\n if(res.length > 0 && res != null) { \r\n this.reportDetails = res; \r\n this.reportDetails.forEach((record: AssociateExitReportResponse) => { \r\n record.ImpactOnClientDeliveryStr = (record.ImpactOnClientDelivery == true) ? 'Yes' : 'No'; \r\n record.RehireEligibilityStr = (record.RehireEligibility == true) ? 'Yes' : 'No';\r\n record.LegalExitStr = (record.LegalExit == true) ? 'Yes' : 'No'; \r\n });\r\n this.dataSource = new MatTableDataSource(this.reportDetails);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.spinner.hide();\r\n }\r\n else { \r\n this.spinner.hide();\r\n this._snackBar.open('No records found', 'x', {\r\n duration: 1000,\r\n panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n },\r\n (error: any) => { \r\n this.spinner.hide();\r\n this._snackBar.open('Unable to get Associate Exit details', 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n\r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n this.applyFilter(responseData);\r\n });\r\n } \r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.reportDetails);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n }\r\n\r\n exportAsXLSX() { \r\n this.spinner.show();\r\n if(this.Role == 'Program Manager'){\r\n this.exportDataForPM();\r\n }\r\n else{\r\n this.exportDataForCorporate();\r\n }\r\n\r\n this.spinner.hide();\r\n }\r\n\r\n clearInput(evt: any, fieldName): void {\r\n if(fieldName=='startDate'){\r\n evt.stopPropagation();\r\n this.exitReportForm.get('startDate').reset();\r\n }\r\n if(fieldName=='endDate'){\r\n evt.stopPropagation();\r\n this.exitReportForm.get('endDate').reset();\r\n }\r\n }\r\n\r\n exportDataForCorporate(){\r\n const columnsForExcel = this.dataSource.data.map(x => ({\r\n 'Associate Code': x.AssociateCode,\r\n 'Associate Name': x.AssociateName,\r\n 'Grade': x.Grade,\r\n 'Gender': x.Gender,\r\n 'Department': x.Department,\r\n 'Technology Group': x.TechnologyGroup, \r\n 'Project': x.Project,\r\n 'Program Manager': x.ProgramManager,\r\n 'Reporting Manager': x.ReportingManager, \r\n 'Join Date': (moment(x.JoinDate).format('MM/DD/YYYY')),\r\n 'Exit Date': (moment(x.ExitDate).format('MM/DD/YYYY')),\r\n 'Exit Type': x.ExitType,\r\n 'Exit Cause': x.ExitCause,\r\n 'Eligible for Rehire': x.RehireEligibilityStr,\r\n 'Impact On Client Delivery': x.ImpactOnClientDeliveryStr,\r\n 'Legal Exit': x.LegalExitStr,\r\n 'Service Tenure':x.ServiceTenure,\r\n 'Service Tenure With SG':x.ServiceTenureWithSG,\r\n 'Service Tenure Prior To SG':x.ServiceTenurePriorToSG,\r\n 'Service Tenure Range':x.ServiceTenureRange,\r\n 'Service Tenure With SG Range':x.ServiceTenureWithSGRange,\r\n 'Financial Year': x.FinancialYear,\r\n 'Quarter': x.Quarter, \r\n }));\r\n this.fileExporterService.exportToExcel(columnsForExcel, \"Associate Exit Report\"); \r\n }\r\n\r\n exportDataForPM(){\r\n const columnsForExcel = this.dataSource.data.map(x => ({\r\n 'Associate Name': x.AssociateName,\r\n 'Grade': x.Grade,\r\n 'Gender': x.Gender,\r\n 'Department': x.Department,\r\n 'Technology Group': x.TechnologyGroup, \r\n 'Program Manager': x.ProgramManager,\r\n 'Reporting Manager': x.ReportingManager, \r\n 'Join Date': (moment(x.JoinDate).format('MM/DD/YYYY')),\r\n 'Exit Date': (moment(x.ExitDate).format('MM/DD/YYYY'))\r\n }));\r\n this.fileExporterService.exportToExcel(columnsForExcel, \"Associate Exit Report\"); \r\n }\r\n\r\n clearFilter(){\r\n this.exitReportForm.reset();\r\n this.reportDetails = [];\r\n this.dataSource = new MatTableDataSource(this.reportDetails);\r\n }\r\n\r\n}\r\n\r\n"," \r\n
\r\n \r\n
Filter Associate Exit Report :
\r\n
\r\n
\r\n \r\n Start date:\r\n *\r\n \r\n \r\n \r\n close\r\n \r\n \r\n \r\n \r\n Start Date is required\r\n \r\n \r\n
\r\n
\r\n \r\n End date:\r\n *\r\n \r\n \r\n \r\n close\r\n \r\n \r\n \r\n \r\n End Date is required\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 \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 \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 \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 \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 \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
Associate Code {{element.AssociateCode}} Associate Name {{element.AssociateName}} Project {{element.Project}} Reporting Manager {{element.ReportingManager}} Program Manager {{element.ProgramManager}} Join Date {{element.JoinDate | date:'MM/dd/yyyy'}} Exit Date {{element.ExitDate | date:'MM/dd/yyyy'}} Grade {{element.Grade}} Gender {{element.Gender}} Department {{element.Department}} Technology Group {{element.TechnologyGroup}} Exit Type {{element.ExitType}} Exit Cause {{element.ExitCause}} Eligible for Rehire {{element.RehireEligibilityStr}} Legal Exit {{element.LegalExitStr}} Impact On Client Delivery {{element.ImpactOnClientDeliveryStr}} Service Tenure {{element.ServiceTenure}} Service Tenure With SG {{element.ServiceTenureWithSG}} Service Tenure Prior To SG {{element.ServiceTenurePriorToSG}} Service Tenure Range {{element.ServiceTenureRange}} Service Tenure With SG Range {{element.ServiceTenureWithSGRange}} Financial Year {{element.FinancialYear}} Quarter {{element.Quarter}}
No data
\r\n
\r\n
\r\n \r\n
\r\n \r\n

Loading ...

\r\n \r\n
\r\n
","import { Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { AssociateExitReportService } from '../../services/associate-exit-report.service';\r\nimport {\r\n ChartData,\r\n AssociateExitReportFilter,\r\n AssociateExitReportResponse\r\n} from '../../models/associate-exit-report.model';\r\nimport { GenericType, GenericModel } from '../../../../modules/master-layout/models/dropdowntype.model';\r\nimport { Validators, FormGroup, FormBuilder, FormGroupDirective } from '@angular/forms';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport {\r\n HttpClient,\r\n HttpHeaders,\r\n HttpErrorResponse,\r\n} from '@angular/common/http';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { take } from 'rxjs/operators';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { Chart } from 'chart.js';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { AllColorCodes } from '../../../../core/color-codes';\r\nimport { NavService } from '../../../master-layout/services/nav.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { FileExporterService } from 'src/app/core/services/file-exporter.service';\r\nimport { ReportsData } from '../../models/reportsdata.model';\r\nimport * as moment from 'moment';\r\n\r\n@Component({\r\n selector: 'app-associate-exit-summary-report',\r\n templateUrl: './associate-exit-summary-report.component.html',\r\n styleUrls: ['./associate-exit-summary-report.component.scss']\r\n})\r\nexport class AssociateExitSummaryReportComponent implements OnInit {\r\n themeAppearence = themeconfig.formfieldappearances;\r\n chartType = 'pie'; // Used to set chart type dynamically.\r\n lstAssociateExitData: ChartData[] = []; // Used to store data return by end point\r\n private lstAssociateExitDataTrim: ChartData[] = []; // used to stored trimmed data\r\n reportDetails: AssociateExitReportResponse[] = [];\r\n private associateExitChartSeriesData: number[] = []; // Used to store series data\r\n private associateExitChartSeriesName: string[] = []; // used to store series names\r\n reportName : string = '';\r\n reportValue : string = '';\r\n filter:AssociateExitReportFilter;\r\n lstEmployees: AssociateExitReportResponse[] = []; \r\n componentName: string; myForm: FormGroup;\r\n totalRecordsCount: number;\r\n errorMessage: any[];\r\n searchFormSubmitted: boolean = false;\r\n summaryList: any[] = [];\r\n options: any;\r\n searchData: AssociateExitReportFilter; \r\n errorSummary: string = '';\r\n step=0;\r\n loading: boolean;\r\n public reportStatus: boolean = false;\r\n isLoading: boolean = false;\r\n firstDate: Date;\r\n lastDate: Date;\r\n talentPoolName = '';\r\n public heading: string;\r\n colorCodes = AllColorCodes;\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n showProjectHistory = false;\r\n private resources = servicePath.API.PagingConfigValue;\r\n canvas: any;\r\n dataSource: MatTableDataSource;\r\n talentpoolReportData: ReportsData[];\r\n \r\n displayedColumns: string[] = ['Label', 'Value'];\r\n displayedColumnss: string[] = ['AssociateCode','AssociateName','Grade','Gender','Department','TechnologyGroup', 'JoinDate',\"ExitDate\", 'Project', 'ProgramManager','ReportingManager', 'ExitType', 'ExitCause', 'RehireEligibility', 'LegalExit','ImpactOnClientDelivery','ServiceTenure','ServiceTenureWithSG','ServiceTenurePriorToSG','ServiceTenureRange','ServiceTenureWithSGRange','FinancialYear','Quarter'];\r\n\r\n employeedataSource: MatTableDataSource;\r\n lstAssociateExitDataSource: MatTableDataSource;\r\n\r\n @ViewChild('resourceReportByProjectChart') resourceReportByProjectChart: any;\r\n @ViewChild('resourceReportByPieProjectChart') resourceReportByPieProjectChart: any;\r\n\r\n @ViewChild('sort1') sort1: MatSort;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild('sort2') sort2: MatSort; \r\n\r\n ctx(arg0: any): any {\r\n throw new Error('Method not implemented.');\r\n }\r\n\r\n constructor(private associateExitReportService: AssociateExitReportService,\r\n private fileExporterService: FileExporterService,\r\n public navService: NavService,\r\n private spinner: NgxSpinnerService,\r\n private _snackBar: MatSnackBar,\r\n private fb: FormBuilder\r\n ) {\r\n this.searchData = new AssociateExitReportFilter();\r\n this.PageSize = this.resources.PageSize;\r\n this.PageDropDown = this.resources.PageDropDown;\r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n\r\n ngOnInit() { \r\n \r\n this.myForm = this.fb.group({\r\n fromDate: ['', [Validators.required]],\r\n toDate: ['', [Validators.required]],\r\n reportType: ['', [Validators.required]] \r\n }); \r\n \r\n this.getSummaryTypes(); \r\n }\r\n\r\n getSummaryTypes(): void {\r\n this.associateExitReportService.GetAssociateExitReportTypes().subscribe((res: GenericType[]) => { \r\n this.summaryList = [];\r\n // this.summaryList.push({ label: '', value: null });\r\n res.forEach((element: GenericType) => {\r\n this.summaryList.push({ label: element.Name, value: element.Id });\r\n }); \r\n },\r\n (error: any) => { \r\n this._snackBar.open('Failed to Get Summary Type List!', 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n\r\n refreshExitData()\r\n {\r\n this.employeedataSource = new MatTableDataSource(this.reportDetails); \r\n this.employeedataSource.paginator = this.paginator;\r\n this.employeedataSource.sort = this.sort1; \r\n }\r\n\r\n fetchAssociateExitReport() {\r\n \r\n if(this.myForm.valid){\r\n this.step = 1;\r\n } \r\n this.isLoading = true;\r\n this.searchFormSubmitted = true;\r\n if (this.myForm.controls.fromDate.value === '' || this.myForm.controls.toDate.value === '' || this.myForm.controls.fromDate.value === null || this.myForm.controls.toDate.value === null || this.myForm.controls.reportType.value === null || this.myForm.controls.reportType.value.value === undefined) {\r\n this.isLoading = false; \r\n return;\r\n } \r\n \r\n this.spinner.show()\r\n if (this.searchData.FromDate != null && this.searchData.ToDate != null) {\r\n this.errorSummary = '';\r\n if (moment(this.searchData.FromDate).isAfter(new Date())) {\r\n this.errorSummary = 'From date should be less than today';\r\n this.isLoading = false;\r\n this.spinner.hide()\r\n this._snackBar.open('From date should be less than today', 'x', {\r\n duration: 5000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n return false;\r\n }\r\n if (moment(this.searchData.ToDate).isAfter(new Date())) {\r\n this.errorSummary = 'To date should be less than today';\r\n this.isLoading = false;\r\n this.spinner.hide()\r\n this._snackBar.open('To date should be less than today', 'x', {\r\n duration: 5000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return false;\r\n }\r\n if (moment(this.searchData.FromDate).isAfter(this.searchData.ToDate)) {\r\n this.errorSummary = 'From Date should be less than To Date';\r\n this.isLoading = false;\r\n this.spinner.hide()\r\n this._snackBar.open('From Date should be less than To Date', 'x', {\r\n duration: 5000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return false;\r\n } \r\n this.reportValue = '';\r\n this.searchData.FromDate = moment(this.searchData.FromDate).format('YYYY-MM-DD');\r\n this.searchData.ToDate = moment(this.searchData.ToDate).format('YYYY-MM-DD');\r\n this.getChartData(this.searchData);\r\n this.GetAssociateExitReportDetails(this.searchData);\r\n this.totalRecordsCount = this.reportDetails.length; \r\n }\r\n }\r\n\r\n GetAssociateExitReportDetails(filter: AssociateExitReportFilter): void{ \r\n this.spinner.show();\r\n this.reportDetails = [];\r\n this.associateExitReportService.GetAssociateExitGridReport(filter).subscribe(\r\n (res: AssociateExitReportResponse[]) => {\r\n if(res != null && res.length > 0\r\n ) { \r\n this.reportDetails = res; \r\n this.reportDetails.forEach((record: AssociateExitReportResponse) => { \r\n record.ImpactOnClientDeliveryStr = (record.ImpactOnClientDelivery == true) ? 'Yes' : 'No'; \r\n record.RehireEligibilityStr = (record.RehireEligibility == true) ? 'Yes' : 'No';\r\n record.LegalExitStr = (record.LegalExit == true) ? 'Yes' : 'No'; \r\n });\r\n this.employeedataSource = new MatTableDataSource(this.reportDetails);\r\n this.employeedataSource.paginator = this.paginator;\r\n this.employeedataSource.sort = this.sort1; \r\n\r\n switch(filter.ReportType)\r\n {\r\n case 1:\r\n this.employeedataSource.filterPredicate =\r\n (data: AssociateExitReportResponse, filter: string) => data.ExitCause == filter; \r\n break;\r\n case 2:\r\n this.employeedataSource.filterPredicate =\r\n (data: AssociateExitReportResponse, filter: string) => data.RehireEligibilityStr == filter; \r\n break;\r\n case 3:\r\n this.employeedataSource.filterPredicate =\r\n (data: AssociateExitReportResponse, filter: string) => data.Gender.startsWith(filter); \r\n break;\r\n case 4:\r\n this.employeedataSource.filterPredicate =\r\n (data: AssociateExitReportResponse, filter: string) => data.Grade == filter; \r\n break;\r\n case 5:\r\n this.employeedataSource.filterPredicate =\r\n (data: AssociateExitReportResponse, filter: string) => data.ImpactOnClientDeliveryStr == filter; \r\n break;\r\n case 6:\r\n this.employeedataSource.filterPredicate =\r\n (data: AssociateExitReportResponse, filter: string) => data.LegalExitStr == filter; \r\n break;\r\n case 7:\r\n this.employeedataSource.filterPredicate =\r\n (data: AssociateExitReportResponse, filter: string) => data.ProgramManager == filter; \r\n break;\r\n case 8:\r\n this.employeedataSource.filterPredicate =\r\n (data: AssociateExitReportResponse, filter: string) => data.TechnologyGroup == filter; \r\n break;\r\n case 9:\r\n this.employeedataSource.filterPredicate =\r\n (data: AssociateExitReportResponse, filter: string) => data.ServiceTenureRange == filter; \r\n break;\r\n case 10:\r\n this.employeedataSource.filterPredicate =\r\n (data: AssociateExitReportResponse, filter: string) => data.ServiceTenureWithSGRange == filter; \r\n break;\r\n case 11:\r\n this.employeedataSource.filterPredicate =\r\n (data: AssociateExitReportResponse, filter: string) => data.ExitType == filter; \r\n break;\r\n }\r\n \r\n this.spinner.hide();\r\n }\r\n else { \r\n this.spinner.hide();\r\n this.employeedataSource = new MatTableDataSource(this.reportDetails);\r\n this.employeedataSource.paginator = this.paginator;\r\n this.employeedataSource.sort = this.sort1; \r\n this._snackBar.open('No records found', 'x', {\r\n duration: 1000,\r\n panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n },\r\n (error: any) => { \r\n this.spinner.hide();\r\n this._snackBar.open('Unable to get Associate Exit details', 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n\r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n this.applyFilter(responseData);\r\n });\r\n } \r\n\r\n getChartData(filter: AssociateExitReportFilter) {\r\n this.spinner.show();\r\n this.associateExitChartSeriesName = [];\r\n this.associateExitChartSeriesData = [];\r\n this.lstAssociateExitData = [];\r\n this.associateExitReportService.GetAssociateExitChartReport(filter).subscribe(\r\n (response: ChartData[]) => {\r\n this.spinner.hide();\r\n this.lstAssociateExitData = response;\r\n\r\n\r\n response.forEach((res) => {\r\n if(res.Label == 'True')\r\n res.Label = 'Yes';\r\n else if(res.Label == 'False')\r\n res.Label = 'No'; \r\n this.associateExitChartSeriesName.push(res.Label);\r\n this.associateExitChartSeriesData.push(res.Value);\r\n }); \r\n\r\n // Render Chart\r\n this.renderChart(this.chartType); \r\n this.lstAssociateExitDataSource = new MatTableDataSource(this.lstAssociateExitData); \r\n this.lstAssociateExitDataSource.sort = this.sort2 \r\n },\r\n (error: any) => { this.spinner.hide(); }\r\n );\r\n }\r\n \r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n if (filterValue) {\r\n this.employeedataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.employeedataSource = new MatTableDataSource(this.reportDetails);\r\n this.employeedataSource.paginator = this.paginator;\r\n this.employeedataSource.sort = this.sort1; \r\n }\r\n } else {\r\n this.employeedataSource = new MatTableDataSource(this.reportDetails);\r\n this.employeedataSource.paginator = this.paginator;\r\n this.employeedataSource.sort = this.sort1; \r\n }\r\n }\r\n renderChart(typeOfChart: string): void {\r\n // Chart Rendering code \r\n if (typeOfChart === 'bar') {\r\n this.getResourceReportBarChart();\r\n }\r\n else {\r\n this.getResourceReportPieChart();\r\n }\r\n }\r\n\r\n clearInput(evt: any, fieldName): void {\r\n if(fieldName=='toDate'){\r\n evt.stopPropagation();\r\n this.myForm.get('toDate').reset();\r\n }\r\n if(fieldName=='fromDate'){\r\n evt.stopPropagation();\r\n this.myForm.get('fromDate').reset();\r\n }\r\n }\r\n\r\n selectedbarData(event: any) {\r\n this.spinner.show(); \r\n const data = this.myChart.getElementsAtXAxis(event); \r\n if (data.length > 0) {\r\n let filterValue = (data[0]._model.label as string);\r\n this.reportValue = filterValue; \r\n this.employeedataSource.filter = filterValue; \r\n }\r\n this.spinner.hide(); \r\n }\r\n\r\n selectedPieData(event: any) { \r\n this.spinner.show();\r\n const data = this.myPieChart.getElementsAtEvent(event); \r\n if (data.length > 0) {\r\n let filterValue = (data[0]._model.label as string);\r\n this.reportValue = filterValue; \r\n this.employeedataSource.filter = filterValue; \r\n }\r\n this.spinner.hide(); \r\n }\r\n\r\n onBarChartClick(): void {\r\n this.chartType = 'bar';\r\n this.renderChart(this.chartType);\r\n }\r\n onPieChartClick(): void {\r\n this.chartType = 'pie';\r\n this.renderChart(this.chartType);\r\n }\r\n\r\n plugin = {\r\n id: 'emptyChart',\r\n afterDraw(chart, args, options) {\r\n const { datasets } = chart.data;\r\n let hasData = false;\r\n\r\n for (let dataset of datasets) {\r\n //set this condition according to your needs\r\n if (dataset.data.length > 0 && dataset.data.some(item => item !== 0)) {\r\n hasData = true;\r\n break;\r\n }\r\n }\r\n\r\n if (!hasData) {\r\n \r\n const { chartArea: { left, top, right, bottom }, ctx } = chart;\r\n const centerX = (left + right) / 2;\r\n const centerY = (top + bottom) / 2;\r\n\r\n chart.clear();\r\n ctx.save();\r\n ctx.textAlign = 'center';\r\n ctx.textBaseline = 'middle';\r\n ctx.fillText('No data', centerX, centerY);\r\n ctx.restore();\r\n }\r\n }\r\n};\r\n\r\n myChart : any = null;\r\n getResourceReportBarChart(): void { \r\n \r\n const canvas = document.getElementById('resourceReportByProjectChart'); \r\n if( this.myChart ) \r\n {\r\n this.myChart?.destroy(); \r\n }\r\n \r\n const ctx = canvas; \r\n this.myChart = new Chart(ctx, {\r\n plugins: [this.plugin],\r\n type: 'bar',\r\n data: {\r\n labels: this.associateExitChartSeriesName,\r\n datasets: [\r\n {\r\n label: this.reportName,\r\n backgroundColor: this.colorCodes,\r\n data: this.associateExitChartSeriesData,\r\n },\r\n ],\r\n },\r\n options: {\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n barWidth: 1,\r\n scales: {\r\n yAxes: [\r\n {\r\n ticks: {\r\n stepSize: 5,\r\n beginAtZero: true,\r\n },\r\n },\r\n ],\r\n },\r\n legend: {\r\n position: 'bottom',\r\n },\r\n },\r\n }); \r\n \r\n }\r\nmyPieChart : any = null;\r\n getResourceReportPieChart(): void {\r\n const canvas = document.getElementById('resourceReportByPieProjectChart');\r\n const ctx = canvas;\r\n if( this.myPieChart ) \r\n {\r\n this.myPieChart?.destroy(); \r\n }\r\n this.myPieChart = new Chart(ctx, {\r\n plugins: [this.plugin],\r\n type: 'pie',\r\n data: {\r\n labels: this.associateExitChartSeriesName,\r\n datasets: [\r\n {\r\n backgroundColor: this.colorCodes,\r\n data: this.associateExitChartSeriesData,\r\n },\r\n ],\r\n },\r\n options: {\r\n legend: {\r\n position: 'bottom',\r\n },\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n },\r\n });\r\n }\r\n\r\n changeChart(e) {\r\n if (e.index === 0) {\r\n this.chartType = 'pie';\r\n this.getResourceReportPieChart();\r\n }\r\n else if (e.index === 1) {\r\n this.chartType = 'bar';\r\n this.getResourceReportBarChart();\r\n }\r\n\r\n }\r\n\r\n \r\n \r\n clearFilter() {\r\n this.myForm.reset();\r\n this.myForm.clearValidators(); \r\n this.searchFormSubmitted = false;\r\n this.errorSummary = ''; \r\n this.searchData = new AssociateExitReportFilter();\r\n this.reportName = '';\r\n this.reportValue = '';\r\n this.associateExitChartSeriesName = [];\r\n this.associateExitChartSeriesData = [];\r\n this.renderChart(this.chartType); \r\n this.lstAssociateExitData = [];\r\n this.reportDetails = [];\r\n this.lstAssociateExitDataSource = new MatTableDataSource(this.lstAssociateExitData); \r\n this.lstAssociateExitDataSource.sort = this.sort2; \r\n this.employeedataSource = new MatTableDataSource(this.reportDetails);\r\n this.employeedataSource.paginator = this.paginator;\r\n this.employeedataSource.sort = this.sort1; \r\n this.totalRecordsCount = this.reportDetails.length; \r\n }\r\n \r\n exportAsXLSX() { \r\n this.spinner.show();\r\n const columnsForExcel = this.employeedataSource.data.map(x => ({\r\n 'Associate Code': x.AssociateCode,\r\n 'Associate Name': x.AssociateName,\r\n 'Grade': x.Grade,\r\n 'Gender': x.Gender,\r\n 'Department': x.Department,\r\n 'Technology Group': x.TechnologyGroup, \r\n 'Project': x.Project,\r\n 'Program Manager': x.ProgramManager,\r\n 'Reporting Manager': x.ReportingManager, \r\n 'Join Date': new Date(moment(x.JoinDate).format('MM/DD/YYYY')),\r\n 'Exit Date': new Date(moment(x.ExitDate).format('MM/DD/YYYY')),\r\n 'Exit Type': x.ExitType,\r\n 'Exit Cause': x.ExitCause,\r\n 'Eligible for Rehire': x.RehireEligibilityStr,\r\n 'Impact On Client Delivery': x.ImpactOnClientDeliveryStr,\r\n 'Legal Exit': x.LegalExitStr,\r\n 'Service Tenure':x.ServiceTenure,\r\n 'Service Tenure With SG':x.ServiceTenureWithSG,\r\n 'Service Tenure Prior To SG':x.ServiceTenurePriorToSG,\r\n 'Service Tenure Range':x.ServiceTenureRange,\r\n 'Service Tenure With SG Range':x.ServiceTenureWithSGRange,\r\n 'Financial Year': x.FinancialYear,\r\n 'Quarter': x.Quarter, \r\n }));\r\n this.fileExporterService.exportToExcel(columnsForExcel, \"Associate Exit Report\"); \r\n this.spinner.hide();\r\n }\r\n\r\n}\r\n","\r\n \r\n \r\n \r\n filter_list Filter Associate Exit Summary\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n From Date *\r\n\r\n \r\n \r\n close\r\n \r\n \r\n \r\n From Date is required\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n To Date *\r\n \r\n \r\n close\r\n \r\n \r\n \r\n To Date is required\r\n \r\n
\r\n
\r\n
\r\n \r\n Summary By \r\n \r\n \r\n \r\n {{report.label}}\r\n \r\n\r\n \r\n \r\n Summary By Required.\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 \r\n \r\n \r\n pie_chart\r\n Pie\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n bar_chart\r\n Bar\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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{reportName}}\r\n {{element.Label}} Count\r\n {{element.Value}}
No data
\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 {{reportName}}: {{reportValue}} \r\n \r\n
\r\n
\r\n
\r\n\r\n
0\" class=\"mt-4\">\r\n \r\n
\r\n
\r\n
\r\n autorenew\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 \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 \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 \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 \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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Associate Code {{element.AssociateCode}} Associate Name {{element.AssociateName}} Project {{element.Project}} Reporting Manager {{element.ReportingManager}} Program Manager {{element.ProgramManager}} Join Date {{element.JoinDate | date:'MM/dd/yyyy'}} Exit Date {{element.ExitDate | date:'MM/dd/yyyy'}} Grade {{element.Grade}} Gender {{element.Gender}} Department {{element.Department}} Technology Group {{element.TechnologyGroup}} Exit Type {{element.ExitType}} Exit Cause {{element.ExitCause}} Eligible for Rehire {{element.RehireEligibilityStr}} Legal Exit {{element.LegalExitStr}} Impact On Client Delivery {{element.ImpactOnClientDeliveryStr}} Service Tenure {{element.ServiceTenure}} Service Tenure With SG {{element.ServiceTenureWithSG}} Service Tenure Prior To SG {{element.ServiceTenurePriorToSG}} Service Tenure Range {{element.ServiceTenureRange}} Service Tenure With SG Range {{element.ServiceTenureWithSGRange}} Financial Year {{element.FinancialYear}} Quarter {{element.Quarter}}
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n

Loading ...

\r\n
","import { Component, Inject, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n//import { FullCalendarModule } from \"@fullcalendar/angular\";\r\nimport { CalendarOptions, EventInput } from '@fullcalendar/core'; \r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport {\r\n AttendanceReport,\r\n AttendanceReportFilter,\r\n AttendanceDetailReport, \r\n SelectItem,\r\n AttendanceDetailReportData\r\n} from '../../models/associate-attendance-report.model';\r\n// import Tooltip from 'tooltip.js';\r\nimport { FullCalendarComponent } from '@fullcalendar/angular';\r\n\r\n\r\n@Component({\r\n selector: 'app-attendance-report-dialog',\r\n templateUrl: './attendance-report-dialog.component.html',\r\n styleUrls: ['./attendance-report-dialog.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AttendanceReportDialogComponent implements OnInit {\r\nemployeeName:string;\r\ndaysWorked:number;\r\ncalendarOptions: CalendarOptions = {\r\n initialView: 'dayGridMonth', \r\n events: [\r\n ],\r\n};\r\n\r\nevents:any;\r\n@ViewChild('calendar') calendarComponent: FullCalendarComponent; // the #calendar in the template\r\n\r\npublic eventData = new BehaviorSubject([]);\r\n\r\nconstructor(\r\n private dialogRef: MatDialogRef\r\n , @Inject(MAT_DIALOG_DATA) public data: AttendanceDetailReportData\r\n ) { \r\n this.eventData.next(data.eventData)\r\n this.getEvents().subscribe(events => { this.events = events.map((event) => {\r\n // event.allDay = true\r\n if(event.title === 'Holiday'){\r\n event['backgroundColor'] = 'Orange'\r\n }\r\n else if(event.title === 'Weekend'){\r\n event['backgroundColor'] = 'gray'\r\n }\r\n else if(event.title ==='Present'){\r\n event['backgroundColor'] = 'green'\r\n }\r\n else {\r\n let title = event.title.split(': ')\r\n // if((title[0] === 'Checkout Time' && title[1] === 'null') || (title[0] === 'Total Hours' && title[1] === '0') || (title[0] === 'Checkin Time' && title[1] === 'null')){\r\n // event['backgroundColor'] = 'red';\r\n // event['borderColor']='white';\r\n // // event['description']= 'You Missed the punch!!'; \r\n // }\r\n if(!((title[0] === 'Checkout Time') || (title[0] === 'Total Hours') || (title[0] === 'Checkin Time'))){\r\n event['backgroundColor'] = 'red';\r\n }\r\n }\r\n return event;\r\n })});\r\n this.employeeName = data.filter.EmployeeName; \r\n this.daysWorked = data.daysWorked; \r\n\r\n this.calendarOptions = {\r\n initialView: 'dayGridMonth', \r\n initialDate: data.filter.FromDate,\r\n // height: 750,\r\n events : data.eventData,\r\n eventBorderColor: 'white'\r\n // eventDidMount: this.eventDidMount.bind(this)\r\n }; \r\n }\r\n\r\n ngOnInit(): void {\r\n \r\n }\r\n\r\n onClose(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n getEvents(): Observable {\r\n return this.eventData.asObservable();\r\n }\r\n\r\n // eventDidMount(info) {\r\n // console.log(info)\r\n // if(Object.keys(info.event.extendedProps).length > 0){\r\n // const tooltip = tippy(info.el, {\r\n // content: info.event.extendedProps.description, // You can customize this with other event properties\r\n // arrow: true\r\n // });\r\n // }\r\n \r\n // }\r\n }\r\n \r\n \r\n\r\n","\r\n
\r\n
\r\n {{employeeName}} Attendance   (Total Days: {{daysWorked}})\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 { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { DomainDataCount } from '../../models/domainreport.model';\r\nimport { EmployeeReportData } from '../../models/employee.model';\r\n// import { SetupChart } from '../../setupchart.component';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { DomainReportService } from '../../services/domain-report.service';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { NavService } from '../../../master-layout/services/nav.service';\r\nimport { MatTableModule } from '@angular/material/table';\r\n//import {ChartsModule} from 'ng2-charts/ng2-charts';\r\nimport { Chart } from 'chart.js';\r\nimport { AllColorCodes } from '../../../../core/color-codes';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\n@Component({\r\n selector: 'app-domain-report',\r\n templateUrl: './domain-report.component.html',\r\n styleUrls: ['./domain-report.component.scss'],\r\n})\r\nexport class DomainReportComponent implements OnInit {\r\n ctx(arg0: any): any {\r\n throw new Error('Method not implemented.');\r\n }\r\n canvas: any;\r\n data: any;\r\n chartType: string = 'bar'; // Used to set chart type dynamically.\r\n lstDomainData: DomainDataCount[] = [];\r\n private domainChartSeriesData: number[] = [];\r\n private domainChartSeriesName: string[] = [];\r\n domainChartData: any;\r\n options: any;\r\n colorCodes = AllColorCodes;\r\n lstEmployees: EmployeeReportData[] = []; // Used to store employee details of a specific pool\r\n // private setupChart: SetupChart;\r\n domainName: string = '';\r\n employeedisplayedColumns: string[] = [\r\n 'EmployeeCode',\r\n 'EmployeeName',\r\n 'Designation',\r\n 'Grade',\r\n ];\r\n domaindisplayedcolumns: string[] = ['DomainName', 'ResourceCount'];\r\n\r\n employeedataSource: MatTableDataSource;\r\n domaindataSource: MatTableDataSource;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n @ViewChild('domainChart') domainChart: any;\r\n @ViewChild('domainPieChart') domainPieChart: any;\r\n \r\n\r\n constructor(\r\n private _http: HttpClient,\r\n private _resourceDomainReportsService: DomainReportService,\r\n public navService: NavService,\r\n private spinner: NgxSpinnerService\r\n ) {\r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees);\r\n this.employeedataSource.paginator = this.paginator;\r\n this.employeedataSource.sort = this.sort;\r\n\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n ngOnInit(): void {\r\n this.getDomainReportsCount();\r\n }\r\n\r\n getDomainReportsCount(): void {\r\n this.spinner.show()\r\n this._resourceDomainReportsService\r\n .GetDomainDataCount()\r\n .subscribe((domainResourceCount: DomainDataCount[]) => {\r\n this.spinner.hide()\r\n this.lstDomainData = [];\r\n this.lstDomainData = domainResourceCount;\r\n domainResourceCount.forEach((res: any) => {\r\n this.domainChartSeriesData.push(res.ResourceCount);\r\n this.domainChartSeriesName.push(res.DomainName);\r\n });\r\n if (\r\n this.domainChartSeriesData.length > 0 &&\r\n !this.domainChartSeriesData.includes(0)\r\n )\r\n this.domainChartSeriesData.push(0);\r\n\r\n if (\r\n this.domainChartSeriesData.length > 0 &&\r\n this.domainChartSeriesName.length > 0\r\n )\r\n this.renderChart('bar');\r\n this.domaindataSource = new MatTableDataSource(this.lstDomainData);\r\n this.domaindataSource.paginator = this.paginator;\r\n this.domaindataSource.sort = this.sort;\r\n });\r\n\r\n this.domainChartSeriesData;\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n if (filterValue) {\r\n this.employeedataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees);\r\n this.employeedataSource.paginator = this.paginator;\r\n this.employeedataSource.sort = this.sort;\r\n }\r\n } else {\r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees);\r\n this.employeedataSource.paginator = this.paginator;\r\n this.employeedataSource.sort = this.sort;\r\n }\r\n }\r\n\r\n renderChart(typeOfChart: string): void {\r\n if (typeOfChart == 'bar') this.getBarChart();\r\n else this.getPieChart();\r\n }\r\n selectedbarData(event: any) {\r\n let data = this.domainChart.getElementsAtEvent(event);\r\n this.domainName = data[0]._model.label;\r\n\r\n let domainData: DomainDataCount = this.lstDomainData.find(\r\n (data) => data.DomainName.toLowerCase() == this.domainName.toLowerCase()\r\n );\r\n this.spinner.show()\r\n this._resourceDomainReportsService\r\n .GetEmployeesByDomainId(domainData.DomainID)\r\n .subscribe((response: EmployeeReportData[]) => {\r\n this.spinner.hide()\r\n this.lstEmployees = [];\r\n if (response.length > 0) this.lstEmployees = response;\r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees);\r\n this.employeedataSource.paginator = this.paginator;\r\n this.employeedataSource.sort = this.sort; \r\n });\r\n }\r\n\r\n\r\n\r\n selectedPieData(event: any) {\r\n this.spinner.show()\r\n let data = this.domainPieChart.getElementsAtEvent(event);\r\n this.domainName = data[0]._model.label;\r\n\r\n let domainData: DomainDataCount = this.lstDomainData.find(\r\n (data) => data.DomainName.toLowerCase() == this.domainName.toLowerCase()\r\n );\r\n\r\n this._resourceDomainReportsService\r\n .GetEmployeesByDomainId(domainData.DomainID)\r\n .subscribe((response: EmployeeReportData[]) => {\r\n this.spinner.hide()\r\n this.lstEmployees = [];\r\n if (response.length > 0) this.lstEmployees = response;\r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees);\r\n this.employeedataSource.paginator = this.paginator;\r\n this.employeedataSource.sort = this.sort; \r\n });\r\n }\r\n \r\n changeChart(e) {\r\n if (e.index == 0) {\r\n this.getBarChart();\r\n }\r\n else if (e.index == 1) {\r\n this.getPieChart();\r\n }\r\n\r\n }\r\n\r\n getBarChart(): void {\r\n const canvas = document.getElementById('domainChart');\r\n const ctx = canvas;\r\n this.domainChart = new Chart(ctx, {\r\n type: 'bar',\r\n data: {\r\n labels: this.domainChartSeriesName,\r\n datasets: [\r\n {\r\n label: 'Domain',\r\n backgroundColor: this.colorCodes,\r\n data: this.domainChartSeriesData,\r\n },\r\n ],\r\n },\r\n options: {\r\n legend: {\r\n position: 'bottom',\r\n },\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n barWidth: 1,\r\n scales: {\r\n yAxes: [\r\n {\r\n ticks: {\r\n stepSize: 10,\r\n beginAtZero: true,\r\n },\r\n },\r\n ],\r\n },\r\n events: ['click'],\r\n tooltips: {\r\n mode: 'nearest',\r\n },\r\n },\r\n });\r\n }\r\n\r\n getPieChart(): void {\r\n\r\n const canvas = document.getElementById('domainPieChart');\r\n const ctx = canvas;\r\n this.domainPieChart = new Chart(ctx, {\r\n type: 'pie',\r\n data: {\r\n labels: this.domainChartSeriesName,\r\n datasets: [\r\n {\r\n backgroundColor: this.colorCodes,\r\n data: this.domainChartSeriesData,\r\n },\r\n ],\r\n },\r\n options: {\r\n legend: {\r\n position: 'bottom',\r\n },\r\n responsive: false,\r\n },\r\n });\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n bar_chart\r\n Bar\r\n \r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n pie_chart\r\n Pie\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 \r\n \r\n \r\n \r\n
\r\n Domain Name\r\n \r\n {{ element.DomainName }}\r\n \r\n Resource Count\r\n \r\n {{element.ResourceCount }}\r\n
No data
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n 0\">Domain Name :\r\n {{this.domainName}} \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 \r\n \r\n \r\n \r\n \r\n
\r\n Employee Code\r\n \r\n {{ element.EmployeeCode }}\r\n \r\n Employee Name\r\n \r\n {{ element.EmployeeName }}\r\n \r\n Designation\r\n \r\n {{ element.Designation }}\r\n \r\n Grade\r\n \r\n {{ element.Grade }}\r\n
No data
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n

Loading ...

\r\n
","import { Component, OnInit, ViewChild, ViewChildren, QueryList } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { FinanceReportService } from '../../services/finance-report.service';\r\nimport { MasterDataService } from '../../../master-layout/services/masterdata.service';\r\nimport { ReportsData } from '../../models/reportsdata.model';\r\nimport { ReportsFilterData } from '../../models/reportsfilter.model';\r\nimport { FinanceReportFilterData } from '../../models/reportsfilter.model';\r\nimport { ProjectDetails } from '../../../onboarding/models/projects.model';\r\nimport { Validators, FormGroup, FormBuilder, FormGroupDirective } from '@angular/forms';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport * as moment from 'moment';\r\nimport { BooleanToStringPipe } from '../../pipes/BooleanToStringPipe';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource, MatTable } from '@angular/material/table';\r\nimport { FinanceReportData } from '../../models/reportsfilter.model';\r\nimport {\r\n MatSnackBar,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition,\r\n} from '@angular/material/snack-bar';\r\n\r\nimport { ReplaySubject } from 'rxjs';\r\nimport { Subject } from 'rxjs';\r\nimport { take, takeUntil } from 'rxjs/operators';\r\nimport { NavService } from '../../../master-layout/services/nav.service';\r\nimport { Observable } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { MatOption } from '@angular/material/core';\r\nimport { DataSource } from '@angular/cdk/table';\r\nimport { FileExporterService } from 'src/app/core/services/file-exporter.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-finance-report',\r\n templateUrl: './finance-report.component.html',\r\n styleUrls: ['./finance-report.component.scss'],\r\n providers: [FinanceReportService, MasterDataService, BooleanToStringPipe]\r\n\r\n})\r\n\r\nexport class FinanceReportComponent implements OnInit {\r\n filteredBanksMulti: ReplaySubject = new ReplaySubject(1);\r\n filteredcols: any[];\r\n displaycolsfields: any[];\r\n dataSource: MatTableDataSource;\r\n themeAppearence = themeconfig.formfieldappearances;\r\n Tablegroup: FormGroup;\r\n displaycols = [];\r\n displaycolsExcel = [];\r\n searchData: FinanceReportData;\r\n projectsList: any[] = [];\r\n financeReport: ReportsData[] = [];\r\n errorMessage: any[];\r\n searchFormSubmitted: boolean = false;\r\n componentName: string; myForm: FormGroup;\r\n @ViewChild('financeFilter') financeFilter: any;\r\n @ViewChildren(MatPaginator) paginator = new QueryList();\r\n //@ViewChildren(MatPaginator) paginator: MatPaginator;\r\n //@ViewChild(MatSort, {static: false}) sort: MatSort;\r\n \r\n @ViewChildren(MatSort) sort = new QueryList();\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild('table') table: MatTable;\r\n\r\n @ViewChild('allSelected') private allSelected: MatOption;\r\n errorSummary: string = '';\r\n reportsFilterData: ReportsFilterData;\r\n totalRecordsCount: number;\r\n fromDate: Date;\r\n toDate: Date;\r\n maxDateValue: Date;\r\n daaa: any;\r\n cols: any[] = [];\r\n columnOptions: any[] = [];\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n private resources = servicePath.API.PagingConfigValue;\r\n filterDisplay: boolean = false;\r\n selectedColumns: any[];\r\n colsForExcel: any[];\r\n private _onDestroy = new Subject();\r\n loading: boolean;\r\n public reportStatus: boolean = false;\r\n isLoading: boolean = false;\r\n firstDate: Date;\r\n lastDate: Date;\r\n\r\n filteredProject : Observable;\r\n selectedProjectId:any;\r\n step=0;\r\n\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'right';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n constructor(private _financeReportService: FinanceReportService,\r\n private yesNoPipe: BooleanToStringPipe,\r\n private activatedRoute: ActivatedRoute,\r\n private masterDataService: MasterDataService, private fb: FormBuilder, public navService: NavService, private snackBar: MatSnackBar,private fileExporterService:FileExporterService, private spinner: NgxSpinnerService) {\r\n // this.searchData = new FinanceReportFilterData();\r\n this.searchData = new FinanceReportData();\r\n this.reportsFilterData = new ReportsFilterData();\r\n this.PageSize = this.resources.PageSize;\r\n this.PageDropDown = this.resources.PageDropDown;\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.getProjects();\r\n\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n this.cols = [\r\n { field: 'EmployeeName', header: 'Associate Name'},\r\n { field: 'ProjectName', header: 'Project' },\r\n { field: 'Allocationpercentage', header: '(%) Allocation' },\r\n { field: 'FromDate', header: 'From Date' },\r\n { field: 'ToDate', header: 'To Date' },\r\n { field: 'IsBillableForExcel', header: 'Billable' },\r\n { field: 'IsCriticalForExcel', header: 'Critical' },\r\n { field: 'EmployeeCode', header: 'Associate ID' },\r\n // { field: 'EmployeeName', header:'Associate Name' },\r\n { field: 'DesignationName', header: 'Designation Name' },\r\n { field: 'GradeName', header: 'Grade' },\r\n // { field:'ProjectName', header:'Project' },\r\n { field: 'SkillCode', header: 'Skill' },\r\n { field: 'RoleName', header: 'Role' },\r\n { field: 'ClientName', header: 'Client' },\r\n // { field: 'Allocationpercentage', header: '(%) Allocation' },\r\n { field: 'ClientBillingPercentage', header: '(%) Client Billing' },\r\n { field: 'InternalBillingPercentage', header: '(%) Internal Billing' },\r\n { field: 'ClientBillingRoleCode', header: 'Client Billing Role' },\r\n { field: 'InternalBillingRoleCode', header: 'Internal Billing Role' },\r\n\r\n { field: 'LeadName', header: 'Lead' },\r\n { field: 'ReportingManagerName', header: 'Reporting Manager' },\r\n { field: 'ProgramManagerName', header: 'Program Manager' },\r\n { field: 'IsResignedForExcel', header: 'Resigned' },\r\n { field: 'IsLongLeaveForExcel', header: 'Long Leave' },\r\n\r\n ];\r\n\r\n this.columnOptions = [];\r\n\r\n // tslint:disable-next-line:prefer-for-of\r\n for (let i = 0; i < this.cols.length; i++) {\r\n\r\n this.columnOptions.push({ label: this.cols[i].header, value: this.cols[i] });\r\n\r\n }\r\n this.selectedColumns = [\r\n this.cols[0],\r\n this.cols[1],\r\n this.cols[2],\r\n this.cols[3],\r\n this.cols[4],\r\n this.cols[5],\r\n this.cols[6]\r\n\r\n ];\r\n this.colsForExcel = [\r\n this.cols[7],\r\n this.cols[0],\r\n this.cols[8],\r\n this.cols[9],\r\n this.cols[10],\r\n this.cols[12],\r\n this.cols[1],\r\n this.cols[2],\r\n this.cols[13],\r\n this.cols[15],\r\n this.cols[5],\r\n this.cols[6],\r\n this.cols[18],\r\n this.cols[19],\r\n this.cols[3],\r\n this.cols[4],\r\n ]\r\n this.filteredcols = this.cols;\r\n this.displaycols = this.selectedColumns.map(col => col.header);\r\n this.displaycolsfields = this.selectedColumns.map(col => col.field);\r\n this.displaycolsExcel = this.colsForExcel.map(col => col.header);\r\n this.myForm = this.fb.group({\r\n fromDate: ['', [Validators.required]],\r\n toDate: ['', [Validators.required]],\r\n ProjectId: ['', null],\r\n columnselect: [],\r\n columnfilter: ['']\r\n });\r\n this.myForm.controls.columnselect.setValue(this.selectedColumns);\r\n this.maxDateValue = new Date();\r\n this.filteredBanksMulti.next(this.cols.slice());\r\n this.myForm.controls.columnfilter.valueChanges\r\n .pipe(takeUntil(this._onDestroy))\r\n .subscribe(() => {\r\n this.filterBanksMulti();\r\n });\r\n\r\n this.getDates();\r\n \r\n }\r\n\r\n \r\n\r\n clearInput(evt: any, fieldName): void {\r\n if(fieldName=='toDate'){\r\n evt.stopPropagation();\r\n this.myForm.get('toDate').reset();\r\n }\r\n if(fieldName=='fromDate'){\r\n evt.stopPropagation();\r\n this.myForm.get('fromDate').reset();\r\n }\r\n }\r\n\r\n private getDates(): void {\r\n var date = new Date(), y = date.getFullYear(), m = date.getMonth();\r\n this.firstDate = new Date(y, m, 1);\r\n this.lastDate = new Date();\r\n }\r\n\r\n\r\n // tslint:disable-next-line:use-lifecycle-interface\r\n // ngAfterViewInit() { this.dataSource.sort = this.sort.toArray()[0]; }\r\n // ngAfterViewInit() { this.dataSource.sort = this.sort; }\r\n ngAfterViewInit() {\r\n this.dataSource = new MatTableDataSource();\r\n this.dataSource.paginator = this.paginator.toArray()[0];\r\n this.dataSource.sort = this.sort.toArray()[0];\r\n \r\n}\r\n ngOnDestroy() {\r\n this._onDestroy.next();\r\n this._onDestroy.complete();\r\n }\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n if (filterValue) {\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n else {\r\n this.dataSource = new MatTableDataSource(this.financeReport);\r\n this.dataSource.paginator = this.paginator.toArray()[0];\r\n this.dataSource.sort = this.sort.toArray()[0];\r\n // this.dataSource.paginator = this.paginator;\r\n // this.dataSource.sort = this.sort;\r\n \r\n }\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.financeReport);\r\n this.dataSource.paginator = this.paginator.toArray()[0];\r\n this.dataSource.sort = this.sort.toArray()[0];\r\n // this.dataSource.paginator = this.paginator;\r\n // this.dataSource.sort = this.sort;\r\n \r\n }\r\n }\r\n private filterBanksMulti() {\r\n if (!this.cols) {\r\n return;\r\n }\r\n // get the search keyword\r\n let search = this.myForm.controls.columnfilter.value;\r\n if (!search) {\r\n this.filteredBanksMulti.next(this.cols.slice());\r\n return;\r\n } else {\r\n search = search.toLowerCase();\r\n }\r\n // filter the banks\r\n this.filteredBanksMulti.next(\r\n this.cols.filter(ele => ele.header.toLowerCase().indexOf(search) > -1)\r\n );\r\n }\r\n filter(event: any) {\r\n\r\n let filterValue = this.myForm.controls.columnfilter.value;\r\n if (filterValue) {\r\n return this.filteredcols = this.cols.filter(option => option.header.toLowerCase().includes(filterValue));\r\n }\r\n else {\r\n return this.cols;\r\n }\r\n }\r\n alterTable(event: any) {\r\n if (!this.allSelected.selected){\r\n this.selectedColumns = event.value;\r\n this.myForm.controls.columnselect.setValue(this.selectedColumns);\r\n this.displaycols = this.selectedColumns.map(col => col.header);\r\n this.table.renderRows();\r\n }\r\n }\r\n\r\n tosslePerOne(all) {\r\n if (this.allSelected.selected) {\r\n this.allSelected.deselect();\r\n return false;\r\n }\r\n if (\r\n this.selectedColumns.length ==\r\n this.cols.length\r\n )\r\n this.allSelected.select();\r\n }\r\n\r\n toggleAllSelection() {\r\n if (this.allSelected.selected) {\r\n this.selectedColumns= [...this.cols.map(item => item),0];\r\n this.myForm.controls.columnselect\r\n .patchValue(this.selectedColumns);\r\n this.displaycols = this.cols.map(col => col.header);\r\n this.table.renderRows();\r\n } else {\r\n this.myForm.controls.columnselect.patchValue([]);\r\n this.selectedColumns=[];\r\n this.displaycols = [];\r\n this.table.renderRows();\r\n }\r\n }\r\n \r\n\r\n \r\n getProjects(): void {\r\n this.masterDataService.GetProjectsList().subscribe((res: ProjectDetails[]) => {\r\n let projList: any[] = [];\r\n this.projectsList = [];\r\n projList.push({ label: '', value: null });\r\n res.forEach((element: ProjectDetails) => {\r\n projList.push({ label: element.ProjectName, value: element.ProjectId });\r\n });\r\n this.projectsList = projList.filter(\r\n (project, index, arr) => arr.findIndex(t => t.value === project.value) === index);\r\n\r\n this.filteredProject = this.myForm.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterProject(value))\r\n ); \r\n },\r\n (error: any) => {\r\n this.errorMessage = [];\r\n this.snackBar.open('Failed to Get Project List!', 'x', {\r\n duration: 5000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n }\r\n );\r\n }\r\n\r\n private _filterProject(value) {\r\n let filterValue;\r\n if (value && value.ProjectId) {\r\n filterValue = value.ProjectId.toLowerCase();\r\n return this.projectsList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.projectsList;\r\n }\r\n }\r\n\r\n clearField() {\r\n this.myForm.controls.ProjectId.setValue(null);\r\n this.searchData.ProjectId = this.myForm.controls.ProjectId.value;\r\n }\r\n\r\n selectedChangeIds(item){\r\n this.selectedProjectId = item.value;\r\n this.searchData.ProjectId = this.selectedProjectId;\r\n\r\n }\r\n\r\n fetchResourceReport() {\r\n this.spinner.show()\r\n if(this.myForm.valid){\r\n this.step = 1;\r\n }\r\n \r\n this.isLoading = true;\r\n this.searchFormSubmitted = true;\r\n if (this.myForm.controls.fromDate.value === '' || this.myForm.controls.toDate.value === '' || this.myForm.controls.fromDate.value === null || this.myForm.controls.toDate.value === null) {\r\n this.isLoading = false;\r\n this.spinner.hide()\r\n return;\r\n }\r\n\r\n if (this.searchData.FromDate != null && this.searchData.ToDate != null) {\r\n this.errorSummary = '';\r\n if (moment(this.searchData.FromDate).isSameOrAfter(new Date())) {\r\n this.errorSummary = 'From date should be less than today';\r\n this.isLoading = false;\r\n this.spinner.hide()\r\n this.snackBar.open('From date should be less than today', 'x', {\r\n duration: 5000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n\r\n return false;\r\n }\r\n if (moment(this.searchData.ToDate).isSameOrAfter(new Date())) {\r\n this.errorSummary = 'To date should be less than today';\r\n this.isLoading = false;\r\n this.spinner.hide()\r\n this.snackBar.open('To date should be less than today', 'x', {\r\n duration: 5000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n return false;\r\n }\r\n if (moment(this.searchData.FromDate).isSameOrAfter(this.searchData.ToDate)) {\r\n this.errorSummary = 'From Date should be less than To Date';\r\n this.isLoading = false;\r\n this.spinner.hide()\r\n this.snackBar.open('From Date should be less than To Date', 'x', {\r\n duration: 5000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n return false;\r\n }\r\n this.searchData.RowsPerPage = 10;\r\n this.searchData.PageNumber = 1;\r\n this.reportsFilterData = new ReportsFilterData();\r\n this.reportsFilterData.financeReportFilterData = new FinanceReportFilterData();\r\n this.reportsFilterData.financeReportFilterData.FromDate = moment(this.searchData.FromDate).toDate();\r\n this.reportsFilterData.financeReportFilterData.ToDate = moment(this.searchData.ToDate).toDate()\r\n this.reportsFilterData.financeReportFilterData.ProjectId = this.searchData.ProjectId;\r\n this.reportStatus = true;\r\n this.searchData.FromDate = moment(this.searchData.FromDate).format('YYYY-MM-DD');\r\n this.searchData.ToDate = moment(this.searchData.ToDate).format('YYYY-MM-DD');\r\n this._financeReportService.GetFinanceReport(this.searchData).subscribe((reportsData: Array) => {\r\n this.spinner.hide()\r\n if (reportsData) {\r\n this.reportStatus = false;\r\n this.financeReport = reportsData;\r\n this.financeReport.forEach((record: ReportsData) => {\r\n record.FromDate = moment(record.FromDate).format('DD-MM-YYYY');\r\n record.ToDate = moment(record.ToDate).format('DD-MM-YYYY');\r\n record.IsBillableForExcel = (record.IsBillable == true) ? 'Yes' : 'No';\r\n record.IsCriticalForExcel = (record.IsCritical == true) ? 'Yes' : 'No';\r\n record.IsResignedForExcel = (record.IsResigned == true) ? 'Yes': null;\r\n record.IsLongLeaveForExcel =(record.IsLongLeave == true) ? 'Yes': null;\r\n });\r\n this.isLoading = false;\r\n this.dataSource = new MatTableDataSource(this.financeReport);\r\n \r\n\r\n //this.dataSource.paginator = this.paginator;\r\n //this.dataSource.sort = this.sort;\r\n this.dataSource.paginator = this.paginator.toArray()[0];\r\n this.dataSource.sort = this.sort.toArray()[0]; \r\n // this.dataSource.sortingDataAccessor = (item, property) => {\r\n // return item[property];\r\n // };\r\n\r\n \r\n this.totalRecordsCount = this.financeReport.length;\r\n this.fromDate = moment(this.searchData.FromDate).toDate();\r\n this.toDate = moment(this.searchData.ToDate).toDate();\r\n this.filterDisplay = false;\r\n }\r\n else {\r\n this.isLoading = false;this.spinner.hide()\r\n }\r\n },\r\n (error: any) => {\r\n this.spinner.hide()\r\n this.errorMessage = [];\r\n this.isLoading = false;\r\n this.snackBar.open('Project Resource Not Found', 'x', {\r\n duration: 5000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n });\r\n }\r\n\r\n }\r\n \r\n clearFilter() {\r\n this.formGroupDirective.resetForm();\r\n this.myForm.controls.columnselect.setValue(this.selectedColumns);\r\n this.searchFormSubmitted = false;\r\n this.errorSummary = '';\r\n // this.searchData = new FinanceReportFilterData();\r\n this.searchData = new FinanceReportData();\r\n\r\n this.financeReport = [];\r\n // this.dataSource = new MatTableDataSource(this.financeReport);\r\n // this.dataSource.paginator = this.paginator;\r\n // this.dataSource.sort = this.sort;\r\n this.dataSource.paginator = this.paginator.toArray()[0];\r\n this.dataSource.sort = this.sort.toArray()[0];\r\n this.totalRecordsCount = this.financeReport.length;\r\n \r\n this.displaycols = this.selectedColumns.map(col => col.header);\r\n this.displaycolsfields = this.selectedColumns.map(col => col.field);\r\n\r\n\r\n }\r\n\r\n onFilter() {\r\n this.getProjects();\r\n this.filterDisplay = true;\r\n this.myForm.reset();\r\n this.searchFormSubmitted = false;\r\n this.errorSummary = '';\r\n }\r\n\r\n clearErrorSummary(event: any) {\r\n this.errorSummary = '';\r\n }\r\n\r\n exportAsXLSX() {\r\n const columnsForExcel = this.dataSource.data.map(x => ({\r\n 'Associate Id': x.EmployeeCode,\r\n 'Associate Name': x.EmployeeName,\r\n 'Designation Name': x.DesignationName,\r\n 'Grade': x.GradeName,\r\n 'Skill': x.SkillCode,\r\n 'Client': x.ClientName,\r\n 'Project': x.ProjectName,\r\n '(%) Allocation': x.Allocationpercentage,\r\n '(%) Client Billing': x.ClientBillingPercentage,\r\n 'Client Billing Role': x.ClientBillingRoleCode,\r\n 'Billable': x.IsBillableForExcel,\r\n 'Critical': x.IsCriticalForExcel,\r\n 'Reporting Manager': x.ReportingManagerName,\r\n 'Program Manager': x.ProgramManagerName,\r\n 'From Date': x.FromDate,\r\n 'To Date': x.ToDate\r\n }));\r\n this.fileExporterService.exportToExcel(columnsForExcel, \"Finance Report\");\r\n }\r\n}\r\n\r\n\r\n","\r\n \r\n \r\n \r\n filter_list Filter Finance Report Data\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n From Date *\r\n\r\n \r\n \r\n close\r\n \r\n \r\n \r\n From Date is required\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n To Date *\r\n \r\n \r\n close\r\n \r\n \r\n \r\n To Date is required\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n Select Project\r\n \r\n \r\n \r\n \r\n {{item.label}}\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\r\n\r\n \r\n {{selectedColumns.length}} columns selected\r\n \r\n \r\n \r\n \r\n All\r\n \r\n {{q.header}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n Total Records:\r\n {{totalRecordsCount >0 ? totalRecordsCount: 0}}\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
{{col.header}}\r\n {{element[col.field]}}
No data
\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
{{col.header}}\r\n {{element[col.field]}}
No data
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n

Loading ...

\r\n
","import { Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { AssociateAttendanceReportService } from '../../services/associate-attendance-report.service';\r\nimport {\r\n AttendanceReport,\r\n AttendanceReportFilter,\r\n AttendanceDetailReport, \r\n SelectItem,\r\n AttendanceDetailReportData\r\n} from '../../models/associate-attendance-report.model';\r\n//import { GenericType, GenericModel } from '../../../../modules/master-layout/models/dropdowntype.model';\r\nimport { Validators, FormGroup, FormBuilder, FormGroupDirective } from '@angular/forms';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport {\r\n HttpClient,\r\n HttpHeaders,\r\n HttpErrorResponse,\r\n} from '@angular/common/http';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { take } from 'rxjs/operators';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport {\r\n MatSnackBar,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition,\r\n} from '@angular/material/snack-bar';\r\n\r\nimport { Chart } from 'chart.js';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { AllColorCodes } from '../../../../core/color-codes';\r\nimport { NavService } from '../../../master-layout/services/nav.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { FileExporterService } from 'src/app/core/services/file-exporter.service';\r\nimport { ReportsData } from '../../models/reportsdata.model';\r\nimport * as moment from 'moment';\r\nimport { AttendanceReportDialogComponent } from 'src/app/modules/reports/components/attendance-report-dialog/attendance-report-dialog.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ProjectDetails } from '../../../onboarding/models/projects.model';\r\nimport { MasterDataService } from '../../../master-layout/services/masterdata.service';\r\nimport { Observable } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { MatOption } from '@angular/material/core';\r\nimport { DropDownType, GenericType, GenericModel } from '../../../master-layout/models/dropdowntype.model';\r\nimport { Console } from 'console';\r\n\r\n@Component({\r\n selector: 'app-manager-attendance-report',\r\n templateUrl: './manager-attendance-report.component.html',\r\n styleUrls: ['./manager-attendance-report.component.scss']\r\n})\r\nexport class ManagerAttendanceReportComponent implements OnInit {\r\n \r\n themeAppearence = themeconfig.formfieldappearances;\r\n empId : number; \r\n filter:AttendanceReportFilter;\r\n detailFilter:AttendanceReportFilter;\r\n lstEmployees: AttendanceReport[] = []; \r\n lstAttendance: AttendanceDetailReport[] = []; \r\n componentName: string; myForm: FormGroup;\r\n totalRecordsCount: number;\r\n errorMessage: any[];\r\n searchFormSubmitted: boolean = false; \r\n options: any;\r\n searchData: AttendanceReportFilter; \r\n errorSummary: string = '';\r\n step=0;\r\n loading: boolean;\r\n public reportStatus: boolean = false;\r\n isLoading: boolean = false;\r\n firstDate: Date;\r\n lastDate: Date;\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n roleName :string;\r\n associateName : string;\r\n private resources = servicePath.API.PagingConfigValue;\r\n displayedColumns: string[] = ['EmployeeCode','EmployeeName','ProjectName','ReportingManagerName','TotalDaysWorked',\"View\"];\r\n projectsList: any[] = [];\r\n filteredProject : Observable;\r\n selectedProjectId:any;\r\n filteredAssociates: Observable;\r\n associatesList: SelectItem[] = [];\r\n selectedEmployeeName: any;\r\n dialogData : AttendanceDetailReportData;\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'right';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n employeedataSource: MatTableDataSource;\r\n minDate : Date;\r\n maxDate : Date;\r\n totalWorkingDays : number;\r\n totalHolidays: number;\r\n IsLeadership = false;\r\n projectId = 0;\r\n isDeliveryDepartment = true;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n constructor(private associateAttendanceReportService: AssociateAttendanceReportService,\r\n private fileExporterService: FileExporterService,\r\n public navService: NavService,\r\n private spinner: NgxSpinnerService,\r\n private _snackBar: MatSnackBar,\r\n private fb: FormBuilder,\r\n public dialog: MatDialog,\r\n private masterDataService: MasterDataService\r\n ) { \r\nthis.searchData = new AttendanceReportFilter();\r\nthis.PageSize = this.resources.PageSize;\r\nthis.PageDropDown = this.resources.PageDropDown;\r\nthis.navService.currentSearchBoxData.subscribe(responseData => {\r\nthis.applyFilter(responseData);\r\n});\r\nlet date: Date = new Date();\r\ndate.setDate(date.getDate() - 7);\r\n this.minDate = new Date(2022, 6, 1);\r\n this.maxDate = date;\r\n\r\nthis.associateAttendanceReportService.GetAttendanceMaxDate().subscribe(\r\n (response: Date) => { \r\n this.maxDate = response; \r\n },\r\n (error: any) => { }\r\n );\r\n if (sessionStorage.getItem(\"AssociatePortal_UserInformation\") != null) {\r\n this.roleName = JSON.parse(\r\n sessionStorage.getItem(\"AssociatePortal_UserInformation\")\r\n ).roleName;\r\n \r\n this.empId = JSON.parse(\r\n sessionStorage.getItem(\"AssociatePortal_UserInformation\")\r\n ).employeeId; \r\n}\r\n\r\n this.associateAttendanceReportService.IsDeliveryDepartment(this.empId).subscribe(\r\n (response: boolean) => { \r\n this.isDeliveryDepartment = response; \r\n if(this.roleName === \"HRA\" || this.roleName === \"HRM\")\r\n this.displayedColumns = ['EmployeeCode','EmployeeName','DepartmentName','ReportingManagerName','TotalDaysWorked',\"View\"];\r\n else if(this.isDeliveryDepartment === true)\r\nthis.displayedColumns = ['EmployeeCode','EmployeeName','ProjectName','ReportingManagerName','TotalDaysWorked',\"View\"];\r\nelse\r\nthis.displayedColumns = ['EmployeeCode','EmployeeName','ReportingManagerName','TotalDaysWorked',\"View\"]; \r\nthis.employeedataSource = new MatTableDataSource(this.lstEmployees); \r\n this.paginator.pageIndex = 0;\r\n this.employeedataSource.paginator = this.paginator; \r\n this.employeedataSource.sort = this.sort \r\n },\r\n (error: any) => { }\r\n ); \r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n if (sessionStorage.getItem(\"AssociatePortal_UserInformation\") != null) {\r\n this.roleName = JSON.parse(\r\n sessionStorage.getItem(\"AssociatePortal_UserInformation\")\r\n ).roleName;\r\n \r\n this.empId = JSON.parse(\r\n sessionStorage.getItem(\"AssociatePortal_UserInformation\")\r\n ).employeeId; \r\n}\r\nthis.associateAttendanceReportService.IsDeliveryDepartment(this.empId).subscribe(\r\n (response: boolean) => { \r\n this.isDeliveryDepartment = response; \r\n if(this.roleName === \"HRA\" || this.roleName === \"HRM\")\r\n this.displayedColumns = ['EmployeeCode','EmployeeName','DepartmentName','ReportingManagerName','TotalDaysWorked',\"View\"];\r\n else if(this.isDeliveryDepartment === true)\r\nthis.displayedColumns = ['EmployeeCode','EmployeeName','ProjectName','ReportingManagerName','TotalDaysWorked',\"View\"];\r\nelse\r\nthis.displayedColumns = ['EmployeeCode','EmployeeName','ReportingManagerName','TotalDaysWorked',\"View\"];\r\nthis.employeedataSource = new MatTableDataSource(this.lstEmployees); \r\nthis.paginator.pageIndex = 0;\r\nthis.employeedataSource.paginator = this.paginator; \r\nthis.employeedataSource.sort = this.sort \r\n },\r\n (error: any) => { }\r\n); \r\n \r\n\r\n\r\n\r\n this.getProjects(this.empId, this.roleName);\r\n this.getAssociates(this.empId, this.roleName, this.projectId, this.IsLeadership);\r\n this.myForm = this.fb.group({\r\n fromDate: ['', [Validators.required]],\r\n toDate: ['', [Validators.required]] ,\r\n ProjectId: ['', null] ,\r\n EmployeeName: ['', null] ,\r\n Leadership: [false, null], \r\n }); \r\n\r\n this.totalWorkingDays = 0;\r\n this.totalHolidays = 0;\r\n }\r\n\r\n fetchAttendanceReport() {\r\n if (sessionStorage.getItem(\"AssociatePortal_UserInformation\") != null) {\r\n this.roleName = JSON.parse(\r\n sessionStorage.getItem(\"AssociatePortal_UserInformation\")\r\n ).roleName;\r\n \r\n this.associateName = JSON.parse(\r\n sessionStorage.getItem(\"AssociatePortal_UserInformation\")\r\n ).fullName;\r\n }\r\n \r\n if(this.myForm.valid){\r\n this.step = 1;\r\n } \r\n this.isLoading = true;\r\n this.searchFormSubmitted = true;\r\n if (this.myForm.controls.fromDate.value === '' || this.myForm.controls.toDate.value === '' || this.myForm.controls.fromDate.value === null || this.myForm.controls.toDate.value === null) {\r\n this.isLoading = false; \r\n return;\r\n } \r\n \r\n this.spinner.show()\r\n if (this.searchData.FromDate != null && this.searchData.ToDate != null) {\r\n this.errorSummary = '';\r\n if (moment(this.searchData.FromDate).isAfter(new Date())) {\r\n this.errorSummary = 'From date should be less than today';\r\n this.isLoading = false;\r\n this.spinner.hide()\r\n this._snackBar.open('From date should be less than today', 'x', {\r\n duration: 5000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n return false;\r\n }\r\n if (moment(this.searchData.ToDate).isAfter(new Date())) {\r\n this.errorSummary = 'To date should be less than today';\r\n this.isLoading = false;\r\n this.spinner.hide()\r\n this._snackBar.open('To date should be less than today', 'x', {\r\n duration: 5000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return false;\r\n }\r\n if (moment(this.searchData.FromDate).isAfter(this.searchData.ToDate)) {\r\n this.errorSummary = 'From Date should be less than To Date';\r\n this.isLoading = false;\r\n this.spinner.hide()\r\n this._snackBar.open('From Date should be less than To Date', 'x', {\r\n duration: 5000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return false;\r\n } \r\n \r\n this.searchData.FromDate = moment(this.searchData.FromDate).format('YYYY-MM-DD');\r\n this.searchData.ToDate = moment(this.searchData.ToDate).format('YYYY-MM-DD');\r\n this.searchData.ManagerName = this.associateName;\r\n this.searchData.ManagerId = this.empId;\r\n // this.searchData.EmployeeName = this.associateName;\r\n this.searchData.RoleName = this.roleName;\r\n this.searchData.isLeadership = this.IsLeadership; \r\n this.getAttendanceSummary(this.searchData); \r\n }\r\n }\r\n\r\n getAttendanceSummary(filter: AttendanceReportFilter) {\r\n this.spinner.show();\r\n \r\n this.lstEmployees = [];\r\n this.associateAttendanceReportService.GetAttendanceSummaryReport(filter).subscribe(\r\n (response: AttendanceReport[]) => {\r\n this.spinner.hide();\r\n this.lstEmployees = response;\r\n response.forEach((res) => {\r\n this.totalWorkingDays = res.TotalWorkingDays;\r\n this.totalHolidays = res.TotalHolidays; \r\n }); \r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees); \r\n this.paginator.pageIndex = 0;\r\n this.employeedataSource.paginator = this.paginator; \r\n this.employeedataSource.sort = this.sort \r\n },\r\n (error: any) => { this.spinner.hide(); }\r\n );\r\n }\r\n\r\n getAttendanceDetail(filter: AttendanceReportFilter) {\r\n this.spinner.show();\r\n this.lstAttendance = [];\r\n this.associateAttendanceReportService.GetAttendanceDetailReport(filter).subscribe(\r\n (response: AttendanceDetailReport[]) => {\r\n this.spinner.hide();\r\n this.lstAttendance = response; \r\n },\r\n (error: any) => { this.spinner.hide(); }\r\n );\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n if (filterValue) {\r\n this.employeedataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees);\r\n this.paginator.pageIndex = 0;\r\n this.employeedataSource.paginator = this.paginator;\r\n this.employeedataSource.sort = this.sort; \r\n }\r\n } else {\r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees);\r\n this.paginator.pageIndex = 0;\r\n this.employeedataSource.paginator = this.paginator;\r\n this.employeedataSource.sort = this.sort; \r\n }\r\n }\r\n\r\n clearInput(evt: any, fieldName): void {\r\n if(fieldName=='toDate'){\r\n evt.stopPropagation();\r\n this.myForm.get('toDate').reset();\r\n this.clearData();\r\n }\r\n if(fieldName=='fromDate'){\r\n evt.stopPropagation();\r\n this.myForm.get('fromDate').reset();\r\n this.clearData();\r\n }\r\n }\r\n\r\n clearFilter() {\r\n this.myForm.reset();\r\n this.myForm.clearValidators(); \r\n this.searchFormSubmitted = false;\r\n this.errorSummary = ''; \r\n this.searchData = new AttendanceReportFilter();\r\n this.lstEmployees = [];\r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees); \r\n this.employeedataSource.sort = this.sort; \r\n this.paginator.pageIndex = 0;\r\n this.employeedataSource.paginator = this.paginator;\r\n this.totalRecordsCount = this.lstEmployees.length; \r\n this.totalWorkingDays = 0;\r\n this.totalHolidays = 0; \r\n this.projectId = 0;\r\n this.IsLeadership = false;\r\n this.getProjects(this.empId, this.roleName);\r\n this.getAssociates(this.empId, this.roleName, this.projectId, this.IsLeadership);\r\n }\r\n\r\n clearData() { \r\n this.lstEmployees = [];\r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees); \r\n this.employeedataSource.sort = this.sort; \r\n this.paginator.pageIndex = 0;\r\n this.employeedataSource.paginator = this.paginator;\r\n this.totalRecordsCount = this.lstEmployees.length; \r\n this.totalWorkingDays = 0;\r\n this.totalHolidays = 0; \r\n }\r\n \r\n exportAsXLSX() { \r\n this.spinner.show();\r\n\r\n if(this.roleName === \"HRA\" || this.roleName === \"HRM\")\r\n {\r\n const columnsForExcel = this.employeedataSource.data.map(x => ({\r\n 'ID': x.EmployeeCode,\r\n 'Name': x.EmployeeName, \r\n 'Department': x.DepartmentName, \r\n 'Reporting Manager': x.ReportingManagerName, \r\n 'Total Days': x.TotalDaysWorked \r\n })); \r\n this.fileExporterService.exportToExcel(columnsForExcel, \"Associate Attendance Report\"); \r\n }\r\n else if(this.isDeliveryDepartment === true)\r\n {\r\n const columnsForExcel = this.employeedataSource.data.map(x => ({\r\n 'ID': x.EmployeeCode,\r\n 'Name': x.EmployeeName, \r\n 'Project': x.ProjectName, \r\n 'Reporting Manager': x.ReportingManagerName, \r\n 'Total Days': x.TotalDaysWorked \r\n })); \r\n this.fileExporterService.exportToExcel(columnsForExcel, \"Associate Attendance Report\"); \r\n }\r\n else\r\n {\r\n const columnsForExcel = this.employeedataSource.data.map(x => ({\r\n 'ID': x.EmployeeCode,\r\n 'Name': x.EmployeeName, \r\n 'Reporting Manager': x.ReportingManagerName, \r\n 'Total Days': x.TotalDaysWorked \r\n })); \r\n this.fileExporterService.exportToExcel(columnsForExcel, \"Associate Attendance Report\"); \r\n }\r\n this.spinner.hide();\r\n }\r\n\r\n viewAttendanceDetails(employee: AttendanceReport)\r\n {\r\n this.detailFilter = new AttendanceReportFilter();\r\n this.detailFilter.EmployeeName =employee.EmployeeName;\r\n this.detailFilter.EmployeeCode = employee.EmployeeCode;\r\n this.detailFilter.FromDate = this.searchData.FromDate;\r\n this.detailFilter.ToDate = this.searchData.ToDate;\r\n this.detailFilter.ProjectId = 0;\r\n \r\n this.spinner.show();\r\n this.lstAttendance = [];\r\n this.associateAttendanceReportService.GetAttendanceDetailReport(this.detailFilter).subscribe(\r\n (response: AttendanceDetailReport[]) => {\r\n this.spinner.hide();\r\n this.lstAttendance = response; \r\n this.dialogData = new AttendanceDetailReportData();\r\n this.dialogData.eventData = this.lstAttendance;\r\n this.dialogData.filter = this.detailFilter; \r\n this.dialogData.employeeName = employee.EmployeeName;\r\n this.dialogData.daysWorked = employee.TotalDaysWorked;\r\n const dialogRef = this.dialog.open(AttendanceReportDialogComponent, {\r\n height: '700px',\r\n width: '1000px',\r\n disableClose: true,\r\n data: this.dialogData\r\n }); \r\n },\r\n (error: any) => { this.spinner.hide(); }\r\n );\r\n \r\n }\r\n\r\n getProjects(employeeId:number, roleName:string): void {\r\n this.associateAttendanceReportService.GetProjects(employeeId,roleName).subscribe((res: GenericType[]) => {\r\n let projList: any[] = [];\r\n this.projectsList = [];\r\n // projList.push({ label: '', value: null });\r\n res.forEach((element: GenericType) => {\r\n projList.push({ label: element.Name, value: element.Id });\r\n });\r\n this.projectsList = projList.filter(\r\n (project, index, arr) => arr.findIndex(t => t.value === project.value) === index);\r\n\r\n this.filteredProject = this.myForm.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterProject(value))\r\n ); \r\n },\r\n (error: any) => {\r\n this.errorMessage = [];\r\n this._snackBar.open('Failed to Get Project List!', 'x', {\r\n duration: 5000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n }\r\n );\r\n }\r\n\r\n private _filterProject(value) { \r\n let filterValue;\r\n if (value && value.ProjectId) {\r\n filterValue = value.ProjectId.toLowerCase();\r\n return this.projectsList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.projectsList;\r\n }\r\n }\r\n\r\n clearField(fieldName) { \r\n\r\n if (fieldName == 'EmployeeName') {\r\n this.myForm.controls.EmployeeName.setValue(null); \r\n this.searchData.EmployeeName = null;\r\n this.searchData.EmployeeId = 0;\r\n this.clearData();\r\n }\r\n \r\n if (fieldName == 'ProjectId') {\r\n this.myForm.controls.ProjectId.setValue(null);\r\n this.searchData.ProjectId = null; \r\n this.projectId = 0;\r\n this.getAssociates(this.empId, this.roleName, this.projectId, this.IsLeadership);\r\n this.clearData(); \r\n }\r\n } \r\n\r\n clearAssociateField()\r\n {\r\n this.myForm.controls.ProjectId.setValue(null);\r\n this.searchData.ProjectId = null; \r\n this.projectId = 0; \r\n this.clearData(); \r\n }\r\n\r\n selectedChangeIds(frmCntrl, item) {\r\n if (frmCntrl == 'EmployeeName') {\r\n this.selectedEmployeeName = item.label;\r\n this.searchData.EmployeeName = this.selectedEmployeeName;\r\n this.searchData.EmployeeId = item.value;\r\n this.clearData(); \r\n }\r\n \r\n else if (frmCntrl == 'ProjectId') {\r\n this.selectedProjectId = item.value;\r\n this.searchData.ProjectId = this.selectedProjectId;\r\n this.projectId = this.selectedProjectId; \r\n this.getAssociates(this.empId, this.roleName, this.projectId, this.IsLeadership);\r\n this.clearData(); \r\n }\r\n }\r\n\r\n private filterAssociates(value) {\r\n let filterValue;\r\n if (value && value.EmployeeName) {\r\n filterValue = value.EmployeeName.toLowerCase();\r\n return this.associatesList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.associatesList;\r\n }\r\n } \r\n\r\n getAssociates(employeeId:number, roleName:string, projectId:number, isLeadership:boolean): void {\r\n this.associatesList = [];\r\n this.associateAttendanceReportService.GetAssociates(employeeId,roleName, projectId, isLeadership).subscribe((associateResponse: GenericType[]) => {\r\n associateResponse.forEach((associateResponse: GenericType) => { \r\n this.associatesList.push({ label: associateResponse.Name, value: associateResponse.Id });\r\n });\r\n\r\n this.filteredAssociates = this.myForm.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this.filterAssociates(value))\r\n );\r\n }),\r\n (error: any) => {\r\n if (error._body != undefined && error._body != \"\")\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 1000, panelClass: ['Failed to get Associate List'], horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n };\r\n\r\n }\r\n\r\n CheckIsLeadership(event){\r\n this.IsLeadership = event.checked;\r\n this.clearAssociateField();\r\n this.clearField('EmployeeName');\r\n this.projectId = 0;\r\n this.getAssociates(this.empId, this.roleName, this.projectId, this.IsLeadership);\r\n this.searchData.isLeadership = this.IsLeadership;\r\n } \r\n\r\n}","\r\n \r\n \r\n \r\n filter_list Filter Attendance Report\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n From Date *\r\n \r\n \r\n \r\n close\r\n \r\n \r\n \r\n From Date is required\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n To Date *\r\n \r\n \r\n close\r\n \r\n \r\n \r\n To Date is required\r\n \r\n
\r\n
\r\n
\r\n \r\n Project\r\n \r\n \r\n \r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n Associate\r\n \r\n \r\n \r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n Customized Attendance Data\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 people List of associates \r\n {{lstEmployees.length}}\r\n
\r\n
\r\n Total Working Days \r\n {{totalWorkingDays}}\r\n
\r\n
\r\n Holidays \r\n {{totalHolidays}}\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 \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 \r\n \r\n \r\n \r\n
ID {{element.EmployeeCode}} Name {{element.EmployeeName}} Department {{element.DepartmentName}} Project {{element.ProjectName}} Reporting Manager {{element.ReportingManagerName}} Total Days {{element.TotalDaysWorked}} Detail View visibility
No data
\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

Loading ...

\r\n
\r\n\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { ReportsData } from '../../models/reportsdata.model';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { MatTable, MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { ResourceReportNoncriticalService} from '../../services/resource-report-noncritical.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { FileExporterService } from 'src/app/core/services/file-exporter.service';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { MatOption } from '@angular/material/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { ReplaySubject, Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport * as moment from 'moment';\r\n\r\n@Component({\r\n selector: 'app-non-critical-resource-last-billing-report',\r\n templateUrl: './non-critical-resource-last-billing-report.component.html',\r\n styleUrls: ['./non-critical-resource-last-billing-report.component.scss']\r\n})\r\nexport class NonCriticalResourceLastBillingReportComponent implements OnInit {\r\n\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n\r\n filteredBanksMulti: ReplaySubject = new ReplaySubject(1);\r\n cols: any[] = [];\r\n selectedColumns: any[];\r\n displaycols: any[];\r\n public lstNonCriticalResourceReportData: ReportsData[] = []\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n showProjectHistory: boolean = false;\r\n private resources = servicePath.API.PagingConfigValue;\r\n totalRecordsCount:number\r\n lstNonCriticalResourceReportDataSource: MatTableDataSource;\r\n nonCriticalResourceReportForm: FormGroup;\r\n private _onDestroy = new Subject();\r\n\r\n @ViewChild('table') table: MatTable;\r\n @ViewChild('allSelected') private allSelected: MatOption;\r\n @ViewChild(MatSort) sort: MatSort;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n\r\n constructor(private _NoncriticalResourceReportService: ResourceReportNoncriticalService, public navService: NavService, private spinner: NgxSpinnerService,private fileExporterService:FileExporterService, private _snackBar: MatSnackBar) {\r\n this.PageSize = this.resources.PageSize;\r\n this.PageDropDown = this.resources.PageDropDown;\r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n this.applyFilter(responseData);\r\n })\r\n }\r\n\r\n getData() {\r\n this.spinner.show()\r\n this._NoncriticalResourceReportService.GetNonCriticalBillingReport().subscribe(\r\n (response: ReportsData[]) => {\r\n this.spinner.hide()\r\n this.lstNonCriticalResourceReportData = response;\r\n this.lstNonCriticalResourceReportData.forEach((ele: ReportsData) => {\r\n ele.Experience = Number(ele.Experience).toFixed(2);\r\n ele.JoinDate =ele.JoinDate==undefined?null:moment(ele.JoinDate).format(\"YYYY-MM-DD\");\r\n ele.LastBillingDate =ele.LastBillingDate==undefined?null: moment(ele.LastBillingDate).format(\"YYYY-MM-DD\");\r\n ele.FutureProjectTentativeDate = ele.FutureProjectTentativeDate && moment(ele.FutureProjectTentativeDate).format(\"YYYY-MM-DD\");\r\n });\r\n this.totalRecordsCount = this.lstNonCriticalResourceReportData.length\r\n this.lstNonCriticalResourceReportDataSource = new MatTableDataSource(this.lstNonCriticalResourceReportData);\r\n this.lstNonCriticalResourceReportDataSource.paginator = this.paginator;\r\n this.lstNonCriticalResourceReportDataSource.sort = this.sort;\r\n },\r\n (error=> {\r\n this.spinner.hide();\r\n if (error._body != undefined && error._body != \"\")\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 1000, panelClass: ['Failed to get Non Critical Resource Report List'], horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n else{\r\n this.spinner.hide();\r\n this._snackBar.open('Some Error occured while fetching the records', 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n }))\r\n }\r\n \r\n ngOnInit() {\r\n this.cols = [\r\n { field: 'EmployeeCode', header: 'ID' },\r\n { field: 'AssociateName', header: 'Name' },\r\n { field: 'Designation', header: 'Designation' },\r\n { field: 'Grade', header: 'Grade' },\r\n { field: 'Technology', header: 'Technology' },\r\n { field: 'ProjectName', header: 'Project' },\r\n {field:'LastBillingDate',header:'Last Billing Date'}\r\n \r\n ];\r\n this.defaultSelectedCols();\r\n this.displaycols = this.selectedColumns.map(col => col.header);\r\n this.createForm();\r\n this.nonCriticalResourceReportForm.controls.columnselect.setValue(this.selectedColumns);\r\n // this.maxDateValue = new Date();\r\n this.filteredBanksMulti.next(this.cols.slice());\r\n this.nonCriticalResourceReportForm.controls.columnfilter.valueChanges\r\n .pipe(takeUntil(this._onDestroy))\r\n .subscribe(() => {\r\n this.filterBanksMulti();\r\n });\r\n this.getData();\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n if (filterValue) {\r\n this.lstNonCriticalResourceReportDataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n else {\r\n this.lstNonCriticalResourceReportDataSource = new MatTableDataSource(this.lstNonCriticalResourceReportData);\r\n this.lstNonCriticalResourceReportDataSource.paginator = this.paginator;\r\n this.lstNonCriticalResourceReportDataSource.sort = this.sort;\r\n }\r\n } else {\r\n this.lstNonCriticalResourceReportDataSource = new MatTableDataSource(this.lstNonCriticalResourceReportData);\r\n this.lstNonCriticalResourceReportDataSource.paginator = this.paginator;\r\n this.lstNonCriticalResourceReportDataSource.sort = this.sort;\r\n }\r\n }\r\n\r\n private filterBanksMulti() {\r\n if (!this.cols) {\r\n return;\r\n }\r\n // get the search keyword\r\n let search = this.nonCriticalResourceReportForm.controls.columnfilter.value;\r\n if (!search) {\r\n this.filteredBanksMulti.next(this.cols.slice());\r\n return;\r\n } else {\r\n search = search.toLowerCase();\r\n }\r\n // filter the banks\r\n this.filteredBanksMulti.next(\r\n this.cols.filter(ele => ele.header.toLowerCase().indexOf(search) > -1)\r\n );\r\n }\r\n\r\n exportAsXLSX(){\r\n let columnsForExcel=[]\r\n let columnsForEachRow={}\r\n for(let i=0;i col.header);\r\n this.table.renderRows();\r\n }\r\n }\r\n\r\n tosslePerOne(all) {\r\n if (this.allSelected.selected) {\r\n this.allSelected.deselect();\r\n return false;\r\n }\r\n if (\r\n this.selectedColumns.length ==\r\n this.cols.length\r\n )\r\n this.allSelected.select();\r\n }\r\n\r\n toggleAllSelection() {\r\n if (this.allSelected.selected) {\r\n this.selectedColumns = [...this.cols.map(item => item), 0];\r\n this.nonCriticalResourceReportForm.controls.columnselect\r\n .patchValue(this.selectedColumns);\r\n this.displaycols = this.cols.map(col => col.header);\r\n this.table.renderRows();\r\n } else {\r\n this.nonCriticalResourceReportForm.controls.columnselect.patchValue([]);\r\n this.selectedColumns = [];\r\n this.displaycols = [];\r\n this.table.renderRows();\r\n }\r\n }\r\n\r\n}\r\n","\r\n
\r\n
\r\n
\r\n \r\n {{selectedColumns.length}} columns selected\r\n \r\n \r\n \r\n \r\n All\r\n \r\n {{q.header}}\r\n \r\n \r\n \r\n
\r\n
\r\n Total Records:\r\n {{totalRecordsCount >0 ? totalRecordsCount: 0}}\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
{{ col.header }}\r\n {{element[col.field]}}
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n

Loading ...

\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport {ProjectDetailsReportData} from '../../models/project-details-report';\r\nimport {ProjectdetailsService} from '../../services/projectdetails.service';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatTableExporterModule } from 'mat-table-exporter';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { FileExporterService } from 'src/app/core/services/file-exporter.service';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\n\r\n@Component({\r\n selector: 'app-projectdetails-report',\r\n templateUrl: './projectdetails-report.component.html',\r\n styleUrls: ['./projectdetails-report.component.scss']\r\n})\r\nexport class ProjectdetailsReportComponent implements OnInit {\r\n\r\n projectDetailsReportList: ProjectDetailsReportData[] = [];\r\n dataSource: MatTableDataSource;\r\n private resources = servicePath.API.PagingConfigValue;\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n displayedColumns: string[] = ['ProjectCode','ProjectName','Technology', 'ProgramManager', 'Total', 'Billable','NonBillable', 'ClientName'];\r\n constructor(private projectDetailsService: ProjectdetailsService, private _snackBar: MatSnackBar, private fileExporterService:FileExporterService, public navService: NavService,) { \r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.GetProjectDetails();\r\n \r\n }\r\n\r\n GetProjectDetails(): void{\r\n this.projectDetailsService.GetProjectDetailsForReport().subscribe(\r\n (res: ProjectDetailsReportData[]) => {\r\n if(res.length > 0 && res != null) { \r\n this.projectDetailsReportList = res; \r\n this.dataSource = new MatTableDataSource(this.projectDetailsReportList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n else {\r\n this._snackBar.open('No records found', 'x', {\r\n duration: 1000,\r\n panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open('Unable to get project details', 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n if (filterValue){\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n else{\r\n this.dataSource = new MatTableDataSource(this.projectDetailsReportList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.dataSource.sortingDataAccessor = (data: any, sortHeaderId: string): string => {\r\n if (typeof data[sortHeaderId] === 'string') {\r\n return data[sortHeaderId].toLocaleLowerCase();\r\n }\r\n \r\n return data[sortHeaderId];\r\n };\r\n }\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.projectDetailsReportList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.dataSource.sortingDataAccessor = (data: any, sortHeaderId: string): string => {\r\n if (typeof data[sortHeaderId] === 'string') {\r\n return data[sortHeaderId].toLocaleLowerCase();\r\n }\r\n \r\n return data[sortHeaderId];\r\n };\r\n }\r\n }\r\n\r\n exportAsXLSX(){\r\n this.fileExporterService.exportToExcel(this.dataSource.data, \"Project Information Report\");\r\n }\r\n \r\n\r\n}\r\n","\r\n \r\n \r\n 0\"\r\n (click)=\"exportAsXLSX()\" title=\"Export to Excel\">\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 \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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Project Code {{element.ProjectCode}} Project Name {{element.ProjectName}} Technology {{element.Technology}} Program Manager {{element.ProgramManager}} Total Resource(s) {{element.Total}} Billable {{element.Billable}} Non Billable {{element.NonBillable}} ClientName {{element.ClientName}}
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport {ProjectResponse} from '../../models/projects-report.model';\r\nimport { MatTableDataSource, MatTable } from '@angular/material/table';\r\nimport {ProjectsService} from '../../services/projects-report.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatOption } from '@angular/material/core';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { ReplaySubject, Subject } from 'rxjs';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { DatePipe } from '@angular/common';\r\nimport * as moment from 'moment';\r\nimport { TableUtil } from \"../../services/exportUtil\";\r\n@Component({\r\n selector: 'app-projects-report',\r\n templateUrl: './projects-report.component.html',\r\n styleUrls: ['./projects-report.component.scss']\r\n})\r\nexport class ProjectsReportComponent implements OnInit {\r\nprojectsInfo: MatTableDataSource ;\r\nprojectDetails: ProjectResponse[];\r\npageLoad = false;\r\nactionexport = true;\r\nselectedColumns: any[];\r\nthemeAppearence = themeconfig.formfieldappearances;\r\n@ViewChild(MatPaginator, { static: false }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: false }) sort: MatSort;\r\n @ViewChild('allSelected') private allSelected: MatOption;\r\n @ViewChild('table') table: MatTable;\r\n @ViewChild('exporter') exporter;\r\n private _onDestroy = new Subject();\r\n cols: any[] = [];\r\n myForm: FormGroup;\r\n filteredBanksMulti: ReplaySubject = new ReplaySubject(1);\r\n filteredcols: any[];\r\n displaycolsfields: any[];\r\n columnOptions: any[] = [];\r\n displaycols = [];\r\n totalRecordsCount = 0;\r\n showHideDetails: boolean = false;\r\n showCols: any;\r\n constructor(private service: ProjectsService, private spinner: NgxSpinnerService, private _snackBar: MatSnackBar, private fb: FormBuilder, public datepipe: DatePipe) { }\r\n\r\n ngOnInit(): void {\r\n\r\n this.myForm = this.fb.group({\r\n \r\n columnselect: [],\r\n columnfilter: ['']\r\n });\r\n this.projectDetails = [];\r\n \r\n this.cols = [\r\n { field: 'ProjectCode', header: 'Project Code' },\r\n { field: 'ProjectName', header: 'Project' },\r\n { field: 'ClientName', header: 'Client' },\r\n { field: 'ManagerName', header: 'Program Manager' },\r\n { field: 'ActualStartDate', header: 'Start Date' },\r\n { field: 'ProjectState', header: 'Status' },\r\n { field: 'ActualEndDate', header: 'End Date' },\r\n { field: 'ProjectTypeDescription', header: 'Project Type' },\r\n \r\n { field: 'PracticeAreaCode', header: 'Technology' },\r\n \r\n \r\n ];\r\n this.selectedColumns = [\r\n this.cols[0],\r\n this.cols[1],\r\n this.cols[2],\r\n this.cols[3],\r\n this.cols[4],\r\n this.cols[5],\r\n \r\n\r\n ];\r\n this.columnOptions = [];\r\n for (let i = 0; i < this.cols.length; i++) {\r\n\r\n this.columnOptions.push({ label: this.cols[i].header, value: this.cols[i] });\r\n\r\n }\r\nthis.spinner.show();\r\nthis.GetAll();\r\n\r\n\r\nthis.filteredcols = this.cols;\r\n this.displaycols = this.selectedColumns.map(col => col.header);\r\n this.displaycolsfields = this.selectedColumns.map(col => col.field);\r\n this.myForm.controls.columnselect.setValue(this.selectedColumns);\r\n \r\n this.filteredBanksMulti.next(this.cols.slice());\r\n this.myForm.controls.columnfilter.valueChanges\r\n .pipe(takeUntil(this._onDestroy))\r\n .subscribe(() => {\r\n this.filterBanksMulti();\r\n });\r\nthis.pageLoad = true\r\n }\r\n ngOnDestroy() {\r\n this._onDestroy.next();\r\n this._onDestroy.complete();\r\n }\r\n ModifyDateFormat(data: ProjectResponse[]): void {\r\n data.forEach(e => {\r\n if (e.ActualStartDate != null) {\r\n e.ActualStartDate = moment(e.ActualStartDate).format('MM/DD/YYYY');\r\n }\r\n if (e.ActualEndDate != null) {\r\n e.ActualEndDate = moment(e.ActualEndDate).format('MM/DD/YYYY');\r\n } \r\n })\r\n this.projectsInfo =new MatTableDataSource(data);\r\n this.projectsInfo.paginator = this.paginator;\r\n this.projectsInfo.sort = this.sort;\r\n }\r\n \r\n GetAll()\r\n {\r\n this.service.GetAllProjects().toPromise().then((res: ProjectResponse[])=>{\r\n this.projectDetails = res;\r\n this.ModifyDateFormat(this.projectDetails);\r\n this.totalRecordsCount = res.length;\r\n console.log(this.projectDetails.length);\r\n \r\n this.spinner.hide();\r\n }).catch(error=>{\r\n this.spinner.hide();\r\n this._snackBar.open('Error Occured While Fetching Project Details', 'x', {\r\n duration: 2000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });;\r\n }\r\n alterTable(event: any) {\r\n if (!this.allSelected.selected){\r\n this.selectedColumns = event.value;\r\n this.myForm.controls.columnselect.setValue(this.selectedColumns);\r\n this.displaycols = this.selectedColumns.map(col => col.header);\r\n this.table.renderRows();\r\n }\r\n }\r\n\r\n tosslePerOne(all) {\r\n if (this.allSelected.selected) {\r\n this.allSelected.deselect();\r\n return false;\r\n }\r\n if (\r\n this.selectedColumns.length ==\r\n this.cols.length\r\n )\r\n this.allSelected.select();\r\n }\r\n\r\n toggleAllSelection() {\r\n if (this.allSelected.selected) {\r\n this.selectedColumns= [...this.cols.map(item => item),0];\r\n this.myForm.controls.columnselect\r\n .patchValue(this.selectedColumns);\r\n this.displaycols = this.cols.map(col => col.header);\r\n this.table.renderRows();\r\n } else {\r\n this.myForm.controls.columnselect.patchValue([]);\r\n this.selectedColumns=[];\r\n this.displaycols = [];\r\n this.table.renderRows();\r\n }\r\n }\r\n private filterBanksMulti() {\r\n if (!this.cols) {\r\n return;\r\n }\r\n \r\n let search = this.myForm.controls.columnfilter.value;\r\n if (!search) {\r\n this.filteredBanksMulti.next(this.cols.slice());\r\n return;\r\n } else {\r\n search = search.toLowerCase();\r\n }\r\n \r\n this.filteredBanksMulti.next(\r\n this.cols.filter(ele => ele.header.toLowerCase().indexOf(search) > -1)\r\n );\r\n }\r\n filter(event: any) {\r\n\r\n let filterValue = this.myForm.controls.columnfilter.value;\r\n if (filterValue) {\r\n return this.filteredcols = this.cols.filter(option => option.header.toLowerCase().includes(filterValue));\r\n }\r\n else {\r\n return this.cols;\r\n }\r\n }\r\n exporterIntoExcel() {\r\n this.showCols = this.selectedColumns;\r\n this.selectedColumns = this.cols;\r\n this.myForm.controls.columnselect.setValue(this.selectedColumns);\r\n this.displaycols = this.selectedColumns.map(col => col.header);\r\n this.table.renderRows();\r\n \r\n \r\n }\r\n export()\r\n {\r\n \r\n this.exporter.exportTable('csv',{fileName: 'Projects Report'})\r\n this.actionexport = false;\r\n \r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {{selectedColumns.length}} columns selected\r\n \r\n \r\n \r\n \r\n All\r\n \r\n {{q.header}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n Total Records:\r\n {{totalRecordsCount >0 ? totalRecordsCount: 0}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n 0 \"\r\n (click)=\"exporterIntoExcel()\" (click)=\"export()\" title=\"Export to Excel\">\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
{{col.header}}\r\n {{element[col.field]}}
No data
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-reports',\r\n templateUrl: './reports.component.html',\r\n styleUrls: ['./reports.component.scss']\r\n})\r\nexport class ReportsComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n \r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-resource-report-by-month',\r\n templateUrl: './resource-report-by-month.component.html',\r\n styleUrls: ['./resource-report-by-month.component.scss']\r\n})\r\nexport class ResourceReportByMonthComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","

resource-report-by-month works!

\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-resource-report-by-project',\r\n templateUrl: './resource-report-by-project.component.html',\r\n styleUrls: ['./resource-report-by-project.component.scss']\r\n})\r\nexport class ResourceReportByProjectComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","

resource-report-by-project works!

\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { ResourceReportCriticalService } from '../../services/resource-report-critical.service';\r\nimport { EmployeeReportData } from '../../models/employee.model';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTable, MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { AllColorCodes } from '../../../../core/color-codes';\r\nimport { NavService } from '../../../master-layout/services/nav.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { ReportsData } from '../../models/reportsdata.model';\r\nimport { FileExporterService } from 'src/app/core/services/file-exporter.service'\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatOption } from '@angular/material/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { ReplaySubject, Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n\r\n@Component({\r\n selector: 'app-resource-report-critical-nonbilling',\r\n templateUrl: './resource-report-critical-nonbilling.component.html',\r\n styleUrls: ['./resource-report-critical-nonbilling.component.scss']\r\n\r\n})\r\nexport class ResourceReportCriticalNonbillingComponent implements OnInit {\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n\r\n filteredBanksMulti: ReplaySubject = new ReplaySubject(1);\r\n cols: any[] = [];\r\n selectedColumns: any[];\r\n displaycols: any[];\r\n public lstCriticalResourceReportData: ReportsData[] = []\r\n lstEmployees: EmployeeReportData[] = []; // Used to store employee details of a specific pool\r\n public heading: string;\r\n colorCodes = AllColorCodes;\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n showProjectHistory: boolean = false;\r\n private resources = servicePath.API.PagingConfigValue;\r\n totalRecordsCount:number\r\n private _onDestroy = new Subject();\r\n lstCriticalResourceReportDataSource: MatTableDataSource;\r\n criticalResourceReportForm: FormGroup;\r\n @ViewChild('table') table: MatTable;\r\n @ViewChild('allSelected') private allSelected: MatOption;\r\n @ViewChild(MatSort) sort: MatSort;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n\r\n constructor(private _criticalResourceReportService: ResourceReportCriticalService, public navService: NavService, private spinner: NgxSpinnerService,private fileExporterService:FileExporterService, private _snackBar: MatSnackBar) {\r\n this.PageSize = this.resources.PageSize;\r\n this.PageDropDown = this.resources.PageDropDown;\r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n this.applyFilter(responseData);\r\n })\r\n }\r\n\r\n getData() {\r\n this.spinner.show()\r\n this._criticalResourceReportService.GetCriticalResourceReport().subscribe(\r\n (response: ReportsData[]) => {\r\n this.spinner.hide()\r\n this.lstCriticalResourceReportData = response;\r\n this.lstCriticalResourceReportData.forEach((ele: ReportsData) => {\r\n ele.Experience = Number(ele.Experience).toFixed(2);\r\n });\r\n this.totalRecordsCount = this.lstCriticalResourceReportData.length\r\n this.lstCriticalResourceReportDataSource = new MatTableDataSource(this.lstCriticalResourceReportData);\r\n this.lstCriticalResourceReportDataSource.paginator = this.paginator;\r\n this.lstCriticalResourceReportDataSource.sort = this.sort;\r\n },\r\n (error=> {\r\n this.spinner.hide();\r\n if (error._body != undefined && error._body != \"\")\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 1000, panelClass: ['Failed to get Critical Resource Report List'], horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n else{\r\n this.spinner.hide();\r\n this._snackBar.open('Some Error occured while fetching the records', 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n }))\r\n }\r\n \r\n ngOnInit() {\r\n this.cols = [\r\n\r\n { field: 'EmployeeCode', header: 'ID' },\r\n { field: 'AssociateName', header: 'Name' },\r\n { field: 'Designation', header: 'Designation' },\r\n { field: 'Grade', header: 'Grade' },\r\n { field: 'Technology', header: 'Technology' },\r\n { field: 'ProjectName', header: 'Project' },\r\n { field: 'Skill', header: 'Skill' },\r\n { field: 'Experience', header: 'Experience' },\r\n ];\r\n this.defaultSelectedCols();\r\n this.displaycols = this.selectedColumns.map(col => col.header);\r\n this.createForm();\r\n this.criticalResourceReportForm.controls.columnselect.setValue(this.selectedColumns);\r\n // this.maxDateValue = new Date();\r\n this.filteredBanksMulti.next(this.cols.slice());\r\n this.criticalResourceReportForm.controls.columnfilter.valueChanges\r\n .pipe(takeUntil(this._onDestroy))\r\n .subscribe(() => {\r\n this.filterBanksMulti();\r\n });\r\n this.getData();\r\n }\r\n\r\n private filterBanksMulti() {\r\n if (!this.cols) {\r\n return;\r\n }\r\n // get the search keyword\r\n let search = this.criticalResourceReportForm.controls.columnfilter.value;\r\n if (!search) {\r\n this.filteredBanksMulti.next(this.cols.slice());\r\n return;\r\n } else {\r\n search = search.toLowerCase();\r\n }\r\n // filter the banks\r\n this.filteredBanksMulti.next(\r\n this.cols.filter(ele => ele.header.toLowerCase().indexOf(search) > -1)\r\n );\r\n }\r\n\r\n defaultSelectedCols() {\r\n this.selectedColumns = [\r\n\r\n this.cols[0],\r\n this.cols[1],\r\n this.cols[2],\r\n this.cols[3],\r\n this.cols[4],\r\n this.cols[5],\r\n this.cols[6],\r\n this.cols[7],\r\n ];\r\n }\r\n\r\n createForm() {\r\n this.criticalResourceReportForm = new FormGroup({\r\n columnselect: new FormControl(),\r\n columnfilter: new FormControl(''),\r\n });\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n if (filterValue) {\r\n this.lstCriticalResourceReportDataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n else {\r\n this.lstCriticalResourceReportDataSource = new MatTableDataSource(this.lstCriticalResourceReportData);\r\n this.lstCriticalResourceReportDataSource.paginator = this.paginator;\r\n this.lstCriticalResourceReportDataSource.sort = this.sort;\r\n }\r\n } else {\r\n this.lstCriticalResourceReportDataSource = new MatTableDataSource(this.lstCriticalResourceReportData);\r\n this.lstCriticalResourceReportDataSource.paginator = this.paginator;\r\n this.lstCriticalResourceReportDataSource.sort = this.sort;\r\n }\r\n }\r\n\r\n exportAsXLSX(){\r\n let columnsForExcel=[]\r\n let columnsForEachRow={}\r\n for(let i=0;i col.header);\r\n this.table.renderRows();\r\n }\r\n }\r\n\r\n tosslePerOne(all) {\r\n if (this.allSelected.selected) {\r\n this.allSelected.deselect();\r\n return false;\r\n }\r\n if (\r\n this.selectedColumns.length ==\r\n this.cols.length\r\n )\r\n this.allSelected.select();\r\n }\r\n\r\n toggleAllSelection() {\r\n if (this.allSelected.selected) {\r\n this.selectedColumns = [...this.cols.map(item => item), 0];\r\n this.criticalResourceReportForm.controls.columnselect\r\n .patchValue(this.selectedColumns);\r\n this.displaycols = this.cols.map(col => col.header);\r\n this.table.renderRows();\r\n } else {\r\n this.criticalResourceReportForm.controls.columnselect.patchValue([]);\r\n this.selectedColumns = [];\r\n this.displaycols = [];\r\n this.table.renderRows();\r\n }\r\n }\r\n }","\r\n
\r\n
\r\n
\r\n \r\n {{selectedColumns.length}} columns selected\r\n \r\n \r\n \r\n \r\n All\r\n \r\n {{q.header}}\r\n \r\n \r\n \r\n
\r\n
\r\n Total Records:\r\n {{totalRecordsCount >0 ? totalRecordsCount: 0}}\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
{{ col.header }}\r\n {{element[col.field]}}
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n

Loading ...

\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { ReportsData } from '../../models/reportsdata.model';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { MatTable, MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { ResourceReportNoncriticalService} from '../../services/resource-report-noncritical.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { FileExporterService } from 'src/app/core/services/file-exporter.service';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { MatOption } from '@angular/material/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { ReplaySubject, Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport * as moment from 'moment';\r\n\r\n@Component({\r\n selector: 'app-resource-report-non-critical-nonbilling',\r\n templateUrl: './resource-report-non-critical-nonbilling.component.html',\r\n styleUrls: ['./resource-report-non-critical-nonbilling.component.scss']\r\n})\r\nexport class ResourceReportNonCriticalNonbillingComponent implements OnInit {\r\n\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n\r\n filteredBanksMulti: ReplaySubject = new ReplaySubject(1);\r\n cols: any[] = [];\r\n selectedColumns: any[];\r\n displaycols: any[];\r\n public lstNonCriticalResourceReportData: ReportsData[] = []\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n showProjectHistory: boolean = false;\r\n private resources = servicePath.API.PagingConfigValue;\r\n totalRecordsCount:number\r\n lstNonCriticalResourceReportDataSource: MatTableDataSource;\r\n nonCriticalResourceReportForm: FormGroup;\r\n private _onDestroy = new Subject();\r\n\r\n @ViewChild('table') table: MatTable;\r\n @ViewChild('allSelected') private allSelected: MatOption;\r\n @ViewChild(MatSort) sort: MatSort;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n\r\n constructor(private _NoncriticalResourceReportService: ResourceReportNoncriticalService, public navService: NavService, private spinner: NgxSpinnerService,private fileExporterService:FileExporterService, private _snackBar: MatSnackBar) {\r\n this.PageSize = this.resources.PageSize;\r\n this.PageDropDown = this.resources.PageDropDown;\r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n this.applyFilter(responseData);\r\n })\r\n }\r\n\r\n getData() {\r\n this.spinner.show()\r\n this._NoncriticalResourceReportService.GetNonCriticalResourceReport().subscribe(\r\n (response: ReportsData[]) => {\r\n this.spinner.hide()\r\n this.lstNonCriticalResourceReportData = response;\r\n this.lstNonCriticalResourceReportData.forEach((ele: ReportsData) => {\r\n ele.Experience = Number(ele.Experience).toFixed(2);\r\n ele.JoinDate = moment(ele.JoinDate).format(\"YYYY-MM-DD\");\r\n ele.FutureProjectTentativeDate = ele.FutureProjectTentativeDate && moment(ele.FutureProjectTentativeDate).format(\"YYYY-MM-DD\");\r\n });\r\n this.totalRecordsCount = this.lstNonCriticalResourceReportData.length\r\n this.lstNonCriticalResourceReportDataSource = new MatTableDataSource(this.lstNonCriticalResourceReportData);\r\n this.lstNonCriticalResourceReportDataSource.paginator = this.paginator;\r\n this.lstNonCriticalResourceReportDataSource.sort = this.sort;\r\n },\r\n (error=> {\r\n this.spinner.hide();\r\n if (error._body != undefined && error._body != \"\")\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 1000, panelClass: ['Failed to get Non Critical Resource Report List'], horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n else{\r\n this.spinner.hide();\r\n this._snackBar.open('Some Error occured while fetching the records', 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n }))\r\n }\r\n \r\n ngOnInit() {\r\n this.cols = [\r\n { field: 'EmployeeCode', header: 'ID' },\r\n { field: 'AssociateName', header: 'Name' },\r\n { field: 'Designation', header: 'Designation' },\r\n { field: 'Grade', header: 'Grade' },\r\n { field: 'Technology', header: 'Technology' },\r\n { field: 'ProjectName', header: 'Project' },\r\n { field: 'Skill', header: 'Skill' },\r\n { field: 'Experience', header: 'Experience' },\r\n\r\n { field: 'JoinDate', header: ' SG Joined Date' },\r\n { field: 'ClientName', header: 'Client' },\r\n { field: 'IsBillableForExcel', header: 'Billable' }, //, type: this.yesNoPipe\r\n { field: 'IsCriticalForExcel', header: 'Critical' },\r\n { field: 'Allocationpercentage', header: '(%) Utilization' },\r\n { field: 'LeadName', header: 'Lead' },\r\n { field: 'ReportingManagerName', header: 'Reporting Manager' },\r\n { field: 'ProgramManagerName', header: 'Program Manager' },\r\n // { field: 'IsResignedForExcel', header: 'Resigned' },\r\n // { field: 'ResignationDate', header: 'Resignation Date' },\r\n // { field: 'LastWorkingDate', header: 'Last Working Date' },\r\n // { field: 'IsLongLeaveForExcel', header: 'Long Leave' },\r\n // { field: 'LongLeaveStartDate', header: 'Start Date' },\r\n // { field: 'TentativeJoinDate', header: 'Tentitive Join Date' },\r\n { field: 'FutureProjectName', header: 'Future Project'},\r\n { field: 'FutureProjectTentativeDate', header: 'Future Project Tentative Start Date'}\r\n\r\n ];\r\n this.defaultSelectedCols();\r\n this.displaycols = this.selectedColumns.map(col => col.header);\r\n this.createForm();\r\n this.nonCriticalResourceReportForm.controls.columnselect.setValue(this.selectedColumns);\r\n // this.maxDateValue = new Date();\r\n this.filteredBanksMulti.next(this.cols.slice());\r\n this.nonCriticalResourceReportForm.controls.columnfilter.valueChanges\r\n .pipe(takeUntil(this._onDestroy))\r\n .subscribe(() => {\r\n this.filterBanksMulti();\r\n });\r\n this.getData();\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n if (filterValue) {\r\n this.lstNonCriticalResourceReportDataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n else {\r\n this.lstNonCriticalResourceReportDataSource = new MatTableDataSource(this.lstNonCriticalResourceReportData);\r\n this.lstNonCriticalResourceReportDataSource.paginator = this.paginator;\r\n this.lstNonCriticalResourceReportDataSource.sort = this.sort;\r\n }\r\n } else {\r\n this.lstNonCriticalResourceReportDataSource = new MatTableDataSource(this.lstNonCriticalResourceReportData);\r\n this.lstNonCriticalResourceReportDataSource.paginator = this.paginator;\r\n this.lstNonCriticalResourceReportDataSource.sort = this.sort;\r\n }\r\n }\r\n\r\n private filterBanksMulti() {\r\n if (!this.cols) {\r\n return;\r\n }\r\n // get the search keyword\r\n let search = this.nonCriticalResourceReportForm.controls.columnfilter.value;\r\n if (!search) {\r\n this.filteredBanksMulti.next(this.cols.slice());\r\n return;\r\n } else {\r\n search = search.toLowerCase();\r\n }\r\n // filter the banks\r\n this.filteredBanksMulti.next(\r\n this.cols.filter(ele => ele.header.toLowerCase().indexOf(search) > -1)\r\n );\r\n }\r\n\r\n exportAsXLSX(){\r\n let columnsForExcel=[]\r\n let columnsForEachRow={}\r\n for(let i=0;i col.header);\r\n this.table.renderRows();\r\n }\r\n }\r\n\r\n tosslePerOne(all) {\r\n if (this.allSelected.selected) {\r\n this.allSelected.deselect();\r\n return false;\r\n }\r\n if (\r\n this.selectedColumns.length ==\r\n this.cols.length\r\n )\r\n this.allSelected.select();\r\n }\r\n\r\n toggleAllSelection() {\r\n if (this.allSelected.selected) {\r\n this.selectedColumns = [...this.cols.map(item => item), 0];\r\n this.nonCriticalResourceReportForm.controls.columnselect\r\n .patchValue(this.selectedColumns);\r\n this.displaycols = this.cols.map(col => col.header);\r\n this.table.renderRows();\r\n } else {\r\n this.nonCriticalResourceReportForm.controls.columnselect.patchValue([]);\r\n this.selectedColumns = [];\r\n this.displaycols = [];\r\n this.table.renderRows();\r\n }\r\n }\r\n\r\n}\r\n","\r\n
\r\n
\r\n
\r\n \r\n {{selectedColumns.length}} columns selected\r\n \r\n \r\n \r\n \r\n All\r\n \r\n {{q.header}}\r\n \r\n \r\n \r\n
\r\n
\r\n Total Records:\r\n {{totalRecordsCount >0 ? totalRecordsCount: 0}}\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
{{ col.header }}\r\n {{element[col.field]}}
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n

Loading ...

\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { FormGroup, FormBuilder, Validators, FormControl } from '@angular/forms';\r\nimport { ResourceReportService } from '../../services/resource-report.service';\r\nimport { CommonService } from '../../../../core/services/common.service';\r\nimport { MasterDataService } from '../../../../core/services/masterdata.service';\r\nimport { AllocationCount, AllocationDetails, ProjectDetails, ResourceAllocationDetails } from '../../models/resourcereportbyproject.model';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { Chart } from 'chart.js';\r\nimport { GenericType } from '../../../master-layout/models/dropdowntype.model';\r\nimport { Observable } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { timeStamp } from 'console';\r\nimport { Location } from '@angular/common';\r\nimport * as moment from \"moment\";\r\nimport { filter } from \"rxjs/operators\";\r\nimport { NavigationStart, Event as NavigationEvent } from \"@angular/router\";\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\ninterface SelectItem {\r\n value : number;\r\n label : string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-resource-report-project',\r\n templateUrl: './resource-report-project.component.html',\r\n styleUrls: ['./resource-report-project.component.scss']\r\n})\r\nexport class ResourceReportProjectComponent implements OnInit {\r\n\r\n defaultIndex = 1;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n projectsForm: FormGroup;\r\n projectId: number = 0;\r\n disableProject : boolean = false;\r\n clearFieldIcon : boolean = false;\r\n private chartType: string = \"pie\";\r\n private componentName: string;\r\n projectsList: SelectItem[] = [];\r\n projList : SelectItem[] = [];\r\n resourceAllocationList: AllocationCount[] = [];\r\n billableResourceAllocationList: ResourceAllocationDetails[] = [];\r\n nonBillableCriticalResourceAllocationList: ResourceAllocationDetails[] = [];\r\n nonBillableNonCriticalResourceAllocationList: ResourceAllocationDetails[] = [];\r\n private resourceAllocationCount: AllocationCount;\r\n private resourceReportByProjectChart : any;\r\n private resourceReportByPieChart : any;\r\n canvas: any;\r\n ctx: any;\r\n selectedProjectId:any;\r\n dispChart: boolean;\r\n\r\n filteredProject : Observable;\r\n previous:string;\r\n resourceAllocationDataSource: MatTableDataSource;\r\n billableResourceAllocationDataSource: MatTableDataSource;\r\n nonBillableCriticalResourceAllocationDataSource: MatTableDataSource;\r\n nonBillableNonCriticalResourceAllocationDataSource: MatTableDataSource;\r\n @ViewChild('billableResourcePaginator', { static: false }) billableResourcePaginator: MatPaginator;\r\n @ViewChild('nonBillableCriticalResourcePaginator', { static: false }) nonBillableCriticalResourcePaginator: MatPaginator;\r\n @ViewChild('nonBillableNonCriticalResourcePaginator', { static: false }) nonBillableNonCriticalResourcePaginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n @ViewChild('resourceChart') resourceChart: any;\r\n @ViewChild('resourcePieChart') resourcePieChart: any;\r\n\r\n\r\n displayedColumnsResourceAllocation: string[] = ['ProjectName','ResourceCount','BillableCount','NonBillableCriticalCount','NonBillableNonCriticalCount'];\r\n displayedColumnsbillableNonBillabale: string[] = ['AssociateCode','AssociateName','AllocationPercentage','ClientBillingRoleName','IsPrimaryProject','IsCriticalResource','EffectiveDate'];\r\n \r\n constructor(private actRoute: ActivatedRoute,\r\n private fb: FormBuilder,\r\n private _resourceReportsService: ResourceReportService,\r\n private _commonService: CommonService,\r\n private _snackBar: MatSnackBar,\r\n private _masterDataService: MasterDataService,\r\n public navService: NavService,\r\n private router: Router,private spinner: NgxSpinnerService) { \r\n this.navService.changeSearchBoxData('');\r\n\r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.actRoute.params.subscribe(params => { this.projectId = params[\"projectId\"]; });\r\n if(this.projectId > 0){\r\n this.dispChart=true;\r\n this.projectId = Number(this.projectId);\r\n this.disableProject = true;\r\n this.onProjectChange(this.projectId);\r\n }\r\n // this.projectsList = [];\r\n // this.projectsList.splice(0, 0, { label: '', value: 0 });\r\n this.getProjectList();\r\n this.previous = this._resourceReportsService.getPreviousUrl();\r\n this.projectsForm = this.fb.group({\r\n ProjectId: new FormControl({ value: null, disabled: this.disableProject })\r\n });\r\n\r\n }\r\n\r\n ngAfterViewInit(){\r\n\r\n this.canvas = document.getElementById('resourceReportByProjectPieChart');\r\n this.ctx = this.canvas.getContext('2d');\r\n\r\n }\r\n\r\n getProjectList(): void {\r\n this._masterDataService.GetProjectsList().subscribe((projectResponse: GenericType[]) => {\r\n \r\n this.projectsList = [];\r\n this.projList = [];\r\n this.projList.push({ label: '', value: null });\r\n projectResponse.forEach((projectResponse: GenericType) => {\r\n this.projList.push({ label: projectResponse.Name, value: projectResponse.Id });\r\n });\r\n if(this.projectId > 0){\r\n let obj = this.projList.find(o=>o.value === this.projectId)\r\n this.projectsForm.controls['ProjectId'].setValue(obj.label);\r\n }\r\n this.projectsList = this.projList.filter(\r\n (project, index, arr) => arr.findIndex(t => t.value === project.value) === index);\r\n\r\n this.filteredProject = this.projectsForm.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterProject(value))\r\n ); \r\n },\r\n (error: any) => {\r\n if (error._body != undefined && error._body != \"\")\r\n this._commonService.LogError(this.componentName, error._body).subscribe((data: any) => {\r\n });\r\n this._snackBar.open('Failed to get Project List.', 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n\r\n private _filterProject(value) {\r\n if(value)\r\n this.clearFieldIcon = true;\r\n let filterValue;\r\n if (value && value.ProjectId) {\r\n filterValue = value.ProjectId.toLowerCase();\r\n return this.projectsList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.projectsList;\r\n }\r\n }\r\n\r\n clearField() {\r\n this.projectsForm.controls.ProjectId.setValue(null);\r\n this.clearFieldIcon = false;\r\n this.onProjectChange(0);\r\n }\r\n\r\n selectedChangeIds(item){\r\n this.dispChart=true;\r\n this.selectedProjectId = item.value;\r\n this.onProjectChange(this.selectedProjectId);\r\n\r\n }\r\n\r\n onProjectChange(projectId): void {\r\n this.getResourceReportByProjectId(projectId);\r\n }\r\n\r\n getResourceReportByProjectId(projectId: number): void {\r\n this.spinner.show()\r\n if (projectId != 0) {\r\n this._resourceReportsService.GetResourceReportByProjectId(projectId).subscribe((resourceReportResponse: AllocationDetails) => {\r\n this.spinner.hide()\r\n this.resourceAllocationList = [];\r\n this.billableResourceAllocationList = [];\r\n this.nonBillableCriticalResourceAllocationList = [];\r\n this.nonBillableNonCriticalResourceAllocationList = [];\r\n this.resourceAllocationCount = new AllocationCount();\r\n\r\n if (resourceReportResponse && resourceReportResponse.AllocationCount) {\r\n if (resourceReportResponse.AllocationCount) {\r\n this.resourceAllocationCount = resourceReportResponse.AllocationCount;\r\n if (this.chartType == \"pie\") {\r\n this.getResourceReportPieChart();\r\n }\r\n else {\r\n this.getResourceReportBarChart();\r\n }\r\n this.resourceAllocationList.push({\r\n ProjectName: this.resourceAllocationCount.ProjectName,\r\n ResourceCount: this.resourceAllocationCount.ResourceCount,\r\n BillableCount: this.resourceAllocationCount.BillableCount,\r\n NonBillableCriticalCount: this.resourceAllocationCount.NonBillableCriticalCount,\r\n NonBillableNonCriticalCount:this.resourceAllocationCount.NonBillableNonCriticalCount\r\n });\r\n this.resourceAllocationDataSource = new MatTableDataSource(this.resourceAllocationList);\r\n }\r\n if (resourceReportResponse.lstBillableResources && resourceReportResponse.lstBillableResources.length > 0) {\r\n this.billableResourceAllocationList = resourceReportResponse.lstBillableResources;\r\n this.billableResourceAllocationList.forEach((record: ResourceAllocationDetails) => {\r\n record.EffectiveDate = moment(record.EffectiveDate).format('DD-MM-YYYY');\r\n });\r\n this.billableResourceAllocationDataSource = new MatTableDataSource(this.billableResourceAllocationList);\r\n this.billableResourceAllocationDataSource.paginator = this.billableResourcePaginator;\r\n this.billableResourceAllocationDataSource.sort = this.sort;\r\n }\r\n if (resourceReportResponse.lstNonBillableCriticalResources && resourceReportResponse.lstNonBillableCriticalResources.length > 0) {\r\n this.nonBillableCriticalResourceAllocationList = resourceReportResponse.lstNonBillableCriticalResources;\r\n this.nonBillableCriticalResourceAllocationList.forEach((record: ResourceAllocationDetails) => {\r\n record.EffectiveDate = moment(record.EffectiveDate).format('DD-MM-YYYY');\r\n });\r\n this.nonBillableCriticalResourceAllocationDataSource = new MatTableDataSource(this.nonBillableCriticalResourceAllocationList);\r\n this.nonBillableCriticalResourceAllocationDataSource.paginator = this.nonBillableCriticalResourcePaginator;\r\n this.nonBillableCriticalResourceAllocationDataSource.sort = this.sort;\r\n\r\n }\r\n if (resourceReportResponse.lstNonBillableNonCriticalResources && resourceReportResponse.lstNonBillableNonCriticalResources.length > 0) {\r\n this.nonBillableNonCriticalResourceAllocationList = resourceReportResponse.lstNonBillableNonCriticalResources;\r\n this.nonBillableNonCriticalResourceAllocationList.forEach((record: ResourceAllocationDetails) => {\r\n record.EffectiveDate = moment(record.EffectiveDate).format('DD-MM-YYYY');\r\n });\r\n this.nonBillableNonCriticalResourceAllocationDataSource = new MatTableDataSource(this.nonBillableNonCriticalResourceAllocationList);\r\n this.nonBillableNonCriticalResourceAllocationDataSource.paginator = this.nonBillableNonCriticalResourcePaginator;\r\n this.nonBillableNonCriticalResourceAllocationDataSource.sort = this.sort;\r\n\r\n }\r\n }\r\n else {\r\n this._snackBar.open('No records found', 'x', {\r\n duration: 1000,\r\n panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n },\r\n (error: any) => {\r\n this.spinner.hide()\r\n if (error._body != undefined && error._body != \"\")\r\n this._commonService.LogError(this.componentName, error._body).subscribe((data: any) => {\r\n });\r\n this._snackBar.open('Failed to get Resource Report Deatils', 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n else {\r\n this.spinner.hide()\r\n this.resourceAllocationCount = new AllocationCount();\r\n this.resourceAllocationList = [];\r\n this.billableResourceAllocationList = [];\r\n this.nonBillableCriticalResourceAllocationList = [];\r\n this.nonBillableNonCriticalResourceAllocationList\r\n this.resourceAllocationDataSource = new MatTableDataSource(this.resourceAllocationList);\r\n\r\n this.billableResourceAllocationDataSource = new MatTableDataSource(this.billableResourceAllocationList);\r\n this.billableResourceAllocationDataSource.paginator = this.billableResourcePaginator;\r\n this.billableResourceAllocationDataSource.sort = this.sort;\r\n\r\n this.nonBillableCriticalResourceAllocationDataSource = new MatTableDataSource(this.nonBillableCriticalResourceAllocationList);\r\n this.nonBillableCriticalResourceAllocationDataSource.paginator = this.nonBillableCriticalResourcePaginator;\r\n this.nonBillableCriticalResourceAllocationDataSource.sort = this.sort;\r\n\r\n this.nonBillableNonCriticalResourceAllocationDataSource = new MatTableDataSource(this.nonBillableNonCriticalResourceAllocationList);\r\n this.nonBillableNonCriticalResourceAllocationDataSource.paginator = this.nonBillableNonCriticalResourcePaginator;\r\n this.nonBillableNonCriticalResourceAllocationDataSource.sort = this.sort;\r\n\r\n this.resourceReportByProjectChart.destroy();\r\n this.resourceReportByPieChart.destroy();\r\n \r\n }\r\n }\r\n\r\n onBarChartClick(resourceAllocationCount: AllocationCount) {\r\n this.resourceAllocationCount = resourceAllocationCount;\r\n this.getResourceReportBarChart();\r\n }\r\n\r\n onPieChartClick(resourceAllocationCount: AllocationCount) {\r\n this.resourceAllocationCount = resourceAllocationCount;\r\n this.getResourceReportPieChart();\r\n }\r\n\r\n getResourceReportBarChart(): void {\r\n const canvas = document.getElementById('resourceReportByProjectChart');\r\n const ctx = canvas.getContext('2d');\r\n \r\n if (this.resourceReportByProjectChart) {\r\n this.resourceReportByProjectChart.destroy();\r\n }\r\n\r\n this.resourceReportByProjectChart = new Chart(ctx,{\r\n type : 'bar',\r\n data : {\r\n labels: [this.resourceAllocationCount.ProjectName],\r\n datasets: [\r\n {\r\n label: 'Billable Resource(s)',\r\n backgroundColor: '#00b33c',\r\n borderColor: '#009933',\r\n data: [this.resourceAllocationCount.BillableCount]\r\n },\r\n {\r\n label: 'NonBillable Critical Resource(s)',\r\n backgroundColor: '#ffbb33',\r\n borderColor: '#ffaa00',\r\n data: [this.resourceAllocationCount.NonBillableCriticalCount]\r\n },\r\n {\r\n label: 'NonBillable NonCritical Resource(s)',\r\n backgroundColor: '#ff6666',\r\n borderColor: '#ff6666',\r\n data: [this.resourceAllocationCount.NonBillableNonCriticalCount]\r\n }\r\n ]\r\n },\r\n \r\n options : {\r\n title: {\r\n display: true,\r\n text: this.resourceAllocationCount.ProjectName,\r\n fontSize: 16\r\n },\r\n legend: {\r\n position: 'bottom'\r\n },\r\n scaleShowVerticalLines: false,\r\n responsive: true,\r\n scales: {\r\n xAxes: [{\r\n stacked: true\r\n }],\r\n yAxes: [{\r\n stacked: true\r\n }]\r\n }\r\n }\r\n });\r\n if (this.resourceChart) {\r\n setTimeout(() => {\r\n this.resourceChart.reinit();\r\n }, 10);\r\n }\r\n }\r\n\r\n\r\n getResourceReportPieChart(): void {\r\n \r\n // const canvas = document.getElementById('resourceReportByProjectPieChart');\r\n // const ctx = canvas.getContext('2d');\r\n \r\n if (this.resourceReportByPieChart) {\r\n this.resourceReportByPieChart.destroy();\r\n }\r\n this.resourceReportByPieChart = new Chart(this.ctx,{\r\n type : 'pie',\r\n data : {\r\n labels : ['Billable','NonBillable critical','NonBillable NonCritical'],\r\n datasets: [{\r\n label: 'No. of Resources',\r\n backgroundColor: ['#00b33c','#ffbb33', '#ff6666'],\r\n borderColor: ['#009933','#ffaa00', 'ff6666'],\r\n data: [this.resourceAllocationCount.BillableCount, this.resourceAllocationCount.NonBillableCriticalCount, this.resourceAllocationCount.NonBillableNonCriticalCount]\r\n }]\r\n },\r\n options : {\r\n responsive:true,\r\n maintainAspectRatio: false,\r\n legend: {\r\n position: 'bottom'\r\n },\r\n }\r\n });\r\n\r\n if (this.resourcePieChart) {\r\n setTimeout(() => {\r\n this.resourcePieChart.reinit();\r\n }, 10);\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.resourceAllocationDataSource.filter = filterValue.trim().toLowerCase();\r\n this.billableResourceAllocationDataSource.filter = filterValue.trim().toLowerCase();\r\n this.nonBillableCriticalResourceAllocationDataSource.filter = filterValue.trim().toLowerCase();\r\n this.nonBillableNonCriticalResourceAllocationDataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n\r\n this.resourceAllocationDataSource = new MatTableDataSource(this.resourceAllocationList);\r\n\r\n this.billableResourceAllocationDataSource = new MatTableDataSource(this.billableResourceAllocationList);\r\n this.billableResourceAllocationDataSource.paginator = this.billableResourcePaginator;\r\n this.billableResourceAllocationDataSource.sort = this.sort;\r\n\r\n this.nonBillableCriticalResourceAllocationDataSource = new MatTableDataSource(this.nonBillableCriticalResourceAllocationList);\r\n this.nonBillableCriticalResourceAllocationDataSource.paginator = this.nonBillableCriticalResourcePaginator;\r\n this.nonBillableCriticalResourceAllocationDataSource.sort = this.sort;\r\n\r\n this.nonBillableNonCriticalResourceAllocationDataSource = new MatTableDataSource(this.nonBillableNonCriticalResourceAllocationList);\r\n this.nonBillableNonCriticalResourceAllocationDataSource.paginator = this.nonBillableNonCriticalResourcePaginator;\r\n this.nonBillableNonCriticalResourceAllocationDataSource.sort = this.sort;\r\n }\r\n }\r\n\r\n backToProjects(){\r\n if(this.previous=='/reports/servicereport'){\r\n this.router.navigate(['/reports/servicereport'])\r\n }\r\n else{\r\n this.router.navigate(['/project/dashboard/']);\r\n }\r\n}\r\n\r\n\r\n changeChart(e) {\r\n this.defaultIndex = e.index;\r\n if (e.index == 0) {\r\n this.getResourceReportBarChart();\r\n }\r\n else if (e.index == 1) {\r\n this.getResourceReportPieChart();\r\n }\r\n }\r\n\r\n\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n \r\n Select Projects\r\n \r\n \r\n \r\n \r\n {{item.label}}\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 bar_chart\r\n Bar\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n pie_chart\r\n Pie\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
0\">\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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Project Name\r\n {{resourceAllocation.ProjectName}}No. of\r\n Resources\r\n {{resourceAllocation.ResourceCount}} Billable\r\n Resource\r\n {{resourceAllocation.BillableCount}}Non Billable Critical\r\n Resources\r\n {{resourceAllocation.NonBillableCriticalCount}}\r\n Non Billable Non Critical\r\n Resources\r\n {{resourceAllocation.NonBillableNonCriticalCount}}\r\n
No data
\r\n
\r\n
0)\">\r\n

Billable Resource Allocation List

\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 \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
Associate\r\n Code\r\n \r\n {{billableResourceAllocation.AssociateCode}}\r\n Associate\r\n Name\r\n \r\n {{billableResourceAllocation.AssociateName}}\r\n Allocation %\r\n \r\n {{billableResourceAllocation.AllocationPercentage}}\r\n Client\r\n Billing Role\r\n \r\n {{billableResourceAllocation.ClientBillingRoleName}}\r\n Primary\r\n {{billableResourceAllocation.IsPrimaryProject}}\r\n Critical\r\n {{billableResourceAllocation.IsCriticalResource}}\r\n Allocation Date\r\n {{billableResourceAllocation.EffectiveDate}}\r\n
No data
\r\n
\r\n \r\n
\r\n
\r\n
0)\">\r\n

Non Billable Resource Allocation List

\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 \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
Associate\r\n Code\r\n \r\n {{nonBillableResourceAllocation.AssociateCode}}\r\n Associate\r\n Name\r\n \r\n {{nonBillableResourceAllocation.AssociateName}}\r\n Allocation %\r\n \r\n {{nonBillableResourceAllocation.AllocationPercentage}}\r\n Client\r\n Billing Role\r\n \r\n {{nonBillableResourceAllocation.ClientBillingRoleName}}\r\n Primary\r\n {{nonBillableResourceAllocation.IsPrimaryProject}}\r\n Critical\r\n {{nonBillableResourceAllocation.IsCriticalResource}}\r\n Allocation Date\r\n {{nonBillableResourceAllocation.EffectiveDate}}\r\n
No data
\r\n
\r\n \r\n
\r\n
\r\n
0)\">\r\n

Non Billable Non Critical Resource Allocation List

\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 \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
Associate\r\n Code\r\n \r\n {{nonBillableNonCriticalResourceAllocation.AssociateCode}}\r\n Associate\r\n Name\r\n \r\n {{nonBillableNonCriticalResourceAllocation.AssociateName}}\r\n Allocation %\r\n \r\n {{nonBillableNonCriticalResourceAllocation.AllocationPercentage}}\r\n Client\r\n Billing Role\r\n \r\n {{nonBillableNonCriticalResourceAllocation.ClientBillingRoleName}}\r\n Primary\r\n {{nonBillableNonCriticalResourceAllocation.IsPrimaryProject}}\r\n Critical\r\n {{nonBillableNonCriticalResourceAllocation.IsCriticalResource}}\r\n Allocation Date\r\n {{nonBillableNonCriticalResourceAllocation.EffectiveDate}}\r\n
No data
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n

Loading ...

\r\n
","import { Component, OnInit, QueryList, ViewChild, ViewChildren } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, FormGroupDirective, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { Observable, ReplaySubject, Subject } from 'rxjs';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { MasterDataService } from '../../../../core/services/masterdata.service';\r\nimport { DropDownType, GenericType, GenericModel } from '../../../master-layout/models/dropdowntype.model';\r\nimport { ReportsData } from '../../models/reportsdata.model';\r\nimport { ReportsFilterData, UtilizationReportFilterData } from '../../models/reportsfilter.model';\r\nimport { ProjectDetails } from '../../models/resourcereportbyproject.model';\r\nimport { startWith, map, takeUntil } from 'rxjs/operators';\r\nimport * as moment from \"moment\";\r\nimport { ResourceReportService } from '../../services/resource-report.service';\r\nimport { MatTable, MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { NavService } from '../../../master-layout/services/nav.service';\r\nimport { MatTableExporterModule } from 'mat-table-exporter';\r\nimport { MatOption } from '@angular/material/core';\r\nimport { FileExporterService } from 'src/app/core/services/file-exporter.service'\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\n\r\ninterface SelectItem {\r\n value: number;\r\n label: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-resource-report',\r\n templateUrl: './resource-report.component.html',\r\n styleUrls: ['./resource-report.component.scss']\r\n})\r\n\r\nexport class ResourceReportComponent implements OnInit {\r\n\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n\r\n filteredBanksMulti: ReplaySubject = new ReplaySubject(1);\r\n filteredcols: any[];\r\n displaycolsfields: any[];\r\n displaycols = [];\r\n private _onDestroy = new Subject();\r\n filteredAssociates: Observable;\r\n filteredTechnology: Observable;\r\n filteredProject: Observable;\r\n filteredProgramManager: Observable;\r\n filteredClient: Observable;\r\n filteredExperience: Observable;\r\n filteredGrade: Observable;\r\n filteredDesignation: Observable;\r\n expandFilter: boolean = true;\r\n\r\n step = 0;\r\n afterSearchFilter: boolean = false;\r\n cols: any[] = [];\r\n columnOptions: any[] = [];\r\n PageSize: number = 5;\r\n PageDropDown: number[] = [];\r\n // private resources = servicePath.API.PagingConfigValue;\r\n associateUtilizationReportList: ReportsData[] = [];\r\n private associateUtilizationReportExcel: ReportsData[] = [];\r\n reportsFilterData: ReportsFilterData;\r\n private resourceFilter: UtilizationReportFilterData;\r\n componentName: string;\r\n filterDisplay: boolean = false;\r\n technologyList: SelectItem[] = [];\r\n associatesList: SelectItem[] = [];\r\n projectsList: SelectItem[] = [];\r\n gradesList: SelectItem[] = [];\r\n experienceList: SelectItem[] = [];\r\n clinentsList: SelectItem[] = [];\r\n programManagersList: SelectItem[] = [];\r\n BillableList: SelectItem[] = [];\r\n CriticalList: SelectItem[] = [];\r\n designationsList: SelectItem[] = [];\r\n percentageList: SelectItem[] = [];\r\n expList: GenericType[] = [];\r\n totalRecordsCount: number = 0;\r\n allBillable: number = -1;\r\n allCritical: number = -1;\r\n utilizationPercentage: number = 0;\r\n utilizationPercentageFromUI: number = 0;\r\n isBillable = new Array();\r\n isCritical = new Array();\r\n private userRole: any;\r\n private employeeId: any;\r\n selectedColumns: any[];\r\n resourceReportForm: FormGroup;\r\n\r\n selectedEmployeeId: any;\r\n selectedPracticeAreaId: any;\r\n selectedProjectId: any;\r\n selectedProgramManagerId: any;\r\n selectedClientId: any;\r\n selectedExperienceId: any;\r\n selectedGradeId: any;\r\n selectedDesignationId: any;\r\n\r\n dataSource: MatTableDataSource;\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild('table') table: MatTable;\r\n\r\n @ViewChild('allSelected') private allSelected: MatOption;\r\n\r\n constructor(private _masterDataService: MasterDataService, private _snackBar: MatSnackBar,\r\n private _resourceReportService: ResourceReportService, public navService: NavService, private fileExporterService:FileExporterService, private spinner: NgxSpinnerService) {\r\n this.reportsFilterData = new ReportsFilterData();\r\n this.reportsFilterData.utilizationReportFilterData = new UtilizationReportFilterData();\r\n this.reportsFilterData.utilizationReportFilterData.IsBillable = -1;\r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n this.applyFilter(responseData);\r\n })\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n this.userRole = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).roleName;\r\n this.employeeId = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).employeeId;\r\n this.resetFilter();\r\n\r\n this.cols = [\r\n\r\n { field: 'EmployeeCode', header: 'ID' },\r\n { field: 'EmployeeName', header: 'Name' },\r\n { field: 'DesignationName', header: 'Designation' },\r\n { field: 'GradeName', header: 'Grade' },\r\n { field: 'ExperienceExcludingCareerBreak', header: 'Experience' },\r\n { field: 'Technology', header: 'Technology' },\r\n { field: 'JoinDate', header: ' SG Joined Date' },\r\n { field: 'ProjectName', header: 'Project' },\r\n { field: 'ClientName', header: 'Client' },\r\n { field: 'IsBillableForExcel', header: 'Billable' }, //, type: this.yesNoPipe\r\n { field: 'IsCriticalForExcel', header: 'Critical' },\r\n { field: 'Allocationpercentage', header: '(%) Utilization' },\r\n { field: 'LeadName', header: 'Lead' },\r\n { field: 'ReportingManagerName', header: 'Reporting Manager' },\r\n { field: 'SkillCode', header: 'Skill' },\r\n { field: 'ProgramManagerName', header: 'Program Manager' },\r\n { field: 'IsResignedForExcel', header: 'Resigned' },\r\n { field: 'ResignationDate', header: 'Resignation Date' },\r\n { field: 'LastWorkingDate', header: 'Last Working Date' },\r\n { field: 'IsLongLeaveForExcel', header: 'Long Leave' },\r\n { field: 'LongLeaveStartDate', header: 'Long Leave Start Date' },\r\n { field: 'TentativeJoinDate', header: 'Long Leave Tentative Join Date' },\r\n { field: 'FutureProjectName', header: 'Future Project'},\r\n { field: 'FutureProjectTentativeDate', header: 'Future Project Tentative Start Date'}\r\n\r\n ];\r\n\r\n this.columnOptions = [];\r\n for (let i = 0; i < this.cols.length; i++) {\r\n this.columnOptions.push({ label: this.cols[i].header, value: this.cols[i] });\r\n }\r\n\r\n this.defaultSelectedCols();\r\n\r\n this.filteredcols = this.cols;\r\n this.displaycols = this.selectedColumns.map(col => col.header);\r\n this.displaycolsfields = this.selectedColumns.map(col => col.field);\r\n this.createForm();\r\n this.resourceReportForm.controls.columnselect.setValue(this.selectedColumns);\r\n // this.maxDateValue = new Date();\r\n this.filteredBanksMulti.next(this.cols.slice());\r\n this.resourceReportForm.controls.columnfilter.valueChanges\r\n .pipe(takeUntil(this._onDestroy))\r\n .subscribe(() => {\r\n this.filterBanksMulti();\r\n });\r\n\r\n this.isBillable.push({ label: 'All', value: -1 });\r\n this.isBillable.push({ label: 'Yes', value: 1 });\r\n this.isBillable.push({ label: 'No', value: 0 });\r\n\r\n this.isCritical.push({ label: 'All', value: -1 });\r\n this.isCritical.push({ label: 'Yes', value: 1 });\r\n this.isCritical.push({ label: 'No', value: 0 });\r\n\r\n\r\n if (!this.afterSearchFilter) {\r\n\r\n if (this.reportsFilterData.utilizationReportFilterData.IsBillable == -1) this.reportsFilterData.utilizationReportFilterData.IsBillable = 0;\r\n if (this.reportsFilterData.utilizationReportFilterData.IsCritical == -1) this.reportsFilterData.utilizationReportFilterData.IsCritical = 0\r\n this.associatesList = [];\r\n this.associatesList.splice(0, 0, { label: '', value: 0 });\r\n this.projectsList = [];\r\n this.projectsList.splice(0, 0, { label: '', value: 0 });\r\n this.gradesList = [];\r\n this.gradesList.splice(0, 0, { label: '', value: 0 });\r\n this.experienceList = [];\r\n this.experienceList.splice(0, 0, { label: '', value: 0 });\r\n this.clinentsList = [];\r\n this.clinentsList.splice(0, 0, { label: '', value: 0 });\r\n this.programManagersList = [];\r\n this.programManagersList.splice(0, 0, { label: '', value: 0 });\r\n this.BillableList = [];\r\n this.BillableList.splice(0, 0, { label: '', value: 0 });\r\n this.CriticalList = [];\r\n this.CriticalList.splice(0, 0, { label: '', value: 0 });\r\n this.designationsList = [];\r\n this.designationsList.splice(0, 0, { label: '', value: 0 });\r\n this.percentageList = [];\r\n this.percentageList.splice(0, 0, { label: '', value: 0 });\r\n this.technologyList = [];\r\n this.technologyList.splice(0, 0, { label: '', value: 0 });\r\n this.expList = [\r\n { Id: 1, Name: \"0-5\" },\r\n { Id: 2, Name: \"5-10\" },\r\n { Id: 3, Name: \"10-15\" },\r\n { Id: 4, Name: \"15-20\" },\r\n { Id: 5, Name: \"20-25\" },\r\n { Id: 6, Name: \"25-30\" },\r\n { Id: 7, Name: \"30-35\" },\r\n { Id: 8, Name: \"35-40\" }];\r\n this.getAssociateList();\r\n this.getExperienceList();\r\n this.getProjectList();\r\n this.getGradeList();\r\n this.getClientList();\r\n this.getProgramManagerList();\r\n this.getDesignationsList();\r\n this.getPercentageList();\r\n this.getTechnologyList();\r\n\r\n this.resourceReportForm.controls[\"IsBillable\"].setValue(-1);\r\n this.resourceReportForm.controls[\"IsCritical\"].setValue(-1);\r\n\r\n this.reportsFilterData.utilizationReportFilterData.IsBillable = -1;\r\n this.reportsFilterData.utilizationReportFilterData.IsCritical = -1;\r\n\r\n //this.resetFilter();\r\n }\r\n this.filterDisplay = true;\r\n }\r\n\r\n ngAfterViewInit() { this.dataSource.sort = this.sort; }\r\n ngOnDestroy() {\r\n this._onDestroy.next();\r\n this._onDestroy.complete();\r\n }\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n if (filterValue) {\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n console.log(filterValue,this.dataSource.filter)\r\n }\r\n else {\r\n this.dataSource = new MatTableDataSource(this.associateUtilizationReportList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.associateUtilizationReportList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n }\r\n\r\n private filterBanksMulti() {\r\n if (!this.cols) {\r\n return;\r\n }\r\n // get the search keyword\r\n let search = this.resourceReportForm.controls.columnfilter.value;\r\n if (!search) {\r\n this.filteredBanksMulti.next(this.cols.slice());\r\n return;\r\n } else {\r\n search = search.toLowerCase();\r\n }\r\n // filter the banks\r\n this.filteredBanksMulti.next(\r\n this.cols.filter(ele => ele.header.toLowerCase().indexOf(search) > -1)\r\n );\r\n }\r\n filter(event: any) {\r\n\r\n let filterValue = this.resourceReportForm.controls.columnfilter.value;\r\n if (filterValue) {\r\n return this.filteredcols = this.cols.filter(option => option.header.toLowerCase().includes(filterValue));\r\n }\r\n else {\r\n return this.cols;\r\n }\r\n }\r\n alterTable(event: any) {\r\n if (!this.allSelected.selected) {\r\n this.selectedColumns = event.value;\r\n this.resourceReportForm.controls.columnselect.setValue(this.selectedColumns);\r\n this.displaycols = this.selectedColumns.map(col => col.header);\r\n this.table.renderRows();\r\n }\r\n }\r\n\r\n tosslePerOne(all) {\r\n if (this.allSelected.selected) {\r\n this.allSelected.deselect();\r\n return false;\r\n }\r\n if (\r\n this.selectedColumns.length ==\r\n this.cols.length\r\n )\r\n this.allSelected.select();\r\n }\r\n\r\n toggleAllSelection() {\r\n if (this.allSelected.selected) {\r\n this.selectedColumns = [...this.cols.map(item => item), 0];\r\n this.resourceReportForm.controls.columnselect\r\n .patchValue(this.selectedColumns);\r\n this.displaycols = this.cols.map(col => col.header);\r\n this.table.renderRows();\r\n } else {\r\n this.resourceReportForm.controls.columnselect.patchValue([]);\r\n this.selectedColumns = [];\r\n this.displaycols = [];\r\n this.table.renderRows();\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n\r\n resetFilter(): void {\r\n\r\n this.allBillable = -1;\r\n this.allCritical = -1;\r\n this.utilizationPercentage = 0;\r\n this.reportsFilterData.utilizationReportFilterData = {\r\n EmployeeId: 0,\r\n ProjectId: 0,\r\n GradeId: 0,\r\n DesignationId: 0,\r\n ClientId: 0,\r\n AllocationPercentageId: 0,\r\n\r\n ProgramManagerId: 0,\r\n ExperienceId: 0,\r\n ExperienceRange: null,\r\n Experience: 0,\r\n IsBillable: -1,\r\n IsCritical: -1,\r\n\r\n isExportToExcel: false,\r\n PracticeAreaId: 0,\r\n RowsPerPage: 20,\r\n PageNumber: 1,\r\n };\r\n }\r\n\r\n reset() {\r\n this.reportsFilterData.utilizationReportFilterData = {\r\n EmployeeId: 0,\r\n ProjectId: 0,\r\n GradeId: 0,\r\n DesignationId: 0,\r\n ClientId: 0,\r\n AllocationPercentageId: 0,\r\n\r\n ProgramManagerId: 0,\r\n ExperienceId: 0,\r\n ExperienceRange: null,\r\n Experience: 0,\r\n IsBillable: -1,\r\n IsCritical: -1,\r\n\r\n isExportToExcel: false,\r\n PracticeAreaId: 0,\r\n RowsPerPage: 20,\r\n PageNumber: 1,\r\n };\r\n }\r\n\r\n defaultSelectedCols() {\r\n this.selectedColumns = [\r\n\r\n this.cols[0],\r\n this.cols[1],\r\n this.cols[2],\r\n this.cols[3],\r\n this.cols[4],\r\n this.cols[5],\r\n this.cols[6],\r\n this.cols[7],\r\n this.cols[8],\r\n this.cols[9],\r\n this.cols[10],\r\n this.cols[11],\r\n this.cols[12],\r\n this.cols[13],\r\n this.cols[15],\r\n this.cols[16],\r\n this.cols[19]\r\n\r\n ];\r\n }\r\n\r\n\r\n createForm() {\r\n\r\n this.resourceReportForm = new FormGroup({\r\n EmployeeId: new FormControl(null),\r\n PracticeAreaId: new FormControl(null),\r\n ProjectId: new FormControl(null),\r\n ProgramManagerId: new FormControl(null),\r\n ClientId: new FormControl(null),\r\n ExperienceId: new FormControl(null),\r\n GradeId: new FormControl(null),\r\n DesignationId: new FormControl(null),\r\n UtilizationPercentage: new FormControl(null),\r\n IsBillable: new FormControl(null),\r\n IsCritical: new FormControl(null),\r\n columnselect: new FormControl(),\r\n columnfilter: new FormControl(''),\r\n });\r\n }\r\n\r\n clearField(fieldName) {\r\n\r\n if (fieldName == 'EmployeeId') {\r\n this.resourceReportForm.controls.EmployeeId.setValue(null);\r\n }\r\n if (fieldName == 'PracticeAreaId') {\r\n this.resourceReportForm.controls.PracticeAreaId.setValue(null);\r\n }\r\n if (fieldName == 'ProjectId') {\r\n this.resourceReportForm.controls.ProjectId.setValue(null);\r\n }\r\n if (fieldName == 'ProgramManagerId') {\r\n this.resourceReportForm.controls.ProgramManagerId.setValue(null);\r\n }\r\n if (fieldName == 'ClientId') {\r\n this.resourceReportForm.controls.ClientId.setValue(null);\r\n }\r\n if (fieldName == 'ExperienceId') {\r\n this.resourceReportForm.controls.ExperienceId.setValue(null);\r\n }\r\n if (fieldName == 'GradeId') {\r\n this.resourceReportForm.controls.GradeId.setValue(null);\r\n }\r\n if (fieldName == 'DesignationId') {\r\n this.resourceReportForm.controls.DesignationId.setValue(null);\r\n }\r\n }\r\n\r\n getAssociateList(): void {\r\n this._masterDataService.GetAllAssociateList().subscribe((associateResponse: GenericModel[]) => {\r\n associateResponse.forEach((associateResponse: GenericModel) => {\r\n if(associateResponse.DepartmentId != null && associateResponse.DepartmentId == 1) {\r\n this.associatesList.push({ label: associateResponse.Name, value: associateResponse.Id });\r\n } \r\n });\r\n\r\n this.filteredAssociates = this.resourceReportForm.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterAssociates(value))\r\n );\r\n }),\r\n (error: any) => {\r\n if (error._body != undefined && error._body != \"\")\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 1000, panelClass: ['Failed to get Associate List'], horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n };\r\n\r\n }\r\n\r\n private _filterAssociates(value) {\r\n let filterValue;\r\n if (value && value.EmployeeId) {\r\n filterValue = value.EmployeeId.toLowerCase();\r\n return this.associatesList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.associatesList;\r\n }\r\n }\r\n\r\n getProjectList(): void {\r\n this._masterDataService.GetProjectsList().subscribe((projectResponse: GenericType[]) => {\r\n let projList: any[] = [];\r\n this.projectsList = [];\r\n projList.push({ label: '', value: null });\r\n projectResponse.forEach((projectResponse: GenericType) => {\r\n projList.push({ label: projectResponse.Name, value: projectResponse.Id });\r\n });\r\n this.projectsList = projList.filter(\r\n (project, index, arr) => arr.findIndex(t => t.value === project.value) === index);\r\n\r\n this.filteredProject = this.resourceReportForm.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterProject(value))\r\n );\r\n },\r\n (error: any) => {\r\n if (error._body != undefined && error._body != \"\")\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 1000, panelClass: ['Failed to get Project List'], horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n\r\n }\r\n );\r\n }\r\n\r\n private _filterProject(value) {\r\n\r\n let filterValue;\r\n if (value && value.ProjectId) {\r\n filterValue = value.ProjectId.toLowerCase();\r\n return this.projectsList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.projectsList;\r\n }\r\n }\r\n\r\n\r\n\r\n getGradeList(): void {\r\n this._masterDataService.GetGradesDetails().subscribe((gradeResponse: GenericType[]) => {\r\n gradeResponse.forEach((gradeResponse: GenericType) => {\r\n this.gradesList.push({ label: gradeResponse.Name, value: gradeResponse.Id })\r\n });\r\n\r\n this.filteredGrade = this.resourceReportForm.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterGrade(value))\r\n );\r\n }),\r\n (error: any) => {\r\n if (error._body != undefined && error._body != \"\")\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 1000, panelClass: ['Failed to get Grade List'], horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n };\r\n }\r\n\r\n private _filterGrade(value) {\r\n\r\n let filterValue;\r\n if (value && value.GradeId) {\r\n filterValue = value.GradeId.toLowerCase();\r\n return this.gradesList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.gradesList;\r\n }\r\n }\r\n\r\n getExperienceList(): void {\r\n this.expList.forEach((experience: GenericType) => {\r\n this.experienceList.push({ label: experience.Name, value: experience.Id });\r\n });\r\n\r\n this.filteredExperience = this.resourceReportForm.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterExperience(value))\r\n );\r\n }\r\n\r\n private _filterExperience(value) {\r\n\r\n let filterValue;\r\n if (value && value.ExperienceId) {\r\n filterValue = value.ExperienceId.toLowerCase();\r\n return this.experienceList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.experienceList;\r\n }\r\n }\r\n\r\n getClientList(): void {\r\n this._masterDataService.GetClientList().subscribe((clientResponse: GenericType[]) => {\r\n clientResponse.forEach((clientResponse: GenericType) => {\r\n this.clinentsList.push({ label: clientResponse.Name, value: clientResponse.Id })\r\n });\r\n\r\n this.filteredClient = this.resourceReportForm.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterClient(value))\r\n );\r\n }),\r\n (error: any) => {\r\n if (error._body != undefined && error._body != \"\")\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 1000, panelClass: ['Failed to get Client List'], horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n };\r\n }\r\n\r\n private _filterClient(value) {\r\n\r\n let filterValue;\r\n if (value && value.ClientId) {\r\n filterValue = value.ClientId.toLowerCase();\r\n return this.clinentsList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.clinentsList;\r\n }\r\n }\r\n\r\n\r\n getProgramManagerList(): void {\r\n this._masterDataService.GetProgramManagers().subscribe((programManagerResponse: GenericType[]) => {\r\n programManagerResponse.forEach((programManagerResponse: GenericType) => {\r\n this.programManagersList.push({ label: programManagerResponse.Name, value: programManagerResponse.Id })\r\n })\r\n this.filteredProgramManager = this.resourceReportForm.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterProgramManager(value))\r\n );\r\n }),\r\n (error: any) => {\r\n if (error._body != undefined && error._body != \"\")\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 1000, panelClass: ['Failed to get Program Manager List'], horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n };\r\n }\r\n\r\n private _filterProgramManager(value) {\r\n\r\n let filterValue;\r\n if (value && value.ProgramManagerId) {\r\n filterValue = value.ProgramManagerId.toLowerCase();\r\n return this.programManagersList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.programManagersList;\r\n }\r\n }\r\n\r\n getDesignationsList(): void {\r\n this._masterDataService.GetDesignationListForDropDown().subscribe((designationResponse: GenericType[]) => {\r\n designationResponse.forEach((designationResponse: GenericType) => {\r\n this.designationsList.push({ label: designationResponse.Name, value: designationResponse.Id })\r\n });\r\n\r\n this.filteredDesignation = this.resourceReportForm.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterDesignation(value))\r\n );\r\n }),\r\n (error: any) => {\r\n if (error._body != undefined && error._body != \"\")\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 1000, panelClass: ['Failed to get Designation List'], horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n };\r\n }\r\n\r\n private _filterDesignation(value) {\r\n\r\n let filterValue;\r\n if (value && value.DesignationId) {\r\n filterValue = value.DesignationId.toLowerCase();\r\n return this.designationsList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.designationsList;\r\n }\r\n }\r\n\r\n getPercentageList(): void {\r\n this._masterDataService.GetAllocationPercentages().subscribe((percentageResponse: GenericType[]) => {\r\n percentageResponse.forEach((percentageResponse: GenericType) => {\r\n if (percentageResponse.Name != \"0\")\r\n this.percentageList.push({ label: percentageResponse.Name, value: percentageResponse.Id });\r\n });\r\n }),\r\n (error: any) => {\r\n if (error._body != undefined && error._body != \"\")\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 1000, panelClass: ['Failed to get Percentage List'], horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n };\r\n }\r\n getTechnologyList(): void {\r\n\r\n this._masterDataService.GetPractiseAreas().subscribe((clientResponse: GenericType[]) => {\r\n clientResponse.forEach((clientResponse: GenericType) => {\r\n\r\n this.technologyList.push({ label: clientResponse.Name, value: clientResponse.Id })\r\n });\r\n this.filteredTechnology = this.resourceReportForm.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterTechnology(value))\r\n );\r\n }),\r\n (error: any) => {\r\n if (error._body != undefined && error._body != \"\")\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 1000, panelClass: ['Failed to get Technology List'], horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n };\r\n }\r\n\r\n private _filterTechnology(value) {\r\n\r\n let filterValue;\r\n if (value && value.PracticeAreaId) {\r\n filterValue = value.PracticeAreaId.toLowerCase();\r\n return this.technologyList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.technologyList;\r\n }\r\n }\r\n\r\n checkBillable(event) {\r\n\r\n if (event.value == -1) {\r\n this.onAllBillableChange(event);\r\n }\r\n else\r\n this.onBillableChange(event);\r\n }\r\n\r\n\r\n onBillableChange(event: any) {\r\n let billable = event.value;\r\n this.allBillable = 0;\r\n this.reportsFilterData.utilizationReportFilterData.IsBillable = billable;\r\n }\r\n onAllBillableChange(event: any) {\r\n this.reportsFilterData.utilizationReportFilterData.IsBillable = -1;\r\n this.allBillable = -1;\r\n }\r\n\r\n\r\n checkCritical(event) {\r\n if (event.value == -1) {\r\n this.onAllCriticalChange(event);\r\n }\r\n else\r\n this.onCriticalChange(event);\r\n }\r\n\r\n onCriticalChange(event: any) {\r\n let critical = event.value;\r\n this.allCritical = 0;\r\n this.reportsFilterData.utilizationReportFilterData.IsCritical = critical;\r\n }\r\n\r\n onAllCriticalChange(event: any) {\r\n this.reportsFilterData.utilizationReportFilterData.IsCritical = -1;\r\n this.allCritical = -1;\r\n }\r\n\r\n onsearchByFilter(): void {\r\n this.step = 1;\r\n this.afterSearchFilter = true;\r\n this.filterDisplay = false;\r\n this.searchByFilter(false);\r\n }\r\n\r\n expandCollapsFilter() {\r\n this.expandFilter = this.expandFilter;\r\n }\r\n\r\n selectedChangeIds(frmCntrl, item) {\r\n if (frmCntrl == 'EmployeeId') {\r\n this.selectedEmployeeId = item.value;\r\n }\r\n else if (frmCntrl == 'PracticeAreaId') {\r\n this.selectedPracticeAreaId = item.value;\r\n }\r\n else if (frmCntrl == 'ProjectId') {\r\n this.selectedProjectId = item.value;\r\n }\r\n else if (frmCntrl == 'ProgramManagerId') {\r\n this.selectedProgramManagerId = item.value;\r\n }\r\n else if (frmCntrl == 'ClientId') {\r\n this.selectedClientId = item.value;\r\n }\r\n else if (frmCntrl == 'ExperienceId') {\r\n this.selectedExperienceId = item.value;\r\n }\r\n else if (frmCntrl == 'GradeId') {\r\n this.selectedGradeId = item.value;\r\n }\r\n else if (frmCntrl == 'DesignationId') {\r\n this.selectedDesignationId = item.value;\r\n }\r\n\r\n\r\n }\r\n\r\n searchByFilter(isExportRequiered: boolean): void {\r\n\r\n this.spinner.show();\r\n if (!(this.resourceReportForm.value.EmployeeId == null))\r\n this.reportsFilterData.utilizationReportFilterData.EmployeeId = this.selectedEmployeeId;\r\n if (!(this.resourceReportForm.value.PracticeAreaId == null))\r\n this.reportsFilterData.utilizationReportFilterData.PracticeAreaId = this.selectedPracticeAreaId;\r\n if (!(this.resourceReportForm.value.ProjectId == null))\r\n this.reportsFilterData.utilizationReportFilterData.ProjectId = this.selectedProjectId;\r\n if (!(this.resourceReportForm.value.ProgramManagerId == null))\r\n this.reportsFilterData.utilizationReportFilterData.ProgramManagerId = this.selectedProgramManagerId;\r\n if (!(this.resourceReportForm.value.ClientId == null))\r\n this.reportsFilterData.utilizationReportFilterData.ClientId = this.selectedClientId;\r\n if (!(this.resourceReportForm.value.ExperienceId == null))\r\n this.reportsFilterData.utilizationReportFilterData.ExperienceId = this.selectedExperienceId;\r\n if (!(this.resourceReportForm.value.GradeId == null))\r\n this.reportsFilterData.utilizationReportFilterData.GradeId = this.selectedGradeId;\r\n if (!(this.resourceReportForm.value.DesignationId == null))\r\n this.reportsFilterData.utilizationReportFilterData.DesignationId = this.selectedDesignationId;\r\n if (!(this.resourceReportForm.value.IsBillable == null))\r\n this.reportsFilterData.utilizationReportFilterData.IsBillable = this.resourceReportForm.value.IsBillable;\r\n if (!(this.resourceReportForm.value.IsCritical == null))\r\n this.reportsFilterData.utilizationReportFilterData.IsCritical = this.resourceReportForm.value.IsCritical;\r\n this.getsliderValue();\r\n this.reportsFilterData.utilizationReportFilterData.isExportToExcel = isExportRequiered;\r\n\r\n if (this.reportsFilterData.utilizationReportFilterData && this.reportsFilterData.utilizationReportFilterData.IsBillable == 0 && this.allBillable == -1)\r\n this.reportsFilterData.utilizationReportFilterData.IsBillable = this.allBillable;\r\n if (this.reportsFilterData.utilizationReportFilterData && this.reportsFilterData.utilizationReportFilterData.IsCritical == 0 && this.allCritical == -1)\r\n this.reportsFilterData.utilizationReportFilterData.IsCritical = this.allCritical;\r\n if (this.reportsFilterData.utilizationReportFilterData && this.reportsFilterData.utilizationReportFilterData.ExperienceId && this.reportsFilterData.utilizationReportFilterData.ExperienceId != 0)\r\n this.reportsFilterData.utilizationReportFilterData.ExperienceRange = this.filterExperience(this.reportsFilterData.utilizationReportFilterData.ExperienceId);\r\n this._resourceReportService.ResourceReportByFilters(this.reportsFilterData.utilizationReportFilterData).subscribe((resourceReportResponse: ReportsData[]) => {\r\n this.spinner.hide();\r\n this.associateUtilizationReportList = resourceReportResponse;\r\n console.log(this.associateUtilizationReportList)\r\n this.associateUtilizationReportList.forEach((ele: ReportsData) => {\r\n ele.Experience = Number(ele.Experience).toFixed(2);\r\n ele.JoinDate = moment(ele.JoinDate).format(\"YYYY-MM-DD\");\r\n ele.FutureProjectTentativeDate = ele.FutureProjectTentativeDate && moment(ele.FutureProjectTentativeDate).format(\"YYYY-MM-DD\");\r\n ele.ExperienceExcludingCareerBreak = Number(ele.ExperienceExcludingCareerBreak).toFixed(2);\r\n ele.IsBillableForExcel = (ele.IsBillable == true) ? 'Yes' : 'No';\r\n ele.IsCriticalForExcel = (ele.IsCritical == true) ? 'Yes' : 'No';\r\n ele.IsResignedForExcel = (ele.IsResigned == true) ? 'Yes': null;\r\n ele.IsLongLeaveForExcel =(ele.IsLongLeave == true) ? 'Yes': null;\r\n });\r\n\r\n this.dataSource = new MatTableDataSource(this.associateUtilizationReportList);\r\n this.totalRecordsCount = this.associateUtilizationReportList.length;\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n \r\n },\r\n (error: any) => {\r\n this.spinner.hide();\r\n if (error._body != undefined && error._body != \"\")\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 1000, panelClass: ['Failed to get Resource Report List'], horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n });\r\n this.reset();\r\n }\r\n\r\n\r\n getsliderValue() {\r\n\r\n if (this.utilizationPercentageFromUI > 0) {\r\n let res: any = this.percentageList.find(Percentage => Percentage.label == this.utilizationPercentageFromUI.toString());\r\n this.reportsFilterData.utilizationReportFilterData.AllocationPercentageId = res.value;\r\n }\r\n\r\n }\r\n\r\n filterExperience(ExperienceId: number): string {\r\n let experienceRange: string = '';\r\n if (this.expList.length > 0 && ExperienceId) {\r\n experienceRange = this.expList[ExperienceId - 1].Name;\r\n }\r\n return experienceRange;\r\n }\r\n\r\n clear() {\r\n\r\n this.formGroupDirective.resetForm();\r\n this.createForm;\r\n this.resetFilter;\r\n // this.defaultSelectedCols();\r\n\r\n this.resourceReportForm.controls[\"columnselect\"].setValue(this.selectedColumns);\r\n this.resourceReportForm.controls[\"IsBillable\"].setValue(-1);\r\n this.resourceReportForm.controls[\"IsCritical\"].setValue(-1);\r\n\r\n this.associateUtilizationReportList = [];\r\n\r\n this.dataSource = new MatTableDataSource(this.associateUtilizationReportList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.totalRecordsCount = this.associateUtilizationReportList.length;\r\n\r\n this.displaycols = this.selectedColumns.map(col => col.header);\r\n this.displaycolsfields = this.selectedColumns.map(col => col.field);\r\n }\r\n\r\n exportAsXLSX(){\r\n // const columnsForExcel = this.dataSource.data.map(x => ({\r\n // 'ID': x.EmployeeCode,\r\n // 'Name': x.EmployeeName,\r\n // 'Designation': x.DesignationName,\r\n // 'Grade': x.GradeName,\r\n // 'Experience': x.Experience,\r\n // 'Technology': x.Technology,\r\n // 'SG JoinDate': x.JoinDate,\r\n // 'Project': x.ProjectName,\r\n // 'Client': x.ClientName,\r\n // 'Billable': x.IsBillableForExcel,\r\n // 'Critical': x.IsCriticalForExcel,\r\n // '(%) Utilization':x.Allocationpercentage,\r\n // 'Lead': x.LeadName,\r\n // 'Reporting Manager': x.ReportingManagerName,\r\n // 'Skill': x.SkillCode,\r\n // 'Program Manager': x.ProgramManagerName,\r\n // 'Resigned': x.IsResignedForExcel,\r\n // 'Resigned Date': x.ResignationDate,\r\n // 'Last Working Date': x.LastWorkingDate,\r\n // 'Long Leave': x.IsLongLeaveForExcel,\r\n // 'Start Date': x.LongLeaveStartDate,\r\n // 'Tentative Join Date': x.TentativeJoinDate\r\n // }));\r\n let columnsForExcel=[]\r\n let columnsForEachRow={}\r\n for(let i=0;i\r\n \r\n \r\n \r\n filter_list Filter Resource Report Data\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n Associate Name\r\n \r\n \r\n \r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Technology\r\n \r\n \r\n \r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Project\r\n \r\n \r\n \r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Program Manager\r\n \r\n \r\n \r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Client\r\n \r\n \r\n \r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Experience\r\n \r\n \r\n \r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Grade\r\n \r\n \r\n \r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Designation\r\n \r\n \r\n \r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Utilization Percentage\r\n {{utilizationPercentageFromUI}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Billable\r\n \r\n \r\n {{item.label}}\r\n \r\n \r\n
\r\n
\r\n \r\n Critical\r\n \r\n \r\n {{item.label}}\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
\r\n
\r\n
\r\n \r\n {{selectedColumns.length}} columns selected\r\n \r\n \r\n \r\n \r\n All\r\n \r\n {{q.header}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n Total Records:\r\n {{totalRecordsCount >0 ? totalRecordsCount: 0}}\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
{{ col.header }}\r\n {{element[col.field]}}
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n

Loading ...

\r\n
","import { filter } from 'rxjs/operators';\r\nimport { ProjectDetails } from './../../models/resourcereportbyproject.model';\r\nimport { ResourceReportByProjectComponent } from './../resource-report-by-project/resource-report-by-project.component';\r\nimport { ProjectResponse } from './../../models/projects-report.model';\r\nimport { ProjectTypeData } from './../../../admin/models/projecttype.model';\r\nimport { ProjectTypeService } from './../../../admin/services/project-type.service';\r\nimport { Component, OnInit, ViewChild, TemplateRef, ViewChildren, QueryList,ChangeDetectorRef, AfterViewInit } from '@angular/core';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport {MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatDialogConfig} from '@angular/material/dialog';\r\nimport { MatOption } from '@angular/material/core';\r\nimport { FormGroup, FormControl, FormBuilder } from '@angular/forms';\r\nimport {ServiceTypeReport, ServiceTypeReportEmp, ServiceTypeDropDown} from '../../models/service-typereport.model';\r\nimport {ServiceTypeReportService} from '../../services/servicetype-report.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { Router } from '@angular/router';\r\nimport { ResourceReportService } from '../../services/resource-report.service';\r\nimport { AllocationDetails } from '../../models/resourcereportbyproject.model';\r\nimport * as moment from 'moment';\r\n\r\n@Component({\r\n selector: 'app-servicetype-report',\r\n templateUrl: './servicetype-report.component.html',\r\n styleUrls: ['./servicetype-report.component.scss']\r\n})\r\nexport class ServicetypeReportComponent implements OnInit, AfterViewInit {\r\n\r\n themeAppearence = themeconfig.formfieldappearances;\r\n @ViewChild('AssociateDialog') associateDialog: TemplateRef;\r\n @ViewChild('counttable', { static: false }) counttablepaginator: MatPaginator;\r\n // @ViewChild('emptable', {static: false})\r\n // set paginator(value: MatPaginator) {\r\n // if (this.selectedEmpColumns){\r\n // this.selectedEmpColumns.paginator = value;\r\n // }\r\n // }\r\n //@ViewChild('counttable', { static: false }) counttablesort: MatSort;\r\n @ViewChild('emptable', { static: false }) emptablepaginator: MatPaginator;\r\n @ViewChild('emptable', { static: false }) emptablesort: MatSort;\r\n @ViewChild('prjtable', { static: false }) projtablepaginator: MatPaginator;\r\n @ViewChild('prjtable', { static: false }) projtablesort: MatSort;\r\n @ViewChild(MatSort, { static: false }) sort: MatSort;\r\n projectType: ProjectTypeData[];\r\n projectRes: ProjectResponse[];\r\n serviceType: ServiceTypeDropDown[] ;\r\n count: ServiceTypeReport[];\r\n emp: ServiceTypeReportEmp[];\r\n projectname:string;\r\n displaycols = ['ServiceName', 'ServiceDescription', 'ProjectCount'];\r\n displayEmpcols = ['ProjectCode', 'ProjectName', 'Actual StartDate', 'Status' ]\r\n selectedColumns: MatTableDataSource ; \r\n ProjectId: number;\r\n selectedEmpColumns: MatTableDataSource; \r\n selectedProjColumns: MatTableDataSource;\r\n previous:string;\r\n step=0;\r\n projid:number;\r\n filter = null;\r\n @ViewChild('allSelected') private allSelected: MatOption;\r\n searchUserForm: FormGroup;\r\n \r\n private AssociateDialogRef: MatDialogRef>\r\n constructor(private _resourceReportsService: ResourceReportService,private cdr: ChangeDetectorRef,public dialog: MatDialog, private fb: FormBuilder, private service: ServiceTypeReportService, \r\n private spinner: NgxSpinnerService, private _snackBar: MatSnackBar, private _router: Router) { }\r\n\r\n ngOnInit(): void {\r\n //this.spinner.show();\r\n this.projectname = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).ProjectName\r\n this.previous = this._resourceReportsService.getPreviousUrl();\r\n //this.selectedColumns = new MatTableDataSource([]);\r\n // this.selectedEmpColumns = new MatTableDataSource([]);\r\n this.count = [];\r\n this.emp = [];\r\n // this.selectedColumns.paginator = this.counttablepaginator;\r\n // this.selectedEmpColumns.paginator = this.emptablepaginator;\r\n // this.selectedColumns.sort = this.counttablesort;\r\n // this.selectedEmpColumns.sort = this.emptablesort;\r\n this.searchUserForm = this.fb.group({\r\n ServiceType: new FormControl()\r\n });\r\n this.service.GetProjectTypeDropdown().toPromise().then((res: ProjectTypeData[])=>{\r\n this.projectType = res;\r\n this.spinner.hide();\r\n }).catch(error=>{\r\n this.spinner.hide();\r\n this._snackBar.open('Error Occured While Fetching ServiceTypes', 'x', {\r\n duration: 2000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });;\r\n }\r\n EmployeePop(serviceType: ServiceTypeReport)\r\n {\r\n \r\n if(serviceType.ResourceCount != 0)\r\n {\r\n\r\n this.spinner.show();\r\n \r\n this.GetServiceTypeProj(serviceType.ServiceTypeId);\r\n console.log(this.previous);\r\n }\r\n else{\r\n this._snackBar.open('There are No Projects To display', 'x', {\r\n duration: 2000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n } \r\n }\r\n ResourceReportByProject(projectid: ProjectResponse){\r\n this._resourceReportsService.GetResourceReportByProjectId(projectid.ProjectId);\r\n setTimeout(() => {\r\n this.closeDialog();\r\n this._router.navigate(['/reports/resourcereportsbyproject'+ '/' + projectid.ProjectId]);\r\n }, 500);\r\n }\r\n GetServiceTypeCount(filter: string)\r\n {\r\n this.service.GetServiceTypeReportCount(filter).toPromise().then((res: ServiceTypeReport[])=>{\r\n \r\n this.selectedColumns = new MatTableDataSource(res);\r\n \r\n \r\n this.selectedColumns.paginator = this.counttablepaginator;\r\n this.selectedColumns.sort = this.sort;\r\n this.count = res;\r\n this.spinner.hide();\r\n console.log(filter);\r\n \r\n}).catch(error=>{\r\n this.spinner.hide();\r\n this._snackBar.open('Error Occured While Fetching ServiceType Count', 'x', {\r\n duration: 2000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n});;\r\n }\r\n ngAfterViewInit ()\r\n {\r\n// this.selectedColumns.paginator = this.counttablepaginator;\r\n// this.selectedEmpColumns.paginator = this.emptablepaginator;\r\n// this.selectedColumns.sort = this.sort;\r\n// this.selectedEmpColumns.sort = this.sort;\r\n }\r\n GetServiceTypeProj(serviceTypeId: number)\r\n {\r\n this.service.GetServiceTypeReportProject(serviceTypeId).toPromise().then((res: ProjectResponse[]) => {\r\n res.forEach(e => { if (e.ActualStartDate!=null) {e.ActualStartDate= moment(e.ActualStartDate).format(\"MM/DD/YYYY\");}})\r\n this.selectedProjColumns = new MatTableDataSource(res);\r\n // console.log(this.emptablepaginator)\r\n this.cdr.detectChanges();\r\n this.selectedProjColumns.paginator = this.projtablepaginator;\r\n this.selectedProjColumns.sort = this.sort;\r\n this.projectRes = res;\r\n this.spinner.hide();\r\n this.openDialog();\r\n }).catch(error => {\r\n this.spinner.hide();\r\n this._snackBar.open('Error Occured While Fetching ServiceType Employees', 'x', {\r\n duration: 2000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });;\r\n }\r\n Clear()\r\n {\r\n this.searchUserForm.reset();\r\n }\r\n tosslePerOne(all){ \r\n \r\n if (this.allSelected.selected) { \r\n this.allSelected.deselect();\r\n return false;\r\n }\r\n if(this.searchUserForm.controls.ServiceType.value.length==this.projectType.length)\r\n this.allSelected.select();\r\n \r\n }\r\n toggleAllSelection() {\r\n \r\n if (this.allSelected.selected) {\r\n this.searchUserForm.controls.ServiceType\r\n .patchValue([...this.projectType.map(item => item.ProjectTypeId), 0]);\r\n } else {\r\n this.searchUserForm.controls.ServiceType.patchValue([]);\r\n }\r\n }\r\n openDialog(): void {\r\n const dialogConfig = new MatDialogConfig();\r\n this.AssociateDialogRef = this.dialog.open(this.associateDialog);\r\n this.AssociateDialogRef.updateSize('80%', '80%');\r\n this.AssociateDialogRef.afterClosed().subscribe(result => {console.log(`Dialog result: ${result}`);\r\n });\r\n }\r\n closeDialog() {\r\n this.AssociateDialogRef.close();\r\n }\r\n Apply()\r\n {\r\n this.step=1;\r\n \r\n this.spinner.show();\r\n this.filter=null;\r\n var i=1;\r\n if (this.searchUserForm.controls.ServiceType.value) {\r\n\r\n\r\n for (var val of this.searchUserForm.controls.ServiceType.value) {\r\n if (val == 0) {\r\n this.filter = \"-1\";\r\n break;\r\n }\r\n\r\n if (i <= this.searchUserForm.controls.ServiceType.value.length - 1) {\r\n this.filter = this.filter + val + ',';\r\n }\r\n else {\r\n this.filter = this.filter + val;\r\n break;\r\n }\r\n i++;\r\n }\r\n }\r\n if(this.filter == null)\r\n {\r\n this.filter = \"-1\";\r\n }\r\n this.GetServiceTypeCount(this.filter);\r\n \r\n }\r\n \r\n}\r\n","
\r\n \r\n \r\n \r\n \r\n \r\n filter_list Filter Service Type Data\r\n \r\n \r\n
\r\n
\r\n \r\n Service Type\r\n \r\n \r\n \r\n \r\n \r\n All\r\n {{service.ProjectTypeCode}}\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 \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
Service Name\r\n {{element.ServiceTypeCode}}Service Description\r\n {{element.ServiceTypeDescription}}Project Count\r\n {{element.ResourceCount}}
No data
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n

Project Details

\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 \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
Project Code\r\n {{element.ProjectCode}}Project Name\r\n {{element.ProjectName}}Actual StartDate\r\n {{element.ActualStartDate}}Status\r\n {{element.StatusCode}}
No data
\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

Project Details

\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 \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
ProjectCode\r\n {{element.ProjectCode}}ProjectName\r\n {{element.ProjectName}}Actual StartDate\r\n {{element.ActualStartDate}}Status\r\n {{element.StatusCode}}
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-skill-report',\r\n templateUrl: './skill-report.component.html',\r\n styleUrls: ['./skill-report.component.scss']\r\n})\r\nexport class SkillReportComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","

skill-report works!

\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { TalentpoolreportService } from '../../services/talentpoolreport.service';\r\nimport {\r\n TalentpoolDataCount,\r\n TalentPoolReportData,\r\n} from '../../models/talentpool.model';\r\nimport { EmployeeReportData } from '../../models/employee.model';\r\nimport {\r\n HttpClient,\r\n HttpHeaders,\r\n HttpErrorResponse,\r\n} from '@angular/common/http';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { take } from 'rxjs/operators';\r\nimport { AssociateProjectHistoryService } from '../../services/associate-project-history.service';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { Chart } from 'chart.js';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { AllColorCodes } from '../../../../core/color-codes';\r\nimport { NavService } from '../../../master-layout/services/nav.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { FileExporterService } from 'src/app/core/services/file-exporter.service';\r\nimport { ReportsData } from '../../models/reportsdata.model';\r\nimport * as moment from 'moment';\r\n\r\n@Component({\r\n selector: 'app-talentpool',\r\n templateUrl: './talentpool.component.html',\r\n styleUrls: ['./talentpool.component.scss'],\r\n})\r\nexport class TalentpoolComponent implements OnInit {\r\n chartType = 'bar'; // Used to set chart type dynamically.\r\n lstTalentpoolData: TalentpoolDataCount[] = []; // Used to store data return by end point\r\n private lstTalentpoolDataTrim: TalentpoolDataCount[] = []; // used to stored trimmed data\r\n\r\n private talentpoolChartSeriesData: number[] = []; // Used to store series data\r\n private talentpoolChartSeriesName: string[] = []; // used to store series names\r\n\r\n lstEmployees: EmployeeReportData[] = []; // Used to store employee details of a specific pool\r\n\r\n options: any;\r\n // private setupChart: SetupChart;\r\n talentPoolName = '';\r\n public heading: string;\r\n colorCodes = AllColorCodes;\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n showProjectHistory = false;\r\n private resources = servicePath.API.PagingConfigValue;\r\n canvas: any;\r\n dataSource: MatTableDataSource;\r\n talentpoolReportData: ReportsData[];\r\n\r\n displayedColumns: string[] = ['ProjectName', 'ResourceCount'];\r\n displayedColumnss: string[] = [\r\n 'EmployeeCode',\r\n 'EmployeeName',\r\n 'Designation',\r\n 'Grade',\r\n 'Experience',\r\n 'IsResigned',\r\n 'IsLongLeave',\r\n 'DurationInDays',\r\n 'FutureProjectName',\r\n 'FutureProjectTentativeDate'\r\n ];\r\n\r\n employeedataSource: MatTableDataSource;\r\n lstTalentpoolDataSource: MatTableDataSource;\r\n\r\n @ViewChild('resourceReportByProjectChart') resourceReportByProjectChart: any;\r\n @ViewChild('resourceReportByPieProjectChart') resourceReportByPieProjectChart: any;\r\n\r\n @ViewChild('sortTalentpoolData') sortTalentpoolData: MatSort;\r\n @ViewChild('sortEmployeeData') sortEmployeeData: MatSort;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n\r\n ctx(arg0: any): any {\r\n throw new Error('Method not implemented.');\r\n }\r\n\r\n constructor(private _talentpoolReportsService: TalentpoolreportService,\r\n private fileExporterService: FileExporterService,\r\n public navService: NavService,\r\n private spinner: NgxSpinnerService) {\r\n this.PageSize = this.resources.PageSize;\r\n this.PageDropDown = this.resources.PageDropDown;\r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n\r\n getData() {\r\n this.spinner.show();\r\n this._talentpoolReportsService.GetTalentpoolResourceCount().subscribe(\r\n (response: TalentpoolDataCount[]) => {\r\n this.spinner.hide();\r\n this.lstTalentpoolData = response;\r\n\r\n response.forEach((res) => {\r\n this.talentpoolChartSeriesName.push(\r\n res.ProjectName.replace('Talent Pool - ', '')\r\n );\r\n this.talentpoolChartSeriesData.push(res.ResourceCount);\r\n });\r\n\r\n this.lstTalentpoolData.forEach((talenPoolData: TalentpoolDataCount) => {\r\n talenPoolData.ProjectName = talenPoolData.ProjectName.replace(\r\n 'Talent Pool - ',\r\n ''\r\n );\r\n this.lstTalentpoolDataTrim.push(talenPoolData);\r\n });\r\n\r\n if (\r\n this.talentpoolChartSeriesData.length > 0 &&\r\n !this.talentpoolChartSeriesData.includes(0)\r\n ) {\r\n this.talentpoolChartSeriesData.push(0);\r\n }\r\n\r\n // Ascending Order\r\n this.lstTalentpoolData = [];\r\n this.lstTalentpoolData = this.lstTalentpoolDataTrim.sort(\r\n (objLeft, objRight) => objLeft.ResourceCount - objRight.ResourceCount\r\n );\r\n this.lstTalentpoolDataSource = new MatTableDataSource(this.lstTalentpoolData);\r\n // this.lstTalentpoolDataSource.paginator = this.paginator;\r\n this.lstTalentpoolDataSource.sort = this.sortTalentpoolData;\r\n\r\n // Render Chart\r\n this.renderChart(this.chartType);\r\n },\r\n (error: any) => { this.spinner.hide(); }\r\n );\r\n }\r\n ngOnInit() {\r\n this.getData();\r\n this.lstTalentpoolDataSource = new MatTableDataSource(this.lstTalentpoolData);\r\n // this.lstTalentpoolDataSource.paginator = this.paginator;\r\n this.lstTalentpoolDataSource.sort = this.sortTalentpoolData;\r\n }\r\n applyFilter(event: Event) {\r\n debugger;\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n if (filterValue) {\r\n this.employeedataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees);\r\n this.employeedataSource.paginator = this.paginator;\r\n this.employeedataSource.sort = this.sortEmployeeData;\r\n }\r\n } else {\r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees);\r\n this.employeedataSource.paginator = this.paginator;\r\n this.employeedataSource.sort = this.sortEmployeeData;\r\n }\r\n }\r\n renderChart(typeOfChart: string): void {\r\n // Chart Rendering code\r\n if (typeOfChart === 'bar') {\r\n this.getResourceReportBarChart();\r\n }\r\n else {\r\n this.getResourceReportPieChart();\r\n }\r\n }\r\n\r\n selectedbarData(event: any) {\r\n this.spinner.show();\r\n // Get Talent Pool project Id based on pool name.\r\n const data = this.resourceReportByProjectChart.getElementsAtXAxis(event);\r\n if (data.length > 0) {\r\n this.talentPoolName = (data[0]._model.label as string).toUpperCase();\r\n }\r\n const talentpoolproject: TalentpoolDataCount = this.lstTalentpoolData.find(\r\n (talentPoolData) => talentPoolData.ProjectName.toUpperCase() === this.talentPoolName.toUpperCase()\r\n );\r\n this.lstTalentpoolDataSource = new MatTableDataSource(this.lstTalentpoolData);\r\n // this.lstTalentpoolDataSource.paginator = this.paginator;\r\n this.lstTalentpoolDataSource.sort = this.sortTalentpoolData;\r\n\r\n this._talentpoolReportsService\r\n .GetEmployeesByTalentPoolProjectId(talentpoolproject.ProjectID)\r\n .subscribe((response: EmployeeReportData[]) => {\r\n this.spinner.hide();\r\n this.lstEmployees = [];\r\n if (response.length > 0) {\r\n this.lstEmployees = response;\r\n }\r\n this.lstEmployees.forEach((ele: EmployeeReportData) => {\r\n ele.IsResigned = (ele.IsResigned.toString() === 'true') ? 'Yes' : null;\r\n ele.IsLongLeave = (ele.IsLongLeave.toString() === 'true') ? 'Yes' : null;\r\n ele.FutureProjectTentativeDate = ele.FutureProjectTentativeDate && moment(ele.FutureProjectTentativeDate).format('DD-MM-YYYY')\r\n });\r\n console.log(this.lstEmployees)\r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees);\r\n this.employeedataSource.paginator = this.paginator;\r\n this.employeedataSource.sort = this.sortEmployeeData;\r\n }, (error) => { this.spinner.hide(); });\r\n }\r\n\r\n\r\n selectedPieData(event: any) {\r\n // Get Talent Pool project Id based on pool name.\r\n const data = this.resourceReportByPieProjectChart.getElementsAtEvent(event);\r\n this.talentPoolName = (data[0]._model.label as string).toUpperCase();\r\n const talentpoolproject: TalentpoolDataCount = this.lstTalentpoolData.find(\r\n (talentPoolData) => talentPoolData.ProjectName.toUpperCase() === this.talentPoolName.toUpperCase()\r\n );\r\n this.lstTalentpoolDataSource = new MatTableDataSource(\r\n this.lstTalentpoolData\r\n );\r\n // this.lstTalentpoolDataSource.paginator = this.paginator;\r\n this.lstTalentpoolDataSource.sort = this.sortTalentpoolData;\r\n\r\n this._talentpoolReportsService\r\n .GetEmployeesByTalentPoolProjectId(talentpoolproject.ProjectID)\r\n .subscribe((response: EmployeeReportData[]) => {\r\n this.lstEmployees = [];\r\n if (response.length > 0) {\r\n this.lstEmployees = response;\r\n }\r\n this.lstEmployees.forEach((ele: EmployeeReportData) => {\r\n ele.IsResigned = (String(ele.IsResigned).toLowerCase() === 'true') ? 'Yes' : null;\r\n ele.IsLongLeave = (String(ele.IsLongLeave).toLowerCase() === 'true') ? 'Yes' : null;\r\n });\r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees);\r\n this.employeedataSource.paginator = this.paginator;\r\n this.employeedataSource.sort = this.sortEmployeeData;\r\n });\r\n }\r\n\r\n onBarChartClick(): void {\r\n this.chartType = 'bar';\r\n this.renderChart(this.chartType);\r\n }\r\n onPieChartClick(): void {\r\n this.chartType = 'pie';\r\n this.renderChart(this.chartType);\r\n }\r\n getResourceReportBarChart(): void {\r\n const canvas = document.getElementById('resourceReportByProjectChart');\r\n const ctx = canvas;\r\n this.resourceReportByProjectChart = new Chart(ctx, {\r\n type: 'bar',\r\n data: {\r\n labels: this.talentpoolChartSeriesName,\r\n datasets: [\r\n {\r\n label: 'Talent Pool',\r\n backgroundColor: this.colorCodes,\r\n data: this.talentpoolChartSeriesData,\r\n },\r\n ],\r\n },\r\n options: {\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n barWidth: 1,\r\n scales: {\r\n yAxes: [\r\n {\r\n ticks: {\r\n stepSize: 5,\r\n beginAtZero: true,\r\n },\r\n },\r\n ],\r\n },\r\n legend: {\r\n position: 'bottom',\r\n },\r\n },\r\n });\r\n }\r\n\r\n getResourceReportPieChart(): void {\r\n const canvas = document.getElementById('resourceReportByPieProjectChart');\r\n const ctx = canvas;\r\n this.resourceReportByPieProjectChart = new Chart(ctx, {\r\n type: 'pie',\r\n data: {\r\n labels: this.talentpoolChartSeriesName,\r\n datasets: [\r\n {\r\n backgroundColor: this.colorCodes,\r\n data: this.talentpoolChartSeriesData,\r\n },\r\n ],\r\n },\r\n options: {\r\n legend: {\r\n position: 'bottom',\r\n },\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n },\r\n });\r\n }\r\n\r\n changeChart(e) {\r\n if (e.index === 0) {\r\n this.getResourceReportBarChart();\r\n }\r\n else if (e.index === 1) {\r\n this.getResourceReportPieChart();\r\n }\r\n\r\n }\r\n\r\n async getExportData() {\r\n const response = await this._talentpoolReportsService.GetTalentPoolResourceReport().toPromise();\r\n return response;\r\n }\r\n\r\n async exportAsXLSX() {\r\n this.talentpoolReportData = await this.getExportData();\r\n this.talentpoolReportData.forEach((ele: ReportsData) => {\r\n ele.Experience = Number(ele.Experience).toFixed(2);\r\n ele.JoinDate = moment(ele.JoinDate).format('YYYY-MM-DD');\r\n ele.FutureProjectTentativeDate = ele.FutureProjectTentativeDate && moment(ele.FutureProjectTentativeDate).format('YYYY-MM-DD');\r\n ele.ExperienceExcludingCareerBreak = Number(ele.ExperienceExcludingCareerBreak).toFixed(2);\r\n ele.IsBillableForExcel = (ele.IsBillable === true) ? 'Yes' : 'No';\r\n ele.IsCriticalForExcel = (ele.IsCritical === true) ? 'Yes' : 'No';\r\n ele.IsResignedForExcel = (ele.IsResigned === true) ? 'Yes' : null;\r\n ele.IsLongLeaveForExcel = (ele.IsLongLeave === true) ? 'Yes' : null;\r\n });\r\n this.dataSource = new MatTableDataSource(this.talentpoolReportData);\r\n const columnsForExcel = this.dataSource.data.map(x => ({\r\n ID: x.EmployeeCode,\r\n Name: x.EmployeeName,\r\n Designation: x.DesignationName,\r\n Grade: x.GradeName,\r\n Experience: x.Experience,\r\n Technology: x.Technology,\r\n 'SG Joined Date': x.JoinDate,\r\n Project: x.ProjectName,\r\n Client: x.ClientName,\r\n Billable: x.IsBillableForExcel,\r\n Critical: x.IsCriticalForExcel,\r\n '(%) Utilization': x.Allocationpercentage,\r\n Lead: x.LeadName,\r\n 'Reporting Manager': x.ReportingManagerName,\r\n Skill: x.SkillCode,\r\n 'Program Manager': x.ProgramManagerName,\r\n Resigned: x.IsResignedForExcel,\r\n 'Resignation Date': x.ResignationDate,\r\n 'Last Working Date': x.LastWorkingDate,\r\n 'Long Leave': x.IsLongLeaveForExcel,\r\n 'Long Leave Start Date': x.LongLeaveStartDate,\r\n 'Long Leave Tentative Join Date': x.TentativeJoinDate,\r\n 'Future Project': x.FutureProjectName,\r\n 'Future Project Tentative Date': x.FutureProjectTentativeDate\r\n }));\r\n this.fileExporterService.exportToExcel(columnsForExcel, 'TalentPool Report');\r\n }\r\n\r\n}\r\n","\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n \r\n bar_chart\r\n Bar\r\n \r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n pie_chart\r\n Pie\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 \r\n \r\n \r\n \r\n \r\n
Talent Pool\r\n {{element.ProjectName}} Resources\r\n {{element.ResourceCount}}
\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 0\">Talent Pool Name :\r\n {{this.talentPoolName}} \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 \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 \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
Employee Code\r\n {{element.EmployeeCode}} Employee Name\r\n {{element.EmployeeName}} Designation\r\n {{element.Designation}} Grade {{element.Grade}} Experience\r\n {{element.Experience}} Resigned\r\n {{element.IsResigned}} Long Leave\r\n {{element.IsLongLeave}} Duration(Days)\r\n {{element.DurationInDays}} Future Project\r\n {{element.FutureProjectName}} Future Project Tentative Date\r\n {{element.FutureProjectTentativeDate}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n

Loading ...

\r\n
","import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { UtilizationReportResponse } from '../../models/utilization-report.model';\r\nimport { MatTableDataSource, MatTable } from '@angular/material/table';\r\nimport { UtilizationReportService } from '../../services/utilization-report.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatOption } from '@angular/material/core';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { ReplaySubject, Subject } from 'rxjs';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { DatePipe } from '@angular/common';\r\nimport * as moment from 'moment';\r\nimport { TableUtil } from \"../../services/exportUtil\";\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { FileExporterService } from 'src/app/core/services/file-exporter.service';\r\n\r\n@Component({\r\n selector: 'app-utilization-report',\r\n templateUrl: './utilization-report.component.html',\r\n styleUrls: ['./utilization-report.component.scss']\r\n})\r\nexport class UtilizationReportComponent implements OnInit {\r\n reportDetails: UtilizationReportResponse[] = [];\r\n dataSource: MatTableDataSource;\r\n private resources = servicePath.API.PagingConfigValue; \r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n displayedColumns: string[] = ['AssociateCode','AssociateName','DateOfJoining',\"EmploymentStartDate\", 'Fresher', 'LastWorkingDate', 'ProjectsWorked', 'TotalWorkedDays', 'TimeTakenForFirstBilling','LastBillingDate', 'TotalBillingDays','TotalNonBillingDays','BillingDaysPercentage','Experience','Technology','Skills'];\r\n constructor(private utilizationReportService: UtilizationReportService, \r\n private _snackBar: MatSnackBar,\r\n public navService: NavService,\r\n private fileExporterService:FileExporterService,\r\n private spinner: NgxSpinnerService) { }\r\n\r\n ngOnInit(): void {\r\n this.GetUtiliztionReportDetails(); \r\n }\r\n \r\n GetUtiliztionReportDetails(): void{ \r\n this.spinner.show();\r\n this.utilizationReportService.GetUtilizationReport().subscribe(\r\n (res: UtilizationReportResponse[]) => {\r\n if(res.length > 0 && res != null) { \r\n this.reportDetails = res; \r\n this.reportDetails.forEach((record: UtilizationReportResponse) => { \r\n record.Resigned = (record.Active == true) ? 'Yes' : ''; \r\n record.IsFresher = (record.Fresher == true) ? 'Yes' : ''; \r\n });\r\n\r\n this.dataSource = new MatTableDataSource(this.reportDetails.filter(entry => entry.Active === true));\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.spinner.hide();\r\n }\r\n else { \r\n this.spinner.hide();\r\n this._snackBar.open('No records found', 'x', {\r\n duration: 1000,\r\n panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n },\r\n (error: any) => { \r\n this.spinner.hide();\r\n this._snackBar.open('Unable to get utilization details', 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n\r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n\r\n public CheckResigned(event :any) { \r\n if(event.checked) \r\n {\r\n this.dataSource = new MatTableDataSource(this.reportDetails);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n else\r\n {\r\n this.dataSource = new MatTableDataSource(this.reportDetails.filter(entry => entry.Active === true));\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n } \r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.reportDetails);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n }\r\n\r\n exportAsXLSX() { \r\n this.spinner.show();\r\n const columnsForExcel = this.dataSource.data.map(x => ({\r\n 'Associate Code': x.AssociateCode,\r\n 'Associate Name': x.AssociateName,\r\n 'Date Of Joining': new Date(moment(x.DateOfJoining).format('MM/DD/YYYY')),\r\n 'Employment Start Date': (x.EmploymentStartDate != null ? new Date(moment(x.EmploymentStartDate).format('MM/DD/YYYY')) : ''),\r\n 'Last Working Date': (x.LastWorkingDate != null ? new Date(moment(x.LastWorkingDate).format('MM/DD/YYYY')) : ''),\r\n 'Projects Worked': x.ProjectsWorked, \r\n 'Total Worked Days': x.TotalWorkedDays,\r\n 'Days Taken For First Billing': x.TimeTakenForBillable,\r\n 'Last Billing Date': (x.LastBillingDate != null ? new Date(moment(x.LastBillingDate).format('MM/DD/YYYY')) : ''),\r\n 'Total Billing Days': x.TotalBillingDays,\r\n 'Total Non-Billing Days': x.TotalNonBillingDays,\r\n 'Billing Days (%)': x.BillingDaysPercentage,\r\n 'Experience': x.ExperienceExcludingCareerBreak,\r\n 'Technology': x.CompetencyGroup,\r\n 'Skills': x.Skills,\r\n 'Fresher': x.IsFresher\r\n }));\r\n this.fileExporterService.exportToExcel(columnsForExcel, \"Utilization Report\"); \r\n this.spinner.hide();\r\n }\r\n}\r\n","
\r\n
\r\n Include Ex-Employees\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 \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 \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 \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 \r\n \r\n \r\n \r\n \r\n \r\n
Associate Code {{element.AssociateCode}} Associate Name {{element.AssociateName}} Date Of Joining {{element.DateOfJoining | date:'MM/dd/yyyy'}} Employment Start Date {{element.EmploymentStartDate | date:'MM/dd/yyyy'}} Last Working Date {{element.LastWorkingDate | date:'MM/dd/yyyy'}} Projects Worked {{element.ProjectsWorked}} Total Worked Days {{element.TotalWorkedDays}} Days Taken For First Billing {{element.TimeTakenForBillable}} Last Billing Date {{element.LastBillingDate | date:'MM/dd/yyyy'}} Total Billing Days {{element.TotalBillingDays}} Total Non-Billing Days {{element.TotalNonBillingDays}} Billing Days (%) {{element.BillingDaysPercentage}} Experience {{element.ExperienceExcludingCareerBreak}} Technology {{element.CompetencyGroup}} Skills {{element.Skills}} Fresher {{element.IsFresher}}
No data
\r\n
\r\n
\r\n \r\n
\r\n\r\n

Loading ...

\r\n\r\n
\r\n
","export class AttendanceReport{\r\n EmployeeCode: string;\r\n EmployeeName: string; \r\n DepartmentName: string; \r\n ProjectName: string;\r\n ReportingManagerName: string;\r\n TotalDaysWorked: number; \r\n TotalWorkingDays: number;\r\n TotalHolidays: number;\r\n WorkFromHome : boolean;\r\n TotalWFHDays : number;\r\n TotalWFODays : number;\r\n TotalLeaves : number;\r\n}\r\n\r\nexport class AttendanceReportFilter\r\n{\r\n ProjectId: number;\r\n EmployeeName: string;\r\n ManagerName: string;\r\n ManagerId: number;\r\n RoleName: string;\r\n FromDate : string;\r\n ToDate: string; \r\n isLeadership: boolean;\r\n EmployeeCode: string;\r\n EmployeeId: number;\r\n}\r\n\r\nexport class AttendanceDetailReport\r\n{\r\n title: string;\r\n date: string; \r\n}\r\n\r\nexport class AttendanceDetailReportData\r\n{\r\n eventData: AttendanceDetailReport[];\r\n filter:AttendanceReportFilter; \r\n daysWorked : number;\r\n employeeName:string; \r\n}\r\n\r\nexport class SelectItem {\r\n value: number;\r\n label: string;\r\n }\r\n","export class AssociateExitReportResponse{\r\n AssociateCode: string;\r\n AssociateName: string; \r\n Grade: string;\r\n Gender: string;\r\n Department: string;\r\n TechnologyGroup: string;\r\n JoinDate: Date;\r\n ExitDate: Date \r\n Project: string; \r\n ProgramManager: string;\r\n ReportingManager: string; \r\n ExitType: string; \r\n ExitCause: string; \r\n RehireEligibility:boolean; \r\n LegalExit:boolean;\r\n ImpactOnClientDelivery:boolean;\r\n ServiceTenure: number;\r\n ServiceTenureWithSG: number;\r\n ServiceTenurePriorToSG: number;\r\n FinancialYear: string;\r\n Quarter: string;\r\n RehireEligibilityStr:string; \r\n LegalExitStr:string;\r\n ImpactOnClientDeliveryStr:string;\r\n ServiceTenureRange: string;\r\n ServiceTenureWithSGRange: string;\r\n}\r\n\r\nexport class ChartData{\r\n Label: string;\r\n Value: number; \r\n} \r\n\r\nexport class AssociateExitReportFilter\r\n{\r\n ReportType: number;\r\n FromDate : string;\r\n ToDate: string; \r\n}\r\n\r\nexport class AssociateExitReportRequestForPm {\r\n FromDate:string;\r\n ToDate: string;\r\n}\r\n","import { ReportsData } from './reportsdata.model';\r\nexport class PagingData {\r\n public RowsPerPage: number;\r\n public PageNumber: number;\r\n}\r\nexport class UtilizationReportFilterData extends PagingData{\r\n public EmployeeId: number;\r\n public ProjectId: number;\r\n public GradeId: number;\r\n public DesignationId: number;\r\n public ClientId: number;\r\n public AllocationPercentageId: number;\r\n public ProgramManagerId: number;\r\n public ExperienceId: number;\r\n public ExperienceRange: string;\r\n public Experience: number;\r\n public IsBillable: number;\r\n public IsCritical: number;\r\n public isExportToExcel: boolean\r\n public PracticeAreaId: number;\r\n}\r\n\r\nexport class FinanceReportFilterData extends PagingData{\r\n public FromDate: Date;\r\n public ToDate: Date;\r\n public ProjectId: number;\r\n}\r\n\r\nexport class utilizationReportByMonthFilterData extends PagingData{\r\n public FromMonth: number;\r\n public ToMonth: number;\r\n public Year: number;\r\n public isExportToExcel: boolean\r\n} \r\nexport class ReportsFilterData {\r\n public financeReportFilterData: FinanceReportFilterData;\r\n public utilizationReportFilterData: UtilizationReportFilterData;\r\n public utilizationReportByMonthFilterData: utilizationReportByMonthFilterData;\r\n public reportsData: Array;\r\n public TotalCount: number;\r\n}\r\n\r\nexport class FinanceReportData extends PagingData{\r\n public FromDate: string;\r\n public ToDate: string;\r\n public ProjectId: number;\r\n}","export class AllocationDetails {\r\n lstBillableResources: ResourceAllocationDetails[];\r\n lstNonBillableCriticalResources: ResourceAllocationDetails[];\r\n lstNonBillableNonCriticalResources: ResourceAllocationDetails[];\r\n AllocationCount: AllocationCount;\r\n}\r\nexport class AllocationCount {\r\n ProjectName: string\r\n ResourceCount: number\r\n BillableCount: number\r\n NonBillableCriticalCount: number\r\n NonBillableNonCriticalCount: number\r\n}\r\n\r\nexport class ResourceAllocationDetails {\r\n AssociateCode: string\r\n AssociateName: string\r\n AllocationPercentage: number\r\n InternalBillingRoleName: string\r\n ClientBillingRoleName: string \r\n ClientBillingRoleId:number\r\n IsPrimaryProject: string\r\n IsCriticalResource: string\r\n EffectiveDate: string;\r\n}\r\n\r\nexport class ProjectDetails {\r\n ProjectId: number;\r\n ProjectCode: string;\r\n ProjectName: string;\r\n ProjectType:number;\r\n}\r\n\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'booleanToString' })\r\nexport class BooleanToStringPipe implements PipeTransform {\r\n transform(value: boolean): string {\r\n return ( value == true || value.toString().toLowerCase() == \"true\" ) ? 'Yes' : 'No'\r\n }; \r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { ReportsComponent } from './components/reports/reports.component';\r\nimport { ResourceReportComponent} from './components/resource-report/resource-report.component';\r\nimport { ResourceReportProjectComponent } from './components/resource-report-project/resource-report-project.component';\r\nimport {DomainReportComponent} from './components/domain-report/domain-report.component';\r\nimport { TalentpoolComponent } from './components/talentpool/talentpool.component';\r\nimport {FinanceReportComponent} from './components/finance-report/finance-report.component';\r\nimport { ResourceReportByProjectComponent } from './components/resource-report-by-project/resource-report-by-project.component';\r\nimport { ResourceReportByMonthComponent } from './components/resource-report-by-month/resource-report-by-month.component';\r\nimport { SkillReportComponent } from './components/skill-report/skill-report.component';\r\nimport { ServicetypeReportComponent } from './components/servicetype-report/servicetype-report.component';\r\nimport { ProjectsReportComponent } from './components/projects-report/projects-report.component';\r\nimport { ProjectdetailsReportComponent } from './components/projectdetails-report/projectdetails-report.component';\r\nimport { ResourceReportCriticalNonbillingComponent } from './components/resource-report-critical-nonbilling/resource-report-critical-nonbilling.component';\r\nimport { ResourceReportNonCriticalNonbillingComponent } from './components/resource-report-non-critical-nonbilling/resource-report-non-critical-nonbilling.component';\r\nimport { UtilizationReportComponent } from './components/utilization-report/utilization-report.component';\r\nimport { AssociateExitReportComponent } from './components/associate-exit-report/associate-exit-report.component';\r\nimport { AssociateExitSummaryReportComponent } from './components/associate-exit-summary-report/associate-exit-summary-report.component';\r\nimport { AssociateAttendanceReportComponent } from './components/associate-attendance-report/associate-attendance-report.component';\r\nimport { ManagerAttendanceReportComponent } from './components/manager-attendance-report/manager-attendance-report.component';\r\nimport { NonCriticalResourceLastBillingReportComponent } from './components/non-critical-resource-last-billing-report/non-critical-resource-last-billing-report.component';\r\nconst routes: Routes = [\r\n {\r\n path: '', component: ReportsComponent,\r\n children: [\r\n { path:'resourcereport', component: ResourceReportComponent, data: { title: 'Resource Report' } },\r\n { path:'resourcereportsbyproject', component: ResourceReportProjectComponent, data: { title: 'Resource Report By Project' }},\r\n { path:'resourcereportsbyproject/:projectId', component: ResourceReportProjectComponent, data: { title: 'Allocation Details' }},\r\n { path:'domainreport', component: DomainReportComponent, data: { title: 'Domain Report' } },\r\n { path: 'talentpoolreport', component: TalentpoolComponent, data: { title: 'Talentpool data Report' } },\r\n { path: 'financereport', component: FinanceReportComponent, data: { title: 'Finance Report' } },\r\n\r\n { path: 'resourcereportsbyTechnology', component: ResourceReportByProjectComponent, data: { title: 'Resource Report By Project' } },\r\n { path: 'resourcereportbyMonth', component: ResourceReportByMonthComponent, data: { title: 'Resource Report By Month' } },\r\n { path: 'skillreport', component: SkillReportComponent, data: { title: 'Finance Report' } },\r\n { path: 'servicereport', component: ServicetypeReportComponent, data: { title: 'Service Type Report' } },\r\n { path: 'projectsreport', component: ProjectsReportComponent, data: { title: 'Projects Report' } },\r\n { path: 'projectdetails', component: ProjectdetailsReportComponent, data: { title: 'Projects Information Report' } },\r\n { path: 'resource-report-with-critical', component: ResourceReportCriticalNonbillingComponent, data: { title: 'Critical Resource Report' } },\r\n { path: 'resource-report-with-noncritical', component: ResourceReportNonCriticalNonbillingComponent, data: { title: 'Non critical Resource Report' } },\r\n { path: 'utilizationreport', component: UtilizationReportComponent, data: { title: 'Utilization Report' } },\r\n { path: 'resource-report-with-noncritical', component: ResourceReportNonCriticalNonbillingComponent, data: { title: 'Non critical Resource Report (Available Talent)' } },\r\n { path: 'associateexitreport', component: AssociateExitReportComponent, data: { title: 'Associate Exit Report' } },\r\n { path: 'associateexitsummary', component: AssociateExitSummaryReportComponent, data: { title: 'Associate Exit Summary' } },\r\n { path: 'associateattendancereport', component: AssociateAttendanceReportComponent, data: { title: 'Attendance Report' } },\r\n { path: 'managerattendancereport', component: ManagerAttendanceReportComponent, data: { title: 'Attendance Reports' } },\r\n { path: 'noncritical-resource-with-last-billing-report', component: NonCriticalResourceLastBillingReportComponent, data: { title: 'Non critical Resource Last Billing Report' } },\r\n\r\n ]\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n })\r\n export class ReportsRoutingModule { }","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { DatePipe } from '@angular/common'\r\n\r\nimport { ReportsRoutingModule } from './reports-routing.module';\r\nimport {ReportsComponent} from './components/reports/reports.component';\r\nimport { ResourceReportComponent } from './components/resource-report/resource-report.component';\r\nimport { ResourceReportProjectComponent } from './components/resource-report-project/resource-report-project.component';\r\nimport { RouterModule } from '@angular/router';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { AllAngularMaterialModule } from '../plugins/all-angular-material/all-angular-material.module';\r\nimport { TalentpoolComponent } from './components/talentpool/talentpool.component';\r\nimport {DomainReportComponent} from './components/domain-report/domain-report.component';\r\n\r\nimport { FinanceReportComponent } from './components/finance-report/finance-report.component';\r\nimport { MatTableExporterModule } from 'mat-table-exporter';\r\nimport { NgxMatSelectSearchModule } from 'ngx-mat-select-search';\r\nimport { SkillReportComponent } from './components/skill-report/skill-report.component';\r\nimport { ResourceReportByProjectComponent } from './components/resource-report-by-project/resource-report-by-project.component';\r\nimport { ResourceReportByMonthComponent } from './components/resource-report-by-month/resource-report-by-month.component';\r\nimport { ServicetypeReportComponent } from './components/servicetype-report/servicetype-report.component';\r\nimport { NgxSpinnerModule } from 'ngx-spinner';\r\nimport { ProjectsReportComponent } from './components/projects-report/projects-report.component';\r\nimport { ProjectdetailsReportComponent } from './components/projectdetails-report/projectdetails-report.component';\r\nimport { ResourceReportCriticalNonbillingComponent } from './components/resource-report-critical-nonbilling/resource-report-critical-nonbilling.component';\r\nimport { ResourceReportNonCriticalNonbillingComponent } from './components/resource-report-non-critical-nonbilling/resource-report-non-critical-nonbilling.component';\r\nimport { UtilizationReportComponent } from './components/utilization-report/utilization-report.component';\r\nimport { AssociateExitReportComponent } from './components/associate-exit-report/associate-exit-report.component';\r\nimport { AssociateExitSummaryReportComponent } from './components/associate-exit-summary-report/associate-exit-summary-report.component';\r\nimport { AssociateAttendanceReportComponent } from './components/associate-attendance-report/associate-attendance-report.component';\r\nimport { AttendanceReportDialogComponent } from './components/attendance-report-dialog/attendance-report-dialog.component';\r\nimport { FullCalendarModule } from '@fullcalendar/angular';\r\nimport dayGridPlugin from '@fullcalendar/daygrid';\r\nimport { ManagerAttendanceReportComponent } from './components/manager-attendance-report/manager-attendance-report.component';\r\nimport { NonCriticalResourceLastBillingReportComponent } from './components/non-critical-resource-last-billing-report/non-critical-resource-last-billing-report.component';\r\n\r\nFullCalendarModule.registerPlugins([ \r\n dayGridPlugin \r\n]);\r\n@NgModule({\r\n declarations: [ReportsComponent,ResourceReportComponent,ResourceReportProjectComponent, TalentpoolComponent, FinanceReportComponent, \r\n DomainReportComponent, SkillReportComponent, ResourceReportByProjectComponent, ResourceReportByMonthComponent, ServicetypeReportComponent, ProjectsReportComponent, ProjectdetailsReportComponent, ResourceReportCriticalNonbillingComponent, ResourceReportNonCriticalNonbillingComponent, UtilizationReportComponent, AssociateExitReportComponent, AssociateExitSummaryReportComponent, AssociateAttendanceReportComponent, AttendanceReportDialogComponent, ManagerAttendanceReportComponent, NonCriticalResourceLastBillingReportComponent \r\n ],\r\n\r\n imports: [\r\n RouterModule,\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n FlexLayoutModule,\r\n ReportsRoutingModule,\r\n AllAngularMaterialModule,\r\n MatTableExporterModule,\r\n NgxMatSelectSearchModule,\r\n NgxSpinnerModule, \r\n FullCalendarModule, \r\n ],\r\n exports: [],\r\n providers:[DatePipe], \r\n })\r\n\r\nexport class ReportsModule { }","import { Injectable } from '@angular/core';\r\nimport { environment } from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\nimport { GenericType } from '../../../modules/master-layout/models/dropdowntype.model';\r\nimport { AttendanceReportFilter, AttendanceReport, AttendanceDetailReport, AttendanceDetailReportData } from '../models/associate-attendance-report.model';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AssociateAttendanceReportService {\r\n\r\n reportUrl = environment.EmployeeMicroService; \r\n resources = servicePath.API.Reports;\r\n public attendanceData = new BehaviorSubject(new AttendanceDetailReportData());\r\n public attendanceDataObservable = this.attendanceData.asObservable();\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n public GetAttendanceSummaryReport(filter: AttendanceReportFilter) {\r\n var url = this.reportUrl + this.resources.GetAttendanceSummaryReport; \r\n return this.httpClient.post(url, filter);\r\n }\r\n\r\n public GetBiometricAttendanceSummaryReport(filter: AttendanceReportFilter){\r\n var url = this.reportUrl + this.resources.GetBiometricAttendanceSummaryReport; \r\n return this.httpClient.post(url, filter);\r\n }\r\n\r\n public GetAttendanceDetailReport(filter: AttendanceReportFilter) {\r\n var url = this.reportUrl + this.resources.GetAttendanceDetailReport; \r\n return this.httpClient.post(url, filter);\r\n }\r\n\r\n public GetBiometricAttendanceDetailReport(filter: AttendanceReportFilter) {\r\n var url = this.reportUrl + this.resources.GetBiometricAttendanceDetailReport; \r\n return this.httpClient.post(url, filter);\r\n }\r\n\r\n public GetAssociates(employeeId:number, roleName: string, projectId:number, isLeadership: boolean) {\r\n var url = this.reportUrl + this.resources.GetAssociates + \"/\" + employeeId + \"/\" + roleName + \"/\" + projectId + '?isLeadership=' + isLeadership; \r\n return this.httpClient.get(url);\r\n }\r\n\r\n public GetAssociatesForBiometricAttendance(employeeId:number, roleName: string, projectId:number, isLeadership: boolean) {\r\n var url = this.reportUrl + this.resources.GetAssociatesForBiometricAttendance + \"/\" + employeeId + \"/\" + roleName + \"/\" + projectId + '?isLeadership=' + isLeadership; \r\n return this.httpClient.get(url);\r\n }\r\n\r\n public GetProjects(employeeId:number, roleName: string) {\r\n var url = this.reportUrl + this.resources.GetProjects + \"/\" + employeeId + \"/\" + roleName ; \r\n return this.httpClient.get(url);\r\n }\r\n\r\n public GetProjectsForBiometricAttendance(employeeId:number, roleName: string) {\r\n var url = this.reportUrl + this.resources.GetProjectsForBiometricAttendance + \"/\" + employeeId + \"/\" + roleName ; \r\n return this.httpClient.get(url);\r\n }\r\n\r\n public GetAttendanceMaxDate() {\r\n var url = this.reportUrl + this.resources.GetAttendanceMaxDate; \r\n return this.httpClient.get(url);\r\n }\r\n\r\n\r\n public GetBiometricAttendanceMaxDate() {\r\n var url = this.reportUrl + this.resources.GetBiometricAttendanceMaxDate; \r\n return this.httpClient.get(url);\r\n }\r\n\r\n public IsDeliveryDepartment(employeeId:number) {\r\n var url = this.reportUrl + this.resources.IsDeliveryDepartment + \"/\" + employeeId; \r\n return this.httpClient.get(url);\r\n }\r\n\r\n public IsDeliveryDepartmentforBiometric(employeeId:number) {\r\n var url = this.reportUrl + this.resources.IsDeliveryDepartmentforBiometric + \"/\" + employeeId; \r\n return this.httpClient.get(url);\r\n }\r\n\r\n public getMusterReport(year:number,month:number){\r\n\r\n var url = environment.EmployeeMicroService + this.resources.GetMusterReport+year+\"/\"+month;\r\n\r\n return this.httpClient.get(url,{ headers: {\r\n 'Content-type': 'application/json'\r\n } });\r\n\r\n }\r\n \r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\nimport { GenericType } from '../../../modules/master-layout/models/dropdowntype.model';\r\nimport { AssociateExitReportFilter, AssociateExitReportRequestForPm, AssociateExitReportResponse, ChartData } from '../models/associate-exit-report.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n })\r\n\r\n export class AssociateExitReportService{\r\n reportUrl = environment.EmployeeMicroService;\r\n \r\n resources = servicePath.API.Reports;\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n \r\n public GetAssociateExitReport() {\r\n var url = this.reportUrl + this.resources.GetAssociateExitReport; \r\n return this.httpClient.get(url);\r\n }\r\n\r\n public GetAssociateExitGridReport(filter: AssociateExitReportFilter) {\r\n var url = this.reportUrl + this.resources.GetAssociateExitReport; \r\n return this.httpClient.post(url, filter);\r\n }\r\n\r\n public GetAssociateExitReportTypes() {\r\n var url = this.reportUrl + this.resources.GetAssociateExitReportTypes; \r\n return this.httpClient.get(url);\r\n }\r\n\r\n public GetAssociateExitChartReport(filter: AssociateExitReportFilter) {\r\n var url = this.reportUrl + this.resources.GetAssociateExitChartReport; \r\n return this.httpClient.post(url,filter);\r\n } \r\n \r\n public GetAssociateExitReportForPM(exitRequestObj:AssociateExitReportRequestForPm){\r\n var url = this.reportUrl + this.resources.GetAssociateExitReport; \r\n return this.httpClient.post(url,exitRequestObj);\r\n }\r\n }\r\n ","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { IDomainReport } from '../../reports/interfaces/IDomainReport';\r\nimport { DomainDataCount } from '../../reports/models/domainreport.model';\r\nimport { EmployeeReportData } from '../../reports/models/employee.model';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { HttpClient} from '@angular/common/http';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n })\r\n\r\n\r\nexport class DomainReportService implements IDomainReport {\r\n\r\n private _resources: any;\r\n private _reportURL: string;\r\n\r\n constructor(private httpClient: HttpClient) {\r\n this._reportURL = environment.ReportMicroService;\r\n // this._reportURL = environment.ServerUrl;\r\n this._resources = servicePath.API.Reports;\r\n }\r\n\r\n public GetDomainDataCount(): Observable> {\r\n var _url = this._reportURL + this._resources.GetDomainCountReport;\r\n return this.httpClient.get(_url);\r\n }\r\n public GetEmployeesByDomainId(domainId: number): Observable> {\r\n let _url = this._reportURL + this._resources.getEmployeesByDomainId + domainId;\r\n return this.httpClient.get(_url)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ReportsFilterData } from '../models/reportsfilter.model';\r\n// import { FinanceReportFilterData } from '../models/reportsfilter.model';\r\nimport { FinanceReportData } from '../models/reportsfilter.model';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { environment } from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport 'rxjs/Rx';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FinanceReportService {\r\n serviceUrl = environment.ServerUrl;\r\n reportUrl = environment.ReportMicroService;\r\n resources = servicePath.API.Reports;\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n \r\n GetProjectsList(){\r\n let url = this.serviceUrl + this.resources.GetProjectsList;\r\n return this.httpClient.get(url);\r\n }\r\n\r\n GetFinanceReport(reportsFilterData: FinanceReportData) {\r\n // var url = this.serviceUrl + this.resources.GetFinanceReport;\r\n var url = this.reportUrl + this.resources.GetFinanceReport;\r\n return this.httpClient.post(url, reportsFilterData);\r\n }\r\n GetRmgReportDataByMonthYear(monthyear) {\r\n var url = this.serviceUrl + this.resources.getRmgReportDataByMonthYear+monthyear.Month+'&year='+monthyear.Year;\r\n return this.httpClient.get(url);\r\n }\r\n GetFinanceReportToFreez() {\r\n var url = this.serviceUrl + this.resources.getFinanceReportToFreez;\r\n return this.httpClient.get(url);\r\n }\r\n }\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { environment } from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProjectdetailsService {\r\n\r\n private _resources: any;\r\n private _reportURL: string;\r\n\r\n constructor(private httpClient: HttpClient) {\r\n this._reportURL = environment.ProjMicroService;\r\n this._resources = servicePath.API.Reports;\r\n }\r\n\r\n public GetProjectDetailsForReport() {\r\n var url = this._reportURL + this._resources.GetProjectDetailsReport;\r\n return this.httpClient.get(url);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\nimport {ProjectResponse} from '../models/projects-report.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n })\r\n\r\n export class ProjectsService {\r\n reportUrl = environment.ProjMicroService;\r\n \r\n resources = servicePath.API.Reports;\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n \r\n public GetAllProjects() {\r\n var url = this.reportUrl + this.resources.GetAllProjectsForReport; \r\n return this.httpClient.get(url);\r\n }\r\n \r\n }\r\n ","import { Injectable } from '@angular/core';\r\nimport { environment } from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\nimport { ReportsData } from '../models/reportsdata.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ResourceReportCriticalService {\r\n reportUrl = environment.ReportMicroService;\r\n resources = servicePath.API.Reports;\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n public GetCriticalResourceReport(): Observable {\r\n var url = this.reportUrl + this.resources.GetCriticalResourceReport; \r\n return this.httpClient.get(url);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { ReportsData } from '../models/reportsdata.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ResourceReportNoncriticalService {\r\n reportUrl = environment.ReportMicroService;\r\n resources = servicePath.API.Reports;\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n public GetNonCriticalResourceReport(): Observable {\r\n var url = this.reportUrl + this.resources.GetNonCriticalResourceReport; \r\n return this.httpClient.get(url);\r\n }\r\n public GetAssociatesForFutureAllocation(): Observable {\r\n var url = this.reportUrl + this.resources.GetAssociatesForFutureAllocation; \r\n return this.httpClient.get(url);\r\n }\r\n public GetNonCriticalBillingReport(): Observable {\r\n var url = this.reportUrl + this.resources.GetNonCriticalResourceBillingReport; \r\n return this.httpClient.get(url);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ReportsFilterData, UtilizationReportFilterData } from '../models/reportsfilter.model';\r\nimport { AllocationDetails } from '../models/resourcereportbyproject.model';\r\nimport { environment } from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { IResourceReports } from '../../reports/interfaces/iresource-reports';\r\nimport { ReportsData } from '../models/reportsdata.model';\r\nimport { NavigationEnd,RouterEvent, Router } from '@angular/router';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ResourceReportService implements IResourceReports{\r\n\r\n serviceUrl = environment.ServerUrl;\r\n reportUrl = environment.ReportMicroService;\r\n resources = servicePath.API.Reports;\r\n resourceReportUrl = environment.ProjMicroService;\r\n previousUrl: string = undefined;\r\n currentUrl: string = undefined;\r\n\r\n constructor(private httpClient: HttpClient, private router: Router) { this.currentUrl = this.router.url;\r\n router.events.subscribe(event => {\r\n if (event instanceof NavigationEnd) { \r\n this.previousUrl = this.currentUrl;\r\n this.currentUrl = event.url;\r\n };});\r\n }\r\n\r\n public GetResourceReportByProjectId(projectId: number): Observable{\r\n var url = this.resourceReportUrl + this.resources.GetResourceReportByProjectId + projectId;\r\n return this.httpClient.get(url);\r\n }\r\n \r\n public GetUtilizationReportsByTechnology(resourceFilter: ReportsFilterData): Observable {\r\n var url = this.serviceUrl + this.resources.GetUtilizationReportsByTechnologyId;\r\n return this.httpClient.post(url, resourceFilter);\r\n }\r\n\r\n public GetUtilizationReportsByMonth(resourceFilter: ReportsFilterData): Observable{\r\n var url = this.serviceUrl + this.resources.GetUtilizationReportsByMonth;\r\n return this.httpClient.post(url, resourceFilter);\r\n }\r\n\r\n public ResourceReportByFilters(resourceFilter: UtilizationReportFilterData):Observable{ \r\n let url = this.reportUrl + this.resources.GetResourceReports;\r\n return this.httpClient.post(url, resourceFilter);\r\n }\r\n public getPreviousUrl(){\r\n return this.previousUrl;\r\n }\r\n\r\n}\r\n","import { ProjectResponse } from './../models/projects-report.model';\r\nimport { ProjectTypeData } from './../../admin/models/projecttype.model';\r\nimport { Injectable } from '@angular/core';\r\nimport { environment } from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\nimport {ServiceTypeReport, ServiceTypeReportEmp, ServiceTypeDropDown} from '../models/service-typereport.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n })\r\n\r\n export class ServiceTypeReportService {\r\n reportUrl = environment.ReportMicroService;\r\n adminUrl = environment.AdminMicroService;\r\n resources = servicePath.API.Reports;\r\n admin = servicePath.API.ServiceType;\r\n project = servicePath.API.ProjectType;\r\n constructor(private httpClient: HttpClient) { }\r\n \r\n public GetServiceTypeReportCount(filter: string) {\r\n var url = this.reportUrl + this.resources.GetServiceTypeReportCount; \r\n return this.httpClient.get(url+filter);\r\n }\r\n \r\n public GetServiceTypeReportEmployee(serviceTypeId: number){\r\n var url = this.reportUrl + this.resources.GetServiceTypeReportEmployee + serviceTypeId;\r\n return this.httpClient.get(url);\r\n }\r\n public GetServiceTypeForDropdown(){\r\n var url = this.adminUrl + this.admin.GetServiceTypeForDropdown;\r\n return this.httpClient.get(url);\r\n }\r\n public GetProjectTypeDropdown(){\r\n var url = this.adminUrl + this.project.list;\r\n return this.httpClient.get(url);\r\n }\r\n \r\n public GetServiceTypeReportProject(serviceTypeId: number){\r\n var url = this.reportUrl + this.resources.GetServiceTypeReportProject + serviceTypeId;\r\n return this.httpClient.get(url);\r\n }\r\n \r\n }\r\n ","import { Injectable } from '@angular/core';\r\nimport { environment } from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\nimport { TalentpoolDataCount, TalentPoolReportData } from '../models/talentpool.model';\r\nimport { EmployeeReportData } from '../models/employee.model';\r\nimport { ReportsData } from '../models/reportsdata.model';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class TalentpoolreportService {\r\n reportUrl = environment.ReportMicroService;\r\n resources = servicePath.API.Reports;\r\n userProjectHistory = new BehaviorSubject([]);\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n public GetTalentpoolResourceCount(): Observable> {\r\n var url = this.reportUrl + this.resources.GetTalentpoolResourceCount; \r\n return this.httpClient.get(url);\r\n }\r\n\r\n public GetEmployeesByTalentPoolProjectId(projectId: number): Observable> {\r\n var url = this.reportUrl + this.resources.GetEmployeesByTalentPoolProjectID + projectId;\r\n return this.httpClient.get(url);\r\n }\r\n\r\n public GetTalentPoolResourceReport(): Observable> {\r\n var url = this.reportUrl + this.resources.GetTalentPoolResourceReport;\r\n return this.httpClient.get(url);\r\n }\r\n}\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\nimport {UtilizationReportResponse} from '../models/utilization-report.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n })\r\n\r\n export class UtilizationReportService{\r\n reportUrl = environment.EmployeeMicroService;\r\n \r\n resources = servicePath.API.Reports;\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n \r\n public GetUtilizationReport() {\r\n var url = this.reportUrl + this.resources.GetUtilizationReport; \r\n return this.httpClient.get(url);\r\n }\r\n \r\n }\r\n ","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { MAT_DIALOG_DATA ,MatDialogRef, MatDialog} from '@angular/material/dialog';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { Router } from '@angular/router';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { KtForm } from '../../models/kt-form.model';\r\nimport { KtFormService } from '../../services/kt-form.service';\r\n\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-KT-plan-dialog',\r\n templateUrl: './KT-plan-dialog.component.html',\r\n styleUrls: ['./KT-plan-dialog.component.scss']\r\n})\r\nexport class KTPlanDialogComponent implements OnInit {\r\n\r\n KtFormValues: KtForm;\r\n \r\n UpdatektPlan:FormGroup;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: {EmployeeId: number},\r\n private _KtFormService: KtFormService,\r\n private _snackBar: MatSnackBar,\r\n private fb: FormBuilder,\r\n public dialog: MatDialog,\r\n private dialogRef: MatDialogRef,\r\n private _router: Router,) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.UpdatektPlan = new FormGroup({\r\n Remarks: new FormControl(null,[Validators.required])\r\n });\r\n }\r\n UpdateKTPlan()\r\n {\r\n this.KtFormValues = new KtForm();\r\n if(this.UpdatektPlan.valid)\r\n {\r\n this.KtFormValues.EmployeeId=this.data.EmployeeId;\r\n this.KtFormValues.TransitionNotRequired=true;\r\n this.KtFormValues.Remarks=this.UpdatektPlan.value.Remarks;\r\n this.KtFormValues.Type=\"TLComplete\";\r\n \r\n this._KtFormService.updateKtTasks(this.KtFormValues).subscribe(res=>{\r\n if (res) {\r\n if (this.KtFormValues.Type == 'Save') { \r\n this._snackBar.open('Transition Plan updated successfully.', 'x', {\r\n duration: 1000,\r\n panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this._router.navigate(['/shared/dashboard']);\r\n } else {\r\n this._snackBar.open(\r\n 'Transition Plan Updated successfully.',\r\n 'x',\r\n {\r\n panelClass:['success-alert'],\r\n\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n \r\n }\r\n }\r\n }, \r\n (error) => {\r\n this._snackBar.open('Unable to update Transition Plan', 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n ) \r\n this.close(); \r\n \r\n }\r\n\r\n \r\n else{\r\n this.UpdatektPlan.markAllAsTouched();\r\n this._snackBar.open('Please correct the field highlighted in red color !', 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n}\r\nclose() {\r\n this.dialogRef.close();\r\n // this._router.navigate(['/shared/dashboard']);\r\n}\r\n}\r\n\r\n","
\r\n

Remarks for KT not required

\r\n \r\n \r\n Remarks *\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { ResignastionService } from '../../../AssociateExit/Services/resignastion.service';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { RevokeDialogComponent } from '../../../AssociateExit/Components/revoke-dialog/revoke-dialog.component';\r\nimport { AssociateExitDashboardService } from '../../services/associate-exit-dashboard.service';\r\nimport * as moment from 'moment';\r\nimport { transition } from '@angular/animations';\r\nimport { KtFormService } from '../../services/kt-form.service';\r\nimport { KtFormWithSubStatus } from '../../models/kt-form.model';\r\nimport { RevokeResignation } from '../../../AssociateExit/Models/associateExit.model';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { ViewDetailedStatusComponent } from '../view-detailed-status/view-detailed-status.component';\r\n\r\n@Component({\r\n selector: 'app-associate-dashboard',\r\n templateUrl: './associate-dashboard.component.html',\r\n styleUrls: ['./associate-dashboard.component.scss']\r\n})\r\nexport class AssociateDashboardComponent implements OnInit {\r\n\r\n resignationSubmitted = false;\r\n showTransitionPlan = false;\r\n multipleKTPlans = false;\r\n UserRole: string;\r\n empId: number;\r\n dashboard: string;\r\n ProjectId: number;\r\n revokeResignationData: RevokeResignation;\r\n pageload = false;\r\n disableRevokeButton = false;\r\n dialogResponse: boolean;\r\n\r\n displayedColumns: string[] = ['Status', 'RevokeStatus', 'ExitDate', 'Action'];\r\n displayedColumnsKTPlan: string[] = ['Project', 'Status', 'TransitionPlan'];\r\n dataSource: MatTableDataSource;\r\n dataSourceKTPlan: MatTableDataSource;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n departmentName: string;\r\n departmentId: number;\r\n\r\n constructor(\r\n private spinner: NgxSpinnerService,\r\n private _associateExitDashboardService: AssociateExitDashboardService,\r\n private _KtFormService: KtFormService,\r\n private _resignationService: ResignastionService,\r\n private _snackBar: MatSnackBar,\r\n public dialog: MatDialog) { }\r\n\r\n ngOnInit(): void {\r\n this.spinner.show();\r\n if (sessionStorage.getItem('AssociatePortal_UserInformation') != null) {\r\n const currentRole = JSON.parse(\r\n sessionStorage.getItem('AssociatePortal_UserInformation')\r\n ).roleName;\r\n this.UserRole = currentRole;\r\n this.empId = JSON.parse(\r\n sessionStorage.getItem('AssociatePortal_UserInformation')\r\n ).employeeId;\r\n }\r\n this.departmentId = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).departmentId;\r\n let RolesAndDepartments = JSON.parse(sessionStorage['RolesAndDepartments'])\r\n RolesAndDepartments.forEach(e => {\r\n if(this.departmentId === e.DepartmentId){\r\n this.departmentName = e.DepartmentCode\r\n }\r\n })\r\n if(this.departmentName === 'Delivery'){\r\n this.dashboard = \"DeliveryDashboard\";\r\n }\r\n else{\r\n this.dashboard = \"ServiceDashboard\";\r\n }\r\n this.getAssociateExitDetails();\r\n }\r\n\r\n getAssociateExitDetails() {\r\n if (this.empId) {\r\n this._associateExitDashboardService.getAssociateExitDashbaord(this.UserRole, this.empId, this.dashboard).toPromise().then(\r\n (res: any[]) => {\r\n if (res.length) {\r\n this.resignationSubmitted = true;\r\n\r\n res.forEach(e => {\r\n e.ExitDate = moment(e.ExitDate).format('MM/DD/YYYY');\r\n if (e.RevokeStatusCode === 'RevokeInitiated') {\r\n this.disableRevokeButton = true;\r\n }\r\n if (e.RevokeStatusCode === 'RevokeRejected') {\r\n this.displayedColumns = ['Status', 'RevokeStatus', 'RejectReason', 'ExitDate'];\r\n }\r\n if(e.RevokeStatusCode === null){\r\n this.displayedColumns = ['Status', 'ExitDate', 'Action']\r\n }\r\n this._KtFormService.getKtPlansForAssociate(this.empId).subscribe((resKTPlan: KtFormWithSubStatus[]) => {\r\n if (resKTPlan.length === 1) {\r\n resKTPlan.forEach(item => {\r\n if ((item.Status === 'KTPlanInProgress' || item.Status === 'KTPlanSubmitted')) {\r\n this.showTransitionPlan = true;\r\n this.ProjectId = item.ProjectId;\r\n if(e.RevokeStatusCode === 'RevokeRejected'){\r\n this.displayedColumns = ['Status', 'RevokeStatus', 'RejectReason', 'ExitDate', 'TransitionPlan'];\r\n }\r\n else if(e.RevokeStatusCode === null){\r\n this.displayedColumns = ['Status', 'ExitDate', 'Action', 'TransitionPlan']\r\n }\r\n else{\r\n this.displayedColumns = ['Status', 'RevokeStatus', 'ExitDate', 'Action', 'TransitionPlan'];\r\n }\r\n }\r\n });\r\n\r\n }\r\n else if (resKTPlan.length > 1) {\r\n resKTPlan.forEach(item => {\r\n if ((e.SubStatusCode) != null && item.Status === 'KTPlanInProgress' || item.Status === 'KTPlanSubmitted') {\r\n this.multipleKTPlans = true;\r\n this.dataSourceKTPlan = new MatTableDataSource(resKTPlan);\r\n this.showTransitionPlan = true;\r\n if(e.RevokeStatusCode === 'RevokeRejected'){\r\n this.displayedColumns = ['Status', 'RevokeStatus', 'ExitDate', 'TransitionPlan'];\r\n }\r\n else if(e.RevokeStatusCode === null){\r\n this.displayedColumns = ['Status', 'ExitDate', 'Action', 'TransitionPlan']\r\n }\r\n else{\r\n this.displayedColumns = ['Status', 'RevokeStatus', 'ExitDate', 'Action', 'TransitionPlan'];\r\n }\r\n }\r\n if (e.SubStatusCode === null && item.Status === null) {\r\n item.Status = 'NotYetStarted';\r\n this.showTransitionPlan = false;\r\n this.displayedColumns = ['Status', 'ExitDate', 'Action'];\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 this.dataSource = new MatTableDataSource(res);\r\n this.dataSource.sort = this.sort;\r\n this.spinner.hide();\r\n this.pageload = true;\r\n }\r\n else {\r\n this.spinner.hide();\r\n this.pageload = true;\r\n }\r\n }).catch(error => {\r\n this.spinner.hide();\r\n this.pageload = true;\r\n\r\n });\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n revokeResignation(submitType: string) {\r\n const dialogRef = this.dialog.open(RevokeDialogComponent, {\r\n height: '270px',\r\n width: '500px',\r\n disableClose: true,\r\n data: { value: submitType }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result.RevokeReason) {\r\n this.revokeResignationData = new RevokeResignation();\r\n this.revokeResignationData.EmployeeId = this.empId;\r\n this.revokeResignationData.Comment = 'Revoke Initiated'\r\n this.revokeResignationData.RevokeReason = result.RevokeReason;\r\n this.spinner.show();\r\n this._resignationService.revokeResignation(this.revokeResignationData).subscribe(res => {\r\n this.spinner.hide();\r\n if (res) {\r\n this._snackBar.open('Resignation Revoke Request sent successfully.', 'x', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.getAssociateExitDetails();\r\n }\r\n },\r\n (error) => {\r\n this.spinner.hide();\r\n this._snackBar.open('Unable to revoke resignation', 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n });\r\n }\r\n ViewDetailedStatus(EmployeeId: number) {\r\n const dialogRef = this.dialog.open(ViewDetailedStatusComponent, {\r\n width: '500px',\r\n disableClose: true,\r\n data: { value: EmployeeId}\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.dialogResponse = result;\r\n })\r\n }\r\n}\r\n","\r\n \r\n Associate Exit Actions\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 \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
Status \r\n {{element.StatusDesc}}\r\n {{element.StatusDesc}}\r\n Revoke Status \r\n {{element.RevokeStatusDesc}}\r\n Reject Reason \r\n {{element.RevokeComment}}\r\n Exit Date {{element.ExitDate}} Action \r\n \r\n Transition Plan \r\n \r\n
\r\n
\r\n
\r\n
\r\n Transition Plan Details\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 \r\n \r\n \r\n \r\n \r\n
Project {{element.ProjectName}} Status {{element.StatusDesc}} Transition Plan \r\n
\r\n Transition Plan\r\n
\r\n
\r\n Transition Plan\r\n
\r\n
No data
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { Router } from '@angular/router';\r\nimport * as moment from 'moment';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { AssociateExit } from 'src/app/modules/AssociateExit/Models/associateExit.model';\r\nimport { ChecklistService } from 'src/app/modules/AssociateExit/Services/checklist.service';\r\nimport { PmApprovalService } from 'src/app/modules/AssociateExit/Services/pm-approval.service';\r\nimport { ResignastionService } from 'src/app/modules/AssociateExit/Services/resignastion.service';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { AssociateExitDashboardService } from '../../services/associate-exit-dashboard.service';\r\nimport { CommonDialogComponent } from '../common-dialog/common-dialog.component';\r\n\r\n@Component({\r\n selector: 'app-associate-exit-checklist-screen',\r\n templateUrl: './associate-exit-checklist-screen.component.html',\r\n styleUrls: ['./associate-exit-checklist-screen.component.scss']\r\n})\r\nexport class AssociateExitChecklistScreenComponent implements OnInit {\r\n\r\n EmpId: number;\r\n roleName: string;\r\n dashboard: string;\r\n dashboards = {\r\n HRM: 'ServiceMangerDashboard'\r\n };\r\n\r\n @ViewChild('exitPaginator', { static: false }) exitPaginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n dataSourceAssociateExit: MatTableDataSource;\r\n dialogResponse: boolean;\r\n displayColumnsAssociateExit = ['EmployeeCode', 'EmployeeName', 'Designation', 'ExitDate', 'StatusCode', 'View', 'Action'];\r\n pageload = false;\r\n isLoading = false;\r\n associateList: AssociateExit[];\r\n\r\n constructor(\r\n private route: Router,\r\n private _snackBar: MatSnackBar,\r\n public navService: NavService,\r\n private spinner: NgxSpinnerService,\r\n private _resignationService: ResignastionService,\r\n private _pmApprovalService: PmApprovalService,\r\n private _associateExitDashboardService: AssociateExitDashboardService,\r\n private _checkListService: ChecklistService,\r\n public dialog: MatDialog\r\n ) {\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.spinner.show();\r\n this.roleName = JSON.parse(\r\n sessionStorage.AssociatePortal_UserInformation\r\n ).roleName;\r\n this.EmpId = JSON.parse(\r\n sessionStorage.AssociatePortal_UserInformation\r\n ).employeeId;\r\n this.dashboard = this.dashboards[this.roleName];\r\n this.GetAssociateExitList();\r\n }\r\n\r\n applyFilter(event: Event) {\r\n // if (event) {\r\n // const filterValue = (event.target as HTMLInputElement).value;\r\n // this.dataSourceAssociateExit.filter = filterValue.trim().toLowerCase();\r\n // } else {\r\n // this.dataSourceAssociateExit = new MatTableDataSource(this.dataSourceAssociateExit.data);\r\n // }\r\n // if (this.dataSourceAssociateExit.paginator) {\r\n // this.dataSourceAssociateExit.paginator.firstPage();\r\n // }\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSourceAssociateExit.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSourceAssociateExit = new MatTableDataSource(this.associateList);\r\n this.dataSourceAssociateExit.paginator = this.exitPaginator;\r\n this.dataSourceAssociateExit.sort = this.sort;\r\n }\r\n // this.dataSourceAssociateExit.paginator = this.exitPaginator;\r\n // this.dataSourceAssociateExit.sort = this.sort;\r\n }\r\n\r\n\r\n GetAssociateExitList(): void {\r\n this._associateExitDashboardService.getAssociateExitDashbaord(this.roleName, this.EmpId, this.dashboard).subscribe((res: any[]) => {\r\n res.forEach(e => {\r\n e.ExitDate = moment(e.ExitDate).format('MM/DD/YYYY');\r\n });\r\n this.spinner.hide();\r\n this.associateList = res;\r\n this.dataSourceAssociateExit = new MatTableDataSource(this.associateList);\r\n this.dataSourceAssociateExit.sort = this.sort;\r\n this.dataSourceAssociateExit.paginator = this.exitPaginator;\r\n });\r\n\r\n }\r\n \r\n abscondForm() {\r\n this.route.navigate(['/associateexit/associateabscondform']);\r\n\r\n }\r\n\r\n getExitChecklist(selectedData: any) {\r\n this.route.navigate(['/associateexit/view/' + selectedData.EmployeeId]);\r\n }\r\n\r\n}\r\n","\r\n
\r\n \r\n \r\n HRM Checklist\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\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\r\n \r\n \r\n \r\n \r\n \r\n
Emp Id {{element.EmployeeCode}} Employee Name\r\n {{element.EmployeeName}} Designation\r\n {{element.Designation}} Exit Date {{element.ExitDate}} Status {{element.StatusDesc}}\r\n View \r\n visibility\r\n \r\n Action \r\n \r\n Approve Checklist\r\n \r\n
No Records
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-associate-exit-review-screen',\r\n templateUrl: './associate-exit-review-screen.component.html',\r\n styleUrls: ['./associate-exit-review-screen.component.scss']\r\n})\r\nexport class AssociateExitReviewScreenComponent implements OnInit {\r\n\r\n EmpId: number;\r\n roleName: string;\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.roleName = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).roleName;\r\n this.EmpId = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).employeeId;\r\n }\r\n\r\n}\r\n","\r\n","import {Component, Inject, OnInit} from '@angular/core';\r\nimport {MatDialog, MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-common-dialog',\r\n templateUrl: './common-dialog.component.html',\r\n styleUrls: ['./common-dialog.component.scss']\r\n})\r\nexport class CommonDialogComponent implements OnInit {\r\n\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","

{{data.heading}}

\r\n\r\n

{{data.message}}

\r\n
\r\n\r\n \r\n \r\n \r\n\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-confirmation-dialog',\r\n templateUrl: './confirmation-dialog.component.html',\r\n styleUrls: ['./confirmation-dialog.component.scss']\r\n})\r\nexport class ConfirmationDialogComponent implements OnInit {\r\n\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n}\r\n","

{{data.heading}}

\r\n\r\n

{{data.message}}

\r\n
\r\n\r\n \r\n \r\n \r\n\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-corporate-dashboard',\r\n templateUrl: './corporate-dashboard.component.html',\r\n styleUrls: ['./corporate-dashboard.component.scss']\r\n})\r\nexport class CorporateDashboardComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, OnInit, ViewChild,ElementRef } from '@angular/core';\r\n// import { Message, SelectItem, MessageService } from 'primeng/api';\r\nimport { TalentRequisitionHistoryData } from '../../../master-layout/models/talentrequisitionhistory.model';\r\nimport { SkillsData, ProjectRoleParam, ProjectRole } from '../../../master-layout/models/project-role.model';\r\nimport { FormGroup, Validators, FormBuilder } from '@angular/forms';\r\nimport { KraSetData } from '../../../master-layout/models/kra.model';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { MasterDataService } from '../../../master-layout/services/masterdata.service';\r\nimport { DashboardService } from '../../services/dashboard.service';\r\nimport { FinanceHeadService } from '../../services/finance-head.service';\r\nimport * as moment from 'moment';\r\nimport { CommonService } from '../../../../core/services/common.service';\r\nimport { DeliveryHeadService } from '../../services/delivery-head.service';\r\nimport { ProjectRoleService } from '../../../master-layout/services/project-role.service';\r\ndeclare var jQuery: any;\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { Observable, of } from 'rxjs';\r\n\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\n import { MatSort } from '@angular/material/sort';\r\n\r\nimport { NavService } from '../../../master-layout/services/nav.service';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { RejectDialogComponent } from '../reject-dialog/reject-dialog.component';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\n\r\ninterface SelectItem {\r\n value : number;\r\n label : string;\r\n }\r\n\r\n@Component({\r\n selector: 'app-dashboard',\r\n templateUrl: './dashboard.component.html',\r\n styleUrls: ['./dashboard.component.css'],\r\n providers: [ MasterDataService, DashboardService, FinanceHeadService, CommonService, DeliveryHeadService, ProjectRoleService]\r\n})\r\nexport class DashboardComponent implements OnInit {\r\n\r\n resources = servicePath.API.PagingConfigValue;\r\n // errorMessage: Message[] = [];\r\n public roleName: string;\r\n public employeeId: number;\r\n public userName: string;\r\n isRejectDialogDisplay: boolean = false;\r\n isRejectReasonValid: boolean = false;\r\n rejectReason: string = \"\";\r\n public dataList: any[] = [];\r\n public detailsList: any[] = [];\r\n public SkillDetails: SkillsData[] = [];\r\n proficiencyLevels: SelectItem[];\r\n public trList: TalentRequisitionHistoryData[] = [];\r\n public trfinaceList: TalentRequisitionHistoryData[] = [];\r\n selectedTR: TalentRequisitionHistoryData;\r\n public itNotificationsList: any[] = [];\r\n public financeNotificationsList: any[] = [];\r\n public adminNotificationsList: any[] = [];\r\n public AssociateKRAs: any[] = [];\r\n public hraList: any[] = [];\r\n public _projectRoleData: ProjectRole;\r\n formSubmitted: boolean = false;\r\n valid: boolean = false;\r\n\r\n AddSkillTitle = \"Edit Skill\";\r\n addSkill: SkillsData = new SkillsData();\r\n\r\n skillDisplay: boolean = false;\r\n saveButton: string = \"Save\";\r\n myForm: FormGroup;\r\n UserRole = '';\r\n\r\n showNotifications: boolean = false;\r\n public HRcnt: number;\r\n isVisible: boolean;\r\n isDisplay: boolean;\r\n isFinanceDisplay: boolean;\r\n isAdminDisplay: boolean;\r\n isHRADisplay: boolean;\r\n isEmployeeSkill: boolean;\r\n pageSize: number;\r\n _visibleRowCount = 5;\r\n public roleList: string[] = [];\r\n public employeeCode: any;\r\n componentName: string;\r\n name: string;\r\n isAuthorised: boolean = true;\r\n authorizedFinanceHead: boolean = false;\r\n departmentHeadList: KraSetData[] = [];\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n\r\n displayedColumns: string[] = ['NotificationType', 'EmpCode', 'EmpName', 'HRAdvisor', 'Download', 'Approve', 'Reject', 'Edit'];\r\n displayedColumnshra: string[] = ['NotificationType', 'EmpCode', 'EmpName', 'Remarks'];\r\n\r\n dataSource = new MatTableDataSource();\r\n \r\n\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort;\r\n\r\n\r\n // sort;\r\n // @ViewChild(MatSort, {static: false}) set content(content: ElementRef) {\r\n // this.sort = content;\r\n // if (this.sort){\r\n // this.dataSource.sort = this.sort;\r\n // }\r\n // }\r\n \r\n // applyFilterhra(event: Event) {\r\n // if (event) {\r\n // const filterValue = (event.target as HTMLInputElement).value;\r\n // this.dataSourcehra.filter = filterValue.trim().toLowerCase();\r\n // } else {\r\n // this.dataSourcehra = new MatTableDataSource(this.dataSourcehra.data);\r\n // }\r\n // if (this.dataSourcehra.paginator) {\r\n // this.dataSourcehra.paginator.firstPage();\r\n // }\r\n // this.dataSourcehra.paginator = this.paginator;\r\n // this.dataSourcehra.sort = this.sort;\r\n // }\r\n\r\n constructor(private _router: Router, public fb: FormBuilder, private actRoute: ActivatedRoute\r\n ,private masterDataService: MasterDataService,private _common: CommonService\r\n , private _projectService: ProjectRoleService\r\n , private _deliveryHeadService: DeliveryHeadService\r\n , private _financeHeadService: FinanceHeadService, private _dashboardService: DashboardService,\r\n private _snackBar: MatSnackBar,\r\n public navService: NavService,\r\n private spinner: NgxSpinnerService,\r\n private dialog?: MatDialog,\r\n ) {\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n // this.applyFilterhra(responseData);\r\n });\r\n\r\n this.componentName = this.actRoute.routeConfig.component.name;\r\n this.PageSize = this.resources.PageSize;\r\n this.PageDropDown = this.resources.PageDropDown;\r\n\r\n this.myForm = this.fb.group({\r\n 'experienceInMonths': [null],\r\n 'LastUsed': [null],\r\n 'isPrimary': [null],\r\n 'empName': [null],\r\n 'skillName': [null],\r\n 'ProficiencyLevel': [null, [Validators.required]],\r\n 'statusCode': [null],\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.UserRole = JSON.parse(sessionStorage['AssociatePortal_UserInformation']).roleName;\r\n this.userName = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).email;\r\n if (this.validateUser()) {\r\n this.roleName = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).roleName;\r\n this.employeeId = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).employeeId;\r\n\r\n this.isDisplay = false;\r\n this.isFinanceDisplay = false;\r\n this.isAdminDisplay = false;\r\n this.isHRADisplay = false;\r\n this.isEmployeeSkill = false;\r\n this.isVisible = false;\r\n this.pageSize = this._visibleRowCount;\r\n this.getCount();\r\n this.ShowHide();\r\n this.getProficiencyLevels();\r\n\r\n }\r\n else {\r\n this._router.navigate([\"/login\"]);\r\n }\r\n\r\n\r\n setTimeout(() => {\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n } , 500);\r\n }\r\n \r\n\r\n // cols = [\r\n // { field: 'NotificationType', header: 'Notification Type' },\r\n // { field: 'EmpCode', header: 'Employee Code' },\r\n // { field: 'EmpName', header: 'Name' },\r\n // { field: 'HRAdvisor', header: 'HR Advisor' },\r\n // ];\r\n\r\n validateUser(): boolean {\r\n if (this.userName == undefined || (this.userName == \"\")) {\r\n return false;\r\n }\r\n else\r\n return true;\r\n }\r\n\r\n getCount() {\r\n // this._dashboardService.getDashboardNotificationCount().subscribe((res: number) => {\r\n // this.HRcnt = res;\r\n // }, (error) => {\r\n // swal(\"Failed to get the notifications count\", error._body, \"error\");\r\n // });\r\n }\r\n\r\n getProficiencyLevels(): void {\r\n\r\n this.masterDataService.GetProficiencyLevels().subscribe(\r\n (res: SkillsData[]) => {\r\n this.proficiencyLevels = [];\r\n let resultData: SkillsData[] = res;\r\n this.proficiencyLevels.push({\r\n label: \"Select Proficiency Level\",\r\n value: null\r\n });\r\n resultData.forEach(element => {\r\n this.proficiencyLevels.push({\r\n label: element.Name,\r\n value: element.ID\r\n });\r\n });\r\n },\r\n (error: any) => {\r\n if (error._body != undefined && error._body != \"\")\r\n // this._common\r\n // .LogError(this.componentName, error._body)\r\n // .then((data: any) => { });\r\n var comment;\r\n // this.errorMessage = [];\r\n // this.errorMessage.push({\r\n // severity: \"error\",\r\n // summary: \"Failed to Get Proficiency Level List!\"\r\n // });\r\n }\r\n );\r\n }\r\n\r\n ShowHide(): void {\r\n this.roleList = this.roleName.split(',');\r\n this.roleList.forEach(roleName => {\r\n this.name = roleName.toUpperCase();\r\n if (this.name == \"HRM\") {\r\n this.isDisplay = false;\r\n this.isFinanceDisplay = false;\r\n this.isAdminDisplay = false;\r\n this.isEmployeeSkill = false;\r\n this.isVisible = true;\r\n this.getHRHeadDetails();\r\n }\r\n if (this.name == \"RM\") {\r\n this.isDisplay = false;\r\n this.isFinanceDisplay = false;\r\n this.isAdminDisplay = false;\r\n this.isVisible = true;\r\n this.isEmployeeSkill = true;\r\n this.getSkillDetails();\r\n }\r\n if (this.name == \"ITHEAD\") {\r\n this.isVisible = false;\r\n this.isFinanceDisplay = false;\r\n this.isAdminDisplay = false;\r\n this.isHRADisplay = false;\r\n this.isEmployeeSkill = false;\r\n this.isDisplay = this.isDisplay ? false : true;\r\n this.getItNotifications();\r\n }\r\n if (this.name == \"FINANCEHEAD\") {\r\n this.isVisible = false;\r\n this.isDisplay = false;\r\n this.isAdminDisplay = false;\r\n this.isHRADisplay = false;\r\n this.isEmployeeSkill = false;\r\n this.isFinanceDisplay = true;\r\n this.getFinanceHeadDetails()\r\n }\r\n if (this.name == \"ADMINHEAD\") {\r\n this.isVisible = false;\r\n this.isDisplay = false;\r\n this.isFinanceDisplay = false;\r\n this.isHRADisplay = false;\r\n this.isEmployeeSkill = false;\r\n this.isAdminDisplay = true;\r\n this.getAdminNotifications();\r\n }\r\n if (this.name == \"HRA\") {\r\n this.isDisplay = false;\r\n this.isFinanceDisplay = false;\r\n this.isAdminDisplay = false;\r\n this.isEmployeeSkill = false;\r\n this.isHRADisplay = true;\r\n this.getHRANotifications();\r\n }\r\n if (this.name == \"SYSTEMADMIN\") {\r\n }\r\n if (this.name == \"PROGRAM MANAGER\") {\r\n\r\n }\r\n // commented in angular 2\r\n // if (this.name == \"DEPARTMENT HEAD\") {\r\n // this.isDepartmentHead = true;\r\n // this.getDepartmentHeadDetails()\r\n // }\r\n // if (this.name == \"KRACONFIGURATOR\") {\r\n // this.isKRAConfigurator = true;\r\n // this.getKRAConfiguratordetails()\r\n // }\r\n // if (this.name == \"MD\") {\r\n // this.isMDDisplay = true;\r\n // this.getPendingKrasForMD();\r\n // }\r\n });\r\n // this.getTalentRequisitionDeatils();\r\n }\r\n\r\n getHRHeadDetails() {\r\n this._dashboardService.getHRHeadDetails().subscribe((res: any[]) => {\r\n this.detailsList = res;\r\n this.dataSource.data = res;\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n });\r\n }\r\n\r\n getSkillDetails() {\r\n this._dashboardService.getSkillDetails().subscribe((res: SkillsData[]) => {\r\n this.SkillDetails = res;\r\n });\r\n }\r\n\r\n getItNotifications() {\r\n this._dashboardService.getItNotifications().subscribe((res: any[]) => {\r\n this.itNotificationsList = res\r\n }, (error) => {\r\n this._snackBar.open(\"Failed to get the IT notifications\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // swal(\"Failed to get the IT notifications\", error._body, \"error\");\r\n // this.messageService.add({ severity: \"error\", summary: \"error Message\", detail: \"Failed to get the IT notifications\" + error._body + \"error\" });\r\n });\r\n }\r\n getFinanceNotifications() {\r\n this._dashboardService.getFinanceNotifications().subscribe((res: any[]) => {\r\n this.financeNotificationsList = res\r\n }, (error) => {\r\n this._snackBar.open(\"Failed to get the Finance notifications\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // swal(\"Failed to get the Finance notifications\", error._body, \"error\");\r\n // this.messageService.add({ severity: \"error\", summary: \"error Message\", detail: \"Failed to get the Finance notifications \" + error._body + \"error\" });\r\n\r\n });\r\n }\r\n getAdminNotifications() {\r\n this._dashboardService.getAdminNotifications().subscribe((res: any[]) => {\r\n this.adminNotificationsList = res\r\n }, (error) => {\r\n this._snackBar.open(\"Failed to get the Admin notifications\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({ severity: \"error\", summary: \"error Message\", detail: \"Failed to get the Admin notifications\" + error._body + \"error\" });\r\n\r\n //swal(\"Failed to get the Admin notifications\", error._body, \"error\");\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.dataSource.sort = this.sort;\r\n }\r\n\r\n getHRANotifications() {\r\n this._dashboardService.getHRANotifications().subscribe((res: any[]) => {\r\n this.hraList = res;\r\n this.dataSource.data = res;\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }, (error) => {\r\n this._snackBar.open(\"Failed to get the HRA notifications\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({ severity: \"error\", summary: \"error Message\", detail: \"Failed to get the HRA notifications\" + error._body + \"error\" });\r\n //swal(\"Failed to get the HRA notifications\", error._body, \"error\");\r\n });\r\n }\r\n\r\n getFinanceHeadDetails(): void {\r\n this._financeHeadService.GetPendingRequisitionsForApproval().subscribe((res: TalentRequisitionHistoryData[]) => {\r\n if (res.length == 0)\r\n this.authorizedFinanceHead = false;\r\n else {\r\n this.authorizedFinanceHead = true;\r\n this.trfinaceList = res;\r\n this.trfinaceList.forEach((tr: TalentRequisitionHistoryData) => {\r\n tr.RequestedDate = moment(tr.RequestedDate).format('YYYY-MM-DD');\r\n });\r\n }\r\n },\r\n (error) => {\r\n if (error._body != undefined && error._body != \"\")\r\n this._common.LogError(this.componentName, error._body).subscribe((data: any) => {\r\n });\r\n this._snackBar.open(\"Failed to get Pending Requisitions for Approval List !\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({ severity: \"error\", summary: \"error Message\", detail: \"Failed to get Pending Requisitions for Approval List ! error\" });\r\n\r\n //swal(\"\", \"Failed to get Pending Requisitions for Approval List !\", \"error\");\r\n });\r\n }\r\n\r\n getTalentRequisitionDeatils(): void {\r\n this._deliveryHeadService.GetPendingRequisitionsForApproval().subscribe((res: TalentRequisitionHistoryData[]) => {\r\n if (res.length != 0) {\r\n if (res[0].TRCode == null)\r\n this.isAuthorised = false;\r\n else\r\n this.trList = res;\r\n this.trList.forEach((tr: TalentRequisitionHistoryData) => {\r\n if (tr.RequisitionType == 25)\r\n tr.RequisitionTypeName = \"New Request\";\r\n else if (tr.RequisitionType == 26)\r\n tr.RequisitionTypeName = \"Replacement\";\r\n tr.RequestedDate = moment(tr.RequestedDate).format('YYYY-MM-DD');\r\n });\r\n }\r\n },\r\n (error) => {\r\n if (error._body != undefined && error._body != \"\")\r\n this._common.LogError(this.componentName, error._body).subscribe((data: any) => {\r\n });\r\n this._snackBar.open(\"Failed to get the IT notifications\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({ severity: \"error\", summary: \"error Message\", detail: \"Failed to get Pending Requisitions for Approval List ! error\" });\r\n\r\n //swal(\"\", \"Failed to get Pending Requisitions for Approval List !\", \"error\");\r\n });\r\n }\r\n selectedTRCode(selectedData: TalentRequisitionHistoryData) {\r\n sessionStorage[\"DeliveryHeadDashboardTalentRequisitionCode\"] = selectedData.TRCode;\r\n sessionStorage[\"DeliveryHeadDashboardTalentRequisitionType\"] = selectedData.RequisitionType;\r\n this._router.navigate(['ap/dashboard/talentrequisition-details/', selectedData.TalentRequisitionId]);\r\n }\r\n\r\n onEditSkillDetils(selectedData: SkillsData): void {\r\n this.AddSkillTitle = \"Edit Skill Data\"\r\n this.saveButton = \"Update\";\r\n\r\n this.skillDisplay = true;\r\n this.addSkill = new SkillsData();\r\n if (selectedData.SkillsSubmittedForApprovalId) {\r\n this.addSkill.SkillsSubmittedForApprovalId = selectedData.SkillsSubmittedForApprovalId;\r\n }\r\n if (selectedData.WorkFlowId) {\r\n this.addSkill.WorkFlowId = selectedData.WorkFlowId;\r\n }\r\n if (selectedData.SkillName) {\r\n this.addSkill.SkillName = selectedData.SkillName;\r\n this.addSkill.skillID = selectedData.skillID;\r\n }\r\n if (selectedData.EmployeeName) {\r\n this.addSkill.EmployeeName = selectedData.EmployeeName;\r\n this.addSkill.empID = selectedData.empID;\r\n }\r\n if (selectedData.CompetencyAreaID) {\r\n this.addSkill.CompetencyAreaID = selectedData.CompetencyAreaID;\r\n }\r\n if (selectedData.SkillGroupID) {\r\n this.addSkill.SkillGroupID = selectedData.SkillGroupID;\r\n }\r\n if (selectedData.proficiencyLevelId) {\r\n this.addSkill.ProficiencyLevel = selectedData.ProficiencyLevel;\r\n this.addSkill.proficiencyLevelId = selectedData.proficiencyLevelId;\r\n }\r\n if (selectedData.LastUsed)\r\n this.addSkill.LastUsed = selectedData.LastUsed;\r\n if (selectedData.experience)\r\n this.addSkill.experience = selectedData.experience;\r\n if (selectedData.StatusCode) {\r\n this.addSkill.StatusCode = selectedData.StatusCode;\r\n }\r\n this.addSkill.IsPrimary = selectedData.IsPrimary;\r\n //this.addSkill.SubmittedTo = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).employeeId;\r\n }\r\n\r\n resetForm(): void {\r\n this.formSubmitted = false;\r\n this.valid = false;\r\n this.myForm.reset();\r\n\r\n // if (this.saveButton == \"Save\") { \r\n // this.addClientBillingRole = new ClientBillingRole();\r\n // this.addClientBillingRole = {\r\n // ClientBillingRoleCode: \"\",\r\n // ClientBillingRoleId: null,\r\n // ClientBillingRoleName: \"\",\r\n // ClientId: null,\r\n // ClientName: \"\" \r\n // }; \r\n\r\n // } \r\n\r\n }\r\n saveEmployeeSkill(skillsData: SkillsData): void {\r\n this.formSubmitted = true;\r\n let numberRegex = /^[a-zA-Z][a-zA-Z-&,\\s]*$/;\r\n if (!this.myForm.valid) {\r\n if (skillsData.SkillName == \"\") return;\r\n if (skillsData.skillID == 0) return;\r\n }\r\n\r\n this._dashboardService.CreateEmployeeSkill(skillsData).subscribe(\r\n (response: boolean) => {\r\n if (response == true) {\r\n this._snackBar.open(\"Failed to get the IT notifications\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({ severity: \"success\", summary: \"Success Message\", detail: \"Employee skill approved successfully\" });\r\n\r\n // this.growlerrormessage(\"success\", \"Employee skill approved successfully\", \"\");\r\n this.resetForm();\r\n this.skillDisplay = false;\r\n this.getSkillDetails();\r\n } else if (response == false) {\r\n this._snackBar.open(\"Failed to get the IT notifications\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({ severity: \"error\", summary: \"error Message\", detail: \"Employee skill is already exists.\" });\r\n // this.growlerrormessage(\"error\", \"Employee skill is already exists\", \"\");\r\n } else {\r\n this._snackBar.open(\"Failed to get the IT notifications\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({ severity: \"error\", summary: \"error Message\", detail: \"Failed to Crate Employee skill.\" });\r\n // this.growlerrormessage(\"error\", \"Failed to Crate Employee skill.\", \"\");\r\n }\r\n },\r\n error => {\r\n if (error._body != undefined && error._body != \"\")\r\n this._common\r\n .LogError(this.componentName, error._body)\r\n .subscribe((data: any) => { });\r\n this._snackBar.open(\"Failed to approve skill\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({ severity: \"error\", summary: \"error Message\", detail: \"Failed to approve skill.\" });\r\n\r\n // this.growlerrormessage(\"error\", \"Failed to approve skill.\", \"\");\r\n }\r\n );\r\n }\r\n\r\n getRolesNotifications() {\r\n this._projectService.GetRoleNotifications(this.employeeId).subscribe((res: any[]) => {\r\n this.dataList = res\r\n jQuery('#notificationCount').html(res.length);\r\n jQuery('#notificationCount1').html('You have' + res.length + 'notifications');\r\n });\r\n }\r\n approveProjectRole(selectedData: any) {\r\n let _projectRoleParam = new ProjectRoleParam();\r\n _projectRoleParam.ProjectRoleData = selectedData;\r\n _projectRoleParam.Status = \"RoleApproved\";\r\n this._projectService.RoleApproval(_projectRoleParam).subscribe((data) => {\r\n this._snackBar.open(\"Role approved successfully\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n \r\n // swal(\"\", 'Role approved successfully', \"success\");\r\n // this.messageService.add({ severity: \"success\", summary: \"Success Message\", detail: \"Role approved successfully\" });\r\n\r\n this.getRolesNotifications();\r\n }, (error) => {\r\n this._snackBar.open(\"Failed to approve the data\" , 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // swal(\"Failed to approve the data\", error._body, \"error\");\r\n // this.messageService.add({ severity: \"error\", summary: \"error Message\", detail: \"Failed to approve the data\" + error._body + \"error\" });\r\n\r\n });\r\n }\r\n\r\n rejectProjectRole(selectedRowData: any) {\r\n this.isRejectDialogDisplay = true;\r\n this._projectRoleData = new ProjectRole();\r\n this._projectRoleData = selectedRowData;\r\n }\r\n RejectReasonSubmit() {\r\n if (this.rejectReason == \"\")\r\n this.isRejectReasonValid = true;\r\n else {\r\n let _projectRoleParam = new ProjectRoleParam();\r\n _projectRoleParam.ProjectRoleData = this._projectRoleData;\r\n _projectRoleParam.ProjectRoleData.RejectReason = this.rejectReason;\r\n _projectRoleParam.Status = \"RoleChangeRejected\";\r\n this._projectService.RoleRejection(_projectRoleParam).subscribe((data) => {\r\n this._snackBar.open(\"Role change notification rejected successfully\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // swal(\"\", 'Role change notification rejected successfully', \"success\");\r\n // this.messageService.add({ severity: \"success\", summary: \"Success Message\", detail: \"Role change notification rejected successfully\" });\r\n\r\n this.getRolesNotifications();\r\n this.rejectReason = \"\";\r\n }, (error) => {\r\n this._snackBar.open(\"Failed to reject the notification\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({ severity: \"error\", summary: \"error Message\", detail: \"Failed to reject the notification\" + error._body + \"error\" });\r\n\r\n //swal(\"Failed to reject the notification\", error._body, \"error\");\r\n });\r\n this.isRejectDialogDisplay = false;\r\n }\r\n }\r\n\r\n updateItStatus(empCode: string, taskId: string) {\r\n this._dashboardService.updateItStatus(empCode, taskId).subscribe((data) => {\r\n this.getCount();\r\n this.getItNotifications();\r\n }, (error) => {\r\n this._snackBar.open(\"Failed to update the IT status\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({ severity: \"error\", summary: \"error Message\", detail: \"Failed to update the IT status\" + error._body + \"error\" });\r\n\r\n //swal(\"Failed to update the IT status\", error._body, \"error\");\r\n });\r\n }\r\n updateFinanceStatus(empCode: string, taskId: string) {\r\n this._dashboardService.updateFinanceStatus(empCode, taskId).subscribe((data) => {\r\n this.getCount();\r\n }, (error) => {\r\n this._snackBar.open(\"Failed to update the Finance status\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({ severity: \"error\", summary: \"error Message\", detail: \"Failed to update the Finance status\" + error._body + \"error\" });\r\n // swal(\"Failed to update the Finance status\", error._body, \"error\");\r\n });\r\n }\r\n updateAdminStatus(empCode: string, taskId: string) {\r\n this._dashboardService.updateAdminStatus(empCode, taskId).subscribe((data) => {\r\n this.getCount();\r\n this.getAdminNotifications();\r\n }, (error) => {\r\n this._snackBar.open(\"Failed to update the Admin status\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({ severity: \"error\", summary: \"error Message\", detail: \"Failed to update the Admin status\" + error._body + \"error\" });\r\n // swal(\"Failed to update the Admin status\", error._body, \"error\");\r\n });\r\n }\r\n generatePDF(id: number) {\r\n\r\n this._dashboardService.GetAssociateCodeByEmpID(id).subscribe((res: any) => { this.employeeCode = res.EmployeeCode; });\r\n\r\n this._dashboardService.generatePDF(id).subscribe((data: ArrayBuffer) => {\r\n if (data.byteLength > 0) {\r\n var mediaType = 'application/pdf';\r\n var blob = new Blob([data], { type: mediaType });\r\n var url = window.URL;\r\n var fileURL = url.createObjectURL(blob);\r\n\r\n var downloadLink = document.createElement('a');\r\n downloadLink.href = fileURL;\r\n downloadLink.target = '_self';\r\n\r\n downloadLink.download = this.employeeCode + '.pdf';\r\n document.body.appendChild(downloadLink);\r\n downloadLink.click();\r\n }\r\n }, (error) => {\r\n this._snackBar.open(\"Failed to download the report\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({ severity: \"error\", summary: \"Error Message\", detail: \"Failed to download the report \" + error._body + \" error\" });\r\n });\r\n }\r\n\r\n profileApproval(id: number, action: string, reason: string) {\r\n //Reason is not mandatory while approving employee profile so commenting the below code\r\n // if (reason == null) {\r\n // this._snackBar.open(\"Please provode reason\", 'x', {\r\n // duration: 1000,\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // });\r\n // this.messageService.add({ severity: \"warn\", summary: \"Warn Message\", detail: \"Please provide Reason\" });\r\n // }\r\n this.spinner.show();\r\n var empID = id;\r\n let reqType: any;\r\n if (action == \"Approved\") {\r\n reqType = \"Approved\";\r\n }\r\n else {\r\n reqType = \"Rejected\";\r\n }\r\n this._dashboardService.profileApproval(id, action, reason).subscribe((data) => {\r\n this.spinner.hide();\r\n this._snackBar.open('Employee profile ' + reqType + ' successfully', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({ severity: \"success\", summary: \"Success Message\", detail: \"Employee profile \" + reqType + \" successfully\" });\r\n this.getHRHeadDetails();\r\n }, (error) => {\r\n this.spinner.hide();\r\n this._snackBar.open(\"Something went wrong.\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({ severity: \"error\", summary: \"error Message\", detail: \"Something went wrong.\\nPlease try after some time\" + error._body + \"error\" });\r\n\r\n });\r\n }\r\n rejectConfirmation(empID: number, index: number) {\r\n this.employeeId = empID;\r\n this.isRejectDialogDisplay = true;\r\n this.isRejectReasonValid = false;\r\n const dialogRef = this.dialog.open(RejectDialogComponent, {\r\n disableClose: true,\r\n data: {}\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n // this.closeProject();\r\n if(result){\r\n this.rejectReason = result.rejectReason;\r\n }\r\n else{\r\n this.rejectReason = '';\r\n return;\r\n }\r\n if(this.isVisible && this.rejectReason!=\"\" && this.rejectReason!=null ){\r\n \r\n this.rejectWithReasonSubmit();\r\n\r\n }else if(this.rejectReason!=\"\" && this.rejectReason!=null){\r\n this.RejectReasonSubmit();\r\n\r\n }\r\n \r\n });\r\n\r\n }\r\n rejectWithReasonSubmit() {\r\n if (this.rejectReason == \"\")\r\n this.isRejectReasonValid = true;\r\n else {\r\n this.profileApproval(this.employeeId, \"reject\", this.rejectReason);\r\n this.rejectReason = \"\";\r\n this.isRejectDialogDisplay = false;\r\n }\r\n }\r\n\r\n openProfile(event: any) {\r\n this._router.navigate(['associates/prospectivetoassociate/edit/' + event.EmpId + '/EPU']);\r\n }\r\n\r\n viewRequisition(selectedData: TalentRequisitionHistoryData) {\r\n sessionStorage[\"DeliveryHeadDashboardTalentRequisitionCode\"] = selectedData.TRCode;\r\n sessionStorage[\"RequisitionForProject\"] = selectedData.ProjectName;\r\n this._router.navigate(['ap/dashboard/talent-requisition-details/', selectedData.TalentRequisitionId]);\r\n }\r\n onProfile(currentAssociate: any) {\r\n let subType = \"EPU\";\r\n let currentID = currentAssociate.EmpId;\r\n let notificationType = currentAssociate.notificationType;\r\n this._router.navigate([\"associates/prospectivetoassociate/edit/\" + currentID + \"/\" + subType]);\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.dataSource.data);\r\n }\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n}\r\n","
\r\n\r\n \r\n \r\n
\r\n \r\n \r\n \r\n Notification Type\r\n \r\n \r\n {{ element.NotificationType }}\r\n \r\n \r\n \r\n \r\n Employee Code\r\n \r\n \r\n {{ element.EmpCode }}\r\n \r\n \r\n \r\n \r\n \r\n Name\r\n \r\n \r\n {{ element.EmpName }}\r\n \r\n \r\n \r\n \r\n HR Advisor\r\n \r\n \r\n {{ element.HRAdvisor }}\r\n \r\n \r\n \r\n \r\n Download\r\n \r\n \r\n save\r\n \r\n \r\n \r\n \r\n Approve\r\n \r\n \r\n check\r\n \r\n \r\n \r\n \r\n \r\n Reject\r\n \r\n \r\n clear\r\n \r\n \r\n \r\n \r\n Edit\r\n \r\n \r\n edit\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 \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
\r\n Notification Type\r\n \r\n {{ element.NotificationType }}\r\n Employee Code\r\n \r\n {{ element.EmpCode }} \r\n Name\r\n \r\n {{ element.EmpName }}\r\n Remarks\r\n \r\n {{ element.Remarks }}\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
\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 \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
\r\n \r\n \r\n \r\n

Loading ...

\r\n\r\n \r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { DashboardService } from '../../services/dashboard.service';\r\n// import { MessageService } from \"primeng/components/common/messageservice\";\r\nimport { DeliveryHeadService } from '../../services/delivery-head.service';\r\nimport { ProjectsData } from 'src/app/modules/master-layout/models/projects.model';\r\nimport * as moment from 'moment';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { ProjectCreationService } from \"../../../project-life-cycle/services/project-creation.service\";\r\nimport { Router } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { AssociateExitDashboardService } from '../../services/associate-exit-dashboard.service';\r\nimport { ResignastionService } from 'src/app/modules/AssociateExit/Services/resignastion.service';\r\nimport { PmApprovalService } from 'src/app/modules/AssociateExit/Services/pm-approval.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { CommonDialogComponent } from '../common-dialog/common-dialog.component';\r\n\r\n@Component({\r\n selector: 'app-department-head-dashboard',\r\n templateUrl: './department-head-dashboard.component.html',\r\n styleUrls: ['./department-head-dashboard.component.scss'],\r\n // providers: [MessageService]\r\n})\r\nexport class DepartmentHeadDashboardComponent implements OnInit {\r\n EmpId: number;\r\n roleName: string;\r\n dashboard: string = 'DHDashboard';\r\n ProjectsList: ProjectsData[];\r\n PageSize: number;\r\n editMode: boolean;\r\n PageDropDown: number[] = [];\r\n resources = servicePath.API.PagingConfigValue;\r\n editModeSubscription: Subscription;\r\n dataSource = new MatTableDataSource();\r\n disablestyles = { 'opacity': '0.6', 'pointer-events': 'none'}\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild('exitPaginator', { static: true }) exitPaginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n cols = [\r\n { field: 'ProjectName', header: 'Project Name' },\r\n { field: 'ManagerName', header: 'Program Manager' },\r\n { field: 'PracticeAreaCode', header: 'Technology' },\r\n { field: 'ClientName', header: 'Client Name' },\r\n { field: 'ActualStartDate', header: 'Start Date' },\r\n { field: 'ProjectState', header: 'Status' },\r\n ];\r\n displayedColumns: string[] = [\r\n 'ProjectName',\r\n 'ManagerName',\r\n 'PracticeAreaCode',\r\n 'ClientName',\r\n 'ActualStartDate',\r\n 'ProjectState',\r\n 'Edit',\r\n 'View',\r\n ];\r\n columnsToDisplay: string[] = this.displayedColumns.slice();\r\n displayColumnsAssociateExit = ['EmployeeCode','EmployeeName','Designation','ExitDate','StatusCode','Action'];\r\n dataSourceAssociateExit: MatTableDataSource;\r\n dialogResponse:boolean;\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.dataSource.data);\r\n }\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n constructor(\r\n private _deliveryHeadService: DeliveryHeadService,\r\n // private messageService: MessageService,\r\n private route: Router,\r\n private ProjectCreationServiceObj: ProjectCreationService,\r\n private _snackBar: MatSnackBar,\r\n public navService: NavService,\r\n private spinner: NgxSpinnerService,\r\n private _associateExitDashboardService: AssociateExitDashboardService,\r\n public _resignationService: ResignastionService,\r\n private _pmApprovalService : PmApprovalService,\r\n public dialog: MatDialog,\r\n ) {\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.spinner.show();\r\n this.GetProjectsList();\r\n // this.GetAssociateExitList();\r\n this.editModeSubscription = this.ProjectCreationServiceObj.GetEditMode().subscribe(\r\n (data) => {\r\n this.editMode = data;\r\n }\r\n );\r\n }\r\n\r\n GetProjectsList(): void {\r\n this.roleName = JSON.parse(\r\n sessionStorage['AssociatePortal_UserInformation']\r\n ).roleName;\r\n this.EmpId = JSON.parse(\r\n sessionStorage['AssociatePortal_UserInformation']\r\n ).employeeId;\r\n\r\n // this.EmpId = JSON.parse(sessionStorage['AssociatePortal_UserInformation']).employeeId;\r\n this._deliveryHeadService\r\n .GetProjectsList(this.roleName, this.EmpId, this.dashboard)\r\n .toPromise().then((res: ProjectsData[]) => {\r\n this.ModifyDateFormat(res);\r\n this.dataSource.data = res;\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.spinner.hide();\r\n }).catch(error=>{\r\n this.spinner.hide();\r\n // this._snackBar.open('An error has occurred. Please contact administration.', 'x', {\r\n // duration: 2000,\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // });\r\n });;\r\n }\r\n\r\n ModifyDateFormat(data: ProjectsData[]): void {\r\n data.forEach((e) => {\r\n if (e.ActualStartDate != null) {\r\n e.ActualStartDate = moment(e.ActualStartDate).format('MM/DD/YYYY');\r\n }\r\n if (e.ActualEndDate != null) {\r\n e.ActualEndDate = moment(e.ActualEndDate).format('MM/DD/YYYY');\r\n }\r\n if (e.PlannedStartDate != null) {\r\n e.PlannedStartDate = moment(e.PlannedStartDate).format('MM/DD/YYYY');\r\n }\r\n if (e.PlannedEndDate != null) {\r\n e.PlannedEndDate = moment(e.PlannedEndDate).format('MM/DD/YYYY');\r\n }\r\n });\r\n this.ProjectsList = data;\r\n }\r\n\r\n EditProject(ProjectObject: ProjectsData): void {\r\n this.ProjectCreationServiceObj.SetSeletedTab(0);\r\n this.ProjectCreationServiceObj.SetEditMode(true);\r\n this.ProjectCreationServiceObj.SetProjectId(ProjectObject.ProjectId);\r\n this.route.navigate(['/project/addproject/' + this.dashboard]);\r\n }\r\n\r\n ViewProject(ProjectObject: ProjectsData) {\r\n if(ProjectObject.ProjectState===\"SubmittedForClosureApproval\"){\r\n this.ProjectCreationServiceObj.SetProjectId(ProjectObject.ProjectId);\r\n this.route.navigate(['project/projectclosure/' + this.dashboard]);\r\n } else{\r\n this.ProjectCreationServiceObj.SetProjectId(ProjectObject.ProjectId);\r\n this.route.navigate(['/project/view/' + this.dashboard]);\r\n }\r\n \r\n }\r\n\r\n canViewEdit(ProjectObject: ProjectsData){\r\n if(ProjectObject.ProjectState!=='SubmittedForApproval')\r\n return this.disablestyles;\r\n\r\n return { 'cursor':'pointer' };\r\n \r\n }\r\n\r\n ngOnDestroy() {\r\n this.editModeSubscription.unsubscribe();\r\n }\r\n\r\n // GetAssociateExitList():void{\r\n // this._associateExitDashboardService.getAssociateExitDashbaord(this.roleName, this.EmpId, this.dashboard).subscribe((res: any[]) => {\r\n // res.forEach(e => { e.ExitDate = moment(e.ExitDate).format(\"MM/DD/YYYY\"); \r\n // if(e.StatusCode == \"RevokeInitiated\"){\r\n // this._resignationService.getExitDetailsById(e.EmployeeId).subscribe((res:any)=>{ \r\n // e.WithdrawReason = res.WithdrawReason;\r\n // });\r\n // } });\r\n // this.dataSourceAssociateExit = new MatTableDataSource(res);\r\n // this.dataSourceAssociateExit.paginator = this.exitPaginator\r\n // this.dataSourceAssociateExit.sort = this.sort;\r\n // });\r\n \r\n // }\r\n\r\n viewResignationDets(selectedData : any){\r\n this.route.navigate(['/associateexit/pmApproval/' + selectedData.EmployeeId]);\r\n \r\n }\r\n\r\n revokeResignation(selectedData : any, SubmitType : string) {\r\n if(SubmitType == \"Approve\")\r\n this.openDialog('Confirmation','Are you sure you want to Approve the Revoke?',selectedData,SubmitType);\r\n else\r\n this.openDialog('Confirmation','Are you sure you want to Reject the Revoke?',selectedData,SubmitType);\r\n }\r\n\r\n\r\n openDialog(Heading,Message,selectedData,SubmitType): void {\r\n const dialogRef = this.dialog.open(CommonDialogComponent, {\r\n width: '300px',\r\n disableClose: true,\r\n data: {heading: Heading, message: Message}\r\n });\r\n \r\n dialogRef.afterClosed().subscribe(result => {\r\n this.dialogResponse = result;\r\n if(this.dialogResponse==true){\r\n\r\n \r\n let submitData = {\r\n EmployeeId : selectedData.EmployeeId,\r\n SubmitType : SubmitType\r\n } \r\n this._pmApprovalService.ApproveOrRejectRevoke(submitData).subscribe(res=>{\r\n if(res){\r\n if(submitData.SubmitType == 'Approve'){\r\n this._snackBar.open('Revoke Approved successfully.', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n else if(submitData.SubmitType == 'Reject'){\r\n this._snackBar.open('Revoke Rejected successfully.', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n \r\n }\r\n // this.GetAssociateExitList();\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 Project Name\r\n \r\n \r\n {{ element.ProjectName }}\r\n \r\n \r\n\r\n \r\n \r\n Project Manager\r\n \r\n \r\n {{ element.ManagerName }}\r\n \r\n \r\n\r\n \r\n \r\n Technology\r\n \r\n \r\n {{ element.PracticeAreaCode }}\r\n \r\n \r\n\r\n \r\n \r\n Client Name\r\n \r\n \r\n {{ element.ClientName }}\r\n \r\n \r\n \r\n \r\n Start Date\r\n \r\n \r\n {{ element.ActualStartDate }}\r\n \r\n \r\n \r\n \r\n Status\r\n \r\n \r\n {{ element.ProjectState }}\r\n \r\n \r\n\r\n \r\n \r\n Edit\r\n \r\n \r\n edit\r\n \r\n \r\n\r\n \r\n \r\n View\r\n \r\n \r\n visibility\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 { Component, Inject, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MasterDataService } from 'src/app/core/services/masterdata.service';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { SkillsService } from 'src/app/modules/onboarding/services/skills.service';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { Router } from '@angular/router';\r\n\r\ninterface SelectItem {\r\n value: number;\r\n label: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-edit-skill-dialog',\r\n templateUrl: './edit-skill-dialog.component.html',\r\n styleUrls: ['./edit-skill-dialog.component.scss']\r\n})\r\nexport class EditSkillDialogComponent implements OnInit {\r\n\r\n proficiencyLevels: SelectItem[] = [];\r\n totalProficiencyLevelsData;\r\n editProficiency: FormGroup;\r\n skillObj: any;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n constructor(private masterService: MasterDataService,\r\n private route: Router,\r\n private dialogRef: MatDialogRef,\r\n private skillservice: SkillsService,\r\n private _snackBar: MatSnackBar,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private formBuilder: FormBuilder) {\r\n this.skillObj = this.data['skillData'];\r\n }\r\n\r\n ngOnInit(): void {\r\n this.GetProficiencyList();\r\n this.editProficiency = new FormGroup({\r\n ProficiencyLevelId: new FormControl(this.skillObj['ProficiencyIDByRM']),\r\n Remarks: new FormControl(this.skillObj['Remarks'])\r\n });\r\n }\r\n GetProficiencyList() {\r\n this.masterService.GetProficiencyLevels().subscribe(res => {\r\n this.proficiencyLevels = [];\r\n this.totalProficiencyLevelsData = [];\r\n this.totalProficiencyLevelsData = res;\r\n this.totalProficiencyLevelsData = res;\r\n // this.indexOfBasic = this.totalProficiencyLevelsData.findIndex((x: any) => x.ProficiencyLevelCode === 'Basic');\r\n for (let i = 0; i < res.length; i++) {\r\n this.proficiencyLevels.push({\r\n label: res[i][\"ProficiencyLevelCode\"],\r\n value: res[i][\"ProficiencyLevelId\"]\r\n });\r\n }\r\n });\r\n }\r\n \r\n Update(){\r\n let obj = {\r\n \"reportingManagerRating\":this.editProficiency.value.ProficiencyLevelId,\r\n \"remarks\":this.editProficiency.value.Remarks,\r\n \"employeeId\":this.skillObj['EmployeeId'],\r\n \"EmployeeSkillId\":this.skillObj['Id']\r\n };\r\n this.skillservice.UpdateEmpSkillProficienyByRM(obj).subscribe(res => {\r\n this._snackBar.open('Skill Updated Successfully', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n },\r\n (error)=>{\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n })\r\n this.close();\r\n this.route.navigate(['/shared/submitted-skills/'+this.skillObj['EmployeeId']]);\r\n\r\n }\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","
\r\n

Proficiency

\r\n \r\n \r\n Proficiency Level*\r\n \r\n \r\n {{p.label}} \r\n \r\n \r\n \r\n Remarks\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-hra-dashboard',\r\n templateUrl: './hra-dashboard.component.html',\r\n styleUrls: ['./hra-dashboard.component.scss']\r\n})\r\nexport class HraDashboardComponent implements OnInit {\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n}\r\n","\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-hrm-dashboard',\r\n templateUrl: './hrm-dashboard.component.html',\r\n styleUrls: ['./hrm-dashboard.component.scss']\r\n})\r\nexport class HrmDashboardComponent implements OnInit {\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n \r\n }\r\n\r\n}\r\n","\r\n","import { Component, OnInit, QueryList, ViewChild, ViewChildren } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, FormGroupDirective, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { Observable, ReplaySubject, Subject, Subscription } from 'rxjs';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { MasterDataService } from '../../../../core/services/masterdata.service';\r\nimport { DropDownType, GenericType } from '../../../master-layout/models/dropdowntype.model';\r\n// import { ReportsData } from '../../models/reportsdata.model';\r\n// import { ReportsFilterData, UtilizationReportFilterData } from '../../models/reportsfilter.model';\r\nimport { ProjectsData } from '../../../master-layout/models/projects.model';\r\nimport * as moment from \"moment\";\r\n// import { ResourceReportService } from '../../services/resource-report.service';\r\nimport { NavService } from '../../../master-layout/services/nav.service';\r\nimport { ProjectCreationService } from '../../../project-life-cycle/services/project-creation.service';\r\n\r\ninterface SelectItem {\r\n value : number;\r\n label : string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-hrmassociate-exit',\r\n templateUrl: './hrmassociate-exit.component.html',\r\n styleUrls: ['./hrmassociate-exit.component.scss']\r\n})\r\nexport class HrmassociateExitComponent implements OnInit {\r\n\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n projectId: number;\r\n filteredBanksMulti: ReplaySubject = new ReplaySubject(1);\r\n filteredcols: any[];\r\n displaycolsfields: any[];\r\n displaycols = [];\r\n private _onDestroy = new Subject();\r\n\r\n projectData: ProjectsData;\r\n \r\n\r\n afterSearchFilter: boolean = false;\r\n cols: any[] = [];\r\n columnOptions: any[] = [];\r\n PageSize: number = 5;\r\n PageDropDown: number[] = [];\r\n // private resources = servicePath.API.PagingConfigValue;\r\n componentName: string;\r\n \r\n projectsList: SelectItem[] = [];\r\n associateexitform: FormGroup;\r\n projectIdSubscription: Subscription;\r\n\r\n \r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n\r\n constructor(private _masterDataService: MasterDataService,private _snackBar: MatSnackBar,\r\n private projectCreationService: ProjectCreationService,\r\n public navService: NavService) {\r\n \r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n // this.applyFilter(responseData);\r\n })\r\n // this.PageSize = this.resources.PageSize;\r\n // this.PageDropDown = this.resources.PageDropDown;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.createForm();\r\n this.projectIdSubscription = this.projectCreationService.GetProjectId().subscribe(data => {\r\n this.projectId = data;\r\n });\r\n console.log(this.projectId);\r\n this.GetProjectDetails(); // we need to get refreshed data every time \r\n \r\n \r\n }\r\n\r\n GetProjectDetails() {\r\n if (this.projectId > 0) {\r\n this.GetProjectByID(this.projectId);\r\n // this.GetClientBillingRolesByProjectId(this.projectId);\r\n // this.GetSOWDetailsById(this.projectId);\r\n }\r\n }\r\n private GetProjectByID(currentProjectID: number): void {\r\n this.projectCreationService\r\n .GetProjectDetailsbyID(currentProjectID)\r\n .subscribe(\r\n (projectdata: ProjectsData) => {\r\n this.projectData = projectdata;\r\n this.PopulateForm();\r\n },\r\n error => {\r\n this._snackBar.open(\"Error while getting the project details\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({\r\n // severity: \"error\",\r\n // summary: \"Error message\",\r\n // detail: \"Error while getting the project details\"\r\n // });\r\n }\r\n );\r\n }\r\n ngOnDestroy() {\r\n this._onDestroy.next();\r\n this._onDestroy.complete();\r\n }\r\n \r\n\r\n createForm(){\r\n\r\n this.associateexitform = new FormGroup({\r\n EmployeeId: new FormControl(''),\r\n EmployeeName: new FormControl(''),\r\n DateofJoin: new FormControl(''),\r\n DesignationId: new FormControl(''),\r\n TotalService: new FormControl(''),\r\n ProjectId: new FormControl(''),\r\n ExperienceId: new FormControl(''),\r\n GradeId: new FormControl(''),\r\n Department: new FormControl(''),\r\n Technology: new FormControl(''),\r\n ReportingManager: new FormControl(''),\r\n \r\n\r\n });\r\n }\r\n\r\n PopulateForm(): void {\r\n // if (this.updatedProjectData != null) {\r\n this.associateexitform.patchValue({\r\n \r\n EmployeeId: this.projectData.ProjectCode,\r\n EmployeeName: this.projectData.ProjectName,\r\n ClientId: this.projectData.ClientId,\r\n ReportingManager: this.projectData.ManagerId,\r\n ProjectId: this.projectData.ProjectTypeId,\r\n ProjectStateId: this.projectData.ProjectStateId,\r\n PracticeAreaId: this.projectData.PracticeAreaId,\r\n // ActualStartDate: this.ModifyDateFormat(\r\n // this.projectData.ActualStartDate\r\n // ),\r\n // ActualEndDate: this.ModifyDateFormat(\r\n // this.projectData.ActualEndDate\r\n // ),\r\n // DomainId: this.projectData.DomainId,\r\n // ProgramManagerName: this.projectData.ManagerName\r\n });\r\n // }\r\n }\r\n\r\n clearField(fieldName) {\r\n \r\n if(fieldName=='EmployeeId'){\r\n this.associateexitform.controls.EmployeeId.setValue(null);\r\n }\r\n if(fieldName=='PracticeAreaId'){\r\n this.associateexitform.controls.PracticeAreaId.setValue(null);\r\n } \r\n if(fieldName=='ProjectId'){\r\n this.associateexitform.controls.ProjectId.setValue(null);\r\n } \r\n if(fieldName=='ProgramManagerId'){\r\n this.associateexitform.controls.ProgramManagerId.setValue(null);\r\n } \r\n if(fieldName=='ClientId'){\r\n this.associateexitform.controls.ClientId.setValue(null);\r\n } \r\n if(fieldName=='ExperienceId'){\r\n this.associateexitform.controls.ExperienceId.setValue(null);\r\n } \r\n if(fieldName=='GradeId'){\r\n this.associateexitform.controls.GradeId.setValue(null);\r\n } \r\n if(fieldName=='DesignationId'){\r\n this.associateexitform.controls.DesignationId.setValue(null);\r\n } \r\n }\r\n\r\n \r\n\r\n\r\n\r\n confirmExit(){\r\n console.log(this.associateexitform);\r\n }\r\n \r\n clear(){\r\n\r\n this.formGroupDirective.resetForm();\r\n this.createForm;\r\n \r\n\r\n this.associateexitform.controls[\"IsBillable\"].setValue(-1);\r\n this.associateexitform.controls[\"IsCritical\"].setValue(-1);\r\n\r\n // this.associateUtilizationReportList = [];\r\n\r\n // this.dataSource = new MatTableDataSource(this.associateUtilizationReportList);\r\n // this.dataSource.paginator = this.paginator;\r\n // this.dataSource.sort = this.sort;\r\n // this.totalRecordsCount = this.associateUtilizationReportList.length;\r\n \r\n \r\n }\r\n\r\n\r\n}\r\n\r\n","\r\n
\r\n

Associate Detail

\r\n\r\n
\r\n
\r\n \r\n Associate Id\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Associate Name\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Date of Join\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Designation\r\n \r\n \r\n
\r\n
\r\n \r\n Total Service\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n Project\r\n \r\n \r\n
\r\n
\r\n \r\n\r\n\r\n
\r\n
\r\n \r\n Experience\r\n \r\n \r\n
\r\n
\r\n \r\n Grade\r\n \r\n \r\n
\r\n
\r\n \r\n Department\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n Technology\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n Reporting Manager\r\n \r\n \r\n
\r\n \r\n
\r\n

Exit Detail

\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 { ExitAnalysisService } from './../../../AssociateExit/Services/exit-analysis.service';\r\nimport { ChangeDetectorRef, Component, OnInit, ViewChild } from '@angular/core';\r\nimport {FormArray,FormBuilder,FormControl,FormGroup,Validators,} from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTable, MatTableDataSource } from '@angular/material/table';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport * as moment from 'moment';\r\nimport { startWith, map, takeUntil } from 'rxjs/operators';\r\nimport { Observable } from 'rxjs/Rx';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { CommonService } from '../../../../core/services/common.service';\r\nimport { MasterDataService } from '../../../../core/services/masterdata.service';\r\nimport { ActivityList } from '../../../AssociateExit/Models/activitymodel';\r\nimport {Activity,AssociateExit,TransitionActivityDetails,} from '../../../AssociateExit/Models/associateExit.model';\r\nimport { ResignastionService } from '../../../AssociateExit/Services/resignastion.service';\r\nimport { GenericType } from '../../../master-layout/models/dropdowntype.model';\r\nimport { Associate } from '../../../onboarding/models/associate.model';\r\nimport { KtForm, UpdateTransitionPlan } from '../../models/kt-form.model';\r\nimport { KtFormService } from '../../services/kt-form.service';\r\nimport { CommonDialogComponent } from '../common-dialog/common-dialog.component';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { EmployeeStatusService } from 'src/app/modules/admin/services/employeestatus.service';\r\nimport { KtWarningDialogComponent } from '../kt-warning-dialog/kt-warning-dialog.component';\r\n\r\ninterface SelectItem {\r\n value: number;\r\n label: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-kt-form',\r\n templateUrl: './kt-form.component.html',\r\n styleUrls: ['./kt-form.component.scss'],\r\n providers: [EmployeeStatusService]\r\n})\r\nexport class KtFormComponent implements OnInit {\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n @ViewChild(MatTable) table: MatTable;\r\n\r\n displayedColumns: string[] = ['Task','StartDate','EndDate','Status','Remarks','Action',];\r\n removeat = []\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n dataSource = [];\r\n transitionToName:any;\r\n\r\n AssociateExit: AssociateExit = new AssociateExit();\r\n ActivityList: Activity[];\r\n KtFormValues: KtForm;\r\n KtPlan: KtForm;\r\n programManagerName: string = '';\r\n designationName: string = '';\r\n dialogResponse: boolean;\r\n added = false;\r\n numberOfActivities: number = 0;\r\n OthersIndex: number = null;\r\n showProject: boolean = false;\r\n KtPlanInProgress: boolean = false;\r\n currentPath: string;\r\n TeamLeadScreen: boolean = false;\r\n finalSubmission: boolean = false;\r\n submitDisable: boolean = false;\r\n btnLabel = 'Submit';\r\n showback = true;\r\n empId: number;\r\n projectId: number;\r\n deleteFromBackend: boolean = false;\r\n associatesList: SelectItem[] = [];\r\n filteredAssociates: Observable;\r\n formSubmitted: boolean = false;\r\n KtForm: FormGroup;\r\n updateTransitionDetails = [];\r\n\r\n minKTPlanDate: Date;\r\n maxKTPlanDate: Date;\r\n\r\n activityMap = new Map();\r\n activityIdMap = new Map();\r\n disable:boolean = false;\r\n previous: string;\r\n roleName: string;\r\n defaultSelectedValue:any=null;\r\n updateTransition: boolean;\r\n formInvalid = false;\r\n ktStartDate : Date;\r\n ktEndDate : Date;\r\n activityStatusDD1= [{ \"StatusId\": \"0\", \"StatusName\": \"Initiate\" }];\r\n activityStatusDD2=[{ \"StatusId\": \"1\", \"StatusName\": \"In Progress\" }, { \"StatusId\": \"2\", \"StatusName\": \"Completed\" }]\r\n\r\n constructor(\r\n private actRoute: ActivatedRoute,\r\n private _masterDataService: MasterDataService,\r\n private _resignationService: ResignastionService,\r\n private _KtFormService: KtFormService,\r\n private _commonService: CommonService,\r\n private _snackBar: MatSnackBar,\r\n private fb: FormBuilder,\r\n public dialog: MatDialog,\r\n private _router: Router,\r\n private cd: ChangeDetectorRef,\r\n private exitanalysis: ExitAnalysisService,\r\n private spinner: NgxSpinnerService,\r\n private _service: EmployeeStatusService,\r\n public warningDialog : MatDialog\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.actRoute.url.subscribe((url) => {\r\n this.currentPath = url[1]['path'];\r\n });\r\n this.roleName = JSON.parse(\r\n sessionStorage.AssociatePortal_UserInformation\r\n ).roleName;\r\n this.previous = this.exitanalysis.getPreviousUrl();\r\n if (this.currentPath == 'TeamLead') {\r\n this.TeamLeadScreen = true;\r\n }\r\n this.actRoute.params.subscribe((params) => {\r\n this.empId = params['empid'];\r\n this.projectId = params['projectid'];\r\n });\r\n this.getResignationDetails();\r\n this.createKtForm();\r\n // this.getAssociateList();\r\n }\r\n\r\n getResignationDetails() {\r\n this.spinner.show();\r\n this._resignationService\r\n .getExitDetailsById(this.empId)\r\n .subscribe((res: any) => {\r\n this.spinner.hide();\r\n if (res) {\r\n this.AssociateExit = new AssociateExit();\r\n this.AssociateExit = res;\r\n this.minKTPlanDate = res.ResignationDate;\r\n this.maxKTPlanDate = res.ExitDate;\r\n res.DateOfJoin = moment(res.DateOfJoin).format('MM/DD/YYYY');\r\n res.ExitDate = moment(res.ExitDate).format('MM/DD/YYYY');\r\n if (this.AssociateExit.DepartmentId == 1) this.showProject = true;\r\n this.getAssociateList();\r\n }\r\n });\r\n }\r\n\r\n createKtForm() {\r\n this.KtForm = new FormGroup({\r\n transitionTo: new FormControl(null,[Validators.required]),\r\n others: new FormControl(null),\r\n startDate: new FormControl(null, [Validators.required]),\r\n endDate: new FormControl(null, [Validators.required]),\r\n knowledgeTransferred: new FormControl(null),\r\n knowledgeTransferredRemarks: new FormControl(null),\r\n activityType: new FormArray([this.CreateNewActivityTypeForm()]),\r\n });\r\n }\r\n\r\n CreateNewActivityTypeForm(): FormGroup {\r\n return this.fb.group({\r\n activityTypeId: new FormControl(''),\r\n updateTransitionDetail: new FormArray([this.CreateNewActivityForm()]),\r\n });\r\n }\r\n\r\n CreateNewActivityForm(): FormGroup {\r\n return this.fb.group({\r\n StartDate: new FormControl(null),\r\n EndDate: new FormControl(null),\r\n Status: new FormControl(null),\r\n Remarks: new FormControl(null),\r\n ActivityId: new FormControl(null),\r\n ActivityDescription: new FormControl(null),\r\n IsAdded:true, \r\n StatusNotChangedToCompleted:true,\r\n StatusOptions: new FormControl(this.activityStatusDD1)\r\n });\r\n }\r\n\r\n onSelectMandataory(taskValue):void\r\n{\r\n this.KtForm.markAsUntouched();\r\n if((taskValue.controls['ActivityId'].value!==null && taskValue.controls['ActivityId'].value!==undefined) || taskValue.controls['ActivityId'].value === -1){\r\n taskValue.controls['StartDate'].setValidators(Validators.required);\r\n taskValue.controls['StartDate'].updateValueAndValidity();\r\n taskValue.controls['EndDate'].setValidators(Validators.required);\r\n taskValue.controls['EndDate'].updateValueAndValidity();\r\n taskValue.controls['Status'].setValidators(Validators.required);\r\n taskValue.controls['Status'].setValue(\"0\");\r\n taskValue.controls['Status'].updateValueAndValidity();\r\n taskValue.controls['StatusOptions'].setValue(this.activityStatusDD1)\r\n }else{\r\n taskValue.controls['StartDate'].setValue(null);\r\n taskValue.controls['EndDate'].setValue(null);\r\n taskValue.controls['Status'].setValue(null);\r\n taskValue.controls['StartDate'].clearValidators();\r\n taskValue.controls['StartDate'].updateValueAndValidity();\r\n taskValue.controls['EndDate'].clearValidators();\r\n taskValue.controls['EndDate'].updateValueAndValidity();\r\n taskValue.controls['Status'].clearValidators();\r\n taskValue.controls['Status'].updateValueAndValidity();\r\n\r\n }\r\n \r\n}\r\n getAssociateList(): void {\r\n this.spinner.show();\r\n if(this.AssociateExit.DepartmentId==1)\r\n { \r\n this._masterDataService\r\n .GetAllAssociateListByProject(this.projectId)\r\n .subscribe((associateResponse: GenericType[]) => {\r\n this.spinner.hide();\r\n associateResponse.forEach((associateResponse: GenericType) => {\r\n if(associateResponse.Id != this.empId){\r\n this.associatesList.push({\r\n label: associateResponse.Name,\r\n value: associateResponse.Id,\r\n });\r\n }\r\n });\r\n this.getKtTasks();\r\n this.getKtPlan();\r\n this.filteredAssociates = this.KtForm.get('transitionTo').valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterAssociates(value))\r\n );\r\n }),\r\n (error: any) => {\r\n this.spinner.hide();\r\n if (error._body != undefined && error._body != '')\r\n this._snackBar.open(error.error, 'x', {\r\n \r\n duration: 1000,\r\n panelClass: ['Failed to get Associate List'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n };\r\n }\r\n else{\r\n this._service\r\n .GetAssociatesByDepartment(this.AssociateExit.DepartmentId)\r\n .subscribe((associateResponse: GenericType[]) => {\r\n this.spinner.hide();\r\n associateResponse.forEach((associateResponse: GenericType) => {\r\n if(associateResponse.Id != this.empId){\r\n this.associatesList.push({\r\n label: associateResponse.Name,\r\n value: associateResponse.Id,\r\n });\r\n }\r\n });\r\n this.getDepartmentHead();\r\n this.getKtTasks();\r\n this.getKtPlan();\r\n this.filteredAssociates = this.KtForm.get('transitionTo').valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterAssociates(value))\r\n );\r\n }),\r\n (error: any) => {\r\n this.spinner.hide();\r\n if (error._body != undefined && error._body != '')\r\n this._snackBar.open(error.error, 'x', {\r\n \r\n duration: 1000,\r\n panelClass: ['Failed to get Associate List'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }; \r\n \r\n }\r\n\r\n }\r\n\r\n private getDepartmentHead()\r\n {\r\n this._service.GetDepartmentHeadByDepartment(this.AssociateExit.DepartmentId)\r\n .subscribe((deptHead: GenericType) => {\r\n this.spinner.hide();\r\n this.associatesList.push({\r\n label: deptHead.Name,\r\n value: deptHead.Id,\r\n });\r\n this.filteredAssociates = this.KtForm.get('transitionTo').valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterAssociates(value))\r\n );\r\n}),\r\n(error: any) => {\r\n this.spinner.hide();\r\n if (error._body != undefined && error._body != '')\r\n this._snackBar.open(error.error, 'x', {\r\n \r\n duration: 1000,\r\n panelClass: ['Failed to get Associate List'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n};\r\n }\r\n\r\n private _filterAssociates(value) {\r\n let filterValue;\r\n if (typeof value === 'string') {\r\n filterValue = value.toLowerCase();\r\n } else if (value !== null) {\r\n filterValue = value.label;\r\n } else {\r\n return this.associatesList;\r\n }\r\n\r\n return this.associatesList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n }\r\n\r\n getKtTasks() {\r\n const unSelectedArray:TransitionActivityDetails={ActivityId:null,Description:'Select'}\r\n this.spinner.show();\r\n this._KtFormService.getKtTasks().subscribe((res: Activity[]) => {\r\n this.spinner.hide();\r\n this.ActivityList = new Array();\r\n this.ActivityList = res;\r\n\r\n this.ActivityList.forEach((activityType: Activity, index) => {\r\n if(activityType.ActivityType !== 'Others'){\r\n activityType.TransitionActivityDetails.push(unSelectedArray);\r\n }\r\n if (activityType.ActivityType == 'Others') this.OthersIndex = index;\r\n activityType.TransitionActivityDetails.forEach(\r\n (activity: TransitionActivityDetails) => {\r\n this.activityMap.set(activity.ActivityId, index);\r\n this.activityIdMap.set(activity.ActivityId, activity.Description);\r\n }\r\n );\r\n });\r\n\r\n let i = 1;\r\n for (; i < this.ActivityList.length; i++) {\r\n const add = this.KtForm.get('activityType') as FormArray;\r\n add.push(this.CreateNewActivityTypeForm());\r\n }\r\n });\r\n }\r\n\r\n getKtPlan() {\r\n this.createKtForm();\r\n this.KtPlan = new KtForm();\r\n this.spinner.show();\r\n this._KtFormService\r\n .getKtPlan(this.empId, this.projectId)\r\n .subscribe((res) => {\r\n this.spinner.hide();\r\n if (res) {\r\n this.KtPlan = res;\r\n\r\n if (this.KtPlan.Status == 'KTPlanSubmitted') {\r\n if (this.TeamLeadScreen) {\r\n this.finalSubmission = true;\r\n this.btnLabel = 'Completed & Verified';\r\n }\r\n }\r\n\r\n if(this.previous == \"/associateexit/associateexitinformation\"){\r\n this.KtForm.disable();\r\n }\r\n\r\n this.KtPlan.UpdateTransitionDetail.forEach(\r\n (activity: UpdateTransitionPlan) => {\r\n if (activity.ActivityId <=1) {\r\n var i = this.OthersIndex;\r\n } else i = this.activityMap.get(activity.ActivityId);\r\n const a = this.KtForm['controls']['activityType']['controls'][\r\n i\r\n ].get('updateTransitionDetail') as FormArray;\r\n if (!a.value[0].ActivityId) {\r\n if (this.KtPlan.Status == 'KTPlanInProgress') {\r\n a.controls[0].patchValue({\r\n StartDate: activity.StartDate,\r\n EndDate: activity.EndDate,\r\n Status: this.roleName === 'Associate'? null :activity.Status,\r\n Remarks: activity.Remarks,\r\n ActivityId: activity.ActivityId,\r\n ActivityDescription: activity.ActivityDescription,\r\n IsAdded:false,\r\n StatusOptions: this.roleName === 'Associate'? this.activityStatusDD2:this.activityStatusDD1\r\n });\r\n }\r\n else if(this.KtPlan.Status == 'KTPlanSubmitted' && this.roleName=='Associate'){\r\n a.controls[0].patchValue({\r\n StartDate: activity.StartDate,\r\n EndDate: activity.EndDate,\r\n Status: (activity.Status == '0') ? null: activity.Status,\r\n Remarks: activity.Remarks,\r\n ActivityId: activity.ActivityId,\r\n ActivityDescription: activity.ActivityDescription,\r\n IsAdded:false,\r\n StatusOptions: this.activityStatusDD2\r\n });\r\n }\r\n else if(this.KtPlan.Status == 'KTPlanSubmitted' && this.roleName=='Team Lead'){\r\n a.controls[0].patchValue({\r\n StartDate: activity.StartDate,\r\n EndDate: activity.EndDate,\r\n Status: activity.Status,\r\n Remarks: activity.Remarks,\r\n ActivityId: activity.ActivityId,\r\n ActivityDescription: activity.ActivityDescription,\r\n IsAdded:false,\r\n StatusOptions: (activity.Status == '0') ? this.activityStatusDD1:this.activityStatusDD2\r\n });\r\n }\r\n else if(this.KtPlan.Status == 'KTPlanCompleted'){\r\n a.controls[0].patchValue({\r\n StartDate: activity.StartDate,\r\n EndDate: activity.EndDate,\r\n Status: activity.Status,\r\n Remarks: activity.Remarks,\r\n ActivityId: activity.ActivityId,\r\n ActivityDescription: activity.ActivityDescription,\r\n IsAdded:false,\r\n StatusOptions: this.activityStatusDD2\r\n });\r\n }\r\n else{\r\n a.controls[0].patchValue({\r\n StartDate: activity.StartDate,\r\n EndDate: activity.EndDate,\r\n Status: activity.Status,\r\n Remarks: activity.Remarks,\r\n ActivityId: activity.ActivityId,\r\n ActivityDescription: activity.ActivityDescription,\r\n IsAdded:false,\r\n StatusOptions: this.activityStatusDD2\r\n });\r\n }\r\n a.controls[0]['controls']['StartDate'].setValidators(Validators.required);\r\n a.controls[0]['controls']['StartDate'].updateValueAndValidity();\r\n a.controls[0]['controls']['EndDate'].setValidators(Validators.required);\r\n a.controls[0]['controls']['EndDate'].updateValueAndValidity();\r\n a.controls[0]['controls']['Status'].setValidators(Validators.required);\r\n a.controls[0]['controls']['Status'].updateValueAndValidity();\r\n // a.disable()\r\n } else {\r\n a.push(this.CreateNewActivityForm());\r\n if (this.KtPlan.Status == 'KTPlanInProgress') {\r\n a.controls[a.value.length - 1].patchValue({\r\n StartDate: activity.StartDate,\r\n EndDate: activity.EndDate,\r\n Status: this.roleName === 'Associate'? null :activity.Status,\r\n Remarks: activity.Remarks,\r\n ActivityId: activity.ActivityId,\r\n ActivityDescription: activity.ActivityDescription,\r\n IsAdded:false,\r\n StatusOptions: this.roleName === 'Associate'? this.activityStatusDD2:this.activityStatusDD1\r\n });\r\n }\r\n else if(this.KtPlan.Status == 'KTPlanSubmitted' && this.roleName=='Associate'){\r\n a.controls[a.value.length - 1].patchValue({\r\n StartDate: activity.StartDate,\r\n EndDate: activity.EndDate,\r\n Status: (activity.Status == '0') ? null: activity.Status,\r\n Remarks: activity.Remarks,\r\n ActivityId: activity.ActivityId,\r\n ActivityDescription: activity.ActivityDescription,\r\n IsAdded:false,\r\n StatusOptions: this.activityStatusDD2\r\n });\r\n }\r\n else if(this.KtPlan.Status == 'KTPlanSubmitted' && this.roleName=='Team Lead'){\r\n a.controls[a.value.length - 1].patchValue({\r\n StartDate: activity.StartDate,\r\n EndDate: activity.EndDate,\r\n Status: activity.Status,\r\n Remarks: activity.Remarks,\r\n ActivityId: activity.ActivityId,\r\n ActivityDescription: activity.ActivityDescription,\r\n IsAdded:false,\r\n StatusOptions: (activity.Status == '0') ? this.activityStatusDD1:this.activityStatusDD2\r\n });\r\n }\r\n else if(this.KtPlan.Status == 'KTPlanCompleted'){\r\n a.controls[a.value.length - 1].patchValue({\r\n StartDate: activity.StartDate,\r\n EndDate: activity.EndDate,\r\n Status: activity.Status,\r\n Remarks: activity.Remarks,\r\n ActivityId: activity.ActivityId,\r\n ActivityDescription: activity.ActivityDescription,\r\n IsAdded:false,\r\n StatusOptions: this.activityStatusDD2\r\n });\r\n }\r\n else{\r\n a.controls[a.value.length - 1].patchValue({\r\n StartDate: activity.StartDate,\r\n EndDate: activity.EndDate,\r\n Status: activity.Status,\r\n Remarks: activity.Remarks,\r\n ActivityId: activity.ActivityId,\r\n ActivityDescription: activity.ActivityDescription,\r\n IsAdded:false\r\n \r\n });\r\n }\r\n // a.disable()\r\n a.controls[a.value.length - 1]['controls']['StartDate'].setValidators(Validators.required);\r\n a.controls[a.value.length - 1]['controls']['StartDate'].updateValueAndValidity();\r\n a.controls[a.value.length - 1]['controls']['EndDate'].setValidators(Validators.required);\r\n a.controls[a.value.length - 1]['controls']['EndDate'].updateValueAndValidity();\r\n a.controls[a.value.length - 1]['controls']['Status'].setValidators(Validators.required);\r\n a.controls[a.value.length - 1]['controls']['Status'].updateValueAndValidity();\r\n }\r\n }\r\n );\r\n this.associatesList.forEach((e) => {\r\n if (e.value === this.KtPlan.TransitionTo) {\r\n this.transitionToName = e.label;\r\n }\r\n });\r\n let obj={label:this.transitionToName, value: this.KtPlan.TransitionTo}\r\n this.KtForm.patchValue({\r\n transitionTo: obj,\r\n others: this.KtPlan.Others,\r\n startDate: this.KtPlan.StartDate,\r\n endDate: this.KtPlan.EndDate,\r\n });\r\n if (this.KtPlan.Status == 'KTPlanInProgress') {\r\n this.KtPlanInProgress = true;\r\n }\r\n if (this.KtPlan.Status === 'KTPlanCompleted') {\r\n this.KtForm.disable();\r\n this.submitDisable = true;\r\n }\r\n if (this.roleName === 'Associate') {\r\n (Object).values(this.KtForm['controls']['activityType']['controls']).forEach((control, index, object) => {\r\n (Object).values(control.controls.updateTransitionDetail['controls']).forEach(ctrl => {\r\n if (ctrl.controls['ActivityId'].value === null) {\r\n control.controls.updateTransitionDetail.removeAt(ctrl)\r\n }\r\n })\r\n if (control.controls.updateTransitionDetail.length === 0) {\r\n this.removeat.push(index)\r\n }\r\n });\r\n for (var i = this.removeat.length - 1; i >= 0; i--){\r\n this.ActivityList.splice(this.removeat[i], 1);\r\n this.activitytypes.removeAt(this.removeat[i])\r\n }\r\n }\r\n }\r\n})\r\n}\r\n get activitytypes() {\r\n return this.KtForm.get('activityType') as FormArray;\r\n }\r\n panelOpened(item, i) {\r\n this.dataSource = this.KtForm['controls']['activityType']['controls'][i]['controls']['updateTransitionDetail']['controls'];\r\n }\r\n\r\n onNewTask(indexActivityType, indexAcitivity) {\r\n this.added = true;\r\n const add = this.KtForm['controls']['activityType']['controls'][\r\n indexActivityType\r\n ].get('updateTransitionDetail') as FormArray;\r\n add.push(this.CreateNewActivityForm());\r\n\r\n\r\n this.cd.detectChanges();\r\n return false;\r\n }\r\n\r\n onDelete(indexActivityType, indexActivity) {\r\n this.openDialog(\r\n 'Confirmation',\r\n 'Do you want to Delete ?',\r\n indexActivityType,\r\n indexActivity\r\n );\r\n }\r\n\r\n openDialog(Heading, Message, indexActivityType, indexActivity): void {\r\n const dialogRef = this.dialog.open(CommonDialogComponent, {\r\n width: '300px',\r\n disableClose: true,\r\n data: { heading: Heading, message: Message },\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n this.dialogResponse = result;\r\n if (this.dialogResponse == true) {\r\n let activityId = this.KtForm.value.activityType[indexActivityType]\r\n .updateTransitionDetail[indexActivity].ActivityId;\r\n this.spinner.show();\r\n this._KtFormService\r\n .getKtPlan(this.empId, this.projectId)\r\n .toPromise()\r\n .then((res) => {\r\n this.spinner.hide();\r\n if (res) {\r\n this.KtPlan = res;\r\n for (let activity of this.KtPlan.UpdateTransitionDetail) {\r\n if (activity.ActivityId == activityId) {\r\n this.deleteFromBackend = true;\r\n break;\r\n }\r\n }\r\n if (this.deleteFromBackend) {\r\n this.spinner.show();\r\n this._KtFormService\r\n .deleteKtTasks(this.empId, this.projectId, activityId)\r\n .subscribe((res: any) => {\r\n this.spinner.hide();\r\n if (res) {\r\n this._snackBar.open(\r\n 'Activity Deleted successfully.',\r\n 'x',\r\n {\r\n duration: 1000,\r\n panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n }\r\n });\r\n } else {\r\n this._snackBar.open('Activity Deleted successfully.', 'x', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n this.deleteFromBackend = false;\r\n }\r\n });\r\n\r\n const remove = this.KtForm['controls']['activityType']['controls'][\r\n indexActivityType\r\n ].get('updateTransitionDetail') as FormArray;\r\n remove.removeAt(indexActivity);\r\n this.added = false;\r\n // this.table.renderRows();\r\n }\r\n });\r\n }\r\n\r\n clearField(fieldName) {\r\n if (fieldName == 'transitionTo') {\r\n this.KtForm.controls.transitionTo.setValue(null);\r\n }\r\n }\r\n\r\n save() {\r\n if(Date.parse(this.KtForm.value.startDate)>Date.parse(this.KtForm.value.endDate)){\r\n this._snackBar.open(\r\n \"start date should not greater than end date.\",\r\n \"\",\r\n {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n }\r\n );\r\n return;\r\n }\r\n this.KtFormValues = new KtForm();\r\n this.KtFormValues.Type = 'Save';\r\n this.updateKtTasks();\r\n }\r\n\r\n setActivityId(item:any){\r\n item.controls['ActivityId'].patchValue(-1);\r\n }\r\n\r\n submitDialog(update:boolean = false) {\r\n this.updateTransition = update;\r\n if(Date.parse(this.KtForm.value.startDate)>Date.parse(this.KtForm.value.endDate)){\r\n this._snackBar.open(\r\n \"start date should not greater than end date.\",\r\n \"\",\r\n {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n }\r\n );\r\n return;\r\n }\r\n\r\n const dialogRef = this.dialog.open(CommonDialogComponent, {\r\n width: '300px',\r\n disableClose:true,\r\n data: {\r\n heading: 'Confirmation',\r\n message: 'Are you sure you want to Submit?',\r\n },\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n this.dialogResponse = result;\r\n if (this.dialogResponse == true) {\r\n this.submit();\r\n }\r\n });\r\n }\r\n\r\n submit() {\r\n this.KtFormValues = new KtForm();\r\n if (!this.KtPlan.Status ||(this.KtPlan.Status==\"KTPlanInProgress\" && this.roleName==\"Team Lead\")) this.KtFormValues.Type = 'TLSubmit';\r\n else if (this.roleName == 'Associate')\r\n this.KtFormValues.Type = 'AssociateSubmit';\r\n else if(this.updateTransition)\r\n this.KtFormValues.Type = 'TLSubmit' \r\n else if ((this.KtFormValues.Status = 'KTPlanSubmitted') && this.roleName==\"Team Lead\")\r\n this.KtFormValues.Type = 'TLComplete';\r\n\r\n this.updateKtTasks();\r\n }\r\n displayFn(user: any) {\r\n return user && user.label ? user.label : '';\r\n }\r\n updateKtTasks() {\r\n this.formInvalid = false;\r\n this.formSubmitted = true;\r\n this.updateTransitionDetails=[];\r\n this.KtFormValues.UpdateTransitionDetail=[];\r\n if(!this.KtForm.touched && this.KtFormValues.Type != 'TLComplete'){\r\n this._snackBar.open(\r\n \"No changes to update!\",\r\n \"\",\r\n {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n }\r\n );\r\n return;\r\n }\r\n else{\r\n this.formInvalid = false;\r\n (Object).values(this.KtForm['controls']['activityType']['controls']).forEach(control => {\r\n control.markAsTouched();\r\n (Object).values(control.controls.updateTransitionDetail['controls']).forEach(ctrl => {\r\n if(ctrl.controls['ActivityId'].value != null){\r\n \r\n let startDate= new Date(ctrl.controls['StartDate'].value)\r\n let endDate = new Date(ctrl.controls['EndDate'].value)\r\n let mainStartDate = new Date(this.KtForm.value.startDate);\r\n let mainEndDate = new Date(this.KtForm.value.endDate);\r\n\r\n if(!((startDate>=mainStartDate&&startDate<=mainEndDate)&&\r\n (endDate>=startDate&&endDate<=mainEndDate))){\r\n ctrl.controls['StartDate'].markAsTouched();\r\n ctrl.controls['EndDate'].markAsTouched();\r\n if(startDate < mainStartDate || startDate > mainEndDate){\r\n ctrl.controls['StartDate'].setErrors({'incorrect': true});\r\n }\r\n if(endDate mainEndDate){\r\n ctrl.controls['EndDate'].setErrors({'incorrect': true});\r\n }\r\n this.formInvalid = true;\r\n }\r\n \r\n }\r\n })\r\n });\r\n \r\n if(this.formInvalid){\r\n this._snackBar.open(\r\n 'Please correct the date fields highlighted',\r\n 'x',\r\n {\r\n panelClass:['error-alert'],\r\n duration: 5000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n return;\r\n }\r\n else{\r\n this.TransitionPlanSubmission();\r\n }\r\n }\r\n }\r\n\r\n TransitionPlanSubmission() {\r\n if (this.KtForm.valid) {\r\n this.KtFormValues.EmployeeId = this.empId;\r\n this.KtFormValues.ProjectId = this.projectId;\r\n this.KtFormValues.TransitionFrom = this.AssociateExit.EmployeeId;\r\n this.KtFormValues.TransitionTo = this.KtForm.value.transitionTo.value;\r\n this.KtFormValues.Others = this.KtForm.value.others;\r\n this.KtFormValues.StartDate = this.KtForm.value.startDate;\r\n this.KtFormValues.EndDate = this.KtForm.value.endDate;\r\n if (this.KtForm.value.knowledgeTransferred)\r\n this.KtFormValues.KnowledgeTransferred = this.KtForm.value.knowledgeTransferred;\r\n if (this.KtForm.value.knowledgeTransferredRemarks)\r\n this.KtFormValues.KnowledgeTransaferredRemarks = this.KtForm.value.knowledgeTransferredRemarks;\r\n\r\n if (this.KtForm.value.activityType[this.OthersIndex] &&\r\n this.KtForm.value.activityType[this.OthersIndex]\r\n .updateTransitionDetail[0].ActivityDescription &&\r\n !this.KtForm.value.activityType[this.OthersIndex]\r\n .updateTransitionDetail[0].ActivityId\r\n )\r\n this.KtForm.value.activityType[\r\n this.OthersIndex\r\n ].updateTransitionDetail[0].ActivityId = -1;\r\n\r\n var i = 0;\r\n\r\n while (i < this.KtForm.value.activityType.length) {\r\n var j = 0;\r\n while (\r\n j < this.KtForm.value.activityType[i].updateTransitionDetail.length\r\n ) {\r\n if (\r\n this.KtForm.value.activityType[i].updateTransitionDetail[j]\r\n .ActivityId\r\n ) {\r\n this.updateTransitionDetails.push(\r\n this.KtForm.value.activityType[i].updateTransitionDetail[j]\r\n );\r\n }\r\n j++;\r\n }\r\n i++;\r\n }\r\n this.KtFormValues.UpdateTransitionDetail = this.updateTransitionDetails;\r\n const itemlu: any = this.KtForm['controls']['activityType']['controls'];\r\n for (let i = 0; i < itemlu.length; i++) {\r\n if (itemlu[i].controls['updateTransitionDetail'].length > 0) {\r\n for (let j = 0; j < itemlu[i].controls['updateTransitionDetail'].controls.length; j++) {\r\n itemlu[i].controls['updateTransitionDetail'].controls[j].controls.IsAdded.setValue(false);\r\n }\r\n }\r\n }\r\n\r\n this.spinner.show();\r\n this._KtFormService.updateKtTasks(this.KtFormValues).subscribe((res) => {\r\n this.spinner.hide();\r\n if (res) {\r\n if (this.KtFormValues.Type == 'Save') {\r\n this._snackBar.open('Transition Plan Saved successfully.', 'x', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n } else {\r\n if (res && res['IsSuccessful'] == true) {\r\n this._snackBar.open(\r\n 'Transition Plan Submitted successfully.',\r\n 'x',\r\n {\r\n panelClass: ['success-alert'],\r\n\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n this._router.navigate(['/shared/dashboard']);\r\n }\r\n else {\r\n this._snackBar.open(\r\n res['Message'],\r\n 'x',\r\n {\r\n panelClass: ['error-alert'],\r\n\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n }\r\n }\r\n }\r\n }),\r\n (error) => {\r\n this.spinner.hide();\r\n this._snackBar.open('Unable to submit Transition Plan', 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n };\r\n } else {\r\n this.KtForm.markAllAsTouched();\r\n this._snackBar.open('Please correct the fields highlighted', 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n }\r\n onBack() {\r\n if (this.previous == '/associateexit/associateexitinformation') {\r\n this._router.navigate(['associateexit/associateexitinformation'])\r\n }\r\n else{this._router.navigate(['shared/dashboard']);}\r\n }\r\n \r\n statusChange(activityControl){\r\n activityControl.controls['StatusNotChangedToCompleted'].setValue(false)\r\n }\r\n\r\n onDateChange(){\r\n if(this.KtForm.value.startDate != null && this.KtForm.value.endDate != null){\r\n const dialogRef = this.warningDialog.open(KtWarningDialogComponent, {\r\n width: '400px',\r\n disableClose: true\r\n });\r\n }\r\n }\r\n}","
\r\n \r\n
\r\n
\r\n Associate Details\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Associate Id
\r\n
: {{AssociateExit.EmployeeCode}}
\r\n
\r\n
\r\n
\r\n
\r\n
Associate Name
\r\n
: {{AssociateExit.EmployeeName}}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
Project
\r\n
: {{AssociateExit.ProjectName}}
\r\n
\r\n \r\n
Department
\r\n
: {{AssociateExit.Department}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Designation
\r\n
: {{AssociateExit.Designation}}
\r\n
\r\n
\r\n
\r\n
\r\n
Program Manager
\r\n
: {{AssociateExit.ProgramManager}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Date of Joining
\r\n
: {{AssociateExit?.DateOfJoin| date: 'mediumDate' }}
\r\n
\r\n
\r\n
\r\n
\r\n
Exit Date
\r\n
: {{AssociateExit?.ExitDate| date: 'mediumDate' }}
\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 KT Provided to :*\r\n \r\n \r\n \r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n KT Provided to is required\r\n \r\n \r\n Select Employee from given options\r\n \r\n \r\n
\r\n
\r\n \r\n Other\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n KT Start Date*\r\n \r\n \r\n \r\n \r\n Start Date is required.\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n KT End Date*\r\n \r\n \r\n \r\n \r\n End Date is required.\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 Details of Knowledge Handover Takeover Plan\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {{item.ActivityType}}\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 \r\n \r\n
\r\n \r\n Task *\r\n \r\n \r\n {{activity.Description}}\r\n \r\n {{activity.Description}}\r\n \r\n \r\n \r\n \r\n Task is required.\r\n \r\n \r\n \r\n Task *\r\n \r\n \r\n Task is required.\r\n \r\n \r\n \r\n \r\n \r\n Start Date *\r\n \r\n \r\n \r\n \r\n Start Date is required.\r\n \r\n \r\n \r\n \r\n \r\n End Date *\r\n \r\n \r\n \r\n \r\n End Date is required.\r\n \r\n \r\n \r\n \r\n Status *\r\n \r\n \r\n \r\n \r\n {{activity.StatusName}}\r\n \r\n \r\n \r\n \r\n Status is required.\r\n \r\n \r\n \r\n \r\n Remarks\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 Knowledge Transfer Complete\r\n
\r\n
\r\n \r\n Yes\r\n No\r\n \r\n
\r\n
\r\n \r\n Knowledge Transfer Remarks\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 { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-kt-warning-dialog',\r\n templateUrl: './kt-warning-dialog.component.html',\r\n styleUrls: ['./kt-warning-dialog.component.scss']\r\n})\r\nexport class KtWarningDialogComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","

Alert\r\n

\r\n\r\n\r\n error_outline Please adjust the task(s) start date and end date according to KT start date and end date.\r\n\r\n\r\n\r\n \r\n \r\n","import { Component, OnInit , ViewChild} from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { FormGroupDirective} from '@angular/forms';\r\nimport * as moment from 'moment';\r\nimport { NavService } from '../../../master-layout/services/nav.service';\r\nimport { ChecklistService } from '../../../AssociateExit/Services/checklist.service';\r\nimport { AssociateExit } from '../../../AssociateExit/Models/associateExit.model';\r\nimport { ActivityList } from '../../../AssociateExit/Models/activitymodel';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { AssociateExitDashboardService } from '../../services/associate-exit-dashboard.service';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\n@Component({\r\n selector: 'app-ktplan-dashboard',\r\n templateUrl: './ktplan-dashboard.component.html',\r\n styleUrls: ['./ktplan-dashboard.component.scss']\r\n})\r\nexport class KTPlanDashboardComponent implements OnInit {\r\n associateList : AssociateExit[]; \r\n activitytype: ActivityList;\r\n EmployeeId: number;\r\n roleName: string;\r\n dashboard: string = \"SMDashboard\";\r\n resources = servicePath.API.PagingConfigValue;\r\n dataSource = new MatTableDataSource();\r\n pageload: boolean = false;\r\n isLoading: boolean = false;\r\n serviceDeptId : number = 0;\r\n \r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n \r\n displayedColumns: string[] = [\r\n 'employeeId', 'employeeName', 'designation',\r\n 'exitDate', 'status', 'Action'\r\n ];\r\n\r\n constructor(\r\n public navService: NavService,\r\n private servicemanagerservice: ChecklistService,\r\n private associateexitservice: AssociateExitDashboardService,\r\n private route: Router,\r\n private spinner: NgxSpinnerService,\r\n private snackBar: MatSnackBar,\r\n){\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.spinner.show();\r\n \r\n this.getExitDashboard();\r\n }\r\n\r\n getExitDashboard() {\r\n this.isLoading = true;\r\n\r\n this.roleName = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).roleName;\r\n this.EmployeeId = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).employeeId;\r\n\r\n \r\n switch (this.roleName) {\r\n \r\n case (\"Quality and Information Security Manager\"): {\r\n this.serviceDeptId = 5;\r\n break;\r\n }\r\n case (\"Admin Manager\"): {\r\n this.serviceDeptId = 2;\r\n break;\r\n }\r\n case (\"IT Manager\"): {\r\n this.serviceDeptId = 3;\r\n break;\r\n }\r\n case (\"Finance Manager\"): {\r\n this.serviceDeptId = 4;\r\n break;\r\n }\r\n\r\n case (\"HRM\"): {\r\n this.serviceDeptId = 6;\r\n break;\r\n }\r\n \r\n case (\"Training Department Head\"): {\r\n this.serviceDeptId = 7;\r\n break;\r\n }\r\n\r\n }\r\n\r\n this.associateexitservice\r\n .getAssociateExitDashbaord(this.roleName, this.EmployeeId, this.dashboard)//'Service Manager'\r\n .toPromise().then( (res: any[]) => {\r\n this.isLoading = false;\r\n \r\n this.ModifyDateFormat(res);\r\n res.forEach( item =>{ \r\n \r\n \r\n });\r\n return res;\r\n }).then(res=>{\r\n this.dataSource = new MatTableDataSource(res);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.spinner.hide();\r\n this.pageload = true;\r\n \r\n \r\n }).catch(error => {\r\n this.spinner.hide();\r\n this.pageload = true;\r\n });\r\n}\r\n ModifyDateFormat(data: AssociateExit[]): void {\r\n data.forEach(e => {\r\n if (e.ExitDate != null) {\r\n e.ExitDate = moment(e.ExitDate).format(\"MM/DD/YYYY\");\r\n }\r\n \r\n });\r\n this.associateList = data;\r\n this.pageload = true;\r\n this.spinner.hide();\r\n\r\n }\r\n}\r\n","\r\n \r\n

KT Plan

\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 \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
Employee Code {{element.EmployeeCode}} Employee Name {{element.EmployeeName}} Designation {{element.Designation}} Exit Date {{element.ExitDate}} status {{element.StatusDesc}} Action \r\n Transition Plan\r\n
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { Router } from '@angular/router';\r\nimport * as moment from \"moment\";\r\nimport { AssociateExitDashboardService } from '../../services/associate-exit-dashboard.service';\r\nimport { NgxSpinnerService } from \"ngx-spinner\";\r\nimport { PmApprovalService } from '../../../AssociateExit/Services/pm-approval.service';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { ResignastionService } from '../../../AssociateExit/Services/resignastion.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { CommonDialogComponent } from '../common-dialog/common-dialog.component';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\n\r\n@Component({\r\n selector: 'app-operations-head-dashboard',\r\n templateUrl: './operations-head-dashboard.component.html',\r\n styleUrls: ['./operations-head-dashboard.component.scss']\r\n})\r\nexport class OperationsHeadDashboardComponent implements OnInit {\r\n\r\n EmpId: number;\r\n roleName: string;\r\n dashboard: string = \"OpsHeadDashboard\";\r\n pageload: boolean = false;\r\n dialogResponse:boolean;\r\n\r\n dataSourceAssociateExit: MatTableDataSource;\r\n @ViewChild(MatSort, { static: true }) sortAssociateExit: MatSort;\r\n @ViewChild('exitPaginator', { static: true }) exitPaginator: MatPaginator;\r\n\r\n displayColumnsAssociateExit = ['EmployeeCode','EmployeeName','Designation','ExitDate','StatusCode','Action'];\r\n\r\n constructor(\r\n private _associateExitDashboardService: AssociateExitDashboardService,\r\n private route: Router,\r\n private spinner: NgxSpinnerService,\r\n private _pmApprovalService : PmApprovalService,\r\n private _snackBar: MatSnackBar,\r\n private _resignationService : ResignastionService,\r\n public dialog: MatDialog,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.spinner.show();\r\n\r\n this.roleName = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).roleName;\r\n this.EmpId = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).employeeId;\r\n\r\n this.GetAssociateExitList();\r\n\r\n }\r\n\r\n GetAssociateExitList():void{\r\n this._associateExitDashboardService.getAssociateExitDashbaord(this.roleName, this.EmpId, this.dashboard).subscribe((res: any[]) => {\r\n res.forEach(e => { e.ExitDate = moment(e.ExitDate).format(\"MM/DD/YYYY\");\r\n if(e.StatusCode == \"RevokeInitiated\"){\r\n this._resignationService.getExitDetailsById(e.EmployeeId).subscribe((res:any)=>{ \r\n e.WithdrawReason = res.WithdrawReason;\r\n });\r\n } });\r\n setTimeout(()=>{this.dataSourceAssociateExit = new MatTableDataSource(res);\r\n this.dataSourceAssociateExit.paginator = this.exitPaginator;\r\n this.dataSourceAssociateExit.sort = this.sortAssociateExit;\r\n this.spinner.hide();\r\n this.pageload = true;\r\n }, 2000);\r\n }),\r\n error => {\r\n this.spinner.hide();\r\n this.pageload = true;\r\n };\r\n }\r\n \r\n\r\n viewResignationDets(selectedData : any){\r\n this.route.navigate(['/associateexit/pmApproval/' + selectedData.EmployeeId]);\r\n \r\n }\r\n\r\n getclearanceForm(selectedData : any){\r\n this.route.navigate([\"/associateexit/deptchecklist/\" + selectedData.EmployeeId]);\r\n }\r\n\r\n revokeResignation(selectedData : any, SubmitType : string) {\r\n if(SubmitType == \"Approve\")\r\n this.openDialog('Confirmation','Are you sure you want to Approve the Revoke?',selectedData,SubmitType);\r\n else\r\n this.openDialog('Confirmation','Are you sure you want to Reject the Revoke?',selectedData,SubmitType);\r\n }\r\n\r\n\r\n openDialog(Heading,Message,selectedData,SubmitType): void {\r\n const dialogRef = this.dialog.open(CommonDialogComponent, {\r\n width: '300px',\r\n disableClose: true,\r\n data: {heading: Heading, message: Message}\r\n });\r\n \r\n dialogRef.afterClosed().subscribe(result => {\r\n this.dialogResponse = result;\r\n if(this.dialogResponse==true){\r\n\r\n \r\n let submitData = {\r\n EmployeeId : selectedData.EmployeeId,\r\n SubmitType : SubmitType\r\n } \r\n this._pmApprovalService.ApproveOrRejectRevoke(submitData).subscribe(res=>{\r\n if(res){\r\n if(submitData.SubmitType == 'Approve'){\r\n this._snackBar.open('Revoke Approved successfully.', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n else if(submitData.SubmitType == 'Reject'){\r\n this._snackBar.open('Revoke Rejected successfully.', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n \r\n }\r\n this.GetAssociateExitList();\r\n }\r\n });\r\n \r\n }\r\n });\r\n }\r\n\r\n}\r\n","\r\n 0)\">\r\n \r\n Associate Exit Actions\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 \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
Emp Id {{element.EmployeeCode}} Employee Name {{element.EmployeeName}} Designation {{element.Designation}} Exit Date {{element.ExitDate}} Status {{element.StatusDesc}} Action \r\n visibility\r\n \r\n check\r\n clear\r\n info\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
","import { Component, OnInit, ViewChild } from \"@angular/core\";\r\nimport { ProjectsData } from \"src/app/modules/master-layout/models/projects.model\";\r\nimport { AssociateExit } from '../../../AssociateExit/Models/associateExit.model';\r\nimport * as moment from \"moment\";\r\nimport { DeliveryHeadService } from \"../../services/delivery-head.service\";\r\nimport * as servicePath from \"../../../../core/service-paths\";\r\nimport { ProjectCreationService } from \"../../../project-life-cycle/services/project-creation.service\";\r\nimport { Router } from \"@angular/router\";\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NgxSpinnerService } from \"ngx-spinner\";\r\nimport { Associate } from 'src/app/modules/onboarding/models/associate.model';\r\nimport { ResignastionService } from 'src/app/modules/AssociateExit/Services/resignastion.service';\r\nimport { AssociateExitDashboardService } from '../../services/associate-exit-dashboard.service';\r\nimport { CommonDialogComponent } from '../common-dialog/common-dialog.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { PmApprovalService } from 'src/app/modules/AssociateExit/Services/pm-approval.service';\r\n\r\n@Component({\r\n selector: \"app-program-manager-dashboard\",\r\n templateUrl: \"./program-manager-dashboard.component.html\",\r\n styleUrls: [\"./program-manager-dashboard.component.scss\"]\r\n})\r\nexport class ProgramManagerDashboardComponent implements OnInit {\r\n projectstate:string;\r\n EmpId: number;\r\n roleName: string;\r\n dashboard: string = \"PMDashboard\";\r\n ProjectsList: ProjectsData[];\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n resources = servicePath.API.PagingConfigValue;\r\n dataSource = new MatTableDataSource();\r\n \r\n @ViewChild('projectdetailsPaginator', { static: false }) projectdetailsPaginator: MatPaginator;\r\n @ViewChild('exitPaginator', { static: false }) exitPaginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n EmployeesList : Associate[];\r\n\r\n cols = [\r\n { field: 'ProjectName', header: 'Project Name' },\r\n { field: 'ManagerName', header: 'Program Manager' },\r\n { field: 'PracticeAreaCode', header: 'Technology' },\r\n { field: 'ClientName', header: 'Client Name' },\r\n { field: 'ActualStartDate', header: 'Start Date' },\r\n { field: 'ProjectState', header: 'Status' },\r\n ];\r\n displayedColumns1: string[] = [\r\n 'ProjectName',\r\n 'ManagerName',\r\n 'PracticeAreaCode',\r\n 'ClientName',\r\n 'ActualStartDate',\r\n 'ProjectState',\r\n 'View',\r\n ];\r\n dataSourceAssociateExit: MatTableDataSource;\r\n dialogResponse:boolean;\r\n displayColumnsAssociateExit = ['EmployeeCode','EmployeeName','Designation','ExitDate','StatusCode','Action'];\r\n pageload: boolean = false;\r\n isLoading: boolean = false;\r\n associateList : AssociateExit[]; \r\n\r\n constructor(\r\n private _deliveryHeadService: DeliveryHeadService,\r\n private route: Router,\r\n private ProjectCreationServiceObj: ProjectCreationService,\r\n private _snackBar: MatSnackBar,\r\n public navService: NavService,\r\n private spinner: NgxSpinnerService,\r\n private _resignationService: ResignastionService,\r\n private _pmApprovalService: PmApprovalService,\r\n private _associateExitDashboardService: AssociateExitDashboardService,\r\n public dialog: MatDialog\r\n ) {\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.spinner.show();\r\n this.GetProjectsList();\r\n // this.GetAssociateExitList();\r\n this.roleName = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).roleName;\r\n this.EmpId = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).employeeId;\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.dataSource.data);\r\n }\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n this.dataSource.paginator = this.projectdetailsPaginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n \r\n\r\n GetProjectsList(): void {\r\n this.roleName = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).roleName;\r\n this.EmpId = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).employeeId;\r\n // this.EmpId = JSON.parse(sessionStorage['AssociatePortal_UserInformation']).employeeId;\r\n this._deliveryHeadService\r\n .GetProjectsList(this.roleName, this.EmpId, this.dashboard)\r\n .toPromise().then((res: ProjectsData[]) => {\r\n this.ModifyDateFormat(res);\r\n this.dataSource.data = res;\r\n this.dataSource.paginator = this.projectdetailsPaginator;\r\n this.dataSource.sort = this.sort;\r\n this.spinner.hide();\r\n }).catch(error=>{\r\n this.spinner.hide();\r\n // this._snackBar.open('An error has occurred. Please contact administration.', 'x', {\r\n // duration: 2000,\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // });\r\n });\r\n }\r\n\r\n ModifyDateFormat(data: ProjectsData[]): void {\r\n data.forEach(e => {\r\n if (e.ActualStartDate != null) {\r\n e.ActualStartDate = moment(e.ActualStartDate).format(\"MM/DD/YYYY\");\r\n }\r\n if (e.ActualEndDate != null) {\r\n e.ActualEndDate = moment(e.ActualEndDate).format(\"MM/DD/YYYY\");\r\n }\r\n if (e.PlannedStartDate != null) {\r\n e.PlannedStartDate = moment(e.PlannedStartDate).format(\"MM/DD/YYYY\");\r\n }\r\n if (e.PlannedEndDate != null) {\r\n e.PlannedEndDate = moment(e.PlannedEndDate).format(\"MM/DD/YYYY\");\r\n }\r\n });\r\n this.ProjectsList = data;\r\n }\r\n\r\n ViewProject(ProjectObject: ProjectsData) {\r\n this.projectstate =ProjectObject.ProjectState;\r\n if(this.projectstate == \"ClosureInitiated\" || this.projectstate === \"SubmittedForClosureApproval\"){\r\n this.ProjectCreationServiceObj.SetProjectId(ProjectObject.ProjectId);\r\n this.route.navigate([\"/project/projectclosure/\"+this.dashboard]);\r\n \r\n }\r\n else{\r\n \r\n this.ProjectCreationServiceObj.SetProjectId(ProjectObject.ProjectId);\r\n this.route.navigate([\"/project/view/\" + this.dashboard]);\r\n }\r\n \r\n\r\n\r\n }\r\n\r\n // GetAssociateExitList():void{\r\n // this._associateExitDashboardService.getAssociateExitDashbaord(this.roleName, this.EmpId, this.dashboard).subscribe((res: any[]) => {\r\n // res.forEach(e => { e.ExitDate = moment(e.ExitDate).format(\"MM/DD/YYYY\"); \r\n // if(e.StatusCode == \"RevokeInitiated\"){\r\n // this._resignationService.getExitDetailsById(e.EmployeeId).subscribe((res:any)=>{ \r\n // e.WithdrawReason = res.WithdrawReason;\r\n // });\r\n // } });\r\n // this.dataSourceAssociateExit = new MatTableDataSource(res);\r\n // this.dataSourceAssociateExit.sort = this.sort;\r\n // this.dataSourceAssociateExit.paginator = this.exitPaginator;\r\n // });\r\n \r\n // }\r\n revokeResignation(selectedData : any, SubmitType : string) {\r\n if(SubmitType == \"Approve\")\r\n this.openDialog('Confirmation','Are you sure you want to Approve the Revoke?',selectedData,SubmitType);\r\n else\r\n this.openDialog('Confirmation','Are you sure you want to Reject the Revoke?',selectedData,SubmitType);\r\n }\r\n openDialog(Heading,Message,selectedData,SubmitType): void {\r\n const dialogRef = this.dialog.open(CommonDialogComponent, {\r\n width: '300px',\r\n disableClose: true,\r\n data: {heading: Heading, message: Message}\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.dialogResponse = result;\r\n if(this.dialogResponse==true){\r\n\r\n\r\n let submitData = {\r\n EmployeeId : selectedData.EmployeeId,\r\n SubmitType : SubmitType\r\n } \r\n this._pmApprovalService.ApproveOrRejectRevoke(submitData).subscribe(res=>{\r\n if(res){\r\n if(submitData.SubmitType == 'Approve'){\r\n this._snackBar.open('Revoke Approved successfully.', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n else if(submitData.SubmitType == 'Reject'){\r\n this._snackBar.open('Revoke Rejected successfully.', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n \r\n }\r\n // this.GetAssociateExitList();\r\n }\r\n });\r\n \r\n }\r\n });\r\n }\r\n viewResignationDets(selectedData : any){\r\n this.route.navigate(['/associateexit/pmApproval/' + selectedData.EmployeeId]);\r\n \r\n }\r\n abscondForm(){\r\n this.route.navigate(['/associateexit/associateabscondform']);\r\n\r\n }\r\n \r\n}\r\n","\r\n\r\n\r\n\r\n \r\n Projects\r\n \r\n \r\n
\r\n \r\n \r\n \r\n Project Name\r\n \r\n \r\n {{ element.ProjectName }}\r\n \r\n \r\n\r\n \r\n \r\n Project Manager\r\n \r\n \r\n {{ element.ManagerName }}\r\n \r\n \r\n\r\n \r\n \r\n Technology\r\n \r\n \r\n {{ element.PracticeAreaCode }}\r\n \r\n \r\n\r\n \r\n \r\n Client Name\r\n \r\n \r\n {{ element.ClientName }}\r\n \r\n \r\n \r\n \r\n Start Date\r\n \r\n \r\n {{ element.ActualStartDate }}\r\n \r\n \r\n \r\n \r\n Status\r\n \r\n \r\n {{ element.ProjectState }}\r\n \r\n \r\n\r\n \r\n \r\n View\r\n \r\n \r\n visibility\r\n \r\n \r\n\r\n \r\n \r\n \r\n No data\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n","import { Component, OnInit, ViewChild, ViewChildren, QueryList } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { ReasonForm, reasonData } from '../../models/reasonform.model';\r\n// import { ReportsFilterData } from '../../models/reportsfilter.model';\r\n// import { FinanceReportFilterData } from '../../models/reportsfilter.model';\r\nimport { Validators, FormGroup, FormBuilder, FormGroupDirective } from '@angular/forms';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport * as moment from 'moment';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\n// import { MatTableExporterModule } from 'mat-table-exporter';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource, MatTable } from '@angular/material/table';\r\nimport {\r\n MatSnackBar,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition,\r\n} from '@angular/material/snack-bar';\r\n\r\nimport { NavService } from '../../../master-layout/services/nav.service';\r\nimport { AssociateExitDashboardService } from '../../services/associate-exit-dashboard.service';\r\n\r\n@Component({\r\n selector: 'app-reason-form',\r\n templateUrl: './reason-form.component.html',\r\n styleUrls: ['./reason-form.component.scss']\r\n})\r\nexport class ReasonFormComponent implements OnInit {\r\n reasonlist : ReasonForm[]; \r\n EmployeeId: number;\r\n roleName: string;\r\n dashboard: string = \"ServiceMangerDashboard\";\r\n resources = servicePath.API.PagingConfigValue;\r\n dataSource = new MatTableDataSource();\r\ncauseForm: FormGroup;\r\n isLoading: boolean = false;\r\n searchFormSubmitted: boolean = false;\r\n searchData: reasonData;\r\n errorSummary: string = '';\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'right';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n public reportStatus: boolean = false;\r\n reasonReport: reasonData[] = [];\r\n fromDate: Date;\r\n toDate: Date;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n\r\n\r\n\r\n\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n \r\n displayedColumns: string[] = [\r\n 'employeeId', 'employeeName', 'reason',\r\n 'associatenumber', 'exitDate'\r\n ];\r\n\r\n constructor(\r\n public navService: NavService,\r\n \r\n private associateexitservice: AssociateExitDashboardService,\r\n\r\n private snackBar: MatSnackBar,\r\n\r\n\r\n){\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.getExitDashboard();\r\n }\r\n\r\n \r\n\r\n\r\n getExitDashboard() {\r\n\r\n this.roleName = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).roleName;\r\n this.EmployeeId = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).employeeId;\r\n this.associateexitservice\r\n .getAssociateExitDashbaord(this.roleName, this.EmployeeId, this.dashboard)//'Service Manager'\r\n .toPromise().then((res: reasonData[]) => {\r\n \r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }).catch(error => {\r\n \r\n });\r\n}\r\n\r\n apply() {\r\n this.isLoading = true;\r\n this.searchFormSubmitted = true;\r\n if (this.causeForm.controls.fromDate.value === '' || this.causeForm.controls.toDate.value === '' ){\r\n this.isLoading = false;\r\n return;\r\n }\r\n if (this.searchData.FromDate != null && this.searchData.ToDate != null) {\r\n this.errorSummary = '';\r\n if (moment(this.searchData.FromDate).isSameOrAfter(new Date())) {\r\n this.errorSummary = 'From date should be less than today';\r\n // this.messageService.add({ severity: 'error', summary: 'Warn message', detail: this.errorSummary });\r\n this.isLoading = false;\r\n this.snackBar.open('From date should be less than today', 'x', {\r\n duration: 5000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n\r\n return false;\r\n }\r\n if (moment(this.searchData.ToDate).isSameOrAfter(new Date())) {\r\n this.errorSummary = 'To date should be less than today';\r\n // this.messageService.add({ severity: 'error', summary: 'Warn message', detail: this.errorSummary });\r\n this.isLoading = false;\r\n this.snackBar.open('To date should be less than today', 'x', {\r\n duration: 5000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n return false;\r\n }\r\n if (moment(this.searchData.FromDate).isSameOrAfter(this.searchData.ToDate)) {\r\n this.errorSummary = 'From Date should be less than To Date';\r\n // this.messageService.add({ severity: 'error', summary: 'Warn message', detail: this.errorSummary });\r\n this.isLoading = false;\r\n this.snackBar.open('From Date should be less than To Date', 'x', {\r\n duration: 5000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n return false;\r\n }\r\n \r\n this.searchData = new reasonData();\r\n this.searchData.FromDate = moment(this.searchData.FromDate).toDate();\r\n this.searchData.ToDate = moment(this.searchData.ToDate).toDate();\r\n // this.reportsFilterData.financeReportFilterData.PageNumber = this.searchData.PageNumber;\r\n // this.reportsFilterData.financeReportFilterData.RowsPerPage = this.searchData.RowsPerPage;\r\n this.reportStatus = true;\r\n // this.associateexitservice.GetFinanceReport(this.searchData).subscribe((reportsData: Array) => {\r\n // if (reportsData){\r\n // this.reportStatus = false;\r\n // this.reasonReport = reportsData;\r\n // this.reasonReport.forEach((record: ReasonList) => {\r\n // record.FromDate = moment(record.FromDate).format('DD-MM-YYYY');\r\n // record.ToDate = moment(record.ToDate).format('DD-MM-YYYY');\r\n // });\r\n // this.isLoading = false;\r\n // this.dataSource = new MatTableDataSource(this.financeReport);\r\n // this.dataSource.paginator = this.paginator.toArray()[0];\r\n // this.dataSource.sort = this.sort.toArray()[0];\r\n // this.totalRecordsCount = this.financeReport.length;\r\n // this.fromDate = moment(this.searchData.FromDate).toDate();\r\n // this.toDate = moment(this.searchData.ToDate).toDate();\r\n // this.filterDisplay = false;\r\n // }\r\n // else{\r\n // this.isLoading = false;\r\n // }\r\n // },\r\n // (error: any) => {\r\n // this.errorMessage = [];\r\n // this.isLoading = false;\r\n // this.snackBar.open('Project Resource Not Found', 'x', {\r\n // duration: 5000,\r\n // horizontalPosition: this.horizontalPosition,\r\n // verticalPosition: this.verticalPosition,\r\n // });\r\n // });\r\n }\r\n \r\n}\r\nclearFilter = function () {\r\n this.formGroupDirective.resetForm();\r\n this.myForm.controls.columnselect.setValue(this.selectedColumns);\r\n this.searchFormSubmitted = false;\r\n this.errorSummary = '';\r\n this.searchData = new reasonData();\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 From Date\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 From Date\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\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 \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
Employee Id {{element.EmployeeCode}} Employee Name {{element.EmployeeName}} Exit Date {{element.ExitDate}} Reason {{element.reason}} Number of Associates {{element.associatenumber}}
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n","import {Component, Inject, OnInit, ViewEncapsulation} from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from \"@angular/material/dialog\";\r\nimport * as moment from 'moment';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\n\r\n\r\n@Component({\r\n selector: 'reject-dialog',\r\n templateUrl: './reject-dialog.component.html',\r\n styleUrls: ['./reject-dialog.component.css']\r\n})\r\nexport class RejectDialogComponent implements OnInit {\r\n\r\n public RejectForm : FormGroup;\r\n rejectReason : string;\r\n\r\n\r\n constructor(\r\n private dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any ) {\r\n\r\n this.RejectForm = new FormGroup({\r\n 'rejectReason' : new FormControl(this.rejectReason,Validators.required)\r\n })\r\n\r\n\r\n }\r\n\r\n ngOnInit() {\r\n\r\n }\r\n onNoClick(): void {\r\n this.dialogRef.close(null);\r\n }\r\n\r\n save() {\r\n if (this.RejectForm.invalid){\r\n return;\r\n }\r\n else{\r\n this.dialogRef.close(this.RejectForm.value);\r\n }\r\n }\r\n\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n\r\n}\r\n","\r\n

Reject Reason

\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n \r\n Reject Reason *\r\n \r\n\r\n \r\n Please enter reject reason.\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 { Component, OnInit, ViewChild } from \"@angular/core\";\r\nimport * as servicePath from \"../../../../core/service-paths\";\r\nimport { Router } from \"@angular/router\";\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NgxSpinnerService } from \"ngx-spinner\";\r\nimport { Associate } from 'src/app/modules/onboarding/models/associate.model';\r\nimport { SkillsService } from 'src/app/modules/onboarding/services/skills.service';\r\n\r\n@Component({\r\n selector: \"app-reporting-manager-dashboard\",\r\n templateUrl: \"./reporting-manager-dashboard.component.html\",\r\n styleUrls: [\"./reporting-manager-dashboard.component.scss\"]\r\n})\r\nexport class ReportingManagerDashboardComponent implements OnInit {\r\n projectstate:string;\r\n EmpId: number;\r\n roleName: string;\r\n dashboard: string = \"RMDashboard\";\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n resources = servicePath.API.PagingConfigValue;\r\n \r\n @ViewChild('skillapprovalPaginator', { static: false }) skillapprovalPaginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n _dataSource = new MatTableDataSource();\r\n EmployeesList : Associate[];\r\n\r\n displayedColumns: string[] = ['empcode', 'name', 'project', 'View'];\r\n \r\n constructor(\r\n private route: Router,\r\n private _snackBar: MatSnackBar,\r\n public navService: NavService,\r\n private spinner: NgxSpinnerService,\r\n private skillservice: SkillsService\r\n ) {\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n \r\n ngOnInit() {\r\n this.spinner.show(); \r\n this.roleName = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).roleName;\r\n this.EmpId = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).employeeId;\r\n\r\n this.getSkillSubmittedEmployees();\r\n \r\n }\r\n\r\n getSkillSubmittedEmployees() {\r\n this.skillservice.getSkillSubmittedEmployees(this.EmpId).subscribe((res: Associate[]) => {\r\n this.EmployeesList = res;\r\n this._dataSource = new MatTableDataSource(this.EmployeesList);\r\n this._dataSource.paginator = this.skillapprovalPaginator;\r\n this._dataSource.sort = this.sort;\r\n this.spinner.hide();\r\n },\r\n (error)=>{\r\n if(error.error != \"No Record is available\")\r\n {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n } \r\n });\r\n \r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this._dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this._dataSource = new MatTableDataSource(this._dataSource.data);\r\n }\r\n if (this._dataSource.paginator) {\r\n this._dataSource.paginator.firstPage();\r\n }\r\n this._dataSource.paginator = this.skillapprovalPaginator;\r\n this._dataSource.sort = this.sort;\r\n }\r\n ViewSkills(element) {\r\n this.route.navigate(['/shared/submitted-skills/'+element.EmployeeId]);\r\n } \r\n}\r\n","\r\n\r\n \r\n Skills\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 \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n Employee Code\r\n \r\n {{ element.EmployeeCode }}\r\n Employee Name\r\n \r\n {{ element.EmployeeName }}\r\n Project\r\n \r\n {{ element.ProjectName }}\r\n \r\n View\r\n \r\n visibility\r\n
No Record is available
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n","import { Component, OnInit, ViewChild } from \"@angular/core\";\r\nimport { ProjectsData } from \"src/app/modules/master-layout/models/projects.model\";\r\nimport * as moment from \"moment\";\r\nimport { DeliveryHeadService } from \"../../services/delivery-head.service\";\r\nimport * as servicePath from \"../../../../core/service-paths\";\r\nimport { ProjectCreationService } from \"../../../project-life-cycle/services/project-creation.service\";\r\nimport { Router } from \"@angular/router\";\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NgxSpinnerService } from \"ngx-spinner\";\r\nimport { FormGroupDirective } from \"@angular/forms\";\r\n\r\n@Component({\r\n selector: 'app-service-manager-dashboard',\r\n templateUrl: './service-manager-dashboard.component.html',\r\n styleUrls: ['./service-manager-dashboard.component.scss']\r\n})\r\nexport class ServiceManagerDashboardComponent implements OnInit {\r\n EmpId: number;\r\n roleName: string;\r\n dashboard: string = \"SHDashboard\";\r\n ProjectsList: ProjectsData[];\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n resources = servicePath.API.PagingConfigValue;\r\n dataSource = new MatTableDataSource();\r\n pageload: boolean = false;\r\n EmployeeId: number;\r\n // dashboard: string = \"ServiceMangerDashboard\";\r\n isLoading: boolean = false;\r\n serviceDeptId : number = 0;\r\n\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n cols = [\r\n { field: 'ProjectName', header: 'Project Name' },\r\n { field: 'ManagerName', header: 'Program Manager' },\r\n { field: 'PracticeAreaCode', header: 'Technology' },\r\n { field: 'ClientName', header: 'Client Name' },\r\n { field: 'ActualStartDate', header: 'Start Date' },\r\n { field: 'ProjectState', header: 'Status' },\r\n ];\r\n displayedColumns: string[] = [\r\n 'ProjectName',\r\n 'ManagerName',\r\n 'PracticeAreaCode',\r\n 'ClientName',\r\n // 'ActualStartDate',\r\n 'ProjectState',\r\n 'Action',\r\n ];\r\n\r\n\r\n constructor(\r\n private _deliveryHeadService: DeliveryHeadService,\r\n private route: Router,\r\n private ProjectCreationServiceObj: ProjectCreationService,\r\n private _snackBar: MatSnackBar,\r\n public navService: NavService,\r\n private spinner: NgxSpinnerService,\r\n private snackBar: MatSnackBar,\r\n ) {\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.spinner.show();\r\n this.GetProjectsList();\r\n }\r\n \r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.dataSource.data);\r\n }\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n \r\n\r\n GetProjectsList(): void {\r\n this.roleName = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).roleName;\r\n this.EmpId = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).employeeId;\r\n this._deliveryHeadService\r\n .GetProjectsList(this.roleName, this.EmpId, this.dashboard)//'Service Manager'\r\n .toPromise().then((res: ProjectsData[]) => {\r\n this.ModifyDateFormat(res);\r\n this.dataSource.data = res;\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }).catch(error=>{\r\n this.spinner.hide();\r\n this.pageload = true;\r\n // this._snackBar.open('An error has occurred. Please contact administration.', 'x', {\r\n // duration: 2000,\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // });\r\n });\r\n }\r\n\r\n ModifyDateFormat(data: ProjectsData[]): void {\r\n data.forEach(e => {\r\n if (e.ActualStartDate != null) {\r\n e.ActualStartDate = moment(e.ActualStartDate).format(\"MM/DD/YYYY\");\r\n }\r\n if (e.ActualEndDate != null) {\r\n e.ActualEndDate = moment(e.ActualEndDate).format(\"MM/DD/YYYY\");\r\n }\r\n if (e.PlannedStartDate != null) {\r\n e.PlannedStartDate = moment(e.PlannedStartDate).format(\"MM/DD/YYYY\");\r\n }\r\n if (e.PlannedEndDate != null) {\r\n e.PlannedEndDate = moment(e.PlannedEndDate).format(\"MM/DD/YYYY\");\r\n }\r\n });\r\n this.ProjectsList = data;\r\n this.pageload = true;\r\n this.spinner.hide();\r\n }\r\n\r\n ViewChecklist(ProjectObject: ProjectsData){\r\n this.ProjectCreationServiceObj.SetProjectId(ProjectObject.ProjectId);\r\n this.route.navigate(['project/checklist']);\r\n } \r\n}\r\n","\r\n \r\n Projects\r\n \r\n \r\n
\r\n \r\n \r\n \r\n Project Name\r\n \r\n \r\n {{ element.ProjectName }}\r\n \r\n \r\n \r\n \r\n \r\n Project Manager\r\n \r\n \r\n {{ element.ManagerName }}\r\n \r\n \r\n \r\n \r\n \r\n Technology\r\n \r\n \r\n {{ element.PracticeAreaCode }}\r\n \r\n \r\n \r\n \r\n \r\n Client Name\r\n \r\n \r\n {{ element.ClientName }}\r\n \r\n \r\n \r\n \r\n \r\n Status\r\n \r\n \r\n {{ element.ProjectState }}\r\n \r\n \r\n \r\n \r\n \r\n View\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n No data\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { SkillsService } from '../../../onboarding/services/skills.service';\r\nimport { SkillData } from '../../../master-layout/models/skills.model'\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { CommonDialogComponent } from '../common-dialog/common-dialog.component';\r\nimport { EditSkillDialogComponent } from '../edit-skill-dialog/edit-skill-dialog.component';\r\n\r\nexport interface PeriodicElement {\r\n skillname: string;\r\n proficiency: string;\r\n experience: number;\r\n lastused: string;\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'app-submitted-skills',\r\n templateUrl: './submitted-skills.component.html',\r\n styleUrls: ['./submitted-skills.component.scss']\r\n})\r\nexport class SubmittedSkillsComponent implements OnInit {\r\n\r\n id: number;\r\n displayedColumns: string[] = [\r\n 'SkillName',\r\n 'Version',\r\n 'Proficiency',\r\n 'IsPrimary',\r\n 'Experience',\r\n 'LastUsed',\r\n 'Remarks',\r\n 'Edit',\r\n ];\r\n dataSource = new MatTableDataSource();\r\n skills: SkillData[];\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n \r\n constructor(private skillService:SkillsService,\r\n private route: Router,\r\n private actRoute: ActivatedRoute,\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar) {\r\n this.actRoute.params.subscribe(params => { this.id = params.id; });\r\n this.getEmployeeSkillById();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getEmployeeSkillById();\r\n }\r\n getEmployeeSkillById(){\r\n this.skillService.getNewSkillsByEmployee(this.id).subscribe((res : SkillData[]) => {\r\n this.skills = res;\r\n this.dataSource = new MatTableDataSource(this.skills);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n });\r\n }\r\n editSkill(skillObj) {\r\n const dialogRef = this.dialog.open(EditSkillDialogComponent, {\r\n width: '500px',\r\n data: {\r\n skillData:skillObj\r\n },\r\n disableClose: true \r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.getEmployeeSkillById();\r\n });\r\n }\r\n\r\n Approve() {\r\n const dialogRef = this.dialog.open(CommonDialogComponent, {\r\n width: '300px',\r\n data: {heading: 'Confirmation', message: 'Are you sure you want to Approve?'},\r\n disableClose: true \r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if(result==true){\r\n this.skillService.ApproveSkillRM(this.id).subscribe(res => {\r\n if(res == \"Successfully Approved all the submitted skills\"){\r\n this.skillService.updateEmpSkillDetailsByRM(this.id).subscribe(res => {\r\n this._snackBar.open('Skills Approved Succesfully', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n setTimeout(() => {\r\n this.route.navigate(['/shared/dashboard']);\r\n }, 1000);\r\n },\r\n (error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n })\r\n }\r\n else {\r\n this._snackBar.open('Failed to Update', 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n }\r\n },\r\n (error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top'\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 \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 \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 Skill Name\r\n \r\n {{ element.SkillName }}\r\n \r\n Version\r\n \r\n {{ element.Version }}\r\n Proficiency\r\n \r\n {{ element.ProficiencyByRM }}\r\n IsPrimary\r\n \r\n {{ element.IsPrimary ? 'Yes' : 'No'}}\r\n Experience(In Years)\r\n \r\n {{ element.Experience }}\r\n Last Used\r\n \r\n {{ element.LastUsed }}\r\n Remarks \r\n {{ element.Remarks}}\r\n Edit \r\n edit\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n ","\r\nimport { Component, OnInit, ViewChild } from \"@angular/core\";\r\nimport { ProjectsData } from \"src/app/modules/master-layout/models/projects.model\";\r\nimport * as moment from \"moment\";\r\nimport { DeliveryHeadService } from \"../../services/delivery-head.service\";\r\nimport * as servicePath from \"../../../../core/service-paths\";\r\nimport { ProjectCreationService } from \"../../../project-life-cycle/services/project-creation.service\";\r\nimport { Router } from \"@angular/router\";\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NgxSpinnerService } from \"ngx-spinner\";\r\nimport { ResignastionService } from \"src/app/modules/AssociateExit/Services/resignastion.service\";\r\nimport { AssociateExitDashboardService } from \"../../services/associate-exit-dashboard.service\";\r\nimport {KTPlanDialogComponent} from '../KT-plan-dialog/KT-plan-dialog.component';\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\n\r\n@Component({\r\n selector: 'app-team-lead-dashboard',\r\n templateUrl: './team-lead-dashboard.component.html',\r\n styleUrls: ['./team-lead-dashboard.component.scss']\r\n})\r\nexport class TeamLeadDashboardComponent implements OnInit {\r\n resources = servicePath.API.PagingConfigValue;\r\n pageload: boolean = false;\r\n dashboard: string;\r\n EmpId: number;\r\n roleName: string;\r\n temroleName:string;\r\n ProjectsList: ProjectsData[];\r\n dataSource = new MatTableDataSource();\r\n\r\n UserRole : string;\r\n empId : number;\r\n loggedInEmpId: number;\r\n\r\n dataSource1: MatTableDataSource;\r\n\r\n displayColumns = ['EmployeeCode','EmployeeName','Designation','ExitDate','StatusCode','TransitionPlan'];\r\n // content : tableContent[];\r\n departmentName: string;\r\n departmentId: number;\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild('exitPaginator', { static: false }) exitPaginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n \r\n displayedColumns: string[] = [\r\n 'ProjectName',\r\n 'ManagerName',\r\n 'PracticeAreaCode',\r\n 'ClientName',\r\n // 'ActualStartDate',\r\n 'ProjectState',\r\n 'View',\r\n ];\r\n constructor(private _router: Router, private _deliveryHeadService: DeliveryHeadService,\r\n private ProjectCreationServiceObj: ProjectCreationService,\r\n public dialog:MatDialog,\r\n public navService: NavService, private spinner: NgxSpinnerService,\r\n private _snackBar: MatSnackBar, private _resignationService : ResignastionService,\r\n private _associateExitDashboardService : AssociateExitDashboardService) {\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n }); }\r\n\r\n ngOnInit(): void {\r\n this.spinner.show();\r\n this.roleName = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).roleName;\r\n this.loggedInEmpId = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).employeeId;\r\n this.departmentId = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).departmentId;\r\n let RolesAndDepartments = JSON.parse(sessionStorage['RolesAndDepartments'])\r\n RolesAndDepartments.forEach(e => {\r\n if(this.departmentId === e.DepartmentId){\r\n this.departmentName = e.DepartmentCode\r\n }\r\n })\r\n if(this.departmentName === 'Delivery'){\r\n this.dashboard = \"DeliveryDashboard\";\r\n this.GetProjectsList();\r\n }\r\n else{\r\n this.dashboard = \"ServiceDashboard\";\r\n this.displayColumns = ['EmployeeCode','EmployeeName','Designation','ExitDate','StatusCode','View', 'Action'];\r\n }\r\n //this.getResignedEmployees();\r\n this.getAssociateExitList()\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.dataSource.data);\r\n }\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n } \r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n \r\n\r\n GetProjectsList(): void {\r\n this.roleName = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).roleName;\r\n \r\n this.EmpId = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).employeeId;\r\n this._deliveryHeadService\r\n .GetProjectsList(this.roleName, this.EmpId, this.dashboard)\r\n .toPromise().then((res: ProjectsData[]) => {\r\n this.spinner.hide();\r\n this.ModifyDateFormat(res);\r\n this.dataSource.data = res;\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }).catch(error=>{\r\n this.spinner.hide();\r\n this.pageload = true;\r\n // this._snackBar.open('An error has occurred. Please contact administration.', 'x', {\r\n // duration: 2000,\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // });\r\n });;\r\n }\r\n\r\n ModifyDateFormat(data: ProjectsData[]): void {\r\n data.forEach(e => {\r\n if (e.ActualStartDate != null) {\r\n e.ActualStartDate = moment(e.ActualStartDate).format(\"MM/DD/YYYY\");\r\n }\r\n if (e.ActualEndDate != null) {\r\n e.ActualEndDate = moment(e.ActualEndDate).format(\"MM/DD/YYYY\");\r\n }\r\n if (e.PlannedStartDate != null) {\r\n e.PlannedStartDate = moment(e.PlannedStartDate).format(\"MM/DD/YYYY\");\r\n }\r\n if (e.PlannedEndDate != null) {\r\n e.PlannedEndDate = moment(e.PlannedEndDate).format(\"MM/DD/YYYY\");\r\n }\r\n });\r\n this.ProjectsList = data;\r\n this.pageload = true;\r\n }\r\n\r\n ViewProject(ProjectObject: ProjectsData) {\r\n this.ProjectCreationServiceObj.SetProjectId(ProjectObject.ProjectId);\r\n this._router.navigate([\"/project/viewteamlead/\" + this.dashboard]);\r\n }\r\n\r\n getAssociateExitList():void{\r\n this.spinner.show();\r\n // let dashboardType = \"DeliveryDashboard\";\r\n this._associateExitDashboardService.getAssociateExitDashbaord(this.roleName, this.loggedInEmpId, this.dashboard).toPromise().then((res: any[]) => {\r\n res.forEach(e => { e.ExitDate = moment(e.ExitDate).format(\"MM/DD/YYYY\"); });\r\n this.dataSource1 = new MatTableDataSource(res);\r\n this.dataSource1.sort = this.sort;\r\n this.dataSource1.paginator = this.exitPaginator;\r\n this.pageload = true;\r\n this.spinner.hide();\r\n }).catch(error => {\r\n this.spinner.hide();\r\n this.pageload = true;\r\n // this._snackBar.open('An error has occurred. Please contact administration.', 'x', {\r\n // duration: 2000,\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // });\r\n });\r\n\r\n }\r\n \r\n\r\n viewResignationDets(selectedData : any){\r\n this._router.navigate(['/shared/KtForm/' + selectedData.empId]);\r\n }\r\n\r\n UpdateKTPLan(selectedEmpId) {\r\n var dialogRef= this.dialog.open(KTPlanDialogComponent, { \r\n width:'500px',\r\n disableClose: true ,\r\n data: { EmployeeId: selectedEmpId },\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.getAssociateExitList();\r\n })\r\n\r\n \r\n }\r\n\r\n PMSubmissionScreen(selectedData){\r\n this._router.navigate(['/associateexit/PMSubmission/' + selectedData.EmployeeId]);\r\n }\r\n \r\n}\r\n","\r\n \r\n\r\n \r\n Projects\r\n \r\n \r\n
\r\n \r\n \r\n \r\n Project Name\r\n \r\n \r\n {{ element.ProjectName }}\r\n \r\n \r\n \r\n \r\n \r\n Project Manager\r\n \r\n \r\n {{ element.ManagerName }}\r\n \r\n \r\n \r\n \r\n \r\n Technology\r\n \r\n \r\n {{ element.PracticeAreaCode }}\r\n \r\n \r\n \r\n \r\n \r\n Client Name\r\n \r\n \r\n {{ element.ClientName }}\r\n \r\n \r\n \r\n \r\n \r\n Status\r\n \r\n \r\n {{ element.ProjectState }}\r\n \r\n \r\n \r\n \r\n \r\n View\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n No data\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n 0)\">\r\n \r\n Associate Exit Actions\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\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 \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
Employee Code {{element.EmployeeCode}} Employee Name {{element.EmployeeName}} Designation {{element.Designation}} Exit Date {{element.ExitDate}} Status{{element.StatusDesc}} Transition Plan \r\n \r\n \r\n \"Transition\r\n \r\n View\r\n visibility\r\n Action \r\n \r\n \r\n \"Transition\r\n \r\n \r\n \r\n
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n ","import { THIS_EXPR } from '@angular/compiler/src/output/output_ast';\r\nimport { Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { Router } from '@angular/router';\r\nimport * as moment from 'moment';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { AssociateExit } from '../../../AssociateExit/Models/associateExit.model';\r\nimport { ChecklistService } from '../../../AssociateExit/Services/checklist.service';\r\nimport { PmApprovalService } from '../../../AssociateExit/Services/pm-approval.service';\r\nimport { ResignastionService } from '../../../AssociateExit/Services/resignastion.service';\r\nimport { NavService } from '../../../master-layout/services/nav.service';\r\nimport { CommonDialogComponent } from '../common-dialog/common-dialog.component';\r\nimport { AssociateExitDashboardService } from '../../services/associate-exit-dashboard.service';\r\nimport { MessageDialogComponent } from 'src/app/modules/project-life-cycle/components/message-dialog/message-dialog.component';\r\nimport { RevokeDialogComponent } from 'src/app/modules/AssociateExit/Components/revoke-dialog/revoke-dialog.component';\r\nimport { ViewDetailedStatusComponent } from '../view-detailed-status/view-detailed-status.component';\r\n\r\n@Component({\r\n selector: 'app-view-associteexit',\r\n templateUrl: './view-associteexit.component.html',\r\n styleUrls: ['./view-associteexit.component.scss']\r\n})\r\nexport class ViewAssociteexitComponent implements OnInit {\r\n\r\n EmpId: number;\r\n roleName: string;\r\n dashboard: string;\r\n allDashboards =\r\n {\r\n 'Program Manager': 'PMDashboard',\r\n HRM: 'ActiveResignationsDashboard',\r\n HRA: 'HRADashboard',\r\n 'Admin Manager': 'SHDashboard',\r\n 'Finance Manager': 'SHDashboard',\r\n 'IT Manager': 'SHDashboard',\r\n 'Training Department Head': 'SHDashboard',\r\n 'Quality and Information Security Manager': 'SHDashboard',\r\n 'Corporate': 'CorporateDashboard'\r\n // \"Team Lead\":\"TLDashboard\"\r\n };\r\n\r\n @ViewChild('exitPaginator', { static: false }) exitPaginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n dataSourceAssociateExit: MatTableDataSource;\r\n dialogResponse: boolean;\r\n displayColumnsAssociateExit = ['EmployeeCode', 'EmployeeName', 'Designation', 'ExitDate', 'StatusCode', 'RevokeStatus', 'View', 'Action'];\r\n pageload = false;\r\n isLoading = false;\r\n associateList: AssociateExit[];\r\n moment: any = moment;\r\n // currentDate: moment.Moment;\r\n currentDate:string;\r\n\r\n constructor(\r\n private route: Router,\r\n private _snackBar: MatSnackBar,\r\n public navService: NavService,\r\n private _resignationService: ResignastionService,\r\n private _pmApprovalService: PmApprovalService,\r\n private _associateExitDashboardService: AssociateExitDashboardService,\r\n private _checkListService: ChecklistService,\r\n public dialog: MatDialog,\r\n private spinner: NgxSpinnerService\r\n ) {\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n this.currentDate = moment(new Date()).format('MM/DD/YYYY');\r\n }\r\n\r\n ngOnInit() {\r\n this.spinner.show();\r\n this.roleName = JSON.parse(\r\n sessionStorage.AssociatePortal_UserInformation\r\n ).roleName;\r\n this.EmpId = JSON.parse(\r\n sessionStorage.AssociatePortal_UserInformation\r\n ).employeeId;\r\n this.dashboard = this.allDashboards[this.roleName];\r\n this.GetAssociateExitList();\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSourceAssociateExit.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSourceAssociateExit = new MatTableDataSource(this.associateList);\r\n this.dataSourceAssociateExit.paginator = this.exitPaginator;\r\n this.dataSourceAssociateExit.sort = this.sort;\r\n }\r\n }\r\n\r\n\r\n GetAssociateExitList(): void {\r\n this._associateExitDashboardService.getAssociateExitDashbaord(this.roleName, this.EmpId, this.dashboard).subscribe((res: any[]) => {\r\n res.forEach(e => {\r\n e.ExitDate = moment(e.ExitDate).format('MM/DD/YYYY');\r\n if (e.RevokeStatusCode === 'RevokeInitiated') {\r\n this._resignationService.getExitDetailsById(e.EmployeeId).subscribe((response: any) => {\r\n e.WithdrawReason = response.WithdrawReason;\r\n });\r\n }\r\n this.spinner.hide();\r\n });\r\n this.associateList = res;\r\n this.dataSourceAssociateExit = new MatTableDataSource(this.associateList);\r\n this.dataSourceAssociateExit.sort = this.sort;\r\n this.dataSourceAssociateExit.paginator = this.exitPaginator;\r\n });\r\n\r\n }\r\n revokeResignation(selectedData: any, SubmitType: string, Comment: string) {\r\n const dialogRef = this.dialog.open(RevokeDialogComponent, {\r\n height: '270px',\r\n width: '500px',\r\n disableClose: true,\r\n data: { value: SubmitType}\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.dialogResponse = result;\r\n if (this.dialogResponse) {\r\n\r\n\r\n const submitData = {\r\n EmployeeId: selectedData.EmployeeId,\r\n SubmitType,\r\n Comment,\r\n RevokeReason: result.RevokeReason\r\n };\r\n this.spinner.show();\r\n this._pmApprovalService.ApproveOrRejectRevoke(submitData).subscribe(res => {\r\n this.spinner.hide();\r\n if (res) {\r\n if (submitData.SubmitType === 'Approve') {\r\n this._snackBar.open('Revoke Approved successfully.', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n else if (submitData.SubmitType === 'Reject') {\r\n this._snackBar.open('Revoke Rejected successfully.', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n }\r\n this.GetAssociateExitList();\r\n }\r\n });\r\n\r\n }\r\n });\r\n // if (SubmitType == \"Approve\")\r\n // this.openDialog('Confirmation', 'Are you sure you want to Approve the Revoke?', selectedData, SubmitType);\r\n // else\r\n // this.openDialog('Confirmation', 'Are you sure you want to Reject the Revoke?', selectedData, SubmitType);\r\n }\r\n openDialog(Heading, Message, selectedData, SubmitType): void {\r\n const dialogRef = this.dialog.open(CommonDialogComponent, {\r\n width: '300px',\r\n disableClose: true,\r\n data: { heading: Heading, message: Message }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.dialogResponse = result;\r\n if (this.dialogResponse === true) {\r\n const submitData = {\r\n EmployeeId: selectedData.EmployeeId,\r\n SubmitType\r\n };\r\n this.spinner.show();\r\n this._pmApprovalService.ApproveOrRejectRevoke(submitData).subscribe(res => {\r\n this.spinner.hide();\r\n if (res) {\r\n if (submitData.SubmitType === 'Approve') {\r\n this._snackBar.open('Revoke Approved successfully.', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n else if (submitData.SubmitType === 'Reject') {\r\n this._snackBar.open('Revoke Rejected successfully.', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n }\r\n this.GetAssociateExitList();\r\n }\r\n });\r\n\r\n }\r\n });\r\n }\r\n viewResignationDets(selectedData: any) {\r\n this.route.navigate(['/associateexit/pmApproval/' + selectedData.EmployeeId]);\r\n\r\n }\r\n abscondForm() {\r\n this.route.navigate(['/associateexit/associateabscondform']);\r\n\r\n }\r\n\r\n getExitChecklist(selectedData: any) {\r\n this.route.navigate(['/associateexit/view/' + selectedData.EmployeeId]);\r\n }\r\n\r\n getCleranceForm(selectedData: any) {\r\n this.route.navigateByUrl('/associateexit/deptchecklist/' + selectedData.EmployeeId, { state: selectedData.ExitDate });\r\n\r\n }\r\n Associateexitform(selectedData: any) {\r\n // this.route.navigate([\"/associateexit/view/\" + selectedData.EmployeeId]);\r\n\r\n this.route.navigate(['/associateexit/exitfeedback/' + selectedData.EmployeeId]);\r\n }\r\n\r\n onList(selectedData: any) {\r\n this.route.navigate(['/associateexit/deptchecklist/' + selectedData.EmployeeId]);\r\n\r\n }\r\n\r\n initiateactivities(selectedData: any) {\r\n this.spinner.show();\r\n this._checkListService.CreateActivityChecklist(selectedData.EmployeeId, this.EmpId).toPromise()\r\n .then(() => {\r\n this.spinner.hide();\r\n this._snackBar.open('Initiated Successfully', 'x', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.GetAssociateExitList();\r\n }).catch(\r\n error => {\r\n this.spinner.hide();\r\n this._snackBar.open('Error initiating activities.', 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n // }\r\n }\r\n PMSubmissionScreen(selectedData){\r\n this.route.navigate(['/associateexit/PMSubmission/' + selectedData.EmployeeId]);\r\n }\r\n ViewDetailedStatus(EmployeeId: number) {\r\n const dialogRef = this.dialog.open(ViewDetailedStatusComponent, {\r\n width: '500px',\r\n // disableClose: true,\r\n data: { value: EmployeeId}\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.dialogResponse = result;\r\n })\r\n }\r\n SendReminder(element){\r\n this._pmApprovalService.ReviewReminderNotification(element.EmployeeId).subscribe(res =>{\r\n if(res['IsSuccessful'] === true){\r\n this._snackBar.open('Sent reminder successfully', 'x', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n else{\r\n this._snackBar.open('Error while sending reminder.', 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n })\r\n\r\n }\r\n}\r\n\r\n","\r\n
\r\n \r\n \r\n Associate Exit Actions\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 \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 \r\n\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
Emp Id {{element.EmployeeCode}} Employee Name\r\n {{element.EmployeeName}} Designation\r\n {{element.Designation}} Exit Date {{element.ExitDate}} Status \r\n {{element.StatusDesc}}\r\n {{element.StatusDesc}}\r\n Revoke Status \r\n
\r\n {{element.RevokeStatusDesc}}\r\n notes\r\n
\r\n
\r\n View \r\n visibility\r\n visibility\r\n visibility\r\n visibility\r\n visibility\r\n \r\n Action \r\n \r\n \r\n \r\n \r\n\r\n \r\n Exit Interview\r\n \r\n \r\n check\r\n clear\r\n \r\n notes\r\n \r\n \r\n \r\n check\r\n \r\n \r\n edit\r\n \r\n
No Records
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { ResignastionService } from 'src/app/modules/AssociateExit/Services/resignastion.service';\r\n\r\n@Component({\r\n selector: 'app-view-detailed-status',\r\n templateUrl: './view-detailed-status.component.html',\r\n styleUrls: ['./view-detailed-status.component.scss']\r\n})\r\nexport class ViewDetailedStatusComponent implements OnInit {\r\n\r\n EmpId: number;\r\n statusDetails: any;\r\n rolesAndDepartments: any;\r\n constructor(private resignation:ResignastionService,\r\n @Inject(MAT_DIALOG_DATA) public data: any) { }\r\n\r\n ngOnInit(): void {\r\n this.EmpId = JSON.parse(\r\n sessionStorage.AssociatePortal_UserInformation\r\n ).employeeId;\r\n this.rolesAndDepartments = JSON.parse(\r\n sessionStorage.getItem('RolesAndDepartments')\r\n )\r\n this.getStatusDetails();\r\n }\r\n \r\n getStatusDetails(){\r\n this.resignation.GetResignationSubStatus(this.data.value).subscribe(res => {\r\n this.statusDetails =res\r\n if(this.statusDetails['AssociateExitStatusCode'] === 'ResignationInProgress'){\r\n if(this.statusDetails['ActivitiesSubStatus']){\r\n this.statusDetails['ActivitiesSubStatus'].forEach((dept,i) => {\r\n this.rolesAndDepartments.forEach(e => {\r\n if(e.DepartmentId === dept.DepartmentId)\r\n this.statusDetails['ActivitiesSubStatus'][i]['DepartmentName'] = e.DepartmentCode\r\n })\r\n })\r\n }\r\n }\r\n })\r\n }\r\n\r\n getColor(status){\r\n if(status === 'DepartmentActivityInProgress'){\r\n return 'orange'\r\n }\r\n else if(status === 'DepartmentActivityCompleted'){\r\n return 'green'\r\n }\r\n else{\r\n return 'white'\r\n }\r\n }\r\n}\r\n","

Status

\r\n\r\n
\r\n Activities\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 Department\r\n \r\n Status\r\n
{{item.DepartmentName}}\r\n {{item.ActivityStatusDesc}}
\r\n
\r\n Activities: \r\n Not Yet Started\r\n
\r\n
\r\n KT Plan: \r\n Not Yet\r\n Started\r\n {{statusDetails['KTPlanSubStatus']['SubStatusDesc']}}\r\n
\r\n
\r\n Exit Interview: \r\n Not Yet Started\r\n {{statusDetails['ExitInterviewSubStatus']['SubStatusDesc']}}\r\n
\r\n\r\n
\r\n
\r\n {{this.statusDetails['AssociateExitStatusDesc']}} at HRM\r\n
\r\n\r\n
\r\n\r\n \r\n","import { Injector } from '@angular/core';\r\n\r\nlet appInjectorRef: Injector;\r\nexport const AppInjector = (injector?: Injector): Injector => {\r\n if (injector) {\r\n appInjectorRef = injector;\r\n }\r\n\r\n return appInjectorRef;\r\n};","export class KtForm {\r\n TransistionType: string;\r\n EmployeeId: number;\r\n Type: string;\r\n ProjectId: number;\r\n TransitionFrom: number;\r\n TransitionTo: number;\r\n StartDate: Date;\r\n EndDate:Date;\r\n KnowledgeTransferred: boolean;\r\n KnowledgeTransaferredRemarks:string;\r\n Others: string;\r\n Status: string;\r\n UpdateTransitionDetail: UpdateTransitionPlan[];\r\n TransitionNotRequired:boolean;\r\n Remarks:string;\r\n \r\n}\r\n\r\nexport class KtFormWithSubStatus {\r\n TransistionType: string;\r\n EmployeeId: number;\r\n Type: string;\r\n ProjectId: number;\r\n TransitionFrom: number;\r\n TransitionTo: number;\r\n StartDate: Date;\r\n EndDate:Date;\r\n KnowledgeTransferred: boolean;\r\n KnowledgeTransaferredRemarks:string;\r\n Others: string;\r\n Status: string;\r\n UpdateTransitionDetail: UpdateTransitionPlan[];\r\n SubStatusCode: string;\r\n SubStatusDesc: string;\r\n}\r\n\r\nexport class UpdateTransitionPlan{\r\n TransitionPlanDetailId: number;\r\n TransitionPlanId: number;\r\n ActivityId: number;\r\n StartDate: Date;\r\n EndDate: Date;\r\n Remarks: Date;\r\n Status: string;\r\n ActivityDescription: string;\r\n}","export class ReasonForm {\r\n \r\n public EmployeeCode: number;\r\n public EmployeeName: string;\r\n public ExitDate: string;\r\n public reason: string;\r\n public associatenumber: number;\r\n public ProgramManager: string;\r\n public FromDate: string;\r\n public ToDate: string;\r\n }\r\n \r\n\r\n export class reasonData {\r\n public FromDate: Date;\r\n public ToDate: Date;\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { environment } from 'src/environments/environment';\r\nimport * as servicePath from '../../../core/service-paths'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AssociateExitDashboardService {\r\n\r\n _resources = servicePath.API.Resignation;\r\n _resoureReview = servicePath.API.AssociateExitInterviewReviewInfo\r\n private _employeeMicroService: string;\r\n\r\n constructor(private httpClient: HttpClient) {\r\n this._employeeMicroService = environment.EmployeeMicroService;\r\n }\r\n\r\n getAssociateExitDashbaord(userRole: string, empId: number, dashboard: string){\r\n const departmentId = JSON.parse(\r\n sessionStorage.Department\r\n ).DepartmentId;\r\n const _url = this._employeeMicroService +this._resources.GetAssociateExitDashbaord + userRole + '/' + empId + '/' + dashboard + '/' + departmentId;\r\n return this.httpClient.get(_url);\r\n }\r\n\r\n associateExitInterviewReview(fromdate,todate){\r\n const reqObj = {'fromdate':fromdate,'todate':todate};\r\n const _url = this._employeeMicroService +this._resoureReview.AssociateExitInterviewReview\r\n return this.httpClient.post(_url,reqObj);\r\n }\r\n create(reqObj){\r\n const _url = this._employeeMicroService +this._resoureReview.Create\r\n return this.httpClient.post(_url,reqObj);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { SkillsData } from '../../master-layout/models/project-role.model';\r\n// import { ResponseContentType } from '@angular/http';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class DashboardService {\r\n private _roleName: string;\r\n private _userName: string;\r\n private _serverURL: string;\r\n private _hrm: string;\r\n\r\n public notificationCount: number;\r\n _employeeServerURL: string;\r\n _resources: any;\r\n constructor(private httpClient: HttpClient) {\r\n let loginData: any = JSON.parse(\r\n sessionStorage['AssociatePortal_UserInformation']\r\n );\r\n this._roleName = loginData.roleName;\r\n this._userName = loginData.email;\r\n this._serverURL = environment.ServerUrl;\r\n this._employeeServerURL = environment.EmployeeMicroService;\r\n this._resources = servicePath.API.Dashboard;\r\n }\r\n\r\n getDashboardNotificationCount() {\r\n let _url = this._serverURL;\r\n switch (this._roleName) {\r\n case 'HRM': {\r\n _url += '/SystemNotification/GetNotificationCount?notificationTypeId=2';\r\n break;\r\n }\r\n case 'RM': {\r\n _url += '/SystemNotification/GetNotificationCount?notificationTypeId=2';\r\n break;\r\n }\r\n case 'ITHead': {\r\n _url += '/SystemNotification/CountNotifications';\r\n break;\r\n }\r\n case 'FinanceHead': {\r\n _url += '/SystemNotification/CountFinanceNotifications';\r\n break;\r\n }\r\n case 'AdminHead': {\r\n _url += '/SystemNotification/CountAdminNotifications';\r\n break;\r\n }\r\n case 'HRA': {\r\n _url +=\r\n '/SystemNotification/GetHRANotificationCount?notificationTypeId=2';\r\n break;\r\n }\r\n case 'SystemAdmin': {\r\n _url += '/SystemNotification/CountAdminNotifications';\r\n break;\r\n }\r\n case 'Program Manager': {\r\n _url += '/ProjectRoleAssignment/CountRoleNotifications';\r\n break;\r\n }\r\n default: {\r\n _url += '/KRA/GetAssociateKRADetails?emailId=' + this._userName;\r\n break;\r\n }\r\n }\r\n return this.httpClient.get(_url);\r\n }\r\n\r\n getHRHeadDetails() {\r\n let _url = this._employeeServerURL + this._resources.getPendingProfiles;\r\n return this.httpClient.get(_url);\r\n }\r\n\r\n getSkillDetails() {\r\n let _url = this._serverURL + '/Dashboard/GetSkillDetails';\r\n return this.httpClient.get(_url);\r\n }\r\n\r\n public CreateEmployeeSkill(skillsData: SkillsData) {\r\n let _url = this._serverURL + '/Dashboard/CreateEmployeeSkill';\r\n return this.httpClient.post(_url, skillsData);\r\n }\r\n\r\n getAssociateResignationDetails() {\r\n let _url = this._serverURL + '/AssociateResignation/ResignationDashboard';\r\n return this.httpClient.get(_url);\r\n }\r\n\r\n getFinanceNotifications() {\r\n let _url = this._serverURL + '/SystemNotification/GetFinanceNotifications';\r\n\r\n return this.httpClient.get(_url);\r\n }\r\n\r\n getItNotifications() {\r\n let _url = this._serverURL + '/SystemNotification/GetNotifications';\r\n return this.httpClient.get(_url);\r\n }\r\n getAdminNotifications() {\r\n let _url = this._serverURL + '/SystemNotification/GetAdminNotifications';\r\n return this.httpClient.get(_url);\r\n }\r\n getHRANotifications() {\r\n let _url = this._employeeServerURL + this._resources.getRejectedProfiles;;\r\n\r\n return this.httpClient.get(_url);\r\n }\r\n getAssociateKRAs(userName: string) {\r\n let _url =\r\n this._serverURL + '/KRA/GetAssociateKRADetails?emailId=' + userName;\r\n\r\n return this.httpClient.get(_url);\r\n }\r\n updateItStatus(empCode: string, taskId: string) {\r\n let _url =\r\n this._serverURL +\r\n '/SystemNotification/UpdateItNotification?employeeCode=' +\r\n empCode +\r\n '&taskId=' +\r\n taskId;\r\n return this.httpClient.get(_url);\r\n }\r\n updateFinanceStatus(empCode: string, taskId: string) {\r\n let _url =\r\n this._serverURL +\r\n '/SystemNotification/UpdateFinanceNotification?employeeCode=' +\r\n empCode +\r\n '&taskId=' +\r\n taskId;\r\n return this.httpClient.get(_url);\r\n }\r\n updateAdminStatus(empCode: string, taskId: string) {\r\n let _url =\r\n this._serverURL +\r\n '/SystemNotification/UpdateAdminNotification?employeeCode=' +\r\n empCode +\r\n '&taskId=' +\r\n taskId;\r\n return this.httpClient.get(_url);\r\n }\r\n generatePDF(id: number) {\r\n let _url = this._employeeServerURL + '/EmployeeFiles/GeneratePDFReport/' + id;\r\n const httpOptions = {\r\n responseType: 'arraybuffer' as 'json',\r\n };\r\n return this.httpClient.get(_url, httpOptions);\r\n }\r\n\r\n profileApproval(empId: number, reqtype: string, reason: string) {\r\n let _url =\r\n this._employeeServerURL + servicePath.API.PAssociate.profileApproval;\r\n let details = {\r\n EmpId: empId,\r\n Status: reqtype,\r\n Remarks: reason,\r\n };\r\n return this.httpClient.post(_url, details);\r\n }\r\n\r\n public GetAssociateCodeByEmpID(empId: number) {\r\n var url = this._employeeServerURL + \"/Employee/GetById/\" + empId;\r\n return this.httpClient.get(url);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { DeliveryHeadTalentRequisitionDetails } from '../../master-layout/models/talentrequisitionhistory.model';\r\nimport { ProjectDetails } from '../../master-layout/models/projects.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class DeliveryHeadService {\r\n private _resources: any;\r\n private _serverURL: string;\r\n private _projectMicroService: string;\r\n private _employeeId: number;\r\n constructor(private httpClient: HttpClient) {\r\n this._serverURL = environment.ServerUrl;\r\n this._projectMicroService = environment.ProjMicroService;\r\n this._resources = servicePath.API.deliveryHead;\r\n this._employeeId = JSON.parse(\r\n sessionStorage['AssociatePortal_UserInformation']\r\n ).employeeId;\r\n }\r\n\r\n GetProjectsList(userRole: string, empId: number, dashboard: string) {\r\n const _url =\r\n this._projectMicroService +\r\n this._resources.getProjectList +\r\n userRole +\r\n '&employeeId=' +\r\n empId +\r\n '&dashboard=' +\r\n dashboard;\r\n return this.httpClient.get(_url);\r\n }\r\n\r\n public GetApproverList() {\r\n var url = this._serverURL + this._resources.getApproverList;\r\n return this.httpClient.get(url);\r\n }\r\n\r\n ApproveOrRejectByDH(projectId: number, status: string, employeeId: number) {\r\n let _url =\r\n this._projectMicroService +\r\n this._resources.ApproveOrRejectByDH +\r\n projectId +\r\n '/' +\r\n status +\r\n '/' +\r\n employeeId;\r\n return this.httpClient.get(_url);\r\n }\r\n\r\n public GetPendingRequisitionsForApproval() {\r\n var url =\r\n this._serverURL +\r\n this._resources.getPendingRequisitionsForApproval +\r\n this._employeeId;\r\n return this.httpClient.get(url);\r\n }\r\n public GetRolePositionDetailsByTRID(trID: number) {\r\n var url =\r\n this._serverURL + this._resources.getRolePositionDetailsByTRID + trID;\r\n return this.httpClient.get(url);\r\n }\r\n public GetTrRoleEmployeeList(talentRequisitionId: number, roleId: number) {\r\n var url =\r\n this._serverURL +\r\n this._resources.getTrRoleEmployeeList +\r\n talentRequisitionId +\r\n '&roleId=' +\r\n roleId;\r\n return this.httpClient.get(url);\r\n }\r\n public MarkedAsApprove(\r\n selectedApprovers: DeliveryHeadTalentRequisitionDetails\r\n ) {\r\n let _url = this._serverURL + this._resources.ApproveTalentRequisition;\r\n return this.httpClient.post(_url, selectedApprovers);\r\n }\r\n\r\n public RejectTalentRequisition(\r\n talentRequisitionDetails: DeliveryHeadTalentRequisitionDetails\r\n ) {\r\n let _url = this._serverURL + this._resources.rejectTalentRequisition;\r\n return this.httpClient.post(_url, talentRequisitionDetails);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { DeliveryHeadTalentRequisitionDetails } from '../../master-layout/models/talentrequisitionhistory.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class FinanceHeadService {\r\n _serverUrl: string;\r\n _resources: any;\r\n _employeeId: number;\r\n\r\n constructor(private httpClient: HttpClient) {\r\n this._serverUrl = environment.ServerUrl;\r\n this._resources = servicePath.API.FinanceHead;\r\n this._employeeId = JSON.parse(\r\n sessionStorage['AssociatePortal_UserInformation']\r\n ).employeeId;\r\n }\r\n public GetPendingRequisitionsForApproval() {\r\n var url =\r\n this._serverUrl +\r\n this._resources.getPendingRequisitionsForApproval +\r\n this._employeeId;\r\n return this.httpClient.get(url);\r\n }\r\n\r\n public RequisitionApprovalByFinance(\r\n talentRequisitionDetails: DeliveryHeadTalentRequisitionDetails\r\n ) {\r\n let _url = this._serverUrl + this._resources.requisitionApprovalByFinance;\r\n return this.httpClient.post(_url, talentRequisitionDetails);\r\n }\r\n\r\n public RequisitionRejectionByFinance(\r\n talentRequisitionDetails: DeliveryHeadTalentRequisitionDetails\r\n ) {\r\n let _url = this._serverUrl + this._resources.requisitionRejectionByFinance;\r\n\r\n return this.httpClient.post(_url, talentRequisitionDetails);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { environment } from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { ActivityList } from '../../AssociateExit/Models/activitymodel';\r\nimport { Activity } from '../../AssociateExit/Models/associateExit.model';\r\nimport { GenericType } from '../../master-layout/models/dropdowntype.model';\r\nimport { KtForm, KtFormWithSubStatus } from '../models/kt-form.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class KtFormService {\r\n\r\n private _adminMicroService : string;\r\n private _employeeMicroService : string;\r\n _resources = servicePath.API.TransitionPlan\r\n\r\n constructor(private httpClient: HttpClient) { \r\n this._adminMicroService = environment.AdminMicroService;\r\n this._employeeMicroService = environment.EmployeeMicroService;\r\n\r\n }\r\n\r\n getKtTasks(){\r\n let _url = this._adminMicroService + servicePath.API.Activity.GetTransitionPlanActivities;\r\n return this.httpClient.get(_url);\r\n }\r\n\r\n getKtPlan(empId,projectId){\r\n let _url = this._employeeMicroService + this._resources.GetForTeamLead + '?employeeId=' + empId+'&projectId='+ projectId;\r\n return this.httpClient.get(_url);\r\n }\r\n\r\n getKtPlansForAssociate(empId){\r\n let _url = this._employeeMicroService + this._resources.GetForAssociate + '?employeeId=' + empId;\r\n return this.httpClient.get(_url);\r\n }\r\n\r\n updateKtTasks(updateKtTasks){\r\n let _url = this._employeeMicroService + this._resources.Update;\r\n return this.httpClient.post(_url,updateKtTasks);\r\n }\r\n\r\n deleteKtTasks(empId,projectId,activityId){\r\n let _url = this._employeeMicroService + this._resources.DeleteActivity + '?employeeId='+ empId+ '&projectId=' + projectId + '&activityId='+ activityId;\r\n return this.httpClient.delete(_url);\r\n }\r\n\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class UrlService {\r\n private previousUrl: BehaviorSubject = new BehaviorSubject(null);\r\n public previousUrl$: Observable = this.previousUrl.asObservable();\r\n\r\n constructor() { }\r\n\r\n setPreviousUrl(previousUrl: string) {\r\n this.previousUrl.next(previousUrl);\r\n }\r\n\r\n}","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { ChecklistTabComponent } from '../project-life-cycle/components/checklist-tab/checklist-tab.component';\r\nimport { DashboardComponent } from './components/dashboard/dashboard.component';\r\nimport { SharedComponent } from './shared.component';\r\nimport{TeamLeadDashboardComponent} from './components/team-lead-dashboard/team-lead-dashboard.component';\r\nimport {SubmittedSkillsComponent} from './components/submitted-skills/submitted-skills.component'\r\nimport { KtFormComponent } from './components/kt-form/kt-form.component';\r\nimport { AssociateExitReviewScreenComponent } from './components/associate-exit-review-screen/associate-exit-review-screen.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: SharedComponent,\r\n children: [\r\n {\r\n path: 'dashboard',\r\n component: DashboardComponent,\r\n data: { title: 'Dashboard' },\r\n },\r\n {\r\n path: 'teamlead',\r\n component: TeamLeadDashboardComponent,\r\n data: { title: 'TeamLeadDashboard' },\r\n },\r\n {\r\n path: 'submitted-skills/:id', \r\n component: SubmittedSkillsComponent,\r\n data: { title: 'Skill Review and Approval' },\r\n },\r\n { path: 'KtForm/TeamLead/:empid/:projectid',component: KtFormComponent, data: { title: 'Knowledge Transfer Handover Takeover' } },\r\n { path: 'KtForm/Associate/:empid/:projectid',component: KtFormComponent, data: { title: 'Knowledge Transfer Handover Takeover' } },\r\n { path: 'exit-actions', component:AssociateExitReviewScreenComponent},\r\n ],\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class SharedRoutingModule {}\r\n","import { Component } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: 'app-shared', \r\n templateUrl: './shared.component.html'\r\n \r\n })\r\n export class SharedComponent {\r\n }","\r\n\r\n\r\n

Loading ...

\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\n// import { HttpModule } from '@angular/http';\r\nimport { SharedComponent } from './shared.component';\r\nimport { SharedRoutingModule } from './shared-routing.module';\r\nimport { RouterModule } from '@angular/router';\r\nimport { DepartmentHeadDashboardComponent } from './components/department-head-dashboard/department-head-dashboard.component';\r\nimport { AllAngularMaterialModule } from '../plugins/all-angular-material/all-angular-material.module';\r\nimport { DashboardComponent } from './components/dashboard/dashboard.component';\r\nimport { ProgramManagerDashboardComponent } from './components/program-manager-dashboard/program-manager-dashboard.component';\r\nimport { RejectDialogComponent } from './components/reject-dialog/reject-dialog.component';\r\nimport { CommonDialogComponent } from './components/common-dialog/common-dialog.component';\r\nimport { TeamLeadDashboardComponent } from './components/team-lead-dashboard/team-lead-dashboard.component';\r\nimport { ProjectLifeCycleModule } from '../project-life-cycle/project-life-cycle.module';\r\nimport { ServiceManagerDashboardComponent } from './components/service-manager-dashboard/service-manager-dashboard.component';\r\n//import { ChecklistTabComponent } from '../project-life-cycle/components/checklist-tab/checklist-tab.component';\r\nimport { NgxSpinnerModule } from 'ngx-spinner';\r\nimport { SubmittedSkillsComponent } from '../shared/components/submitted-skills/submitted-skills.component';\r\nimport { EditSkillDialogComponent } from './components/edit-skill-dialog/edit-skill-dialog.component';\r\nimport { AssociateDashboardComponent } from './components/associate-dashboard/associate-dashboard.component';\r\nimport { HraDashboardComponent } from './components/hra-dashboard/hra-dashboard.component';\r\nimport { HrmDashboardComponent } from './components/hrm-dashboard/hrm-dashboard.component';\r\nimport { KtFormComponent } from './components/kt-form/kt-form.component';\r\nimport { KTPlanDashboardComponent } from './components/ktplan-dashboard/ktplan-dashboard.component';\r\nimport { OperationsHeadDashboardComponent } from './components/operations-head-dashboard/operations-head-dashboard.component';\r\nimport { ReasonFormComponent } from './components/reason-form/reason-form.component';\r\nimport { HrmassociateExitComponent } from './components/hrmassociate-exit/hrmassociate-exit.component';\r\nimport { ViewAssociteexitComponent } from './components/view-associteexit/view-associteexit.component';\r\nimport { AssociateExitReviewScreenComponent } from './components/associate-exit-review-screen/associate-exit-review-screen.component';\r\nimport { AssociateExitChecklistScreenComponent } from './components/associate-exit-checklist-screen/associate-exit-checklist-screen.component';\r\nimport { CorporateDashboardComponent } from './components/corporate-dashboard/corporate-dashboard.component';\r\nimport { ConfirmationDialogComponent } from './components/confirmation-dialog/confirmation-dialog.component';\r\nimport { ViewDetailedStatusComponent } from './components/view-detailed-status/view-detailed-status.component';\r\nimport { DropDownSuggestionDirectiveModule } from 'src/app/drop-down-suggestion.directive';\r\nimport { RequirematchDirectiveModule } from 'src/app/requirematch.directive'\r\nimport { KTPlanDialogComponent } from './components/KT-plan-dialog/KT-plan-dialog.component';\r\nimport {ReportingManagerDashboardComponent} from './components/reporting-manager-dashboard/reporting-manager-dashboard.component';\r\nimport { KtWarningDialogComponent } from './components/kt-warning-dialog/kt-warning-dialog.component';\r\nimport { OnboardingModule } from '../onboarding/onboarding.module';\r\n\r\n@NgModule({\r\n declarations: [RejectDialogComponent,\r\n SharedComponent, DepartmentHeadDashboardComponent,\r\n DashboardComponent,ProgramManagerDashboardComponent, \r\n CommonDialogComponent, TeamLeadDashboardComponent,\r\n ServiceManagerDashboardComponent, SubmittedSkillsComponent, \r\n EditSkillDialogComponent, AssociateDashboardComponent, \r\n HraDashboardComponent, HrmDashboardComponent, \r\n KtFormComponent, KTPlanDashboardComponent, \r\n OperationsHeadDashboardComponent, ReasonFormComponent, \r\n HrmassociateExitComponent, ViewAssociteexitComponent, \r\n AssociateExitReviewScreenComponent, AssociateExitChecklistScreenComponent, \r\n CorporateDashboardComponent, ConfirmationDialogComponent, ViewDetailedStatusComponent, \r\n KTPlanDialogComponent, ReportingManagerDashboardComponent, KtWarningDialogComponent],\r\n\r\n imports: [\r\n RouterModule,\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n FlexLayoutModule,\r\n // HttpModule,\r\n SharedRoutingModule,\r\n AllAngularMaterialModule,\r\n NgxSpinnerModule,\r\n DropDownSuggestionDirectiveModule,\r\n RequirematchDirectiveModule,\r\n OnboardingModule\r\n ],\r\n exports: [ProjectLifeCycleModule],\r\n})\r\nexport class SharedModule {}\r\n","export enum ProgramType {\r\n certification = 3,\r\n membership = 4\r\n}\r\n\r\nexport enum ProficiencyLevel {\r\n Expert = 1,\r\n Advanced = 2,\r\n Intermediate = 3,\r\n Basic = 4,\r\n Beginner = 5\r\n}\r\n\r\nexport enum TRStatusCodes {\r\n Draft = 1,\r\n SubmittedForApproval = 2,\r\n SubmittedForFinanceApproval = 3,\r\n RejectedByDeliveryHead = 4,\r\n RejectedByFinanceHead = 5,\r\n Approved = 6,\r\n Close = 7\r\n}\r\nexport enum KRAStatusCodes {\r\n Draft = 1,\r\n SubmittedForDepartmentHeadReview = 2,\r\n SendBackForHRMReview = 3,\r\n Approved = 4,\r\n SubmittedForHRHeadReview = 5,\r\n SendBackForDepartmentHeadReview = 6\r\n}\r\nexport enum RequestType {\r\n NewRequest = 25,\r\n Replacement = 26\r\n}\r\n\r\nexport enum InternalClient {\r\n SenecaGlobal\r\n}\r\n\r\nexport enum Roles {\r\n HRM,\r\n HRA,\r\n ITHead,\r\n FinanceHead,\r\n HRHead,\r\n Lead,\r\n ProgramManager,\r\n MD\r\n}\r\n\r\nexport enum DepartmentType {\r\n Delivery = 1,\r\n NonDelivery = 2\r\n}\r\n\r\nexport enum ProjectType {\r\n TalentPool = 6\r\n}\r\nexport enum KRAMeasurementType {\r\n Scale = 1,\r\n Percentage = 2,\r\n Number = 3,\r\n Date = 4\r\n}\r\nexport enum CategoryMaster {\r\n TalentRequisition = 1,\r\n AssociateExit = 2,\r\n Skills = 3,\r\n EPC = 4,\r\n KRA = 5,\r\n ADR = 6\r\n}\r\nexport enum Months {\r\n January = 1,\r\n february = 2,\r\n March = 3,\r\n April = 4,\r\n May = 5,\r\n June = 6,\r\n July = 7,\r\n August = 8,\r\n September = 9,\r\n October = 10,\r\n November = 11,\r\n December = 12\r\n}\r\n\r\nexport enum PersonalDetails {\r\n PersonalEmailAddress = 1,\r\n MobileNo = 2,\r\n AadharNumber = 3,\r\n PANNumber = 4,\r\n PFNumber = 5,\r\n UANNumber = 6,\r\n PassportNumber = 7\r\n}","import { Directive, ElementRef, HostListener, NgModule } from '@angular/core';\r\nimport { MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition, MatSnackBar } from '@angular/material/snack-bar';\r\n\r\n@Directive({\r\n selector: '[appPracticeAreaValidations]'\r\n})\r\nexport class PracticeAreaValidationsDirective {\r\n //Regex for following alphanumerics\r\n private regex: RegExp = /^(?:[A-Za-z0-9 ()]+)([A-Za-z0-9]*)$/;\r\n\r\n //giving snackbar horizontal and vertical positions for showing the messages to the user\r\n horizontalPosition: MatSnackBarHorizontalPosition = \"right\";\r\n verticalPosition: MatSnackBarVerticalPosition = \"top\";\r\n\r\n constructor(private _ele: ElementRef, private _snackBar: MatSnackBar,) {\r\n }\r\n\r\n // Used on keypress because it will allow the user to use shift and capitalize the alphabets where as its not enabling this feature in the keyup and keydown\r\n // Used on keypress because it will allow the user to use shift and capitalize the alphabets where as its not enabling this feature in the keyup and keydown\r\n @HostListener('keyup', ['$event']) onKeyPress(event: any) {\r\n // stringfy the event\r\n var val = String(event.target.value || \"\");\r\n\r\n //if the input by the user is not following the regex or giving empty spaces\r\n var valStr = event.target.value.toString();\r\n if (!this.regex.test(event.key) && valStr.length > 1) {\r\n // when the user is giving special characters in between the input\r\n // if(valStr.charCodeAt(0) == 16 && ((valStr.charCodeAt(0) < 47 && valStr.charCodeAt(0) > 122) ||(valStr.charCodeAt(0) < 65 && valStr.charCodeAt(0) > 90))){\r\n\r\n // }\r\n this._snackBar.open(\r\n 'Begin with Alphanumerics. Special Characters except ( and ) are not allowed',\r\n 'x',\r\n {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n event.preventDefault();\r\n event.target.value = valStr.substring(0, valStr.length - 1);\r\n }\r\n\r\n else if (valStr.length == 1) {\r\n if (event.shiftKey) {\r\n if ((valStr.charCodeAt(0) < 47 || valStr.charCodeAt(0) > 122) || (valStr.charCodeAt(0) < 65 || valStr.charCodeAt(0) > 90)) {\r\n this._snackBar.open(\r\n 'Begin with Alphanumerics. Special Characters except _ and & are not allowed',\r\n 'x',\r\n {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n event.preventDefault();\r\n event.target.value = null;\r\n }\r\n }\r\n }\r\n\r\n }\r\n}\r\n\r\n@NgModule({\r\n declarations: [PracticeAreaValidationsDirective],\r\n exports: [PracticeAreaValidationsDirective]\r\n})\r\nexport class PracticeAreaValidationsDirectiveModule { }\r\n","import { Directive, Input, NgModule, forwardRef } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, Validator } from '@angular/forms';\r\n\r\n@Directive({\r\n selector:\r\n '[appRequirematch][ngModel],[appRequirematch][formControl],[appRequirematch][formControlName]',\r\n providers: [\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => RequirematchDirective),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class RequirematchDirective implements Validator \r\n{\r\n\r\n @Input() InputValue:any;\r\n @Input() SearchList: any;\r\n valuesFound: any;\r\n \r\n\r\n constructor() {\r\n }\r\n\r\n validate(control: AbstractControl): { [key: string]: boolean } | null {\r\n if (control.value){\r\n const selection: any = typeof control.value === 'string'? control.value : control.value.label;\r\n if (this.SearchList && this.SearchList.findIndex(x => x.label === selection) < 0 && !(selection === '' || selection === null) ) {\r\n return { requireMatch: true };\r\n }\r\n }\r\n return null;\r\n }\r\n \r\n}\r\n@NgModule({\r\n declarations: [ RequirematchDirective ],\r\n exports: [ RequirematchDirective ]\r\n})\r\n\r\nexport class RequirematchDirectiveModule {}\r\n","import { Routes } from '@angular/router';\r\nimport { RolesComponent } from '../modules/admin/components/roles/roles.component';\r\nimport { DashboardComponent } from '../modules/shared/components/dashboard/dashboard.component';\r\n\r\nexport const DEFAULT_ROUTES: Routes = [\r\n {\r\n path: 'associates',\r\n loadChildren: () =>\r\n import('../modules/onboarding/onboarding.module').then(\r\n (m) => m.OnboardingModule\r\n ),\r\n },\r\n {\r\n path: 'admin',\r\n loadChildren: () =>\r\n import('../modules/admin/admin.module').then((m) => m.AdminModule),\r\n },\r\n {\r\n path: 'talentmanagement', \r\n loadChildren: () =>\r\n import('../modules/TalentMangment/talentmanagment.module').then(m => m.TalentManagModule)},\r\n {\r\n path: 'associateexit', \r\n loadChildren: () =>\r\n import('../modules/AssociateExit/associateexit.module').then(m => m.AssociateexitModule)\r\n },\r\n {\r\n path: 'project',\r\n loadChildren: () =>\r\n import('../modules/project-life-cycle/project-life-cycle.module').then((m) => m.ProjectLifeCycleModule),\r\n },\r\n {\r\n path: 'shared',\r\n loadChildren: () =>\r\n import('../modules/shared/shared.module').then((m) => m.SharedModule),\r\n },\r\n {\r\n path: 'kra',\r\n loadChildren: () =>\r\n import('../modules/kra/kra.module').then((m) => m.KraModule),\r\n },\r\n {\r\n path: 'reports',\r\n loadChildren: () =>\r\n import('../modules/reports/reports.module').then((m) => m.ReportsModule),\r\n },\r\n { path: 'dashboard', component: DashboardComponent },\r\n];\r\n","import { Directive, ElementRef, HostListener, NgModule } from '@angular/core';\r\nimport { MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition, MatSnackBar } from '@angular/material/snack-bar';\r\n\r\n@Directive({\r\n selector: '[appValidationImpSpecialChars]'\r\n})\r\nexport class ValidationImpSpecialCharsDirective {\r\n //Regex for following alphanumerics\r\n private regex: RegExp = /^([A-Za-z0-9 &_]+)$/;\r\n\r\n //giving snackbar horizontal and vertical positions for showing the messages to the user\r\n horizontalPosition: MatSnackBarHorizontalPosition = \"right\";\r\n verticalPosition: MatSnackBarVerticalPosition = \"top\";\r\n\r\n constructor(private _ele: ElementRef, private _snackBar: MatSnackBar) {\r\n }\r\n\r\n // Used on keypress because it will allow the user to use shift and capitalize the alphabets where as its not enabling this feature in the keyup and keydown\r\n @HostListener('keyup', ['$event']) onKeyPress(event: any) {\r\n // stringfy the event\r\n var val = String(event.target.value || \"\");\r\n\r\n //if the input by the user is not following the regex or giving empty spaces\r\n var valStr = event.target.value.toString();\r\n if (!this.regex.test(event.key) && valStr.length > 1) {\r\n // when the user is giving special characters in between the input\r\n // if(valStr.charCodeAt(0) == 16 && ((valStr.charCodeAt(0) < 47 && valStr.charCodeAt(0) > 122) ||(valStr.charCodeAt(0) < 65 && valStr.charCodeAt(0) > 90))){\r\n\r\n // }\r\n this._snackBar.open(\r\n 'Begin with Alphanumerics. Special Characters except _ and & are not allowed',\r\n 'x',\r\n {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n event.preventDefault();\r\n event.target.value = valStr.substring(0, valStr.length - 1);\r\n }\r\n\r\n else if (valStr.length == 1) {\r\n if (event.shiftKey) {\r\n if ((valStr.charCodeAt(0) < 47 || valStr.charCodeAt(0) > 122) || (valStr.charCodeAt(0) < 65 || valStr.charCodeAt(0) > 90)) {\r\n this._snackBar.open(\r\n 'Begin with Alphanumerics. Special Characters except _ and & are not allowed',\r\n 'x',\r\n {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n event.preventDefault();\r\n event.target.value = null;\r\n }\r\n }\r\n }\r\n\r\n }\r\n\r\n}\r\n\r\n@NgModule({\r\n declarations: [ValidationImpSpecialCharsDirective],\r\n exports: [ValidationImpSpecialCharsDirective]\r\n})\r\n\r\nexport class ValidationImpSpecialCharsDirectiveModule { }\r\n","import { Directive, ElementRef, HostListener, NgModule } from '@angular/core';\r\nimport { MatSnackBar, MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition } from '@angular/material/snack-bar';\r\n\r\n@Directive({\r\n selector: '[appValidations]'\r\n})\r\nexport class ValidationsDirective {\r\n //Regex for following alphanumerics\r\n private regex: RegExp = /^([a-zA-Z0-9 ]*)$/;\r\n\r\n //giving snackbar horizontal and vertical positions for showing the messages to the user\r\n horizontalPosition: MatSnackBarHorizontalPosition = \"right\";\r\n verticalPosition: MatSnackBarVerticalPosition = \"top\";\r\n\r\n constructor(private _ele: ElementRef, private _snackBar: MatSnackBar,) {\r\n }\r\n\r\n // Used on keypress because it will allow the user to use shift and capitalize the alphabets where as its not enabling this feature in the keyup and keydown\r\n @HostListener('keypress', ['$event']) onKeyPress(event: any) {\r\n // stringfy the event\r\n var val = String(event.target.value || \"\");\r\n var valStr = event.target.value.toString();\r\n\r\n //if the input by the user is not following the regex or giving empty spaces\r\n if (!this.regex.test(event.key)) {\r\n // when the user is giving special characters in between the input\r\n this._snackBar.open(\r\n 'Begin with Alphanumerics. Special Characters are not allowed',\r\n 'x',\r\n {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n event.preventDefault();\r\n }\r\n\r\n }\r\n}\r\n\r\n@NgModule({\r\n declarations: [ValidationsDirective],\r\n exports: [ValidationsDirective]\r\n})\r\n\r\nexport class ValidationsDirectiveModule { }\r\n","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build --prod` 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: true, \r\n BiometricAttendanceStartDate:new Date(2023, 11, 1),\r\n minYearOfAttendance:2023,\r\n /* HTTP port URLs*/\r\n ServerUrl: '',\r\n IsDecryptionRequired : {\r\n 'Corporate': true,\r\n 'Associate': true,\r\n },\r\n\r\n AdminMicroService: 'https://hrms-admin.senecaglobal.com/admin/api/v1',\r\n EmployeeMicroService: 'https://hrms-employee.senecaglobal.com/employee/api/v1',\r\n ProjMicroService: 'https://hrms-project.senecaglobal.com/project/api/v1',\r\n KRAMicroService: 'https://uat-hrms-kra.senecaglobal.in/kra/api/v1',\r\n ReportMicroService: 'https://hrms-report.senecaglobal.com/report/api/v1',\r\n \r\n\r\n //sg authentication\r\n Url :'https://auth.senecaglobal.com/get_access_token',\r\n authUrl :`https://auth.senecaglobal.com/login?redirect_url=${window.location.origin}`,\r\n client_id : 'a60ea2dd-4ea0-4ff5-a305-84070f85ddb6',\r\n logoutUrl : `https://auth.senecaglobal.com/logout?redirect_url=https://hrms.senecaglobal.com/`\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/dist/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, { preserveWhitespaces: true })\r\n .catch(err => console.error(err));\r\n","// Types of form field appearances are:\r\n// 1. legacy\r\n// 2. standard\r\n// 3. fill\r\n// 4. outline\r\n\r\nexport const themeconfig = {\r\n formfieldappearances: 'outline'\r\n};\r\n \r\n","/* (ignored) */","/* (ignored) */","/* (ignored) */"],"sourceRoot":"webpack:///"}